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.Climb.Common.unpack_unknowns (segment)
 
def SUAVE.Methods.Missions.Segments.Climb.Common.residual_total_forces (segment)
 
def SUAVE.Methods.Missions.Segments.Climb.Common.update_differentials_altitude (segment)
 
def SUAVE.Methods.Missions.Segments.Climb.Constant_CAS_Constant_Rate.initialize_conditions (segment)
 
def SUAVE.Methods.Missions.Segments.Climb.Constant_Dynamic_Pressure_Constant_Angle.initialize_conditions_unpack_unknowns (segment)
 
def SUAVE.Methods.Missions.Segments.Climb.Constant_Dynamic_Pressure_Constant_Angle.residual_total_forces (segment)
 
def SUAVE.Methods.Missions.Segments.Climb.Constant_Dynamic_Pressure_Constant_Rate.initialize_conditions (segment)
 
def SUAVE.Methods.Missions.Segments.Climb.Constant_EAS_Constant_Rate.initialize_conditions (segment)
 
def SUAVE.Methods.Missions.Segments.Climb.Constant_Mach_Constant_Angle.initialize_conditions (segment)
 
def SUAVE.Methods.Missions.Segments.Climb.Constant_Mach_Constant_Rate.initialize_conditions (segment)
 
def SUAVE.Methods.Missions.Segments.Climb.Constant_Mach_Linear_Altitude.initialize_conditions (segment)
 
def SUAVE.Methods.Missions.Segments.Climb.Constant_Speed_Constant_Angle.initialize_conditions (segment)
 
def SUAVE.Methods.Missions.Segments.Climb.Constant_Speed_Constant_Angle_Noise.expand_state (segment)
 
def SUAVE.Methods.Missions.Segments.Climb.Constant_Speed_Constant_Rate.initialize_conditions (segment)
 
def SUAVE.Methods.Missions.Segments.Climb.Constant_Speed_Linear_Altitude.initialize_conditions (segment)
 Constant_Speed_Linear_Altitude.py Created: Jul 2014, SUAVE Team Modified: Jun 2017, E. More...
 
def SUAVE.Methods.Missions.Segments.Climb.Constant_Throttle_Constant_Speed.unpack_body_angle (segment)
 
def SUAVE.Methods.Missions.Segments.Climb.Constant_Throttle_Constant_Speed.initialize_conditions (segment)
 
def SUAVE.Methods.Missions.Segments.Climb.Constant_Throttle_Constant_Speed.update_differentials_altitude (segment)
 
def SUAVE.Methods.Missions.Segments.Climb.Constant_Throttle_Constant_Speed.update_velocity_vector_from_wind_angle (segment)
 
def SUAVE.Methods.Missions.Segments.Climb.Linear_Mach_Constant_Rate.initialize_conditions (segment)
 
def SUAVE.Methods.Missions.Segments.Climb.Linear_Speed_Constant_Rate.initialize_conditions (segment)
 
def SUAVE.Methods.Missions.Segments.Climb.Optimized.unpack_unknowns (segment)
 
def SUAVE.Methods.Missions.Segments.Climb.Optimized.update_differentials (segment)
 
def SUAVE.Methods.Missions.Segments.Climb.Optimized.objective (segment)
 
def SUAVE.Methods.Missions.Segments.Climb.Optimized.constraints (segment)
 
def SUAVE.Methods.Missions.Segments.Climb.Optimized.cache_inputs (segment)
 
def SUAVE.Methods.Missions.Segments.Climb.Optimized.solve_linear_speed_constant_rate (segment)
 
def SUAVE.Methods.Missions.Segments.Single_Point.Set_Speed_Set_Altitude_No_Propulsion.residual_total_force (segment)
 

Detailed Description

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

Function Documentation

◆ cache_inputs()

def SUAVE.Methods.Missions.Segments.Climb.Optimized.cache_inputs (   segment)
This function caches the prior inputs to make sure the same inputs are not run twice in a row

◆ constraints()

def SUAVE.Methods.Missions.Segments.Climb.Optimized.constraints (   segment)
This function pulls the equality constraints from the results of flying the segment and returns it to the optimizer

    Inputs:
    state
    
    Outputs:
    state.constraint_values [vector]

◆ expand_state()

def SUAVE.Methods.Missions.Segments.Climb.Constant_Speed_Constant_Angle_Noise.expand_state (   segment)
Makes all vectors in the state the same size. Determines the minimum amount of points needed to get data for noise certification.

Assumptions:
Half second intervals for certification requirements. Fixed microphone position

Source:
N/A

Inputs:
state.numerics.number_control_points  [Unitless]

Outputs:
N/A

