Skip to content

Clean Aircraft


  • Introduction
    • What are we building?
    • What will you learn?
  • Performance Overview
    • Weight vs Range simulation
    • Mass Estimation
  • Electrification
    • Booster Power Table
    • Aircraft Dynamics Library
    • Integration
  • Comparison Hybrid Electric vs Conventional
  • Conclusion
  • References


Current challenge in the aerospace industry is to develop technologies enabling cleaner aviation. Clean aircraft concepts go from fully electrified, hybrid-electric (series or parallel) to alternative fuels such as Sustainable Aviation Fuels (SAF) or Hydrogen.

Before Start: You will need approximately 1 hour to complete this tutorial

You will need the libraries:

  • Aircraft Dynamics Library (ADL)
  • Electrification Library (EL)
  • Modelon Base Library (MBL)

What questions are we answering?🔗

When exploring clean aircraft, the key questions center around getting the same kind of range as conventional fuels. Clean aircraft introduces new unknowns such as weight and performance. This tutorial describes the workflow to build model, experiments and results in order to explore the relationship between electrification of an aircraft, fuel consumption and range.

What are we building?🔗

In this tutorial an electrified aircraft model will be built with basic assumptions on the electrical system and shaft power intake – using off the shelf models from Modelon Impact libraries (Aircraft Dynamics, Jet Propulsion and Electrification).

Comparisons will be made against the conventional propulsion system to explore the compromises that need to be made to reduce fuel consumption while increasing range of the aircraft. The resulting model will have the backbone that establishes the foundation upon which the user can build more complex systems to represent hybrid propulsion technology.

What will you learn?🔗

  • re-use of an existing model
  • integration of different libraries
  • implementation of user assumptions into existing models

Performance Overview🔗

In this tutorial, aircraft performance is divided into 7 categories:

  1. Takeoff and landing
  2. Climb
  3. Range
  4. Speed
  5. Maneuverability
  6. Stability
  7. Fuel savings

The focus of this tutorial will be on the Range and Fuel economy of the aircraft, this can be analyzed through a Weight vs Range graph:

Point A is at the Maximum Take off Weight (MTOW), which is the maximum weight that the aircraft can carry due to physical constraints of the design and type of aircraft. At point B, the design “sacrifices” cargo mass to fill in our fuel tanks. However, it is only possible to fill in the tanks up to certain value limited by the capacity of the tanks itself. After this we can only add range by dropping cargo mass, which brings to point C.

The slope between point A and B is the fuel efficiency of our aircraft, this means that the additional fuel in the tanks will take us approximately 807 km further in range.

Weight vs Range Simulation🔗

  1. Duplicate to the workspace the example from AircraftDynamics.Examples.ConstantAltitudeCruise.
  2. In the Experiment mode, change the stop time to 50000s.

The example set up is defined to stop the simulation at the time the fuel runs out, this feature makes it perfect for the tutorial focus on weight vs range. The main assumptions of this Test Rig are :

  • Based on BizJet architecture, 2 Degrees Of Freedom (DOF)
  • Constant Altitude
  • Constant Angle of Attack (at L/D max)
  • Changing fuel mass, the model will run until all fuel is burned
  • Fuselage Weight = 2522 kg

Aircraft architecture plays an important role on the weight vs range behavior but the focus of this tutorial is on the system level interactions, booster power, fuel consumption and electrical system, hence the same scope can be applied to a different Aircraft architecture like a B737.

Mass Estimation🔗

