Source code for RCAIDE.Library.Methods.Mass_Properties.Weight_Buildups.Conventional.Common.compute_payload_weight

# RCAIDE/Library/Methods/Mass_Properties/Weight_Buildups/Conventional/Common/compute_payload_weight.py
# 
# Created: Sep 2024, M. Clarke 

# ---------------------------------------------------------------------------------------------------------------------- 
#  Imports
# ----------------------------------------------------------------------------------------------------------------------
import RCAIDE
from RCAIDE.Framework.Core import Data, Units 

# ---------------------------------------------------------------------------------------------------------------------- 
# Payload
# ---------------------------------------------------------------------------------------------------------------------- 
[docs] def compute_payload_weight(vehicle, W_passenger=195 * Units.lbs, W_baggage=30 * Units.lbs): """ Computes the total payload weight including passengers, baggage, and cargo based on FAA standard weights and aircraft configuration. Parameters ---------- vehicle : Vehicle The vehicle instance containing: - passengers : int Number of passengers Mass of cargo [kg] W_passenger : float, optional Standard passenger weight [kg], default 195 lbs W_baggage : float, optional Standard baggage weight per passenger [kg], default 30 lbs Returns ------- output : Data Container with payload breakdown: - total : float Total payload weight [kg] - passengers : float Total passenger weight [kg] - baggage : float Total baggage weight [kg] - cargo : float Bulk cargo weight [kg] Notes ----- Uses FAA standard weights for passengers and baggage in commercial operations. **Major Assumptions** * Standard passenger weights * Fixed baggage allowance per passenger * Uniform passenger distribution * No special cargo requirements * No seasonal weight variations **Theory** Total payload weight is computed as: .. math:: W_{payload} = n_{pax}(W_{pax} + W_{bag}) + W_{cargo} where: * n_pax = number of passengers * W_pax = standard passenger weight * W_bag = standard baggage allowance * W_cargo = bulk cargo weight See Also -------- RCAIDE.Library.Methods.Mass_Properties.Weight_Buildups.Conventional """ num_pax = vehicle.number_of_passengers W_pax = W_passenger * num_pax W_bag = W_baggage * num_pax if W_pax + W_bag > vehicle.mass_properties.payload: vehicle.mass_properties.cargo = 0 else: if vehicle.mass_properties.cargo == 0 and vehicle.mass_properties.payload != 0: vehicle.mass_properties.cargo = vehicle.mass_properties.payload - W_pax - W_bag #------------------------------------------------------------------------------- # Cargo #------------------------------------------------------------------------------- total_volume = 0 for cargo_bay in vehicle.cargo_bays: total_volume += (cargo_bay.length * cargo_bay.width * cargo_bay.height) for cargo_bay in vehicle.cargo_bays: cargo_bay_volume = (cargo_bay.length * cargo_bay.width * cargo_bay.height) if cargo_bay.mass_properties.mass == 0: cargo_bay.mass_properties.mass = (vehicle.mass_properties.cargo+W_bag) * (cargo_bay_volume / total_volume) # WE put the bags in cargo because thats where they go #------------------------------------------------------------------------------- # Paylpad #------------------------------------------------------------------------------- if vehicle.mass_properties.payload == 0: vehicle.mass_properties.payload = W_pax + W_bag + vehicle.mass_properties.cargo ##------------------------------------------------------------------------------- # Cabin ##------------------------------------------------------------------------------- for fuselage in vehicle.fuselages: for cabin in fuselage.cabins: cabin.mass_properties.mass = W_pax* (cabin.number_of_passengers / vehicle.number_of_passengers ) for wing in vehicle.wings: if isinstance(wing, RCAIDE.Library.Components.Wings.Blended_Wing_Body): for cabin in wing.cabins: cabin.mass_properties.mass = W_pax * (cabin.number_of_passengers / vehicle.number_of_passengers ) # packup outputs output = Data() output.total = vehicle.mass_properties.payload output.passengers = W_pax output.baggage = W_bag output.cargo = vehicle.mass_properties.cargo return output