Properties Used:
Position of the flyover microphone is 6500 meters

◆ initialize_conditions() [1/12]

def SUAVE.Methods.Missions.Segments.Climb.Constant_Speed_Linear_Altitude.initialize_conditions (   segment)

Constant_Speed_Linear_Altitude.py Created: Jul 2014, SUAVE Team Modified: Jun 2017, E.

Botero

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

Assumptions:
Constrant dynamic pressure and constant rate of climb

Source:
N/A

Inputs:
segment.air_speed                           [meters/second]
segment.altitude_start                      [meters]
segment.altitude_end                        [meters]
segment.distance                            [meters]

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/12]

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

Assumptions:
Constant true airspeed, with a constant climb angle

Source:
N/A

Inputs:
segment.climb_angle                         [radians]
segment.air_speed                           [meter/second]
segment.altitude_start                      [meters]
segment.altitude_end                        [meters]
state.numerics.dimensionless.control_points [Unitless]
conditions.freestream.density               [kilograms/meter^3]

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

Properties Used:
N/A

◆ initialize_conditions() [3/12]

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

Assumptions:
Constant true airspeed, with a constant rate of climb

Source:
N/A

Inputs:
segment.climb_rate                                  [meters/second]
segment.air_speed                                   [meters/second]
segment.altitude_start                              [meters]
segment.altitude_end                                [meters]
segment.state.numerics.dimensionless.control_points [Unitless]
conditions.freestream.density                       [kilograms/meter^3]

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

Properties Used:
N/A

◆ initialize_conditions() [4/12]

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

Assumptions:
Constant Mach number, with a constant rate of climb

Source:
N/A

Inputs:
segment.climb_rate                                  [meters/second]
segment.mach                                        [Unitless]
segment.altitude_start                              [meters]
segment.altitude_end                                [meters]
segment.state.numerics.dimensionless.control_points [Unitless]
conditions.freestream.density                       [kilograms/meter^3]

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

Properties Used:
N/A

◆ initialize_conditions() [5/12]

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

Assumptions:
Constant dynamic pressure and constant rate of climb

Source:
N/A

Inputs:
segment.climb_rate                                  [meters/second]
segment.dynamic_pressure                            [pascals]
segment.altitude_start                              [meters]
segment.altitude_end                                [meters]
segment.state.numerics.dimensionless.control_points [Unitless]
conditions.freestream.density                       [kilograms/meter^3]

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

Properties Used:
N/A

◆ initialize_conditions() [6/12]

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

Assumptions:
Constant Mach number, with a constant angle of climb

Source:
N/A

Inputs:
segment.climb_angle                                 [radians]
segment.mach                                        [Unitless]
segment.altitude_start                              [meters]
segment.altitude_end                                [meters]
segment.state.numerics.dimensionless.control_points [Unitless]
conditions.freestream.density                       [kilograms/meter^3]

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

Properties Used:
N/A

◆ initialize_conditions() [7/12]

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

Assumptions:
Linearly changing airspeed, with a constant rate of climb

Source:
N/A

Inputs:
segment.climb_rate                          [meters/second]
segment.air_speed_start                     [meters/second]
segment.air_speed_end                       [meters/second]
segment.altitude_end                        [meters]
state.numerics.dimensionless.control_points [Unitless]
conditions.freestream.density               [kilograms/meter^3]

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

Properties Used:
N/A

◆ initialize_conditions() [8/12]

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

Assumptions:
Constrant dynamic pressure and constant rate of climb

Source:
N/A

Inputs:
segment.mach                                [unitless]
segment.dynamic_pressure                    [pascals]
segment.altitude_start                      [meters]
segment.altitude_end                        [meters]
segment.distance                            [meters]

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/12]

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

Assumptions:
Constant true airspeed with a constant rate of climb

Source:
N/A

Inputs:
segment.climb_rate                                  [meters/second]
segment.equivalent_air_speed                        [meters/second]
segment.altitude_start                              [meters]
segment.altitude_end                                [meters]
segment.state.numerics.dimensionless.control_points [Unitless]
conditions.freestream.density                       [kilograms/meter^3]

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

Properties Used:
N/A

◆ initialize_conditions() [10/12]

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

Assumptions:
Linearly changing mach number, with a constant rate of climb

Source:
N/A

Inputs:
segment.climb_rate                                  [meters/second]
segment.mach_start                                  [Unitless]
segment.mach_end                                    [Unitless]
segment.altitude_end                                [meters]
segment.state.numerics.dimensionless.control_points [Unitless]
conditions.freestream.density                       [kilograms/meter^3]

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

Properties Used:
N/A

◆ initialize_conditions() [11/12]

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

