JSBSim Flight Dynamics Model
1.0 (02 March 2017)
An Open Source Flight Dynamics and Control Software Library in C++
|
Turboprop engine model. More...
#include <FGTurboProp.h>
Public Types | |
enum | phaseType { tpOff, tpRun, tpSpinUp, tpStart, tpTrim } |
Public Types inherited from FGEngine | |
enum | EngineType { etUnknown, etRocket, etPiston, etTurbine, etTurboprop, etElectric } |
Public Types inherited from FGJSBBase | |
enum | { eL = 1, eM, eN } |
Moments L, M, N. | |
enum | { eP = 1, eQ, eR } |
Rates P, Q, R. | |
enum | { eU = 1, eV, eW } |
Velocities U, V, W. | |
enum | { eX = 1, eY, eZ } |
Positions X, Y, Z. | |
enum | { ePhi = 1, eTht, ePsi } |
Euler angles Phi, Theta, Psi. | |
enum | { eDrag = 1, eSide, eLift } |
Stability axis forces, Drag, Side force, Lift. | |
enum | { eRoll = 1, ePitch, eYaw } |
Local frame orientation Roll, Pitch, Yaw. | |
enum | { eNorth = 1, eEast, eDown } |
Local frame position North, East, Down. | |
enum | { eLat = 1, eLong, eRad } |
Locations Radius, Latitude, Longitude. | |
enum | { inNone = 0, inDegrees, inRadians, inMeters, inFeet } |
Conversion specifiers. | |
Public Member Functions | |
FGTurboProp (FGFDMExec *Executive, Element *el, int engine_number, struct Inputs &input) | |
Constructor. More... | |
~FGTurboProp () | |
Destructor. | |
double | CalcFuelNeed (void) |
The fuel need is calculated based on power levels and flow rate for that power level. More... | |
void | Calculate (void) |
Calculates the thrust of the engine, and other engine functions. More... | |
double | ExpSeek (double *var, double target, double accel, double decel) |
int | GetCondition (void) const |
bool | GetCutoff (void) const |
std::string | GetEngineLabels (const std::string &delimiter) |
std::string | GetEngineValues (const std::string &delimiter) |
double | GetEngStarting (void) const |
bool | GetGeneratorPower (void) const |
bool | GetIeluIntervent (void) const |
double | GetIeluThrottle (void) const |
double | GetITT (void) const |
double | GetN1 (void) const |
double | getOilPressure_psi () const |
double | getOilTemp_degF (void) |
phaseType | GetPhase (void) const |
double | GetPowerAvailable (void) const |
bool | GetReversed (void) const |
double | GetRPM (void) const |
int | InitRunning (void) |
double | Seek (double *var, double target, double accel, double decel) |
void | SetCondition (bool c) |
void | SetCutoff (bool cutoff) |
void | SetGeneratorPower (bool gp) |
void | SetPhase (phaseType p) |
void | SetReverse (bool reversed) |
Public Member Functions inherited from FGEngine | |
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 double | GetPowerAvailable (void) |
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 | ResetToIC (void) |
Resets the Engine parameters to the initial conditions. | |
virtual void | SetFuelDensity (double d) |
virtual void | SetFuelFreeze (bool f) |
virtual void | SetName (const std::string &name) |
virtual void | SetPlacement (const FGColumnVector3 &location, const FGColumnVector3 &orientation) |
Sets engine placement information. | |
virtual void | SetRunning (bool bb) |
virtual void | SetStarter (bool s) |
virtual void | SetStarved (bool tt) |
virtual void | SetStarved (void) |
Public Member Functions inherited from FGModelFunctions | |
std::string | GetFunctionStrings (const std::string &delimeter) const |
Gets the strings for the current set of functions. More... | |
std::string | GetFunctionValues (const std::string &delimeter) const |
Gets the function values. More... | |
FGFunction * | GetPreFunction (const std::string &name) |
Get one of the "pre" function. More... | |
bool | Load (Element *el, FGPropertyManager *PropertyManager, std::string prefix="") |
void | PostLoad (Element *el, FGPropertyManager *PropertyManager, std::string prefix="") |
void | PreLoad (Element *el, FGPropertyManager *PropertyManager, std::string prefix="") |
void | RunPostFunctions (void) |
void | RunPreFunctions (void) |
Public Member Functions inherited from FGJSBBase | |
FGJSBBase () | |
Constructor for FGJSBBase. | |
virtual | ~FGJSBBase () |
Destructor for FGJSBBase. | |
void | disableHighLighting (void) |
Disables highlighting in the console output. | |
std::string | GetVersion (void) |
Returns the version number of JSBSim. More... | |
void | PutMessage (const Message &msg) |
Places a Message structure on the Message queue. More... | |
void | PutMessage (const std::string &text) |
Creates a message with the given text and places it on the queue. More... | |
void | PutMessage (const std::string &text, bool bVal) |
Creates a message with the given text and boolean value and places it on the queue. More... | |
void | PutMessage (const std::string &text, int iVal) |
Creates a message with the given text and integer value and places it on the queue. More... | |
void | PutMessage (const std::string &text, double dVal) |
Creates a message with the given text and double value and places it on the queue. More... | |
int | SomeMessages (void) |
Reads the message on the queue (but does not delete it). More... | |
void | ProcessMessage (void) |
Reads the message on the queue and removes it from the queue. More... | |
Message * | ProcessNextMessage (void) |
Reads the next message on the queue and removes it from the queue. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from FGJSBBase | |
static double | CelsiusToFahrenheit (double celsius) |
Converts from degrees Celsius to degrees Fahrenheit. More... | |
static double | CelsiusToKelvin (double celsius) |
Converts from degrees Celsius to degrees Kelvin. More... | |
static double | CelsiusToRankine (double celsius) |
Converts from degrees Celsius to degrees Rankine. More... | |
static double | Constrain (double min, double value, double max) |
Constrain a value between a minimum and a maximum value. | |
static bool | EqualToRoundoff (double a, double b) |
Finite precision comparison. More... | |
static bool | EqualToRoundoff (float a, float b) |
Finite precision comparison. More... | |
static bool | EqualToRoundoff (float a, double b) |
Finite precision comparison. More... | |
static bool | EqualToRoundoff (double a, float b) |
Finite precision comparison. More... | |
static double | FahrenheitToCelsius (double fahrenheit) |
Converts from degrees Fahrenheit to degrees Celsius. More... | |
static double | FeetToMeters (double measure) |
Converts from feet to meters. More... | |
static double | GaussianRandomNumber (void) |
static double | KelvinToCelsius (double kelvin) |
Converts from degrees Kelvin to degrees Celsius. More... | |
static double | KelvinToFahrenheit (double kelvin) |
Converts from degrees Kelvin to degrees Fahrenheit. More... | |
static double | KelvinToRankine (double kelvin) |
Converts from degrees Kelvin to degrees Rankine. More... | |
static double | MachFromVcalibrated (double vcas, double p, double psl, double rhosl) |
Calculate the Mach number from the calibrated airspeed. More... | |
static double | PitotTotalPressure (double mach, double p) |
Compute the total pressure in front of the Pitot tube. More... | |
static double | RankineToCelsius (double rankine) |
Converts from degrees Rankine to degrees Celsius. More... | |
static double | RankineToKelvin (double rankine) |
Converts from degrees Rankine to degrees Kelvin. More... | |
static double | sign (double num) |
static double | VcalibratedFromMach (double mach, double p, double psl, double rhosl) |
Calculate the calibrated airspeed from the Mach number. More... | |
Public Attributes inherited from FGEngine | |
struct Inputs & | in |
Static Public Attributes inherited from FGJSBBase | |
static short | debug_lvl = 1 |
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 | |
Protected Member Functions inherited from FGEngine | |
void | Debug (int from) |
Protected Member Functions inherited from FGModelFunctions | |
virtual bool | InitModel (void) |
Protected Member Functions inherited from FGJSBBase | |
void | Debug (int) |
Static Protected Member Functions inherited from FGJSBBase | |
static std::string | CreateIndexedPropertyName (const std::string &Property, int index) |
Protected Attributes inherited from FGEngine | |
bool | Cranking |
const int | EngineNumber |
double | EnginePitch |
double | EngineYaw |
double | FuelDensity |
double | FuelExpended |
double | FuelFlow_gph |
double | FuelFlow_pph |
double | FuelFlowRate |
bool | FuelFreeze |
double | FuelUsedLbs |
double | MaxThrottle |
double | MinThrottle |
std::string | Name |
double | PctPower |
bool | Running |
double | SLFuelFlowMax |
std::vector< int > | SourceTanks |
bool | Starter |
bool | Starved |
FGThruster * | Thruster |
EngineType | Type |
double | X |
double | Y |
double | Z |
Protected Attributes inherited from FGModelFunctions | |
FGPropertyReader | LocalProperties |
std::vector< FGFunction * > | PostFunctions |
std::vector< FGFunction * > | PreFunctions |
Static Protected Attributes inherited from FGJSBBase | |
static const double | degtorad = 0.017453292519943295769236907684886 |
static const double | fpstokts = 1.0/ktstofps |
static const double | fttom = 0.3048 |
static int | gaussian_random_number_phase = 0 |
static const double | hptoftlbssec = 550.0 |
static const double | in3tom3 = 1.638706E-5 |
static const double | inchtoft = 0.08333333 |
static const double | inhgtopa = 3386.38 |
static const std::string | JSBSim_version = "1.0 " __DATE__ " " __TIME__ |
static const double | kgtolb = 2.20462 |
static const double | kgtoslug = 0.06852168 |
static const double | ktstofps = 1.68781 |
static const double | lbtoslug = 1.0/slugtolb |
static Message | localMsg |
static const double | m3toft3 = 1.0/(fttom*fttom*fttom) |
static double | Mair = 28.9645 |
static unsigned int | messageId = 0 |
static std::queue< Message > | Messages |
static const std::string | needed_cfg_version = "2.0" |
static const double | psftoinhg = 0.014138 |
static const double | psftopa = 47.88 |
static const double | radtodeg = 57.295779513082320876798154814105 |
static double | Reng = 1716.56 |
static double | Rstar = 1545.348 |
static const double | SHRatio = 1.40 |
static const double | slugtolb = 32.174049 |
Turboprop engine model.
For an example of this model in use see the file: engine/engtm601.xml
milthrust [LBS] idlen1 [%] maxn1 [%] betarangeend[%] if ThrottleCmd < betarangeend/100.0 then engine power=idle, propeller pitch is controled by ThrottleCmd (between MINPITCH and REVERSEPITCH). if ThrottleCmd > betarangeend/100.0 then engine power increases up to max reverse power reversemaxpower [%] max engine power in reverse mode maxpower [HP] psfc power specific fuel consumption [pph/HP] for N1=100% n1idle_max_delay [-] time constant for N1 change maxstartenginetime [sec] after this time the automatic starting cycle is interrupted when the engine doesn't start (0=automatic starting not present) startern1 [%] when starting starter spin up engine to this spin ielumaxtorque [lb.ft] if torque>ielumaxtorque limiters decrease the throttle (ielu = Integrated Electronic Limiter Unit) itt_delay [-] time constant for ITT change (ITT = Inter Turbine Temperature)
Definition at line 94 of file FGTurboProp.h.
FGTurboProp | ( | FGFDMExec * | Executive, |
Element * | el, | ||
int | engine_number, | ||
struct Inputs & | input | ||
) |
Constructor.
Executive | pointer to executive structure |
el | pointer to the XML element representing the turbine engine |
engine_number | engine number |
Definition at line 65 of file FGTurboProp.cpp.
|
virtual |
The fuel need is calculated based on power levels and flow rate for that power level.
It is also turned from a rate into an actual amount (pounds) by multiplying it by the delta T and the rate.
Reimplemented from FGEngine.
Definition at line 432 of file FGTurboProp.cpp.
|
virtual |
Calculates the thrust of the engine, and other engine functions.
Implements FGEngine.
Definition at line 192 of file FGTurboProp.cpp.