Source code for tuduam.mass_metrics
"""The following module contains methods to size for the weight of an eVTOL. Most of these methods are class 2 weigt estimations
"""
import scipy.constants as const
from .data_structures import *
[docs]
def class2_wing_mass(vtol: VTOL, flight_perf: FlightPerformance, wing: SingleWing):
"""
Returns the structural weight of both wings.
Parameters
----------
vtol : VTOL
VTOL data structure.
flight_perf : FlightPerformance
FlightPerformance data structure.
wing : SingleWing
SingleWing data structure.
Returns
-------
float
Mass of both wings in kg.
"""
S_ft = wing.surface * 1 / const.foot ** 2
mtow_lbs = 1 / const.pound * vtol.mtom
wing.mass = (
0.04674
* (mtow_lbs ** 0.397)
* (S_ft ** 0.36)
* (flight_perf.n_ult ** 0.397)
* (wing.aspect_ratio ** 1.712)
* const.pound
)
return wing.mass
[docs]
def class2_fuselage_mass(vtol: VTOL, flight_perf: FlightPerformance, fuselage: Fuselage):
"""
Returns the mass of the fuselage.
Parameters
----------
vtol : VTOL
VTOL data structure, requires: mtom.
flight_perf : FlightPerformance
FlightPerformance data structure.
fuselage : Fuselage
Fuselage data structure.
Returns
-------
float
Fuselage mass.
"""
mtow_lbs = 1 / const.pound * vtol.mtom
lf_ft, lf = fuselage.length_fuselage * 1 / const.foot, fuselage.length_fuselage
nult = flight_perf.n_ult # ultimate load factor
wf_ft = fuselage.width_fuselage * 1 / const.foot # width fuselage [ft]
hf_ft = fuselage.height_fuselage * 1 / const.foot # height fuselage [ft]
Vc_kts = flight_perf.v_cruise * 1 / const.foot # design cruise speed [kts]
fweigh_USAF = (
200
* (
(mtow_lbs * nult / 10 ** 5) ** 0.286
* (lf_ft / 10) ** 0.857
* ((wf_ft + hf_ft) / 10)
* (Vc_kts / 100) ** 0.338
)
** 1.1
)
fuselage.mass = fweigh_USAF * const.pound
return fuselage.mass