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]