Supersonic Interceptor Minimum Time Climb#

This example is based on the A/C Min Time to Climb example given in chapter 4 of Bryson [Bry99]. It finds the angle-of-attack history required to accelerate a supersonic interceptor from near ground level, Mach 0.4 to an altitude of 20 km and Mach 1.0.

The free-body-diagram of the min-time-climb problem.

The vehicle dynamics are given by

(62)#\[\begin{align} \frac{dv}{dt} &= \frac{T}{m} \cos \alpha - \frac{D}{m} - g \sin \gamma \\ \frac{d\gamma}{dt} &= \frac{T}{m v} \sin \alpha + \frac{L}{m v} - \frac{g \cos \gamma}{v} \\ \frac{dh}{dt} &= v \sin \gamma \\ \frac{dr}{dt} &= v \cos \gamma \\ \frac{dm}{dt} &= - \frac{T}{g I_{sp}} \end{align}\]

The initial conditions are

(63)#\[\begin{align} r_0 &= 0 \rm{\,m} \\ h_0 &= 100 \rm{\,m} \\ v_0 &= 135.964 \rm{\,m/s} \\ \gamma_0 &= 0 \rm{\,deg} \\ m_0 &= 19030.468 \rm{\,kg} \end{align}\]

and the final conditions are

(64)#\[\begin{align} h_f &= 20000 \rm{\,m} \\ M_f &= 1.0 \\ \gamma_0 &= 0 \rm{\,deg} \end{align}\]

The ODE System: min_time_climb_ode.py#

The top level ODE definition is a Group that connects several subsystems.

Hide code cell outputs
import openmdao.api as om
from .dynamic_pressure_comp_partial_coloring import DynamicPressureCompFD
from ..aero.dynamic_pressure_comp import DynamicPressureComp
from ..aero.lift_drag_force_comp import LiftDragForceComp
from ..aero.cd0_comp import CD0Comp
from ..aero.kappa_comp import KappaComp
from ..aero.cla_comp import CLaComp
from ..aero.cl_comp import CLComp
from ..aero.cd_comp import CDComp
from ..aero.mach_comp import MachComp


class AeroGroup(om.Group):
    """
    The purpose of the AeroGroup is to compute the aerodynamic forces on the
    aircraft in the body frame.

    Parameters
    ----------
    v : float
        air-relative velocity (m/s)
    sos : float
        local speed of sound (m/s)
    rho : float
        atmospheric density (kg/m**3)
    alpha : float
        angle of attack (rad)
    S : float
        aerodynamic reference area (m**2)

    """
    def initialize(self):
        self.options.declare('num_nodes', types=int,
                             desc='Number of nodes to be evaluated in the RHS')
        self.options.declare('fd', types=bool, default=False, desc='If True, use fd for partials for dynamic pressure')
        self.options.declare('partial_coloring', types=bool, default=False,
                             desc='If True and fd is True, color the approximated partials of dynamic pressure')

    def setup(self):
        nn = self.options['num_nodes']

        if self.options['fd']:
            q_comp = DynamicPressureCompFD(num_nodes=nn, partial_coloring=self.options['partial_coloring'])
        else:
            q_comp = DynamicPressureComp(num_nodes=nn)

        self.add_subsystem(name='mach_comp',
                           subsys=MachComp(num_nodes=nn),
                           promotes_inputs=['v', 'sos'],
                           promotes_outputs=['mach'])

        self.add_subsystem(name='cd0_comp',
                           subsys=CD0Comp(num_nodes=nn),
                           promotes_inputs=['mach'],
                           promotes_outputs=['CD0'])

        self.add_subsystem(name='kappa_comp',
                           subsys=KappaComp(num_nodes=nn),
                           promotes_inputs=['mach'],
                           promotes_outputs=['kappa'])

        self.add_subsystem(name='cla_comp',
                           subsys=CLaComp(num_nodes=nn),
                           promotes_inputs=['mach'],
                           promotes_outputs=['CLa'])

        self.add_subsystem(name='CL_comp',
                           subsys=CLComp(num_nodes=nn),
                           promotes_inputs=['alpha', 'CLa'],
                           promotes_outputs=['CL'])

        self.add_subsystem(name='CD_comp',
                           subsys=CDComp(num_nodes=nn),
                           promotes_inputs=['CD0', 'alpha', 'CLa', 'kappa'],
                           promotes_outputs=['CD'])

        self.add_subsystem(name='q_comp',
                           subsys=q_comp,
                           promotes_inputs=['rho', 'v'],
                           promotes_outputs=['q'])

        self.add_subsystem(name='lift_drag_force_comp',
                           subsys=LiftDragForceComp(num_nodes=nn),
                           promotes_inputs=['CL', 'CD', 'q', 'S'],
                           promotes_outputs=['f_lift', 'f_drag'])
import openmdao.api as om
from dymos.models.eom import FlightPathEOM2D
from dymos.examples.min_time_climb.prop import PropGroup
from dymos.models.atmosphere import USatm1976Comp
from dymos.examples.min_time_climb.doc.aero_partial_coloring import AeroGroup

class MinTimeClimbODE(om.Group):

    def initialize(self):
        self.options.declare('num_nodes', types=int)
        self.options.declare('fd', types=bool, default=False, desc='If True, use fd for partials')
        self.options.declare('partial_coloring', types=bool, default=False,
                             desc='If True and fd is True, color the approximated partials')

    def setup(self):
        nn = self.options['num_nodes']

        self.add_subsystem(name='atmos',
                           subsys=USatm1976Comp(num_nodes=nn, h_def='geodetic'),
                           promotes_inputs=['h'])

        self.add_subsystem(name='aero',
                           subsys=AeroGroup(num_nodes=nn,
                                            fd=self.options['fd'],
                                            partial_coloring=self.options['partial_coloring']),
                           promotes_inputs=['v', 'alpha', 'S'])

        self.connect('atmos.sos', 'aero.sos')
        self.connect('atmos.rho', 'aero.rho')

        self.add_subsystem(name='prop',
                           subsys=PropGroup(num_nodes=nn),
                           promotes_inputs=['h', 'Isp', 'throttle'])

        self.connect('aero.mach', 'prop.mach')

        self.add_subsystem(name='flight_dynamics',
                           subsys=FlightPathEOM2D(num_nodes=nn),
                           promotes_inputs=['m', 'v', 'gam', 'alpha'])

        self.connect('aero.f_drag', 'flight_dynamics.D')
        self.connect('aero.f_lift', 'flight_dynamics.L')
        self.connect('prop.thrust', 'flight_dynamics.T')

Building and running the problem#

In the following code we follow the following process to solve the problem:

import matplotlib.pyplot as plt

import openmdao.api as om

import dymos as dm
from dymos.examples.plotting import plot_results

#
# Instantiate the problem and configure the optimization driver
#
p = om.Problem(model=om.Group())

p.driver = om.pyOptSparseDriver()
p.driver.options['optimizer'] = 'SLSQP'
p.driver.declare_coloring()

#
# Instantiate the trajectory and phase
#
traj = dm.Trajectory()

phase = dm.Phase(ode_class=MinTimeClimbODE,
                 transcription=dm.GaussLobatto(num_segments=15, compressed=False))

traj.add_phase('phase0', phase)

p.model.add_subsystem('traj', traj)

#
# Set the options on the optimization variables
# Note the use of explicit state units here since much of the ODE uses imperial units
# and we prefer to solve this problem using metric units.
#
phase.set_time_options(fix_initial=True, duration_bounds=(50, 400),
                       duration_ref=100.0)

phase.add_state('r', fix_initial=True, lower=0, upper=1.0E6, units='m',
                ref=1.0E3, defect_ref=1.0E3,
                rate_source='flight_dynamics.r_dot')

