SUAVE  2.5.2
An Aerospace Vehicle Environment for Designing Future Aircraft

Cruise mission methods containing the functions for setting up and solving a mission. More...

Functions

def SUAVE.Methods.Missions.Segments.Cruise.Common.unpack_unknowns (segment)
 
def SUAVE.Methods.Missions.Segments.Cruise.Common.residual_total_forces (segment)
 
def SUAVE.Methods.Missions.Segments.Cruise.Constant_Acceleration_Constant_Altitude.initialize_conditions (segment)
 Constant_Acceleration_Constant_Altitude.py. More...
 
def SUAVE.Methods.Missions.Segments.Cruise.Constant_Acceleration_Constant_Altitude.residual_total_forces (segment)
 
def SUAVE.Methods.Missions.Segments.Cruise.Constant_Dynamic_Pressure_Constant_Altitude.initialize_conditions (segment)
 
def SUAVE.Methods.Missions.Segments.Cruise.Constant_Dynamic_Pressure_Constant_Altitude_Loiter.initialize_conditions (segment)
 
def SUAVE.Methods.Missions.Segments.Cruise.Constant_Mach_Constant_Altitude.initialize_conditions (segment)
 
def SUAVE.Methods.Missions.Segments.Cruise.Constant_Mach_Constant_Altitude_Loiter.initialize_conditions (segment)
 
def SUAVE.Methods.Missions.Segments.Cruise.Constant_Pitch_Rate_Constant_Altitude.initialize_conditions (segment)
 
def SUAVE.Methods.Missions.Segments.Cruise.Constant_Pitch_Rate_Constant_Altitude.residual_total_forces (segment)
 
def SUAVE.Methods.Missions.Segments.Cruise.Constant_Pitch_Rate_Constant_Altitude.unpack_unknowns (segment)
 
def SUAVE.Methods.Missions.Segments.Cruise.Constant_Speed_Constant_Altitude.initialize_conditions (segment)
 Constant_Speed_Constant_Altitude.py. More...
 
def SUAVE.Methods.Missions.Segments.Cruise.Constant_Speed_Constant_Altitude_Loiter.initialize_conditions (segment)
 
def SUAVE.Methods.Missions.Segments.Cruise.Constant_Throttle_Constant_Altitude.unpack_unknowns (segment)
 
def SUAVE.Methods.Missions.Segments.Cruise.Constant_Throttle_Constant_Altitude.initialize_conditions (segment)
 
def SUAVE.Methods.Missions.Segments.Cruise.Constant_Throttle_Constant_Altitude.solve_residuals (segment)
 
def SUAVE.Methods.Missions.Segments.Cruise.Variable_Cruise_Distance.initialize_cruise_distance (segment)
 Variable_Cruise_Distance.py. More...
 
def SUAVE.Methods.Missions.Segments.Cruise.Variable_Cruise_Distance.unknown_cruise_distance (segment)
 
def SUAVE.Methods.Missions.Segments.Cruise.Variable_Cruise_Distance.residual_landing_weight (segment)
 
def SUAVE.Methods.Missions.Segments.Cruise.Variable_Cruise_Distance.residual_state_of_charge (segment)
 
def SUAVE.Methods.Missions.Segments.Single_Point.Set_Speed_Set_Altitude_No_Propulsion.unpack_unknowns (segment)
 
def SUAVE.Methods.Missions.Segments.Transition.Constant_Acceleration_Constant_Angle_Linear_Climb.residual_total_forces (segment)
 
def SUAVE.Methods.Missions.Segments.Transition.Constant_Acceleration_Constant_Pitchrate_Constant_Altitude.residual_total_forces (segment)
 

Detailed Description

Cruise mission methods containing the functions for setting up and solving a mission.

Function Documentation

◆ initialize_conditions() [1/9]

def SUAVE.Methods.Missions.Segments.Cruise.Constant_Speed_Constant_Altitude.initialize_conditions (   segment)

Constant_Speed_Constant_Altitude.py.

Created: Jul 2014, SUAVE Team Modified: Jan 2016, E. Botero May 2019, T. MacDonald

Sets the specified conditions which are given for the segment type.

Assumptions:
Constant speed and constant altitude

Source:
N/A

Inputs:
segment.altitude                [meters]
segment.distance                [meters]
segment.speed                   [meters/second]

Outputs:
conditions.frames.inertial.velocity_vector  [meters/second]
conditions.frames.inertial.position_vector  [meters]
conditions.freestream.altitude              [meters]
conditions.frames.inertial.time             [seconds]

