Wolfram Computation Meets Knowledge

Model CenterVariable Views

Default Visibility of VariablesLifting Variables
Sorting VariablesAdding Variables
Renaming VariablesRemoving Variables
Editing Variables

The bottom area of the model editor shows one or several tabs dedicated to viewing and editing parameters, variables and constants of the class in the active class window. Parameters and constants are variables with a restricted variability in Modelica. Here, the term variable will be used for all three of them, unless it is necessary to distinguish between them. If no component is selected, the variables of the class will be shown. To show the variables of a specific component, select the component in the Icon View, the Diagram View or the Component Browser.

The tabs shown depend on the class being shown. The grouping of variables in a class can be configured in the Show in Variable Views section of the Component Properties dialog for each variable. This dialog can be opened by clicking or right-clicking the name of the variable in the view at the bottom of the screen and choosing Properties. The dialog is described in more detail in this section.

For models that have replaceable classes, the replaceable classes appear as parameters in the General and Parameters views.

Variables, parameters and constants can be shown in separate tabs by opening the Variables view, Parameters view or Constants view in the View menu. In these views, all variables, parameters and constants are listed unconditionally, effectively ignoring any visibility and view/group configurations. The visibility of the tabs can also be controlled from the popup menu shown when right-clicking any of the tabs.

Default Visibility of Variables

The following determines whether or not a variable is visible in the variable views (the dedicated Parameters, Variables and Constants views excluded).

Sorting Variables

The variables in a view can be sorted by name or declaration order. By default, they are sorted by declaration order.

To sort by name, right-click an empty area of the view and choose Arrange by Name from the popup menu.

1.gif

Sorting the variables by name.

Renaming Variables

A variable can be renamed by clicking its name. Note that for the name to be clickable, the currently open class must be the class in which the variable is declared, the same class must not be read-only and the current class window view must not be the Modelica Text View.

See the section Renaming Components in the Component Browser chapter for more information on the rename component operation.

Editing Variables

Before attempting to edit a variable, make sure that either the Icon View or Diagram View is the active view of the class window. Editing in the variable views is disabled while editing the class in the Modelica Text View. For read-only classes, variable values can still be edited but the changes cannot be saved. This makes it possible to test different scenarios with the example models provided in read-only libraries without worrying about changing the library permanently.

Variables have several editable attributes. To give a variable an initial value, edit the value of the corresponding Initial Value box. All attributes of variables that can be edited directly in the variable views are explained in detail following. Other attributes and properties of a variable can be edited in the Component Properties dialog. This dialog can be opened by clicking the name of the variable and choosing Properties. The dialog is described in more detail in this section.

Note that the attributes available in the variable views will depend on the type of the variable. For instance, a variable of type String has only the attribute value.

Editing a Variable for Several Components at Once

On some occasions, you may find it useful to set an attribute of a variable for several components at once. This is possible as long as the components are of the same type. Select the components whose variables you wish to edit. For those variable attributes that are the same for all components, the values will be shown in the value text boxes. If the values differ, the text boxes will show "No Common Value". When typing in a new value for a variable or editing an existing value, all of the selected components will be affected. Components that inherit from the same base class can be selected and the variables from the base class edited in the same way.

Editing Using Specially Adapted Dialogs

The values of variables can also be edited using specially adapted editing dialog by clicking the edit icon next to the edit field. In the popup menu that appears, click Edit to bring up a dialog suitable for editing values of the variable's type, such as a color selector for variables specifying a color, or a file selector for variables specifying a file.

A parameter input field with an edit button.

The type of edit dialog that is shown is determined by the variable's type and if the variable has any associated standard Modelica annotation requesting a specific type of editing dialog, such as the Dialog.colorSelector annotation.

Making Variables Final

To prevent further modification of a variable, it can be made final. The value is still editable in the class in which the variable is made final, but but not from any class creating a component of that class or extending that class.

To make a variable final, click the edit icon next to its edit field. In the menu that is shown, click final. A check mark to the left of final is an indication that it has been made final.

Making a variable final.

Sometimes the final item is disabled and cannot be clicked. It happens when a variable is implicitly final. For instance, if you have a model with a resistor component and you make the resistor component final, all of the variables inside the resistor will indirectly also become final. When viewing the variables of the resistor component, you will not be able to change their final property, as the effective final property is associated with the resistor and not the variable.

To change the final property of a resistor, or any other component that is not present in the variable views, locate the component in the Diagram View or the Component Browser and right-click it. In the menu that is shown, click the final item to toggle the final property of the component. Just as for variables, the menu final item may be disabled for a component if the component is implicitly final.

Editing Arrays

For array variables, clicking Edit in the popup menu provided by the edit icon next to the edit field will open a dedicated array editor. The array editor consists of two synchronized views: a table view and an expression view. Either view can be used to edit the array. The expression view can be used to edit any array expression, but is mostly used to edit arrays constructed by non-literal expressions. The table view is an evaluated version of the expression view and is the preferred view to edit individual elements of an array.

When editing an array in one view, it may happen that the other view becomes disabled and an error message is displayed in the bottom left of the array editor dialog. This is an indication that the array is invalid, and the cause could be, for instance, an illegal expression in the expression view or a cell with an invalid value in the table view. Correcting the error will enable the other view again.

It is also possible to give a value to be assigned to each element of an array, rather than a value that is assigned to the array as a whole. How the value you specify is interpreted is determined by the each prefix (if enabled, the value is assigned to each element of the array). To enable the each prefix for a variable, click the edit icon next to the edit field of the variable and ensure that the each item in the popup menu has a check mark before it.

To edit the dimensions of an array, open the Component Properties by clicking or right-clicking the name of the variable and choosing Properties from the popup menu.

