## flight_model.cfg - [AIRPLANE_GEOMETRY]

This section is for defining the geometry of an aircraft, which is an important part of the Microsoft Flight Simulator engine, since the flying physics will use, in a large part, the aircraft geometry to simulate the interaction between the SimObject and the physical world. In general, the geometry of the aircraft should be created and edited through the Aircraft Editor, and only tweaked if required through the flight_model.cfg file.

NOTE: This section is not required if you are creating a Helicopter SimObject.

Note that you can find further information on the physics behind this section from the following page:

You can also find a helpful tutorial on the basics of setting up the aircraft geometry from the following page:

The available parameters for the [AIRPLANE_GEOMETRY] section are:

Parameter Description Type Required
wing_area

Total area of the top surface of the wing from tip-to-tip, in sqft. The wing area impacts the target lift and drag forces. For example it directly impacts lift proportionally to the area:

$L = 0.5 \times p \times v \times v \times WingArea \times C_L$

Float Yes
wing_span

The horizontal distance between the two wing tips, in ft. The wing span impacts the distribution of the forces over the aircraft, and the larger the wing span the greater the increase in the roll and yaw moment of ailerons and also the resistance to the roll movement of the aircraft.

Float Yes
wing_root_chord

Length of the wing Chord at the intersection of the wing and the fuselage, in ft. The chord over the wing will be automatically computed based on the area, the span and the chord at the root. To get a rectangle shaped wing, enter the average chord into the root chord. To get a triangle shaped wing enter a root chord larger than the average chord.

Float Yes
wing_camber The wing Camber, in degrees. Wing camber here means the difference in virtual incidence or slope between the back region of the wing and the front region of the wing. A wing with a lot of camber has a big curve while a wing with less camber is more streamlined. Wing camber mostly has an impact on the pitch moment generated at various wing incidences as well as on the position of the aerodynamic center. Float Yes
wing_thickness_ratio

The wing local thickness, calculated as:

$\textrm{local\_chord}(x) \times \textrm{wing\_thickness\_ratio}$

where:

$x = \textrm{lateral coord}$

Value is in ft.

Float Yes
wing_dihedral

This is the angle between the wing leading edge and a horizontal line parallel to the ground, as seen when looking at the front of an aircraft. Technically defined as the dihedral angle Lambda, in degrees. The wing dihedral impacts secondary effects such as induced roll and adverse yaw.

Float Yes
wing_virtualdihedral

Sets the "virtual" dihedral. This values is added to the actual dihedral value, but without moving the surface, proportional to the vertical position of the wing. Note that high wings have more positive virtual dihedral, and low wings have more negative virtual dihedral. You can use this parameter to simulate the pressure build up between wing and fuselage when side slipping.

Default value is 5.0.

Float No
wing_incidence

This is the angle (in degrees) the mean wing Chord makes with a horizontal line parallel to the ground, as seen when looking at the side of an aircraft from the wing tip.

This base wing incidence is calculated when the aircraft surfaces are initially "built" in the simulation and before the normalization of the lift table. The base incidence impacts the zero AoA lift and should be set as closely as possible to the real wing incidence so that the normalization has as little work to do in order to reach the target lift polar. The normalization will readjust this incidence in order to match the target lift coefficient.

Float Yes
wing_twist

This is the difference in wing incidence from the root Chord and the tip Chord of the wing (in degrees). Technically defined as the wing twist epsilon.

Most aircraft have twisted wings in order to increase aileron authority close to and during a stall. This also causes higher incidences towards the root of the wing and will cause these regions to stall earlier, which will cause more symmetrical stalls.

Float Yes
oswald_efficiency_factor

The wing Oswald Efficiency Factor (non dimensional) measures the aerodynamic efficiency of the wing, where a theoretically perfect wing will have a factor of 1.0.

This is the "e" in:

$C_{Di} = \frac {(C_L)^2} {pi \times AR \times e}$

While the aspect ratio is defined by the geometry, this factor impacts the induced drag, and most planes have an oswald factor in the order of 0.7.

