Source code for RCAIDE.Library.Methods.Performance.find_take_off_weight_given_tofl

# find_take_off_weight_given_tofl.py
#
# Created:  Sep 2014, C. Ilario, T. Orra 
# Modified: Jan 2016, E. Botero


# ----------------------------------------------------------------------
#  Imports
# ----------------------------------------------------------------------

from RCAIDE.Library.Methods.Performance.estimate_take_off_field_length import estimate_take_off_field_length

import numpy as np

# ----------------------------------------------------------------------
#  Find Takeoff Weight Given TOFL
# ----------------------------------------------------------------------
[docs] def find_take_off_weight_given_tofl(vehicle,analyses,target_tofl,altitude = 0, delta_isa = 0,): """ Estimates the maximum allowable takeoff weight for a given takeoff field length requirement. Parameters ---------- vehicle : Vehicle The vehicle instance containing: - mass_properties.operating_empty : float Operating empty weight [kg] - mass_properties.max_takeoff : float Maximum takeoff weight [kg] analyses : Analyses Container with atmosphere and aerodynamic analyses target_tofl : float or ndarray Target takeoff field length(s) [m] altitude : float, optional Airport altitude [m], default 0 delta_isa : float, optional Temperature offset from ISA conditions [K], default 0 Returns ------- max_tow : ndarray Maximum allowable takeoff weight(s) for given field length(s) [kg] Notes ----- Uses an interpolation approach by: 1. Creating array of possible takeoff weights between OEW and 110% MTOW 2. Computing TOFL for each weight 3. Interpolating to find weight that gives target TOFL **Major Assumptions** * Linear interpolation between computed points is valid * Target TOFL is within achievable range * Meets assumptions from estimate_take_off_field_length **Theory** Takeoff field length varies approximately with W/T where: * W = aircraft weight * T = available thrust .. math:: TOFL \propto \\frac{W}{T} See Also -------- RCAIDE.Library.Methods.Performance.estimate_take_off_field_length """ #unpack tow_lower = vehicle.mass_properties.operating_empty tow_upper = 1.10 * vehicle.mass_properties.max_takeoff #saving initial reference takeoff weight tow_ref = vehicle.mass_properties.max_takeoff tow_vec = np.linspace(tow_lower,tow_upper,50) tofl = np.zeros_like(tow_vec) for id,tow in enumerate(tow_vec): vehicle.mass_properties.takeoff = tow tofl[id], _ = estimate_take_off_field_length(vehicle,analyses,altitude = 0, delta_isa = 0) target_tofl = np.atleast_1d(target_tofl) max_tow = np.zeros_like(target_tofl) for id,toflid in enumerate(target_tofl): max_tow[id] = np.interp(toflid,tofl,tow_vec) #reset the initial takeoff weight vehicle.mass_properties.max_takeoff = tow_ref return max_tow