phase.add_state('h', fix_initial=True, lower=0, upper=20000.0, units='m',
                ref=1.0E2, defect_ref=1.0E2,
                rate_source='flight_dynamics.h_dot')

phase.add_state('v', fix_initial=True, lower=10.0, units='m/s',
                ref=1.0E2, defect_ref=1.0E2,
                rate_source='flight_dynamics.v_dot')

phase.add_state('gam', fix_initial=True, lower=-1.5, upper=1.5, units='rad',
                ref=1.0, defect_ref=1.0,
                rate_source='flight_dynamics.gam_dot')

phase.add_state('m', fix_initial=True, lower=10.0, upper=1.0E5, units='kg',
                ref=1.0E3, defect_ref=1.0E3,
                rate_source='prop.m_dot')

phase.add_control('alpha', units='deg', lower=-8.0, upper=8.0, scaler=1.0,
                  rate_continuity=True, rate_continuity_scaler=100.0,
                  rate2_continuity=False)

phase.add_parameter('S', val=49.2386, units='m**2', opt=False, targets=['S'])
phase.add_parameter('Isp', val=1600.0, units='s', opt=False, targets=['Isp'])
phase.add_parameter('throttle', val=1.0, opt=False, targets=['throttle'])

#
# Setup the boundary and path constraints
#
phase.add_boundary_constraint('h', loc='final', equals=20000, scaler=1.0E-3)
phase.add_boundary_constraint('aero.mach', loc='final', equals=1.0)
phase.add_boundary_constraint('gam', loc='final', equals=0.0)

phase.add_path_constraint(name='h', lower=100.0, upper=20000, ref=20000)
phase.add_path_constraint(name='aero.mach', lower=0.1, upper=1.8)

# Minimize time at the end of the phase
phase.add_objective('time', loc='final', ref=1.0)

p.model.linear_solver = om.DirectSolver()

#
# Setup the problem and set the initial guess
#
p.setup(check=True)

phase.set_time_val(initial=0.0, duration=350)
phase.set_state_val('r', [0.0, 50000.0])
phase.set_state_val('h', [100.0, 20000.0])
phase.set_state_val('v', [135.964, 283.159])
phase.set_state_val('gam', [0.0, 0.0])
phase.set_state_val('m', [19030.468, 10000.])
phase.set_control_val('alpha', [0.0, 0.0])

#
# Solve for the optimal trajectory
#
dm.run_problem(p, simulate=True)
--- Constraint Report [traj] ---
    --- phase0 ---
        [final]   2.0000e+04 == h [m]
        [final]   1.0000e+00 == aero.mach [None]
        [final]   0.0000e+00 == gam [rad]
        [path]    1.0000e+02 <= h <= 2.0000e+04  [m]
        [path]    1.0000e-01 <= aero.mach <= 1.8000e+00  [None]

INFO: checking out_of_order
INFO: checking system
INFO: checking solvers
INFO: checking dup_inputs
INFO: checking missing_recorders
WARNING: The Problem has no recorder of any kind attached
INFO: checking unserializable_options
INFO: checking comp_has_no_outputs
INFO: checking auto_ivc_warnings
Model viewer data has already been recorded for Driver.
INFO: checking out_of_order
INFO: checking system
INFO: checking solvers
INFO: checking dup_inputs
INFO: checking missing_recorders
WARNING: The Problem has no recorder of any kind attached
INFO: checking unserializable_options
INFO: checking comp_has_no_outputs
INFO: checking auto_ivc_warnings
Full total jacobian for problem 'problem' was computed 3 times, taking 0.08904792999999245 seconds.
Total jacobian shape: (181, 191) 


Jacobian shape: (181, 191)  (5.28% nonzero)
FWD solves: 14   REV solves: 0
Total colors vs. total size: 14 vs 191  (92.67% improvement)

Sparsity computed using tolerance: 1e-25
Time to compute sparsity:   0.0890 sec
Time to compute coloring:   0.1188 sec
Memory to compute coloring:   0.1250 MB
Coloring created on: 2024-08-15 12:51:01
/usr/share/miniconda/envs/test/lib/python3.11/site-packages/openmdao/core/total_jac.py:1646: DerivativesWarning:Constraints or objectives [('traj.phases.phase0->path_constraint->h', inds=[(0, 0)]), ('traj.phases.phase0->path_constraint->mach', inds=[(0, 0)])] cannot be impacted by the design variables of the problem.
Optimization Problem -- Optimization using pyOpt_sparse
================================================================================
    Objective Function: _objfunc

    Solution: 