Assumptions:
Constant CAS airspeed with a constant rate of climb

Source:
N/A

Inputs:
segment.climb_rate                                  [meters/second]
segment.calibrated_air_speed                        [meters/second]
segment.altitude_start                              [meters]
segment.altitude_end                                [meters]
segment.state.numerics.dimensionless.control_points [Unitless]
conditions.freestream.density                       [kilograms/meter^3]

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

Properties Used:
N/A

◆ initialize_conditions() [12/12]

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

Assumptions:
Constant throttle estting, with a constant true airspeed

Source:
N/A

Inputs:
segment.air_speed                                   [meters/second]
segment.throttle                                    [Unitless]
segment.altitude_start                              [meters]
segment.altitude_end                                [meters]
segment.state.numerics.dimensionless.control_points [Unitless]
conditions.freestream.density                       [kilograms/meter^3]

Outputs:
conditions.frames.inertial.velocity_vector  [meters/second]
conditions.propulsion.throttle              [Unitless]

Properties Used:
N/A

◆ initialize_conditions_unpack_unknowns()

def SUAVE.Methods.Missions.Segments.Climb.Constant_Dynamic_Pressure_Constant_Angle.initialize_conditions_unpack_unknowns (   segment)
Sets the specified conditions which are given for the segment type.

Assumptions:
Constrant dynamic pressure and constant rate of climb

Source:
N/A

Inputs:
segment.climb_angle                                 [radians]
segment.dynamic_pressure                            [pascals]
segment.altitude_start                              [meters]
segment.altitude_end                                [meters]
segment.state.numerics.dimensionless.control_points [unitless]
conditions.freestream.density                       [kilograms/meter^3]
segment.state.unknowns.throttle                     [unitless]
segment.state.unknowns.body_angle                   [radians]
segment.state.unknowns.altitudes                    [meter]

Outputs:
conditions.frames.inertial.velocity_vector  [meters/second]
conditions.frames.inertial.position_vector  [meters]
conditions.propulsion.throttle              [unitless]
conditions.frames.body.inertial_rotations   [radians]

Properties Used:
N/A

◆ objective()

def SUAVE.Methods.Missions.Segments.Climb.Optimized.objective (   segment)
This function pulls the objective from the results of flying the segment and returns it to the optimizer

    Inputs:
    state
    
    Outputs:
    state.objective_value [float]

◆ residual_total_force()

def SUAVE.Methods.Missions.Segments.Single_Point.Set_Speed_Set_Altitude_No_Propulsion.residual_total_force (   segment)
Takes the summation of forces and makes a residual from the accelerations.

Assumptions:
No higher order terms.

Source:
N/A

Inputs:
segment.state.conditions.frames.inertial.total_force_vector   [Newtons]
segment.state.conditions.frames.inertial.acceleration_vector  [meter/second^2]
segment.state.conditions.weights.total_mass                   [kilogram]

Outputs:
segment.state.residuals.force                                 [Unitless]

Properties Used:
N/A

◆ residual_total_forces() [1/2]

def SUAVE.Methods.Missions.Segments.Climb.Common.residual_total_forces (   segment)
Takes the summation of forces and makes a residual from the accelerations.

Assumptions:
No higher order terms.

Source:
N/A

Inputs:
segment.state.conditions.frames.inertial.total_force_vector   [Newtons]
segment.state.conditions.frames.inertial.acceleration_vector  [meter/second^2]
segment.state.conditions.weights.total_mass                   [kilogram]

Outputs:
segment.state.residuals.forces                                [Unitless]

Properties Used:
N/A

◆ residual_total_forces() [2/2]

def SUAVE.Methods.Missions.Segments.Climb.Constant_Dynamic_Pressure_Constant_Angle.residual_total_forces (   segment)
Takes the summation of forces and makes a residual from the accelerations and altitude.

Assumptions:
No higher order terms.

Source:
N/A

Inputs:
segment.state.conditions.frames.inertial.total_force_vector   [Newtons]
segment.state.conditions.frames.inertial.acceleration_vector  [meter/second^2]
segment.state.conditions.weights.total_mass                   [kilogram]
segment.state.conditions.freestream.altitude                  [meter]

Outputs:
segment.state.residuals.forces                                [Unitless]

Properties Used:
N/A

◆ solve_linear_speed_constant_rate()

def SUAVE.Methods.Missions.Segments.Climb.Optimized.solve_linear_speed_constant_rate (   segment)
The sets up an solves a mini segment that is a linear speed constant rate segment. The results become the initial conditions for an optimized climb segment later

Assumptions:
N/A

Source:
N/A