Float Yes
wing_winglets_flag

Sets whether the aircraft has winglets (TRUE, 1) or not (FALSE, 0).

This is a legacy FSX parameter not used in the modern flight model. In the modern flight model this effect is natively obtained through aerodynamic simulation of the surfaces defined in the [AIRPLANE_GEOMETRY] section. Use drag_coef_zero_lift, lift_coef_at_drag_zero and induced_drag_scalar to control the target drag polar.

Bool Yes
wing_sweep

The angle of the wing with the lateral axis. This is the angle the leading edge of the wing makes with a horizontal line perpendicular to the fuselage, as seen when looking down on top of an aircraft (expressed in degrees).

Wing sweep has an important impact on secondary effects but also on the location of the wing on the longitudinal axis. The wing will be positioned to align the default 25% aerodynamic center with the aero_center_lift value and a swept wing will have the root in front of the aerodynamic center while the tip will be in the back. The wing will be automatically skewed to align with the target aerodynamic center position.

Float Yes
wing_pos_apex_lon

Currently not used in Microsoft Flight Simulator. Instead you should be using the aero_center_lift parameter.

(Longitudinal (z) distance of the wing apex - as measured at the centerline of the aircraft - from the Datum Reference Point point in ft. This distance is measured positive in the forward (aircraft nose) direction. Note that this value will have no effect if the compute_aero_center value is 0 - which is generally how it should be.)

Float No
wing_pos_apex_vert

Vertical (y) distance of the wing apex - as measured at the centerline of the aircraft - from the Datum Reference Point in ft. This distance is measured positive in the "up" direction.

Float Yes
wing_mindragincidence

This sets the aircraft AoA at which the wing's parasitic drag is minimal (lift induced drag is always minimal when lift is minimal).

Default value is 0.

Float No
htail_area

Area of the static part of the horizontal stabilizer (not counting the elevator area), in sqft. The horizontal stabilizer and elevator will be simulated as a single wing with surfaces positioned in a way that the overall incidence matches the current control surface deflection. This single surface will have the area of htail_area and elevator_area combined. However, we recommend entering the exact area of each surface. This area will impact the pitch moment caused by the elevator deflection as well as the pitch moment caused by the horizontal stabilizer.

Float Yes
htail_span

The horizontal span of the htail and elevator surface, in ft. A large htail span will impact the roll moment of the propeller wash but also resist the aircraft roll movement.

Float Yes
htail_pos_lon

Longitudinal (z) distance of the horizontal tail apex and elevator surface - as measured at the centerline of the aircraft - from the Datum Reference Point in ft. This distance is measured positive in the forward (aircraft nose) direction.

The longitudinal position of the htail impacts the pitch moment of the htail and elevator surfaces. The htail force vectors should be aligned with the real surface.

Float Yes
htail_pos_vert

Vertical (y) distance of the horizontal tail apex and elevator surface - as measured at the centerline of the aircraft - from the Datum Reference Point in ft. This distance is measured positive in the "up" direction.

Depending on the vertical position of the htail, it can get into turbulences created by the wing located in front of it. In extreme situations this can create a deep and unrecoverable stall.

Float Yes
htail_incidence

The default incidence of the htail and elevator surface combination. This is the angle the mean horizontal tail Chord makes with a horizontal line parallel to the ground, as seen when looking at the side of an aircraft from the horizontal tail tip (in degrees).

The aircraft surfaces will be build with this default incidence setting and all performance normalization will be calculated with this incidence. This means that the target lift and drag coefficients will match the aircraft with this htail_incidence default elevator angle. Any other elevator angle will generate different drag and lift coefficients.

We recommend setting the htail_incidence so that the aircraft flies level at cruise speed without any required elevator input and zero elevator trim. This means that the htail_incidence will be the neutral trim for cruise speed. By doing this the lift and drag coefficients of the aircraft will perfectly match the target values during cruise and the drag force will be the most accurate and match the target performance during cruise. This also means that during any other phase, the drag performance of the aircraft won't perfectly match the target formula because of the added drag caused by the added elevator deflection required to maintain a level flight at any other speed. This target formula is expressed as:

