# Aero input and outputs

Properties aerodynamic functions in JSBSim can read and output.

## Function inputs

Location of the aerodynamic reference point in the aircraft structural frame, measured in inches:

/fdm/jsbsim/metrics/aero-rp-x-in /fdm/jsbsim/metrics/aero-rp-y-in /fdm/jsbsim/metrics/aero-rp-z-in

Maximum and minimum alpha (angle of attack) in degrees:

/fdm/jsbsim/aero/alpha-max-deg /fdm/jsbsim/aero/alpha-min-deg

Wing span/(2*Velocity)

/fdm/jsbsim/aero/bi2vel

Wing chord/(2*Velocity)

/fdm/jsbsim/aero/ci2vel

Alpha of the wing in radians (includes the angle of incidence of the wing, if input):

/fdm/jsbsim/aero/alpha-wing-rad

Altitude of CG divided by wing span:

/fdm/jsbsim/aero/h_b-cg-ft

Altitude of MAC (Mean aerodynamic chord) divided by wing span:

/fdm/jsbsim/aero/h_b-mac-ft

Aerodynamic rotational rates in rad/sec (does not include wind effects):

/fdm/jsbsim/velocities/p-rad_sec (roll) /fdm/jsbsim/velocities/q-rad_sec (pitch) /fdm/jsbsim/velocities/r-rad_sec (yaw)

Aerodynamic rotational rates in rad/sec (includes wind effects, if any):

/fdm/jsbsim/velocities/p-aero-rad_sec /fdm/jsbsim/velocities/q-aero-rad_sec /fdm/jsbsim/velocities/r-aero-rad_sec

Aerodynamic velocities (nose, right, below) in ft/sec (includes wind effects, if any):

/fdm/jsbsim/velocities/u-aero-fps /fdm/jsbsim/velocities/v-aero-fps /fdm/jsbsim/velocities/w-aero-fps

The body axis aerodynamic force vector of the aircraft in lbs:

/fdm/jsbsim/forces/fbx-aero-lbs /fdm/jsbsim/forces/fby-aero-lbs /fdm/jsbsim/forces/fbz-aero-lbs

The stability axis aerodynamic force vector of the aircraft in lbs:

/fdm/jsbsim/forces/fwx-aero-lbs /fdm/jsbsim/forces/fwy-aero-lbs /fdm/jsbsim/forces/fwz-aero-lbs

The body axis aerodynamic moment vector of the aircraft in ft-lbs:

/fdm/jsbsim/moments/l-aero-lbsft /fdm/jsbsim/moments/m-aero-lbsft /fdm/jsbsim/moments/n-aero-lbsft

The lift coefficient squared:

/fdm/jsbsim/aero/cl-squared

Dynamic pressure times reference area:

/fdm/jsbsim/aero/qbar-area

Angles of attack and sideslip in radians and degrees (and the magnitudes):

/fdm/jsbsim/aero/alpha-rad /fdm/jsbsim/aero/beta-rad /fdm/jsbsim/aero/mag-beta-rad /fdm/jsbsim/aero/alpha-deg /fdm/jsbsim/aero/beta-deg /fdm/jsbsim/aero/mag-beta-deg

Dynamic pressure in psf:

/fdm/jsbsim/aero/qbar-psf

Dynamic pressure in the body axis XZ plane:

/fdm/jsbsim/aero/qbarUW-psf

Dynamic pressure in the body axis XY plane:

/fdm/jsbsim/aero/qbarUV-psf

Chord:

/fdm/jsbsim/metrics/cbarw-ft

Wingspan:

/fdm/jsbsim/metrics/bw-ft

Wingarea:

/fdm/jsbsim/metrics/Sw-sqft

### Stall hysteresis, normalized:

/fdm/jsbsim/aero/stall-hyst-norm

dany93 wrote on the forums about this:

What I have understood at this point: By setting, say

<hysteresis_limits unit="DEG"> <min>5.0</min> <max>17</max> </hysteresis_limits>

17 deg is typically the stall angle for a wing.

stall-hyst-norm, normally at 0 ('good condition'), switches to 1 ('bad condition') at 17 deg alpha-deg (or corresponding alpha-rad value, different from alpha-wing-rad if wing incidence is not zero). Later on, it returns back to 0 only when alpha-deg comes down to 5 deg (that is with some 'delay'). Close to the usual hysteresis behavior (usually, iron magnetization vs magnetic field, with magnetic field h corresponding to alpha angle for us), but the 'delay' (the return alpha value) is always 5 deg, not dependent on the max value attained by the variable alpha. A kind of 'rectangular' hysteresis loop, more simple but already good for aerodynamics (linear or turbulent) regimes.

This stall-hyst-norm (0 or 1 values) can then be used as a parameter for tables, to set some command sensitivity, lift coefficient, moment, etc, to hold longer in it's 'bad' condition even when the cause has ceased. Stall holds for a longer time, like turbulent regime in the real case.

Logically, the <max> value is close to the critical AoA for stall, but the lift curve and stall-hyst-norm are used independently.

### Time rate of change in alpha and sideslip in deg/sec and rad/sec:

/fdm/jsbsim/aero/alphadot-rad_sec /fdm/jsbsim/aero/betadot-rad_sec /fdm/jsbsim/aero/alphadot-deg_sec /fdm/jsbsim/aero/betadot-deg_sec

## Function outputs

Runtime-created aerodynamic force and moment components from definitions in the <aerodynamics> section of the configuration file (varies per-aircraft):

Alan wrote about lift:

Lift = qbar-psf x Sw-sqft x CL

Lift is a force, CL is the non-dimensional coefficient of lift, qbar-psf x Sw-sqft is the dimensionalisation factor

It is common practice to build up the lift force from several sources.

e.g., for the Lift Axis

Lift = qbar-psf x Sw-sqft x (CLwing +CLtail +CLelevator +CLfuselage +... +...)

here the various lift coefficients are summed before being dimensionalised.

or you can also write

Lift(wing) = qbar-psf x Sw-sqft x CLwing Lift(tail) = qbar-psf x Sw-sqft x CLtail Lift(fuselage) = qbar-psf x Sw-sqft x CLfuselage .... Lift(total) = Lift(wing)+Lift(tail)+Lift(fuselage) +.... +...

here the various lift coefficients are separately dimensionalised to produce a set of forces. These forces are then added to produce the total lift force.

You can write CLwing = CLo + Alpha* dCL/Alpha, or alternatively use a table to generate CL as a function of alpha, Mach no etc.

It is not necessary to slavishly follow the examples in the JSBSim reference manual, or copy other Flightgear examples. It is best to follow the conventions that apply to the data you have available.

JSBsim allows you to specify these equations in any way that suits you, or suits the data that is available.

One thing to be careful about is not including a component twice. e.g. the CL that you are given may already include the tail and fuselage effects, and this case they should not be added in again.