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.

Helper Functions