Mission and Flight Profile Module¶
This page documents the Mission and Profile modules of PhlyGreen.
These modules define the aircraft’s flight profile, instantaneous power and overall energy consumption,
and provide the temporal backbone used by all sizing routines (weight, battery, powertrain, emissions).
Overview¶
The mission solver integrates the aircraft state along a sequence of flight segments:
- climb
- cruise
- descent
- loiter
- diversion
Taxi and Take-off phases are presently not integrated in time, but accounted for with assigned fuel mass fractions.
Each segment prescribes:
- altitude trajectory
- speed schedule
- load factor
- electrical/thermal power split
The Profile module generates the time‑resolved reference states (altitude, speed, flight path angle), while the Mission module performs the powertrain requests, energy integration, and battery/fuel usage.
Mission Class — High‑Level Responsibilities¶
The Mission class:
- Reads user mission inputs (
MissionInputdictionary) - Builds the flight profile via the
Profileclass - Computes instantaneous power using aerodynamic and performance models
- Integrates:
- battery power
- gas turbine power
- Detects mission failures (insufficient power, battery issues)
- Returns mission total energies used for sizing
Flight Profile Generation (Profile Class)¶
The Profile class discretizes the flight profile.
It stores vectors of:
altitude[t]speed[t]flight_path_angle[t]load_factor[t]
It supports the following segments:
- Climb
- Cruise
- Descent
- Loiter
- Diversion
Each segment appends time‑resolved states to the global mission arrays.
Mission Power Calculation¶
At each timestep \( t \), the Mission module computes the required propulsive power using the aircraft’s Performance instance:
where:
- \( q = \frac{1}{2}\rho V^2 \)
- \( W_{TO}/S \) wing loading
- \( C_L, C_D \) aerodynamic coefficients
- \( \beta \) = weight fraction
- \( P_s \) = excess power requirement for climb
The Mission module then calls the Powertrain module to split this power into:
- fuel power
- battery power
depending on the configured architecture (tradition, serial hybrid, parallel hybrid).
Energy Integration¶
Battery Energy¶
The integrated battery power request yields:
where \( P_{\text{bat}} \) is given by processing the propulsive power with the electrical efficiency chain. If the Class II battery model is used, the current is computed:
and the SOC evolution is:
Battery temperature uses the thermal ODE:
Fuel Energy¶
Fuel energy integration:
where the fuel power is obtained by amplifying the propulsive power with the thermal efficiency chain.
Segment Loop (Core Mission Logic)¶
Pseudocode equivalent to the Mission solver:
for each timestep t in mission_profile:
read altitude, speed, gamma
compute performance propulsive power Pp
request powertrain split
update fuel and battery states
check SOC, voltage, current, T
accumulate segment energy
If any constraint is violated, a MissionError or BatteryError is thrown, causing the aircraft sizing loop to increase P‑number or adjust weight.
Mission Outputs¶
After integrating the full mission, the module returns:
- Total mission fuel energy
- Total mission battery energy
- Total emissions (if enabled)
- Segment‑by‑segment logs (power, altitude, speed, SOC, T)
- Peak power requirements
- Mission duration
- Required reserve energy
- Whether mission constraints were satisfied
These outputs feed directly into:
- Powertrain Sizing
- Battery Sizing
- WTO iteration
- Emissions accounting
- Well‑to‑Wake energy evaluation
Usage Example¶
mission = aircraft.mission
mission.SetInput() # load MissionInput dictionary
mission.InitializeProfile() # generate profile
results = mission.EvaluateMission(WTO) # integrate energy and power use
Limitations¶
- Flight mechanics are 1‑D (no lateral simulation)
- Weather and airport constraints not included