${C_D} = {C_{D0}} + K(C_L - C_{L0})^{2}$

However, it is possible to chose a different speed than cruise and set the htail_incidence for that speed.

Float Yes
htail_sweep This is the angle the horizontal tail leading edge makes with a horizontal line perpendicular to the fuselage, as seen when looking down on top of an aircraft (in degrees). Float Yes
htail_thickness_ratio

The horizontal tail local thickness, calculated as:

local_chord(x) * htail_thickness_ratio

where x = lateral coord

Value is in ft.

Float Yes
vtail_area

The fuselage-to-tip area of the static part of the vertical stabilizer (not counting the rudder area), in sqft. The vertical stabilizer and rudder will be simulated as a single wing with surfaces positioned in a way such that the overall incidence matches the current control surface deflection. This single surface will have the area of vtail_area and rudder_area combined. However, we recommend entering the exact area of each surface. This area will impact the yaw moment caused by the rudder deflection as well as the yaw moment caused by the vertical stabilizer.

Float Yes
vtail_span

The vertical tail span is the vertical distance from the vertical tail-fuselage intersection to the tip of the vertical tail, in ft.

A large vtail span will impact the roll moment of the propeller wash but also resist the aircraft roll movement. It will also counter adverse yaw and counter induced roll during rudder inputs.

Float Yes
vtail_sweep This is the angle the vertical tail leading edge makes with a vertical line perpendicular to the fuselage, as seen when looking at the side of the vertical tail (in degrees). Float Yes
vtail_pos_lon

Longitudinal (z) position of the vtail and rudder surface - as measured at the centerline of the aircraft - from the Datum Reference Point in ft. This distance is measured positive in the forward (aircraft nose) direction.

The longitudinal position of the vtail impacts the yaw moment of the vtail and rudder surfaces. The vtail force vectors should be aligned with the real surface.

Float Yes
vtail_pos_vert

Vertical position of the vtail and rudder surface - as measured at the centerline of the aircraft - from the Datum Reference Point in ft. This distance is measured positive in the "up" direction.

Depending on the vertical position of the vtail, it can get into turbulences created by the wing located in front of it. The vertical position of the vtail will impact the roll moment created by the surface.

Float Yes
vtail_thickness_ratio

The vertical tail local thickness, calculated as:

local_chord(x) * vtail_thickness_ratio

where x = lateral coord

Value is in ft.

Float Yes
fuselage_length The fuselage length from nose to tail, in ft. Float Yes
fuselage_diameter The fuselage diameter, in ft. Float Yes
fuselage_center_pos The fuselage center from the Datum Reference Point, in ft.

1D Table of 3 Floats

Yes
fuselage_mindragincidence Aircraft AoA at which the fuselage's drag is minimal.
Default value is 0.
Float No
elevator_area

Area of the moving part of the horizontal stabilizer (not counting the htail area), in sqft.

The horizontal stabilizer and elevator will be simulated as a single wing with surfaces positioned in a way that the overall incidence matches the current control surface deflection. This single surface will have the area of htail_area and elevator_area combined. However, we recommend entering the exact area of each surface. This area will impact the pitch moment caused by the elevator deflection as well as the pitch moment caused by the horizontal stabilizer.

Float Yes
aileron_area The top surface aileron area, in sqft. Float Yes
aileron_to_elevator_gain

Scales the elevator deflection angle in relation to the aileron deflection angle.

Default value is 0.

Float No
rudder_area

Area of the moving part of the vertical stabilizer (not counting the vtail area),in sqft.

The vertical stabilizer and rudder will be simulated as a single wing with surfaces positioned in a way that the overall incidence matches the current control surface deflection. This single surface will have the area of vtail_area and rudder_area combined. However, we recommend entering the exact area of each surface. This area will impact the yaw moment caused by the rudder deflection as well as the yaw moment caused by the vertical stabilizer.

