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, andPerformanceModel.model_infothat 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: populatedAEIC.BADA.aircraft_parameters.Bada3AircraftParametersreflecting either OPF inputs or the performance table metadata.PerformanceModel.engine_model: aAEIC.BADA.model.Bada3JetEngineModelinitialised withac_paramsfor 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_colsandPerformanceModel.performance_table_colnames: the coordinate arrays and names that describe each dimension ofperformance_table.PerformanceModel.LTO_data: modal thrust settings, fuel flows, and emission indices pulled from the performance file (whenLTO_input_mode = "performance_model") or parsed viaAEIC.parsers.LTO_reader.parseLTO().PerformanceModel.EDB_data: ICAO engine databank entry loaded byPerformanceModel.get_engine_by_uid()whenLTO_input_mode = "edb".PerformanceModel.APU_data: auxiliary-power-unit properties resolved fromengines/APU_data.tomlusing theAPU_namespecified in the performance file.PerformanceModel.model_info: the remaining metadata (e.g., cruise speeds, aerodynamic coefficients) trimmed away fromflight_performanceafter 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.