Any parameter value in the mission file can be provided in several ways:
The standard way is to set the parameter as value, with or without unit.
Note
If no unit is provided while parameter needs one, SI units will be assumed.
Provided units have to match OpenMDAO convention<openmdao:feature_units>
.
Examples:
altitude:
value: 10.
unit: km
altitude:
value: 10000. # equivalent to previous one (10km), because SI units are assumed
mach:
value: 0.8
engine_setting:
value: takeoff # some parameters expect a string value
When no unit is provided, the value can be set directly. As for setting-values-value-unit
, if the concerned parameter is not dimensionless, SI units will be assumed.
Example:
mach: 0.8 # no unit
altitude: 10000. # == 10 km
engine_setting: takeoff # string value
It is possible to provide a variable name instead of a hard-coded value. Then the value and unit will be set by some FAST-OAD module, or by the input file.
Example:
altitude: data:dummy_category:some_altitude
It is also possible to provide only a suffix for the variable name. Then the complete variable name will be decided by the hierarchy the defined parameter belongs to. The associated variable name will be data:mission:<mission_name>:<route_name>:<phase_name>:<suffix>
.
It is useful when defining a route or a phase that will be used in several missions (see mission-definition
).
Note
<route_name>
and<phase_name>
will be used only when applicable (see examples below).- A contextual variable can be defined in a segment, but the variable will still be "associated" only to the phase.
A basic contextual variable is identified by a single tilde (~
). In such case, <suffix>
is the parameter name.
A generic contextual variable is preceded by a tilde. In such case, <suffix>
is the name provided as value (without the tilde).
routes:
route_A:
range: ~distance # "distance" will be the used variable name
parts:
- ...
missions:
mission_1:
parts:
- ...
- route: route_A
- ...
mission_2:
parts:
- ...
- route: route_A
- ...
route_A
contains the parameter range
where a contextual variable name is affected. route_A
is used as a step by both mission_1
and mission_2
.
Then the mission computation has among its inputs:
data:mission:mission_1:route_A:distance
data:mission:mission_2:route_A:distance
phases:
phase_a:
thrust_rate: ~ # "thrust_rate" will be the used variable name
routes:
route_A:
range: ...
parts:
- phase_a
- ...
missions:
mission_1:
parts:
- ...
- route: route_A
- ...
mission_2:
parts:
- ...
- phase: phase_a
- ...
phase_a
contains the parameter thrust_rate
where a contextual variable name is affected. phase_a
is a used as a step by route_A
, that is used as a step by mission_1
. phase_a
is also used as a step directly by mission_2
.
Then the mission computation has among its inputs:
data:mission:mission_1:route_A:phase_a:thrust_rate
data:mission:mission_2:phase_a:thrust_rate