Float Yes
elevator_up_limit

Upper angular limit of the elevator and htail combined control surface, in degrees.

This should be the maximum elevator deflection angle possible and will be scaled down by the elasticity table and the elevator_maxangle_scalar.

Float Yes
elevator_down_limit

Lower angular limit of the elevator and htail combined control surface, in degrees (absolute values only).

This should be the maximum elevator deflection angle possible and will be scaled down by the elasticity table and the elevator_maxangle_scalar.

Float Yes
aileron_up_limit

Upper angular limit of the aileron and wing combined control surface, in degrees.

This should be the maximum aileron deflection angle possible and will be scaled down by the elasticity table and the aileron_effectiveness.

Float Yes
aileron_down_limit

Lower angular limit of the aileron and wing combined control surface, in degrees (absolute values only).

This should be the maximum aileron deflection angle possible and will be scaled down by the elasticity table and the aileron_effectiveness. An excessive aileron down limit may increase the chance of the related wing surface stalling.

Float Yes
aileron_to_rudder_scale

The aileron to rudder ratio, used to link the two.

If set to a value other than 0, the rudder will be controlled by the aileron controller axis instead of the rudder controller axis. The scale defines the ratio between the aileron input applied to the rudder and the original aileron input.

Float Yes
aileron_span_outboard

The outboard aileron span, expressed as a Percent Over 100.

This is the ratio of wing length from the tip to the end of the aileron surface. A larger aileron will increase the roll moment of aileron deflection, but it will also increase the local drag generated by aileron deflection.

Float

Yes
rudder_limit

Angular limit in degrees (absolute values only) of the rudder and vtail combined control surface.

This should be the maximum rudder deflection angle possible and will be scaled down by the elasticity table and the rudder_maxangle_scalar.

Float Yes
rudder_trim_limit

Angular limit in degrees (absolute values only) of the rudder trim.

This deflection adds to the rudder deflection. This should be the maximum rudder trim deflection angle possible and will be scaled down by the elasticity table and the rudder_trim_effectiveness.

Float Yes
elevator_trim_limit

Angular limit in degrees of the elevator trim. This deflection adds to the elevator deflection. This should be the maximum elevator trim deflection angle possible and will be scaled down by the elasticity table and the elevator_trim_effectiveness. Note that this value can be overriden by the elevator_trim_up_limit and elevator_trim_down_limit parameters.

If this value is omitted and the elevator_trim_up_limit and elevator_trim_down_limit have not been set, then the default behavior will be to have no elevator trim applied.

Float No
elevator_trim_neutral

For many aircraft this will be the take off trim setting. The aircraft will start with this trim setting when starting on the ground. This trim setting is not used for performance normalizations nor to achieve the target lift and drag values, and is used for indicators only. The htail_incidence will be used for performance normalization.

Float Yes
elevator_trim_up_limit

Set the upper limit of the elevator trim deflection that makes the aircraft pitch up, in degrees (absolute values only). Note that this will override the value set in elevator_trim_limit, and will be scaled down by the elasticity table and the elevator_trim_effectiveness.

If this parameter is omitted, then the elevator_trim_limit value will be used, and if that parameter is also omitted, then the no elevator trim will be applied.

Float No
elevator_trim_down_limit

Set the lower limit of the elevator trim deflection that makes the aircraft pitch down, in degrees (absolute values only). Note that this value cannot be greater than the value set in elevator_trim_up_limit, and will override the value set in elevator_trim_limit. It will also be scaled down by the elasticity table and the elevator_trim_effectiveness.

If this parameter is omitted, then the elevator_trim_limit value will be used, and if that parameter is also omitted, then the no elevator trim will be applied.

Float No
spoiler_limit

This sets the angular limit of the wing spoilers on an aircraft, in degrees (absolute values only), when the spoiler is in ground configuration.

If this limit is 0, no spoilers exist for the aircraft.

