OpenModelica/C3/Annotations--in-Modelica/English

From Script | Spoken-Tutorial
Revision as of 11:18, 17 March 2016 by Kaushik Datta (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Visual Cue Narration
Slide Number 1

Title Slide

Welcome to the spoken tutorial on Annotation.
Slide:

Learning Objectives

In this tutorial, we are going to learn:
  • How to specify an annotation and
  • How to define a record
Slide:

System Requirements

To record this tutorial, I am using:
  • OpenModelica 1.9.2
  • You may use any of the following operating systems. Linux, Windows, Mac OS X or FOSSEE OS
Slide:

Prerequisites

To understand and practice this tutorial, you need knowledge of class definition in Modelica.

Please watch the prerequisite tutorials available on our website.

Slide:

Annotations

Annotations can appear at multiple locations in a class.

Annotations can be used to:

  • change simulation settings
  • add supporting documentation
  • add icon and diagram views to a class
Slide:

experiment

In the previous tutorials, we used SimulationSetup button in the toolbar to vary simulation settings.

experiment is a model annotation that may be used to vary the following:

  • Start Time
  • Stop Time
  • Tolerance
  • Interval

Discussion of Tolerance and Interval are beyond the scope of this tutorial series.

Slide:

Syntax for experiment

Shown here is an an example demonstrating the syntax of experiment annotation.
Now, we shall understand experiment annotation through a class named bouncingBallWithAnnotations.

Let me switch to OMEdit.

Please download all the files available on our website.

I have opened all the necessary files in OMEdit.

Note that the following files are now open in OMEdit:

bouncingBallWithAnnotations and

color.

We will first look into bouncingBallWithAnnotations.

This model is an extension of the bouncingBall model which we discussed in previous tutorials.

Please watch the prerequisite tutorials for more information on this model.

Double-click on bouncingBallWithAnnotations in Libraries Browser.

Let me shift OMEdit window to the left for better visibility

Highlight

// experiment(StartTime=0,StopTime=5) //

Switch to text view if the class opens in Icon/Diagram View.


Let me scroll down a little bit.

Here, we use experiment annotation to set startTime to 0 and stopTime to 5 units.

experiment annotation serves the same purpose as Simulation Setup toolbox.

Watch the prerequisite tutorials for more information on Simulation Setup toolbox.

Click on Simulation Setup. Click on Simulation Setup button in toolbar.

You can see the same stopTime and startTime fields here.

We changed the values of these fields using experiment annotation.

Let’s simulate the model now.

Click on Simulate icon. Click on Simulate button.
/* Plotting perspective */

Click on h in variables browser.

The model has now simulated.

Click on h in variables browser.

Note that the simulation interval is 5 seconds.

This is due to startTime and ‘topTime fields of experiment annotation.

De-select h and delete the result.
Click on Modeling button Click on Modeling button at bottom right.
Now, let us learn more about adding documentation to a model using annotations.
/* bouncingBallWithAnnotations */


Documentation(info = "This is a bouncing ball model with annotations")

The highlighted text appears in Documentation annotation.

Now, let me show an application of Documentation annotation.

Click on Documentation View button Go to the top left of modeling area.

Click on fourth button which is Documentation View.

/* Documentation View */

Highlight // This is a bouncing ball model with annotations //

You can view the text typed in Documentation annotation in the browser.

This functionality allows us to add useful information for larger models which require documentation.

Close Documentation Browser and go back to the slides.
Slide:

record

Record is a specialized class used to define a record data structure


For example, bank accounts have records with person’s name, age etc., as fields


Records can only contain variables


Records may not contain equations

Slide:

Example of record

Shown here is an example record named Person.

It has name and age as its fields.

Let me switch to OMEdit to demonstrate record definition.


We will now use the file named Color.

To open it in Textview, let me shift OMEdit window to the right.

Double-click on color icon in Libraries Browser.
record color

Real red;

Real blue;

Real green;

end color;

Highlight each one of them separately.

This record has three variables red, blue and green.



Hover over Simulate You can see that simulate button doesn’t appear.

This means that records are not meant to be simulated.

Let me go back to slides.
Slide:

Records in annotations

It is easier to understand annotation elements as records.

For example, experiment can be considered as a record with StartTime, StopTime, Tolerance and Interval as fields.

Graphical elements can be similarly interpreted.

We will understand more about the interpretation of annotations as records when we discuss icon and diagram views.

This brings us to the end of this tutorial.
Slide:

About the Spoken Tutorial project

Watch the video available at the following link.

It summarises spoken tutorial project.

Slide:

Spoken Tutorial Workshops

We conduct workshops using spoken tutorials.

We give certificates to those who pass an online test.

Please contact us.

Slide:

Forum to answer questions

If you have questions from this tutorial,

Please visit the following website.

Slide:

Textbook Companion Project

We coordinate coding of solved examples from popular books.

Please visit the following website.

Slide:

Lab Migration Project

We help migrate commercial simulator labs to OpenModelica.

We give honorarium and certificates to those who do this.

Please contact us.

Slide:

Acknowledgements

Spoken Tutorial Project is funded by NMEICT, MHRD, Government of India
Slide:

Thanks

We thank the development team of OpenModelica for their support.

Thank you for joining me in this tutorial.

Contributors and Content Editors

Kaushik Datta, Nancyvarkey