Properties Used:
N/A

◆ initialize_conditions() [2/9]

def SUAVE.Methods.Missions.Segments.Cruise.Constant_Acceleration_Constant_Altitude.initialize_conditions (   segment)

Constant_Acceleration_Constant_Altitude.py.

Created: Jul 2014, SUAVE Team Modified: Jan 2016, E. Botero May 2019, T. MacDonald Mar 2020, M. Clarke

Sets the specified conditions which are given for the segment type.

Assumptions:
Constant acceleration and constant altitude

Source:
N/A

Inputs:
segment.altitude                [meters]
segment.air_speed_start         [meters/second]
segment.air_speed_end           [meters/second]
segment.acceleration            [meters/second^2]
conditions.frames.inertial.time [seconds]

Outputs:
conditions.frames.inertial.velocity_vector  [meters/second]
conditions.frames.inertial.position_vector  [meters]
conditions.freestream.altitude              [meters]
conditions.frames.inertial.time             [seconds]

Properties Used:
N/A

◆ initialize_conditions() [3/9]

def SUAVE.Methods.Missions.Segments.Cruise.Constant_Speed_Constant_Altitude_Loiter.initialize_conditions (   segment)
Sets the specified conditions which are given for the segment type.

Assumptions:
Constant speed and constant altitude with set loiter time

Source:
N/A

Inputs:
segment.altitude                [meters]
segment.time                    [seconds]
segment.speed                   [meters/second]

Outputs:
conditions.frames.inertial.velocity_vector  [meters/second]
conditions.frames.inertial.position_vector  [meters]
conditions.freestream.altitude              [meters]
conditions.frames.inertial.time             [seconds]

Properties Used:
N/A

◆ initialize_conditions() [4/9]

def SUAVE.Methods.Missions.Segments.Cruise.Constant_Dynamic_Pressure_Constant_Altitude.initialize_conditions (   segment)
Sets the specified conditions which are given for the segment type.

Assumptions:
Constant dynamic pressure and constant altitude

Source:
N/A

Inputs:
segment.altitude                [meters]
segment.distance                [meters]
segment.dynamic_pressure        [pascals]

Outputs:
conditions.frames.inertial.velocity_vector  [meters/second]
conditions.frames.inertial.position_vector  [meters]
conditions.freestream.altitude              [meters]
conditions.frames.inertial.time             [seconds]

Properties Used:
N/A

◆ initialize_conditions() [5/9]

def SUAVE.Methods.Missions.Segments.Cruise.Constant_Mach_Constant_Altitude_Loiter.initialize_conditions (   segment)
Sets the specified conditions which are given for the segment type.

Assumptions:
Constant mach and constant altitude with set loiter time

Source:
N/A

Inputs:
segment.altitude                [meters]
segment.time                    [seconds]
segment.mach                    [unitless]

Outputs:
conditions.frames.inertial.velocity_vector  [meters/second]
conditions.frames.inertial.position_vector  [meters]
conditions.freestream.altitude              [meters]
conditions.frames.inertial.time             [seconds]

Properties Used:
N/A

◆ initialize_conditions() [6/9]

def SUAVE.Methods.Missions.Segments.Cruise.Constant_Pitch_Rate_Constant_Altitude.initialize_conditions (   segment)
Sets the specified conditions which are given for the segment type.

Assumptions:
Constant acceleration and constant altitude

Source:
N/A

Inputs:
segment.altitude                [meters]
segment.pitch_initial           [radians]
segment.pitch_final             [radians]
segment.pitch_rate              [radians/second]

Outputs:
conditions.frames.body.inertial_rotations   [radians/second]
conditions.frames.inertial.position_vector  [meters]
conditions.freestream.altitude              [meters]
conditions.frames.inertial.time             [seconds]

Properties Used:
N/A

◆ initialize_conditions() [7/9]

def SUAVE.Methods.Missions.Segments.Cruise.Constant_Dynamic_Pressure_Constant_Altitude_Loiter.initialize_conditions (   segment)
Sets the specified conditions which are given for the segment type.

Assumptions:
Constant dynamic pressure and constant altitude with set loiter time

Source:
N/A

Inputs:
segment.altitude                [meters]
segment.time                    [seconds]
segment.dynamic_pressure        [pascals]

Outputs:
conditions.frames.inertial.velocity_vector  [meters/second]
conditions.frames.inertial.position_vector  [meters]
conditions.freestream.altitude              [meters]
conditions.frames.inertial.time             [seconds]

Properties Used:
N/A

◆ initialize_conditions() [8/9]

