SUAVE  2.5.2
An Aerospace Vehicle Environment for Designing Future Aircraft

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

Functions

def SUAVE.Methods.Missions.Segments.Common.Aerodynamics.update_altitude (segment)
 
def SUAVE.Methods.Missions.Segments.Common.Aerodynamics.update_atmosphere (segment)
 
def SUAVE.Methods.Missions.Segments.Common.Aerodynamics.update_freestream (segment)
 
def SUAVE.Methods.Missions.Segments.Common.Aerodynamics.update_aerodynamics (segment)
 
def SUAVE.Methods.Missions.Segments.Common.Aerodynamics.update_stability (segment)
 
def SUAVE.Methods.Missions.Segments.Common.Energy.initialize_battery (segment)
 Energy.py. More...
 
def SUAVE.Methods.Missions.Segments.Common.Energy.update_thrust (segment)
 
def SUAVE.Methods.Missions.Segments.Common.Frames.initialize_inertial_position (segment)
 
def SUAVE.Methods.Missions.Segments.Common.Frames.initialize_time (segment)
 
def SUAVE.Methods.Missions.Segments.Common.Frames.initialize_planet_position (segment)
 
def SUAVE.Methods.Missions.Segments.Common.Frames.update_planet_position (segment)
 
def SUAVE.Methods.Missions.Segments.Common.Frames.update_orientations (segment)
 
def SUAVE.Methods.Missions.Segments.Common.Frames.update_forces (segment)
 
def SUAVE.Methods.Missions.Segments.Common.Frames.integrate_inertial_horizontal_position (segment)
 
def SUAVE.Methods.Missions.Segments.Common.Frames.update_acceleration (segment)
 
def SUAVE.Methods.Missions.Segments.Common.Noise.compute_noise (segment)
 Noise.py. More...
 
def SUAVE.Methods.Missions.Segments.Common.Numerics.initialize_differentials_dimensionless (segment)
 
def SUAVE.Methods.Missions.Segments.Common.Numerics.update_differentials_time (segment)
 
def SUAVE.Methods.Missions.Segments.Common.Sub_Segments.expand_sub_segments (segment)
 
def SUAVE.Methods.Missions.Segments.Common.Sub_Segments.update_sub_segments (segment)
 
def SUAVE.Methods.Missions.Segments.Common.Sub_Segments.finalize_sub_segments (segment)
 
def SUAVE.Methods.Missions.Segments.Common.Sub_Segments.sequential_sub_segments (segment)
 
def SUAVE.Methods.Missions.Segments.Common.Sub_Segments.merge_sub_segment_states (segment)
 
def SUAVE.Methods.Missions.Segments.Common.Sub_Segments.unpack_subsegments (segment)
 
def SUAVE.Methods.Missions.Segments.Common.Weights.initialize_weights (segment)
 
def SUAVE.Methods.Missions.Segments.Common.Weights.update_gravity (segment)
 
def SUAVE.Methods.Missions.Segments.Common.Weights.update_weights (segment)
 

Detailed Description

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

Function Documentation

◆ compute_noise()

def SUAVE.Methods.Missions.Segments.Common.Noise.compute_noise (   segment)

Noise.py.

Created: Oct 2020, M. Clarke

Evaluates the energy network to find the thrust force and mass rate

    Inputs -
        segment.analyses.noise             [Function]

    Outputs
        N/A

    Assumptions -

◆ expand_sub_segments()

def SUAVE.Methods.Missions.Segments.Common.Sub_Segments.expand_sub_segments (   segment)
Fills in the segments to a mission with data, sets initials data if necessary

    Assumptions:
    N/A
    
    Inputs:
    N/A
        
    Outputs:
    N/A

    Properties Used:
    N/A

◆ finalize_sub_segments()

def SUAVE.Methods.Missions.Segments.Common.Sub_Segments.finalize_sub_segments (   segment)
Sets the conditions in each sub segment for a mission

    Assumptions:
    N/A
    
    Inputs:
    N/A
        
    Outputs:
    N/A

    Properties Used:
    N/A

◆ initialize_battery()

def SUAVE.Methods.Missions.Segments.Common.Energy.initialize_battery (   segment)

Energy.py.

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

Dec 2021, S.CLaridge

Initialize Battery

Sets the initial battery energy at the start of the mission

    Assumptions:
    N/A
    
    Inputs:
        segment.state.initials.conditions:
            propulsion.battery_energy    [Joules]
        segment.battery_energy           [Joules]
        
    Outputs:
        segment.state.conditions:
            propulsion.battery_energy    [Joules]

    Properties Used:
    N/A

