From 9f8e759f368b9433b1b3cc7c327cf9366dc79999 Mon Sep 17 00:00:00 2001 From: vmmeazza <vmmeazza> Date: Mon, 29 Sep 2008 09:02:44 +0000 Subject: [PATCH] Add Flap Effectivness --- Docs/README.yasim | 1668 +++++++++++++++++++++++---------------------- 1 file changed, 835 insertions(+), 833 deletions(-) diff --git a/Docs/README.yasim b/Docs/README.yasim index f21ef7ff6..7879bb1be 100644 --- a/Docs/README.yasim +++ b/Docs/README.yasim @@ -1,833 +1,835 @@ -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. - -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 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. - downwashfactor: A factor for the downwash of the rotor, default 1. - balance: The balance of the rotor. 1.0: the rotor is 100% balanced, - 0.0: half of the blades are missing. Use a value near one - (0.98 ... 0.999) to add some vibration. - tiltcenterx: - tiltcentery: - tiltcenterz: The center for the tilting of the complete rotorhead/ - mast. Can be used for simulating of the Osprey or small - autogyros. - mintiltyaw: - mintiltpitch: - mintiltroll: - maxtiltyaw: - maxtiltpitch: - maxtiltroll: The limits (in degree) for tilting the rotor head - - All rotor can have <control> subelements for the cyclic - (CYCLICELE, CYCLICAIL) and collective (COLLECTIVE) input. - and can have <control> subelements for the tilting the whole rotor - head around the y-axis (TILTPITCH), the x-axis (TILTROLL) and the - z-axis (TILTYAW). ROTORBALANCE is a factor for the balance. - -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 furhter <control> subelements: - ROTORBRAKE: rotor brake - ROTORRELTARGET: the target rpm of the engine relative to - the "normal" value for the governor. Default is - 1. - ROTORENGINEMAXRELTORQUE: the maximum torque of the engine - relativ to the torque defined by the engine- - power. Default is 1. By setting the rel-target - to a large number you get control over the - engine by this control. - Alternativ you can use these two values for - individual start-up sequences (see the s58) - +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. + +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 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. + FLAP[0/1]EFFECTIVENESS - a multiplier for flap lift, but not drag + (useful for blown flaps + 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. + downwashfactor: A factor for the downwash of the rotor, default 1. + balance: The balance of the rotor. 1.0: the rotor is 100% balanced, + 0.0: half of the blades are missing. Use a value near one + (0.98 ... 0.999) to add some vibration. + tiltcenterx: + tiltcentery: + tiltcenterz: The center for the tilting of the complete rotorhead/ + mast. Can be used for simulating of the Osprey or small + autogyros. + mintiltyaw: + mintiltpitch: + mintiltroll: + maxtiltyaw: + maxtiltpitch: + maxtiltroll: The limits (in degree) for tilting the rotor head + + All rotor can have <control> subelements for the cyclic + (CYCLICELE, CYCLICAIL) and collective (COLLECTIVE) input. + and can have <control> subelements for the tilting the whole rotor + head around the y-axis (TILTPITCH), the x-axis (TILTROLL) and the + z-axis (TILTYAW). ROTORBALANCE is a factor for the balance. + +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 furhter <control> subelements: + ROTORBRAKE: rotor brake + ROTORRELTARGET: the target rpm of the engine relative to + the "normal" value for the governor. Default is + 1. + ROTORENGINEMAXRELTORQUE: the maximum torque of the engine + relativ to the torque defined by the engine- + power. Default is 1. By setting the rel-target + to a large number you get control over the + engine by this control. + Alternativ you can use these two values for + individual start-up sequences (see the s58) +