Float Yes
air_spoiler_limit

Angular limit in degrees of the spoiler and wing combined control surface, in degrees (absolute values only) when the spoiler is in the air configuration.

If this value is not set, then it will default to the spoiler_limit value.

Float Yes
spoilerons_available

Indicates whether the spoilers also behave as spoilerons for roll control (if spoilers are available): 0 = FALSE (no spoilerons) or 1 = TRUE.

Spoilerons will add spoiler deflection to aileron deflection based on aileron_to_spoileron_gain and min_ailerons_for_spoilerons.

Bool Yes
aileron_to_spoileron_gain Scales the spoileron deflection angle in relation to the aileron deflection angle set with min_ailerons_for_spoilerons (if spoilerons_available is TRUE). Float Yes
min_ailerons_for_spoilerons

This value is used to indicate at what minimum aileron deflection angle the spoilers become active for roll control, in degrees (absolute values only). Based on aileron_to_spoileron_gain.

Float Yes
min_flaps_for_spoilerons This value is used to indicate the minimum flap handle position where the spoilerons become active, in degrees (absolute values only). Float Yes
spoiler_extension_time Time, in seconds, necessary to fully extend the spoilers. Float Yes
spoiler_handle_available

This is used to configure the airplane with manual controls for the spoiler deflections (TRUE, 1) or not (FALSE, 0).

Bool Yes
spoiler_disabled_by_flaps If TRUE (1), the spoilers will automatically retract when the flaps are extended. Default is FALSE (0). Bool Yes
auto_spoiler_auto_retracts If TRUE (1), the spoilers will automatically retract when the plane speed goes below auto_spoiler_min_speed. Default is TRUE (1). Bool Yes
auto_spoiler_available Sets whether auto spoilers are available (TRUE, 1) or not (FALSE, 0). Bool Yes
auto_spoiler_min_speed The minimum speed (in Knots) at which auto spoiler can activate. Defaults to 0. Float Yes
positive_g_limit_flaps_up

Flap positive load limit when up. Same dimension as gravity vector, in ft per second². Note that if this parameter is not included, then none of the G-Limit flaps parameter will be read and will simply use the default values.

Default value is 4.

The aircraft will crash if the load factor reaches the G limit calculated using this parameter (For more information please see here: Overstress Damage). An aircraft with a load factor hold fly by wire system, will respect these limits as load factor limits.

Float No
positive_g_limit_flaps_down

Flap positive load limit when down. Same dimension as gravity vector, in ft. per second². Note that this parameter is only read when the positive_g_limit_flaps_up has been defined.

Default value is 2.

The aircraft will crash if the load factor reaches the G limit calculated using this parameter (For more information please see here: Overstress Damage). An aircraft with a load factor hold fly by wire system, will respect these limits as load factor limits.

Float No
negative_g_limit_flaps_up

Flap negative load limit when up. Same dimension as gravity vector, in ft. per second². Note that this parameter is only read when the positive_g_limit_flaps_up has been defined.

Default value is 1.5.

The aircraft will crash if the load factor reaches the G limit calculated using this parameter (For more information please see here: Overstress Damage). An aircraft with a load factor hold fly by wire system, will respect these limits as load factor limits.

Float No
negative_g_limit_flaps_down

Flap negative load limit when down. Same dimension as gravity vector, in ft. per second². Note that this parameter is only read when the positive_g_limit_flaps_up has been defined.

Default value is 1.5.

The aircraft will crash if the load factor reaches the G limit calculated using this parameter (For more information please see here: Overstress Damage). An aircraft with a load factor hold fly by wire system, will respect these limits as load factor limits.

Float No
load_safety_factor The load safety factor value. Float Yes
load_g_limiter_g

This is the multiplier on top of the design limits before which damage will begin to accrue. It is used by the autopilot and FBW systems as part of the pitch control limiter.

Default value is 7.5.

Float No
flap_to_aileron_scale The scale defines the ratio of aileron deflection based on flap deflection. Will deflect ailerons when flaps are extended. Float Yes
fly_by_wire

