|
enum | TankType { ttUNKNOWN
, ttFUEL
, ttOXIDIZER
} |
|
enum | GrainType { gtUNKNOWN
, gtCYLINDRICAL
, gtENDBURNING
, gtFUNCTION
} |
|
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...
|
|
|
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) |
|
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 |
|
static std::string | CreateIndexedPropertyName (const std::string &Property, int index) |
|
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 |
|
Models a fuel tank.
Fuel Temperature:
Fuel temperature is calculated using the following assumptions:
Fuel temperature will only be calculated for tanks which have an initial
fuel temperature specified in the configuration file.
The surface area of the tank is estimated from the capacity in pounds. It
is assumed that the tank is a wing tank with dimensions h by 4h by 10h. The
volume of the tank is then 40(h)(h)(h). The area of the upper or lower
surface is then 40(h)(h). The volume is also equal to the capacity divided
by 49.368 lbs/cu-ft, for jet fuel. The surface area of one side can then be
derived from the tank's capacity.
The heat capacity of jet fuel is assumed to be 900 Joules/lbm/K, and the
heat transfer factor of the tank is 1.115 Watts/sq-ft/K.
Fuel Dump:
Fuel dumping is handled by the FGPropulsion class. A standpipe can be
defined here for each tank which sets the level of contents (in pounds)
which is not dumpable. Default standpipe level is zero, making all contents
dumpable.
Fuel Transfer:
Fuel transfer is handled by the FGPropulsion class, however the contents of
tanks may be manipulated directly using the SetContents() function here, or
via the property tree at <tt>propulsion/tank[i]/contents-lbs</tt>, where i
is the tank number (Tanks are automatically numbered, starting at zero, in
the order in which they are read in the aircraft configuration file). The
latter method allows one to use a system of FCS components to control tank
contents.
There is also a property
<tt>propulsion/tank[i]/external-flow-rate-pps</tt>. Setting this property to
a positive value causes the tank to fill at the rate specified. Setting a
negative number causes the tank to drain. The value is the rate in pounds of
fuel per second. The tank will not fill past 100% full and will not drain
below 0%. Fuel may be transfered between two tanks by setting the source
tank's external flow rate to a negative value and the destination's external
flow rate to the same positive value. Care must be taken to stop fuel flow
before the source tank becomes empty to prevent phantom fuel being created.
Configuration File Format:
<tank type="{FUEL | OXIDIZER}">
<grain_config type="{CYLINDRICAL | ENDBURNING | FUNCTION}">
<length unit="{IN | FT | M}"> {number} </length>
<bore_diameter unit="{IN | FT | M}"> {number} </bore_diameter>
[<ixx unit="{IN | FT | M}"> {function} </ixx>
<iyy unit="{IN | FT | M}"> {function} </iyy>
<izz unit="{IN | FT | M}"> {function} </izz>]
</grain_config>
<location unit="{FT | M | IN}">
<x> {number} </x>
<y> {number} </y>
<z> {number} </z>
</location>
<drain_location unit="{FT | M | IN}">
<x> {number} </x>
<y> {number} </y>
<z> {number} </z>
</drain_location>
<radius unit="{IN | FT | M}"> {number} </radius>
<capacity unit="{LBS | KG}"> {number} </capacity>
<inertia_factor> {number:0-1} </inertia_factor>
<contents unit="{LBS | KG}"> {number} </contents>
<temperature> {number} </temperature> <!-- must be degrees fahrenheit -->
<standpipe unit="{LBS | KG"}> {number} </standpipe>
<unusable unit="{GAL | LTR | M3 | IN3 | FT3 | CC}"> {number} </unusable>
<priority> {integer} </priority>
<density unit="{KG/L | LBS/GAL}"> {number} </density>
<type> {string} </type> <!-- will override previous density setting -->
</tank>
Definition of the tank configuration file parameters:
- type - One of FUEL or OXIDIZER. This is required.
- radius - Equivalent radius of tank for modeling slosh, defaults to inches.
- grain_config type - One of CYLINDRICAL or ENDBURNING.
- length - length of tank for modeling solid fuel propellant grain, defaults to inches.
- capacity - Capacity, defaults to pounds.
- contents - Initial contents, defaults to pounds.
- temperature - Initial temperature, defaults to degrees Fahrenheit.
- standpipe - Minimum contents to which tank can dump, defaults to pounds.
- unusable - Contents that cannot be used for combustion in the engine, defaults to gallons.
- priority - Establishes feed sequence of tank. "1" is the highest priority.
- density - Density of liquid tank contents.
- type - Named fuel type. One of AVGAS, JET-A, JET-A1, JET-B, JP-1, JP-2, JP-3, JP-4, JP-5, JP-6, JP-7, JP-8, JP-8+100, RP-1, T-1, ETHANOL, HYDRAZINE, F-34, F-35, F-40, F-44, AVTAG, AVCAT
location:
- x - Location of tank on aircraft's x-axis, defaults to inches.
- y - Location of tank on aircraft's y-axis, defaults to inches.
- z - Location of tank on aircraft's z-axis, defaults to inches.
drain_location:
- x - Location of tank drain on aircraft's x-axis, defaults to inches.
- y - Location of tank drain on aircraft's y-axis, defaults to inches.
- z - Location of tank drain on aircraft's z-axis, defaults to inches.
Default values of the tank configuration file parameters:
- type - ttUNKNOWN (causes a load error in the propulsion configuration)
- location, drain_location - both optional, but a warning message will be printed to the console if the location is not given
- x - 0.0 (both full and drained CG locations)
- y - 0.0 (both full and drained CG locations)
- z - 0.0 (both full and drained CG locations)
- radius - 0.0
- capacity - 0.00001 (tank capacity must not be zero)
- contents - 0.0
- temperature - -9999.0 (flag which indicates no temperature is set)
- standpipe - 0.0 (all contents may be dumped)
- unusable - 0.0 (all contents may be burnt)
- priority - 1 (highest feed sequence priority)
density - 6.6
- Author
- Jon Berndt, Dave Culp
- See also
- Akbar, Raza et al. "A Simple Analysis of Fuel Addition to the CWT of
747", California Institute of Technology, 1998, http://www.galcit.caltech.edu/EDL/projects/JetA/reports/lumped.pdf
Definition at line 201 of file FGTank.h.