Here’s an overview of the fuel system from the perspective of a user – not a
developer, but maybe it helps.
Do you need the API documentation? Try here for a start:
http://jsbsim.sourceforge.net/JSBSim/classJSBSim_1_1FGTank.html
Jon
Here's an overview of the fuel handling in JSBSim now.
At load-time the propulsion system (FGPropulsion) reads the configuration file
and builds a list of engines and a list of tanks.
Each engine creates a list of feed tanks using the <feed> tag. This list is
only created at load-time, but in the future I'd like to see run-time control
over this list. The list is owned by each FGEngine and is called SourceTanks.
The list is the same size as the number of tanks, and each list item
corresponds to a tank. At load-time each list member is set to zero, and when
a <feed> tag is encountered the list member corresponding to that tank is set
to non-zero. The engine will only feed from tanks that have a non-zero value
in SourceTanks. The non-zero value happens to be equal to the tank's priority,
but it's only treated as a non-zero in the ConsumeFuel() algorithm. It could
just as well be zeroes and ones. This is, in effect, a map of all the tanks,
representing which ones are allowed to feed this engine. The trick in making
this run-time modifiable will be to decide on a scheme to allow one property to
modify this map.
Each tank has a priority value, with 1 being the highest priority. The
default value is 1. The priority is an attribute owned by the tank, and
it's exposed to the property tree, so the priority can be changed at run-time.
Since the priority is owned by the tank, this means that all engines will see
the same priority from a given tank. Setting the priority to zero is like
closing a valve "at the tank". So far this is the only valve you have control
over in the fuel system.
The SourceTanks list, belonging to each engine, can be thought of as a set of
valves too. Each engine is connected to all tanks, but a valve "at the engine"
is closed for each list member with a value of zero.
When refueling is activated (by setting the property "propulsion/refuel" to 1
or true) fuel is added at the same rate to ALL tanks at a total transfer rate
of 6000 lbs per minute, hardcoded. This code presently ignores tank priority.
It also ignores what fluid is supposed to be in a particular tank, so don't use
this with a rocket. The refuel code could use some work.
When dumping fuel (by setting the property "propulsion/fuel_dump" to 1 or
true) fuel is removed from ALL tanks down to any standpipe level previously
defined at load-time for each tank. The dump rate is defined at load-time, and
is the rate for the entire fuel system. This code ignores tank priority.
If no standpipe is defined, all fuel will be dumped. Default dump rate is zero.
Total fuel quantity is calculated in FGPropulsion::Run() and written to the
property "propulsion/total-fuel-lbs".
Fuel temperature is calculated in FGTank::Calculate(), but only for tanks that
had an initial temperature defined at load-time.
Fuel quantity is always measured by weight. There is no method in the code for
conversion to volume, and there is no tracking of fuel density. FGPiston does
provide a gal/hr output, and uses 6.0 lb/gal as the conversion factor.
FlightGear manipulates the JSBSim tank quantities by converting gallons to
pounds in JSBSim.cxx, using a conversion factor of 6.6 lb/gal.
Dave
From: Jon S. Berndt [mailto:jonsber...@comcast.net]
Sent: Monday, October 22, 2012 7:27 PM
To: 'FlightGear developers discussions'
Subject: Re: [Flightgear-devel] Fg Fuel System Changes
John,
Yes, there were some changes. I’ll try to help out soon, but am limited on time
at the moment. You might search the JSBSim mailing list for the “tank priority”
terms.
Briefly, as I recall, there is now a “priority” element, with priority “1”
being the highest. I forget if “0” means anything. Any tank with the same
priority provides fuel until all tanks of the same priority are empty. Then,
the next priority tanks are used (1, then 2, then …).
The “new” tank system was introduced by one of our developers who is also an
airline pilot. Unfortunately, I don’t think that the features is widely used,
yet – at least in models in the JSBSim repository. I’m using it in one vehicle
model now, but can’t share that.
I hope this helps. You might try cross-posting to the JSBSim developer list,
too. Let me know if you need more help.
Jon
------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_sfd2d_oct
_______________________________________________
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel