BADA Methods
Support for the Base of Aircraft Data revision 3.0 (BADA-3) and custom performance
data structured in the same way is included in AEIC
. Below are the various dataclasses, methods, and helper functions
that can be used to evaluate or manipulate BADA-3 formatted data.
Engine and Fuel Burn Models
- class BADA.model.Bada3EngineModel(aircraft_parameters: Bada3AircraftParameters)
- calculate_descent_thrust_app(altitude: float | ndarray[tuple[Any, ...], dtype[float64]], v_tas: float | ndarray[tuple[Any, ...], dtype[float64]], temperature: float | ndarray[tuple[Any, ...], dtype[float64]]) float | ndarray[tuple[Any, ...], dtype[float64]]
Calculate descent thrust for approach conditions, using equation (3.7-11)
- Parameters:
altitude (Union[float, NDArray]) – Altitude [m].
v_tas (Union[float, NDArray]) – True airspeed [m/s].
temperature (Union[float, NDArray]) – Temperature [K].
- Returns:
Descent thrust [N].
- Return type:
Union[float, NDArray]
- calculate_descent_thrust_high(altitude: float | ndarray[tuple[Any, ...], dtype[float64]], v_tas: float | ndarray[tuple[Any, ...], dtype[float64]], temperature: float | ndarray[tuple[Any, ...], dtype[float64]]) float | ndarray[tuple[Any, ...], dtype[float64]]
Calculate descent thrust for high altitudes, using equation (3.7-9)
- Parameters:
altitude (Union[float, NDArray]) – Altitude [m].
v_tas (Union[float, NDArray]) – True airspeed [m/s].
temperature (Union[float, NDArray]) – Temperature [K].
- Returns:
Descent thrust [N].
- Return type:
Union[float, NDArray]
- calculate_descent_thrust_land(altitude: float | ndarray[tuple[Any, ...], dtype[float64]], v_tas: float | ndarray[tuple[Any, ...], dtype[float64]], temperature: float | ndarray[tuple[Any, ...], dtype[float64]]) float | ndarray[tuple[Any, ...], dtype[float64]]
Calculate descent thrust for landing conditions, using equation (3.7-12)
- Parameters:
altitude (Union[float, NDArray]) – Altitude [m].
v_tas (Union[float, NDArray]) – True airspeed [m/s].
temperature (Union[float, NDArray]) – Temperature [K].
- Returns:
Descent thrust [N].
- Return type:
Union[float, NDArray]
- calculate_descent_thrust_low(altitude: float | ndarray[tuple[Any, ...], dtype[float64]], v_tas: float | ndarray[tuple[Any, ...], dtype[float64]], temperature: float | ndarray[tuple[Any, ...], dtype[float64]]) float | ndarray[tuple[Any, ...], dtype[float64]]
Calculate descent thrust for low altitudes, using equation (3.7-10)
- Parameters:
altitude (Union[float, NDArray]) – Altitude [m].
v_tas (Union[float, NDArray]) – True airspeed [m/s].
temperature (Union[float, NDArray]) – Temperature [K].
- Returns:
Descent thrust [N].
- Return type:
Union[float, NDArray]
- calculate_max_climb_thrust(altitude: float | ndarray[tuple[Any, ...], dtype[float64]], v_tas: float | ndarray[tuple[Any, ...], dtype[float64]], temperature: float | ndarray[tuple[Any, ...], dtype[float64]]) float | ndarray[tuple[Any, ...], dtype[float64]]
Calculate maximum climb thrust for non-ISA conditions, using equation (3.7-4)
- Parameters:
altitude (Union[float, NDArray]) – Altitude [m].
v_tas (Union[float, NDArray]) – True airspeed [m/s].
temperature (Union[float, NDArray]) – Temperature [K].
- Returns:
Maximum climb thrust [N].
- Return type:
Union[float, NDArray]
- calculate_max_cruise_thrust(altitude: float | ndarray[tuple[Any, ...], dtype[float64]], v_tas: float | ndarray[tuple[Any, ...], dtype[float64]], temperature: float | ndarray[tuple[Any, ...], dtype[float64]]) float | ndarray[tuple[Any, ...], dtype[float64]]
Calculate maximum cruise thrust, using equation (3.7-8)
- Parameters:
altitude (Union[float, NDArray]) – Altitude [m].
v_tas (Union[float, NDArray]) – True airspeed [m/s].
temperature (Union[float, NDArray]) – Temperature [K].
- Returns:
Maximum cruise thrust [N].
- Return type:
Union[float, NDArray]
- class BADA.model.Bada3JetEngineModel(aircraft_parameters: Bada3AircraftParameters)
- calculate_cruise_fuel_flow(thrust: float | ndarray[tuple[Any, ...], dtype[float64]], v_tas: float | ndarray[tuple[Any, ...], dtype[float64]]) float | ndarray[tuple[Any, ...], dtype[float64]]
Calculate cruise fuel flow for jet, using equation (3.9-6)
- Parameters:
thrust (Union[float, NDArray]) – Thrust [N].
v_tas (Union[float, NDArray]) – True airspeed [m/s].
- Returns:
Cruise fuel flow [kg/s].
- Return type:
Union[float, NDArray]
- calculate_max_climb_thrust_isa(altitude: float | ndarray[tuple[Any, ...], dtype[float64]], v_tas: float | ndarray[tuple[Any, ...], dtype[float64]]) float | ndarray[tuple[Any, ...], dtype[float64]]
Calculate maximum climb thrust for ISA conditions, using equation (3.7-1)
- Parameters:
altitude (Union[float, NDArray]) – Altitude [m].
v_tas (Union[float, NDArray]) – True airspeed [m/s]. UNUSED - only for consistency with other engine models.
- Returns:
Maximum climb thrust [N].
- Return type:
Union[float, NDArray]
- calculate_nominal_fuel_flow(thrust: float | ndarray[tuple[Any, ...], dtype[float64]], v_tas: float | ndarray[tuple[Any, ...], dtype[float64]]) float | ndarray[tuple[Any, ...], dtype[float64]]
Calculate nominal fuel flow for jet, using equation (3.9-3)
- Parameters:
thrust (Union[float, NDArray]) – Thrust [N].
v_tas (Union[float, NDArray]) – True airspeed [m/s].
- Returns:
Nominal fuel flow [kg/s].
- Return type:
Union[float, NDArray]
- calculate_specific_fuel_consumption(v_tas: float | ndarray[tuple[Any, ...], dtype[float64]]) float | ndarray[tuple[Any, ...], dtype[float64]]
Calculate specific fuel consumption for jet, using equation (3.9-1)
- Parameters:
v_tas (Union[float, NDArray]) – True airspeed [m/s].
- Returns:
Specific fuel consumption [kg/N/s].
- Return type:
Union[float, NDArray]
- class BADA.model.Bada3TurbopropEngineModel(aircraft_parameters: Bada3AircraftParameters)
- calculate_cruise_fuel_flow(thrust: float | ndarray[tuple[Any, ...], dtype[float64]], v_tas: float | ndarray[tuple[Any, ...], dtype[float64]]) float | ndarray[tuple[Any, ...], dtype[float64]]
Calculate cruise fuel flow for turboprop, using equation (3.9-6)
- Parameters:
thrust (Union[float, NDArray]) – Thrust [N].
v_tas (Union[float, NDArray]) – True airspeed [m/s].
- Returns:
Cruise fuel flow [kg/s].
- Return type:
Union[float, NDArray]
- calculate_max_climb_thrust_isa(altitude: float | ndarray[tuple[Any, ...], dtype[float64]], v_tas: float | ndarray[tuple[Any, ...], dtype[float64]]) float | ndarray[tuple[Any, ...], dtype[float64]]
Calculate maximum climb thrust for ISA conditions, using equation (3.7-2)
- Parameters:
altitude (Union[float, NDArray]) – Altitude [m].
v_tas (Union[float, NDArray]) – True airspeed [m/s].
- Returns:
Maximum climb thrust [N].
- Return type:
Union[float, NDArray]
- calculate_nominal_fuel_flow(thrust: float | ndarray[tuple[Any, ...], dtype[float64]], v_tas: float | ndarray[tuple[Any, ...], dtype[float64]]) float | ndarray[tuple[Any, ...], dtype[float64]]
Calculate nominal fuel flow for turboprop, using equation (3.9-3)
- Parameters:
thrust (Union[float, NDArray]) – Thrust [N].
v_tas (Union[float, NDArray]) – True airspeed [m/s].
- Returns:
Nominal fuel flow [kg/s].
- Return type:
Union[float, NDArray]
- calculate_specific_fuel_consumption(v_tas: float | ndarray[tuple[Any, ...], dtype[float64]]) float | ndarray[tuple[Any, ...], dtype[float64]]
Calculate specific fuel consumption for turboprop, using equation (3.9-2)
- Parameters:
v_tas (Union[float, NDArray]) – True airspeed [m/s].
- Returns:
Specific fuel consumption [kg/N/s].
- Return type:
Union[float, NDArray]
- class BADA.model.Bada3PistonEngineModel(aircraft_parameters: Bada3AircraftParameters)
- calculate_cruise_fuel_flow(thrust, v_tas) float | ndarray[tuple[Any, ...], dtype[float64]]
- Parameters:
thrust (Union[float, NDArray]) – Consistency Placeholder for thrust.
v_tas (Union[float, NDArray]) – Consistency Placeholder for true airspeed.
- Return type:
Union[float, NDArray] - cruise fuel flow for piston engines.
- calculate_max_climb_thrust_isa(altitude: float | ndarray[tuple[Any, ...], dtype[float64]], v_tas: float | ndarray[tuple[Any, ...], dtype[float64]]) float | ndarray[tuple[Any, ...], dtype[float64]]
Calculate maximum climb thrust for ISA conditions, using equation (3.7-3)
- Parameters:
altitude (Union[float, NDArray]) – Altitude [m].
v_tas (Union[float, NDArray]) – True airspeed [m/s].
- Returns:
Maximum climb thrust [N].
- Return type:
Union[float, NDArray]
- calculate_nominal_fuel_flow(thrust, v_tas) float | ndarray[tuple[Any, ...], dtype[float64]]
- Parameters:
thrust (Union[float, NDArray]) – Consistency Placeholder for thrust.
v_tas (Union[float, NDArray]) – Consistency Placeholder for true airspeed.
- Return type:
Union[float, NDArray] - nominal fuel flow for piston engines.
- calculate_specific_fuel_consumption() None
- Return type:
None - thrust specific fuel consumption is not defined for piston engines.
- class BADA.model.Bada3FuelBurnModel(aircraft_parameters: Bada3AircraftParameters)
BADA3 fuel burn model class.
- calculate_cd(cl: float | ndarray[tuple[Any, ...], dtype[float64]]) float | ndarray[tuple[Any, ...], dtype[float64]]
Calculate drag coefficient using equation (3.6-2)
- Parameters:
cl (Union[float, NDArray]) – Lift coefficient.
- Returns:
Drag coefficient.
- Return type:
Union[float, NDArray]
- calculate_cl(mass: float | ndarray[tuple[Any, ...], dtype[float64]], rho: float | ndarray[tuple[Any, ...], dtype[float64]], v_tas: float | ndarray[tuple[Any, ...], dtype[float64]]) float | ndarray[tuple[Any, ...], dtype[float64]]
Calculate lift coefficient using equation (3.6-1)
- Parameters:
mass (Union[float, NDArray]) – Aircraft mass [kg].
rho (Union[float, NDArray]) – Air density [kg/m^3].
v_tas (Union[float, NDArray]) – True airspeed [m/s].
- Returns:
Lift coefficient.
- Return type:
Union[float, NDArray]
- calculate_drag(cd: float | ndarray[tuple[Any, ...], dtype[float64]], rho: float | ndarray[tuple[Any, ...], dtype[float64]], v_tas: float | ndarray[tuple[Any, ...], dtype[float64]]) float | ndarray[tuple[Any, ...], dtype[float64]]
Calculate drag using equation (3.6-5)
- Parameters:
cd (Union[float, NDArray]) – Drag coefficient.
rho (Union[float, NDArray]) – Air density [kg/m^3].
v_tas (Union[float, NDArray]) – True airspeed [m/s].
- Returns:
Drag [N].
- Return type:
Union[float, NDArray]
- calculate_specific_ground_range(mass: float | ndarray[tuple[Any, ...], dtype[float64]], temperature: float | ndarray[tuple[Any, ...], dtype[float64]], altitude: float | ndarray[tuple[Any, ...], dtype[float64]], v_tas: float | ndarray[tuple[Any, ...], dtype[float64]], rocd: float | ndarray[tuple[Any, ...], dtype[float64]], acceleration: float | ndarray[tuple[Any, ...], dtype[float64]], in_cruise: float | ndarray[tuple[Any, ...], dtype[float64]], groundspeed: float | ndarray[tuple[Any, ...], dtype[float64]]) float | ndarray[tuple[Any, ...], dtype[float64]]
Calculate specific ground range
- Parameters:
mass (Union[float, NDArray]) – Aircraft mass [kg].
temperature (Union[float, NDArray]) – Temperature [K].
altitude (Union[float, NDArray]) – Altitude [m].
v_tas (Union[float, NDArray]) – True airspeed [m/s].
rocd (Union[float, NDArray]) – Rate of climb or descent [m/s].
acceleration (Union[float, NDArray]) – Acceleration [m/s^2].
in_cruise (Union[float, NDArray]) – Flag indicating whether aircraft is in cruise.
groundspeed (Union[float, NDArray]) – Ground speed [m/s].
- Returns:
Specific ground range [m/kg]
- Return type:
Union[float, NDArray]
- calculate_thrust(mass: float | ndarray[tuple[Any, ...], dtype[float64]], temperature: float | ndarray[tuple[Any, ...], dtype[float64]], altitude: float | ndarray[tuple[Any, ...], dtype[float64]], v_tas: float | ndarray[tuple[Any, ...], dtype[float64]], rocd: float | ndarray[tuple[Any, ...], dtype[float64]], acceleration: float | ndarray[tuple[Any, ...], dtype[float64]], in_cruise: float | ndarray[tuple[Any, ...], dtype[float64]]) float | ndarray[tuple[Any, ...], dtype[float64]]
Calculate thrust from total energy but correct extremes using max and descent thrusts
- Parameters:
mass (Union[float, NDArray]) – Aircraft mass [kg].
temperature (Union[float, NDArray]) – Temperature [K].
altitude (Union[float, NDArray]) – Altitude [m].
v_tas (Union[float, NDArray]) – True airspeed [m/s].
rocd (Union[float, NDArray]) – Rate of climb or descent [m/s].
acceleration (Union[float, NDArray]) – Acceleration [m/s^2].
in_cruise (Union[float, NDArray]) – Flag indicating whether aircraft is in cruise.
- Returns:
Thrust [N].
- Return type:
Union[float, NDArray]
- calculate_thrust_by_total_energy(drag: float | ndarray[tuple[Any, ...], dtype[float64]], mass: float | ndarray[tuple[Any, ...], dtype[float64]], v_tas: float | ndarray[tuple[Any, ...], dtype[float64]], rocd: float | ndarray[tuple[Any, ...], dtype[float64]], acceleration: float | ndarray[tuple[Any, ...], dtype[float64]]) float | ndarray[tuple[Any, ...], dtype[float64]]
Calculate thrust by total energy method, i.e. equation (3.2-1)
- Parameters:
drag (Union[float, NDArray]) – Drag [N].
mass (Union[float, NDArray]) – Aircraft mass [kg].
v_tas (Union[float, NDArray]) – True airspeed [m/s].
rocd (Union[float, NDArray]) – Rate of climb or descent [m/s].
acceleration (Union[float, NDArray]) – Acceleration [m/s^2].
- Returns:
Thrust [N].
- Return type:
Union[float, NDArray]
- iterate_flight_simulation_constant_final_mass(temperature: float | ndarray[tuple[Any, ...], dtype[float64]], altitude: float | ndarray[tuple[Any, ...], dtype[float64]], v_tas: float | ndarray[tuple[Any, ...], dtype[float64]], rocd: float | ndarray[tuple[Any, ...], dtype[float64]], acceleration: float | ndarray[tuple[Any, ...], dtype[float64]], in_cruise: float | ndarray[tuple[Any, ...], dtype[float64]], groundspeed: float | ndarray[tuple[Any, ...], dtype[float64]], segment_distance: float | ndarray[tuple[Any, ...], dtype[float64]], final_mass: float, n_iter: int = 10) float | ndarray[tuple[Any, ...], dtype[float64]]
Iterate flight simulation for constant initial mass
- Parameters:
temperature (Union[float, NDArray]) – Temperature [K].
altitude (Union[float, NDArray]) – Altitude [m].
v_tas (Union[float, NDArray]) – True airspeed [m/s].
rocd (Union[float, NDArray]) – Rate of climb or descent [m/s].
acceleration (Union[float, NDArray]) – Acceleration [m/s^2].
in_cruise (Union[float, NDArray]) – Flag indicating whether aircraft is in cruise.
groundspeed (Union[float, NDArray]) – Ground speed [m/s].
segment_distance (Union[float, NDArray]) – Segment distance [m].
final_mass (float) – Final mass [kg].
n_iter (int, optional) – Number of iterations, by default 10
- Returns:
mass vector [kg]
- Return type:
Union[float, NDArray]
- iterate_flight_simulation_constant_initial_mass(temperature: float | ndarray[tuple[Any, ...], dtype[float64]], altitude: float | ndarray[tuple[Any, ...], dtype[float64]], v_tas: float | ndarray[tuple[Any, ...], dtype[float64]], rocd: float | ndarray[tuple[Any, ...], dtype[float64]], acceleration: float | ndarray[tuple[Any, ...], dtype[float64]], in_cruise: float | ndarray[tuple[Any, ...], dtype[float64]], groundspeed: float | ndarray[tuple[Any, ...], dtype[float64]], segment_distance: float | ndarray[tuple[Any, ...], dtype[float64]], initial_mass: float, n_iter: int = 10) float | ndarray[tuple[Any, ...], dtype[float64]]
Iterate flight simulation for constant initial mass
- Parameters:
temperature (Union[float, NDArray]) – Temperature [K].
altitude (Union[float, NDArray]) – Altitude [m].
v_tas (Union[float, NDArray]) – True airspeed [m/s].
rocd (Union[float, NDArray]) – Rate of climb or descent [m/s].
acceleration (Union[float, NDArray]) – Acceleration [m/s^2].
in_cruise (Union[float, NDArray]) – Flag indicating whether aircraft is in cruise.
groundspeed (Union[float, NDArray]) – Ground speed [m/s].
segment_distance (Union[float, NDArray]) – Segment distance [m].
initial_mass (float) – Initial mass [kg].
n_iter (int, optional) – Number of iterations, by default 10
- Returns:
mass vector [kg]
- Return type:
Union[float, NDArray]
- iterate_flight_simulation_fuel_burn_dependent_initial_mass_rf_fraction(temperature: float | ndarray[tuple[Any, ...], dtype[float64]], altitude: float | ndarray[tuple[Any, ...], dtype[float64]], v_tas: float | ndarray[tuple[Any, ...], dtype[float64]], rocd: float | ndarray[tuple[Any, ...], dtype[float64]], acceleration: float | ndarray[tuple[Any, ...], dtype[float64]], in_cruise: float | ndarray[tuple[Any, ...], dtype[float64]], groundspeed: float | ndarray[tuple[Any, ...], dtype[float64]], segment_distance: float | ndarray[tuple[Any, ...], dtype[float64]], initial_mass_estimate: float, mtow: float, oew: float, mpl: float, load_factor: float, reserve_fuel_fraction: float, n_iter: int = 10) float | ndarray[tuple[Any, ...], dtype[float64]]
Iterate flight simulation for fuel burn dependent initial mass where reserve fuel is defined by fraction of fuel burn
- Parameters:
temperature (Union[float, NDArray]) – Temperature [K].
altitude (Union[float, NDArray]) – Altitude [m].
v_tas (Union[float, NDArray]) – True airspeed [m/s].
rocd (Union[float, NDArray]) – Rate of climb or descent [m/s].
acceleration (Union[float, NDArray]) – Acceleration [m/s^2].
in_cruise (Union[float, NDArray]) – Flag indicating whether aircraft is in cruise.
groundspeed (Union[float, NDArray]) – Ground speed [m/s].
segment_distance (Union[float, NDArray]) – Segment distance [m].
initial_mass_estimate (float) – Initial mass estimate [kg].
mtow (float) – Maximum takeoff weight [kg].
oew (float) – Operating empty weight [kg].
mpl (float) – Maximum payload [kg].
load_factor (float) – Load factor [-].
reserve_fuel_fraction (float) – Fraction of fuel burn to reserve fuel.
n_iter (int, optional) – Number of iterations, by default 10
- Returns:
mass vector [kg]
- Return type:
Union[float, NDArray]
- iterate_flight_simulation_fuel_burn_dependent_initial_mass_rf_value(temperature: float | ndarray[tuple[Any, ...], dtype[float64]], altitude: float | ndarray[tuple[Any, ...], dtype[float64]], v_tas: float | ndarray[tuple[Any, ...], dtype[float64]], rocd: float | ndarray[tuple[Any, ...], dtype[float64]], acceleration: float | ndarray[tuple[Any, ...], dtype[float64]], in_cruise: float | ndarray[tuple[Any, ...], dtype[float64]], groundspeed: float | ndarray[tuple[Any, ...], dtype[float64]], segment_distance: float | ndarray[tuple[Any, ...], dtype[float64]], initial_mass_estimate: float, mtow: float, oew: float, mpl: float, load_factor: float, reserve_fuel: float, n_iter: int = 10) float | ndarray[tuple[Any, ...], dtype[float64]]
Iterate flight simulation for fuel burn dependent initial mass where reserve fuel is defined by value
- Parameters:
temperature (Union[float, NDArray]) – Temperature [K].
altitude (Union[float, NDArray]) – Altitude [m].
v_tas (Union[float, NDArray]) – True airspeed [m/s].
rocd (Union[float, NDArray]) – Rate of climb or descent [m/s].
acceleration (Union[float, NDArray]) – Acceleration [m/s^2].
in_cruise (Union[float, NDArray]) – Flag indicating whether aircraft is in cruise.
groundspeed (Union[float, NDArray]) – Ground speed [m/s].
segment_distance (Union[float, NDArray]) – Segment distance [m].
initial_mass_estimate (float) – Initial mass estimate [kg].
mtow (float) – Maximum takeoff weight [kg].
oew (float) – Operating empty weight [kg].
mpl (float) – Maximum payload [kg].
load_factor (float) – Load factor [-].
reserve_fuel (float) – Reserve fuel [kg].
n_iter (int, optional) – Number of iterations, by default 10
- Returns:
mass vector [kg]
- Return type:
Union[float, NDArray]
Aircraft Parameters
- class BADA.aircraft_parameters.Bada3AircraftParameters(ac_type: str | None = None, wake_cat: str | None = None, c_fcr: float | None = None, c_f1: float | None = None, c_f2: float | None = None, c_f3: float | None = None, c_f4: float | None = None, c_d0cr: float | None = None, c_d2cr: float | None = None, S_ref: float | None = None, ref_mass: float | None = None, min_mass: float | None = None, max_mass: float | None = None, max_payload: float | None = None, V_MO: float | None = None, M_MO: float | None = None, H_MO: float | None = None, c_tc1: float | None = None, c_tc2: float | None = None, c_tc3: float | None = None, c_tc4: float | None = None, c_tc5: float | None = None, c_tcr: float | None = 0.95, c_tdes_low: float | None = None, c_tdes_high: float | None = None, h_p_des: float | None = None, c_tdes_app: float | None = None, c_tdes_ld: float | None = None, engine_type: str | None = None, cas_cruise_lo: float | None = None, cas_cruise_hi: float | None = None, cas_cruise_mach: float | None = None)
BADA3 aircraft parameters.
This class implements the BADA3 aircraft parameters. It is based on the BADA3.16 User Manual
- assign_parameters_fromdict(parameters: dict)
Assigns the parameters from a dictionary.
- get_params_asdict()
Returns the parameters as a dictionary.
Fuel Burn Base Classes
- class BADA.fuel_burn_base.BaseAircraftParameters
Abstract class for aircraft parameters.
- class BADA.fuel_burn_base.BaseFuelBurnModel(aircraft_parameters)
Abstract class for fuel burn models.