RCAIDE.Library.Mission.Common.Pre_Process.mass_properties

mass_properties#

mass_properties(mission)[source]#

Calculate and update mass properties for all mission segments.

Performs weight analysis, center of gravity computation, and moment of inertia calculations for each mission segment. Handles multiple analysis scenarios including user-defined weights, MTOW-based calculations, and iterative weight convergence.

Parameters:

mission (RCAIDE.Framework.Mission) – Mission object containing segments with weight analysis requirements.

Raises:
  • AttributeError – If max_takeoff weight is not defined.

  • AssertionError – If payload exceeds max_payload or fuel exceeds max_fuel.

Notes

The function operates in three main modes:

  1. Pre-defined weights: Uses existing takeoff weight if provided

  2. Simple MTOW: Falls back to MTOW if aircraft_type undefined

  3. Full analysis: Performs complete weight buildup with iterations, if the

    setting update_takeoff_weight is True then it updates the aircraft takeoff weight with the new one based on the buildup. otherwise the takeoff weight is not adjusted

To complete a weight breakdown the methods require an aircraft to have the following defined: MTOW, payload and/or fuel weight, aircraft method type (included in the weights analysis type most times), max fuel and max zero fuel weights or neither. If the user desires to have the takeoff weight calculated by the weight breakdown used for further analyses then specify under the weight analysis settings “update_takeoff_weight == True”.

Algorithm Flow#

For each segment:
├── Check if weights analysis exists
├── Validate MTOW defined (required)
├── If aircraft_type undefined → Use MTOW for takeoff weight
├── Else if no payload/fuel → Use MTOW
├── Else → Perform weight analysis:
│   ├── Check payload/fuel limits
│   ├── If max_fuel/max_zero_fuel undefined:
│   │   └── Iterate to convergence (max 100 iterations)
│   │       ├── Initial guess from regression
│   │       ├── Evaluate weights
│   │       ├── Apply corrections
│   │       └── Check convergence (<10 kg residual)
│   ├── Single evaluation
|   └── Apply correction factors if specified
├── Update takeoff weight if requested
├── Update CG if requested
├── Update MOI if requested
└── Copy vehicle to aerodynamics

Weight Equations#

\[ \begin{align}\begin{aligned}W_{takeoff} = W_{OEW} + W_{payload} + W_{fuel}\\W_{OEW} = W_{empty} + W_{operational}\\W_{max\_zero\_fuel} = W_{OEW} + W_{max\_payload}\\W_{max\_fuel} = W_{MTOW} - W_{OEW} - W_{min\_payload}\end{aligned}\end{align} \]

Initial Regression Estimates#

When max_fuel or max_zero_fuel undefined:

\[ \begin{align}\begin{aligned}W_{max\_fuel}^{(0)} = 0.477 \cdot W_{MTOW} - 13455\\W_{max\_zero\_fuel}^{(0)} = 0.6269 \cdot W_{MTOW} + 20505\end{aligned}\end{align} \]
mass_properties_preprocess_routine(segment, i=0)[source]#
iterate_max_fuel_and_max_zero_fuel(analyses, max_iterations=100)[source]#
solve_for_mtow(analyses, weights_analysis, i)[source]#

Solves for MTOW that satisfies the target capacity fraction.

The MTOW capacity fraction is MTOW / (OEW + Max Fuel + Max Payload). Uses brentq for superlinear convergence instead of fixed-point iteration.