◆ initialize_differentials_dimensionless()

def SUAVE.Methods.Missions.Segments.Common.Numerics.initialize_differentials_dimensionless (   segment)
Discretizes the differential operators

    Assumptions:
    N/A
    
    Inputs:
        state.numerics:
            number_control_points [int]
            discretization_method [function]
        
    Outputs:
        numerics.dimensionless:           
            control_points        [array]
            differentiate         [array]
            integrate             [array]

    Properties Used:
    N/A

◆ initialize_inertial_position()

def SUAVE.Methods.Missions.Segments.Common.Frames.initialize_inertial_position (   segment)
Sets the initial location of the vehicle at the start of the segment

    Assumptions:
    Only used if there is an initial condition
    
    Inputs:
        segment.state.initials.conditions:
            frames.inertial.position_vector   [meters]
        segment.state.conditions:           
            frames.inertial.position_vector   [meters]
        
    Outputs:
        segment.state.conditions:           
            frames.inertial.position_vector   [meters]

    Properties Used:
    N/A

◆ initialize_planet_position()

def SUAVE.Methods.Missions.Segments.Common.Frames.initialize_planet_position (   segment)
Sets the initial location of the vehicle relative to the planet at the start of the segment

    Assumptions:
    Only used if there is an initial condition
    
    Inputs:
        segment.state.initials.conditions:
            frames.planet.longitude [Radians]
            frames.planet.latitude  [Radians]
        segment.longitude           [Radians]
        segment.latitude            [Radians]

    Outputs:
        segment.state.conditions:           
            frames.planet.latitude  [Radians]
            frames.planet.longitude [Radians]

    Properties Used:
    N/A

◆ initialize_time()

def SUAVE.Methods.Missions.Segments.Common.Frames.initialize_time (   segment)
Sets the initial time of the vehicle at the start of the segment

    Assumptions:
    Only used if there is an initial condition
    
    Inputs:
        state.initials.conditions:
            frames.inertial.time     [seconds]
            frames.planet.start_time [seconds]
        state.conditions:           
            frames.inertial.time     [seconds]
        segment.start_time           [seconds]
        
    Outputs:
        state.conditions:           
            frames.inertial.time     [seconds]
            frames.planet.start_time [seconds]

    Properties Used:
    N/A

◆ initialize_weights()

def SUAVE.Methods.Missions.Segments.Common.Weights.initialize_weights (   segment)
Sets the initial weight of the vehicle at the start of the segment

    Assumptions:
    Only used if there is an initial condition
    
    Inputs:
        segment.state.initials.conditions:
            weights.total_mass     [newtons]
        segment.state.conditions:           
            weights.total_mass     [newtons]
        
    Outputs:
        segment.state.conditions:           
            weights.total_mass     [newtons]

    Properties Used:
    N/A

◆ integrate_inertial_horizontal_position()

def SUAVE.Methods.Missions.Segments.Common.Frames.integrate_inertial_horizontal_position (   segment)
Determines how far the airplane has traveled. 

    Assumptions:
    Assumes a flat earth, this is planar motion.
    
    Inputs:
        segment.state.conditions:
            frames.inertial.position_vector [meters]
            frames.inertial.velocity_vector [meters/second]
        segment.state.numerics.time.integrate       [float]
        
    Outputs:
        segment.state.conditions:           
            frames.inertial.position_vector [meters]

    Properties Used:
    N/A

◆ merge_sub_segment_states()

def SUAVE.Methods.Missions.Segments.Common.Sub_Segments.merge_sub_segment_states (   segment)
Merges all of the sub segment states back into the main state

    Assumptions:
    N/A
    
    Inputs:
    N/A
        
    Outputs:
    N/A

    Properties Used:
    N/A

◆ sequential_sub_segments()

def SUAVE.Methods.Missions.Segments.Common.Sub_Segments.sequential_sub_segments (   segment)
Evaluates all the segments in a mission one by one

    Assumptions:
    N/A
    
    Inputs:
    N/A
        
    Outputs:
    N/A

    Properties Used:
    N/A

◆ unpack_subsegments()

def SUAVE.Methods.Missions.Segments.Common.Sub_Segments.unpack_subsegments (   segment)
Unpacks the unknowns from the higher level state into the sub segments

    Assumptions:
    The subsegments have numerics
    
    Inputs:
    N/A
        
    Outputs:
    N/A

    Properties Used:
    N/A