--------------------------------------------------------------------------------
    Total Time:                    4.6701
       User Objective Time :       0.9267
       User Sensitivity Time :     1.1889
       Interface Time :            0.4831
       Opt Solver Time:            2.0715
    Calls to Objective Function :      94
    Calls to Sens Function :           84


   Objectives
      Index  Name                     Value
          0  traj.phase0.t     3.252582E+02

   Variables (c - continuous, i - integer, d - discrete)
      Index  Name                            Type      Lower Bound            Value      Upper Bound     Status
          0  traj.phase0.t_duration_0           c     5.000000E-01     3.252582E+00     4.000000E+00           
          1  traj.phase0.states:r_0             c     0.000000E+00     4.337684E+00     1.000000E+03           
          2  traj.phase0.states:r_1             c     0.000000E+00     4.337684E+00     1.000000E+03           
          3  traj.phase0.states:r_2             c     0.000000E+00     1.031224E+01     1.000000E+03           
          4  traj.phase0.states:r_3             c     0.000000E+00     1.031224E+01     1.000000E+03           
          5  traj.phase0.states:r_4             c     0.000000E+00     1.587328E+01     1.000000E+03           
          6  traj.phase0.states:r_5             c     0.000000E+00     1.587328E+01     1.000000E+03           
          7  traj.phase0.states:r_6             c     0.000000E+00     2.161338E+01     1.000000E+03           
          8  traj.phase0.states:r_7             c     0.000000E+00     2.161338E+01     1.000000E+03           
          9  traj.phase0.states:r_8             c     0.000000E+00     2.800856E+01     1.000000E+03           
         10  traj.phase0.states:r_9             c     0.000000E+00     2.800856E+01     1.000000E+03           
         11  traj.phase0.states:r_10            c     0.000000E+00     3.569422E+01     1.000000E+03           
         12  traj.phase0.states:r_11            c     0.000000E+00     3.569422E+01     1.000000E+03           
         13  traj.phase0.states:r_12            c     0.000000E+00     4.461446E+01     1.000000E+03           
         14  traj.phase0.states:r_13            c     0.000000E+00     4.461446E+01     1.000000E+03           
         15  traj.phase0.states:r_14            c     0.000000E+00     5.396327E+01     1.000000E+03           
         16  traj.phase0.states:r_15            c     0.000000E+00     5.396327E+01     1.000000E+03           
         17  traj.phase0.states:r_16            c     0.000000E+00     6.365774E+01     1.000000E+03           
         18  traj.phase0.states:r_17            c     0.000000E+00     6.365774E+01     1.000000E+03           
         19  traj.phase0.states:r_18            c     0.000000E+00     7.372154E+01     1.000000E+03           
         20  traj.phase0.states:r_19            c     0.000000E+00     7.372154E+01     1.000000E+03           
         21  traj.phase0.states:r_20            c     0.000000E+00     8.422498E+01     1.000000E+03           
         22  traj.phase0.states:r_21            c     0.000000E+00     8.422498E+01     1.000000E+03           
         23  traj.phase0.states:r_22            c     0.000000E+00     9.527686E+01     1.000000E+03           
         24  traj.phase0.states:r_23            c     0.000000E+00     9.527686E+01     1.000000E+03           
         25  traj.phase0.states:r_24            c     0.000000E+00     1.058975E+02     1.000000E+03           
         26  traj.phase0.states:r_25            c     0.000000E+00     1.058975E+02     1.000000E+03           
         27  traj.phase0.states:r_26            c     0.000000E+00     1.136078E+02     1.000000E+03           
         28  traj.phase0.states:r_27            c     0.000000E+00     1.136078E+02     1.000000E+03           
         29  traj.phase0.states:r_28            c     0.000000E+00     1.199388E+02     1.000000E+03           
         30  traj.phase0.states:h_0             c     0.000000E+00     2.446866E+00     2.000000E+02           
         31  traj.phase0.states:h_1             c     0.000000E+00     2.446866E+00     2.000000E+02           
         32  traj.phase0.states:h_2             c     0.000000E+00     2.523407E+01     2.000000E+02           
         33  traj.phase0.states:h_3             c     0.000000E+00     2.523407E+01     2.000000E+02           
         34  traj.phase0.states:h_4             c     0.000000E+00     5.978922E+01     2.000000E+02           
         35  traj.phase0.states:h_5             c     0.000000E+00     5.978922E+01     2.000000E+02           
         36  traj.phase0.states:h_6             c     0.000000E+00     8.469027E+01     2.000000E+02           
         37  traj.phase0.states:h_7             c     0.000000E+00     8.469027E+01     2.000000E+02           
         38  traj.phase0.states:h_8             c     0.000000E+00     8.840255E+01     2.000000E+02           
         39  traj.phase0.states:h_9             c     0.000000E+00     8.840255E+01     2.000000E+02           
         40  traj.phase0.states:h_10            c     0.000000E+00     7.333966E+01     2.000000E+02           
         41  traj.phase0.states:h_11            c     0.000000E+00     7.333966E+01     2.000000E+02           
         42  traj.phase0.states:h_12            c     0.000000E+00     7.148178E+01     2.000000E+02           
         43  traj.phase0.states:h_13            c     0.000000E+00     7.148178E+01     2.000000E+02           
         44  traj.phase0.states:h_14            c     0.000000E+00     7.715897E+01     2.000000E+02           
         45  traj.phase0.states:h_15            c     0.000000E+00     7.715897E+01     2.000000E+02           
         46  traj.phase0.states:h_16            c     0.000000E+00     8.260668E+01     2.000000E+02           
         47  traj.phase0.states:h_17            c     0.000000E+00     8.260668E+01     2.000000E+02           
         48  traj.phase0.states:h_18            c     0.000000E+00     8.814595E+01     2.000000E+02           
         49  traj.phase0.states:h_19            c     0.000000E+00     8.814595E+01     2.000000E+02           
         50  traj.phase0.states:h_20            c     0.000000E+00     9.139679E+01     2.000000E+02           
         51  traj.phase0.states:h_21            c     0.000000E+00     9.139679E+01     2.000000E+02           
         52  traj.phase0.states:h_22            c     0.000000E+00     9.362346E+01     2.000000E+02           
         53  traj.phase0.states:h_23            c     0.000000E+00     9.362346E+01     2.000000E+02           
         54  traj.phase0.states:h_24            c     0.000000E+00     1.207568E+02     2.000000E+02           
         55  traj.phase0.states:h_25            c     0.000000E+00     1.207568E+02     2.000000E+02           
         56  traj.phase0.states:h_26            c     0.000000E+00     1.726229E+02     2.000000E+02           
         57  traj.phase0.states:h_27            c     0.000000E+00     1.726229E+02     2.000000E+02           
         58  traj.phase0.states:h_28            c     0.000000E+00     2.000000E+02     2.000000E+02          u
         59  traj.phase0.states:v_0             c     1.000000E-01     2.633841E+00     1.000000E+19           
         60  traj.phase0.states:v_1             c     1.000000E-01     2.633841E+00     1.000000E+19           
         61  traj.phase0.states:v_2             c     1.000000E-01     3.104856E+00     1.000000E+19           
         62  traj.phase0.states:v_3             c     1.000000E-01     3.104856E+00     1.000000E+19           
         63  traj.phase0.states:v_4             c     1.000000E-01     2.949332E+00     1.000000E+19           
         64  traj.phase0.states:v_5             c     1.000000E-01     2.949332E+00     1.000000E+19           
         65  traj.phase0.states:v_6             c     1.000000E-01     2.842792E+00     1.000000E+19           
         66  traj.phase0.states:v_7             c     1.000000E-01     2.842792E+00     1.000000E+19           
         67  traj.phase0.states:v_8             c     1.000000E-01     3.248967E+00     1.000000E+19           
         68  traj.phase0.states:v_9             c     1.000000E-01     3.248967E+00     1.000000E+19           
         69  traj.phase0.states:v_10            c     1.000000E-01     3.941234E+00     1.000000E+19           
         70  traj.phase0.states:v_11            c     1.000000E-01     3.941234E+00     1.000000E+19           
         71  traj.phase0.states:v_12            c     1.000000E-01     4.242818E+00     1.000000E+19           
         72  traj.phase0.states:v_13            c     1.000000E-01     4.242818E+00     1.000000E+19           
         73  traj.phase0.states:v_14            c     1.000000E-01     4.394690E+00     1.000000E+19           
         74  traj.phase0.states:v_15            c     1.000000E-01     4.394690E+00     1.000000E+19           
         75  traj.phase0.states:v_16            c     1.000000E-01     4.562641E+00     1.000000E+19           
         76  traj.phase0.states:v_17            c     1.000000E-01     4.562641E+00     1.000000E+19           
         77  traj.phase0.states:v_18            c     1.000000E-01     4.737210E+00     1.000000E+19           
         78  traj.phase0.states:v_19            c     1.000000E-01     4.737210E+00     1.000000E+19           
         79  traj.phase0.states:v_20            c     1.000000E-01     4.969476E+00     1.000000E+19           
         80  traj.phase0.states:v_21            c     1.000000E-01     4.969476E+00     1.000000E+19           
         81  traj.phase0.states:v_22            c     1.000000E-01     5.193949E+00     1.000000E+19           
         82  traj.phase0.states:v_23            c     1.000000E-01     5.193949E+00     1.000000E+19           
         83  traj.phase0.states:v_24            c     1.000000E-01     4.826562E+00     1.000000E+19           
         84  traj.phase0.states:v_25            c     1.000000E-01     4.826562E+00     1.000000E+19           
         85  traj.phase0.states:v_26            c     1.000000E-01     3.708766E+00     1.000000E+19           
         86  traj.phase0.states:v_27            c     1.000000E-01     3.708766E+00     1.000000E+19           
         87  traj.phase0.states:v_28            c     1.000000E-01     2.950719E+00     1.000000E+19           
         88  traj.phase0.states:gam_0           c    -1.500000E+00     1.015098E-01     1.500000E+00           
         89  traj.phase0.states:gam_1           c    -1.500000E+00     1.015098E-01     1.500000E+00           
         90  traj.phase0.states:gam_2           c    -1.500000E+00     5.976915E-01     1.500000E+00           
         91  traj.phase0.states:gam_3           c    -1.500000E+00     5.976915E-01     1.500000E+00           
         92  traj.phase0.states:gam_4           c    -1.500000E+00     4.558444E-01     1.500000E+00           
         93  traj.phase0.states:gam_5           c    -1.500000E+00     4.558444E-01     1.500000E+00           
         94  traj.phase0.states:gam_6           c    -1.500000E+00     3.190914E-01     1.500000E+00           
         95  traj.phase0.states:gam_7           c    -1.500000E+00     3.190914E-01     1.500000E+00           
         96  traj.phase0.states:gam_8           c    -1.500000E+00    -1.775791E-01     1.500000E+00           
         97  traj.phase0.states:gam_9           c    -1.500000E+00    -1.775791E-01     1.500000E+00           
         98  traj.phase0.states:gam_10          c    -1.500000E+00    -1.195940E-01     1.500000E+00           
         99  traj.phase0.states:gam_11          c    -1.500000E+00    -1.195940E-01     1.500000E+00           
        100  traj.phase0.states:gam_12          c    -1.500000E+00     4.715726E-02     1.500000E+00           
        101  traj.phase0.states:gam_13          c    -1.500000E+00     4.715726E-02     1.500000E+00           
        102  traj.phase0.states:gam_14          c    -1.500000E+00     5.949354E-02     1.500000E+00           
        103  traj.phase0.states:gam_15          c    -1.500000E+00     5.949354E-02     1.500000E+00           
        104  traj.phase0.states:gam_16          c    -1.500000E+00     5.554536E-02     1.500000E+00           
        105  traj.phase0.states:gam_17          c    -1.500000E+00     5.554536E-02     1.500000E+00           
        106  traj.phase0.states:gam_18          c    -1.500000E+00     4.970657E-02     1.500000E+00           
        107  traj.phase0.states:gam_19          c    -1.500000E+00     4.970657E-02     1.500000E+00           
        108  traj.phase0.states:gam_20          c    -1.500000E+00     1.061017E-02     1.500000E+00           
        109  traj.phase0.states:gam_21          c    -1.500000E+00     1.061017E-02     1.500000E+00           
        110  traj.phase0.states:gam_22          c    -1.500000E+00     7.510144E-02     1.500000E+00           
        111  traj.phase0.states:gam_23          c    -1.500000E+00     7.510144E-02     1.500000E+00           
        112  traj.phase0.states:gam_24          c    -1.500000E+00     4.620657E-01     1.500000E+00           
        113  traj.phase0.states:gam_25          c    -1.500000E+00     4.620657E-01     1.500000E+00           
        114  traj.phase0.states:gam_26          c    -1.500000E+00     6.283656E-01     1.500000E+00           
        115  traj.phase0.states:gam_27          c    -1.500000E+00     6.283656E-01     1.500000E+00           
        116  traj.phase0.states:gam_28          c    -1.500000E+00     0.000000E+00     1.500000E+00           
        117  traj.phase0.states:m_0             c     1.000000E-02     1.883945E+01     1.000000E+02           
        118  traj.phase0.states:m_1             c     1.000000E-02     1.883945E+01     1.000000E+02           
        119  traj.phase0.states:m_2             c     1.000000E-02     1.863480E+01     1.000000E+02           
        120  traj.phase0.states:m_3             c     1.000000E-02     1.863480E+01     1.000000E+02           
        121  traj.phase0.states:m_4             c     1.000000E-02     1.847306E+01     1.000000E+02           
        122  traj.phase0.states:m_5             c     1.000000E-02     1.847306E+01     1.000000E+02           
        123  traj.phase0.states:m_6             c     1.000000E-02     1.835397E+01     1.000000E+02           
        124  traj.phase0.states:m_7             c     1.000000E-02     1.835397E+01     1.000000E+02           
        125  traj.phase0.states:m_8             c     1.000000E-02     1.825097E+01     1.000000E+02           
        126  traj.phase0.states:m_9             c     1.000000E-02     1.825097E+01     1.000000E+02           
        127  traj.phase0.states:m_10            c     1.000000E-02     1.811453E+01     1.000000E+02           
        128  traj.phase0.states:m_11            c     1.000000E-02     1.811453E+01     1.000000E+02           
        129  traj.phase0.states:m_12            c     1.000000E-02     1.794310E+01     1.000000E+02           
        130  traj.phase0.states:m_13            c     1.000000E-02     1.794310E+01     1.000000E+02           
        131  traj.phase0.states:m_14            c     1.000000E-02     1.776704E+01     1.000000E+02           
        132  traj.phase0.states:m_15            c     1.000000E-02     1.776704E+01     1.000000E+02           
        133  traj.phase0.states:m_16            c     1.000000E-02     1.759240E+01     1.000000E+02           
        134  traj.phase0.states:m_17            c     1.000000E-02     1.759240E+01     1.000000E+02           
        135  traj.phase0.states:m_18            c     1.000000E-02     1.741889E+01     1.000000E+02           
        136  traj.phase0.states:m_19            c     1.000000E-02     1.741889E+01     1.000000E+02           
        137  traj.phase0.states:m_20            c     1.000000E-02     1.724487E+01     1.000000E+02           
        138  traj.phase0.states:m_21            c     1.000000E-02     1.724487E+01     1.000000E+02           
        139  traj.phase0.states:m_22            c     1.000000E-02     1.706474E+01     1.000000E+02           
        140  traj.phase0.states:m_23            c     1.000000E-02     1.706474E+01     1.000000E+02           
        141  traj.phase0.states:m_24            c     1.000000E-02     1.690446E+01     1.000000E+02           
        142  traj.phase0.states:m_25            c     1.000000E-02     1.690446E+01     1.000000E+02           
        143  traj.phase0.states:m_26            c     1.000000E-02     1.682855E+01     1.000000E+02           
        144  traj.phase0.states:m_27            c     1.000000E-02     1.682855E+01     1.000000E+02           
        145  traj.phase0.states:m_28            c     1.000000E-02     1.680500E+01     1.000000E+02           
        146  traj.phase0.controls:alpha_0       c    -8.000000E+00     5.399790E+00     8.000000E+00           
        147  traj.phase0.controls:alpha_1       c    -8.000000E+00     2.646340E+00     8.000000E+00           
        148  traj.phase0.controls:alpha_2       c    -8.000000E+00     2.027156E+00     8.000000E+00           
        149  traj.phase0.controls:alpha_3       c    -8.000000E+00     2.027156E+00     8.000000E+00           
        150  traj.phase0.controls:alpha_4       c    -8.000000E+00     2.079395E+00     8.000000E+00           
        151  traj.phase0.controls:alpha_5       c    -8.000000E+00     1.340213E+00     8.000000E+00           
        152  traj.phase0.controls:alpha_6       c    -8.000000E+00     1.340213E+00     8.000000E+00           
        153  traj.phase0.controls:alpha_7       c    -8.000000E+00     7.780413E-01     8.000000E+00           
        154  traj.phase0.controls:alpha_8       c    -8.000000E+00     1.361310E+00     8.000000E+00           
        155  traj.phase0.controls:alpha_9       c    -8.000000E+00     1.361310E+00     8.000000E+00           
        156  traj.phase0.controls:alpha_10      c    -8.000000E+00     1.891349E+00     8.000000E+00           
        157  traj.phase0.controls:alpha_11      c    -8.000000E+00     1.169489E+00     8.000000E+00           
        158  traj.phase0.controls:alpha_12      c    -8.000000E+00     1.169489E+00     8.000000E+00           
        159  traj.phase0.controls:alpha_13      c    -8.000000E+00     4.831450E-01     8.000000E+00           
        160  traj.phase0.controls:alpha_14      c    -8.000000E+00     1.119732E+00     8.000000E+00           
        161  traj.phase0.controls:alpha_15      c    -8.000000E+00     1.119732E+00     8.000000E+00           
        162  traj.phase0.controls:alpha_16      c    -8.000000E+00     1.996661E+00     8.000000E+00           
        163  traj.phase0.controls:alpha_17      c    -8.000000E+00     2.031339E+00     8.000000E+00           
        164  traj.phase0.controls:alpha_18      c    -8.000000E+00     2.031339E+00     8.000000E+00           
        165  traj.phase0.controls:alpha_19      c    -8.000000E+00     1.682067E+00     8.000000E+00           
        166  traj.phase0.controls:alpha_20      c    -8.000000E+00     1.407141E+00     8.000000E+00           
        167  traj.phase0.controls:alpha_21      c    -8.000000E+00     1.407141E+00     8.000000E+00           
        168  traj.phase0.controls:alpha_22      c    -8.000000E+00     1.238456E+00     8.000000E+00           
        169  traj.phase0.controls:alpha_23      c    -8.000000E+00     1.207908E+00     8.000000E+00           
        170  traj.phase0.controls:alpha_24      c    -8.000000E+00     1.207908E+00     8.000000E+00           
        171  traj.phase0.controls:alpha_25      c    -8.000000E+00     1.241560E+00     8.000000E+00           
        172  traj.phase0.controls:alpha_26      c    -8.000000E+00     1.265473E+00     8.000000E+00           
        173  traj.phase0.controls:alpha_27      c    -8.000000E+00     1.265473E+00     8.000000E+00           
        174  traj.phase0.controls:alpha_28      c    -8.000000E+00     1.260076E+00     8.000000E+00           
        175  traj.phase0.controls:alpha_29      c    -8.000000E+00     1.205797E+00     8.000000E+00           
        176  traj.phase0.controls:alpha_30      c    -8.000000E+00     1.205797E+00     8.000000E+00           
        177  traj.phase0.controls:alpha_31      c    -8.000000E+00     1.151381E+00     8.000000E+00           
        178  traj.phase0.controls:alpha_32      c    -8.000000E+00     1.145576E+00     8.000000E+00           
        179  traj.phase0.controls:alpha_33      c    -8.000000E+00     1.145576E+00     8.000000E+00           
        180  traj.phase0.controls:alpha_34      c    -8.000000E+00     1.350181E+00     8.000000E+00           
        181  traj.phase0.controls:alpha_35      c    -8.000000E+00     1.926998E+00     8.000000E+00           
        182  traj.phase0.controls:alpha_36      c    -8.000000E+00     1.926998E+00     8.000000E+00           
        183  traj.phase0.controls:alpha_37      c    -8.000000E+00     2.730458E+00     8.000000E+00           
        184  traj.phase0.controls:alpha_38      c    -8.000000E+00     3.614992E+00     8.000000E+00           
        185  traj.phase0.controls:alpha_39      c    -8.000000E+00     3.614992E+00     8.000000E+00           
        186  traj.phase0.controls:alpha_40      c    -8.000000E+00     3.938500E+00     8.000000E+00           
        187  traj.phase0.controls:alpha_41      c    -8.000000E+00     3.058881E+00     8.000000E+00           
        188  traj.phase0.controls:alpha_42      c    -8.000000E+00     3.058881E+00     8.000000E+00           
        189  traj.phase0.controls:alpha_43      c    -8.000000E+00    -9.879100E-02     8.000000E+00           
        190  traj.phase0.controls:alpha_44      c    -8.000000E+00    -6.609440E+00     8.000000E+00           

   Constraints (i - inequality, e - equality)
      Index  Name                                                        Type          Lower           Value           Upper    Status  Lagrange Multiplier (N/A)
          0  traj.phases.phase0->final_boundary_constraint->h               e   2.000000E+01    2.000000E+01    2.000000E+01              9.00000E+100
          1  traj.phases.phase0->final_boundary_constraint->mach            e   1.000000E+00    1.000000E+00    1.000000E+00              9.00000E+100
          2  traj.phases.phase0->final_boundary_constraint->gam             e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
          3  traj.phase0.collocation_constraint.defects:r                   e   0.000000E+00    1.259413E-10    0.000000E+00              9.00000E+100
          4  traj.phase0.collocation_constraint.defects:r                   e   0.000000E+00    3.910478E-10    0.000000E+00              9.00000E+100
          5  traj.phase0.collocation_constraint.defects:r                   e   0.000000E+00    4.898799E-10    0.000000E+00              9.00000E+100
          6  traj.phase0.collocation_constraint.defects:r                   e   0.000000E+00    3.993437E-10    0.000000E+00              9.00000E+100
          7  traj.phase0.collocation_constraint.defects:r                   e   0.000000E+00    1.550530E-09    0.000000E+00              9.00000E+100
          8  traj.phase0.collocation_constraint.defects:r                   e   0.000000E+00    1.598251E-10    0.000000E+00              9.00000E+100
          9  traj.phase0.collocation_constraint.defects:r                   e   0.000000E+00    1.413422E-09    0.000000E+00              9.00000E+100
         10  traj.phase0.collocation_constraint.defects:r                   e   0.000000E+00    4.826887E-10    0.000000E+00              9.00000E+100
         11  traj.phase0.collocation_constraint.defects:r                   e   0.000000E+00    1.469272E-09    0.000000E+00              9.00000E+100
         12  traj.phase0.collocation_constraint.defects:r                   e   0.000000E+00    1.034815E-09    0.000000E+00              9.00000E+100
         13  traj.phase0.collocation_constraint.defects:r                   e   0.000000E+00    5.842335E-11    0.000000E+00              9.00000E+100
         14  traj.phase0.collocation_constraint.defects:r                   e   0.000000E+00    8.450943E-10    0.000000E+00              9.00000E+100
         15  traj.phase0.collocation_constraint.defects:r                   e   0.000000E+00    1.112414E-09    0.000000E+00              9.00000E+100
         16  traj.phase0.collocation_constraint.defects:r                   e   0.000000E+00    1.392063E-09    0.000000E+00              9.00000E+100
         17  traj.phase0.collocation_constraint.defects:r                   e   0.000000E+00    3.472676E-10    0.000000E+00              9.00000E+100
         18  traj.phase0.collocation_constraint.defects:h                   e   0.000000E+00    8.375831E-10    0.000000E+00              9.00000E+100
         19  traj.phase0.collocation_constraint.defects:h                   e   0.000000E+00    3.551372E-09    0.000000E+00              9.00000E+100
         20  traj.phase0.collocation_constraint.defects:h                   e   0.000000E+00    2.668318E-09    0.000000E+00              9.00000E+100
         21  traj.phase0.collocation_constraint.defects:h                   e   0.000000E+00    3.114203E-09    0.000000E+00              9.00000E+100
         22  traj.phase0.collocation_constraint.defects:h                   e   0.000000E+00    1.108939E-08    0.000000E+00              9.00000E+100
         23  traj.phase0.collocation_constraint.defects:h                   e   0.000000E+00   -5.413415E-09    0.000000E+00              9.00000E+100
         24  traj.phase0.collocation_constraint.defects:h                   e   0.000000E+00   -1.980764E-09    0.000000E+00              9.00000E+100
         25  traj.phase0.collocation_constraint.defects:h                   e   0.000000E+00    9.748812E-09    0.000000E+00              9.00000E+100
         26  traj.phase0.collocation_constraint.defects:h                   e   0.000000E+00   -6.078220E-09    0.000000E+00              9.00000E+100
         27  traj.phase0.collocation_constraint.defects:h                   e   0.000000E+00    3.217217E-09    0.000000E+00              9.00000E+100
         28  traj.phase0.collocation_constraint.defects:h                   e   0.000000E+00   -1.400650E-09    0.000000E+00              9.00000E+100
         29  traj.phase0.collocation_constraint.defects:h                   e   0.000000E+00    6.908657E-10    0.000000E+00              9.00000E+100
         30  traj.phase0.collocation_constraint.defects:h                   e   0.000000E+00    1.626326E-08    0.000000E+00              9.00000E+100
         31  traj.phase0.collocation_constraint.defects:h                   e   0.000000E+00   -5.249131E-09    0.000000E+00              9.00000E+100
         32  traj.phase0.collocation_constraint.defects:h                   e   0.000000E+00    6.414501E-10    0.000000E+00              9.00000E+100
         33  traj.phase0.collocation_constraint.defects:v                   e   0.000000E+00    3.937323E-11    0.000000E+00              9.00000E+100
         34  traj.phase0.collocation_constraint.defects:v                   e   0.000000E+00    3.581016E-10    0.000000E+00              9.00000E+100
         35  traj.phase0.collocation_constraint.defects:v                   e   0.000000E+00    3.977640E-10    0.000000E+00              9.00000E+100
         36  traj.phase0.collocation_constraint.defects:v                   e   0.000000E+00    4.826538E-10    0.000000E+00              9.00000E+100
         37  traj.phase0.collocation_constraint.defects:v                   e   0.000000E+00    9.079718E-11    0.000000E+00              9.00000E+100
         38  traj.phase0.collocation_constraint.defects:v                   e   0.000000E+00    2.951166E-10    0.000000E+00              9.00000E+100
         39  traj.phase0.collocation_constraint.defects:v                   e   0.000000E+00    8.087288E-11    0.000000E+00              9.00000E+100
         40  traj.phase0.collocation_constraint.defects:v                   e   0.000000E+00    2.553896E-10    0.000000E+00              9.00000E+100
         41  traj.phase0.collocation_constraint.defects:v                   e   0.000000E+00    5.581049E-10    0.000000E+00              9.00000E+100
         42  traj.phase0.collocation_constraint.defects:v                   e   0.000000E+00    3.493957E-10    0.000000E+00              9.00000E+100
         43  traj.phase0.collocation_constraint.defects:v                   e   0.000000E+00    1.850350E-10    0.000000E+00              9.00000E+100
         44  traj.phase0.collocation_constraint.defects:v                   e   0.000000E+00    2.238194E-10    0.000000E+00              9.00000E+100
         45  traj.phase0.collocation_constraint.defects:v                   e   0.000000E+00    3.965253E-10    0.000000E+00              9.00000E+100
         46  traj.phase0.collocation_constraint.defects:v                   e   0.000000E+00    1.105694E-10    0.000000E+00              9.00000E+100
         47  traj.phase0.collocation_constraint.defects:v                   e   0.000000E+00    1.849228E-10    0.000000E+00              9.00000E+100
         48  traj.phase0.collocation_constraint.defects:gam                 e   0.000000E+00    3.857897E-12    0.000000E+00              9.00000E+100
         49  traj.phase0.collocation_constraint.defects:gam                 e   0.000000E+00   -4.969917E-10    0.000000E+00              9.00000E+100
         50  traj.phase0.collocation_constraint.defects:gam                 e   0.000000E+00   -6.522233E-10    0.000000E+00              9.00000E+100
         51  traj.phase0.collocation_constraint.defects:gam                 e   0.000000E+00   -7.564190E-10    0.000000E+00              9.00000E+100
         52  traj.phase0.collocation_constraint.defects:gam                 e   0.000000E+00   -3.009292E-10    0.000000E+00              9.00000E+100
         53  traj.phase0.collocation_constraint.defects:gam                 e   0.000000E+00   -4.425586E-10    0.000000E+00              9.00000E+100
         54  traj.phase0.collocation_constraint.defects:gam                 e   0.000000E+00   -5.977136E-11    0.000000E+00              9.00000E+100
         55  traj.phase0.collocation_constraint.defects:gam                 e   0.000000E+00   -4.180545E-11    0.000000E+00              9.00000E+100
         56  traj.phase0.collocation_constraint.defects:gam                 e   0.000000E+00   -4.949431E-10    0.000000E+00              9.00000E+100
         57  traj.phase0.collocation_constraint.defects:gam                 e   0.000000E+00   -3.182751E-10    0.000000E+00              9.00000E+100
         58  traj.phase0.collocation_constraint.defects:gam                 e   0.000000E+00    1.096529E-10    0.000000E+00              9.00000E+100
         59  traj.phase0.collocation_constraint.defects:gam                 e   0.000000E+00   -1.619038E-10    0.000000E+00              9.00000E+100
         60  traj.phase0.collocation_constraint.defects:gam                 e   0.000000E+00   -3.522564E-10    0.000000E+00              9.00000E+100
         61  traj.phase0.collocation_constraint.defects:gam                 e   0.000000E+00   -1.089558E-10    0.000000E+00              9.00000E+100
         62  traj.phase0.collocation_constraint.defects:gam                 e   0.000000E+00    2.356004E-11    0.000000E+00              9.00000E+100
         63  traj.phase0.collocation_constraint.defects:m                   e   0.000000E+00   -9.719134E-13    0.000000E+00              9.00000E+100
         64  traj.phase0.collocation_constraint.defects:m                   e   0.000000E+00   -3.659895E-12    0.000000E+00              9.00000E+100
         65  traj.phase0.collocation_constraint.defects:m                   e   0.000000E+00    7.585026E-13    0.000000E+00              9.00000E+100
         66  traj.phase0.collocation_constraint.defects:m                   e   0.000000E+00    2.911436E-12    0.000000E+00              9.00000E+100
         67  traj.phase0.collocation_constraint.defects:m                   e   0.000000E+00    7.502145E-12    0.000000E+00              9.00000E+100
         68  traj.phase0.collocation_constraint.defects:m                   e   0.000000E+00    2.354362E-11    0.000000E+00              9.00000E+100
         69  traj.phase0.collocation_constraint.defects:m                   e   0.000000E+00   -2.152750E-12    0.000000E+00              9.00000E+100
         70  traj.phase0.collocation_constraint.defects:m                   e   0.000000E+00   -2.415291E-13    0.000000E+00              9.00000E+100
         71  traj.phase0.collocation_constraint.defects:m                   e   0.000000E+00   -5.322769E-12    0.000000E+00              9.00000E+100
         72  traj.phase0.collocation_constraint.defects:m                   e   0.000000E+00   -3.992038E-13    0.000000E+00              9.00000E+100
         73  traj.phase0.collocation_constraint.defects:m                   e   0.000000E+00   -2.995666E-12    0.000000E+00              9.00000E+100
         74  traj.phase0.collocation_constraint.defects:m                   e   0.000000E+00   -2.967528E-12    0.000000E+00              9.00000E+100
         75  traj.phase0.collocation_constraint.defects:m                   e   0.000000E+00    5.677455E-12    0.000000E+00              9.00000E+100
         76  traj.phase0.collocation_constraint.defects:m                   e   0.000000E+00    2.501568E-11    0.000000E+00              9.00000E+100
         77  traj.phase0.collocation_constraint.defects:m                   e   0.000000E+00    1.198211E-12    0.000000E+00              9.00000E+100
         78  traj.phase0.continuity_comp.defect_states:r                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
         79  traj.phase0.continuity_comp.defect_states:r                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
         80  traj.phase0.continuity_comp.defect_states:r                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
         81  traj.phase0.continuity_comp.defect_states:r                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
         82  traj.phase0.continuity_comp.defect_states:r                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
         83  traj.phase0.continuity_comp.defect_states:r                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
         84  traj.phase0.continuity_comp.defect_states:r                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
         85  traj.phase0.continuity_comp.defect_states:r                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
         86  traj.phase0.continuity_comp.defect_states:r                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
         87  traj.phase0.continuity_comp.defect_states:r                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
         88  traj.phase0.continuity_comp.defect_states:r                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
         89  traj.phase0.continuity_comp.defect_states:r                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
         90  traj.phase0.continuity_comp.defect_states:r                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
         91  traj.phase0.continuity_comp.defect_states:r                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
         92  traj.phase0.continuity_comp.defect_states:h                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
         93  traj.phase0.continuity_comp.defect_states:h                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
         94  traj.phase0.continuity_comp.defect_states:h                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
         95  traj.phase0.continuity_comp.defect_states:h                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
         96  traj.phase0.continuity_comp.defect_states:h                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
         97  traj.phase0.continuity_comp.defect_states:h                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
         98  traj.phase0.continuity_comp.defect_states:h                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
         99  traj.phase0.continuity_comp.defect_states:h                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        100  traj.phase0.continuity_comp.defect_states:h                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        101  traj.phase0.continuity_comp.defect_states:h                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        102  traj.phase0.continuity_comp.defect_states:h                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        103  traj.phase0.continuity_comp.defect_states:h                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        104  traj.phase0.continuity_comp.defect_states:h                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        105  traj.phase0.continuity_comp.defect_states:h                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        106  traj.phase0.continuity_comp.defect_states:v                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        107  traj.phase0.continuity_comp.defect_states:v                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        108  traj.phase0.continuity_comp.defect_states:v                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        109  traj.phase0.continuity_comp.defect_states:v                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        110  traj.phase0.continuity_comp.defect_states:v                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        111  traj.phase0.continuity_comp.defect_states:v                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        112  traj.phase0.continuity_comp.defect_states:v                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        113  traj.phase0.continuity_comp.defect_states:v                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        114  traj.phase0.continuity_comp.defect_states:v                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        115  traj.phase0.continuity_comp.defect_states:v                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        116  traj.phase0.continuity_comp.defect_states:v                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        117  traj.phase0.continuity_comp.defect_states:v                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        118  traj.phase0.continuity_comp.defect_states:v                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        119  traj.phase0.continuity_comp.defect_states:v                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        120  traj.phase0.continuity_comp.defect_states:gam                  e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        121  traj.phase0.continuity_comp.defect_states:gam                  e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        122  traj.phase0.continuity_comp.defect_states:gam                  e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        123  traj.phase0.continuity_comp.defect_states:gam                  e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        124  traj.phase0.continuity_comp.defect_states:gam                  e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        125  traj.phase0.continuity_comp.defect_states:gam                  e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        126  traj.phase0.continuity_comp.defect_states:gam                  e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        127  traj.phase0.continuity_comp.defect_states:gam                  e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        128  traj.phase0.continuity_comp.defect_states:gam                  e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        129  traj.phase0.continuity_comp.defect_states:gam                  e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        130  traj.phase0.continuity_comp.defect_states:gam                  e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        131  traj.phase0.continuity_comp.defect_states:gam                  e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        132  traj.phase0.continuity_comp.defect_states:gam                  e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        133  traj.phase0.continuity_comp.defect_states:gam                  e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        134  traj.phase0.continuity_comp.defect_states:m                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        135  traj.phase0.continuity_comp.defect_states:m                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        136  traj.phase0.continuity_comp.defect_states:m                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        137  traj.phase0.continuity_comp.defect_states:m                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        138  traj.phase0.continuity_comp.defect_states:m                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        139  traj.phase0.continuity_comp.defect_states:m                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        140  traj.phase0.continuity_comp.defect_states:m                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        141  traj.phase0.continuity_comp.defect_states:m                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        142  traj.phase0.continuity_comp.defect_states:m                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        143  traj.phase0.continuity_comp.defect_states:m                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        144  traj.phase0.continuity_comp.defect_states:m                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        145  traj.phase0.continuity_comp.defect_states:m                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        146  traj.phase0.continuity_comp.defect_states:m                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        147  traj.phase0.continuity_comp.defect_states:m                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        148  traj.phase0.continuity_comp.defect_control_rates:alpha_rate    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        149  traj.phase0.continuity_comp.defect_control_rates:alpha_rate    e   0.000000E+00    1.128466E-12    0.000000E+00              9.00000E+100
        150  traj.phase0.continuity_comp.defect_control_rates:alpha_rate    e   0.000000E+00    6.770797E-13    0.000000E+00              9.00000E+100
        151  traj.phase0.continuity_comp.defect_control_rates:alpha_rate    e   0.000000E+00   -2.256932E-13    0.000000E+00              9.00000E+100
        152  traj.phase0.continuity_comp.defect_control_rates:alpha_rate    e   0.000000E+00    4.513865E-13    0.000000E+00              9.00000E+100
        153  traj.phase0.continuity_comp.defect_control_rates:alpha_rate    e   0.000000E+00    1.692699E-12    0.000000E+00              9.00000E+100
        154  traj.phase0.continuity_comp.defect_control_rates:alpha_rate    e   0.000000E+00    6.770797E-13    0.000000E+00              9.00000E+100
        155  traj.phase0.continuity_comp.defect_control_rates:alpha_rate    e   0.000000E+00   -1.692699E-13    0.000000E+00              9.00000E+100
        156  traj.phase0.continuity_comp.defect_control_rates:alpha_rate    e   0.000000E+00    9.979873E-13    0.000000E+00              9.00000E+100
        157  traj.phase0.continuity_comp.defect_control_rates:alpha_rate    e   0.000000E+00    1.692699E-13    0.000000E+00              9.00000E+100
        158  traj.phase0.continuity_comp.defect_control_rates:alpha_rate    e   0.000000E+00   -2.151139E-13    0.000000E+00              9.00000E+100
        159  traj.phase0.continuity_comp.defect_control_rates:alpha_rate    e   0.000000E+00    4.513865E-13    0.000000E+00              9.00000E+100
        160  traj.phase0.continuity_comp.defect_control_rates:alpha_rate    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        161  traj.phase0.continuity_comp.defect_control_rates:alpha_rate    e   0.000000E+00    1.354159E-12    0.000000E+00              9.00000E+100
        162  traj.phase0.continuity_comp.defect_controls:alpha              e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        163  traj.phase0.continuity_comp.defect_controls:alpha              e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        164  traj.phase0.continuity_comp.defect_controls:alpha              e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        165  traj.phase0.continuity_comp.defect_controls:alpha              e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        166  traj.phase0.continuity_comp.defect_controls:alpha              e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        167  traj.phase0.continuity_comp.defect_controls:alpha              e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        168  traj.phase0.continuity_comp.defect_controls:alpha              e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        169  traj.phase0.continuity_comp.defect_controls:alpha              e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        170  traj.phase0.continuity_comp.defect_controls:alpha              e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        171  traj.phase0.continuity_comp.defect_controls:alpha              e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        172  traj.phase0.continuity_comp.defect_controls:alpha              e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        173  traj.phase0.continuity_comp.defect_controls:alpha              e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        174  traj.phase0.continuity_comp.defect_controls:alpha              e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        175  traj.phase0.continuity_comp.defect_controls:alpha              e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        176  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    5.000000E-03    1.000000E+00         l    9.00000E+100
        177  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    5.000000E-03    1.000000E+00         l    9.00000E+100
        178  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    1.223433E-02    1.000000E+00              9.00000E+100
        179  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    1.223433E-02    1.000000E+00              9.00000E+100
        180  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.914053E-02    1.000000E+00              9.00000E+100
        181  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    1.261703E-01    1.000000E+00              9.00000E+100
        182  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    1.261703E-01    1.000000E+00              9.00000E+100
        183  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    2.186413E-01    1.000000E+00              9.00000E+100
        184  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    2.989461E-01    1.000000E+00              9.00000E+100
        185  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    2.989461E-01    1.000000E+00              9.00000E+100
        186  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    3.667086E-01    1.000000E+00              9.00000E+100
        187  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.234513E-01    1.000000E+00              9.00000E+100
        188  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.234513E-01    1.000000E+00              9.00000E+100
        189  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.525960E-01    1.000000E+00              9.00000E+100
        190  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.420127E-01    1.000000E+00              9.00000E+100
        191  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.420127E-01    1.000000E+00              9.00000E+100
        192  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.029502E-01    1.000000E+00              9.00000E+100
        193  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    3.666983E-01    1.000000E+00              9.00000E+100
        194  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    3.666983E-01    1.000000E+00              9.00000E+100
        195  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    3.529703E-01    1.000000E+00              9.00000E+100
        196  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    3.574089E-01    1.000000E+00              9.00000E+100
        197  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    3.574089E-01    1.000000E+00              9.00000E+100
        198  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    3.707712E-01    1.000000E+00              9.00000E+100
        199  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    3.857948E-01    1.000000E+00              9.00000E+100
        200  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    3.857948E-01    1.000000E+00              9.00000E+100
        201  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    3.995225E-01    1.000000E+00              9.00000E+100
        202  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.130334E-01    1.000000E+00              9.00000E+100
        203  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.130334E-01    1.000000E+00              9.00000E+100
        204  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.271246E-01    1.000000E+00              9.00000E+100
        205  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.407297E-01    1.000000E+00              9.00000E+100
        206  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.407297E-01    1.000000E+00              9.00000E+100
        207  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.513322E-01    1.000000E+00              9.00000E+100
        208  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.569840E-01    1.000000E+00              9.00000E+100
        209  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.569840E-01    1.000000E+00              9.00000E+100
        210  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.579837E-01    1.000000E+00              9.00000E+100
        211  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.681173E-01    1.000000E+00              9.00000E+100
        212  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.681173E-01    1.000000E+00              9.00000E+100
        213  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    5.120717E-01    1.000000E+00              9.00000E+100
        214  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    6.037840E-01    1.000000E+00              9.00000E+100
        215  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    6.037840E-01    1.000000E+00              9.00000E+100
        216  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    7.330639E-01    1.000000E+00              9.00000E+100
        217  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    8.631143E-01    1.000000E+00              9.00000E+100
        218  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    8.631143E-01    1.000000E+00              9.00000E+100
        219  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    9.611028E-01    1.000000E+00              9.00000E+100
        220  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    4.000084E-01    1.800000E+00              9.00000E+100
        221  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    5.901464E-01    1.800000E+00              9.00000E+100
        222  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    7.761508E-01    1.800000E+00              9.00000E+100
        223  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    7.761508E-01    1.800000E+00              9.00000E+100
        224  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    9.011558E-01    1.800000E+00              9.00000E+100
        225  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    9.395440E-01    1.800000E+00              9.00000E+100
        226  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    9.395440E-01    1.800000E+00              9.00000E+100
        227  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    9.348077E-01    1.800000E+00              9.00000E+100
        228  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    9.317645E-01    1.800000E+00              9.00000E+100
        229  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    9.317645E-01    1.800000E+00              9.00000E+100
        230  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    9.276589E-01    1.800000E+00              9.00000E+100
        231  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    9.286850E-01    1.800000E+00              9.00000E+100
        232  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    9.286850E-01    1.800000E+00              9.00000E+100
        233  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    9.732434E-01    1.800000E+00              9.00000E+100
        234  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.066895E+00    1.800000E+00              9.00000E+100
        235  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.066895E+00    1.800000E+00              9.00000E+100
        236  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.177205E+00    1.800000E+00              9.00000E+100
        237  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.267675E+00    1.800000E+00              9.00000E+100
        238  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.267675E+00    1.800000E+00              9.00000E+100
        239  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.324559E+00    1.800000E+00              9.00000E+100
        240  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.361273E+00    1.800000E+00              9.00000E+100
        241  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.361273E+00    1.800000E+00              9.00000E+100
        242  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.390960E+00    1.800000E+00              9.00000E+100
        243  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.420860E+00    1.800000E+00              9.00000E+100
        244  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.420860E+00    1.800000E+00              9.00000E+100
        245  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.453071E+00    1.800000E+00              9.00000E+100
        246  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.486228E+00    1.800000E+00              9.00000E+100
        247  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.486228E+00    1.800000E+00              9.00000E+100
        248  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.519739E+00    1.800000E+00              9.00000E+100
        249  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.555044E+00    1.800000E+00              9.00000E+100
        250  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.555044E+00    1.800000E+00              9.00000E+100
        251  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.594558E+00    1.800000E+00              9.00000E+100
        252  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.638781E+00    1.800000E+00              9.00000E+100
        253  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.638781E+00    1.800000E+00              9.00000E+100
        254  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.685034E+00    1.800000E+00              9.00000E+100
        255  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.718231E+00    1.800000E+00              9.00000E+100
        256  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.718231E+00    1.800000E+00              9.00000E+100
        257  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.716946E+00    1.800000E+00              9.00000E+100
        258  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.635772E+00    1.800000E+00              9.00000E+100
        259  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.635772E+00    1.800000E+00              9.00000E+100
        260  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.459644E+00    1.800000E+00              9.00000E+100
        261  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.256939E+00    1.800000E+00              9.00000E+100
        262  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.256939E+00    1.800000E+00              9.00000E+100
        263  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.081421E+00    1.800000E+00              9.00000E+100


   Exit Status
      Inform  Description
           0  Optimization terminated successfully.
