FromModelica Function
Use the FromModelica function to define parameter values of Activate Modelica components.
The FromModelica function gives you access to Modelica resources, which you can use to define the parameter values of Activate Modelica components. These resources include both data and functions available in Modelica libraries, and other Activate Modelica components present in the model.
FromModelica(path [,opt1 [, opt2])
- The argument
path
, of type string, can designate either an entity in a Modelica library or a component in the model. The optional argumentsopt1
andopt2
can be a string, representing a name, specifying an entity (an element of a record, an element of a package, a component parameter…), a struct, defining a modifier, or a cell containing the arguments of a function call. A struct is also used in case of function-calls with named arguments. See the Appendix for a detailed explanation.
Retrieving a Value from a Library
In case of Modelica library access, path
is an OML string
designating a library element following the usual Modelica syntax, where the
hierarchy is specified using “dot” notation, with “Modelica” as root in case of MSL
for example. The path can designate a constant, a record, a function, a package,
etc. For example,
FromModelica(‘Modelica.Constants.T_zero’)
- can be used to retrieve the value of the absolute zero temperature in
Centigrade from the package Modelica Constants. The following is an
example where a Modelica
record
is retrieved: FromModelica('Modelica.Magnetic.FluxTubes.Material.HysteresisEverettParameter.M330_50A')
M330_50A
is an element of PackageModelica.Magnetic.FluxTubes.Material.HysteresisEverettParameter.
An alternative to the above way to access the record, is the following:FromModelica('Modelica.Magnetic.FluxTubes.Material.HysteresisEverettParameter’,’M330_50A')
- The name of the record here is provided as a second argument to the
function
FromModelica
. The advantage of using this construction is that the name of the record can be parameterized using an OML variable, as shown next: FromModelica('Modelica.Magnetic.FluxTubes.Material.HysteresisEverettParameter’, rec)
- where
rec
is an OML string defined in the workspace of the diagram containing the component, specifying the record selected in the package. For example,rec
can be conditionally defined in the diagram context asif cond, rec=’M330_50A’, else rec=’M270_50A’; end
The optional arguments can also be used to define modifiers. The structure field names correspond to the modified entity names, for example for modifying record elements, as shown in the following example:
FromModelica('Modelica.Magnetic.FundamentalWave.Types','SalientReluctance',struct('d',12, 'q',14))
- The modifier here is specified by an optional argument of type OML
structure. The argument
struct(‘d’,12,’q’,14)
correspond to the Modelica modification (q=12, q=14). Note that the new values ofd
andq
record elements can be parameterized using OML expressions.Function calls in Modelica can be done both with and without named arguments. Named arguments can be considered specific modifiers and can be specified using OML as indicated previously. The positional argument passing is supported using a cell instead of a struct.
The following example shows how the symmetricOrientation function can be used with argument
m=3
: FromModelica('Modelica.Electrical.MultiPhase.Functions.symmetricOrientation’,struct(‘m’,3))
- Alternatively, since
m
is the first (and unique) argument of the symmetricOrientation function, the same result is obtained by FromModelica('Modelica.Electrical.MultiPhase.Functions.symmetricOrientation’, {3})
- In case the function has multiple arguments, the cell includes all the arguments in order, for example:
FromModelica('Modelica.Electrical.MultiPhase.Functions.activePower’, {v,i})