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

# RCAIDE/Framework/Mission/Segment/Segment.py
# 
# 
# Created:  Jul 2023, M. Clarke
 
# ----------------------------------------------------------------------------------------------------------------------
#  IMPORT
# ---------------------------------------------------------------------------------------------------------------------- 
# RCAIDE Imports
from RCAIDE.Framework.Core import Data
from RCAIDE.Framework.Analyses                    import Analysis, Settings, Process   
from RCAIDE.Framework.Mission.Common     import State 

# ----------------------------------------------------------------------------------------------------------------------
#  ANALYSES
# ----------------------------------------------------------------------------------------------------------------------  
[docs] class Segment(Analysis): """ """ def __defaults__(self): """This sets the default values. Assumptions: None Source: N/A Inputs: None Outputs: None Properties Used: None """ self.settings = Settings() self.state = State() self.analyses = Analysis.Container() self.process = Process() self.process.initialize = Process() self.process.converge = Process() self.process.iterate = Process() self.process.iterate.unknowns = Process() self.process.iterate.initials = Process() self.process.iterate.conditions = Process() self.process.iterate.residuals = Process() self.process.post_process = Process() self.conditions = self.state.conditions return
[docs] def initialize(self): """ This executes the initialize process Assumptions: None Source: N/A Inputs: State [Data()] Outputs: None Properties Used: None """ self.process.initialize(self) return
[docs] def converge(self,state): """ This executes the converge process Assumptions: None Source: N/A Inputs: State [Data()] Outputs: None Properties Used: None """ self.process.converge(self,state)
[docs] def iterate(self): """ This executes the iterate process Assumptions: None Source: N/A Inputs: State [Data()] Outputs: None Properties Used: None """ self.process.iterate(self) return
[docs] def post_process(self): """ This executes post processing Assumptions: None Source: N/A Inputs: State [Data()] Outputs: None Properties Used: None """ self.process.post_process(self) return
[docs] def evaluate(self,state=None): """ This executes the entire process Assumptions: None Source: N/A Inputs: State [Data()] Outputs: State [Data()] Properties Used: None """ if state is None: state = self.state self.process(self) return self
[docs] def flight_dynamics_and_controls(self): self.flight_dynamics = Data() self.flight_dynamics.force_x = False self.flight_dynamics.force_y = False self.flight_dynamics.force_z = False self.flight_dynamics.moment_x = False self.flight_dynamics.moment_y = False self.flight_dynamics.moment_z = False self.assigned_control_variables = Data() self.assigned_control_variables.body_angle = Data() self.assigned_control_variables.body_angle.active = False self.assigned_control_variables.body_angle.initial_guess_values = None self.assigned_control_variables.bank_angle = Data() self.assigned_control_variables.bank_angle.active = False self.assigned_control_variables.bank_angle.initial_guess_values = None self.assigned_control_variables.wind_angle = Data() self.assigned_control_variables.wind_angle.active = False self.assigned_control_variables.wind_angle.initial_guess_values = None self.assigned_control_variables.elapsed_time = Data() self.assigned_control_variables.elapsed_time.active = False self.assigned_control_variables.elapsed_time.initial_guess_values = None self.assigned_control_variables.velocity = Data() self.assigned_control_variables.velocity.active = False self.assigned_control_variables.velocity.initial_guess_values = None self.assigned_control_variables.acceleration = Data() self.assigned_control_variables.acceleration.active = False self.assigned_control_variables.acceleration.initial_guess_values = None self.assigned_control_variables.altitude = Data() self.assigned_control_variables.altitude.active = False self.assigned_control_variables.altitude.initial_guess_values = None self.assigned_control_variables.throttle = Data() self.assigned_control_variables.throttle.active = False self.assigned_control_variables.throttle.assigned_propulsors = None self.assigned_control_variables.throttle.initial_guess_values = None self.assigned_control_variables.elevator_deflection = Data() self.assigned_control_variables.elevator_deflection.active = False self.assigned_control_variables.elevator_deflection.assigned_surfaces = None self.assigned_control_variables.elevator_deflection.initial_guess_values = None self.assigned_control_variables.rudder_deflection = Data() self.assigned_control_variables.rudder_deflection.active = False self.assigned_control_variables.rudder_deflection.assigned_surfaces = None self.assigned_control_variables.rudder_deflection.initial_guess_values = None self.assigned_control_variables.flap_deflection = Data() self.assigned_control_variables.flap_deflection.active = False self.assigned_control_variables.flap_deflection.assigned_surfaces = None self.assigned_control_variables.flap_deflection.initial_guess_values = None self.assigned_control_variables.slat_deflection = Data() self.assigned_control_variables.slat_deflection.active = False self.assigned_control_variables.slat_deflection.assigned_surfaces = None self.assigned_control_variables.slat_deflection.initial_guess_values = None self.assigned_control_variables.aileron_deflection = Data() self.assigned_control_variables.aileron_deflection.active = False self.assigned_control_variables.aileron_deflection.assigned_surfaces = None self.assigned_control_variables.aileron_deflection.initial_guess_values = None self.assigned_control_variables.thrust_vector_angle = Data() self.assigned_control_variables.thrust_vector_angle.active = False self.assigned_control_variables.thrust_vector_angle.assigned_propulsors = None self.assigned_control_variables.thrust_vector_angle.initial_guess_values = None self.assigned_control_variables.rotor_blade_pitch_command = Data() self.assigned_control_variables.rotor_blade_pitch_command.active = False self.assigned_control_variables.rotor_blade_pitch_command.assigned_propulsors = None self.assigned_control_variables.rotor_blade_pitch_command.initial_guess_values = None return
# ---------------------------------------------------------------------- # Container # ----------------------------------------------------------------------
[docs] class Container(Segment): """ A container for the segment Assumptions: None Source: None """ def __defaults__(self): """This sets the default values. Assumptions: None Source: N/A Inputs: None Outputs: None Properties Used: None """ self.segments = Process() self.state = State.Container()
[docs] def append_segment(self,segment): """ Add a SubSegment Assumptions: None Source: N/A Inputs: segment [Segment()] Outputs: None Properties Used: None """ self.segments.append(segment) return
Segment.Container = Container