Multi-Mission Example#
The Multi-mission Example demonstrates the capability to optimize a single aircraft design considering two missions that the aircraft will perform. For a background on this example see Multi-Mission Overview. It is expected that the users is familiar with methods from level 1 and level 2 before exploring this content.
Theory#
Each of the two missions in the example are instantiated as a single aviary problems with two AviaryGroups inside of it. Each AviaryGroup has it’s own pre-missions, mission, and post-mission elements. Two get the pre-missions to have the same aircraft design, Mission.Design.GROSS_MASS
, Mission.Design.RANGE
, Aircraft.Wing.SWEEP
, are promoted out of the pre-missions to a single values. This ensures that the aircrafts in both pre-missions have the same design even though their passenger count and fuel mass are different. There is no post-mission for the example, but if one was required for calculating cost or acoustic constraints, there would need to be two post-mission systems as well.
Graphs for each mission are created and stored in the run_multimission_example folder. A custom print functions were added to display some important information. The user can see detailed info of each mission result using the prob.model.mission1.list_vars()
commands listed in the comments at the bottom of the example.
A number of checks exist in add_aviary_group
which under the hood calls check_and_preprocess_inputs
to help the user in the case that incomplete as-flow or design passenger information is provided. This was done to provide backward compatability for older aircraft models which only specify design passenger information.
In this example we wanted to compare the same aircraft flying a mission with full passengers vs. a mission with no passengers. However, there are limitations in Aviary’s ability to detect user input vs. default values. So we set the passenger count to one instead. Right now, the only way to set an aircraft to exactly zero passengers is by setting Aircraft.CrewPayload.TOTAL_PAYLOAD_MASS
to zero plus any Aircraft.CrewPayload.CARGO_MASS
being carried. This zeros out passenger and baggage mass regardless of what value is input to Aircraft.CrewPayload.NUM_PASSENGERS
, Aircraft.CrewPayload.NUM_TOURIST_CLASS
, Aircraft.CrewPayload.NUM_BUSINESS_CLASS
, and Aircraft.CrewPayload.NUM_FIRST_CLASS
. Once issue #610 is resolved the user should be able to set passenger and bags mass to exactly zero by setting Aircraft.CrewPayload.PASSENGER_PAYLOAD_MASS
to zero.
Best Pratices#
The user should be cognizant of the implications of having two pre-mission systems, one for each mission. When trying to mirror these to create a single aircraft that flies different missions, both of the pre-mission systems should be nearly identical in setup, except for fuel-mass, passenger, and payload calculations. There are numerous opportunities for the user to get this wrong, and accidentally create two different aircraft as a result. For example, in a previous iteration of this example, Aircraft.Design.LANDING_TO_TAKEOFF_MASS_RATIO
was not specified, which resulted in two different landing gears being designed, one for mission1, one for mission2.
Note: If you are having trouble getting your {glue:md}`Aircraft.Design.EMPTY_MASS` (the final drymass mass summation from pre-mission) to be equal for both pre-missions, use the following OpenMDAO commends at the end of the example to list out and compare the mass from each subsystem.
prob.model.mission1.list_vars(val=True, units=True, print_arrays=False)
prob.model.mission2.list_vars(val=True, units=True, print_arrays=False)
Phase Info#
The same mission distance and profile (takeoff, climb, cruise, descent, landing) is being flown for both missions. To enable this, a single phase_info is imported and then deepcopied. The user could modify the mission2 to be different from mission1 by changing the target_range to a different value (i.e phase_info_mission2['post_mission']['target_range'] = [1500, "nmi"]
).
import copy as copy
import aviary.api as av
from aviary.models.missions.height_energy_default import phase_info
from aviary.validation_cases.validation_tests import get_flops_inputs
from aviary.variable_info.enums import ProblemType
from aviary.variable_info.variables import Aircraft, Mission, Settings
phase_info_mission1 = copy.deepcopy(phase_info)
phase_info_mission2 = copy.deepcopy(phase_info)
Aircraft Configuration#
In the example, we import a single aircraft configuration (LargeSingleAisle2FLOPS) and then modify it to create a mission1 which carries 162 passengers and mission2, a mission which carries only a single passengers on the same aircraft. The number of seats for passengers in the aircraft, as well as some other systems like passenger airconditioning mass, is set by values of Aircraft.CrewPayload.Design.NUM_PASSENGERS
, Aircraft.CrewPayload.Design.NUM_TOURIST_CLASS
, Aircraft.CrewPayload.Design.NUM_BUSINESS_CLASS
, and Aircraft.CrewPayload.Design.NUM_BUSINESS_CLASS
. Whereas the actual number of passengers on the flight is specified by variables of Aircraft.CrewPayload.NUM_PASSENGERS
, Aircraft.CrewPayload.NUM_TOURIST_CLASS
, Aircraft.CrewPayload.NUM_BUSINESS_CLASS
, and Aircraft.CrewPayload.NUM_BUSINESS_CLASS
.
aviary_inputs_mission1 = get_flops_inputs('LargeSingleAisle2FLOPS')
aviary_inputs_mission2 = copy.deepcopy(aviary_inputs_mission1)
aviary_inputs_mission2.set_val(Aircraft.CrewPayload.NUM_PASSENGERS, 1, 'unitless')
aviary_inputs_mission2.set_val(Aircraft.CrewPayload.NUM_TOURIST_CLASS, 1, 'unitless')
aviary_inputs_mission2.set_val(Aircraft.CrewPayload.NUM_BUSINESS_CLASS, 0, 'unitless')
aviary_inputs_mission2.set_val(Aircraft.CrewPayload.NUM_FIRST_CLASS, 0, 'unitless')
Adding Aviary Groups#
Now we must set the problem type to multimission, this will allow us to use our other commandes like add_aviary_group
to combine the aviary_values and phase_info to create two Aviary Groups which are added to the problem. add_aviary_group
can accept engine_builders as well if you wanted to specify a custom engine builder for the models. We give each of the groups a name: mission1 and mission 2 which we will use to reference them later. Lastly we build the model, which adds pre-mission, phases, post-mission, and links phases sequentially. These elements could be called individually if the user desired more control over each one.
prob = av.AviaryProblem(problem_type=ProblemType.MULTI_MISSION)
prob.add_aviary_group('mission1', aircraft=aviary_inputs_mission1, mission=phase_info_mission1)
prob.add_aviary_group('mission2', aircraft=aviary_inputs_mission2, mission=phase_info_mission2)
prob.build_model()
User Input#
Now we have the opportunity for the user to tell us how these aircraft are the same. Up to this point, each call to add_aviary_group
has setup two completely separate aircraft but in the example we are trying to design a single aircraft. To do this we must explicitly tell Aviary which key parameters are mirrored on both aircraft. These key parameters are used to size different subsystems.
promote_inputs
tells aviary that between mission1 and mission2, the following 3 values are the same and should be promoted to the top level of the problem: Mission.Design.GROSS_MASS
, Mission.Design.RANGE
, and Aircraft.Wing.SWEEP
. If we did not promote these values, they would still only be accesible inside of their individual groups (i.e. mission1.mission:design:gross_mass).
add_design_var_default
is used to tell Aviary that we are setting Aircraft1:GROSS_MASS
as a design variable controlled by the optimizer, and to set it’s initial value and upper and lower constraints. Normally this is done as part of a two-step process using prob.model.add_design_var
to set the range, and then after setup calling prob.set_val
to set the initial value. However, it is more convenient to set them both in one place. The value can still be over-written later using prob.set_val
after setup.
add_composite_objective
specifies that the output of Mission.Summary.FUEL_BURNED
from mission1
and mission2
should be summed together based on a 2:1 weighting. Alternatively, the user could have specified the same thing using add_composite_objective_adv
which provides a slightly more streamlined interface if users know their mission frequency and ouput weights separetly. This typically happens if you know how often you will fly a particular mission from historical data, and then you would like to weight the fuel-burn on each mission vs. another metric, such as maintinance costs.
prob.promote_inputs(
['mission1', 'mission2'],
[
(Mission.Design.GROSS_MASS, 'Aircraft1:GROSS_MASS'),
(Mission.Design.RANGE, 'Aircraft1:RANGE'),
(Aircraft.Wing.SWEEP, 'Aircraft1:SWEEP'),
],
)
prob.add_design_var_default(
'Aircraft1:GROSS_MASS',
lower=10.0,
upper=900e3,
units='lbm',
default_val=100000,
)
prob.add_design_var_default(
'Aircraft1:SWEEP',
lower=23.0,
upper=27.0,
units='deg',
default_val=25,
)
prob.add_composite_objective(
('mission1', Mission.Summary.FUEL_BURNED, 2),
('mission2', Mission.Summary.FUEL_BURNED, 1),
ref=1,
)
# prob.add_composite_objective_adv(missions=['mission1', 'mission2'], mission_weights=[2,1], outputs=[Mission.Summary.FUEL_BURNED], outputoutput_weights=[1] ref=1)
Setting up the model#
Now with the basics complete we can add a driver, set the basic design variables, and setup the aviary model.
prob.add_driver('IPOPT', max_iter=50)
prob.add_design_variables()
prob.setup()
Setting Values#
The Mission.Design.RANGE
value must be set to size some of Aviary’s subsystems. These subsystems, such as avionics, have increasing mass as Mission.Design.RANGE
increases. These are first order approximations that come with aviary. But because of these, we must ensure that both pre-missions have the same Mission.Design.RANGE
, even if the actual range flown buy each mission (target_rage) is different. Without this, the avoinics mass calculated in pre-mission would be different for the two missions, resulting in a different aircraft design, which is counter to what is intended with the multi-mission feature.
set_design_range
method will access the phase_info for any missions supplied, find the largest target_rage
, and set Aircraft1:Range
to that value. This will ensure the avionics are designed similarly for both aircraft.
The total number of passengers (Aircraft.CrewPayload.Design.NUM_PASSENGERS
) and the design number of passengers of each type (business, tourist, first class), help to define the passenger air conditioning subsystems and the passenger support mass (seats) respectively. Thus when these values are set equal in mission1 and mission2, we ensure the aircraft will be designed similarly. These settings were already set in the LargeSingleAisle2FLOPS
model which we are using.
Note: It is good practice, but not required, to set {glue:md}`Aircraft.Design.LANDING_TO_TAKEOFF_MASS_RATIO` in Aviary Values to ensure consistent design of the landing gear for both missions. This combined with {glue:md}`Design.GROSS_MASS` helps to ensure that {glue:md}`Aircraft.LandingGear.MAIN_GEAR_MASS` and {glue:md}`Aircraft.LandingGear.NOSE_GEAR_MASS` are the same for both missions. If {glue:md}`Aircraft.Design.LANDING_TO_TAKEOFF_MASS_RATIO` is not set, Landing Gear Masses will be caluclated based on {glue:md}`Mission.Summary.CRUISE_MACH` and {glue:md}`Mission.Design.RANGE`. This is potentially problematic because {glue:md}`Mission.Summary.CRUISE_MACH` may not be set, and instead cruse mach may be optimized. In that case, {glue:md}`Mission.Summary.CRUISE_MACH` could vary between mission1 and mission2, which would then cascade into differeing {glue:md}`Aircraft.LandingGear.MAIN_GEAR_MASS` which causes the aircraft designs to diverge.
prob.set_design_range(('mission1', 'mission2'), range='Aircraft1:RANGE')
prob.run_aviary_problem()
/usr/share/miniconda/envs/test/lib/python3.12/site-packages/openmdao/solvers/linear/linear_rhs_checker.py:177: SolverWarning:DirectSolver in 'mission1.traj.phases.climb.indep_states' <class StateIndependentsComp>: 'rhs_checking' is active but no redundant adjoint dependencies were found, so caching has been disabled.
/usr/share/miniconda/envs/test/lib/python3.12/site-packages/openmdao/solvers/linear/linear_rhs_checker.py:177: SolverWarning:DirectSolver in 'mission1.traj.phases.cruise.indep_states' <class StateIndependentsComp>: 'rhs_checking' is active but no redundant adjoint dependencies were found, so caching has been disabled.
/usr/share/miniconda/envs/test/lib/python3.12/site-packages/openmdao/solvers/linear/linear_rhs_checker.py:177: SolverWarning:DirectSolver in 'mission1.traj.phases.descent.indep_states' <class StateIndependentsComp>: 'rhs_checking' is active but no redundant adjoint dependencies were found, so caching has been disabled.
/usr/share/miniconda/envs/test/lib/python3.12/site-packages/openmdao/solvers/linear/linear_rhs_checker.py:177: SolverWarning:DirectSolver in 'mission2.traj.phases.climb.indep_states' <class StateIndependentsComp>: 'rhs_checking' is active but no redundant adjoint dependencies were found, so caching has been disabled.
/usr/share/miniconda/envs/test/lib/python3.12/site-packages/openmdao/solvers/linear/linear_rhs_checker.py:177: SolverWarning:DirectSolver in 'mission2.traj.phases.cruise.indep_states' <class StateIndependentsComp>: 'rhs_checking' is active but no redundant adjoint dependencies were found, so caching has been disabled.
/usr/share/miniconda/envs/test/lib/python3.12/site-packages/openmdao/solvers/linear/linear_rhs_checker.py:177: SolverWarning:DirectSolver in 'mission2.traj.phases.descent.indep_states' <class StateIndependentsComp>: 'rhs_checking' is active but no redundant adjoint dependencies were found, so caching has been disabled.
/usr/share/miniconda/envs/test/lib/python3.12/site-packages/openmdao/recorders/sqlite_recorder.py:231: UserWarning:The existing case recorder file, /home/runner/work/Aviary/Aviary/aviary/docs/examples/problem_out/problem_history.db, is being overwritten.
Total number of variables............................: 192
variables with only lower bounds: 0
variables with lower and upper bounds: 192
variables with only upper bounds: 0
Total number of equality constraints.................: 186
Total number of inequality constraints...............: 122
inequality constraints with only lower bounds: 2
inequality constraints with lower and upper bounds: 120
inequality constraints with only upper bounds: 0
Number of Iterations....: 35
(scaled) (unscaled)
Objective...............: 1.6908842653228623e+02 2.4851744681726195e+04
Dual infeasibility......: 2.2678956516919424e-07 1.4166750346279367e-05
Constraint violation....: 2.7692471406863566e-14 2.7692471406863566e-14
Variable bound violation: 2.1819509754550381e-08 2.1819509754550381e-08
Complementarity.........: 6.9151023455467998e-08 1.0163460708928002e-05
Overall NLP error.......: 2.2678956516919424e-07 1.4166750346279367e-05
Number of objective function evaluations = 38
Number of objective gradient evaluations = 33
Number of equality constraint evaluations = 38
Number of inequality constraint evaluations = 38
Number of equality constraint Jacobian evaluations = 37
Number of inequality constraint Jacobian evaluations = 37
Number of Lagrangian Hessian evaluations = 0
Total seconds in IPOPT = 25.760
EXIT: Optimal Solution Found.
minimal_print is not available for this solution
Optimization Problem -- Optimization using pyOpt_sparse
================================================================================
Objective Function: _objfunc
Solution:
--------------------------------------------------------------------------------
Total Time: 25.7613
User Objective Time : 21.7034
User Sensitivity Time : 3.7400
Interface Time : 0.2324
Opt Solver Time: 0.0855
Calls to Objective Function : 38
Calls to Sens Function : 38
Objectives
Index Name Value
0 composite_objective 2.485174E+04
Variables (c - continuous, i - integer, d - discrete)
Index Name Type Lower Bound Value Upper Bound Status
0 Aircraft1:GROSS_MASS_0 c 1.000000E+01 1.565611E+05 9.000000E+05
1 Aircraft1:SWEEP_0 c 2.300000E+01 2.300000E+01 2.700000E+01 l
2 mission1.mission:summary:gross_mass_0 c 5.714286E-05 8.946349E-01 5.142857E+00
3 mission1.traj.climb.t_duration_0 c 5.000000E-01 5.000000E-01 1.500000E+00 l
4 mission1.traj.climb.states:mass_0 c 0.000000E+00 7.101492E+00 1.000000E+17
5 mission1.traj.climb.states:mass_1 c 0.000000E+00 7.073396E+00 1.000000E+17
6 mission1.traj.climb.states:mass_2 c 0.000000E+00 7.041200E+00 1.000000E+17
7 mission1.traj.climb.states:mass_3 c 0.000000E+00 7.032136E+00 1.000000E+17
8 mission1.traj.climb.states:mass_4 c 0.000000E+00 6.994784E+00 1.000000E+17
9 mission1.traj.climb.states:mass_5 c 0.000000E+00 6.951833E+00 1.000000E+17
10 mission1.traj.climb.states:mass_6 c 0.000000E+00 6.939171E+00 1.000000E+17
11 mission1.traj.climb.states:mass_7 c 0.000000E+00 6.906436E+00 1.000000E+17
12 mission1.traj.climb.states:mass_8 c 0.000000E+00 6.862944E+00 1.000000E+17
13 mission1.traj.climb.states:mass_9 c 0.000000E+00 6.849189E+00 1.000000E+17
14 mission1.traj.climb.states:mass_10 c 0.000000E+00 6.822836E+00 1.000000E+17
15 mission1.traj.climb.states:mass_11 c 0.000000E+00 6.786212E+00 1.000000E+17
16 mission1.traj.climb.states:mass_12 c 0.000000E+00 6.774514E+00 1.000000E+17
17 mission1.traj.climb.states:mass_13 c 0.000000E+00 6.761330E+00 1.000000E+17
18 mission1.traj.climb.states:mass_14 c 0.000000E+00 6.742957E+00 1.000000E+17
19 mission1.traj.climb.states:mass_15 c 0.000000E+00 6.737080E+00 1.000000E+17
20 mission1.traj.climb.states:distance_0 c 0.000000E+00 1.145810E-02 1.000000E+15
21 mission1.traj.climb.states:distance_1 c 0.000000E+00 2.910560E-02 1.000000E+15
22 mission1.traj.climb.states:distance_2 c 0.000000E+00 3.513105E-02 1.000000E+15
23 mission1.traj.climb.states:distance_3 c 0.000000E+00 6.608148E-02 1.000000E+15
24 mission1.traj.climb.states:distance_4 c 0.000000E+00 1.161455E-01 1.000000E+15
25 mission1.traj.climb.states:distance_5 c 0.000000E+00 1.337318E-01 1.000000E+15
26 mission1.traj.climb.states:distance_6 c 0.000000E+00 1.857547E-01 1.000000E+15
27 mission1.traj.climb.states:distance_7 c 0.000000E+00 2.672316E-01 1.000000E+15
28 mission1.traj.climb.states:distance_8 c 0.000000E+00 2.952969E-01 1.000000E+15
29 mission1.traj.climb.states:distance_9 c 0.000000E+00 3.523541E-01 1.000000E+15
30 mission1.traj.climb.states:distance_10 c 0.000000E+00 4.373995E-01 1.000000E+15
31 mission1.traj.climb.states:distance_11 c 0.000000E+00 4.658022E-01 1.000000E+15
32 mission1.traj.climb.states:distance_12 c 0.000000E+00 4.984787E-01 1.000000E+15
33 mission1.traj.climb.states:distance_13 c 0.000000E+00 5.449833E-01 1.000000E+15
34 mission1.traj.climb.states:distance_14 c 0.000000E+00 5.600394E-01 1.000000E+15
35 mission1.traj.cruise.t_duration_0 c 3.169705E-01 1.159576E+00 1.683029E+00
36 mission1.traj.cruise.states:mass_0 c 0.000000E+00 6.702951E+00 1.000000E+17
37 mission1.traj.cruise.states:mass_1 c 0.000000E+00 6.656111E+00 1.000000E+17
38 mission1.traj.cruise.states:mass_2 c 0.000000E+00 6.641345E+00 1.000000E+17
39 mission1.traj.cruise.states:mass_3 c 0.000000E+00 6.572673E+00 1.000000E+17
40 mission1.traj.cruise.states:mass_4 c 0.000000E+00 6.478932E+00 1.000000E+17
41 mission1.traj.cruise.states:mass_5 c 0.000000E+00 6.449503E+00 1.000000E+17
42 mission1.traj.cruise.states:mass_6 c 0.000000E+00 6.369951E+00 1.000000E+17
43 mission1.traj.cruise.states:mass_7 c 0.000000E+00 6.261538E+00 1.000000E+17
44 mission1.traj.cruise.states:mass_8 c 0.000000E+00 6.227551E+00 1.000000E+17
45 mission1.traj.cruise.states:mass_9 c 0.000000E+00 6.162527E+00 1.000000E+17
46 mission1.traj.cruise.states:mass_10 c 0.000000E+00 6.073747E+00 1.000000E+17
47 mission1.traj.cruise.states:mass_11 c 0.000000E+00 6.045874E+00 1.000000E+17
48 mission1.traj.cruise.states:mass_12 c 0.000000E+00 6.014750E+00 1.000000E+17
49 mission1.traj.cruise.states:mass_13 c 0.000000E+00 5.972028E+00 1.000000E+17
50 mission1.traj.cruise.states:mass_14 c 0.000000E+00 5.958560E+00 1.000000E+17
51 mission1.traj.cruise.states:distance_0 c 0.000000E+00 6.719679E-01 1.000000E+15
52 mission1.traj.cruise.states:distance_1 c 0.000000E+00 8.263390E-01 1.000000E+15
53 mission1.traj.cruise.states:distance_2 c 0.000000E+00 8.751806E-01 1.000000E+15
54 mission1.traj.cruise.states:distance_3 c 0.000000E+00 1.103491E+00 1.000000E+15
55 mission1.traj.cruise.states:distance_4 c 0.000000E+00 1.418230E+00 1.000000E+15
56 mission1.traj.cruise.states:distance_5 c 0.000000E+00 1.517776E+00 1.000000E+15
57 mission1.traj.cruise.states:distance_6 c 0.000000E+00 1.788621E+00 1.000000E+15
58 mission1.traj.cruise.states:distance_7 c 0.000000E+00 2.161932E+00 1.000000E+15
59 mission1.traj.cruise.states:distance_8 c 0.000000E+00 2.279988E+00 1.000000E+15
60 mission1.traj.cruise.states:distance_9 c 0.000000E+00 2.507239E+00 1.000000E+15
61 mission1.traj.cruise.states:distance_10 c 0.000000E+00 2.820517E+00 1.000000E+15
62 mission1.traj.cruise.states:distance_11 c 0.000000E+00 2.919600E+00 1.000000E+15
63 mission1.traj.cruise.states:distance_12 c 0.000000E+00 3.030657E+00 1.000000E+15
64 mission1.traj.cruise.states:distance_13 c 0.000000E+00 3.183826E+00 1.000000E+15
65 mission1.traj.cruise.states:distance_14 c 0.000000E+00 3.232287E+00 1.000000E+15
66 mission1.traj.descent.t_duration_0 c 5.000000E-01 5.000000E-01 1.500000E+00 l
67 mission1.traj.descent.states:mass_0 c 0.000000E+00 5.956429E+00 1.000000E+17
68 mission1.traj.descent.states:mass_1 c 0.000000E+00 5.953514E+00 1.000000E+17
69 mission1.traj.descent.states:mass_2 c 0.000000E+00 5.952599E+00 1.000000E+17
70 mission1.traj.descent.states:mass_3 c 0.000000E+00 5.948325E+00 1.000000E+17
71 mission1.traj.descent.states:mass_4 c 0.000000E+00 5.942461E+00 1.000000E+17
72 mission1.traj.descent.states:mass_5 c 0.000000E+00 5.940624E+00 1.000000E+17
73 mission1.traj.descent.states:mass_6 c 0.000000E+00 5.935677E+00 1.000000E+17
74 mission1.traj.descent.states:mass_7 c 0.000000E+00 5.929020E+00 1.000000E+17
75 mission1.traj.descent.states:mass_8 c 0.000000E+00 5.926962E+00 1.000000E+17
76 mission1.traj.descent.states:mass_9 c 0.000000E+00 5.923133E+00 1.000000E+17
77 mission1.traj.descent.states:mass_10 c 0.000000E+00 5.918226E+00 1.000000E+17
78 mission1.traj.descent.states:mass_11 c 0.000000E+00 5.916785E+00 1.000000E+17
79 mission1.traj.descent.states:mass_12 c 0.000000E+00 5.915231E+00 1.000000E+17
80 mission1.traj.descent.states:mass_13 c 0.000000E+00 5.913184E+00 1.000000E+17
81 mission1.traj.descent.states:mass_14 c 0.000000E+00 5.912558E+00 1.000000E+17
82 mission1.traj.descent.states:distance_0 c 0.000000E+00 3.247735E+00 1.000000E+15
83 mission1.traj.descent.states:distance_1 c 0.000000E+00 3.268667E+00 1.000000E+15
84 mission1.traj.descent.states:distance_2 c 0.000000E+00 3.275199E+00 1.000000E+15
85 mission1.traj.descent.states:distance_3 c 0.000000E+00 3.305128E+00 1.000000E+15
86 mission1.traj.descent.states:distance_4 c 0.000000E+00 3.344707E+00 1.000000E+15
87 mission1.traj.descent.states:distance_5 c 0.000000E+00 3.356805E+00 1.000000E+15
88 mission1.traj.descent.states:distance_6 c 0.000000E+00 3.388661E+00 1.000000E+15
89 mission1.traj.descent.states:distance_7 c 0.000000E+00 3.429932E+00 1.000000E+15
90 mission1.traj.descent.states:distance_8 c 0.000000E+00 3.442324E+00 1.000000E+15
91 mission1.traj.descent.states:distance_9 c 0.000000E+00 3.465255E+00 1.000000E+15
92 mission1.traj.descent.states:distance_10 c 0.000000E+00 3.494816E+00 1.000000E+15
93 mission1.traj.descent.states:distance_11 c 0.000000E+00 3.503658E+00 1.000000E+15
94 mission1.traj.descent.states:distance_12 c 0.000000E+00 3.513272E+00 1.000000E+15
95 mission1.traj.descent.states:distance_13 c 0.000000E+00 3.526009E+00 1.000000E+15
96 mission1.traj.descent.states:distance_14 c 0.000000E+00 3.529912E+00 1.000000E+15
97 mission2.mission:summary:gross_mass_0 c 5.714286E-05 6.813247E-01 5.142857E+00
98 mission2.traj.climb.t_duration_0 c 5.000000E-01 5.000000E-01 1.500000E+00 l
99 mission2.traj.climb.states:mass_0 c 0.000000E+00 5.408264E+00 1.000000E+17
100 mission2.traj.climb.states:mass_1 c 0.000000E+00 5.391325E+00 1.000000E+17
101 mission2.traj.climb.states:mass_2 c 0.000000E+00 5.371275E+00 1.000000E+17
102 mission2.traj.climb.states:mass_3 c 0.000000E+00 5.365467E+00 1.000000E+17
103 mission2.traj.climb.states:mass_4 c 0.000000E+00 5.340578E+00 1.000000E+17
104 mission2.traj.climb.states:mass_5 c 0.000000E+00 5.309573E+00 1.000000E+17
105 mission2.traj.climb.states:mass_6 c 0.000000E+00 5.299937E+00 1.000000E+17
106 mission2.traj.climb.states:mass_7 c 0.000000E+00 5.274227E+00 1.000000E+17
107 mission2.traj.climb.states:mass_8 c 0.000000E+00 5.239104E+00 1.000000E+17
108 mission2.traj.climb.states:mass_9 c 0.000000E+00 5.227971E+00 1.000000E+17
109 mission2.traj.climb.states:mass_10 c 0.000000E+00 5.206228E+00 1.000000E+17
110 mission2.traj.climb.states:mass_11 c 0.000000E+00 5.175636E+00 1.000000E+17
111 mission2.traj.climb.states:mass_12 c 0.000000E+00 5.165820E+00 1.000000E+17
112 mission2.traj.climb.states:mass_13 c 0.000000E+00 5.154787E+00 1.000000E+17
113 mission2.traj.climb.states:mass_14 c 0.000000E+00 5.139436E+00 1.000000E+17
114 mission2.traj.climb.states:mass_15 c 0.000000E+00 5.134520E+00 1.000000E+17
115 mission2.traj.climb.states:distance_0 c 0.000000E+00 1.145810E-02 1.000000E+15
116 mission2.traj.climb.states:distance_1 c 0.000000E+00 2.910560E-02 1.000000E+15
117 mission2.traj.climb.states:distance_2 c 0.000000E+00 3.513105E-02 1.000000E+15
118 mission2.traj.climb.states:distance_3 c 0.000000E+00 6.608149E-02 1.000000E+15
119 mission2.traj.climb.states:distance_4 c 0.000000E+00 1.161455E-01 1.000000E+15
120 mission2.traj.climb.states:distance_5 c 0.000000E+00 1.337318E-01 1.000000E+15
121 mission2.traj.climb.states:distance_6 c 0.000000E+00 1.857547E-01 1.000000E+15
122 mission2.traj.climb.states:distance_7 c 0.000000E+00 2.672316E-01 1.000000E+15
123 mission2.traj.climb.states:distance_8 c 0.000000E+00 2.952969E-01 1.000000E+15
124 mission2.traj.climb.states:distance_9 c 0.000000E+00 3.523541E-01 1.000000E+15
125 mission2.traj.climb.states:distance_10 c 0.000000E+00 4.373995E-01 1.000000E+15
126 mission2.traj.climb.states:distance_11 c 0.000000E+00 4.658022E-01 1.000000E+15
127 mission2.traj.climb.states:distance_12 c 0.000000E+00 4.984787E-01 1.000000E+15
128 mission2.traj.climb.states:distance_13 c 0.000000E+00 5.449833E-01 1.000000E+15
129 mission2.traj.climb.states:distance_14 c 0.000000E+00 5.600394E-01 1.000000E+15
130 mission2.traj.cruise.t_duration_0 c 3.169705E-01 1.159576E+00 1.683029E+00
131 mission2.traj.cruise.states:mass_0 c 0.000000E+00 5.104800E+00 1.000000E+17
132 mission2.traj.cruise.states:mass_1 c 0.000000E+00 5.063995E+00 1.000000E+17
133 mission2.traj.cruise.states:mass_2 c 0.000000E+00 5.051130E+00 1.000000E+17
134 mission2.traj.cruise.states:mass_3 c 0.000000E+00 4.991272E+00 1.000000E+17
135 mission2.traj.cruise.states:mass_4 c 0.000000E+00 4.909516E+00 1.000000E+17
136 mission2.traj.cruise.states:mass_5 c 0.000000E+00 4.883842E+00 1.000000E+17
137 mission2.traj.cruise.states:mass_6 c 0.000000E+00 4.814434E+00 1.000000E+17
138 mission2.traj.cruise.states:mass_7 c 0.000000E+00 4.719830E+00 1.000000E+17
139 mission2.traj.cruise.states:mass_8 c 0.000000E+00 4.690168E+00 1.000000E+17
140 mission2.traj.cruise.states:mass_9 c 0.000000E+00 4.633416E+00 1.000000E+17
141 mission2.traj.cruise.states:mass_10 c 0.000000E+00 4.555921E+00 1.000000E+17
142 mission2.traj.cruise.states:mass_11 c 0.000000E+00 4.531590E+00 1.000000E+17
143 mission2.traj.cruise.states:mass_12 c 0.000000E+00 4.504420E+00 1.000000E+17
144 mission2.traj.cruise.states:mass_13 c 0.000000E+00 4.467124E+00 1.000000E+17
145 mission2.traj.cruise.states:mass_14 c 0.000000E+00 4.455367E+00 1.000000E+17
146 mission2.traj.cruise.states:distance_0 c 0.000000E+00 6.719679E-01 1.000000E+15
147 mission2.traj.cruise.states:distance_1 c 0.000000E+00 8.263390E-01 1.000000E+15
148 mission2.traj.cruise.states:distance_2 c 0.000000E+00 8.751806E-01 1.000000E+15
149 mission2.traj.cruise.states:distance_3 c 0.000000E+00 1.103491E+00 1.000000E+15
150 mission2.traj.cruise.states:distance_4 c 0.000000E+00 1.418230E+00 1.000000E+15
151 mission2.traj.cruise.states:distance_5 c 0.000000E+00 1.517776E+00 1.000000E+15
152 mission2.traj.cruise.states:distance_6 c 0.000000E+00 1.788621E+00 1.000000E+15
153 mission2.traj.cruise.states:distance_7 c 0.000000E+00 2.161932E+00 1.000000E+15
154 mission2.traj.cruise.states:distance_8 c 0.000000E+00 2.279988E+00 1.000000E+15
155 mission2.traj.cruise.states:distance_9 c 0.000000E+00 2.507239E+00 1.000000E+15
156 mission2.traj.cruise.states:distance_10 c 0.000000E+00 2.820517E+00 1.000000E+15
157 mission2.traj.cruise.states:distance_11 c 0.000000E+00 2.919600E+00 1.000000E+15
158 mission2.traj.cruise.states:distance_12 c 0.000000E+00 3.030657E+00 1.000000E+15
159 mission2.traj.cruise.states:distance_13 c 0.000000E+00 3.183826E+00 1.000000E+15
160 mission2.traj.cruise.states:distance_14 c 0.000000E+00 3.232287E+00 1.000000E+15
161 mission2.traj.descent.t_duration_0 c 5.000000E-01 5.000000E-01 1.500000E+00 l
162 mission2.traj.descent.states:mass_0 c 0.000000E+00 4.453191E+00 1.000000E+17
163 mission2.traj.descent.states:mass_1 c 0.000000E+00 4.450172E+00 1.000000E+17
164 mission2.traj.descent.states:mass_2 c 0.000000E+00 4.449215E+00 1.000000E+17
165 mission2.traj.descent.states:mass_3 c 0.000000E+00 4.444693E+00 1.000000E+17
166 mission2.traj.descent.states:mass_4 c 0.000000E+00 4.438392E+00 1.000000E+17
167 mission2.traj.descent.states:mass_5 c 0.000000E+00 4.436401E+00 1.000000E+17
168 mission2.traj.descent.states:mass_6 c 0.000000E+00 4.431006E+00 1.000000E+17
169 mission2.traj.descent.states:mass_7 c 0.000000E+00 4.423644E+00 1.000000E+17
170 mission2.traj.descent.states:mass_8 c 0.000000E+00 4.421336E+00 1.000000E+17
171 mission2.traj.descent.states:mass_9 c 0.000000E+00 4.416980E+00 1.000000E+17
172 mission2.traj.descent.states:mass_10 c 0.000000E+00 4.411241E+00 1.000000E+17
173 mission2.traj.descent.states:mass_11 c 0.000000E+00 4.409509E+00 1.000000E+17
174 mission2.traj.descent.states:mass_12 c 0.000000E+00 4.407627E+00 1.000000E+17
175 mission2.traj.descent.states:mass_13 c 0.000000E+00 4.405130E+00 1.000000E+17
176 mission2.traj.descent.states:mass_14 c 0.000000E+00 4.404364E+00 1.000000E+17
177 mission2.traj.descent.states:distance_0 c 0.000000E+00 3.247735E+00 1.000000E+15
178 mission2.traj.descent.states:distance_1 c 0.000000E+00 3.268667E+00 1.000000E+15
179 mission2.traj.descent.states:distance_2 c 0.000000E+00 3.275199E+00 1.000000E+15
180 mission2.traj.descent.states:distance_3 c 0.000000E+00 3.305128E+00 1.000000E+15
181 mission2.traj.descent.states:distance_4 c 0.000000E+00 3.344707E+00 1.000000E+15
182 mission2.traj.descent.states:distance_5 c 0.000000E+00 3.356805E+00 1.000000E+15
183 mission2.traj.descent.states:distance_6 c 0.000000E+00 3.388661E+00 1.000000E+15
184 mission2.traj.descent.states:distance_7 c 0.000000E+00 3.429932E+00 1.000000E+15
185 mission2.traj.descent.states:distance_8 c 0.000000E+00 3.442324E+00 1.000000E+15
186 mission2.traj.descent.states:distance_9 c 0.000000E+00 3.465255E+00 1.000000E+15
187 mission2.traj.descent.states:distance_10 c 0.000000E+00 3.494816E+00 1.000000E+15
188 mission2.traj.descent.states:distance_11 c 0.000000E+00 3.503658E+00 1.000000E+15
189 mission2.traj.descent.states:distance_12 c 0.000000E+00 3.513272E+00 1.000000E+15
190 mission2.traj.descent.states:distance_13 c 0.000000E+00 3.526009E+00 1.000000E+15
191 mission2.traj.descent.states:distance_14 c 0.000000E+00 3.529912E+00 1.000000E+15
Constraints (i - inequality, e - equality)
Index Name Type Lower Value Upper Status Lagrange Multiplier (N/A)
0 mission1.mission:constraints:range_residual e 0.000000E+00 2.273737E-14 0.000000E+00 9.00000E+100
1 mission1.link_climb_mass.mass e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100
2 mission1.mission:constraints:mass_residual e 0.000000E+00 -8.731149E-16 0.000000E+00 9.00000E+100
3 mission1.traj.climb.collocation_constraint.defects:mass e 0.000000E+00 1.977216E-14 0.000000E+00 9.00000E+100
4 mission1.traj.climb.collocation_constraint.defects:mass e 0.000000E+00 8.679119E-15 0.000000E+00 9.00000E+100
5 mission1.traj.climb.collocation_constraint.defects:mass e 0.000000E+00 5.554035E-15 0.000000E+00 9.00000E+100
6 mission1.traj.climb.collocation_constraint.defects:mass e 0.000000E+00 1.469772E-14 0.000000E+00 9.00000E+100
7 mission1.traj.climb.collocation_constraint.defects:mass e 0.000000E+00 1.282599E-14 0.000000E+00 9.00000E+100
8 mission1.traj.climb.collocation_constraint.defects:mass e 0.000000E+00 7.103387E-15 0.000000E+00 9.00000E+100
9 mission1.traj.climb.collocation_constraint.defects:mass e 0.000000E+00 6.773204E-15 0.000000E+00 9.00000E+100
10 mission1.traj.climb.collocation_constraint.defects:mass e 0.000000E+00 9.539638E-15 0.000000E+00 9.00000E+100
11 mission1.traj.climb.collocation_constraint.defects:mass e 0.000000E+00 4.991742E-15 0.000000E+00 9.00000E+100
12 mission1.traj.climb.collocation_constraint.defects:mass e 0.000000E+00 -2.935453E-15 0.000000E+00 9.00000E+100
13 mission1.traj.climb.collocation_constraint.defects:mass e 0.000000E+00 7.088045E-15 0.000000E+00 9.00000E+100
14 mission1.traj.climb.collocation_constraint.defects:mass e 0.000000E+00 5.748169E-15 0.000000E+00 9.00000E+100
15 mission1.traj.climb.collocation_constraint.defects:mass e 0.000000E+00 1.064231E-15 0.000000E+00 9.00000E+100
16 mission1.traj.climb.collocation_constraint.defects:mass e 0.000000E+00 2.401406E-15 0.000000E+00 9.00000E+100
17 mission1.traj.climb.collocation_constraint.defects:mass e 0.000000E+00 6.027305E-15 0.000000E+00 9.00000E+100
18 mission1.traj.climb.collocation_constraint.defects:distance e 0.000000E+00 -3.205214E-18 0.000000E+00 9.00000E+100
19 mission1.traj.climb.collocation_constraint.defects:distance e 0.000000E+00 6.410428E-18 0.000000E+00 9.00000E+100
20 mission1.traj.climb.collocation_constraint.defects:distance e 0.000000E+00 1.282086E-17 0.000000E+00 9.00000E+100
21 mission1.traj.climb.collocation_constraint.defects:distance e 0.000000E+00 1.178272E-16 0.000000E+00 9.00000E+100
22 mission1.traj.climb.collocation_constraint.defects:distance e 0.000000E+00 -3.272979E-17 0.000000E+00 9.00000E+100
23 mission1.traj.climb.collocation_constraint.defects:distance e 0.000000E+00 2.618383E-17 0.000000E+00 9.00000E+100
24 mission1.traj.climb.collocation_constraint.defects:distance e 0.000000E+00 7.782496E-18 0.000000E+00 9.00000E+100
25 mission1.traj.climb.collocation_constraint.defects:distance e 0.000000E+00 3.112999E-17 0.000000E+00 9.00000E+100
26 mission1.traj.climb.collocation_constraint.defects:distance e 0.000000E+00 -2.334749E-16 0.000000E+00 9.00000E+100
27 mission1.traj.climb.collocation_constraint.defects:distance e 0.000000E+00 1.047353E-16 0.000000E+00 9.00000E+100
28 mission1.traj.climb.collocation_constraint.defects:distance e 0.000000E+00 1.832868E-16 0.000000E+00 9.00000E+100
29 mission1.traj.climb.collocation_constraint.defects:distance e 0.000000E+00 -1.309192E-17 0.000000E+00 9.00000E+100
30 mission1.traj.climb.collocation_constraint.defects:distance e 0.000000E+00 8.333556E-17 0.000000E+00 9.00000E+100
31 mission1.traj.climb.collocation_constraint.defects:distance e 0.000000E+00 8.333556E-17 0.000000E+00 9.00000E+100
32 mission1.traj.climb.collocation_constraint.defects:distance e 0.000000E+00 1.153877E-16 0.000000E+00 9.00000E+100
33 mission1.traj.cruise.collocation_constraint.defects:mass e 0.000000E+00 2.757721E-15 0.000000E+00 9.00000E+100
34 mission1.traj.cruise.collocation_constraint.defects:mass e 0.000000E+00 4.213410E-15 0.000000E+00 9.00000E+100
35 mission1.traj.cruise.collocation_constraint.defects:mass e 0.000000E+00 4.593506E-15 0.000000E+00 9.00000E+100
36 mission1.traj.cruise.collocation_constraint.defects:mass e 0.000000E+00 1.108242E-14 0.000000E+00 9.00000E+100
37 mission1.traj.cruise.collocation_constraint.defects:mass e 0.000000E+00 6.540446E-15 0.000000E+00 9.00000E+100
38 mission1.traj.cruise.collocation_constraint.defects:mass e 0.000000E+00 2.312279E-15 0.000000E+00 9.00000E+100
39 mission1.traj.cruise.collocation_constraint.defects:mass e 0.000000E+00 6.440680E-15 0.000000E+00 9.00000E+100
40 mission1.traj.cruise.collocation_constraint.defects:mass e 0.000000E+00 5.930138E-15 0.000000E+00 9.00000E+100
41 mission1.traj.cruise.collocation_constraint.defects:mass e 0.000000E+00 1.007338E-14 0.000000E+00 9.00000E+100
42 mission1.traj.cruise.collocation_constraint.defects:mass e 0.000000E+00 1.390671E-14 0.000000E+00 9.00000E+100
43 mission1.traj.cruise.collocation_constraint.defects:mass e 0.000000E+00 5.714632E-15 0.000000E+00 9.00000E+100
44 mission1.traj.cruise.collocation_constraint.defects:mass e 0.000000E+00 7.944329E-15 0.000000E+00 9.00000E+100
45 mission1.traj.cruise.collocation_constraint.defects:mass e 0.000000E+00 1.916657E-15 0.000000E+00 9.00000E+100
46 mission1.traj.cruise.collocation_constraint.defects:mass e 0.000000E+00 3.517914E-15 0.000000E+00 9.00000E+100
47 mission1.traj.cruise.collocation_constraint.defects:mass e 0.000000E+00 5.272828E-15 0.000000E+00 9.00000E+100
48 mission1.traj.cruise.collocation_constraint.defects:distance e 0.000000E+00 -2.484375E-16 0.000000E+00 9.00000E+100
49 mission1.traj.cruise.collocation_constraint.defects:distance e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100
50 mission1.traj.cruise.collocation_constraint.defects:distance e 0.000000E+00 -2.691406E-16 0.000000E+00 9.00000E+100
51 mission1.traj.cruise.collocation_constraint.defects:distance e 0.000000E+00 -4.228167E-16 0.000000E+00 9.00000E+100
52 mission1.traj.cruise.collocation_constraint.defects:distance e 0.000000E+00 -8.456334E-17 0.000000E+00 9.00000E+100
53 mission1.traj.cruise.collocation_constraint.defects:distance e 0.000000E+00 -8.456334E-17 0.000000E+00 9.00000E+100
54 mission1.traj.cruise.collocation_constraint.defects:distance e 0.000000E+00 7.540308E-16 0.000000E+00 9.00000E+100
55 mission1.traj.cruise.collocation_constraint.defects:distance e 0.000000E+00 -1.508062E-16 0.000000E+00 9.00000E+100
56 mission1.traj.cruise.collocation_constraint.defects:distance e 0.000000E+00 2.010749E-16 0.000000E+00 9.00000E+100
57 mission1.traj.cruise.collocation_constraint.defects:distance e 0.000000E+00 -7.187884E-16 0.000000E+00 9.00000E+100
58 mission1.traj.cruise.collocation_constraint.defects:distance e 0.000000E+00 8.456334E-17 0.000000E+00 9.00000E+100
59 mission1.traj.cruise.collocation_constraint.defects:distance e 0.000000E+00 3.805350E-16 0.000000E+00 9.00000E+100
60 mission1.traj.cruise.collocation_constraint.defects:distance e 0.000000E+00 -6.210938E-17 0.000000E+00 9.00000E+100
61 mission1.traj.cruise.collocation_constraint.defects:distance e 0.000000E+00 -4.140625E-17 0.000000E+00 9.00000E+100
62 mission1.traj.cruise.collocation_constraint.defects:distance e 0.000000E+00 7.453126E-16 0.000000E+00 9.00000E+100
63 mission1.traj.descent.collocation_constraint.defects:mass e 0.000000E+00 5.964331E-15 0.000000E+00 9.00000E+100
64 mission1.traj.descent.collocation_constraint.defects:mass e 0.000000E+00 1.134658E-17 0.000000E+00 9.00000E+100
65 mission1.traj.descent.collocation_constraint.defects:mass e 0.000000E+00 5.827038E-15 0.000000E+00 9.00000E+100
66 mission1.traj.descent.collocation_constraint.defects:mass e 0.000000E+00 5.890563E-15 0.000000E+00 9.00000E+100
67 mission1.traj.descent.collocation_constraint.defects:mass e 0.000000E+00 3.265068E-15 0.000000E+00 9.00000E+100
68 mission1.traj.descent.collocation_constraint.defects:mass e 0.000000E+00 5.851169E-16 0.000000E+00 9.00000E+100
69 mission1.traj.descent.collocation_constraint.defects:mass e 0.000000E+00 -3.113189E-16 0.000000E+00 9.00000E+100
70 mission1.traj.descent.collocation_constraint.defects:mass e 0.000000E+00 3.095281E-15 0.000000E+00 9.00000E+100
71 mission1.traj.descent.collocation_constraint.defects:mass e 0.000000E+00 -4.614682E-16 0.000000E+00 9.00000E+100
72 mission1.traj.descent.collocation_constraint.defects:mass e 0.000000E+00 -1.821394E-15 0.000000E+00 9.00000E+100
73 mission1.traj.descent.collocation_constraint.defects:mass e 0.000000E+00 2.355530E-15 0.000000E+00 9.00000E+100
74 mission1.traj.descent.collocation_constraint.defects:mass e 0.000000E+00 1.653969E-15 0.000000E+00 9.00000E+100
75 mission1.traj.descent.collocation_constraint.defects:mass e 0.000000E+00 4.633661E-15 0.000000E+00 9.00000E+100
76 mission1.traj.descent.collocation_constraint.defects:mass e 0.000000E+00 1.125014E-15 0.000000E+00 9.00000E+100
77 mission1.traj.descent.collocation_constraint.defects:mass e 0.000000E+00 2.240383E-15 0.000000E+00 9.00000E+100
78 mission1.traj.descent.collocation_constraint.defects:distance e 0.000000E+00 -9.237026E-16 0.000000E+00 9.00000E+100
79 mission1.traj.descent.collocation_constraint.defects:distance e 0.000000E+00 1.510457E-16 0.000000E+00 9.00000E+100
80 mission1.traj.descent.collocation_constraint.defects:distance e 0.000000E+00 -1.684741E-15 0.000000E+00 9.00000E+100
81 mission1.traj.descent.collocation_constraint.defects:distance e 0.000000E+00 1.483069E-15 0.000000E+00 9.00000E+100
82 mission1.traj.descent.collocation_constraint.defects:distance e 0.000000E+00 5.398370E-16 0.000000E+00 9.00000E+100
83 mission1.traj.descent.collocation_constraint.defects:distance e 0.000000E+00 1.020351E-15 0.000000E+00 9.00000E+100
84 mission1.traj.descent.collocation_constraint.defects:distance e 0.000000E+00 -2.165236E-15 0.000000E+00 9.00000E+100
85 mission1.traj.descent.collocation_constraint.defects:distance e 0.000000E+00 2.115866E-17 0.000000E+00 9.00000E+100
86 mission1.traj.descent.collocation_constraint.defects:distance e 0.000000E+00 2.426193E-15 0.000000E+00 9.00000E+100
87 mission1.traj.descent.collocation_constraint.defects:distance e 0.000000E+00 9.610285E-16 0.000000E+00 9.00000E+100
88 mission1.traj.descent.collocation_constraint.defects:distance e 0.000000E+00 7.830602E-16 0.000000E+00 9.00000E+100
89 mission1.traj.descent.collocation_constraint.defects:distance e 0.000000E+00 -5.872952E-16 0.000000E+00 9.00000E+100
90 mission1.traj.descent.collocation_constraint.defects:distance e 0.000000E+00 -1.803834E-15 0.000000E+00 9.00000E+100
91 mission1.traj.descent.collocation_constraint.defects:distance e 0.000000E+00 -4.705655E-16 0.000000E+00 9.00000E+100
92 mission1.traj.descent.collocation_constraint.defects:distance e 0.000000E+00 7.290860E-16 0.000000E+00 9.00000E+100
93 mission2.mission:constraints:range_residual e 0.000000E+00 -2.273737E-14 0.000000E+00 9.00000E+100
94 mission2.link_climb_mass.mass e 0.000000E+00 -1.455192E-16 0.000000E+00 9.00000E+100
95 mission2.mission:constraints:mass_residual e 0.000000E+00 -5.820766E-16 0.000000E+00 9.00000E+100
96 mission2.traj.climb.collocation_constraint.defects:mass e 0.000000E+00 1.952677E-14 0.000000E+00 9.00000E+100
97 mission2.traj.climb.collocation_constraint.defects:mass e 0.000000E+00 1.827473E-14 0.000000E+00 9.00000E+100
98 mission2.traj.climb.collocation_constraint.defects:mass e 0.000000E+00 1.021412E-14 0.000000E+00 9.00000E+100
99 mission2.traj.climb.collocation_constraint.defects:mass e 0.000000E+00 2.769247E-14 0.000000E+00 9.00000E+100
100 mission2.traj.climb.collocation_constraint.defects:mass e 0.000000E+00 1.870201E-14 0.000000E+00 9.00000E+100
101 mission2.traj.climb.collocation_constraint.defects:mass e 0.000000E+00 8.412579E-15 0.000000E+00 9.00000E+100
102 mission2.traj.climb.collocation_constraint.defects:mass e 0.000000E+00 8.256742E-15 0.000000E+00 9.00000E+100
103 mission2.traj.climb.collocation_constraint.defects:mass e 0.000000E+00 9.515318E-15 0.000000E+00 9.00000E+100
104 mission2.traj.climb.collocation_constraint.defects:mass e 0.000000E+00 4.316854E-15 0.000000E+00 9.00000E+100
105 mission2.traj.climb.collocation_constraint.defects:mass e 0.000000E+00 3.953145E-15 0.000000E+00 9.00000E+100
106 mission2.traj.climb.collocation_constraint.defects:mass e 0.000000E+00 1.073946E-15 0.000000E+00 9.00000E+100
107 mission2.traj.climb.collocation_constraint.defects:mass e 0.000000E+00 -5.625433E-17 0.000000E+00 9.00000E+100
108 mission2.traj.climb.collocation_constraint.defects:mass e 0.000000E+00 3.660955E-15 0.000000E+00 9.00000E+100
109 mission2.traj.climb.collocation_constraint.defects:mass e 0.000000E+00 -6.460510E-16 0.000000E+00 9.00000E+100
110 mission2.traj.climb.collocation_constraint.defects:mass e 0.000000E+00 1.650184E-15 0.000000E+00 9.00000E+100
111 mission2.traj.climb.collocation_constraint.defects:distance e 0.000000E+00 1.057721E-16 0.000000E+00 9.00000E+100
112 mission2.traj.climb.collocation_constraint.defects:distance e 0.000000E+00 9.615642E-17 0.000000E+00 9.00000E+100
113 mission2.traj.climb.collocation_constraint.defects:distance e 0.000000E+00 8.654078E-17 0.000000E+00 9.00000E+100
114 mission2.traj.climb.collocation_constraint.defects:distance e 0.000000E+00 2.422005E-16 0.000000E+00 9.00000E+100
115 mission2.traj.climb.collocation_constraint.defects:distance e 0.000000E+00 1.309192E-16 0.000000E+00 9.00000E+100
116 mission2.traj.climb.collocation_constraint.defects:distance e 0.000000E+00 9.818937E-17 0.000000E+00 9.00000E+100
117 mission2.traj.climb.collocation_constraint.defects:distance e 0.000000E+00 -1.556499E-17 0.000000E+00 9.00000E+100
118 mission2.traj.climb.collocation_constraint.defects:distance e 0.000000E+00 2.179099E-16 0.000000E+00 9.00000E+100
119 mission2.traj.climb.collocation_constraint.defects:distance e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100
120 mission2.traj.climb.collocation_constraint.defects:distance e 0.000000E+00 7.855150E-17 0.000000E+00 9.00000E+100
121 mission2.traj.climb.collocation_constraint.defects:distance e 0.000000E+00 2.618383E-17 0.000000E+00 9.00000E+100
122 mission2.traj.climb.collocation_constraint.defects:distance e 0.000000E+00 1.309192E-16 0.000000E+00 9.00000E+100
123 mission2.traj.climb.collocation_constraint.defects:distance e 0.000000E+00 4.038570E-16 0.000000E+00 9.00000E+100
124 mission2.traj.climb.collocation_constraint.defects:distance e 0.000000E+00 -7.051471E-17 0.000000E+00 9.00000E+100
125 mission2.traj.climb.collocation_constraint.defects:distance e 0.000000E+00 1.794920E-16 0.000000E+00 9.00000E+100
126 mission2.traj.cruise.collocation_constraint.defects:mass e 0.000000E+00 1.512299E-15 0.000000E+00 9.00000E+100
127 mission2.traj.cruise.collocation_constraint.defects:mass e 0.000000E+00 -3.234864E-17 0.000000E+00 9.00000E+100
128 mission2.traj.cruise.collocation_constraint.defects:mass e 0.000000E+00 3.372345E-15 0.000000E+00 9.00000E+100
129 mission2.traj.cruise.collocation_constraint.defects:mass e 0.000000E+00 -9.249115E-16 0.000000E+00 9.00000E+100
130 mission2.traj.cruise.collocation_constraint.defects:mass e 0.000000E+00 -1.618595E-15 0.000000E+00 9.00000E+100
131 mission2.traj.cruise.collocation_constraint.defects:mass e 0.000000E+00 -1.106591E-15 0.000000E+00 9.00000E+100
132 mission2.traj.cruise.collocation_constraint.defects:mass e 0.000000E+00 -1.806532E-15 0.000000E+00 9.00000E+100
133 mission2.traj.cruise.collocation_constraint.defects:mass e 0.000000E+00 -3.475611E-15 0.000000E+00 9.00000E+100
134 mission2.traj.cruise.collocation_constraint.defects:mass e 0.000000E+00 -7.383218E-15 0.000000E+00 9.00000E+100
135 mission2.traj.cruise.collocation_constraint.defects:mass e 0.000000E+00 -5.053981E-15 0.000000E+00 9.00000E+100
136 mission2.traj.cruise.collocation_constraint.defects:mass e 0.000000E+00 -5.830246E-15 0.000000E+00 9.00000E+100
137 mission2.traj.cruise.collocation_constraint.defects:mass e 0.000000E+00 -6.375283E-15 0.000000E+00 9.00000E+100
138 mission2.traj.cruise.collocation_constraint.defects:mass e 0.000000E+00 -5.847016E-15 0.000000E+00 9.00000E+100
139 mission2.traj.cruise.collocation_constraint.defects:mass e 0.000000E+00 -5.628663E-15 0.000000E+00 9.00000E+100
140 mission2.traj.cruise.collocation_constraint.defects:mass e 0.000000E+00 -4.569245E-15 0.000000E+00 9.00000E+100
141 mission2.traj.cruise.collocation_constraint.defects:distance e 0.000000E+00 1.242188E-16 0.000000E+00 9.00000E+100
142 mission2.traj.cruise.collocation_constraint.defects:distance e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100
143 mission2.traj.cruise.collocation_constraint.defects:distance e 0.000000E+00 2.070313E-17 0.000000E+00 9.00000E+100
144 mission2.traj.cruise.collocation_constraint.defects:distance e 0.000000E+00 -1.014760E-15 0.000000E+00 9.00000E+100
145 mission2.traj.cruise.collocation_constraint.defects:distance e 0.000000E+00 2.536900E-16 0.000000E+00 9.00000E+100
146 mission2.traj.cruise.collocation_constraint.defects:distance e 0.000000E+00 1.268450E-16 0.000000E+00 9.00000E+100
147 mission2.traj.cruise.collocation_constraint.defects:distance e 0.000000E+00 -9.048370E-16 0.000000E+00 9.00000E+100
148 mission2.traj.cruise.collocation_constraint.defects:distance e 0.000000E+00 1.005374E-15 0.000000E+00 9.00000E+100
149 mission2.traj.cruise.collocation_constraint.defects:distance e 0.000000E+00 -4.021498E-16 0.000000E+00 9.00000E+100
150 mission2.traj.cruise.collocation_constraint.defects:distance e 0.000000E+00 -7.610700E-16 0.000000E+00 9.00000E+100
151 mission2.traj.cruise.collocation_constraint.defects:distance e 0.000000E+00 -9.301967E-16 0.000000E+00 9.00000E+100
152 mission2.traj.cruise.collocation_constraint.defects:distance e 0.000000E+00 1.479858E-15 0.000000E+00 9.00000E+100
153 mission2.traj.cruise.collocation_constraint.defects:distance e 0.000000E+00 -1.532031E-15 0.000000E+00 9.00000E+100
154 mission2.traj.cruise.collocation_constraint.defects:distance e 0.000000E+00 -2.484375E-16 0.000000E+00 9.00000E+100
155 mission2.traj.cruise.collocation_constraint.defects:distance e 0.000000E+00 7.660157E-16 0.000000E+00 9.00000E+100
156 mission2.traj.descent.collocation_constraint.defects:mass e 0.000000E+00 1.741133E-15 0.000000E+00 9.00000E+100
157 mission2.traj.descent.collocation_constraint.defects:mass e 0.000000E+00 4.590260E-15 0.000000E+00 9.00000E+100
158 mission2.traj.descent.collocation_constraint.defects:mass e 0.000000E+00 2.618224E-15 0.000000E+00 9.00000E+100
159 mission2.traj.descent.collocation_constraint.defects:mass e 0.000000E+00 9.250641E-15 0.000000E+00 9.00000E+100
160 mission2.traj.descent.collocation_constraint.defects:mass e 0.000000E+00 7.574078E-15 0.000000E+00 9.00000E+100
161 mission2.traj.descent.collocation_constraint.defects:mass e 0.000000E+00 7.043418E-15 0.000000E+00 9.00000E+100
162 mission2.traj.descent.collocation_constraint.defects:mass e 0.000000E+00 1.167859E-14 0.000000E+00 9.00000E+100
163 mission2.traj.descent.collocation_constraint.defects:mass e 0.000000E+00 6.753967E-15 0.000000E+00 9.00000E+100
164 mission2.traj.descent.collocation_constraint.defects:mass e 0.000000E+00 8.850548E-15 0.000000E+00 9.00000E+100
165 mission2.traj.descent.collocation_constraint.defects:mass e 0.000000E+00 1.642962E-15 0.000000E+00 9.00000E+100
166 mission2.traj.descent.collocation_constraint.defects:mass e 0.000000E+00 7.623900E-15 0.000000E+00 9.00000E+100
167 mission2.traj.descent.collocation_constraint.defects:mass e 0.000000E+00 5.613647E-15 0.000000E+00 9.00000E+100
168 mission2.traj.descent.collocation_constraint.defects:mass e 0.000000E+00 2.275557E-15 0.000000E+00 9.00000E+100
169 mission2.traj.descent.collocation_constraint.defects:mass e 0.000000E+00 4.462611E-15 0.000000E+00 9.00000E+100
170 mission2.traj.descent.collocation_constraint.defects:mass e 0.000000E+00 3.778412E-16 0.000000E+00 9.00000E+100
171 mission2.traj.descent.collocation_constraint.defects:distance e 0.000000E+00 3.415957E-15 0.000000E+00 9.00000E+100
172 mission2.traj.descent.collocation_constraint.defects:distance e 0.000000E+00 -7.639428E-16 0.000000E+00 9.00000E+100
173 mission2.traj.descent.collocation_constraint.defects:distance e 0.000000E+00 9.556546E-16 0.000000E+00 9.00000E+100
174 mission2.traj.descent.collocation_constraint.defects:distance e 0.000000E+00 2.788169E-15 0.000000E+00 9.00000E+100
175 mission2.traj.descent.collocation_constraint.defects:distance e 0.000000E+00 5.398370E-16 0.000000E+00 9.00000E+100
176 mission2.traj.descent.collocation_constraint.defects:distance e 0.000000E+00 3.476313E-15 0.000000E+00 9.00000E+100
177 mission2.traj.descent.collocation_constraint.defects:distance e 0.000000E+00 2.496722E-15 0.000000E+00 9.00000E+100
178 mission2.traj.descent.collocation_constraint.defects:distance e 0.000000E+00 2.694203E-15 0.000000E+00 9.00000E+100
179 mission2.traj.descent.collocation_constraint.defects:distance e 0.000000E+00 1.622164E-16 0.000000E+00 9.00000E+100
180 mission2.traj.descent.collocation_constraint.defects:distance e 0.000000E+00 4.330561E-15 0.000000E+00 9.00000E+100
181 mission2.traj.descent.collocation_constraint.defects:distance e 0.000000E+00 2.319519E-15 0.000000E+00 9.00000E+100
182 mission2.traj.descent.collocation_constraint.defects:distance e 0.000000E+00 8.720444E-16 0.000000E+00 9.00000E+100
183 mission2.traj.descent.collocation_constraint.defects:distance e 0.000000E+00 2.579396E-15 0.000000E+00 9.00000E+100
184 mission2.traj.descent.collocation_constraint.defects:distance e 0.000000E+00 2.256972E-15 0.000000E+00 9.00000E+100
185 mission2.traj.descent.collocation_constraint.defects:distance e 0.000000E+00 9.454881E-16 0.000000E+00 9.00000E+100
186 mission1.gross_mass_resid i 0.000000E+00 5.948465E-04 1.000000E+30 9.00000E+100
187 mission1.traj.climb.throttle[path] i 0.000000E+00 9.741732E-01 1.000000E+00 9.00000E+100
188 mission1.traj.climb.throttle[path] i 0.000000E+00 8.643698E-01 1.000000E+00 9.00000E+100
189 mission1.traj.climb.throttle[path] i 0.000000E+00 7.397020E-01 1.000000E+00 9.00000E+100
190 mission1.traj.climb.throttle[path] i 0.000000E+00 7.093587E-01 1.000000E+00 9.00000E+100
191 mission1.traj.climb.throttle[path] i 0.000000E+00 7.093587E-01 1.000000E+00 9.00000E+100
192 mission1.traj.climb.throttle[path] i 0.000000E+00 6.364464E-01 1.000000E+00 9.00000E+100
193 mission1.traj.climb.throttle[path] i 0.000000E+00 6.337765E-01 1.000000E+00 9.00000E+100
194 mission1.traj.climb.throttle[path] i 0.000000E+00 6.338460E-01 1.000000E+00 9.00000E+100
195 mission1.traj.climb.throttle[path] i 0.000000E+00 6.338460E-01 1.000000E+00 9.00000E+100
196 mission1.traj.climb.throttle[path] i 0.000000E+00 6.786404E-01 1.000000E+00 9.00000E+100
197 mission1.traj.climb.throttle[path] i 0.000000E+00 6.641890E-01 1.000000E+00 9.00000E+100
198 mission1.traj.climb.throttle[path] i 0.000000E+00 6.877548E-01 1.000000E+00 9.00000E+100
199 mission1.traj.climb.throttle[path] i 0.000000E+00 6.877548E-01 1.000000E+00 9.00000E+100
200 mission1.traj.climb.throttle[path] i 0.000000E+00 7.304937E-01 1.000000E+00 9.00000E+100
201 mission1.traj.climb.throttle[path] i 0.000000E+00 7.408503E-01 1.000000E+00 9.00000E+100
202 mission1.traj.climb.throttle[path] i 0.000000E+00 7.595789E-01 1.000000E+00 9.00000E+100
203 mission1.traj.climb.throttle[path] i 0.000000E+00 7.595789E-01 1.000000E+00 9.00000E+100
204 mission1.traj.climb.throttle[path] i 0.000000E+00 7.950132E-01 1.000000E+00 9.00000E+100
205 mission1.traj.climb.throttle[path] i 0.000000E+00 8.263592E-01 1.000000E+00 9.00000E+100
206 mission1.traj.climb.throttle[path] i 0.000000E+00 8.270646E-01 1.000000E+00 9.00000E+100
207 mission1.traj.cruise.throttle[path] i 0.000000E+00 7.232305E-01 1.000000E+00 9.00000E+100
208 mission1.traj.cruise.throttle[path] i 0.000000E+00 7.219679E-01 1.000000E+00 9.00000E+100
209 mission1.traj.cruise.throttle[path] i 0.000000E+00 7.202384E-01 1.000000E+00 9.00000E+100
210 mission1.traj.cruise.throttle[path] i 0.000000E+00 7.196922E-01 1.000000E+00 9.00000E+100
211 mission1.traj.cruise.throttle[path] i 0.000000E+00 7.196922E-01 1.000000E+00 9.00000E+100
212 mission1.traj.cruise.throttle[path] i 0.000000E+00 7.171448E-01 1.000000E+00 9.00000E+100
213 mission1.traj.cruise.throttle[path] i 0.000000E+00 7.136143E-01 1.000000E+00 9.00000E+100
214 mission1.traj.cruise.throttle[path] i 0.000000E+00 7.124589E-01 1.000000E+00 9.00000E+100
215 mission1.traj.cruise.throttle[path] i 0.000000E+00 7.124589E-01 1.000000E+00 9.00000E+100
216 mission1.traj.cruise.throttle[path] i 0.000000E+00 7.093413E-01 1.000000E+00 9.00000E+100
217 mission1.traj.cruise.throttle[path] i 0.000000E+00 7.051070E-01 1.000000E+00 9.00000E+100
218 mission1.traj.cruise.throttle[path] i 0.000000E+00 7.037829E-01 1.000000E+00 9.00000E+100
219 mission1.traj.cruise.throttle[path] i 0.000000E+00 7.037829E-01 1.000000E+00 9.00000E+100
220 mission1.traj.cruise.throttle[path] i 0.000000E+00 7.012542E-01 1.000000E+00 9.00000E+100
221 mission1.traj.cruise.throttle[path] i 0.000000E+00 6.978114E-01 1.000000E+00 9.00000E+100
222 mission1.traj.cruise.throttle[path] i 0.000000E+00 6.967329E-01 1.000000E+00 9.00000E+100
223 mission1.traj.cruise.throttle[path] i 0.000000E+00 6.967329E-01 1.000000E+00 9.00000E+100
224 mission1.traj.cruise.throttle[path] i 0.000000E+00 6.955300E-01 1.000000E+00 9.00000E+100
225 mission1.traj.cruise.throttle[path] i 0.000000E+00 6.938812E-01 1.000000E+00 9.00000E+100
226 mission1.traj.cruise.throttle[path] i 0.000000E+00 6.933620E-01 1.000000E+00 9.00000E+100
227 mission1.traj.descent.throttle[path] i 0.000000E+00 4.544497E-01 1.000000E+00 9.00000E+100
228 mission1.traj.descent.throttle[path] i 0.000000E+00 4.426546E-01 1.000000E+00 9.00000E+100
229 mission1.traj.descent.throttle[path] i 0.000000E+00 4.175991E-01 1.000000E+00 9.00000E+100
230 mission1.traj.descent.throttle[path] i 0.000000E+00 4.075651E-01 1.000000E+00 9.00000E+100
231 mission1.traj.descent.throttle[path] i 0.000000E+00 4.075651E-01 1.000000E+00 9.00000E+100
232 mission1.traj.descent.throttle[path] i 0.000000E+00 3.623460E-01 1.000000E+00 9.00000E+100
233 mission1.traj.descent.throttle[path] i 0.000000E+00 3.371016E-01 1.000000E+00 9.00000E+100
234 mission1.traj.descent.throttle[path] i 0.000000E+00 3.293335E-01 1.000000E+00 9.00000E+100
235 mission1.traj.descent.throttle[path] i 0.000000E+00 3.293335E-01 1.000000E+00 9.00000E+100
236 mission1.traj.descent.throttle[path] i 0.000000E+00 2.822138E-01 1.000000E+00 9.00000E+100
237 mission1.traj.descent.throttle[path] i 0.000000E+00 2.218341E-01 1.000000E+00 9.00000E+100
238 mission1.traj.descent.throttle[path] i 0.000000E+00 1.968799E-01 1.000000E+00 9.00000E+100
239 mission1.traj.descent.throttle[path] i 0.000000E+00 1.968799E-01 1.000000E+00 9.00000E+100
240 mission1.traj.descent.throttle[path] i 0.000000E+00 1.515222E-01 1.000000E+00 9.00000E+100
241 mission1.traj.descent.throttle[path] i 0.000000E+00 9.893797E-02 1.000000E+00 9.00000E+100
242 mission1.traj.descent.throttle[path] i 0.000000E+00 8.162542E-02 1.000000E+00 9.00000E+100
243 mission1.traj.descent.throttle[path] i 0.000000E+00 8.162542E-02 1.000000E+00 9.00000E+100
244 mission1.traj.descent.throttle[path] i 0.000000E+00 5.445960E-02 1.000000E+00 9.00000E+100
245 mission1.traj.descent.throttle[path] i 0.000000E+00 1.483311E-02 1.000000E+00 9.00000E+100
246 mission1.traj.descent.throttle[path] i 0.000000E+00 2.053579E-03 1.000000E+00 9.00000E+100
247 mission2.gross_mass_resid i 0.000000E+00 1.693228E+04 1.000000E+30 9.00000E+100
248 mission2.traj.climb.throttle[path] i 0.000000E+00 7.031884E-01 1.000000E+00 9.00000E+100
249 mission2.traj.climb.throttle[path] i 0.000000E+00 6.151129E-01 1.000000E+00 9.00000E+100
250 mission2.traj.climb.throttle[path] i 0.000000E+00 5.249000E-01 1.000000E+00 9.00000E+100
251 mission2.traj.climb.throttle[path] i 0.000000E+00 5.025849E-01 1.000000E+00 9.00000E+100
252 mission2.traj.climb.throttle[path] i 0.000000E+00 5.025849E-01 1.000000E+00 9.00000E+100
253 mission2.traj.climb.throttle[path] i 0.000000E+00 4.623612E-01 1.000000E+00 9.00000E+100
254 mission2.traj.climb.throttle[path] i 0.000000E+00 4.950911E-01 1.000000E+00 9.00000E+100
255 mission2.traj.climb.throttle[path] i 0.000000E+00 5.062667E-01 1.000000E+00 9.00000E+100
256 mission2.traj.climb.throttle[path] i 0.000000E+00 5.062667E-01 1.000000E+00 9.00000E+100
257 mission2.traj.climb.throttle[path] i 0.000000E+00 5.628189E-01 1.000000E+00 9.00000E+100
258 mission2.traj.climb.throttle[path] i 0.000000E+00 5.810630E-01 1.000000E+00 9.00000E+100
259 mission2.traj.climb.throttle[path] i 0.000000E+00 6.055427E-01 1.000000E+00 9.00000E+100
260 mission2.traj.climb.throttle[path] i 0.000000E+00 6.055427E-01 1.000000E+00 9.00000E+100
261 mission2.traj.climb.throttle[path] i 0.000000E+00 6.536521E-01 1.000000E+00 9.00000E+100
262 mission2.traj.climb.throttle[path] i 0.000000E+00 6.689794E-01 1.000000E+00 9.00000E+100
263 mission2.traj.climb.throttle[path] i 0.000000E+00 6.871947E-01 1.000000E+00 9.00000E+100
264 mission2.traj.climb.throttle[path] i 0.000000E+00 6.871947E-01 1.000000E+00 9.00000E+100
265 mission2.traj.climb.throttle[path] i 0.000000E+00 7.209180E-01 1.000000E+00 9.00000E+100
266 mission2.traj.climb.throttle[path] i 0.000000E+00 7.481364E-01 1.000000E+00 9.00000E+100
267 mission2.traj.climb.throttle[path] i 0.000000E+00 7.481648E-01 1.000000E+00 9.00000E+100
268 mission2.traj.cruise.throttle[path] i 0.000000E+00 6.672136E-01 1.000000E+00 9.00000E+100
269 mission2.traj.cruise.throttle[path] i 0.000000E+00 6.661709E-01 1.000000E+00 9.00000E+100
270 mission2.traj.cruise.throttle[path] i 0.000000E+00 6.647400E-01 1.000000E+00 9.00000E+100
271 mission2.traj.cruise.throttle[path] i 0.000000E+00 6.642891E-01 1.000000E+00 9.00000E+100
272 mission2.traj.cruise.throttle[path] i 0.000000E+00 6.642891E-01 1.000000E+00 9.00000E+100
273 mission2.traj.cruise.throttle[path] i 0.000000E+00 6.621922E-01 1.000000E+00 9.00000E+100
274 mission2.traj.cruise.throttle[path] i 0.000000E+00 6.593317E-01 1.000000E+00 9.00000E+100
275 mission2.traj.cruise.throttle[path] i 0.000000E+00 6.584343E-01 1.000000E+00 9.00000E+100
276 mission2.traj.cruise.throttle[path] i 0.000000E+00 6.584343E-01 1.000000E+00 9.00000E+100
277 mission2.traj.cruise.throttle[path] i 0.000000E+00 6.560107E-01 1.000000E+00 9.00000E+100
278 mission2.traj.cruise.throttle[path] i 0.000000E+00 6.527131E-01 1.000000E+00 9.00000E+100
279 mission2.traj.cruise.throttle[path] i 0.000000E+00 6.516804E-01 1.000000E+00 9.00000E+100
280 mission2.traj.cruise.throttle[path] i 0.000000E+00 6.516804E-01 1.000000E+00 9.00000E+100
281 mission2.traj.cruise.throttle[path] i 0.000000E+00 6.497062E-01 1.000000E+00 9.00000E+100
282 mission2.traj.cruise.throttle[path] i 0.000000E+00 6.470142E-01 1.000000E+00 9.00000E+100
283 mission2.traj.cruise.throttle[path] i 0.000000E+00 6.461699E-01 1.000000E+00 9.00000E+100
284 mission2.traj.cruise.throttle[path] i 0.000000E+00 6.461699E-01 1.000000E+00 9.00000E+100
285 mission2.traj.cruise.throttle[path] i 0.000000E+00 6.452278E-01 1.000000E+00 9.00000E+100
286 mission2.traj.cruise.throttle[path] i 0.000000E+00 6.439355E-01 1.000000E+00 9.00000E+100
287 mission2.traj.cruise.throttle[path] i 0.000000E+00 6.435284E-01 1.000000E+00 9.00000E+100
288 mission2.traj.descent.throttle[path] i 0.000000E+00 4.590220E-01 1.000000E+00 9.00000E+100
289 mission2.traj.descent.throttle[path] i 0.000000E+00 4.512988E-01 1.000000E+00 9.00000E+100
290 mission2.traj.descent.throttle[path] i 0.000000E+00 4.310530E-01 1.000000E+00 9.00000E+100
291 mission2.traj.descent.throttle[path] i 0.000000E+00 4.222584E-01 1.000000E+00 9.00000E+100
292 mission2.traj.descent.throttle[path] i 0.000000E+00 4.222584E-01 1.000000E+00 9.00000E+100
293 mission2.traj.descent.throttle[path] i 0.000000E+00 3.801053E-01 1.000000E+00 9.00000E+100
294 mission2.traj.descent.throttle[path] i 0.000000E+00 3.576931E-01 1.000000E+00 9.00000E+100
295 mission2.traj.descent.throttle[path] i 0.000000E+00 3.508828E-01 1.000000E+00 9.00000E+100
296 mission2.traj.descent.throttle[path] i 0.000000E+00 3.508828E-01 1.000000E+00 9.00000E+100
297 mission2.traj.descent.throttle[path] i 0.000000E+00 3.075837E-01 1.000000E+00 9.00000E+100
298 mission2.traj.descent.throttle[path] i 0.000000E+00 2.518755E-01 1.000000E+00 9.00000E+100
299 mission2.traj.descent.throttle[path] i 0.000000E+00 2.274925E-01 1.000000E+00 9.00000E+100
300 mission2.traj.descent.throttle[path] i 0.000000E+00 2.274925E-01 1.000000E+00 9.00000E+100
301 mission2.traj.descent.throttle[path] i 0.000000E+00 1.839233E-01 1.000000E+00 9.00000E+100
302 mission2.traj.descent.throttle[path] i 0.000000E+00 1.379991E-01 1.000000E+00 9.00000E+100
303 mission2.traj.descent.throttle[path] i 0.000000E+00 1.235368E-01 1.000000E+00 9.00000E+100
304 mission2.traj.descent.throttle[path] i 0.000000E+00 1.235368E-01 1.000000E+00 9.00000E+100
305 mission2.traj.descent.throttle[path] i 0.000000E+00 9.606646E-02 1.000000E+00 9.00000E+100
306 mission2.traj.descent.throttle[path] i 0.000000E+00 5.447576E-02 1.000000E+00 9.00000E+100
307 mission2.traj.descent.throttle[path] i 0.000000E+00 4.097920E-02 1.000000E+00 9.00000E+100
--------------------------------------------------------------------------------
Results#
The results of the Multi-mission Example are included in the data table and plots below.
From the table results we can see that the mission1 and mission2 have the same Mission.Design.GROSS_MASS
, which has been promoted to Aircraft1:GROSS_MASS
. However, the Mission.Summary.GROSS_MASS
varies as expected because these represent “as-flown” values. The full passengers mission (mission1) has the higher Mission.Summary.GROSS_MASS
. Consequently, the Mission.Summary.FUEL_BURNED
for each mission is different, higher for mission1, as expected because this mission is carrying more mass for the same mission. Aircraft.Wing.SWEEP
is the same for both missions, indicating that the aircraft wings have been designed similarly in both cases. We do not want to see different values for the wing design because it would mean that the two pre-mission systems are not mirroring eachother. If they were not the same it would mean we are designing two different aircraft.
The Aircraft.LandingGear.MAIN_GEAR_MASS
and Aircraft.LandingGear.NOSE_GEAR_MASS
masses were also displayed because they are sensitive to Aircraft.Design.LANDING_TO_TAKEOFF_MASS_RATIO
. We expect these landing gear masses to be the same and they are which is good news for us and indicates that both pre-mission designs are mirroring eachother.
The Aircraft.Furnishings.MASS
and Aircraft.CrewPayload.PASSENGER_SERVICE_MASS
are displayed. These values represent the weight of the seats and the air conditioning system for the passengers. They are both the same which is what we expect to see.
The Aircraft.Avionics.MASS
also match, indicating that the Mission.Design.RANGE
for both aircraft has been properly set to the same value.
mission:design:gross_mass was unavailable. Perhapse it has been promoted to the problem level? mission:design:gross_mass was unavailable. Perhapse it has been promoted to the problem level?
mission1.aircraft:design:empty_mass (lbm), [87415.60555673] mission2.aircraft:design:empty_mass (lbm), [87415.60555673]
mission1.aircraft:landing_gear:main_gear_mass (lbm), [5767.0394946] mission2.aircraft:landing_gear:main_gear_mass (lbm), [5767.0394946]
mission1.aircraft:landing_gear:nose_gear_mass (lbm), [747.15266738] mission2.aircraft:landing_gear:nose_gear_mass (lbm), [747.15266738]
mission1.aircraft:design:landing_to_takeoff_mass_ratio (unitless), [0.84] mission2.aircraft:design:landing_to_takeoff_mass_ratio (unitless), [0.84]
mission1.aircraft:avionics:mass (lbm), [1281.74589387] mission2.aircraft:avionics:mass (lbm), [1281.74589387]
mission1.aircraft:furnishings:mass (lbm), [14690.33988] mission2.aircraft:furnishings:mass (lbm), [14690.33988]
mission1.aircraft:crew_and_payload:passenger_service_mass (lbm), [2524.47559296] mission2.aircraft:crew_and_payload:passenger_service_mass (lbm), [2524.47559296]
mission1.mission:summary:gross_mass (lbm), [157440.88610181] mission2.mission:summary:gross_mass (lbm), [120056.71107322]
mission1.mission:summary:fuel_burned (lbm), [27050.67106054] mission2.mission:summary:fuel_burned (lbm), [22916.49603196]
mission1.aircraft:crew_and_payload:passenger_mass (lbm), [26730.] mission2.aircraft:crew_and_payload:passenger_mass (lbm), [165.]
mission1.aircraft:crew_and_payload:passenger_payload_mass (lbm), [32400.] mission2.aircraft:crew_and_payload:passenger_payload_mass (lbm), [200.]
mission1.aircraft:crew_and_payload:cargo_mass (lbm), [4077.] mission2.aircraft:crew_and_payload:cargo_mass (lbm), [4077.]
mission1.aircraft:crew_and_payload:total_payload_mass (lbm), [36477.] mission2.aircraft:crew_and_payload:total_payload_mass (lbm), [4277.]
Objective Value (unitless): [25672.61271768] Aircraft1:GROSS_MASS (lbm) [157440.88610181] Aircraft1:SWEEP (deg) [23.]
In the graph below The Altitude, Drag force, Throttle command, and Mass of the mission1 (full passenger load) and mission2 (one passenger) are displayed. The mission2 shows a characteristic smaller mass throughout the flight as expected since we have just one passenger, and a slightly lower throttle profile to match, indicating the engine is not being pushed as hard to meet the demands of a lighter plane. Otherwise the missions themselves match, showing Mach, Distance, and Altitude all identical for every part of the mission. We did not allow the mach or altitude to be optimized for this mission so these results are not surprising.
Note: When comparing the graphs of the two missions, not all the graphs have the same scale.