Inputs:
segment.altitude_start             [meters]
segment.altitude_end               [meters]
segment.air_speed_start            [meters/second]
segment.air_speed_end              [meters/second]
segment.analyses                   [Data]
state.numerics                     [Data]

Outputs:
state.unknowns.throttle            [Unitless]
state.unknowns.body_angle          [Radians]
state.unknowns.flight_path_angle   [Radians]
state.unknowns.velocity            [meters/second]

Properties Used:
N/A    

◆ unpack_body_angle()

def SUAVE.Methods.Missions.Segments.Climb.Constant_Throttle_Constant_Speed.unpack_body_angle (   segment)
Unpacks and sets the proper value for body angle

Assumptions:
N/A

Source:
N/A

Inputs:
state.unknowns.body_angle                      [Radians]

Outputs:
state.conditions.frames.body.inertial_rotation [Radians]

Properties Used:
N/A

◆ unpack_unknowns() [1/2]

def SUAVE.Methods.Missions.Segments.Climb.Optimized.unpack_unknowns (   segment)
Unpacks the unknowns set in the mission to be available for the mission.

Assumptions:
N/A

Source:
N/A

Inputs:
segment.state.unknowns.throttle            [Unitless]
segment.state.unknowns.body_angle          [Radians]
segment.state.unknowns.flight_path_angle   [Radians]
segment.state.unknowns.velocity            [meters/second]
segment.altitude_start                     [meters]
segment.altitude_end                       [meters]
segment.air_speed_start                    [meters/second]
segment.air_speed_end                      [meters/second]

Outputs:
segment.state.conditions.propulsion.throttle            [Unitless]
segment.state.conditions.frames.body.inertial_rotations [Radians]
conditions.frames.inertial.velocity_vector              [meters/second]

Properties Used:
N/A

◆ unpack_unknowns() [2/2]

def SUAVE.Methods.Missions.Segments.Climb.Common.unpack_unknowns (   segment)
Unpacks the unknowns set in the mission to be available for the mission.

Assumptions:
N/A

Source:
N/A

Inputs:
segment.state.unknowns.throttle            [Unitless]
segment.state.unknowns.body_angle          [Radians]

Outputs:
segment.state.conditions.propulsion.throttle            [Unitless]
segment.state.conditions.frames.body.inertial_rotations [Radians]

Properties Used:
N/A

◆ update_differentials()

def SUAVE.Methods.Missions.Segments.Climb.Optimized.update_differentials (   segment)
On each iteration creates the differentials and integration functions from knowns about the problem. Sets the time at each point. Must return in dimensional time, with t[0] = 0. This is different from the common method as it also includes the scaling of operators.

    Assumptions:
    Works with a segment discretized in vertical position, altitude

    Inputs:
    state.numerics.dimensionless.control_points      [Unitless]
    state.numerics.dimensionless.differentiate       [Unitless]
    state.numerics.dimensionless.integrate           [Unitless]
    state.conditions.frames.inertial.position_vector [meter]
    state.conditions.frames.inertial.velocity_vector [meter/second]
    

    Outputs:
    state.conditions.frames.inertial.time            [second]

◆ update_differentials_altitude() [1/2]

def SUAVE.Methods.Missions.Segments.Climb.Common.update_differentials_altitude (   segment)
On each iteration creates the differentials and integration functions from knowns about the problem. Sets the time at each point. Must return in dimensional time, with t[0] = 0

    Assumptions:
    Works with a segment discretized in vertical position, altitude

    Inputs:
    segment.state.numerics.dimensionless.control_points      [Unitless]
    segment.state.numerics.dimensionless.differentiate       [Unitless]
    segment.state.numerics.dimensionless.integrate           [Unitless]
    segment.state.conditions.frames.inertial.position_vector [meter]
    segment.state.conditions.frames.inertial.velocity_vector [meter/second]
    

    Outputs:
    segment.state.conditions.frames.inertial.time            [second]

◆ update_differentials_altitude() [2/2]

def SUAVE.Methods.Missions.Segments.Climb.Constant_Throttle_Constant_Speed.update_differentials_altitude (   segment)
On each iteration creates the differentials and integration funcitons from knowns about the problem. Sets the time at each point. Must return in dimensional time, with t[0] = 0

Assumptions:
Constant throttle setting, with a constant true airspeed.

Source:
N/A

Inputs:
segment.climb_angle                         [radians]
state.conditions.frames.inertial.velocity_vector [meter/second]
segment.altitude_start                      [meters]
segment.altitude_end                        [meters]

Outputs:
state.conditions.frames.inertial.time       [seconds]
conditions.frames.inertial.position_vector  [meters]
conditions.freestream.altitude              [meters]

Properties Used:
N/A