|
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.
|
|
| ~FGTurbine () |
| Destructor.
|
|
void | Calculate (void) |
| Calculates the thrust of the engine, and other engine functions.
|
|
double | CalcFuelNeed (void) |
| The fuel need is calculated based on power levels and flow rate for that power level.
|
|
double | GetPowerAvailable (void) |
|
double | Seek (double *var, double target, double accel, double decel) |
| A lag filter.
|
|
phaseType | GetPhase (void) |
|
bool | GetOvertemp (void) const |
|
bool | GetInjection (void) const |
|
bool | GetFire (void) const |
|
bool | GetAugmentation (void) const |
|
bool | GetReversed (void) const |
|
bool | GetCutoff (void) const |
|
int | GetIgnition (void) const |
|
double | GetInlet (void) const |
|
double | GetNozzle (void) const |
|
double | GetBleedDemand (void) const |
|
double | GetN1 (void) const |
|
double | GetN2 (void) const |
|
double | GetEPR (void) const |
|
double | GetEGT (void) const |
|
double | GetMaxN1 (void) const |
|
double | GetMaxN2 (void) const |
|
double | getOilPressure_psi () const |
|
double | getOilTemp_degF (void) |
|
double | GetInjectionTimer (void) const |
|
double | GetInjWaterNorm (void) const |
|
double | GetInjN1increment (void) const |
|
double | GetInjN2increment (void) const |
|
void | SetInjection (bool injection) |
|
void | SetIgnition (int ignition) |
|
void | SetAugmentation (bool augmentation) |
|
void | SetPhase (phaseType p) |
|
void | SetEPR (double epr) |
|
void | SetBleedDemand (double bleedDemand) |
|
void | SetReverse (bool reversed) |
|
void | SetCutoff (bool cutoff) |
|
void | SetMaxN1 (double maxn1) |
|
void | SetMaxN2 (double maxn2) |
|
void | SetInjectionTimer (double injtimer) |
|
void | SetInjWaterNorm (double injwater) |
|
void | SetInjN1increment (double injN1inc) |
|
void | SetInjN2increment (double injN2inc) |
|
int | InitRunning (void) |
|
void | ResetToIC (void) |
| Resets the Engine parameters to the initial conditions.
|
|
std::string | GetEngineLabels (const std::string &delimiter) |
|
std::string | GetEngineValues (const std::string &delimiter) |
|
| FGEngine (int engine_number, struct Inputs &input) |
|
| ~FGEngine () override |
|
EngineType | GetType (void) const |
|
virtual const std::string & | GetName (void) const |
|
virtual double | GetThrottleMin (void) const |
|
virtual double | GetThrottleMax (void) const |
|
virtual bool | GetStarter (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 bool | GetStarved (void) const |
|
virtual bool | GetRunning (void) const |
|
virtual bool | GetCranking (void) const |
|
virtual void | SetStarved (bool tt) |
|
virtual void | SetStarved (void) |
|
virtual void | SetRunning (bool bb) |
|
virtual void | SetName (const std::string &name) |
|
virtual void | SetFuelFreeze (bool f) |
|
virtual void | SetFuelDensity (double d) |
|
virtual void | SetStarter (bool s) |
|
virtual double | GetThrust (void) const |
|
virtual double | CalcOxidizerNeed (void) |
|
virtual const FGColumnVector3 & | GetBodyForces (void) |
|
virtual const FGColumnVector3 & | GetMoments (void) |
|
void | LoadThruster (FGFDMExec *exec, Element *el) |
|
FGThruster * | GetThruster (void) const |
|
unsigned int | GetSourceTank (unsigned int i) const |
|
size_t | GetNumSourceTanks () const |
|
void | LoadThrusterInputs () |
|
virtual | ~FGModelFunctions () |
|
void | RunPreFunctions (void) |
|
void | RunPostFunctions (void) |
|
bool | Load (Element *el, FGFDMExec *fdmex, std::string prefix="") |
|
void | PreLoad (Element *el, FGFDMExec *fdmex, std::string prefix="") |
|
void | PostLoad (Element *el, FGFDMExec *fdmex, std::string prefix="") |
|
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.
|
|
FGFunction * | GetPreFunction (const std::string &name) |
| Get one of the "pre" function.
|
|
| FGJSBBase () |
| Constructor for FGJSBBase.
|
|
virtual | ~FGJSBBase () |
| Destructor for FGJSBBase.
|
|
void | PutMessage (const Message &msg) |
| Places a Message structure on the Message queue.
|
|
void | PutMessage (const std::string &text) |
| Creates a message with the given text and places it on the queue.
|
|
void | PutMessage (const std::string &text, bool bVal) |
| Creates a message with the given text and boolean value and places it on the queue.
|
|
void | PutMessage (const std::string &text, int iVal) |
| Creates a message with the given text and integer value and places it on the queue.
|
|
void | PutMessage (const std::string &text, double dVal) |
| Creates a message with the given text and double value and places it on the queue.
|
|
int | SomeMessages (void) const |
| Reads the message on the queue (but does not delete it).
|
|
void | ProcessMessage (void) |
| Reads the message on the queue and removes it from the queue.
|
|
Message * | ProcessNextMessage (void) |
| Reads the next message on the queue and removes it from the queue.
|
|
void | disableHighLighting (void) |
| Disables highlighting in the console output.
|
|
|
static const std::string & | GetVersion (void) |
| Returns the version number of JSBSim.
|
|
static constexpr double | KelvinToFahrenheit (double kelvin) |
| Converts from degrees Kelvin to degrees Fahrenheit.
|
|
static constexpr double | CelsiusToRankine (double celsius) |
| Converts from degrees Celsius to degrees Rankine.
|
|
static constexpr double | RankineToCelsius (double rankine) |
| Converts from degrees Rankine to degrees Celsius.
|
|
static constexpr double | KelvinToRankine (double kelvin) |
| Converts from degrees Kelvin to degrees Rankine.
|
|
static constexpr double | RankineToKelvin (double rankine) |
| Converts from degrees Rankine to degrees Kelvin.
|
|
static constexpr double | FahrenheitToCelsius (double fahrenheit) |
| Converts from degrees Fahrenheit to degrees Celsius.
|
|
static constexpr double | CelsiusToFahrenheit (double celsius) |
| Converts from degrees Celsius to degrees Fahrenheit.
|
|
static constexpr double | CelsiusToKelvin (double celsius) |
| Converts from degrees Celsius to degrees Kelvin.
|
|
static constexpr double | KelvinToCelsius (double kelvin) |
| Converts from degrees Kelvin to degrees Celsius.
|
|
static constexpr double | FeetToMeters (double measure) |
| Converts from feet to meters.
|
|
static double | PitotTotalPressure (double mach, double p) |
| Compute the total pressure in front of the Pitot tube.
|
|
static double | MachFromImpactPressure (double qc, double p) |
| Compute the Mach number from the differential pressure (qc) and the static pressure.
|
|
static double | VcalibratedFromMach (double mach, double p) |
| Calculate the calibrated airspeed from the Mach number.
|
|
static double | MachFromVcalibrated (double vcas, double p) |
| Calculate the Mach number from the calibrated airspeed.Based on the formulas in the US Air Force Aircraft Performance Flight Testing Manual (AFFTC-TIH-99-01).
|
|
static bool | EqualToRoundoff (double a, double b) |
| Finite precision comparison.
|
|
static bool | EqualToRoundoff (float a, float b) |
| Finite precision comparison.
|
|
static bool | EqualToRoundoff (float a, double b) |
| Finite precision comparison.
|
|
static bool | EqualToRoundoff (double a, float b) |
| Finite precision comparison.
|
|
static constexpr double | Constrain (double min, double value, double max) |
| Constrain a value between a minimum and a maximum value.
|
|
static constexpr double | sign (double num) |
|
static double | GaussianRandomNumber (void) |
|
struct Inputs & | in |
|
static char | highint [5] = {27, '[', '1', 'm', '\0' } |
| highlights text
|
|
static char | halfint [5] = {27, '[', '2', 'm', '\0' } |
| low intensity text
|
|
static char | normint [6] = {27, '[', '2', '2', 'm', '\0' } |
| normal intensity text
|
|
static char | reset [5] = {27, '[', '0', 'm', '\0' } |
| resets text properties
|
|
static char | underon [5] = {27, '[', '4', 'm', '\0' } |
| underlines text
|
|
static char | underoff [6] = {27, '[', '2', '4', 'm', '\0' } |
| underline off
|
|
static char | fgblue [6] = {27, '[', '3', '4', 'm', '\0' } |
| blue text
|
|
static char | fgcyan [6] = {27, '[', '3', '6', 'm', '\0' } |
| cyan text
|
|
static char | fgred [6] = {27, '[', '3', '1', 'm', '\0' } |
| red text
|
|
static char | fggreen [6] = {27, '[', '3', '2', 'm', '\0' } |
| green text
|
|
static char | fgdef [6] = {27, '[', '3', '9', 'm', '\0' } |
| default text
|
|
static short | debug_lvl = 1 |
|
bool | Load (FGFDMExec *exec, Element *el) |
|
void | Debug (int from) |
|
virtual bool | InitModel (void) |
|
static std::string | CreateIndexedPropertyName (const std::string &Property, int index) |
|
std::string | Name |
|
const int | EngineNumber |
|
EngineType | Type |
|
double | SLFuelFlowMax |
|
double | MaxThrottle |
|
double | MinThrottle |
|
double | FuelExpended |
|
double | FuelFlowRate |
|
double | PctPower |
|
bool | Starter |
|
bool | Starved |
|
bool | Running |
|
bool | Cranking |
|
bool | FuelFreeze |
|
double | FuelFlow_gph |
|
double | FuelFlow_pph |
|
double | FuelUsedLbs |
|
double | FuelDensity |
|
FGThruster * | Thruster |
|
std::vector< int > | SourceTanks |
|
std::vector< FGFunction * > | PreFunctions |
|
std::vector< FGFunction * > | PostFunctions |
|
FGPropertyReader | LocalProperties |
|
static Message | localMsg |
|
static std::queue< Message > | Messages |
|
static unsigned int | messageId = 0 |
|
static constexpr double | radtodeg = 180. / 3.14159265358979323846 |
|
static constexpr double | degtorad = 3.14159265358979323846 / 180. |
|
static constexpr double | hptoftlbssec = 550.0 |
|
static constexpr double | psftoinhg = 0.014138 |
|
static constexpr double | psftopa = 47.88 |
|
static constexpr double | ktstofps = 1.68781 |
|
static constexpr double | fpstokts = 1.0 / ktstofps |
|
static constexpr double | inchtoft = 1.0/12.0 |
|
static constexpr double | fttom = 0.3048 |
|
static constexpr double | m3toft3 = 1.0/(fttom*fttom*fttom) |
|
static constexpr double | in3tom3 = inchtoft*inchtoft*inchtoft/m3toft3 |
|
static constexpr double | inhgtopa = 3386.38 |
|
static constexpr double | slugtolb = 32.174049 |
| Note that definition of lbtoslug by the inverse of slugtolb and not to a different constant you can also get from some tables will make lbtoslug*slugtolb == 1 up to the magnitude of roundoff.
|
|
static constexpr double | lbtoslug = 1.0/slugtolb |
|
static constexpr double | kgtolb = 2.20462 |
|
static constexpr double | kgtoslug = 0.06852168 |
|
static const std::string | needed_cfg_version = "2.0" |
|
static const std::string | JSBSim_version = JSBSIM_VERSION " " __DATE__ " " __TIME__ |
|
static int | gaussian_random_number_phase = 0 |
|
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 154 of file FGTurbine.h.