WOLFRAM SYSTEM MODELER
ConventionalPropulsionInterface for conventional propulsion model 
SystemModel["Aircraft.Physical.FixedWing.Parts.Propulsions.Interfaces.ConventionalPropulsion"]
This partial model models a conventional propulsion system with engines mounted on the wings, fuselage or vertical tail, and this extends the PropulsionBase partial model. The complete conventional propulsion system models, namely the TurbofanPropulsion, TurbojetPropulsion, TurbopropPropulsion, PistonPropulsion and ElectricPropulsion models extend this partial model.
In this partial model, the position and orientation of the engine are defined. Additionally, the model for the energy storage is included, and the fuel or energy consumption of all engines is summed here to feed it as an input for the energy storage model.
The constraints of the conventional propulsion models are:
The diagram view of this model shows the numbering convention of the engines that is used throughout the library.
Figure 1 shows the parameters in the Propulsion tab that are used to define the position and orientation of the engines. The number of the engines is defined in the AircraftBase model. Depending on the number of engines and whether the engines are mounted on the main wing or on the fuselage, the editing of the inapplicable parameters will be disabled. For example, for an aircraft with two engines mounted on the main wing, the editing of the parameters xEng, yEngOuter, zTauMid and kappaMid is disabled.
If engines are mounted on the main wing (wingMounted = true), their location along the body x axis is calculated based on the wing geometry, whereas the position along the body y and z axes are defined by the yEngInner / yEngOuter and zTau parameters, respectively. For an aircraft with four engines mounted on the main wing, the zTau parameter refers to the average z coordinate of the inner and outer engines, and the z coordinates of the individual engines are solved based on the main wing dihedral angle.
If engines are mounted on the fuselage (wingMounted = false), no calculations are performed for solving for their positions, but they are defined by the xEng, yEngInner / yEngOuter and zTau parameters.
If the number of engines is 3, the position of the middle engine (#1) is assumed to be on the vertical tail, and its position on body x axis is solved based on the vertical tail geometry, and its location on the body z axis is defined by the zTauMid parameter.
kappa and kappaMid parameters are used to define the engine thrust line angle, i.e. the orientation of the engines around the body y axis.
Figure 1: Input parameters for conventional propulsion system model to define the position and orientation of the engines.
In the Derived Properties tab, all equations calculating the position of each engine can be bypassed by entering the engine locations directly to the respective parameter input fields. A surface roughness height to be used for all engine nacelles can be entered at the Aerodynamic Coefficients tab. By default, the global surface roughness height defined in the AircraftBase model is used for all nacelles.
The remaining parameters listed in the Propagated Properties tab are propagated from the AircraftBase as the propulsion system is compiled in the propulsion system model and thus they can and should be left unchanged.
This partial model also has the equations to solve for the total mass, center of mass location, inertia tensor and drag force of the entire propulsion system, which are also used by the AircraftBase model to solve for the mass properties and drag force of the entire aircraft model.
weightEst 
Value: Type: Boolean Description: true, if weight estimation method is used for masses, center of mass location and inertia tensor 

bWing 
Value: Type: Length (m) Description: Main wing span 
SrefWing 
Value: Type: Area (m²) Description: Main wing reference area 
nEng 
Value: Type: Integer Description: Number of engines 
CADshapes 
Value: Type: Boolean Description: true, if external CAD files are used for animation 
T0 
Value: Type: Temperature (K) Description: Temperature at sealevel 
rho0 
Value: Type: Density (kg/m³) Description: Air density at sealevel 
p0 
Value: Type: Pressure (Pa) Description: Static pressure at sealevel 
gammaAir 
Value: Type: Real Description: Adiabatic index for air 
convProp 
Value: true Type: Boolean Description: =true, if conventional propulsion 
kSkinNac 
Value: Type: Length (m) Description: Nacelle surface roughness height 
xCMdry 
Value: Type: Length (m) Description: Aircraft center of mass xcoordinate w.r.t. fuselage reference point (with total mass for electric aircraft and gliders, positive xaxis towards nose) 
wFus 
Value: Type: Length (m) Description: Fuselage maximum width 
hFus 
Value: Type: Length (m) Description: Fuselage maximum height 
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 
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 
xWingAC 
Value: Type: Length (m) Description: Main wing aerodynamic center from wing leading edge at mean chord (positive xaxis towards nose) 
yWingAC 
Value: Type: Length (m) Description: Main wing aerodynamic center from fuselage centerline (ycoordinate w.r.t. fuselage centerline of mean chord) 
lambdaWingLE 
Value: Type: Angle (rad) Description: Main wing leading edge sweep angle 
lambdaWingHC 
Value: Type: Angle (rad) Description: Main wing halfchord sweep angle 
bVT 
Value: Type: Length (m) Description: Vertical tail span 
lVTcm 
Value: Type: Length (m) Description: Vertical tail arm length (from aircraft center of mass to vertical tail 1/4 chord) 
engineType 
Value: Type: Integer Description: Type of engine (0 = piston, 1 = turboprop, 2 = turbojet, 3 = turbofan, 4 = electric) 
wingMounted 
Value: Type: Boolean Description: true, if engines are mounted on the main wing 
xEng 
Value: Type: Length (m) Description: Fuselage mounted engine / Single engine rear end xlocation from fuselage reference point (positive xaxis towards nose) 
yEngInner 
Value: Type: Length (m) Description: Inner engines ycoordinate w.r.t. fuselage centerline 
yEngOuter 
Value: Type: Length (m) Description: Outer engines ycoordinate w.r.t. fuselage centerline 
zTau 
Value: Type: Length (m) Description: Thrust line zcoordinate w.r.t. fuselage reference point for side (#25) engines and single engine 
zTauMid 
Value: Type: Length (m) Description: Thrust line zcoordinate w.r.t. fuselage reference point for middle (#1) engine 
kappa 
Value: Type: Angle (rad) Description: Engine thrust line angle for side (#25) engines and single engine 
kappaMid 
Value: Type: Angle (rad) Description: Engine thrust line angle for middle (#1) engine 
rEng1 
Value: if nEng == 3 then {xCMdry  lVTcm  bVT * (3 / 4), 0, zTauMid} else if nEng == 1 then {xEng, 0, zTau} else {0, 0, 0} Type: Length[3] (m) Description: Location of engine 1 rear end w.r.t. fuselage reference point 
rEng2 
Value: if (nEng == 2 or nEng == 3 or nEng == 4) and not wingMounted then {xEng, yEngInner, zTau} else if (nEng == 2 or nEng == 4) and wingMounted then {xWingRootLE  cWingRoot / 2  tan(lambdaWingHC) * (yEngInner  wFus / 2), yEngInner, zTau + sign(yEngOuter) * tan(gammaWing) * (yEngOuter  yEngInner) / 2} else if nEng == 3 and wingMounted then {xWingRootLE  cWingRoot / 2  tan(lambdaWingHC) * (yEngInner  wFus / 2), yEngInner, zTau} else {0, 0, 0} Type: Length[3] (m) Description: Location of engine 2 rear end w.r.t. fuselage reference point 
rEng3 
Value: if nEng == 3 and wingMounted then {xWingRootLE  cWingRoot / 2  tan(lambdaWingHC) * (yEngInner  wFus / 2), yEngInner, zTau} else if (nEng == 2 or nEng == 4) and wingMounted then {xWingRootLE  cWingRoot / 2  tan(lambdaWingHC) * (yEngInner  wFus / 2), yEngInner, zTau + sign(yEngOuter) * tan(gammaWing) * (yEngOuter  yEngInner) / 2} else if (nEng == 2 or nEng == 3 or nEng == 4) and not wingMounted then {xEng, yEngInner, zTau} else {0, 0, 0} Type: Length[3] (m) Description: Location of engine 3 rear end w.r.t. fuselage reference point 
rEng4 
Value: if nEng == 4 and not wingMounted then {xEng, yEngOuter, zTau} else if nEng == 4 and wingMounted then {xWingRootLE  cWingRoot / 2  tan(lambdaWingHC) * (yEngOuter  wFus / 2), yEngOuter, zTau  tan(gammaWing) * (yEngOuter  yEngInner) / 2} else {0, 0, 0} Type: Length[3] (m) Description: Location of engine 4 rear end w.r.t. fuselage reference point 
rEng5 
Value: if nEng == 4 and wingMounted then {xWingRootLE  cWingRoot / 2  tan(lambdaWingHC) * (yEngOuter  wFus / 2), yEngOuter, zTau  tan(gammaWing) * (yEngOuter  yEngInner) / 2} else if nEng == 4 and not wingMounted then {xEng, yEngOuter, zTau} else {0, 0, 0} Type: Length[3] (m) Description: Location of engine 5 rear end w.r.t. fuselage reference point 
kappaEng1 
Value: if nEng == 1 then kappa / Modelica.Constants.pi * 180 else if nEng == 3 then kappaMid / Modelica.Constants.pi * 180 else 0 Type: Angle (rad) Description: Engine thrust line angle for Engine 1 
flightData 
Type: FlightData Description: Global flight data variables 

aircraftRP 
Type: Frame_b Description: Connector to aircraft reference point 


deltaThrotCmd 
Type: RealInput[5] Description: Engine throttle commands 
flightData 
Type: FlightData Description: Global flight data variables 


energyStorage 
Type: EnergyStorage Description: Model for energy storage 

rotEng2 
Type: FixedRotation Description: Engine 2 thrust line angle (enabled if number of engines = 2 or 3 or 4) 

rotEng3 
Type: FixedRotation Description: Engine 3 thrust line angle (enabled if number of engines = 2 or 3 or 4) 

rotEng4 
Type: FixedRotation Description: Engine 4 thrust line angle (enabled if number of engines = 4) 

rotEng5 
Type: FixedRotation Description: Engine 5 thrust line angle (enabled if number of engines = 4) 

translEng1 
Type: FixedTranslation Description: Location of engine 1 rear end w.r.t. fuselage reference point 

translEng2 
Type: FixedTranslation Description: Location of engine 2 rear end w.r.t. fuselage reference point 

translEng3 
Type: FixedTranslation Description: Location of engine 3 rear end w.r.t. fuselage reference point 

translEng4 
Type: FixedTranslation Description: Location of engine 4 rear end w.r.t. fuselage reference point 

translEng5 
Type: FixedTranslation Description: Location of engine 5 rear end w.r.t. fuselage reference point 

engine1 
Type: Engine Description: Model for engine 1 

engine2 
Type: Engine 

engine3 
Type: Engine 

engine4 
Type: Engine 

engine5 
Type: Engine 

sumConsumption 
Type: Sum Description: Summing of fuel / battery energy consumption 

rotEng1 
Type: FixedRotation Description: Engine 1 thrust line angle 
Aircraft.Physical.FixedWing.Interfaces Interface for a complete aircraft model 
Aircraft.Physical.FixedWing.Parts.Propulsions Electric propulsion (model specific parameters not set) 

Aircraft.Physical.FixedWing.Parts.Propulsions Piston propulsion (model specific parameters not set) 

Aircraft.Physical.FixedWing.Parts.Propulsions Turboprop propulsion (model specific parameters not set) 

Aircraft.Physical.FixedWing.Parts.Propulsions Turbojet propulsion (model specific parameters not set) 

Aircraft.Physical.FixedWing.Parts.Propulsions Turbofan propulsion (model specific parameters not set) 