bada#
- class airtrafficsim.core.performance.bada.Bada#
BADA Performance class
Methods
add_aircraft
(icao[, mass_class])Add one specific aircraft performance data to the performance array according to index.
cal_aerodynamic_drag
(V_tas, bank_angle, m, ...)Calculate Aerodynamic drag (Section 3.6.1)
cal_expedite_descend_factor
(expedite_descent)Calculate expedited descent factor for drag multiplication.
cal_fuel_burn
(flight_phase, tas, thrust, alt)Calculate fuel burn
cal_low_speed_buffeting_limit
(p, M, m)Low speed buffeting limit for jet and turboprop aircraft.
cal_max_d_rocd
(d_t, V_tas, rocd)Calculate maximum delta rate of climb or descend (equation 5.2-2)
cal_max_d_tas
(d_t)Calculate maximum delta true air speed (equation 5.2-1)
cal_maximum_altitude
(d_T, m)Calculate flight envelope (Section 3.5-1)
cal_minimum_speed
(configuration)Calculate minimum speed for aircraft (3.5-2~3)
cal_reduced_climb_power
(m, H_p, H_max)Calculate reduced climb power (section 3.8)
cal_thrust
(vertical_mode, configuration, ...)Calculate thrust given flight phases.
del_aircraft
(index)Delete one specific aircraft performance data to the performance array according to index.
get_procedure_speed
(H_p, H_p_trans, flight_phase)Get the standard air speed schedule
init_procedure_speed
(m, n)Initialize standard air speed schedule for all flight phases (Section 4.1-4.3)
update_configuration
(V_cas, H_p, vertical_mode)Update configuration (section 3.5)
Initialize BADA performance parameters
- Parameters:
- N: int
Number of aircrafts. Maximum size of performance array (pre-initialize to eliminate inefficient append) TODO: Revise the initial estimate
Methods
add_aircraft
(icao[, mass_class])Add one specific aircraft performance data to the performance array according to index.
cal_aerodynamic_drag
(V_tas, bank_angle, m, ...)Calculate Aerodynamic drag (Section 3.6.1)
cal_expedite_descend_factor
(expedite_descent)Calculate expedited descent factor for drag multiplication.
cal_fuel_burn
(flight_phase, tas, thrust, alt)Calculate fuel burn
cal_low_speed_buffeting_limit
(p, M, m)Low speed buffeting limit for jet and turboprop aircraft.
cal_max_d_rocd
(d_t, V_tas, rocd)Calculate maximum delta rate of climb or descend (equation 5.2-2)
cal_max_d_tas
(d_t)Calculate maximum delta true air speed (equation 5.2-1)
cal_maximum_altitude
(d_T, m)Calculate flight envelope (Section 3.5-1)
cal_minimum_speed
(configuration)Calculate minimum speed for aircraft (3.5-2~3)
cal_reduced_climb_power
(m, H_p, H_max)Calculate reduced climb power (section 3.8)
cal_thrust
(vertical_mode, configuration, ...)Calculate thrust given flight phases.
del_aircraft
(index)Delete one specific aircraft performance data to the performance array according to index.
get_procedure_speed
(H_p, H_p_trans, flight_phase)Get the standard air speed schedule
init_procedure_speed
(m, n)Initialize standard air speed schedule for all flight phases (Section 4.1-4.3)
update_configuration
(V_cas, H_p, vertical_mode)Update configuration (section 3.5)
- __n_eng#
Number of engines
- __engine_type#
engine type [Engine_type enum]
- __wake_category#
wake category [Wake_category enum]
- __m_ref#
reference mass [tones]
- m_min#
minimum mass [tones]
- __m_max#
maximum mass [tones]
- __m_pyld#
maximum payload mass [tones]
- v_mo#
maximum operating speed [knots (CAS)]
- m_mo#
maximum operating Mach number [dimensionless]
- __h_mo#
maximum opearting altitude [feet]
- __h_max#
maximum altitude at MTOW and ISA [feet]
- __g_w#
weight gradient on maximum altitude [feet/kg]
- __g_t#
temperature gradient on maximum altitude [feet/K]
- __S#
reference wing surface area [m^2]
- __c_d0_cr#
parasitic drag coefficient (cruise) [dimensionless]
- __c_d2_cr#
induced drag coefficient (cruise) [dimensionless]
- __c_d0_ap#
parasitic drag coefficient (approach) [dimensionless]
- __c_d2_ap#
induced drag coefficient (approach) [dimensionless]
- __c_d0_ld#
parasitic drag coefficient (landing) [dimensionless]
- __c_d2_ld#
induced drag coefficient (landing) [dimensionless]
- __c_d0_ldg#
parasite darg coefficient (landing gear) [dimensionless]
- __v_stall_to#
stall speed (TO) [knots (CAS)]
- __v_stall_ic#
stall speed (IC) [knots (CAS)]
- __v_stall_cr#
stall speed (CR) [knots (CAS)]
- __v_stall_ap#
stall speed (AP) [knots (CAS)]
- __v_stall_ld#
stall speed (LD) [knots (CAS)]
- __c_lbo#
buffet onset lift coefficient (jet and TBP only) [dimensionless]
- __k#
buffeting gradient (Jet & TBP only) [dimensionless]
- __c_tc_1#
1st maximum climb thrust coefficient [Newton (jet/piston) knot-Newton (turboprop)]
- __c_tc_2#
2nd maximum climb thrust coefficient [feet]
- __c_tc_3#
3rd maximum climb thrust coefficient [1/feet^2 (jet) Newton (turboprop) knot-Newton (piston)]
- __c_tc_4#
1st thrust temperature coefficient [K]
- __c_tc_5#
2nd thrust temperature coefficient [1/K]
- __c_tdes_low#
low altitude descent thrust coefficient [dimensionless]
- __c_tdes_high#
high altitude descent thrust coefficient [dimensionless]
- __h_p_des#
transition altitude for calculation of descent thrust [feet]
- __c_tdes_app#
approach thrust coefficient [dimensionless]
- __c_tdes_ld#
landing thrust coefficient [dimensionless]
- __v_des_ref#
reference descent speed [knots (CAS)]
- __m_des_ref#
reference descent Mach number [dimensionless]
- __c_f1#
1st thrust specific fuel consumption coefficient [kg/(min*kN) (jet) kg/(min*kN*knot) (turboprop) kg/min (piston)]
- __c_f2#
2nd thrust specific fuel consumption coefficient [knots]
- __c_f3#
1st descent fuel flow coefficient [kg/min]
- __c_f4#
2nd descent fuel flow coefficient [feet]
- __c_fcr#
cruise fuel flow correction coefficient [dimensionless]
- __tol#
take-off length [m]
- __ldl#
landing length [m]
- __span#
wingspan [m]
- __length#
length [m]
- __v_cl_1#
standard climb CAS [knots] between 1,500/6,000 and 10,000 ft
- __v_cl_2#
standard climb CAS [knots] between 10,000 ft and Mach transition altitude
- __m_cl#
standard climb Mach number above Mach transition altitude
- __v_cr_1#
standard cruise CAS [knots] between 3,000 and 10,000 ft
- __v_cr_2#
standard cruise CAS [knots] between 10,000 ft and Mach transition altitude
- __m_cr#
standard cruise Mach number above Mach transition altitude
- __v_des_1#
standard descent CAS [knots] between 3,000/6,000 and 10,000 ft
- __v_des_2#
standard descent CAS [knots] between 10,000 ft and Mach transition altitude
- __m_des#
standard descent Mach number above Mach transition altitude
- climb_schedule#
Standard climb CAS schedule [knots*8] (section 4.1)
- cruise_schedule#
Standard cruise CAS schedule [knots*5] (section 4.2)
- descent_schedule#
Standard descent CAS schedule [knots*8] (section 4.3)
- __A_L_MAX_CIV#
Maximum longitudinal acceleration for civil flights [2 ft/s^2]
- __A_N_MAX_CIV#
Maximum normal acceleration for civil flights [5 ft/s^2]
- __PHI_NORM_CIV_TOLD#
Nominal bank angles fpr civil flight during TO and LD [15 deg]
- __PHI_NORM_CIV_OTHERS#
Nominal bank angles for civil flight during all other phases [30 deg]
- __PHI_NORM_MIL#
Nominal bank angles for military flight (all phases) [50 deg]
- __PHI_MAX_CIV_TOLD#
Maximum bank angles for civil flight during TO and LD [25 deg]
- __PHI_MAX_CIV_HOLD#
Maximum bank angles for civil flight during HOLD [35 deg]
- __PHI_MAX_CIV_OTHERS#
Maximum bank angles for civil flight during all other phases [45 deg]
- __PHI_MAX_MIL#
Maximum bank angles for military flight (all phases) [70 deg]
- __C_DES_EXP#
Expedited descent factor [1.6]
- __C_TCR#
Maximum cruise thrust coefficient [0.95] (postition different between GPF and user menu)
- __C_TH_TO#
Take-off thrust coefficient [1.2] (no longer used since BADA 3.0) (postition different between GPF and user menu)
- __H_MAX_TO#
Maximum altitude threshold for take-off [400 ft]
- __H_MAX_IC#
Maximum altitude threshold for initial climb [2,000 ft]
- __H_MAX_AP#
Maximum altitude threshold for approach [8,000 ft]
- __H_MAX_LD#
Maximum altitude threshold for landing [3,000 ft]
- __C_V_MIN#
Minimum speed coefficient (all other phases) [1.3]
- __C_V_MIN_TO#
Minimum speed coefficient for take-off [1.2]
- __V_D_CL_1#
Climb speed increment below 1,500 ft (jet) [5 knot CAS]
- __V_D_CL_2#
Climb speed increment below 3,000 ft (jet) [10 knot CAS]
- __V_D_CL_3#
Climb speed increment below 4,000 ft (jet) [30 knot CAS]
- __V_D_CL_4#
Climb speed increment below 5,000 ft (jet) [60 knot CAS]
- __V_D_CL_5#
Climb speed increment below 6,000 ft (jet) [80 knot CAS]
- __V_D_CL_6#
Climb speed increment below 500 ft (turbo/piston) [20 knot CAS]
- __V_D_CL_7#
Climb speed increment below 1,000 ft (turbo/piston) [30 knot CAS]
- __V_D_CL_8#
Climb speed increment below 1,500 ft (turbo/piston) [35 knot CAS]
- __V_D_DSE_1#
Descent speed increment below 1,000 ft (jet/turboprop) [5 knot CAS]
- __V_D_DSE_2#
Descent speed increment below 1,500 ft (jet/turboprop) [10 knot CAS]
- __V_D_DSE_3#
Descent speed increment below 2,000 ft (jet/turboprop) [20 knot CAS]
- __V_D_DSE_4#
Descent speed increment below 3,000 ft (jet/turboprop) [50 knot CAS]
- __V_D_DSE_5#
Descent speed increment below 500 ft (piston) [5 knot CAS]
- __V_D_DSE_6#
Descent speed increment below 1,000 ft (piston) [10 knot CAS]
- __V_D_DSE_7#
Descent speed increment below 1,500 ft (piston) [20 knot CAS]
- __V_HOLD_1#
Holding speed below FL140 [230 knot CAS]
- __V_HOLD_2#
Holding speed between FL140 and FL220 [240 knot CAS]
- __V_HOLD_3#
Holding speed between FL220 and FL340 [265 knot CAS]
- __V_HOLD_4#
Holding speed above FL340 [0.83 Mach]
- __V_BACKTRACK#
Runway backtrack speed [35 knot CAS]
- __V_TAXI#
Taxi speed [15 knot CAS]
- __V_APRON#
Apron speed [10 knot CAS]
- __V_GATE#
Gate speed [5 knot CAS]
- __C_RED_TURBO#
Maximum reduction in power for turboprops [0.25] (postition different between GPF and user menu)
- __C_RED_PISTON#
Maximum reduction in power for pistons [0.0] (postition different between GPF and user menu)
- __C_RED_JET#
Maximum reduction in power for jets [0.15]
- __T_0#
Standard atmospheric temperature at MSL [K]
- __P_0#
Standard atmospheric pressure at MSL [Pa]
- __RHO_0#
Standard atmospheric density at MSL [kg/m^3]
- __A_0#
Speed of sound [m/s]
- __KAPPA#
Adiabatic index of air [dimensionless]
- __R#
Real gas constant of air [m^2/(K*s^2)]
- __G_0#
Gravitational acceleration [m/s^2]
- __BETA_T_BELOW_TROP#
ISA temperature gradient with altitude below the tropopause [K/m]
- __H_P_TROP#
Geopotential pressure altitude [m]
- add_aircraft(icao, mass_class=2)#
Add one specific aircraft performance data to the performance array according to index.
- Parameters:
- self: Performance class instance
Used to add data to the performance array.
- ICAO: string
ICAO code of the specific aircraft.
- mass: int
Mass of aircraft [kg]
- mass_class: int
Aircraft mass for specific flight. To be used for APF. 1 = LO, 2 = AV, 3 = HI TODO: useful?
- Returns:
- TODO:
- del_aircraft(index)#
Delete one specific aircraft performance data to the performance array according to index. This is done by setting all parameters to 0 for reuse in future.
- Parameters:
- self: Performance class instance
Used to delete data to the performance array.
- index: int
Index of array.
- cal_fuel_burn(flight_phase, tas, thrust, alt)#
Calculate fuel burn
- Parameters:
- flight_phasefloat[]
Flight phase from Traffic class [Flight_phase enum]
- tasfloat[]
True airspeed [kt]
- thrustfloat[]
Thrust [N]
- alt_type_
Altitude [ft]
- Returns:
- Fuel burnfloat[]
Fuel burn [kg/s]
- TODO: Thrust mode -> idle descent
- cal_thrust(vertical_mode, configuration, H_p, V_tas, d_T, drag, ap_speed_mode)#
Calculate thrust given flight phases.
- Parameters:
- vertical_modefloat[]
Vertical mode from Traffic class [Vertical_mode enum]
- configurationfloat[]
Configuration from Traffic class [Configuration enum]
- H_pfloat[]
Geopotential pressuer altitude [ft]
- V_tasfloat[]
True airspeed [kt]
- d_Tfloat[]
Temperature differential from ISA [K]
- dragfloat[]
Drag forces [N]
- ap_speed_modeAP_speed_mode enum []
Autopilot speed mode [1: Constant CAS, 2: Constant Mach, 3: Acceleration, 4: Deceleration]
- Returns:
- _type_
_description_
- __cal_operating_speed(m, V_ref)#
Calculate operating speed given mass (Equation 3.4-1)
- Parameters:
- m: float[]
Aircraft mass [kg]
- v_ref: float[]
Velocity reference (e.g. v_stall) [m/s]
- Returns:
- V: float[]
Operating velocity [m/s]
- cal_maximum_altitude(d_T, m)#
Calculate flight envelope (Section 3.5-1)
- Parameters:
- d_T: float[]
Temperature differential from ISA [K]
- m: float[]
Aircraft mass [kg]
- Returns:
- h_max/act: float[]
Actual maximum altitude for any given mass [ft]
- cal_minimum_speed(configuration)#
Calculate minimum speed for aircraft (3.5-2~3)
- Parameters:
- configuration: float[]
configuration from Traffic class [configuration enum]
- Returns:
- v_min: float[]
Minimum at speed at specific configuration [knots] TODO: need to consider mass using __calculate_operating_speed?
- cal_aerodynamic_drag(V_tas, bank_angle, m, rho, configuration, c_des_exp)#
Calculate Aerodynamic drag (Section 3.6.1)
- Parameters:
- V_tas: float[]
True airspeed [m/s]
- bank_angles: float[]
Bank angles from Traffic class [deg]
- m: float[]
Aircraft mass [kg]
- rho: float[]
Density [kg/m^3]
- configuration: float[]
Configuration from Traffic class [Configuration enum]
- c_des_exp: float[]
Coefficient of expedited descent factor [dimensionless]
- Returns:
- D: float[]
Drag force [N]
- cal_low_speed_buffeting_limit(p, M, m)#
Low speed buffeting limit for jet and turboprop aircraft. It is expressed as Mach number. (Equation 3.6-6) TODO: Appendix B
- Parameters:
- p: float[]
Pressure [Pa]
- M: float[]
Mach number [dimensionless]
- m: float[]
Aircraft mass [kg]
- Returns:
- M: float[]
Mach number [dimensionless]
Notes
- TODO: Calculate minimum speed for Jet and Turboprop when H_p >= 15000. V_min = MAX(V_min_stall, M_b) (<- same unit)
If H_p < 15000, V_min = V_min_stall
- __cal_max_climb_to_thrust(H_p, V_tas, d_T)#
Calculate maximum climb thrust for both take-off and climb phases (Section 3.7.1)
- Parameters:
- H_p: float[]
Geopotential pressuer altitude [ft] TODO: Different unit
- V_tas: float[]
True airspeed [kt] TODO: Different unit
- d_T: float[]
Temperature differential from ISA [K]
- Returns:
- Thr_max_climb: float[]
Maximum climb thrust [N]
- __cal_max_cruise_thrust(Thr_max_climb)#
Calculate maximum cruise thrust (Equation 3.7-8)
- Parameters:
- Thr_max_climb: float[]
Maximum climb thrust [N] (obtained from cal_max_climb_to_thrust())
- Returns:
- thr_cruise_max: float[]
Maximum cruise thrust [N]
Notes
The normal cruise thrust is by definition set equal to drag (Thr=D). However, the maximum amount of thrust available in cruise situation is limited.
- __cal_descent_thrust(H_p, Thr_max_climb, configuration)#
Calculate descent thrust (Section 3.7.3)
- Parameters:
- H_p: float[]
Geopotential pressuer altitude [m]
- Thr_max_climb: float[]
Maximum climb thrust [N]
- Configuration: float[]
Configuration from Traffic class [Configuration enum]
- Returns:
- Thr_des: float[]
Descent thrust [N]
- cal_reduced_climb_power(m, H_p, H_max)#
Calculate reduced climb power (section 3.8)
- Parameters:
- m: float[]
Aircraft mass [kg]
- H_p: float[]
Geopotential pressuer altitude [m]
- H_max: float[]
Actual maximum altitude for any given mass [kg] (obtained from __cal_maximum_altitude())
- Returns:
- C_pow,red: float[]
Coefficient of reduced climb power [dimensionless]
Notes
The result can be applied in the calculation of ROCD during climb phase TODO:
- __cal_nominal_fuel_flow(V_tas, Thr)#
Calculate nominal fuel flow (except idle descent and cruise) (equations 3.9-1~3 and 3.9-7)
- Parameters:
- V_tas: float[]
True airspeed [kt] TODO: Different unit
- Thr: float[]
Thrust acting parallel to the aircraft velocity vector [N]
- Returns:
- f_norm: float[]
Nominal fuel flow [kg/min]
- __cal_minimum_fuel_flow(H_p)#
Calculate fuel flow for idle descent (equations 3.9-4 and 3.9-8)
- Parameters:
- H_p: float[]
Geopotential pressuer altitude [ft] TODO: Different uni
- Returns:
- f_min: float[]
Minimum fuel flow [kg/min]
- __cal_approach_landing_fuel_flow(V_tas, Thr, H_p)#
Calculate fuel flow for approach and landing (equations 3.9-5 and 3.9-8)
- Parameters:
- V_tas: float[]
True airspeed [kt] TODO: Different unit
- Thr: float[]
Thrust acting parallel to the aircraft velocity vector [N]
- H_p: float[]
Geopotential pressuer altitude [ft] TODO: Different uni
- Returns:
- f_app/ld: float[]
Approach and landing fuel flow [kg/min]
- __cal_cruise_fuel_flow(V_tas, Thr)#
Calculate fuel flow for cruise (equations 3.9-6 and 3.9-9)
- Parameters:
- V_tas: float[]
True airspeed [kt] TODO: Different unit
- Thr: float[]
Thrust acting parallel to the aircraft velocity vector [N]
- Returns:
- f_cr: float[]
Cruise fuel flow [kg/min]
- init_procedure_speed(m, n)#
Initialize standard air speed schedule for all flight phases (Section 4.1-4.3)
- Parameters:
- m: float[]
Aircraft mass [kg]
- n: int
Index of performance array.
- get_procedure_speed(H_p, H_p_trans, flight_phase)#
Get the standard air speed schedule
- Parameters:
- H_p: float[]
Geopotential pressuer altitude [ft]
- H_p_trans: float[]
Transition altitude [ft]
- m: float[]
Aircraft mass [kg]
- flight_phase: float[]
Flight phase from Traffic class [Flight_phase enum]
- Returns:
- v_std: float[]
Standard CAS [kt]
- -or-
- M_std: float[]
Standard Mach [dimensionless]
Notes
TODO: Recommended to determine the speed schedule from the highest altitude to the lowest one, and to use at each step the speed of the higher altitude range as a ceiling value for the lower altitude range.
TODO: Bound the speed schedule form the minimum and maximum speed.
- update_configuration(V_cas, H_p, vertical_mode)#
Update configuration (section 3.5)
- V_cas: float[]
True air speed [knots]
- H_p: float[]
Geopotential pressuer altitude [ft]
- vertical_modefloat[]
Vertical mode from Traffic class [Vertical_mode enum]
- Returns:
- configurationfloat[]
configuration from Traffic class [configuration enum]
- TODO: Make use of Airport Elevation in calculation
- cal_max_d_tas(d_t)#
Calculate maximum delta true air speed (equation 5.2-1)
- Parameters:
- d_t: float[]
Timestep [s]
- Returns:
- d_v: float[]
Max delta velocity for time step [ft/s^2]
- cal_max_d_rocd(d_t, V_tas, rocd)#
Calculate maximum delta rate of climb or descend (equation 5.2-2)
- Parameters:
- d_t: float[]
Timestep [s]
- V_tas: float[]
True air speed [ft/s]
- rocd: float[]
Current rate of climb/descend [ft/s]
- Returns:
- d_rocd: float[]
Delta rate of climb or descent [ft/s^2]
- cal_expedite_descend_factor(expedite_descent)#
Calculate expedited descent factor for drag multiplication. (Equation 5.4-1)
- Parameters:
- expedite_descent: bool[]
Autopilot setting of whether expedite descent is activated
- Returns:
- c_des_exp: float[]
Coefficient of expedited descent factor [dimensionless]