795 lines
46 KiB
Text
795 lines
46 KiB
Text
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 the
|
|
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.
|
|
|
|
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 power setting.
|
|
|
|
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.
|
|
turbo-mul: The turbo/super-charger pressure multiplier.
|
|
Static pressure will be multiplied by this
|
|
value to get the manifold pressure.
|
|
wastegate-mp: The maximum manifold pressure. Beyond
|
|
this, the gate will release to keep the
|
|
MP below this number. (inHG). This value
|
|
can be changed at runtime using the
|
|
WASTEGATE control axis, which is a
|
|
multiplier in the range [0:1].
|
|
turbo-lag: Time lag, in seconds, for 90% of a power change
|
|
to be reflected in the turbocharger boost
|
|
pressure.
|
|
|
|
turbine-engine: A turbine engine definition. This must be a subelement
|
|
of an enclosing <propeller> tag.
|
|
eng-power: Maximum BHP of the engine at a suitable
|
|
cruise altitude.
|
|
eng-rpm: The engine RPM at which eng-power is
|
|
developed. Note that this is "shaft" RPM
|
|
as seen by the propeller. Don't use a
|
|
gear-ratio on the enclosing propeller, or
|
|
else you'll get confused. :)
|
|
alt: The altitude at which eng-power is developed.
|
|
This should be high enough to be lower (!)
|
|
than the flat-rating power.
|
|
flat-rating: The maximum allowed power developed by
|
|
the engine. Most turboprops are flat
|
|
rated below a certain altitude and
|
|
temperature range to prevent engine
|
|
damage.
|
|
min-n2: N2 (percent) turbine speed at zero throttle.
|
|
max-n2: N2 (percent) turbine speed at max throttle.
|
|
bsfc: Specific fuel consumption, in lbs/hr per
|
|
horsepower.
|
|
|
|
|
|
actionpt: Defines an "action point" for an enclosing jet or propeller
|
|
element. This is the location where the force from the thruster
|
|
will be applied.
|
|
x,y,z: The location of force application.
|
|
|
|
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.
|
|
|
|
launchbar: Defines a catapult launchbar or strop.
|
|
x,y,z: The location of the mount point of the launch bar or
|
|
strop on the aircraft.
|
|
length: The length of the launch bar from mount point to tip
|
|
down-angle: The max angle below the horizontal the
|
|
launchbar can achieve.
|
|
up-angle: The max angle above the horizontal the launchbar
|
|
can achieve.
|
|
holdback-{x,y,z}: The location of the holdback mount point
|
|
on the aircraft.
|
|
holdback-length: The length of the holdback from mount
|
|
point to tip. Note: holdback up-angle and
|
|
down-angle are the same as those defined
|
|
for the launchbar and are not specified in
|
|
the configuration.
|
|
|
|
tank: A fuel tank. Tanks in the aircraft are identified
|
|
numerically (starting from zero), in the order they are
|
|
defined in the file. If the left tank is first, "tank[0]"
|
|
will be the left tank.
|
|
x,y,z: The location of the tank.
|
|
capacity: The maximum contents of the tank, in pounds. Not
|
|
gallons -- YASim supports fuels of varying
|
|
densities.
|
|
jet: A boolean. If present, this causes the fuel
|
|
density to be treated as Jet-A. Otherwise,
|
|
gasoline density is used. A more elaborate
|
|
density setting (in pounds per gallon, for
|
|
example) would be easy to implement. Bug me.
|
|
|
|
ballast: This is a mechanism for modifying the mass distribution of
|
|
the aircraft. A ballast setting specifies that a particular
|
|
amount of the empty weight of the aircraft must be placed at
|
|
a given location. The remaining non-ballast weight will be
|
|
distributed "intelligently" across the fuselage and wing
|
|
objects. Note again: this does NOT change the empty weight
|
|
of the aircraft.
|
|
x,y,z: The location of the ballast.
|
|
mass: How much mass, in pounds, to put there. Note that
|
|
this value can be negative. I find that I often need
|
|
to "lighten" the tail of the aircraft.
|
|
|
|
weight: This is an added weight, something not part of the empty
|
|
weight of the aircraft, like passengers, cargo, or external
|
|
stores. The actual value of the mass is not specified here,
|
|
instead, a mapping to a property is used. This allows
|
|
external code, such as the panel, to control the weight
|
|
(loading a given cargo configuration from preference files,
|
|
dropping bombs at runtime, etc...)
|
|
x,y,z: The location of the weight.
|
|
mass-prop: The name of the fgfs property containing the
|
|
mass, in pounds, of this weight.
|
|
size: The aerodynamic "size", in meters, of the
|
|
object. This is important for external stores,
|
|
which will cause drag. For reasonably
|
|
aerodynamic stuff like bombs, the size should be
|
|
roughly the width of the object. For other
|
|
stuff, you're on your own. The default is zero,
|
|
which results in no aerodynamic force (internal
|
|
cargo).
|
|
|
|
solve-weight:
|
|
Subtag of approach and cruise parameters. Used to specify a
|
|
non-zero setting for a <weight> tag during solution. The
|
|
default is to assume all weights are zero at the given
|
|
performance numbers.
|
|
idx: Index of the weight in the file (starting with zero).
|
|
weight: Weight setting in pounds.
|
|
|
|
|
|
control-input:
|
|
This element manages a mapping from fgfs properties (user
|
|
input) to settable values on the aircraft's objects. Note
|
|
that the value to be set MUST (!) be valid on the given
|
|
object type. This is not checked for by the parser, and
|
|
will cause a runtime crash if you try it. Wing's don't have
|
|
throttle controls, etc... Note that multiple axes may be
|
|
set on the same value. They are summed before setting.
|
|
|
|
axis: The name of the double-valued fgfs property "axis" to
|
|
use as input, such as "/controls/flight/aileron".
|
|
control: Which control axis to set on the objects. It can have
|
|
the following values:
|
|
THROTTLE - The throttle on a jet or propeller.
|
|
MIXTURE - The mixture on a propeller.
|
|
REHEAT - The afterburner on a jet
|
|
PROP - The propeller advance
|
|
BRAKE - The brake on a gear.
|
|
STEER - The steering angle on a gear.
|
|
INCIDENCE - The incidence angle of a wing.
|
|
FLAP0 - The flap0 deflection of a wing.
|
|
FLAP1 - The flap1 deflection of a wing.
|
|
SLAT - The slat extension of a wing.
|
|
SPOILER - The spoiler extension for a wing.
|
|
CYCLICAIL - The "aileron" cyclic input of a rotor
|
|
CYCLICELE - The "elevator" cyclic input of a rotor
|
|
COLLECTIVE - The collective input of a rotor
|
|
ROTORENGINEON - If not equal zero the rotor is rotating
|
|
WINCHRELSPEED - The relative winch speed
|
|
{... and many more, see FGFDM.cpp ...}
|
|
invert: Negate the value of the property before setting on
|
|
the object.
|
|
split: Applicable to wing control surfaces. Sets the
|
|
normal value on the left wing, and a negated value
|
|
on the right wing.
|
|
square: Squares the value before setting. Useful for
|
|
controls like steering that need a wide range, yet
|
|
lots of sensitivity in the center. Obviously only
|
|
applicable to values that have a range of [-1:1] or
|
|
[0:1].
|
|
src0/src1/dst0/dst1:
|
|
If present, these defined a linear mapping from the
|
|
source to the output value. Input values in the
|
|
range src0-src1 are mapped linearly to dst0-dst1,
|
|
with clamping for input values that lie outside the
|
|
range.
|
|
|
|
control-output:
|
|
This can be used to pass the value of a YASim control axis
|
|
(after all mapping and summing is applied) back to the
|
|
property tree.
|
|
|
|
control: Name of the control axis. See above.
|
|
prop: Property node to receive the value.
|
|
side: Optional, for split controls. Either "right" or "left"
|
|
min/max: Clamping applied to output value.
|
|
|
|
control-speed:
|
|
Some controls (most notably flaps and hydraulics) have
|
|
maximum slew rates and cannot respond instantly to pilot
|
|
input. This can be implemented with a control-speed tag,
|
|
which defines a "transition time" required to slew through
|
|
the full input range. Note that this tag is
|
|
semi-deprecated, complicated control input filtering can be
|
|
done much more robustly from a Nasal script.
|
|
|
|
control: Name of the control axis. See above.
|
|
transition-time: Time in seconds to slew through input range.
|
|
|
|
control-setting:
|
|
This tag is used to define a particular setting for a
|
|
control axis inside the <cruise> or <approach> tags, where
|
|
obviously property input is not available. It can be used,
|
|
for example, to inform the solver that the approach
|
|
performance values assume full flaps, etc...
|
|
|
|
axis: Name of the control input (i.e. a property name)
|
|
value: Value of the control axis.
|
|
|
|
hitch: A hitch, can be used for winch-start (in gliders) or aerotow (in
|
|
gliders and motor aircrafts) or for external cargo with helicopter.
|
|
You can do aerotow over the net via multiplayer (see j3 and bocian
|
|
as an example).
|
|
|
|
name: the name of the hitch. must be aerotow if you want to do
|
|
aerotow via multiplayer. You will find many properties
|
|
at /sim/hitches/name. Most of them are directly tied to
|
|
the internal variables, you can modify them as you like.
|
|
You can add a listener to the property "broken", e. g. for
|
|
playing a sound.
|
|
x,y,z: The position of the hitch
|
|
force-is-calculated-by-other: if you want to simulate aerotowing
|
|
over the internet, set this value to "1" in the motor
|
|
aircraft. Don't specify or set this to zero in gliders.
|
|
In a LAN the time lag might be small enough to set it on
|
|
both aircrafts to "0". It's intended, that this is done
|
|
automatically in the future.
|
|
|
|
tow: The tow used for aerotow or winch. This must be a subelement
|
|
of an enclosing <hitch> tag.
|
|
length: upstretched length in m
|
|
weight-per-meter: in kg/m
|
|
elastic-constant: lower values give higher elasticity
|
|
break-force: in N
|
|
mp-auto-connect-period: the every x seconds a towed multiplayer
|
|
aircraft is searched. If found, this tow is connected
|
|
automatically, parameters are copied from the other
|
|
aircraft. Should be set only in the motor aircraft, not
|
|
in the glider
|
|
|
|
winch: The tow used for aerotow or winch. This must be a subelement
|
|
of an enclosing <hitch> tag.
|
|
max-tow-length:
|
|
min-tow-length:
|
|
initial-tow-length: all are in m. The initial tow length also
|
|
defines the length/search radius used for the mp-autoconnect
|
|
feature
|
|
max-winch-speed: in m/s
|
|
power: in kW
|
|
max-force: in N
|
|
|
|
|
|
rotor: A rotor. Used for simulating helicopters. You can have one, two
|
|
or even more.
|
|
There is a drawing of a rotor in the Doc-directory
|
|
(README.yasim.rotor.png) Please find the measures from this drawing
|
|
for several parameters in square brackets [].
|
|
If you specify a rotor, you do not need to specify a wing or hstab,
|
|
the settings for approach and cruise will be ignored then. You have
|
|
to specify the solver results manually. See below.
|
|
The rotor generates downwash acting on all stabs, surfaces and
|
|
fuselages. For all fuselages in the rotor downwash you should
|
|
specify idrag="0" to get realistic results.
|
|
|
|
name: The name of the rotor.
|
|
(some data is stored at /rotors/name/)
|
|
The rpm, cone angle, yaw angle and roll angle are stored
|
|
for the complete rotor. For every blade the position
|
|
angle, the flap angle and the incidence angle are stored.
|
|
All angles are in degree, positive values always mean "up".
|
|
This is not completely tested, but seem to work at least
|
|
for rotors rotating counterclockwise.
|
|
A value stall gives the fraction of the rotor in stall
|
|
(weighted by the fraction the have on lift and drag
|
|
without stall). Use this for modifying the rotor-sound.
|
|
x,y,z: The position of the rotor center
|
|
nx,ny,nz: The normal of the rotor (pointing upwards, will be
|
|
normalized by the computer)
|
|
fx,fy,fz: A Vector pointing forward, if not perpendicular to the
|
|
normal it will be corrected by the computer
|
|
diameter: The diameter in meter [D]
|
|
numblades: The number of blades
|
|
weightperblade: The weight per blade in pounds
|
|
relbladecenter: The relative center of gravity of the blade. Maybe
|
|
not 100% correct interpreted; use 0.5 for the start and
|
|
change in small steps [b/R]
|
|
chord: The chord of the blade its base, along the X axis
|
|
(not normal to the leading edge, as it is
|
|
sometimes defined). [c]
|
|
twist: The difference between the incidence angle at the
|
|
blade root and the incidence angle at the wing
|
|
tip. Typically, this is a negative number so
|
|
that the rotor tips have a lower angle of attack.
|
|
taper: The taper fraction, expressed as the tip chord
|
|
divided by the root chord. A taper of one is a
|
|
bar blade, and zero would be a blade ending
|
|
at a point. Defaults to one. [d/c]
|
|
rel-len-where-incidence-is-measured: If the blade is twisted,
|
|
you need a point where to measure the incidence angle.
|
|
Zero means at the base, 1 means at the tip. Typically
|
|
it should be something near 0.7
|
|
rel-len-blade-start: Typically the blade is not mounted in the
|
|
center of the rotor [a/R]
|
|
rpm: rounds per minute.
|
|
phi0: initial position of this rotor
|
|
ccw: determines if the rotor rotates clockwise (="0") or
|
|
counterclockwise (="1"), (if you look on the top of the
|
|
normal, so the bo105 has counterclockwise rotor).
|
|
"true" and "false" are not any longer supported to
|
|
increase my lifespan. ;-)
|
|
maxcollective: The maximum of the collective incidence in degree
|
|
mincollective: The minimum of the collective incidence in degree
|
|
maxcyclicele: The maximum of the cyclic incidence in degree for
|
|
the elevator like function
|
|
mincyclicele: The minimum of the cyclic incidence in degree for
|
|
the elevator like function
|
|
maxcyclicail: The maximum of the cyclic incidence in degree for
|
|
the aileron like function
|
|
mincyclicail: The minimum of the cyclic incidence in degree for
|
|
the aileron like function
|
|
airfoil-incidence-no-lift: non symmetric airfoils produces lift
|
|
with no incidence. This is is the incidence, where the
|
|
airfoil is producing no lift. Zero for symmetrical airfoils
|
|
(default)
|
|
incidence-stall-zero-speed:
|
|
incidence-stall-half-sonic-speed: the stall incidence is a function
|
|
of the speed. I found some measured data, where this is
|
|
linear over a wide range of speed. Of course the linear
|
|
region ends at higher speeds than zero, but just
|
|
extrapolate the linear behavior to zero.
|
|
lift-factor-stall: In stall airfoils produce less lift. Without
|
|
stall the c-lift of the profile is assumed to be
|
|
sin(incidence-"airfoil-incidence-no-lift")*liftcoef;
|
|
And in stall:
|
|
sin(2*(incidence-"airfoil-incidence-no-lift"))*liftcoef*...
|
|
..."lift-factor-stall";
|
|
Therefore this factor is not the quotient between lift
|
|
with and without stall. Use 0.28 if you have no idea.
|
|
drag-factor-stall: The drag of an airfoil in stall is larger than
|
|
without stall.
|
|
Without stall c-drag is assumed to be
|
|
abs(sin(incidence-"airfoil-incidence-no-lift"))...
|
|
..*dragcoef1+dragcoef0);
|
|
With stall this is multiplied by drag-factor
|
|
stall-change-over: For incidence<"incidence-stall" there is no stall.
|
|
For incidence>("incidence-stall"+"stall-change-over") there
|
|
is stall. In the range between this incidences it is
|
|
interpolated linear.
|
|
|
|
pitch-a:
|
|
pitch-b: collective incidence angles, If you start flightgear
|
|
with --log-level=info, flightgear reports lift and needed
|
|
power for theses incidence angles
|
|
forceatpitch-a:
|
|
poweratpitch-b:
|
|
poweratpitch-0: old tokens, not supported any longer, the result are
|
|
not exactly the expected lift and power values. Will be
|
|
removed in one of the next updates.directly.Use "real"
|
|
coefficients instead (see below) and adjust the lift with
|
|
rotor-correction-factor.
|
|
|
|
The airfoil of the rotor is described as follows:
|
|
The way is to define the lift and drag coefficients directly.
|
|
Without stall the c-lift of the profile is assumed to be
|
|
sin(incidence-"airfoil-incidence-no-lift")*liftcoef;
|
|
And in stall:
|
|
sin(2*(incidence-"airfoil-incidence-no-lift"))*liftcoef*...
|
|
..."lift-factor-stall";
|
|
Without stall c-drag is assumed to be
|
|
abs(sin(incidence-"airfoil-incidence-no-lift"))...
|
|
..*dragcoef1+dragcoef0);
|
|
See above, how the coefficients are defined with stall.
|
|
The parameters:
|
|
airfoil-lift-coefficient: liftcoef
|
|
airfoil-drag-coefficient0: dragcoef0
|
|
airfoil-drag-coefficient1: dragcoef1
|
|
To find the right values: see README.yasim.rotor.ods
|
|
(Open Office file) or README.yasim.rotor.xls (Excel
|
|
file). With theses files you can generate graphs of the
|
|
airfoil coefficients and adjust the parameters to match
|
|
real airfoils. For many airfoils you find data published
|
|
in the internet. Parameters for the airfoils NACA 23012
|
|
(main rotor of bo105) and NACA 0012 (tail rotor of bo105?)
|
|
are included.
|
|
|
|
rotor-correction-factor:
|
|
If you calculate the lift of a heli rotor or even of a
|
|
propeller, you get a value larger than the real measured
|
|
one. (Due to vortex effects.) This is considered in the
|
|
simulation, but with a old theory by Prantl, which is known
|
|
to give still too large. This is corrected by this token,
|
|
default: 1
|
|
flapmin: Minimum flapping angle. (Should normally never reached)
|
|
flapmax: Maximum flapping angle. (Should normally never reached)
|
|
flap0: Flapping angle at no rotation, i.e. -5
|
|
dynamic: this changes the reactions speed of the rotor to an input.
|
|
normally 1 (Maybe there are rotors with a little faster
|
|
reaction, than use a value a little greater than one.
|
|
A value greater than one will result in a more inert,
|
|
system. Maybe it's useful for simulating the rotor of the
|
|
Bell UH1
|
|
rellenflaphinge: The relative length from the center of the rotor
|
|
to the flapping hinge. Can be taken from pictures of the
|
|
helicopter (i.e. 0 for Bell206, about 0.05 for most
|
|
rotors) For rotors without flapping hinge (where the blade
|
|
are twisted instead, i.e. Bo 105, Lynx) use a mean value,
|
|
maybe 0.2. This value has a extreme result in the behavior
|
|
of the rotor [F/r]
|
|
sharedflaphinge: determines, if the rotor has one central flapping
|
|
hinge (="1") for the blades (like the Bell206) or the tail
|
|
rotor of the Bo 105, default is "0".
|
|
delta3: Some rotors have a delta3 effect, which results in a
|
|
decreasing of the incidence when the rotor is flapping.
|
|
A value of 0 (as most helicopters have) means no change in
|
|
incidence, a value of 1 result in a decreases of one degree
|
|
per one degree flapping.
|
|
So delta3 is the proportional factor between flapping and
|
|
decrease of incidence. I.e. the tail rotor of a Bo105 has
|
|
a delta3 of 1.
|
|
In some publications delta3 is described by an angle. The
|
|
value in YASim is the atan of this angle
|
|
delta: A factor for the damping constant for the flapping. 1 means
|
|
a analytical result, which is only a approximation. Has a
|
|
very strong result in the reaction of the rotor system on
|
|
control inputs.
|
|
If you know the flapping angle for a given cyclic input you
|
|
can adjust this by changing this value. Or if you now the
|
|
maximum roll rate or ...
|
|
translift-maxfactor: Helicopters have "translational lift", which
|
|
is due to turbulence. In forward flying the rotor gets less
|
|
turbulence air and produces more lift. The factor is the
|
|
quotient between lift at high airspeeds to the lift at
|
|
hover (with same pitch).
|
|
translift-ve: the speed, where the translational lift reaches 1/e of
|
|
the maximum value. In m/s.
|
|
ground-effect-constant: Near to the ground the rotor produces more
|
|
torque than in higher altitudes. The ground effect is
|
|
calculated as
|
|
factor = 1+diameter/altitude*"ground-effect-constant"
|
|
number-of-parts:
|
|
number-of-segments: The rotor is simulated in "number-of-parts"
|
|
different directions.
|
|
In every direction the rotor is simulated at
|
|
number-of-segments points. If the value is to small, the
|
|
rotor will react unrealistic. If it is to high, cpu-power
|
|
will be wasted. I now use a value of 8 for
|
|
"number-of-parts" and 8 for number-of-segments for the main
|
|
rotor and 4 for "number-of-parts" and 5 for
|
|
"number-of-segments" for the tail rotor.
|
|
"number-of-parts" must be a multiple of 4 (if not, it
|
|
is corrected)
|
|
cyclic-factor: The response of a rotor to cyclic input is hard to
|
|
calculate (its a damped oscillator in resonance, some
|
|
parameters have very large impact to the cyclic response)
|
|
With this parameter (default 1) you can adjust the
|
|
simulator to the real helo.
|
|
|
|
All rotor can have <control> subelements for the cyclic
|
|
(CYCLICELE, CYCLICAIL) and collective (COLLECTIVE) input.
|
|
|
|
rotorgear: If you are using one ore more rotors you have to define a
|
|
rotorgear. It connects all the rotors and adds a simple engine.
|
|
In future it will be possible, to add a YASim-engine.
|
|
max-power-engine: the maximum power of the engine, in kW.
|
|
engine-prop-factor: the engine is working as a pd-regulator. This
|
|
is the width of the regulation-band, or, in other words,
|
|
the inverse of the proportional-factor of the regulator.
|
|
If you set it to 0.02, than up to 98% of the rotor-rpm
|
|
the engine will produce maximum torque. At 100% of
|
|
the engine will produce no torque. It is planned to use
|
|
YASim-engines instead of this simple engine.
|
|
engine-accel-limit: The d-factor of the engine is defined as the
|
|
maximum acceleration rate of the engine in %/s,
|
|
default is 5%/s.
|
|
max-power-rotor-brake: the maximum power of the rotor brake, in kW
|
|
at normal rpm (most? real rotor breaks would be overheated
|
|
if used at normal rpm, but this is not simulated now)
|
|
rotorgear-friction: the power loss due to friction in kW at normal
|
|
RPM
|
|
yasimdragfactor:
|
|
yasimliftfactor: the solver is not working with rotor-aircrafts.
|
|
Therefore you have to specify the results yourself.
|
|
10 for drag and 140 for lift seem to be good starting
|
|
values. Although the solve is not invoked for aircrafts
|
|
with at least one rotor, you need to specify the cruise
|
|
and the approach settings. The approach speed is needed to
|
|
calculate the gear springs. Use a speed of approx. 50knots.
|
|
They do not need to match any real value.
|
|
|
|
The rotorgear needs a <control> subelement for the engine
|
|
(ROTORGEARENGINEON) and can have a <control> subelement for the
|
|
rotor brake (ROTORBRAKE).
|
|
|
|
The rotor simulation is still "beta".
|
|
|