◆ update_acceleration()

def SUAVE.Methods.Missions.Segments.Common.Frames.update_acceleration (   segment)
Differentiates the velocity vector to get accelerations

    Assumptions:
    Assumes a flat earth, this is planar motion.
    
    Inputs:
        segment.state.conditions:
            frames.inertial.velocity_vector     [meters/second]
        segment.state.numerics.time.differentiate       [float]
        
    Outputs:
        segment.state.conditions:           
            frames.inertial.acceleration_vector [meters]

    Properties Used:
    N/A

◆ update_aerodynamics()

def SUAVE.Methods.Missions.Segments.Common.Aerodynamics.update_aerodynamics (   segment)
Gets aerodynamics conditions

    Assumptions:
    +X out nose
    +Y out starboard wing
    +Z down

    Inputs:
        segment.analyses.aerodynamics_model                    [Function]
        aerodynamics_model.settings.maximum_lift_coefficient   [unitless]
        aerodynamics_model.geometry.reference_area             [meter^2]
        segment.state.conditions.freestream.dynamic_pressure   [pascals]

    Outputs:
        conditions.aerodynamics.lift_coefficient [unitless]
        conditions.aerodynamics.drag_coefficient [unitless]
        conditions.frames.wind.lift_force_vector [newtons]
        conditions.frames.wind.drag_force_vector [newtons]

    Properties Used:
    N/A

◆ update_altitude()

def SUAVE.Methods.Missions.Segments.Common.Aerodynamics.update_altitude (   segment)
Updates freestream altitude from inertial position
    
    Assumptions:
    N/A
    
    Inputs:
        segment.state.conditions:
            frames.inertial.position_vector [meters]
    Outputs:
        segment.state.conditions:
            freestream.altitude             [meters]
  
    Properties Used:
    N/A

◆ update_atmosphere()

def SUAVE.Methods.Missions.Segments.Common.Aerodynamics.update_atmosphere (   segment)
Computes conditions of the atmosphere at given altitudes

    Assumptions:
    N/A
    
    Inputs:
        state.conditions:
            freestream.altitude    [meters]
        segment.analyses.atmoshere [Function]
        
    Outputs:
        state.conditions:
            freestream.pressure             [pascals]
            freestream.temperature          [kelvin]
            freestream.density              [kilogram/meter^3]
            freestream.speed_of_sound       [meter/second]
            freestream.dynamic_viscosity    [pascals-seconds]
            freestream.kinematic_viscosity  [meters^2/second]
            freestream.thermal_conductivity [Watt/meter-Kelvin]
            freestream.prandtl_number       [unitless]
            
    Properties Used:
    N/A

◆ update_differentials_time()

def SUAVE.Methods.Missions.Segments.Common.Numerics.update_differentials_time (   segment)
Scales the differential operators (integrate and differentiate) based on mission time

    Assumptions:
    N/A
    
    Inputs:
        numerics.dimensionless:           
            control_points                    [array]
            differentiate                     [array]
            integrate                         [array]
        state.conditions.frames.inertial.time [seconds]
        
    Outputs:
        numerics.time:           
            control_points        [array]
            differentiate         [array]
            integrate             [array]

    Properties Used:
    N/A

◆ update_forces()

def SUAVE.Methods.Missions.Segments.Common.Frames.update_forces (   segment)
Summation of forces: lift, drag, thrust, weight. Future versions will include new definitions of dreams, FAA, money, and reality.

    Assumptions:
    You only have these 4 forces applied to the vehicle
    
    Inputs:
        segment.state.conditions:
            frames.wind.lift_force_vector          [newtons]
            frames.wind.drag_force_vector          [newtons]
            frames.inertial.gravity_force_vector   [newtons]
            frames.body.thrust_force_vector        [newtons]
            frames.body.transform_to_inertial      [newtons]
            frames.wind.transform_to_inertial      [newtons]

        
    Outputs:
        segment.state.conditions:           
            frames.inertial.total_force_vector [newtons]



    Properties Used:
    N/A

◆ update_freestream()

def SUAVE.Methods.Missions.Segments.Common.Aerodynamics.update_freestream (   segment)
Computes freestream values
    
    Assumptions:
    N/A

    Inputs:
        segment.state.conditions:
            frames.inertial.velocity_vector [meter/second]
            freestream.density              [kilogram/meter^3]
            freestream.speed_of_sound       [meter/second]
            freestream.dynamic_viscosity    [pascals-seconds]

    Outputs:
        segment.state.conditions:
            freestream.dynamic pressure     [pascals]
            freestream.mach number          [Unitless]
            freestream.reynolds number      [1/meter]
                           
    Properties Used:
    N/A

