Source code for aerosandbox.library.regulations.far_part_23

import aerosandbox as asb
import aerosandbox.numpy as np
from aerosandbox.tools import units as u
from typing import Tuple


### See also:
# https://www.risingup.com/fars/info/23-index.shtml

[docs]def limit_load_factors( design_mass_TOGW: float, category: str = "normal", ) -> Tuple[float, float]: """ Computes the required limit load factors for FAR Part 23 certification. From FAR Part 23: "Airworthiness Standards: Normal, Utility, Acrobatic, and Commuter Category Airplanes" Section 23.337: "Limit maneuvering load factors" Args: design_mass_TOGW: The design takeoff gross weight of the aircraft [kg]. category: The category of the aircraft. Valid values are: - "normal" - "utility" - "acrobatic" - "commuter" Returns: A tuple with (positive load factor, negative load factor). These are the maximum positive and negative limit load factors that the aircraft should withstand for Part 23 certification. """ ### Compute positive load factor if category == "normal" or category == "commuter": positive_load_factor = np.softmin( 2.1 + (24000 / (design_mass_TOGW / u.lbm + 10000)), 3.8, softness=0.01 ) elif category == "utility": positive_load_factor = 4.4 elif category == "acrobatic": positive_load_factor = 6.0 else: raise ValueError("Bad value of `category`. Valid values are 'normal', 'utility', 'acrobatic', and 'commuter'.") ### Compute negative load factor if category == "normal" or category == "commuter" or category == "utility": negative_load_factor = -0.4 * positive_load_factor elif category == "acrobatic": negative_load_factor = -0.5 * positive_load_factor else: raise ValueError() return positive_load_factor, negative_load_factor