Overview: Units

A great way to clarify conceptualization, disambiguate terminology and guard against common formulation errors is to specify units of measure for each model variable and check the model for dimensional consistency. Stella makes this very easy to do, and allows you to quickly find and correct any inconsistencies that might arise.

To specify the units of measure for a variable you enter them in the Units editor at the bottom of the Equation panel.

You can type into the Units editor and you will be prompted with the names of units already used in the model as well as defined unit names. Alternatively you can select the units from the popup menu that opens when you click on the popup indicator at the right. Stella has a number of built in units and the popup menu organizes these into categories as well as providing access to any units of measure that you have defined or have already been used in the model. There are also options to check whether the units for the current variable are consistent and to suggest units for the variable based on the equation as discussed in Assigning units.

The units of measure you specify can be a name, or an equation. Unit equations are simpler than variable equations. They can contain names, multiplication operators (* or -), division operators (/), power (^) and parentheses to control precedence. The names of units must start with a letter or Unicode character beyond the Latin character range and contain letters, numbers, spaces or $. You can also use both $ and % as a unit of measure and 1 is treated as the identity unit of measure. Because of their simple format you can use a space or underbar interchangeably when specifying units.

The following are valid units of measure:

$/Hours
US$/Months
Months Per Year
1/Seconds
Meters/Second^2
Meters/Second/Second
Meters/(Second-Second)

The last three of these are equivalent.

The following are not valid units of measure:

$US/Day - $ can't be followed by anything
Feet/(Second/Second - mismatched parentheses
Tonnes^Apples - can only follow ^ with a number

Checking Units

The software checks units by passing through the equations for a variable substituting the units of measure for the variables used for the variable values. For example if we have the equation

production = workers * productivity

and we have specified that workers are measured in Person, and productivity is measured in Widget/Month/Person, the substituting these values would give Widget/Month. If the units of measure for production are Widget/Month then the units will match.

If, on the other hand, workers was measured in People then what would happen? Reducing the equation would give People/Person*Widget/Month. People and Person should reasonably cancel in this equation, and Stella does this by having person as an alias for People. This alias, and a number of others are built in by Stella. Similarly, if the units assigned to productivity were Widgets_per_Month_per_Person, you could create an equation settings Widgets_per_Month_per_Person to be equal to Widget/Month/Person.

You can define a Unit of measure by specifying an equation and zero or aliases using the Unit Editor dialog box. The equation is not required if there are one or more aliases. Stella has a variety of defined Units of measure built in, including Widgets with alias widgets, Seconds with aliases s and second, Per Second with equation 1/Seconds and so on.

Having the equations and aliases in place allow you to attach easy-to-read units to all your model variables, but still have them resolve to a well defined meaning for units checking.

If there are any problems with Units in your model they are displayed in the error list at the end of the Run toolbar.

What do you want to do?

Concept Link IconSee Also