Editing Type Parameters for a Variable

Predefined types (Real, Integer, Boolean, String) and enumeration types in Modelica have a number of parameters that are used to further customize the type. To view or edit these parameters for a variable of such a type, click the variable name in the variable view and choose View Type Parameters or Edit Type Parameters.

Editing the type parameters for the parameter R in a resistor component.

The Type Parameters dialog can also be reached from the Component Properties dialog.

The parameters shown in the dialog box depend on the type and variability of the variable. In the preceding example, you can see the type parameters of the parameter R in a resistor component of type Modelica.Electrical.Analog.Basic.Resistor. The type of the parameter R is Resistance (Modelica.Units.SI.Resistance), which is derived from the predefined type Real.

If the value of a parameter is shown in gray, it means the value is specified somewhere else. In this example, it would be inside one of the extended classes Resistance or Real. These values can be overridden for the parameter R as long as they are not declared with a final prefix inside Resistance or Real. For more information on how to change the type parameters of a class, see the section Editing Type Parameters for a Class.

Any of the parameter values can also be made final by checking the final checkbox next to it. This ensures that the value can never be overridden in any other context.

Likewise, the each prefix can be applied to a parameter by checking the corresponding each checkbox. For arrays, the each prefix allows you to specify a value that is assigned to each element of the array, rather than a value that is assigned to the array as a whole. For non-array parameters, the each prefix has no effect.

For further information about type parameters, please see the digital book Modelica by Example, bundled with System Modeler and accessible from Documentation Center, under Resources.

displayUnit

All physical variables in a Modelica model should be declared with a unit. The unit attribute of a variable is the unit used in all equations, and the equations are only correct for those particular units. However, it is possible to change the unit displayed to you as a user in the graphical user interface by specifying a displayUnit.

As an example, say you have a model with a component of type Modelica.Mechanics.Translational.Components.Mass, and you wish to display its mass (parameter m) in the unit "lb" rather than the default unit "kg". To do this, click the mass component, go to the variable view, find the parameter m and click the kg button. This opens up a dialog box that will let you change the displayUnit attribute.

Setting the displayUnit to lb instead of kg for a variable of type Modelica.Units.SI.Mass.

When you click lb in the drop-down list and click OK, the value in the Value field in the variable views is converted from kilograms to pounds in the graphical user interface. At the same time, a short piece of Modelica code, namely displayUnit="g", is added to the parameter m in component mass1 in the text view of the model.

6.gif

displayUnit="g" has been added to parameter m in component mass1.

Only existing and compatible units are present in the displayUnit drop-down list. It is still possible to specify another displayUnit by typing it. If the specified unit is not known, you will be asked to define it. See the section on Editing Library Units for more information on how to manage units.

7.gif

The message in the Type Parameters dialog when an unrecognized displayUnit expression is specified.

It is worth noting that if a non-numeric value is entered in the Value field in the variable views, such as the name of another variable or an expression, the unit next to the Value field changes to the base unit. Only numerical literals are automatically converted in the graphical user interface.

Also, if the quantity is relative, such as a temperature difference, you need to tell System Modeler this to ensure unit conversions are performed correctly. This can be done under the Advanced tab in the Component Properties dialog for a specific variable or for all variables of a specific type in the Class Properties of the type.

8.gif

Specifying a type to have a relative unit under the Advanced tab in the Class Properties dialog.

Redeclaring Replaceable Classes

An advanced configuration feature allows switching out complete classes used in a model. This makes it easier to quickly reconfigure parts of your model. Classes that can be replaced with other classes are classes with the replaceable property. Replaceable classes are shown as parameters in your model.

9.gif

A replaceable class shown as a parameter, with available choices shown in the drop-down menu.

To redeclare the replaceable class, choose one of the items in the drop-down menu.

A replaceable class can be further modified by adding modifiers to the redeclaration. These modifiers can be added in parentheses after the class name.

10.gif

A replaceable class redeclared with a modifier to the tire radius R.

For more information on replaceable classes, class redeclarations and model reusability in general, see the tutorial on Reusable and Configurable Models.

Lifting Variables

When building hierarchical models, a parameter, variable, constant or initial value of a variable that is of importance for the behavior of the model may be located somewhere deep down in a component of your model. To simplify the configuration of your model, variables and their values can be lifted up to the top level of your model. The operation does not modify any other model except your top-level model.

When lifting a variable, a new parameter with the same name and variability will be created in your top-level model with a binding to the lifted variable, effectively changing the value of the lifted variable whenever the value of the top-level variable is changed. Lifting an initial value of a variable as a parameter allows the initial value of a variable at a lower hierarchical level to be specified as a parameter at the top level.

To perform the lift operation, select the component that contains the variable to be lifted and click or right-click its name in the variable view. Depending on the variability of the variable, the popup menu shown will have different choices. Click the menu item that matches your need.

11.gif

Lifting the parameter J inside a DCMotor component to the top-level model.Esc

Adding Variables

To add a variable to a model, click the floating + button in the lower-right corner of the variable view, use the Insert menu, or right-click an empty area of the variable view to bring up a popup menu from which you can choose to add a variable, parameter or constant.

The button in the variable views used for adding parameters, variables or constants.

The dialog box that appears is the common dialog box for adding variables of any kind of variability.

13.gif

Adding a continuous variable of the SI unit type ElectricCurrent to a resistor model.

The dialog box is divided into two views.

Removing Variables

To remove a variable of a class, click its name and choose Delete from the popup menu.

If multiple variables are to be deleted, this can be done more quickly using the Component Browser, which allows multiple components to be selected at once. For information on how to remove components, see this section.