Source code for RCAIDE.Library.Mission.Common.Pre_Process.mass_properties

# RCAIDE/Library/Missions/Common/Pre_Process/mass_properties.py
# 
# 
# Created: Mar 2025, M. Clarke

# ----------------------------------------------------------------------------------------------------------------------
#  RCAIDE
# ----------------------------------------------------------------------------------------------------------------------
import RCAIDE
from RCAIDE.Library.Methods.Mass_Properties.Moment_of_Inertia                             import compute_aircraft_moment_of_inertia
from RCAIDE.Library.Methods.Mass_Properties.Center_of_Gravity                             import compute_vehicle_center_of_gravity
# ----------------------------------------------------------------------------------------------------------------------
#  mass_properties
# ----------------------------------------------------------------------------------------------------------------------  
[docs] def mass_properties(mission): """ Performances mass property analysis """ last_tag = None for segment in mission.segments: if segment.analyses.weights != None: if last_tag == None: # run weights analysis weights_analysis = segment.analyses.weights _ = weights_analysis.evaluate() # CG Location CG_location, _ = compute_vehicle_center_of_gravity(weights_analysis.vehicle, update_CG= weights_analysis.settings.update_center_of_gravity) # Operating Aircraft MOI _, _ = compute_aircraft_moment_of_inertia(weights_analysis.vehicle, CG_location, update_MOI= weights_analysis.settings.update_moment_of_inertia) # assign mass properties to aerodynamics analyses segment.analyses.aerodynamics.vehicle.mass_properties.operating_empty = weights_analysis.vehicle.mass_properties.operating_empty segment.analyses.aerodynamics.vehicle.mass_properties.center_of_gravity = weights_analysis.vehicle.mass_properties.center_of_gravity segment.analyses.aerodynamics.vehicle.mass_properties.moments_of_inertia.tensor = weights_analysis.vehicle.mass_properties.moments_of_inertia.tensor segment.analyses.energy.vehicle.mass_properties.operating_empty = weights_analysis.vehicle.mass_properties.operating_empty segment.analyses.energy.vehicle.mass_properties.center_of_gravity = weights_analysis.vehicle.mass_properties.center_of_gravity segment.analyses.energy.vehicle.mass_properties.moments_of_inertia.tensor = weights_analysis.vehicle.mass_properties.moments_of_inertia.tensor last_tag = segment.tag.lower() else: segment.analyses.aerodynamics.vehicle.mass_properties.operating_empty = mission.segments[last_tag].analyses.weights.vehicle.mass_properties.operating_empty segment.analyses.aerodynamics.vehicle.mass_properties.center_of_gravity = mission.segments[last_tag].analyses.weights.vehicle.mass_properties.center_of_gravity segment.analyses.aerodynamics.vehicle.mass_properties.moments_of_inertia.tensor = mission.segments[last_tag].analyses.weights.vehicle.mass_properties.moments_of_inertia.tensor segment.analyses.weights.vehicle.mass_properties.operating_empty = mission.segments[last_tag].analyses.weights.vehicle.mass_properties.operating_empty segment.analyses.weights.vehicle.mass_properties.center_of_gravity = mission.segments[last_tag].analyses.weights.vehicle.mass_properties.center_of_gravity segment.analyses.weights.vehicle.mass_properties.moments_of_inertia.tensor = mission.segments[last_tag].analyses.weights.vehicle.mass_properties.moments_of_inertia.tensor segment.analyses.energy.vehicle.mass_properties.operating_empty = mission.segments[last_tag].analyses.weights.vehicle.mass_properties.operating_empty segment.analyses.energy.vehicle.mass_properties.center_of_gravity = mission.segments[last_tag].analyses.weights.vehicle.mass_properties.center_of_gravity segment.analyses.energy.vehicle.mass_properties.moments_of_inertia.tensor = mission.segments[last_tag].analyses.weights.vehicle.mass_properties.moments_of_inertia.tensor return