Source code for RCAIDE.Library.Mission.Common.Pre_Process.stability
# RCAIDE/Library/Missions/Common/Pre_Process/stability.py
#
#
# Created: Jul 2023, M. Clarke
# ----------------------------------------------------------------------------------------------------------------------
# IMPORT
# ----------------------------------------------------------------------------------------------------------------------
# RCAIDE imports
import RCAIDE
# ----------------------------------------------------------------------------------------------------------------------
# stability
# ----------------------------------------------------------------------------------------------------------------------
[docs]
def stability(mission):
"""
Initializes and processes stability models for mission segments
Parameters
----------
mission : Mission
The mission containing segments to be analyzed
- analyses.stability : Analysis
Stability analysis module
- vehicle : Vehicle
Aircraft geometry definition
- wings : list
Wing geometry definitions
- process.compute.lift.inviscid_wings : Process
Lift computation process
- surrogates : Data
Stability surrogate models
Returns
-------
None
Updates mission segment analyses directly
Notes
-----
This function prepares the stability analysis for each mission segment.
It ensures proper wing geometry computation and manages stability
surrogate models across segments for computational efficiency.
The function performs the following steps:
1. Computes wing planform properties
2. Reuses previous segment's stability data when possible
3. Initializes new stability analyses when needed
**Wing Processing**
For each wing:
- Uses wing_planform
**Major Assumptions**
* Valid wing geometry definitions
* Compatible stability models between segments
* Proper initialization of first segment
* Continuous stability characteristics
See Also
--------
RCAIDE.Library.Methods.Geometry.Planform
RCAIDE.Framework.Mission.Segments
"""
last_tag = None
for tag,segment in mission.segments.items():
if type(segment) == RCAIDE.Framework.Mission.Segments.Vertical_Flight.Climb or \
type(segment) == RCAIDE.Framework.Mission.Segments.Vertical_Flight.Hover or \
type(segment) == RCAIDE.Framework.Mission.Segments.Vertical_Flight.Descent:
pass
else:
if segment.analyses.stability != None:
if last_tag!= None and 'compute' in mission.segments[last_tag].analyses.stability.process.keys():
segment.analyses.stability.surrogates = mission.segments[last_tag].analyses.aerodynamics.surrogates
segment.analyses.stability.process.compute.static_stability = mission.segments[last_tag].analyses.stability.process.compute.static_stability
segment.analyses.vehicle.neutral_point = mission.segments[last_tag].analyses.vehicle.neutral_point
else:
segment.analyses.stability.surrogates = segment.analyses.aerodynamics.surrogates
segment.analyses.stability.initialize( segment.analyses.vehicle)
last_tag = tag
return