Source code for RCAIDE.Framework.Mission.Segments.Untrimmed.Untrimmed

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

# RCAIDE imports  
from RCAIDE.Framework.Core import Units
from RCAIDE.Framework.Mission.Segments         import Segment
from RCAIDE.Framework.Mission.Common.Results   import Results
from RCAIDE.Library.Mission                    import Common ,Solver,  Segments
from RCAIDE.Framework.Analyses                 import Process   
from RCAIDE.Library.Methods.skip               import skip 

# ----------------------------------------------------------------------------------------------------------------------
#  Untrimmed
# ---------------------------------------------------------------------------------------------------------------------- 

[docs] class Untrimmed(Segment): """ Base process class used to analyze a vehicle in each flight segment Assumptions: None Source: N/A Inputs: None Outputs: None Properties Used: None """ def __defaults__(self): """This sets the default values. Assumptions: None Source: N/A Inputs: None Outputs: None Properties Used: None """ # -------------------------------------------------------------- # State # -------------------------------------------------------------- # conditions self.temperature_deviation = 0.0 self.sideslip_angle = 0.0 self.angle_of_attack = 1.0 * Units.degree self.bank_angle = 0.0 self.linear_acceleration_x = 0. self.linear_acceleration_y = 0. self.linear_acceleration_z = 0. # note that down is positive self.roll_rate = 0. self.pitch_rate = 0. self.hybrid_power_split_ratio = None self.battery_fuel_cell_power_split_ratio = None self.yaw_rate = 0. self.state.numerics.number_of_control_points = 2 self.trim_lift_coefficient = None self.state.conditions.update(Results()) # --------------------------------------------------------------- # Define Flight Controls and Residuals # --------------------------------------------------------------- self.flight_dynamics_and_controls() # -------------------------------------------------------------- # Initialize - before iteration # -------------------------------------------------------------- initialize = self.process.initialize initialize.expand_state = Solver.expand_state initialize.differentials = Common.Initialize.differentials_dimensionless initialize.conditions = Segments.Untrimmed.Untrimmed.initialize_conditions # -------------------------------------------------------------- # Iterate # -------------------------------------------------------------- iterate = self.process.iterate iterate.initials = Process() iterate.initials.time = Common.Initialize.time iterate.initials.weights = Common.Initialize.weights iterate.initials.energy = skip iterate.initials.inertial_position = Common.Initialize.inertial_position iterate.initials.planet_position = Common.Initialize.planet_position # Unpack Unknowns iterate.unknowns = Process() # Update Conditions iterate.conditions = Process() iterate.conditions.differentials = Common.Update.differentials_time iterate.conditions.orientations = Common.Update.orientations iterate.conditions.acceleration = skip iterate.conditions.angular_acceleration = skip iterate.conditions.altitude = Common.Update.altitude iterate.conditions.atmosphere = Common.Update.atmosphere iterate.conditions.gravity = Common.Update.gravity iterate.conditions.freestream = Common.Update.freestream iterate.conditions.thrust = 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 = skip # Solve Residuals iterate.unknowns.controls = Common.Unpack_Unknowns.control_surfaces iterate.unknowns.mission = Common.Unpack_Unknowns.orientation iterate.residuals.flight_dynamics = Common.Residuals.flight_dynamics # -------------------------------------------------------------- # Post Process # -------------------------------------------------------------- post_process = self.process.post_process post_process.inertial_position = skip post_process.energy = skip post_process.noise = Common.Update.noise post_process.emissions = skip return