Sets whether fly-by-wire is available (TRUE, 1) or not (FALSE, 0).

A fly by wire control system disconnects the direct connection between yoke and rudder inputs and the control surfaces and adds a computer in between. This allows to activate control modes such as load factor hold.

NOTE: When enabled your aircraft may use the [STALL PROTECTION] system.

Bool Yes
fly_by_wire_from_flaps

Set's the fly-by-wire mode. When set to 0 (FALSE), the fly-by-wire will be in load factor hold mode above 50ft and in direct mode below 50ft. When set to 1 (TRUE), the fly-by-wire will be in load factor hold mode when flaps are retracted and in direct mode when flaps are extended.

Default is 0 (FALSE).

Bool No
elevator_elasticity_table

A table that allows you to scale down the elevator control surface deflection angle depending on the current dynamic pressure. The table has a maximum of 5 values and has the following format:

dynamic_pressure:correction_factor,
dynamic_pressure:correction_factor,
etc...


Pressure is expressed as psf and the yoke correction factor is a Percent Over 100.

The dynamic pressure being airspeed dependent, this allows to reduce deflection based on speed. The [Dev Mode] aircraft debugging tools allow you to get the current dynamic pressure from the Speed debug window. The dynamic pressure can also be obtained with the following formula:

$$\textrm{dynamicpressure} = 0.5 \times \textrm{airdensity} \times \textrm{airspeed} \times \textrm{airspeed}$$

Default value is: 0.0:1.0

2D Table of Floats

No
aileron_elasticity_table

A table that allows you to scale down the aileron control surface deflection angle depending on the current dynamic pressure.

The table has a maximum of 5 values and has the following format:

dynamic_pressure:correction_factor,
dynamic_pressure:correction_factor,
etc...

Pressure is expressed as psf and the yoke correction factor is a Percent Over 100.

The dynamic pressure being airspeed dependent, this allows you to reduce deflection based on speed. The [Dev Mode] aircraft debugging tools allow you to get the current dynamic pressure from the Speed debug window. The dynamic pressure can also be obtained with the following formula:

$$\textrm{dynamicpressure} = 0.5 \times \textrm{airdensity} \times \textrm{airspeed} \times \textrm{airspeed}$$

Default value is: 0.0:1.0

2D Table of Floats

No
rudder_elasticity_table

A table that allows you to scale down the rudder control surface deflection angle depending on the current dynamic pressure. The table has a maximum of 5 values and has the following format:

dynamic_pressure:correction_factor,
dynamic_pressure:correction_factor,
etc...

Pressure is expressed as psf and the yoke correction factor is a Percent Over 100.

The dynamic pressure being airspeed dependent, this allows to reduce deflection based on speed. The [Dev Mode] aircraft debugging tools allow you to get the current dynamic pressure from the Speed debug window. The dynamic pressure can also be obtained with the following formula:

$$\textrm{dynamicpressure} = 0.5 \times \textrm{airdensity} \times \textrm{airspeed} \times \textrm{airspeed}$$

Default value is: 0.0:1.0

2D Table of Floats

No
elevator_trim_elasticity_table

A table that allows you to scale down the elevator control surface deflection angle depending on the current dynamic pressure. The table has a maximum of 5 values and has the following format:

dynamic_pressure:correction_factor,
dynamic_pressure:correction_factor,
etc...

Pressure is expressed as psf and the yoke correction factor is a Percent Over 100.

The dynamic pressure being airspeed dependent, this allows to reduce deflection based on speed. The [Dev Mode] aircraft debugging tools allow you to get the current dynamic pressure from the Speed debug window. The dynamic pressure can also be obtained with the following formula:

$$\textrm{dynamicpressure} = 0.5 \times \textrm{airdensity} \times \textrm{airspeed} \times \textrm{airspeed}$$

Default value is: 0.0:1.0

2D Table of Floats

controls_reactivity_scalar