For the purpose of this tutorial, make further changes/assumptions to the masses.

  1. First assume the maximum weights of cargo and fuel
  • 500 kg, Maximum Cargo weight ~ 20% of Fuselage weight
  • 1000 kg, Maximum Fuel weight ~ 40% of Fuselage weight
  1. Then, for the Maximum Take Off Weight (MTOW) assume this limit to be at 3722 kg. Normally the aircraft owner would like to take the maximum cargo weight (500 kg). But taking into account fuselage weight (2522 kg), we will only have 700 kg left for fuel (70% of Maximum Fuel Weight).
  • MTOW = 3722 kg = Fuselage + Maximum Cargo + 70% of Maximum Fuel Weight
  • MTOW = 3722 kg = 2522+500+700
  1. Inspect the aircraft component, change the power.fuel.m_fuel_start to 700 kg and to 500 kg as follows:

  1. This set up will be our baseline. Simulate the model.

  2. On the Result tab, add a sticky for aircraft.summary.Distance and check the end of simulation time with the scroll to see the Maximum distance achieved with the Baseline setup.

  1. Create two experiment set up with 200 kg and 0 kg for cargo mass and 1000 kg fuel mass (for both).

  1. Next, get the Maximum distance for each of the experiments and build the following table, with which a plot of weight vs range can be obtained as well.

Experiment Input: cargo mass [kg] Input : fuel mass [kg] Result : range [km]
Experiment A 500 700 1716.81
Experiment B 200 1000 2523.277
Experiment C 0 1000 2619.923


In this section we will edit the needed models from our Aircraft Dynamics Library in order to add the electric functionality. To organize the models properly, create the Workspace structure as below.

  • Workspace
    • Power
      • Examples
      • Engines
        • EngineDeck
        • FuelConsumption
      • Electrical
        • Examples
      • Examples

Since we are going to modify connections and components we will need to duplicate some models, while others can be dealt with a extend procedure.

According to the following table, duplicate or extend the models from Aircraft Dynamics Library into the Workspace.

The workspace should look like the following figure.

Booster Power Table🔗

To provide the aircraft model with the information about the booster power going into the engines, a table must be introduced.

Such table can be obtained by running a simulation from JetPropulsion.Experiments.GearedTurbofan.Cruise_offDesign with a sweep of Mach number and Altitude (using range operator) and taking 20% of the power required by the core section of the fan, this means; BoosterPwr = f(Mn, Alt).

For simplicity, the table is provided here:

parameter Real elecPwrIn_table[:,:] =

[ 0, 0.1, 0.275, 0.45, 0.625, 0.8;

0, 74880.832, 75300.822, 76637.286, 78731.542, 80950.122;

3048, 85628.852, 84949.745, 84034.439, 84222.779, 86424.848;

6096, 98510.296, 98312.285, 97315.691, 95844.330, 94099.794;

9144, 106008.650, 105624.619, 104484.759, 103266.176, 101874.404;

12192, 123464.803, 118739.560, 112269.200, 107635.914, 105622.360];


if you wish to input the data in ft or horse power you will need to include .Modelon.Units.Conversions.from_ft and .Modelon.Units.Conversions.from_hp at each of the elements on the table i.e. .Modelon.Units.Conversions.from_hp(74880.832)

Note the modelica format of the table is as shown in the following figure.

Add the table elecPwrIn_table (copy-paste from above) to Workspace.Power.Engines.EngineDeck.LBR_electric, your new record should look similar to the following figure.

Aircraft Dynamics Library🔗

Power Specific Fuel Consumption

Theory of shaft power off takes (as described in Reference 2) hold for the intake of power coming from the electrical system of the aircraft. Power intake will be reflected in the fuel flow and can be represented with delta Thrust Specific Fuel Consumption (SFC_Fn)

delta_SFC_Fn = mass_flow_FP / Fn ......... eq1

where, Fn is the net thrust, mass_flow_FP is the fuel flow savings due to the power intake and can also be represented as :

mass_flow_FP = SFC_P * P ......... eq2

where, SFC_P is Power Specific Fuel Consumption [kg/(s*kW)]

At this point we can introduce the Shaft Power Factor kp :

SFC_P / SFC_Fn = kp ......... eq3

And use kp to relate the fuel flow due to the power intake with the Thrust Specific Fuel Consumption

mass_flow_FP = kp * SFC_Fn * P ......... eq4

