|
enum | GrainType { gtUNKNOWN,
gtCYLINDRICAL,
gtENDBURNING,
gtFUNCTION
} |
|
enum | TankType { ttUNKNOWN,
ttFUEL,
ttOXIDIZER
} |
|
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.
|
|
|
| FGTank (FGFDMExec *exec, Element *el, int tank_number) |
| Constructor. More...
|
|
| ~FGTank () |
| Destructor.
|
|
double | Calculate (double dt, double TempC) |
| Performs local, tanks-specific calculations, such as fuel temperature. More...
|
|
double | Drain (double used) |
| Removes fuel from the tank. More...
|
|
double | Fill (double amount) |
|
double | GetCapacity (void) const |
| Gets the capacity of the tank. More...
|
|
double | GetCapacityGallons (void) const |
| Gets the capacity of the tank. More...
|
|
double | GetContents (void) const |
| Gets the contents of the tank. More...
|
|
double | GetContentsGallons (void) const |
| Gets the contents of the tank. More...
|
|
double | GetDensity (void) const |
|
double | GetExternalFlow (void) const |
|
const GrainType | GetGrainType (void) const |
|
double | GetIxx (void) const |
|
double | GetIyy (void) const |
|
double | GetIzz (void) const |
|
double | GetLocationX (void) const |
|
double | GetLocationY (void) const |
|
double | GetLocationZ (void) const |
|
double | GetPctFull (void) const |
| Gets the tank fill level. More...
|
|
int | GetPriority (void) const |
|
bool | GetSelected (void) const |
| If the tank is set to supply fuel, this function returns true. More...
|
|
double | GetStandpipe (void) const |
|
double | GetTemperature (void) const |
| Gets the temperature of the fuel. More...
|
|
double | GetTemperature_degC (void) const |
| Gets the temperature of the fuel. More...
|
|
int | GetType (void) const |
| Retrieves the type of tank: Fuel or Oxidizer. More...
|
|
FGColumnVector3 | GetXYZ (void) const |
|
double | GetXYZ (int idx) const |
|
double | ProcessFuelName (const std::string &name) |
| Returns the density of a named fuel type. More...
|
|
void | ResetToIC (void) |
| Resets the tank parameters to the initial conditions.
|
|
void | SetContents (double amount) |
|
void | SetContentsGallons (double gallons) |
|
void | SetDensity (double d) |
|
void | SetExternalFlow (double f) |
|
void | SetLocationX (double x) |
|
void | SetLocationY (double y) |
|
void | SetLocationZ (double z) |
|
void | SetPriority (int p) |
|
void | SetSelected (bool sel) |
|
void | SetStandpipe (double amount) |
|
void | SetTemperature (double temp) |
|
| 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...
|
|
|
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...
|
|
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
|
|
void | Debug (int) |
|
static std::string | CreateIndexedPropertyName (const std::string &Property, int index) |
|
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 |
|
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>
<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.
- 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)
- 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 200 of file FGTank.h.