Mission file
General description
A mission file describes precisely one or several missions that could be computed by
the performance model fastoad.performances.mission
of FAST-OAD.
The file format of mission files is the YAML format. A quick tutorial for YAML (among many ones) is available here.
The mission definition relies on 4 concepts that are, from lowest level to the highest one: segments, phases, routes and missions. They are summarized in this table:
Type |
Parts |
Description |
---|---|---|
N/A |
The basic bricks that are provided by FAST-OAD. They are
described in this specific page.
|
|
segment(s) and/or
phase(s)
|
A free assembly of one or more segments and/or other phases. |
|
zero or more phase(s)
one cruise segment
zero or more phase(s)
|
A route is a climb/cruise/descent sequence with a fixed range.
The range is achieved by adjusting the distance covered during
the cruise part.
|
|
routes and/or phases
and/or segments
|
A mission is what is computed by
fastoad.performances.mission .Generally, it begins when engine starts and ends when engine
stops.
|
Important
Starting with version 1.4.0 of FAST-OAD, any mission has to use a variable for mass input. This variable can be defined using the start segment, if it provides the mass at mission start (typically a ramp-up weight), or using the mass_input segment otherwise (typically a takeoff weight, achieved after the taxi-out).
In the case no variable is defined for input mass, FAST-OAD will automatically add, at the
beginning of the mission, a taxi-out and a very simple takeoff phase
(transition segment) with a
mass_input segment. In that case, the input
mass is given by the data:mission:<mission_name>:TOW
variable, which represents the
aircraft mass just after takeoff.
This addition of taxi-out, takeoff and mass input allows to keep compatibility with mission definitions for FAST-OAD versions earlier than 1.4.
(Please note that takeoff weight should be actually considered as the mass just before takeoff, but this way of doing is kept for maximum backward-compatibility)
File sections
The organization of a mission definition file is organized in sections according to above-defined concepts.
Phase definition section
This section, identified by the phases
keyword, defines flight phases. A flight phase is
defined as an assembly of one or more flight segment(s).
Basically, a phase has a name, and a parts
attribute that contains a list of segment definitions.
Nevertheless, it is also possible to set, at phase level, the parameters that are common to several segments of the phase.
The phase section only defines flight phases, but not their usage, that is defined in route and mission sections. Therefore, the definition order of flight phases has no importance.
Note
Some parameters may be more conveniently set at an upper level than segment-level. See section Factorizing parameters to see how.
Example:
phases:
initial_climb: # Phase name
parts: # Definition of segment list
- segment: altitude_change # 1st segment (climb)
polar: data:aerodynamics:aircraft:takeoff
thrust_rate: 1.0
target:
altitude:
value: 400.
unit: ft
equivalent_airspeed: constant
- segment: speed_change # 2nd segment (acceleration)
polar: data:aerodynamics:aircraft:takeoff
thrust_rate: 1.0
target:
equivalent_airspeed:
value: 250
unit: kn
- segment: altitude_change # 3rd segment (climb)
polar: data:aerodynamics:aircraft:takeoff
thrust_rate: 0.95
target:
altitude:
value: 1500.
unit: ft
equivalent_airspeed: constant
climb: # Phase name
... # Definition of the phase...
Specific takeoff phase definition section
The takeoff and associated manoeuvres may be simulated by assembling the specific segments. An exemple of takeoff phase definition, as well as start-stop phase are given here:
Example:
takeoff:
engine_setting: takeoff
polar:
CL: data:aerodynamics:aircraft:takeoff:CL
CD: data:aerodynamics:aircraft:takeoff:CD
ground_effect: None # Ground effect model selection
CL0_clean: data:aerodynamics:aircraft:takeoff:CL0_clean
CL_alpha: data:aerodynamics:aircraft:takeoff:CL_alpha
CL_high_lift: data:aerodynamics:high_lift_devices:takeoff:CL
thrust_rate: 1.0
isa_offset: data:mission:operational:ISA_offset
parts:
- segment: ground_speed_change
target:
equivalent_airspeed:
value: data:mission:operational:takeoff:Vr
- segment: rotation
target:
delta_altitude:
value: 35
unit: ft
- segment: end_of_takeoff
time_step: 0.05
target:
delta_altitude:
value: 35
unit: ft
start_stop: # start - stop manoeuvre with only brakes on
engine_setting: takeoff
polar:
CL: data:aerodynamics:aircraft:takeoff:CL
CD: data:aerodynamics:aircraft:takeoff:CD
ground_effect: Raymer # Ground effect model selection
CL0_clean: data:aerodynamics:aircraft:takeoff:CL0_clean
CL_alpha: data:aerodynamics:aircraft:takeoff:CL_alpha
CL_high_lift: data:aerodynamics:high_lift_devices:takeoff:CL
thrust_rate: 1.0
isa_offset: data:mission:operational:ISA_offset
parts:
- segment: ground_speed_change
wheels_friction: 0.03
time_step: 0.05
target:
equivalent_airspeed:
value: data:mission:operational:takeoff:V1
- segment: ground_speed_change
engine_setting: idle
thrust_rate: 0.07
wheels_friction: 0.5
time_step: 0.05
target:
true_airspeed:
value: 0
unit: m/s
Route definition section
This section, identified by the routes
keyword, defines flight routes. A flight route is
defined as climb/cruise/descent sequence with a fixed range. The range is achieved by
adjusting the distance covered during the cruise part. Climb and descent phases are
computed normally.
A route is identified by its name and has 4 attributes:
range
: the distance to be covered by the whole route
climb_parts
: a list of items likephase : <phase_name>
cruise_part
: a segment definition, except that it does not need any target distance.
descent_parts
: a list of items likephase : <phase_name>
Example:
routes:
main_route:
range:
value: 3000.
unit: NM
climb_parts:
- phase: initial_climb
- phase: climb
cruise_part:
segment: cruise
engine_setting: cruise
polar: data:aerodynamics:aircraft:cruise
target:
altitude: optimal_flight_level
maximum_flight_level: 340
descent_parts:
- phase: descent
diversion:
range: distance
climb_parts:
- phase: diversion_climb
cruise_part:
segment: breguet
engine_setting: cruise
polar: data:aerodynamics:aircraft:cruise
descent_parts:
- phase: descent
Mission definition section
This is the main section. It allows to define one or several missions, that will be computed by the mission module.
A mission is identified by its name and has 3 attributes:
parts
: list of the phase and/or route names that compose the mission, with optionally a last item that is thereserve
(see below).
use_all_block_fuel
: if True, the range of the main route of the mission will be adjusted so that all block fuel (provided as input data:mission:<mission_name>:block_fuel) will be consumed for the mission, excepted the reserve, if defined. The provided range for first route is overridden but used as a first guess to initiate the iterative process.
The mission name is used when configuring the mission module in the FAST-OAD configuration file. If there is only one mission defined in the file, naming it in the configuration file is optional.
Note
About reserve
The reserve
keyword is typically designed to define fuel reserve as stated in
EU-OPS 1.255.
It defines the amount of fuel that is expected to be still in tanks once the mission is
complete. It takes as reference one of the route that composes the mission
(ref
attribute). The reserve is defined as the amount of fuel consumed during the
referenced route, multiplied by the coefficient provided as the multiplier
attribute.
Example:
missions:
sizing:
parts:
- phase: taxi_out
- phase: takeoff
- route: main_route
- route: diversion
- phase: holding
- phase: landing
- phase: taxi_in
- reserve:
ref: main_route
multiplier: 0.03
operational:
parts:
- phase: taxi_out
- phase: takeoff
- route: main_route
- phase: landing
- phase: taxi_in
fuel_driven:
parts:
- phase: taxi_out
- phase: takeoff
- route: main_route
- phase: landing
- phase: taxi_in
use_all_block_fuel: true
Factorizing parameters
Some parameters may be common to several segments and have same value across all of them. In such case, it is possible to define them at higher level (i.e. phase, route or mission) to avoid repeating them.
For example, to specify a temperature increment at mission level, the mission section could be:
missions:
operational:
isa_offset: 15.0 # It will apply to the whole mission
parts:
- route: main_route
- phase: landing
- phase: taxi_in
A high-level parameter definition will be overloaded by a lower-level definition, as illustrated in this example of phase definition:
phases:
initial_climb: # Phase name
engine_setting: takeoff # ---------------
polar: data:aerodynamics:aircraft:takeoff # Common segment
thrust_rate: 1.0 # parameters
time_step: 0.2 # ---------------
parts: # Definition of segment list
- segment: altitude_change # 1st segment (climb)
target:
altitude:
value: 400.
unit: ft
equivalent_airspeed: constant
- segment: speed_change # 2nd segment (acceleration)
target:
equivalent_airspeed:
value: 250
unit: kn
- segment: altitude_change # 3rd segment (climb)
thrust_rate: 0.95 # --> PHASE THRUST RATE VALUE IS OVERWRITTEN
target:
altitude:
value: 1500.
unit: ft
equivalent_airspeed: constant