From equation (4) the Shaft Power Factor kp is kept constant at 0.00224 but ideally it will change with Mach Number and Altitude. SFC_Fn are the tables available in ADL record LBR (tsfc_table), P is provided by the newly created booster Power table elecPwrIn_table.

Fuel Consumption Savings Modeling

To represent equation (4) we need to make some modifications to Workspace.Power.Engines.FuelConsumption.Hybrid_electric

  1. On the Sizing tab, change the EngineDeck to LBR_electric as shown in the following figure.


Double check you're adding the model from your Workspace.

  1. Add a table block by drag and drop from Modelon.Blocks.Tables.ModelonTable2Ds and set the value table = engineDeck.elecPwrIn_table, rename this ModelonTable2Ds as elecPwrTable.

  1. Add 2 product blocks from Modelica.Blocks.Math.Product and rename them as power and fuelPowerIntake, then add a constant block from Modelica.Blocks.Sources.Constant, rename it as kp and set k =0.0025, finally add an addition block from Modelica.Blocks.Math.Add and set k1 = -1.

  2. Connect the blocks like shown in the following figure:

The power given by the elecPwrTable needs to be connected to our electrical network, we will need a signal power source to read the power and convert this to electrical current, one DCplug to create the connection of the Fuel consumption model with other models in the engine and one dcSplitter to separate positive and negative pin of the DCplug and connect the signal power.

  1. Drag and drop the models from the following paths.
  • Signal power-> Modelon.Electrical.Analog.Sources.SignalPower
  • DCplug -> Electrification.Electrical.Interfaces.DCPlug
  • dcSplitter -> Electrification.Electrical.DCSplitter
  1. Finally, connect the electrical components as shown in the next figure.

The Hybrid_electric model shows the modeling of the equation (4) and relates the fuel savings that we will obtain due to a power intake.

Engine with DC connection🔗

The new fuel consumption model Hybrid_electric created in the previous step needs to be added to our Workspace.Power.Engines.ShevellTurbofan_electric model.

  1. On the parameter browser panel, under the General tab change the fuel consumption model. Select from the drop down menu our newly created Hybrid_electric model.


Double check you're adding the model from your Workspace.

  1. Next, add a DCplug from Electrification.Electrical.Interfaces.DCPlug and connect this to the fuel consumption Hybrid_electric model.

  2. The engine model should look similar to the next figure.

  1. In order to compare hybrid versus the conventional propulsion model (ConstantAltitudeCruise) we need to parameterize the ShevellTurbofan_electric with the same sizing, i.e. sea level thrust, clearance of the engines to the ground, reference ratio for SFC, etc. On the right hand side panel, at the Sizing tab set the following parameters:
  • slsthrust = 13e3
  • wdryengineOverSlst = .Modelon.Units.Conversions.from_lbm(500)/(13e3)
  • sfcOverSfcref = 1
  • minGroundClearance = .Modelon.Units.Conversions.from_ft(2)

  1. Next, on the same sizing tab change the EngineDeck to the newly created LBR_electric and the RubGeo to LBR. Finally, select the body element and on the Mass and Inertia tab set m=0, since we are not considering the engine weight in this example.

Electrical Power🔗

We need to edit the electric distribution system Workspace.Electrical.Examples.Simple_hybrid_electric of the aircraft to include the electrification of the engines,

  1. Drag and drop a DCplug to connect the electric distribution system with the engines, a voltage source to provide the system the needed voltage for the power demanded and also a DCTripleSensor to watch on the power. The models can be found at,
  • DCplug : Electrification.Electrical.Interfaces.DCPlug
  • DCVoltage: Electrification.Electrical.DCVoltage
  • DCTripleSensor : Electrification.Electrical.DCTripleSensor
  1. Next, select the body model and at the Mass and Inertia tab change the mass of the electrical system m=100. The electric distribution system of the aircraft should look like the next figure.

For the purpose of this tutorial we have not added any battery system in order to be able to compare with the conventional system at the most fundamental level.


Power Model🔗

