Source code for RCAIDE.Library.Mission.Common.Initialize.weights

# RCAIDE/Library/Missions/Common/Initialize/weights.py
# 
# 
# Created:  Jul 2023, M. Clarke
 

# ----------------------------------------------------------------------------------------------------------------------
#  Initialize Weights
# ---------------------------------------------------------------------------------------------------------------------- 
[docs] def weights(segment): """ Initializes vehicle mass properties for mission segment analysis Parameters ---------- segment : Segment The mission segment being analyzed Notes ----- This function sets up the initial mass values for the vehicle. It determines the initial mass through a priority system and maintains mass continuity between segments. The function follows this priority for mass initialization: 1. Previous segment final mass (if initials exist) 2. Vehicle takeoff mass (if weight analysis exists) 3. Network mass properties (fallback option) **Required Segment State Variables** If segment.state.initials exists: state.initials.conditions.weights: - total_mass : array Previous segment final mass [kg] state.conditions.weights: - total_mass : array Current segment mass array [kg] **Required Analysis Components** Either: segment.analyses.weights: - vehicle.mass_properties.takeoff : float Vehicle takeoff mass [kg] Or: segment.analyses.energy.vehicle.networks: - mass_properties.mass : float Network mass properties [kg] **Major Assumptions** * Continuous mass tracking when using initials * Valid mass values (positive) * At least one mass property source available * Mass measured in kilograms Returns ------- None Updates segment conditions directly See Also -------- RCAIDE.Framework.Mission.Segments """ if segment.state.initials: m_initial = segment.state.initials.conditions.weights.total_mass[-1,0] else: if segment.analyses.weights != None: m_initial = segment.analyses.weights.vehicle.mass_properties.takeoff else: m_initial = segment.analyses.energy.vehicle.mass_properties.takeoff m_current = segment.state.conditions.weights.total_mass segment.state.conditions.weights.total_mass[:,:] = m_current + (m_initial - m_current[0,0]) return