◆ update_gravity()

def SUAVE.Methods.Missions.Segments.Common.Weights.update_gravity (   segment)
Sets the gravity for each part of the mission

    Assumptions:
    Fixed sea level gravity, doesn't use a gravity model yet
    
    Inputs:
    segment.analyses.planet.features.sea_level_gravity [Data] 
        
    Outputs:
    state.conditions.freestream.gravity [meters/second^2]

    Properties Used:
    N/A

◆ update_orientations()

def SUAVE.Methods.Missions.Segments.Common.Frames.update_orientations (   segment)
Updates the orientation of the vehicle throughout the mission for each relevant axis

    Assumptions:
    This assumes the vehicle has 3 frames: inertial, body, and wind. There also contains bits for stability axis which are not used. Creates tensors and solves for alpha and beta.
    
    Inputs:
    segment.state.conditions:
        frames.inertial.velocity_vector          [meters/second]
        frames.body.inertial_rotations           [Radians]
    segment.analyses.planet.features.mean_radius [meters]
    state.numerics.time.integrate                [float]
        
    Outputs:
        segment.state.conditions:           
            aerodynamics.angle_of_attack      [Radians]
            aerodynamics.side_slip_angle      [Radians]
            aerodynamics.roll_angle           [Radians]
            frames.body.transform_to_inertial [Radians]
            frames.wind.body_rotations        [Radians]
            frames.wind.transform_to_inertial [Radians]


    Properties Used:
    N/A

◆ update_planet_position()

def SUAVE.Methods.Missions.Segments.Common.Frames.update_planet_position (   segment)
Updates the location of the vehicle relative to the Planet throughout the mission

    Assumptions:
    This is valid for small movements and times as it does not account for the rotation of the Planet beneath the vehicle
    
    Inputs:
    segment.state.conditions:
        freestream.velocity                      [meters/second]
        freestream.altitude                      [meters]
        frames.body.inertial_rotations           [Radians]
    segment.analyses.planet.features.mean_radius [meters]
    segment.state.numerics.time.integrate        [float]
        
    Outputs:
        segment.state.conditions:           
            frames.planet.latitude  [Radians]
            frames.planet.longitude [Radians]

    Properties Used:
    N/A

◆ update_stability()

def SUAVE.Methods.Missions.Segments.Common.Aerodynamics.update_stability (   segment)
Initiates the stability model

    Assumptions:
    N/A

    Inputs:
        segment.state.conditions   [Data]
        segment.analyses.stability [function]

    Outputs:
    N/A

    Properties Used:
    N/A

◆ update_sub_segments()

def SUAVE.Methods.Missions.Segments.Common.Sub_Segments.update_sub_segments (   segment)
Loops through the segments and fills them in

    Assumptions:
    N/A
    
    Inputs:
    N/A
        
    Outputs:
    N/A

    Properties Used:
    N/A

◆ update_thrust()

def SUAVE.Methods.Missions.Segments.Common.Energy.update_thrust (   segment)
Evaluates the energy network to find the thrust force and mass rate
    Inputs -
        segment.analyses.energy_network    [Function]
    Outputs -
        state.conditions:
           frames.body.thrust_force_vector          [Newtons]
           weights.vehicle_mass_rate                [kg/s]
           weights.vehicle_fuel_rate                [kg/s]
           weights.vehicle_additional_fuel_rate     [kg/s]
           weights.has_additional_fuel              
    Assumptions -

◆ update_weights()

def SUAVE.Methods.Missions.Segments.Common.Weights.update_weights (   segment)
Integrate tbe mass rate to update the weights throughout a segment

    Assumptions:
    Only the energy network/propulsion system can change the mass
    
    Inputs:
    segment.state.conditions:
        weights.total_mass                [kilograms]
        weights.vehicle_mass_rate         [kilograms/second]
        freestream.gravity                [meters/second^2]
    segment.analyses.weights:
        mass_properties.operating_empty   [kilograms]
    segment.state.numerics.time.integrate [array]
        
    Outputs:
    segment.state.conditions:
        weights.total_mass                   [kilograms]
        weights.fuel_mass                    [kilograms]
        weights.additional_fuel_mass         [kilograms]
        frames.inertial.gravity_force_vector [kilograms]
    Properties Used:
    N/A