In the previous steps we have created the backbone elements to electrify our aircraft, now we need to implement and connect them.

  1. On the graphical interface of our power example Workspace.Power.Examples.BizJetB_electric change engine 5 and 6 to ShevellTurbofan_electric and the electric element to Simple_hybrid_electric, connect the DC plugs from the engines to the electric element.

  1. Finally we need to parameterize the power model in order to compare with our conventional propulsion example ConstantAltitudeCruise, change the fuel element by selecting it and choosing from the drop down menu VariableMass model, inspect the fuel element and select toMass model, set the vector r to {17,0,-1.7}


The toMass model sets spatial coordinates of the fuel tank, and will impact the flight dynamics.

Aircraft Model

  1. Next, at our aircraft example Workspace.Examples.BizjetB_electric change the power declaration to use our newly created power template

The Aircraft model also needs to be parameterized in order to compare with our conventional propulsion example ConstantAltitudeCruise, the main assumption here is the angle of attack being constant at L/D Maximum with the Shevell aircraft coefficients.

  1. Inspect the model to and change the force definition to Parabolic2. This will limit our aircraft movement to 2 degrees of freedom and set the coefficients as shown below.
  • S = 19.51
  • CDo = 0.026
  • K = 0.045

  1. Next in the aero model change the sensing model to PseudoAlpha and inspect it to change at dE2alpha the following variables,
  • initType = Modelica.Blocks.Types.Init.InitialState
  • y_start = (sqrt(0.026/0.045 + 0.0^2) - 0.0)/4.0 , values in the y_start formula are the coefficients used by our forces model

The following GIF shows this procedure.

Business Jet Electric model

On our Workspace.ConstantAltitudeCruise_electric select the aircraft model and on the drop down menu choose our newly created BizjetB_electric aircraft model and change the simulation time to 50000s. We now have our electrified example of a business jet.

Comparison Hybrid Electric vs Conventional🔗

Execute ConstantAltitudeCruise_electric with the same process as shown in Weight vs Range Simulation section of this tutorial, but take into account that now we have 100 kg of weight on our electrical system, therefore the variation of the fuel mass should reflect upon this in order to not exceed the MTOW.

You should come up with a table with similar values to the following:

Experiment Input: cargo mass [kg] Input : fuel mass [kg] Input : fuel mass hybrid [kg] Result : range base [km] Result : range hybrid [km]
Experiment A 500 700 600 1716.810 1926.651
Experiment B 200 1000 900 2523.277 3025.640
Experiment C 0 1000 900 2619.923 3217.187

These points can be added to a Weight vs Range plot.

We can see that by including the 100 kg electric element providing unlimited power as required by the core fan section of our engines, the aircraft will be able to travel further. In this example 300 kg of fuel-payload trade off will give 800 km of range on our base model, while the Hybrid Electric model will give 1098 km with 300 kg.


With the idealized assumptions made in this tutorial, it is clear the gain of including hybrid electric propulsion system. We save fuel and obtain range without sacrificing cargo/passengers. In real life we could expand the presented work in mainly three areas,

  • Power Factor kp : This power factor could be better modeled in function of Altitude and Mach number that relates the characteristic of fuel consumption to the power intake from our electrical system. Such characteristics can be generated empirically and implemented in the form of tables and/or control model
  • Electric System : The relation of power/mass of the electrical system can be further expanded to represent better real life examples
  • Definition of Booster Power : This definition will be a function of the application of the aircraft and the electrical system itself

In spite of the assumptions presented in this tutorial, we have laid down the foundation and created a model (with drag and drop) that will work as a backbone for more complicated simulations/modeling.

This model can be found in the IndustryExamples library under the Aerospace section.


  1. Jack D. Mattingly, William H. Heiser, David T. Pratt: Aircraft Engine Design, Second edition, American Institute of Aeronautics and Astronautics, 2002.

  2. Dieter Scholz, Ravinka Seresinhe, Ingo Staack, Craig Lawson: Fuel consumption due to shaft power off-takes from the engine, Workshop on Aircraft System Technology, Hamburg, Germany, 2013.