Source code for aerosandbox.library.regulations.far_part_23
importaerosandbox.numpyasnpfromaerosandbox.toolsimportunitsasufromtypingimportTuple### See also:# https://www.risingup.com/fars/info/23-index.shtml
[docs]deflimit_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 factorifcategory=="normal"orcategory=="commuter":positive_load_factor=np.softmin(2.1+(24000/(design_mass_TOGW/u.lbm+10000)),3.8,softness=0.01)elifcategory=="utility":positive_load_factor=4.4elifcategory=="acrobatic":positive_load_factor=6.0else:raiseValueError("Bad value of `category`. Valid values are 'normal', 'utility', 'acrobatic', and 'commuter'.")### Compute negative load factorifcategory=="normal"orcategory=="commuter"orcategory=="utility":negative_load_factor=-0.4*positive_load_factorelifcategory=="acrobatic":negative_load_factor=-0.5*positive_load_factorelse:raiseValueError()returnpositive_load_factor,negative_load_factor