This class models a turbine engine.
Based on Jon Berndt's FGTurbine module. Here the term "phase" signifies the engine's mode of operation. At any given time the engine is in only one phase. At simulator startup the engine will be placed in the Trim phase in order to provide a simplified thrust value without throttle lag. When trimming is complete the engine will go to the Off phase, unless the value FGEngine::Running has been previously set to true, in which case the engine will go to the Run phase. Once an engine is in the Off phase the full starting procedure (or airstart) must be used to get it running.
Configuration File Format:
<turbine_engine name="{string}">
<milthrust unit="{LBS | N}"> {number} </milthrust>
<maxthrust unit="{LBS | N}"> {number} </maxthrust>
<bypassratio> {number} </bypassratio>
<bleed> {number} </bleed>
<tsfc> {number} </tsfc>
<atsfc> {number} </atsfc>
<ignitionn1> {number} </ignitionn1>
<ignitionn2> {number} </ignitionn2>
<idlen1> {number} </idlen1>
<idlen2> {number} </idlen2>
<n1spinup> {number} </n1spinup>
<n2spinup> {number} </n2spinup>
<n1startrate> {number} </n1startrate>
<n2startrate> {number} </n2startrate>
<n1spindown> {number} </n1spindown>
<n2spindown> {number} </n2spindown>
<maxn1> {number} </maxn1>
<maxn2> {number} </maxn2>
<augmented> {0 | 1} </augmented>
<augmethod> {0 | 1 | 2} </augmethod>
<injected> {0 | 1} </injected>
<injection-time> {number} </injection-time>
<disable-windmill> {0 | 1}</disable-windmill>
</turbine_engine>
Definition of the turbine engine configuration file parameters:
milthrust - Maximum thrust, static, at sea level.
maxthrust - Afterburning thrust, static, at sea level.
bypassratio - Ratio of bypass air flow to core air flow.
bleed - Thrust reduction factor due to losses (0.0 to 1.0).
tsfc - Thrust-specific fuel consumption at cruise, lbm/hr/lbf
atsfc - Afterburning TSFC, lbm/hr/lbf
ignitionn1 - Fan rotor rpm (% of max) while starting
ignitionn2 - Core rotor rpm (% of max) while starting
idlen1 - Fan rotor rpm (% of max) at idle
idlen2 - Core rotor rpm (% of max) at idle
n1spinup - Fan rotor rpm starter acceleration to ignitionn1 value (default 1.0)
n2spinup - Core rotor rpm starter acceleration to ignitionn2 value (default 3.0)
n1startrate - Fan rotor rpm time taken to accelerate from ignitionn1 to idlen1 value (default 1.4)
n2startrate - Core rotor rpm time taken to accelerate to ignitionn2 idlen2 value (default 2.0)
n1spindown - Factor used in calculation for fan rotor time to spool down to zero (default 2.0)
n2spindown - Factor used in calculation for core rotor time to spool down to zero (default 2.0)
maxn1 - Fan rotor rpm (% of max) at full throttle
maxn2 - Core rotor rpm (% of max) at full throttle
augmented
0 = afterburner not installed
1 = afterburner installed
augmethod
0 = afterburner activated by property /engines/engine[n]/augmentation
1 = afterburner activated by pushing throttle above 99% position
2 = throttle range is expanded in the FCS, and values above 1.0 are afterburner range
injected
0 = Water injection not installed
1 = Water injection installed
injection-time - Time, in seconds, of water injection duration
InjN1increment - % increase in N1 when injection is taking place
InjN2increment - % increase in N2 when injection is taking place
disable-windmill - flag that disables engine windmilling when off if true
NOTES:
Bypass ratio is used only to estimate engine acceleration time. The
effect of bypass ratio on engine efficiency is already included in
the TSFC value. Feel free to set this parameter (even for turbojets) to
whatever value gives a desired spool-up rate. Default value is 0.
The bleed factor is multiplied by thrust to give a resulting thrust
after losses. This can represent losses due to bleed, or any other cause.
Default value is 0. A common value would be 0.04.
Nozzle position, for variable area exhaust nozzles, is provided for users
needing to drive a nozzle gauge or animate a virtual nozzle.
This model can only be used with the "direct" thruster. See the file:
/engine/direct.xml
- Author
- David P. Culp
Definition at line 173 of file FGTurbine.h.
|
| enum | phaseType {
tpOff
, tpRun
, tpSpinUp
, tpStart
,
tpStall
, tpSeize
, tpTrim
} |
| |
| enum | EngineType {
etUnknown
, etRocket
, etPiston
, etTurbine
,
etTurboprop
, etElectric
} |
| |
| enum | { eL = 1
, eM
, eN
} |
| | Moments L, M, N. More...
|
| |
| enum | { eP = 1
, eQ
, eR
} |
| | Rates P, Q, R. More...
|
| |
| enum | { eU = 1
, eV
, eW
} |
| | Velocities U, V, W. More...
|
| |
| enum | { eX = 1
, eY
, eZ
} |
| | Positions X, Y, Z. More...
|
| |
| enum | { ePhi = 1
, eTht
, ePsi
} |
| | Euler angles Phi, Theta, Psi. More...
|
| |
| enum | { eDrag = 1
, eSide
, eLift
} |
| | Stability axis forces, Drag, Side force, Lift. More...
|
| |
| enum | { eRoll = 1
, ePitch
, eYaw
} |
| | Local frame orientation Roll, Pitch, Yaw. More...
|
| |
| enum | { eNorth = 1
, eEast
, eDown
} |
| | Local frame position North, East, Down. More...
|
| |
| enum | { eLat = 1
, eLong
, eRad
} |
| | Locations Radius, Latitude, Longitude. More...
|
| |
| enum | {
inNone = 0
, inDegrees
, inRadians
, inMeters
,
inFeet
} |
| | Conversion specifiers. More...
|
| |
|
| | FGTurbine (FGFDMExec *Executive, Element *el, int engine_number, struct Inputs &input) |
| | Constructor.
|
| |
| double | CalcFuelNeed (void) |
| | The fuel need is calculated based on power levels and flow rate for that power level.
|
| |
| void | Calculate (void) |
| | Calculates the thrust of the engine, and other engine functions.
|
| |
| bool | GetAugmentation (void) const |
| |
| double | GetBleedDemand (void) const |
| |
| bool | GetCutoff (void) const |
| |
| double | GetEGT (void) const |
| |
| std::string | GetEngineLabels (const std::string &delimiter) |
| |
| std::string | GetEngineValues (const std::string &delimiter) |
| |
| double | GetEPR (void) const |
| |
| bool | GetFire (void) const |
| |
| int | GetIgnition (void) const |
| |
| bool | GetInjection (void) const |
| |
| double | GetInjectionTimer (void) const |
| |
| double | GetInjN1increment (void) const |
| |
| double | GetInjN2increment (void) const |
| |
| double | GetInjWaterNorm (void) const |
| |
| double | GetInlet (void) const |
| |
| double | GetMaxN1 (void) const |
| |
| double | GetMaxN2 (void) const |
| |
| double | GetN1 (void) const |
| |
| double | GetN2 (void) const |
| |
| double | GetNozzle (void) const |
| |
| double | getOilPressure_psi () const |
| |
| double | getOilTemp_degF (void) |
| |
| bool | GetOvertemp (void) const |
| |
| phaseType | GetPhase (void) |
| |
| double | GetPowerAvailable (void) const |
| |
| bool | GetReversed (void) const |
| |
| int | InitRunning (void) |
| |
| void | ResetToIC (void) |
| | Resets the Engine parameters to the initial conditions.
|
| |
| double | Seek (double *var, double target, double accel, double decel) |
| | A lag filter.
|
| |
| void | SetAugmentation (bool augmentation) |
| |
| void | SetBleedDemand (double bleedDemand) |
| |
| void | SetCutoff (bool cutoff) |
| |
| void | SetEPR (double epr) |
| |
| void | SetIgnition (int ignition) |
| |
| void | SetInjection (bool injection) |
| |
| void | SetInjectionTimer (double injtimer) |
| |
| void | SetInjN1increment (double injN1inc) |
| |
| void | SetInjN2increment (double injN2inc) |
| |
| void | SetInjWaterNorm (double injwater) |
| |
| void | SetMaxN1 (double maxn1) |
| |
| void | SetMaxN2 (double maxn2) |
| |
| void | SetPhase (phaseType p) |
| |
| void | SetReverse (bool reversed) |
| |
| | FGEngine (int engine_number, struct Inputs &input) |
| |
| virtual double | CalcOxidizerNeed (void) |
| |
| virtual const FGColumnVector3 & | GetBodyForces (void) |
| |
| virtual bool | GetCranking (void) const |
| |
| virtual double | getFuelFlow_gph () const |
| |
| virtual double | getFuelFlow_pph () const |
| |
| virtual double | GetFuelFlowRate (void) const |
| |
| virtual double | GetFuelFlowRateGPH (void) const |
| |
| virtual double | GetFuelUsedLbs (void) const |
| |
| virtual const FGColumnVector3 & | GetMoments (void) |
| |
| virtual const std::string & | GetName (void) const |
| |
| size_t | GetNumSourceTanks () const |
| |
| virtual bool | GetRunning (void) const |
| |
| unsigned int | GetSourceTank (unsigned int i) const |
| |
| virtual bool | GetStarter (void) const |
| |
| virtual bool | GetStarved (void) const |
| |
| virtual double | GetThrottleMax (void) const |
| |
| virtual double | GetThrottleMin (void) const |
| |
| virtual double | GetThrust (void) const |
| |
| FGThruster * | GetThruster (void) const |
| |
| EngineType | GetType (void) const |
| |
| void | LoadThruster (FGFDMExec *exec, Element *el) |
| |
| void | LoadThrusterInputs () |
| |
| virtual void | SetFuelDensity (double d) |
| |
| virtual void | SetFuelFreeze (bool f) |
| |
| virtual void | SetName (const std::string &name) |
| |
| virtual void | SetRunning (bool bb) |
| |
| virtual void | SetStarter (bool s) |
| |
| virtual void | SetStarved (bool tt) |
| |
| virtual void | SetStarved (void) |
| |
| std::string | GetFunctionStrings (const std::string &delimeter) const |
| | Gets the strings for the current set of functions.
|
| |
| std::string | GetFunctionValues (const std::string &delimeter) const |
| | Gets the function values.
|
| |
| std::shared_ptr< FGFunction > | GetPreFunction (const std::string &name) |
| | Get one of the "pre" function.
|
| |
| bool | Load (Element *el, FGFDMExec *fdmex, std::string prefix="") |
| |
| void | PostLoad (Element *el, FGFDMExec *fdmex, std::string prefix="") |
| |
| void | PreLoad (Element *el, FGFDMExec *fdmex, std::string prefix="") |
| |
| void | RunPostFunctions (void) |
| |
| void | RunPreFunctions (void) |
| |
| | FGJSBBase () |
| | Constructor for FGJSBBase.
|
| |
| virtual | ~FGJSBBase () |
| | Destructor for FGJSBBase.
|
| |