def SUAVE.Methods.Missions.Segments.Cruise.Constant_Mach_Constant_Altitude.initialize_conditions (   segment)
Sets the specified conditions which are given for the segment type.

Assumptions:
Constant mach and constant altitude

Source:
N/A

Inputs:
segment.altitude                [meters]
segment.distance                [meters]
segment.mach                    [unitless]

Outputs:
conditions.frames.inertial.velocity_vector  [meters/second]
conditions.frames.inertial.position_vector  [meters]
conditions.freestream.altitude              [meters]
conditions.frames.inertial.time             [seconds]

Properties Used:
N/A

◆ initialize_conditions() [9/9]

def SUAVE.Methods.Missions.Segments.Cruise.Constant_Throttle_Constant_Altitude.initialize_conditions (   segment)
Sets the specified conditions which are given for the segment type.

Assumptions:
Constant throttle and constant altitude, allows for acceleration

Source:
N/A

Inputs:
segment.altitude                             [meters]
segment.air_speed_start                      [meters/second]
segment.air_speed_end                        [meters/second]
segment.throttle                             [unitless]
segment.state.numerics.number_control_points [int]

Outputs:
state.conditions.propulsion.throttle        [unitless]
conditions.frames.inertial.position_vector  [meters]
conditions.freestream.altitude              [meters]

Properties Used:
N/A

◆ initialize_cruise_distance()

def SUAVE.Methods.Missions.Segments.Cruise.Variable_Cruise_Distance.initialize_cruise_distance (   segment)

Variable_Cruise_Distance.py.

Created: Jul 2014, SUAVE Team Modified: Jan 2016, E. Botero Aug 2021, M. Clarke

This is a method that allows your vehicle to land at prescribed landing weight

Assumptions:
N/A

Source:
N/A

Inputs:
segment.cruise_tag              [string]
segment.distance                [meters]

Outputs:
state.unknowns.cruise_distance  [meters]

Properties Used:
N/A

◆ residual_landing_weight()

def SUAVE.Methods.Missions.Segments.Cruise.Variable_Cruise_Distance.residual_landing_weight (   segment)
This is a method that allows your vehicle to land at prescribed landing weight.
This takes the final weight and compares it against the prescribed landing weight.

Assumptions:
N/A

Source:
N/A

Inputs:
segment.state.segments[-1].conditions.weights.total_mass [kilogram]
segment.target_landing_weight                            [kilogram]

Outputs:
segment.state.residuals.landing_weight                   [kilogram]

Properties Used:
N/A

◆ residual_state_of_charge()

def SUAVE.Methods.Missions.Segments.Cruise.Variable_Cruise_Distance.residual_state_of_charge (   segment)
This is a method that allows your vehicle to land at a prescribed state of charge.
This takes the final weight and compares it against the prescribed state of charge.

Assumptions:
N/A

Source:
N/A

Inputs:
segment.state.segments[-1].conditions.propulsion.battery_state_of_charge [None]
segment.target_state_of_charge                                           [None]

Outputs:
segment.state.residuals.battery_state_of_charge                          [None]

Properties Used:
N/A

◆ residual_total_forces() [1/5]

def SUAVE.Methods.Missions.Segments.Cruise.Common.residual_total_forces (   segment)
Calculates a residual based on forces

    Assumptions:
    The vehicle is not accelerating, doesn't use gravity
    
    Inputs:
        segment.state.conditions:
            frames.inertial.total_force_vector [Newtons]
            weights.total_mass                 [kg]
        
    Outputs:
        segment.state.residuals.forces [meters/second^2]

    Properties Used:
    N/A

◆ residual_total_forces() [2/5]

def SUAVE.Methods.Missions.Segments.Cruise.Constant_Acceleration_Constant_Altitude.residual_total_forces (   segment)
Calculates a residual based on forces

    Assumptions:
    The vehicle is not accelerating, doesn't use gravity
    
    Inputs:
        segment.acceleration                   [meters/second^2]
        segment.state.ones_row                 [vector]
        state.conditions:
            frames.inertial.total_force_vector [Newtons]
            weights.total_mass                 [kg]
        
    Outputs:
        state.conditions:
            state.residuals.forces [meters/second^2]

    Properties Used:
    N/A

◆ residual_total_forces() [3/5]

