Performance Model

AEIC.performance_model.PerformanceModel takes aircraft performance, missions, and emissions configuration data as input and produces the data structure needed by trajectory solvers and the emissions pipeline. It builds a fuel-flow performance table as a function of aircraft mass, altitude, rate of climb/descent, and true airspeed.

Overview

  • Supports two input modes via AEIC.config.PerformanceInputMode: reading BADA style OPF files or ingesting the custom performance-model TOML tables.

  • Automatically loads mission definitions, LTO data (either from the performance file or EDB databank), APU characteristics, and BADA3-based engine parameters.

  • Provides convenience accessors such as PerformanceModel.performance_table, and PerformanceModel.model_info that later modules can consume without re-parsing TOML files.

Usage Example

from AEIC.config import Config
from AEIC.performance_model import PerformanceModel

# Load default AEIC configuration.
Config.load()

perf = PerformanceModel("IO/sample_performance_model.toml")
table = perf.performance_table
fl_grid, tas_grid, roc_grid, mass_grid = perf.performance_table_cols
print("Fuel-flow grid shape:", table.shape)

# Pass to trajectory or emissions builders
from AEIC.emissions.emission import Emission
emitter = Emission(perf)

Data Products

After a PerformanceModel instance is created, the instance contains:

  • PerformanceModel.ac_params: populated AEIC.BADA.aircraft_parameters.Bada3AircraftParameters reflecting either OPF inputs or the performance table metadata.

  • PerformanceModel.engine_model: a AEIC.BADA.model.Bada3JetEngineModel initialised with ac_params for thrust and fuel-flow calculations.

  • PerformanceModel.performance_table: the multidimensional NumPy array mapping (flight level, TAS, ROCD, mass, …) onto fuel flow (kg/s).

  • PerformanceModel.performance_table_cols and PerformanceModel.performance_table_colnames: the coordinate arrays and names that describe each dimension of performance_table.

  • PerformanceModel.LTO_data: modal thrust settings, fuel flows, and emission indices pulled from the performance file (when LTO_input_mode = "performance_model") or parsed via AEIC.parsers.LTO_reader.parseLTO().

  • PerformanceModel.EDB_data: ICAO engine databank entry loaded by PerformanceModel.get_engine_by_uid() when LTO_input_mode = "edb".

  • PerformanceModel.APU_data: auxiliary-power-unit properties resolved from engines/APU_data.toml using the APU_name specified in the performance file.

  • PerformanceModel.model_info: the remaining metadata (e.g., cruise speeds, aerodynamic coefficients) trimmed away from flight_performance after the table is created.

API Reference

enum AEIC.config.PerformanceInputMode(value)

Options for selecting input modes for performance model.

Member Type:

str

Valid values are as follows:

OPF = <PerformanceInputMode.OPF: 'opf'>
PERFORMANCE_MODEL = <PerformanceInputMode.PERFORMANCE_MODEL: 'performance_model'>
class AEIC.performance_model.PerformanceModel(input_file: Path, mode: PerformanceInputMode = PerformanceInputMode.PERFORMANCE_MODEL)

Performance model for an aircraft. Contains fuel flow, airspeed, ROC/ROD, LTO emissions, and OAG schedule

__init__(input_file: Path, mode: PerformanceInputMode = PerformanceInputMode.PERFORMANCE_MODEL)

Initializes the performance model by reading the configuration, loading mission data, and setting up performance and engine models.

create_performance_table(data_dict)

Dynamically creates a multidimensional performance table where fuel flow is a function of input variables such as flight level, true airspeed, rate of climb/descent, and mass.

Parameters:

data_dict (dict) – Dictionary containing keys ‘cols’ and ‘data’ from the input TOML.

read_performance_data()

Parses the TOML input file containing flight and LTO performance data. Separates model metadata and prepares the data for table generation.