Climb mission methods containing the functions for setting up and solving a mission.
More...
Climb mission methods containing the functions for setting up and solving a mission.
◆ 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