def SUAVE.Methods.Missions.Segments.Cruise.Constant_Pitch_Rate_Constant_Altitude.residual_total_forces (   segment)
Calculates a residual based on forces

    Assumptions:
    The vehicle is accelerating, doesn't use gravity
    
    Inputs:
    state.conditions:
        frames.inertial.total_force_vector [Newtons]
        weights.total_mass                 [kg]
        frames.inertial.velocity_vector    [meters/second]
        
    Outputs:
    state:
        residuals.forces [meters/second^2]
        conditions.frames.inertial.acceleration_vector [meters/second^2]

    Properties Used:
    N/A

◆ residual_total_forces() [4/5]

def SUAVE.Methods.Missions.Segments.Transition.Constant_Acceleration_Constant_Pitchrate_Constant_Altitude.residual_total_forces (   segment)
Calculates a residual based on forces

    Assumptions:
    The vehicle is not accelerating, doesn't use gravity
    
    Inputs:
        segment.acceleration                   [meters/second^2]
        segment.state.ones_row                 [vector]
        state.conditions:
            frames.inertial.total_force_vector [Newtons]
            weights.total_mass                 [kg]
        
    Outputs:
        state.conditions:
            state.residuals.forces [meters/second^2]

    Properties Used:
    N/A

◆ residual_total_forces() [5/5]

def SUAVE.Methods.Missions.Segments.Transition.Constant_Acceleration_Constant_Angle_Linear_Climb.residual_total_forces (   segment)
Calculates a residual based on forces

    Assumptions:
    The vehicle is not accelerating, doesn't use gravity
    
    Inputs:
        segment.acceleration                   [meters/second^2]
        segment.state.ones_row                 [vector]
        state.conditions:
            frames.inertial.total_force_vector [Newtons]
            weights.total_mass                 [kg]
        
    Outputs:
        state.conditions:
            state.residuals.forces [meters/second^2]

    Properties Used:
    N/A

◆ solve_residuals()

def SUAVE.Methods.Missions.Segments.Cruise.Constant_Throttle_Constant_Altitude.solve_residuals (   segment)
Calculates a residual based on forces

    Assumptions:
    The vehicle accelerates, residual on forces and to get it to the final speed
    
    Inputs:
    segment.air_speed_end                  [meters/second]
    segment.state.conditions:
        frames.inertial.total_force_vector [Newtons]
        frames.inertial.velocity_vector    [meters/second]
        weights.total_mass                 [kg]
    segment.state.numerics.time.differentiate
        
    Outputs:
    segment.state.residuals:
        forces               [meters/second^2]
        final_velocity_error [meters/second]
    segment.state.conditions:
        conditions.frames.inertial.acceleration_vector [meters/second^2]

    Properties Used:
    N/A

◆ unknown_cruise_distance()

def SUAVE.Methods.Missions.Segments.Cruise.Variable_Cruise_Distance.unknown_cruise_distance (   segment)
This is a method that allows your vehicle to land at prescribed landing weight

Assumptions:
N/A

Source:
N/A

Inputs:
segment.cruise_tag              [string]
state.unknowns.cruise_distance  [meters]

Outputs:
segment.distance                [meters]

Properties Used:
N/A

◆ unpack_unknowns() [1/3]

def SUAVE.Methods.Missions.Segments.Cruise.Common.unpack_unknowns (   segment)
Unpacks the throttle setting and body angle from the solver to the mission

    Assumptions:
    N/A
    
    Inputs:
        state.unknowns:
            throttle    [Unitless]
            body_angle  [Radians]
        
    Outputs:
        state.conditions:
            propulsion.throttle            [Unitless]
            frames.body.inertial_rotations [Radians]

    Properties Used:
    N/A

◆ unpack_unknowns() [2/3]

def SUAVE.Methods.Missions.Segments.Single_Point.Set_Speed_Set_Altitude_No_Propulsion.unpack_unknowns (   segment)
Unpacks the throttle setting and body angle from the solver to the mission

    Assumptions:
    N/A
    
    Inputs:
        state.unknowns:
            throttle    [Unitless]
            body_angle  [Radians]
        
    Outputs:
        state.conditions:
            propulsion.throttle            [Unitless]
            frames.body.inertial_rotations [Radians]

    Properties Used:
    N/A

◆ unpack_unknowns() [3/3]

def SUAVE.Methods.Missions.Segments.Cruise.Constant_Pitch_Rate_Constant_Altitude.unpack_unknowns (   segment)
Unpacks the throttle setting and velocity from the solver to the mission

    Assumptions:
    N/A
    
    Inputs:
        state.unknowns:
            throttle    [Unitless]
            velocity    [meters/second]
        
    Outputs:
        state.conditions:
            propulsion.throttle             [Unitless]
            frames.inertial.velocity_vector [meters/second]

    Properties Used:
    N/A