Source code for RCAIDE.Framework.Mission.Segments.Climb.Constant_Throttle_Constant_Speed

# RCAIDE/Framework/Analyses/Mission/Segments/Climb/Constant_Throttle_Constant_Speed.py
# 
# 
# Created:  Jul 2023, M. Clarke
 
# ----------------------------------------------------------------------------------------------------------------------
#  IMPORT
# ----------------------------------------------------------------------------------------------------------------------

# RCAIDE imports 
from RCAIDE.Framework.Core                       import Units 
from RCAIDE.Framework.Mission.Segments.Evaluate  import Evaluate
from RCAIDE.Framework.Mission.Segments.Cruise    import Constant_Throttle_Constant_Altitude
from RCAIDE.Library.Mission                      import Common,Segments
from RCAIDE.Framework.Analyses                   import Process  

# ----------------------------------------------------------------------------------------------------------------------
# Constant_Throttle_Constant_Speed
# ---------------------------------------------------------------------------------------------------------------------- 
 
[docs] class Constant_Throttle_Constant_Speed(Evaluate): """ Climb at a constant throttle setting and true airspeed. This segment may not always converge as the vehicle could be deficient in thrust. Useful as a check to see the climb rate at the top of climb. Assumptions: You set a reasonable throttle setting that can provide enough thrust. Source: None """ def __defaults__(self): """ This sets the default solver flow. Anything in here can be modified after initializing a segment. Assumptions: None Source: N/A Inputs: None Outputs: None Properties Used: None """ # -------------------------------------------------------------------------------------------------------------- # User Inputs # -------------------------------------------------------------------------------------------------------------- self.altitude_start = None # Optional self.altitude_end = 10. * Units.km self.throttle = 0.5 self.air_speed = None self.true_course = 0.0 * Units.degrees # -------------------------------------------------------------------------------------------------------------- # Mission specific processes # -------------------------------------------------------------------------------------------------------------- initialize = self.process.initialize initialize.conditions = Segments.Climb.Constant_Throttle_Constant_Speed.initialize_conditions iterate = self.process.iterate # Update Conditions iterate.conditions = Process() iterate.conditions.velocities = Segments.Climb.Constant_Throttle_Constant_Speed.update_velocity_vector_from_wind_angle iterate.conditions.angles = Segments.Climb.Constant_Throttle_Constant_Speed.unpack_body_angle iterate.conditions.differentials_altitude = Segments.Climb.Constant_Throttle_Constant_Speed.update_differentials_altitude iterate.conditions.differentials = Common.Update.differentials_time iterate.conditions.orientations = Common.Update.orientations iterate.conditions.acceleration = Common.Update.acceleration iterate.conditions.atmosphere = Common.Update.atmosphere iterate.conditions.gravity = Common.Update.gravity iterate.conditions.freestream = Common.Update.freestream iterate.conditions.energy = Common.Update.thrust iterate.conditions.aerodynamics = Common.Update.aerodynamics iterate.conditions.stability = Common.Update.stability iterate.conditions.weights = Common.Update.weights iterate.conditions.forces = Common.Update.forces iterate.conditions.moments = Common.Update.moments iterate.conditions.planet_position = Common.Update.planet_position iterate.residuals.flight_dynamics = Common.Residuals.flight_dynamics return