WOLFRAM SYSTEM MODELER
TankSystemModel for fuel tank system 
SystemModel["Aircraft.Physical.FixedWing.Parts.Propulsions.EnergyStorages.TankSystem"]
This model extends the EnergyStorageBase model and calculates the size of the fuel tanks and the forces and torques acting on them as their masses change with the fuel consumption. This model is included in all propulsion system models with internal combustion engines, i.e. the TurbofanPropulsion, TurbojetPropulsion, TurbopropPropulsion and PistonPropulsion models.
The tank parameters shown in Figure 1 are declared on the propulsion system level and propagated from there to this model. The tank system consists of three separate tanks, namely the two wing tanks on both sides of the main wing and the center tank in the fuselage. The user may choose to include either or both tank types inside the aircraft with the ctrTank and wingTank parameters.
The size of all tanks can be further adjusted downward from the estimated maximum possible tanks volume based on the wing and fuselage geometry with the tankFudgeFactor parameter. Furthermore, the initialFuel parameter allows the fueling level to easily be set as a fraction of the fuel capacity after the effect by the tankFudgeFactor parameter is considered.
The mass of the fuel inside the tanks is estimated with the estimated fuel tank volumes and the given fuel density regardless of whether the weight estimation method is used or not. However, if the exact volume of the fuel tanks is known for an aircraft, the equations estimating their values can be bypassed by entering the known values in the Estimated Fuel System Properties tab. Similarly, any known fuel tank center of mass location can be entered in the Estimated Fuel System Properties tab.
Figure 1: Tank parameters.
All other parameters of this model are propagated down from the AircraftBase model, and they are listed in the Propagated Properties tab. Thus, their values can and should be left unchanged in this model.
The maximum volumes of the wing and center fuel tanks are estimated with empirical relationships between the tank volumes and the geometry of the main wing and fuselage. The relationships are further described in section 3.4.5 in Reference [1]. The mass of the tanks only consists of the fuel mass inside them, and no mass is considered for the structure of the tanks. Thus, the mass of the tanks initially is the product of the estimated maximum fuel tank volume, the tankFudgeFactor parameter, the initialFuel parameter and the given fuel density (rhoFuel). As the fuel is consumed, the mass of the consumed fuel is subtracted from the initial tank masses of the center and wing tanks by adding a factor representing the share of the respective tank's capacity of the total fuel system capacity
.
Thus, the ratios between the tank masses remain constant, and eventually all tanks will run out of fuel simultaneously. The mass of the consumed fuel is fed through the uConsumption port.
The center of mass location is solved individually for all three tanks, and they are assumed to remain constant even when the fuel is consumed. The derivation of the tank center of mass locations is described in detail in section 3.5.4 in Reference [1]. The fixed translations and rotations in this model are applied such that they generate translations of the tank center of mass locations with respect to the fuselage reference point, defined in the AircraftBase model.
The moments of inertia are also solved individually for all three tanks, and they change their values with the changing fuel tank masses. The complete calculations of the fuel tank moments of inertia are described in section 3.6.2 in Reference [1].
As the Modelica Standard Library component for 6DOF body only works with constant mass and inertia tensor, this library also includes a modified version of that component, the VariableMassBody component that calculates the Newton—Euler equations for a rigid body with variable mass and inertia tensor, which is used here to model the tanks.
The mass, center of mass and the inertia tensor of the total tank system are also calculated in this model, and they are used in the AircraftBase model to calculate the mass properties if the entire aircraft model. The variables for the tank system mass properties are declared in the EnergyStorageBase base class.
This model also calculates the total fuel burn rate of all engines combined (fuelBurnRate) and the total energy contained in the remaining fuel (Ef). In the EnergyStorageBase model, the first time derivative of the Ef value is calculated, which is the input power to the propulsion system (Pf).
[1] EräEsko, N. (2022). "Development and Use of System Modeler 6DOF Flight Mechanics Model in Aircraft Conceptual Design."
Available at: modelica://Aircraft/Resources/Documents/EraeEskoThesis.pdf.
weightEst 
Value: Type: Boolean Description: true, if weight estimation method is used for masses, center of mass location and inertia tensor 