--------------------------------------------------------------------------------
/usr/share/miniconda/envs/test/lib/python3.11/site-packages/openmdao/visualization/opt_report/opt_report.py:625: UserWarning: Attempting to set identical low and high ylims makes transformation singular; automatically expanding.
  ax.set_ylim([ymin_plot, ymax_plot])
INFO: checking out_of_order
INFO: checking system
INFO: checking solvers
INFO: checking dup_inputs
INFO: checking missing_recorders
WARNING: The Problem has no recorder of any kind attached
INFO: checking unserializable_options
INFO: checking comp_has_no_outputs
INFO: checking auto_ivc_warnings
Simulating trajectory traj
Model viewer data has already been recorded for Driver.
INFO: checking out_of_order
INFO: checking system
INFO: checking solvers
INFO: checking dup_inputs
INFO: checking missing_recorders
WARNING: The Problem has no recorder of any kind attached
INFO: checking unserializable_options
INFO: checking comp_has_no_outputs
INFO: checking auto_ivc_warnings
/usr/share/miniconda/envs/test/lib/python3.11/site-packages/openmdao/core/group.py:1101: DerivativesWarning:Constraints or objectives [ode_eval.control_interp.control_rates:alpha_rate2] cannot be impacted by the design variables of the problem because no partials were defined for them in their parent component(s).
Done simulating trajectory traj
Problem: problem
Driver:  pyOptSparseDriver
  success     : True
  iterations  : 96
  runtime     : 4.9666E+00 s
  model_evals : 96
  model_time  : 9.0836E-01 s
  deriv_evals : 85
  deriv_time  : 7.1308E-01 s
  exit_status : SUCCESS
sol = om.CaseReader('dymos_solution.db').get_case('final')
sim = om.CaseReader('dymos_simulation.db').get_case('final')

plot_results([('traj.phase0.timeseries.time', 'traj.phase0.timeseries.h',
               'time (s)', 'altitude (m)'),
              ('traj.phase0.timeseries.time', 'traj.phase0.timeseries.alpha',
               'time (s)', 'alpha (deg)')],
             title='Supersonic Minimum Time-to-Climb Solution',
             p_sol=sol, p_sim=sim)

plt.show()
../../_images/c69a725eb4860c9c3efcd595205879266fd038bfc4ce9e981db3be2749e9d172.png

References#

[Bry99]

Arthur Earl Bryson. Dynamic optimization. Addison Wesley Longman Menlo Park, CA, 1999.