From FlightGear wiki
Revision as of 06:02, 8 March 2008 by Gijs (Talk | contribs) (New page: {{stub}} '''Coordinate system notes:''' All positions specified are in meters (which is weird, since all other units in the file are English). The X axis points forward, Y is left, and Z i...)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
This article is a stub. You can help the wiki by expanding it.

Coordinate system notes: All positions specified are in meters (which is weird, since all other units in the file are English). The X axis points forward, Y is left, and Z is up. Take your right hand, and hold it like a gun. Your first and second fingers are the X and Y axes, and your upwards-pointing thumb is the Z. This is slightly different from the coordinate system used by JSBSim. Sorry. The origin can be placed anywhere, so long as you are consistent. I use the nose of the aircraft.

XML Elements

  • airplane: The top-level element for the file. It contains only one
  • attribute:
  • mass: The empty (no fuel) weight, in pounds.
  • approach: The approach parameters for the aircraft. The solver will generate an aircraft that matches these settings. The element can (and should) contain <control> elements indicating pilot input settings, such as flaps and throttle, for the approach.
  • speed: The approach airspeed, in knots TAS.
  • aoa: The approach angle of attack, in degrees
  • fuel: Fraction (0-1) of fuel in the tanks. Default is 0.2.
  • cruise: The cruise speed and altitude for the solver to match. As above, this should contain <control> elements indicating aircraft configuration. Especially, make sure the engines are generating enough thrust at cruise!
  • speed: The cruise speed, in knots TAS.
  • alt: The cruise altitude, in feet MSL.
  • fuel: Fraction (0-1) of fuel in the tanks. Default is 0.2.
  • cockpit: The location of the cockpit (pilot eyepoint).
  • x,y,z: eyepoint location (see coordinates note)


  • fuselage: This defines a tubelike structure. It will be given an even mass and aerodynamic force distribution by the solver. You can have as many as you like, in any orientation you please.
  • ax,ay,az: One end of the tube (typically the front)
  • bx,by,bz: The other ("back") end.
  • width: The width of the tube, in meters.
  • taper: The approximate radius at the "tips" of the fuselage expressed as a fraction (0-1) of the width value.
  • midpoint: The location of the widest part of the fuselage, expressed as a fraction of the distance between A and B.
  • idrag: Multiplier for the "induced drag" generated by this object. Default is one. With idrag=0 the fuselage generates only drag.
  • cx,cy,cz: Factors for the generated drag in the fuselages "local coordinate system" with x pointing from end to front, z perpendicular to x with y=0 in the aircraft coordinate system. E.g. for a fuselage of a height of 2 times them width you can define cy=2 and (due to the doubled front surface) cx=2.


  • wing: This defines the main wing of the aircraft. You can have only one (but see below about using vstab objects for extra lifting surfaces). The wing should have a <stall> subelement to indicate stall behavior, control surface subelements (flap0, flap1, spoiler, slat) to indicate what and where the control surfaces are, and <control> subelements to map user input properties to the control surfaces.
  • x,y,z: The "base" of the wing, specified as the location of the mid-chord (not leading edge, trailing edge, or aerodynamic center) point at the root of the LEFT (!) wing.
  • length: The length from the base of the wing to the midchord point at the tip. Note that this is not the same thing as span.
  • chord: The chord of the wing at its base, along the X axis (not normal to the leading edge, as it is sometimes defined).
  • incidence: The incidence angle at the wing root, in degrees. Zero is level with the fuselage (as in an aerobatic plane), positive means that the leading edge is higher than the trailing edge (as in a trainer).
  • twist: The difference between the incidence angle at the wing root and the incidence angle at the wing tip. Typically, this is a negative number so that the wing tips have a lower angle of attack and stall after the wing root (washout).
  • taper: The taper fraction, expressed as the tip chord divided by the root chord. A taper of one is a hershey bar wing, and zero would be a wing ending at a point. Defaults to one.
  • sweep: The sweep angle of the wing, in degrees. Zero is no sweep, positive angles are swept back. Defaults to zero.
  • dihedral: The dihedral angle of the wing. Positive angles are upward dihedral. Defaults to zero.
  • idrag: Multiplier for the "induced drag" generated by this surface. In general, low aspect wings will generate less induced drag per-AoA than high aspect (glider) wings. This value isn't constrained well by the solution process, and may require tuning to get throttle settings correct in high AoA (approach) situations.
  • camber: The lift produced by the wing at zero angle of attack, expressed as a fraction of the maximum lift produced at the stall AoA.
  • hstab: These defines the horizontal stabilizer of the aircraft. Internally, it is just a wing object and therefore works the same in XML. You are allowed only one hstab object; the solver needs to know which wing's incidence to play with to get the aircraft trimmed correctly.
  • vstab: A "vertical" stabilizer. Like hstab, this is just another wing, with a few special properties. The surface is not "mirrored" as are wing and hstab objects. If you define a left wing only, you'll only get a left wing. The default dihedral, if unspecified, is 90 degrees instead of zero. But all parameters are equally settable, so there's no requirement that this object be "vertical" at all. You can use it for anything you like, such as extra wings for biplanes. Most importantly, these surfaces are not involved with the solver computation, so you can have none, or as many as you like.
  • mstab: A mirrored horizontal stabilizer. Exactly the same as wing, but not involved with the solver computation, so you can have none, or as many as you like.
  • stall: A subelement of a wing (or hstab/vstab/mstab) that specifies the stall behavior.
  • aoa: The stall angle (maximum lift) in degrees. Note that this is relative to the wing, not the fuselage (since the wing may have a non-zero incidence angle).
  • width: The "width" of the stall, in degrees. A high value indicates a gentle stall. Low values are viscious for a non-twisted wing, but are acceptable for a twisted one (since the whole wing will not stall at the same time).
  • peak: The height of the lift peak, relative to the post-stall secondary lift peak at 45 degrees. Defaults to 1.5. This one is deep voodoo, and probably doesn't need to change much. Bug me for an explanation if you're curious.
  • flap0, flap1, slat, spoiler: These are subelements of wing/hstab/vstab objects, and specify the location and effectiveness of the control surfaces.
  • start: The position along the wing where the control surface begins.Zero is the root, one is the tip.
  • end: The position where the surface ends, as above.
  • lift: The lift multiplier for a flap or slat at full extension. One is a no-op, a typical aileron might be 1.2 or so, a giant jetliner flap 2.0, and a spoiler 0.0. For spoilers, the interpretation is a little different -- they spoil only "prestall" lift. Lift due purely to "flat plate" effects isn't affected. For typical wings that stall at low AoA's essentially all lift is pre-stall and you don't have to care. Jet fighters tend not to have wing spoilers, for exactly this reason. This value is not applicable to slats, which affect stall AoA only.
  • drag: The drag multiplier, as above. Typically should be higher than the lift multiplier for flaps.
  • aoa: Applicable only to slats. This indicates the angle by which the stall AoA is translated by the slat extension.


  • thruster: A very simple "thrust only" engine object. Useful for things like thrust vectoring nozzles. All it does is map its THROTTLE input axis to its output thrust rating. Does not consume fuel, etc...
  • thrust: Maximum thrust in pounds
  • x,y,z: The point on the airframe where thrust will be applied.
  • vx,vy,vy: The direction of the thrust in airframe coordinates. The vector will be normalized automatically, so any non-zero vector will work fine.
  • jet: A turbojet/fan engine. It accepts a <control> subelement to map a property to its throttle setting, and an <actionpt> subelement to place the action point of the thrust at a different position than the mass of the engine.
  • x,y,z: The location of the engine, as a point mass. If no actionpt is specified, this will also be the point of application of thrust.
  • mass: The mass of the engine, in pounds.
  • thrust: The maximum sea-level thrust, in pounds.
  • afterburner: Maximum total thrust with afterburner/reheat, in pounds [defaults to "no additional thrust"].
  • rotate: Vector angle of the thrust in degrees about the Y axis [0].
  • n1-idle: Idling rotor speed [55].
  • n1-max: Maximum rotor speed [102].
  • n2-idle: Idling compressor speed [73].
  • n2-max: Maximum compressor speed [103].
  • tsfc: Thrust-specific fuel consumption [0.8]. This should be considerably lower for modern turbofans.
  • egt: Exhaust gas temperature at takeoff [1050].
  • epr: Engine pressure ratio at takeoff [3.0].
  • exhaust-speed: The maximum exhaust speed in knots [~1555].
  • spool-time: Time, in seconds, for the engine to respond to 90% of a commanded powersetting.
  • propeller: A propeller. This element requires an engine subtag. Currently <piston-engine> and <turbine-engine> are supported.
  • x,y,z: The position of the mass (!) of the engine/propeller combination. If the point of force application is different (and it will be) it should be set with an <actionpt> subelement.
  • mass: The mass of the engine/propeller, in pounds.
  • moment: The moment, in kg-meters^2. This has to be hand calculated and guessed at for now. A more automated system will be forthcoming. Use a negative moment value for counter-rotating ("European" -- CCW as seen from behind the prop) propellers. A good guess for this value is the radius of the prop (in meters) squared times the mass (kg) divided by three; that is the moment of a plain "stick" bolted to the prop shaft.
  • radius: The radius, in meters, or the propeller.
  • cruise-speed: The max efficiency cruise speed of the propeller. Generally not the same as the aircraft's cruise speed.
  • cruise-rpm: The RPM of the propeller at max-eff. cruise.
  • cruise-power: The power sunk by the prop at cruise, in horsepower.
  • cruise-alt: The reference cruise altitude in feet.
  • takeoff-power: The takeoff power required by the propeller...
  • takeoff-rpm: ...at the given takeoff RPM.
  • min-rpm: The minimum operational RPM for a constant speed propeller. This is the speed to which the prop governor will seek when the blue lever is at minimum. The coarse-stop attribute limits how far the governor can go into trying to reach this RPM.
  • max-rpm: The maximum operational RPM for a constant speed propeller. See above. The fine-stop attribute limits how far the governor can go in trying to reach this RPM.
  • fine-stop: The minimum pitch of the propeller (high RPM) as a ratio of ideal cruise pitch. This is set to 0.25 by default -- a higher value will result in a lower RPM at low power settings (e.g. idle, taxi, and approach).
  • coarse-stop: The maximum pitch of the propeller (low RPM) as a ratio of ideal cruise pitch. This is set to 4.0 by default -- a lower value may result in a higher RPM at high power settings.
  • gear-ratio: The factor by which the engine RPM is multiplied to produce the propeller RPM. Optional (defaults to 1.0).
  • contra: When set (contra="1"), this indicates that the propeller is a contra-rotating pair. It will not contribute to the aircraft's net gyroscopic moment, nor will it produce asymmetric torque on the aircraft body. Asymmetric slipstream effects, when implemented, will also be zero when this is set.
  • piston-engine: A piston engine definition. This must be a subelement of an enclosing <propeller> tag.
  • eng-power: Maximum BHP of the engine at sea level.
  • eng-rpm: The engine RPM at which eng-power is developed
  • displacement: The engine displacement in cubic inches.
  • compression: The engine compression ratio.


  • gear: Defines a landing gear. Accepts <control> subelements to map properties to steering and braking. Can also be used to simulate floats. Although the coefficients are still called ..fric, it is calculated in fluids as a drag (proportional to the square of the speed). In fluids gears are not considered to detect crashes (as on ground).
  • x,y,z: The location of the fully-extended gear tip.
  • compression: The distance in meters along the "up" axis that the gear will compress.
  • initial-load: The initial load of the spring in multiples of compression. Defaults to 0. (With this parameter a lower spring-constants will be used for the gear-> can reduce numerical problems (jitter)) Note: the spring-constant is varied from 0% compression to 20% compression to get continuous behavior around 0 compression. (could be physically explained by wheel deformation)
  • upx/upy/upz: The direction of compression, defaults to vertical (0,0,1) if unspecified. These are used only for a direction -- the vector need not be normalized, as the length is specified by "compression".
  • sfric: Static (non-skidding) coefficient of friction. Defaults to 0.8.
  • dfric: Dynamic friction. Defaults to 0.7.
  • spring: A dimensionless multiplier for the automatically generated spring constant. Increase to make the gear stiffer, decrease to make it squishier.
  • damp: A dimensionless multiplier for the automatically generated damping coefficient. Decrease to make the gear "bouncier", increase to make it "slower". Beware of increasing this too far: very high damping forces can make the numerics unstable. If you can't make the gear stop bouncing with this number, try increasing the compression length instead.
  • on-water: if this is set to "0" the gear will be ignored if on water. Defaults to "0"
  • on-solid: if this set to "0" the gear will be ignored if not on water. Defaults to "1"
  • speed-planing:
  • spring-factor-not-planing: At zero speed the spring factor is multiplied by spring-factor-not-planing. Above speed-planing this factor is equal to 1. The idea is, to use this for floats simulating the transition from swimming to planing. speed-planing defaults to 0, spring-factor-not-planing defaults to 1.
  • reduce-friction-by-extension: at full extension the friction is reduced by this relative value. 0.7 means 30% friction at full extension. If you specify a value greater than one, the friction will be zero before reaching full extension. Defaults to "0"
  • ignored-by-solver: with the on-water/on-solid tags you can have more than one set of gears in one aircraft, If the solver (who automatically generates the spring constants) would take all gears into account, the result would be wrong. E. G. set this tag to "1" for all gears, which are not active on runways. Defaults to "0". You can not exclude all gears in the solving process.