wFus 
Value: Type: Length (m) Description: Fuselage maximum width 
engineType 
Value: Type: Integer Description: Type of engine (0 = piston, 1 = turboprop, 2 = turbojet, 3 = turbofan, 4 = electric) 
VctrTank 
Value: if ctrTank then 2111 / 2750 * cWingRoot * tWingRoot * wFus else 0 Type: Volume (m³) Description: Center fuel tank volume 
VwingTank 
Value: if wingTank then 0.54 * (SrefWing ^ 2 * tWingRoot * (1 + TRwing * sqrt(tauWing) + TRwing ^ 2 * tauWing)) / (bWing * cWingRoot * (1 + TRwing) ^ 2) else 0 Type: Volume (m³) Description: Wing fuel tank volume (both wings) 
rCMctrTank 
Value: {xWingRootLE  cWingRoot / 2, 0, zWingRootLE} Type: Length[3] (m) Description: Center fuel tank center of mass coordinates w.r.t. fuselage reference point 
rCMwingTankR 
Value: if wingTank then translWing.r + {sxWingTank, syWingTank * cos(gammaWing), tan(gammaWing) * syWingTank * cos(gammaWing)} else {0, 0, 0} Type: Length[3] (m) Description: Right wing fuel tank center of mass coordinates w.r.t. fuselage reference point 
rCMwingTankL 
Value: if wingTank then translWing.r + {sxWingTank, syWingTank * cos(gammaWing), tan(gammaWing) * syWingTank * cos(gammaWing)} else {0, 0, 0} Type: Length[3] (m) Description: Left wing fuel tank center of mass coordinates w.r.t. fuselage reference point 
initialMctrTank 
Value: if weightEst then tankFudgeFactor * initialFuel * (VctrTank + VwingTank) * rhoFuel * (VctrTank / (VctrTank + VwingTank)) else initialMfuel * (VctrTank / (VctrTank + VwingTank)) Type: Mass (kg) Description: Initial fuel mass at center tank 
initialMwingTank 
Value: if weightEst then tankFudgeFactor * initialFuel * (VctrTank + VwingTank) * rhoFuel * (0.5 * VwingTank / (VctrTank + VwingTank)) else initialMfuel * (0.5 * VwingTank / (VctrTank + VwingTank)) Type: Mass (kg) Description: Initial fuel mass at one wing tank 
hWingTank 
Value: (0.7 * bWing  wFus) / (2 * cos(gammaWing)) Type: Length (m) Description: Parameter of trapezoidal wing fuel tank 
aWingTank 
Value: cWingRoot + 0.96 * hWingTank * (cWingTip  cWingRoot) / (bWing  wFus) Type: Length (m) Description: Parameter of trapezoidal wing fuel tank 
bWingTank 
Value: 0.48 * cWingRoot Type: Length (m) Description: Parameter of trapezoidal wing fuel tank 
cWingTank 
Value: 0.3 * hWingTank * (cWingTip  cWingRoot) / (bWing  wFus) + hWingTank * lambdaWingLE Type: Length (m) Description: Parameter of trapezoidal wing fuel tank 
sxWingTank 
Value: 0.25 * cWingRoot  lambdaWingLE * wFus / 2  0.15 * cWingRoot  (2 * aWingTank * cWingTank + aWingTank ^ 2 + cWingTank * bWingTank + aWingTank * bWingTank + bWingTank ^ 2) / (3 * (aWingTank + bWingTank)) Type: Length (m) Description: Parameter of trapezoidal wing fuel tank 
syWingTank 
Value: wFus / (2 * cos(gammaWing)) + hWingTank / 3 * (2 * aWingTank + bWingTank) / (aWingTank + bWingTank) Type: Length (m) Description: Parameter of trapezoidal wing fuel tank 
initialMfuel 
Value: Type: Mass (kg) Description: Initial fuel mass 
bWing 
Value: Type: Length (m) Description: Main wing span 
cWingRoot 
Value: Type: Length (m) Description: Main wing root chord (where wing intersects with fuselage) 
cWingTip 
Value: Type: Length (m) Description: Main wing tip chord 
tWingRoot 
Value: Type: Length (m) Description: Main wing root thickness 
tWingTip 
Value: Type: Length (m) Description: Main wing tip thickness 
xWingRootLE 
Value: Type: Length (m) Description: Main wing root leading edge xcoordinate w.r.t. fuselage reference point (positive xaxis towards nose) 
zWingRootLE 
Value: Type: Length (m) Description: Main wing root leading edge zcoordinate w.r.t. fuselage reference point (positive zaxis towards ground) 
lambdaWing 
Value: Type: Angle (rad) Description: Main wing sweep angle at 1/4 chord 
gammaWing 
Value: Type: Angle (rad) Description: Main wing dihedral angle 
iWing 
Value: Type: Angle (rad) Description: Main wing incidence angle 
SrefWing 
Value: Type: Area (m²) Description: Main wing reference area 
TRwing 
Value: Type: Real Description: Main wing taper ratio 
tauWing 
Value: Type: Real Description: Ratio of thicknesstochord ratios at the main wing tip and root 
lambdaWingLE 
Value: Type: Angle (rad) Description: Main wing leading edge sweep angle 
rhoFuel 
Value: Type: Density (kg/m³) Description: Fuel density 
tankFudgeFactor 
Value: Type: Real Description: Fudge factor to shrink the tank size from the maximum possible tank volume 
initialFuel 
Value: Type: Real Description: Initial fuel volume as a fraction of the fuel capacity 
eFuel 
Value: Type: SpecificEnergy (J/kg) Description: Fuel energy density 
ctrTank 
Value: Type: Boolean Description: true, if aircraft is fitted with center tank 
wingTank 
Value: Type: Boolean Description: true, if aircraft is fitted with wing tanks 
xEf 
Type: Real Description: State of energy storage energy 

translCtrTank 
Type: FixedTranslation Description: Position of center tank w.r.t fuselage reference point 


translWing 
Type: FixedTranslation Description: Position of the main wing root quarter chord (inside fuselage) w.r.t fuselage reference point 

rotRightWing 
Type: FixedRotation Description: Rotation of right wing around dihedral and wing incidence angle 

rotLeftWing 
Type: FixedRotation Description: Rotation of left wing around dihedral and wing incidence angle 

translWingTankR 
Type: FixedTranslation Description: Position of the right wing fuel tank center of mass w.r.t. wing root quarter chord (inside fuselage) 

translWingTankL 
Type: FixedTranslation Description: Position of the left wing fuel tank center of mass w.r.t. wing root quarter chord (inside fuselage) 

bodyWingTankL 
Type: VariableMassBody Description: Mass and inertia of left wing tank 

bodyWingTankR 
Type: VariableMassBody Description: Mass and inertia of right wing tank 

bodyCtrTank 
Type: VariableMassBody Description: Mass and inertia of center tank 
Aircraft.Physical.FixedWing.HS121Trident Propulsion model for Hawker Siddeley HS121 Trident 3B 