flight_model.cfg - [CONTACT POINTS]

This section is for defining the points on the aircraft body referential frame which are likely to come in contact with the ground. These parameters are used for aircraft positioning on the ground and also for crash simulations. Contact points should be added through the Aircraft Editor, and only tweaked if required through the flight_model.cfg file.

 

This section has the following parameters:

 

Parameter Description Type Required
static_pitch

The pitch when at rest on the ground, in degrees, where a positive value is "up" and a negative value is "down".

IMPORTANT: Static pitch is only used when the physics simulation for the aircraft is not active: for example in the Hangar or in ready-to-take-off RTCs.

Float Yes
static_cg_height

The altitude of the CG when at rest on the ground, in ft.

IMPORTANT: Static CG height is only used when the physics simualtion for the aircraft is not active: for example in the Hangar or in ready-to-take-off RTCs.

Float
tailwheel_lock Sets whether the tailwheel lock is available (TRUE, 1) or not (FALSE, 0). Bool
gear_system_type Sets the gear system type for the aircraft.

Integer:

  1. 0 = electrical
  2. 1 = hydraulic
  3. 2 = pneumatic
  4. 3 = manual
  5. 4 = none
  6. 5 = undefined
emergency_extension_type Sets the type of emergency extension system that can be used.

Integer:

  1. 0 = None
  2. 1 = Pump
  3. 2 = Gravity
  4. 3 = Hydraulic backup reserve (Needs [HYDRAULIC_SYSTEM])
gear_locked_on_ground Defines whether or not the landing gear handle is locked to down when the plane is on the ground (TRUE, 1) or not (FALSE, 0). Bool
gear_locked_above_speed Defines the speed at which the landing gear handle becomes locked in the up position, in ft per second. Note that a value of -1 can be used to disable this option. Float
locked_tailwheel_max_range

This defines the maximum angle of the tailwheel when locked, in radians. Default is 0.

Float
allow_stopped_steering This can be used to enable (TRUE, 1) steering when the aircraft is stopped or not (FALSE, 0). Bool
max_speed_full_steering Defines the speed under which the full angle of steering is available, in ft per second. Float
max_speed_decreasing_steering Defines the speed above which the angle of steering stops decreasing, in ft per second. Float
min_available_steering_angle_pct Defines the percentage of steering which will always be available even above max_speed_decreasing_steering, in Percent Over 100 Float
max_speed_full_steering_castering Defines the speed under which the full angle of steering is available for free castering wheels, in ft per second. Float
max_speed_decreasing_steering_castering Defines the speed above which the angle of steering stops decreasing for free castering wheels, in ft per second. Float
min_castering_angle Defines the minimum angle a free castering wheel can take (in radians). Float
max_castering_angle Defines the maximum angle a free castering wheel can take (in radians). Float
hyd_need_power_to_function

Sets whether the hydraulic systems for the landing gear require power to function (1, TRUE) or not (0, FALSE). Default value is 1, TRUE.

NOTE: This parameter is only taken into consideration when the gear_system_type parameter is set to 1 (hydraulic).

Bool
max_number_of_points The number of contact points for the aircraft. Note that if this parameter is omitted, then the maximum will be set to 25 and any defined points above this value will be ignored. It should also be noted that the simulation will expect the exact number of point.N definitions as the maximum given here. So, if you have this set to 10, you will need to have defined 10 points (0 - 9). Integer
set_max_compression

This can be used to change the way how the 10th parameter in the  point.N list will be used. If set to 1 (true) then the 10th parameter specifies the maximum compression of the contact point (in feet) instead of the maximum-to-static compression ratio (which is by default, unitless).

Default value is 0 (false).

Boolean No
spring_exponential_fix

This parameter is only required to fix a potential issue related to the 17th parameter in the  point.N definition, "Exponential Constant". When this exponential constant is greater than 1, or very close to 1, the default algorithm lowers the spring force if compression is low. When this is set to 1 (TRUE), if the exponential constant is greater than 1 then it becomes the denominator for the linear spring force curve in the low compression range, and the power of this curve in the high compression range. For more information, see Notes On The Exponential Constant below.

Default value is 0 (FALSE).

Bool No
point.N List of 17 values that define the details related to each contact point. This parameter can be used multiple times to define each of the contact points up to the maximum defined by the max_number_of_points value (note that counting starts at 0, so for 5 points N would be from 0 to 4). For the actual values required, please see below.

17 Value Table of Floats

(see Data Types for more information)

No
(Unless max_number_of_points is greater than 0)

 

 

point.N

The point parameter for a contact point requires a list of 17 values, as shown in the following example:

point.0 = 1, -13, 0, -0.65, 750, 0, 0.523, 90, 0.296, 2.5, 0.794, 0, 0, 0, 165, 165, 1

IMPORTANT! You should define the same amount of points as the max_number_of_points value, otherwise the aircraft will be invalid.

Each of these values is for a specific piece of information about the contact point, which we list in the table below for reference:

 

List Position Description Type Required
0

This sets the type of contact point being defined.

IMPORTANT! If your aircraft features retractable floats, you must define a "wheel" contact point as well as the "float" points in order for the floats to be evaluated as part of the retract/extend process. This contact point can be placed in a position where it does not interfere with the operation of the aircraft.

Integer:

  1. 1 = wheel
  2. 2 = scrape point
  3. 3 = skids
  4. 4 = float
  5. 5 = water rudder
  6. 16 = ski
  7. 17 = propeller
Yes
1 Longitudinal position z relative to Datum Reference Point, in ft. Float Yes
2 Lateral position x relative to Datum Reference Point, in ft. Float Yes
3 Vertical position y relative to Datum Reference Point, in ft. Float Yes
4 Impact damage threshold crash velocity, in ft per minute. Float Yes
5 The brake type the wheel contact uses.

Integer:

  1. 1 = brake on left gear
  2. 2 = brake on right gear
  3. 3 = brake on both gears
Yes if the position 0 contact value is 1 (for a wheel).
6 The wheel radius, in ft. Float Yes if the position 0 contact value is 1 (for a wheel).
7 Wheel max steering angle, in degrees, between -90 and 90. Float Yes if the position 0 contact value is 1 (for a wheel).
8 The static compression coefficient constant (which is used to compute spring reaction when on the ground), in ft. If the contact point is rigid, then set this to 0. Please see Notes On Spring/Damping Factors for more information. Float Yes
9 If the set_max_compression parameter is set to 1 (true) then this specifies the maximum compression of the contact point, in feet. If the parameter is set to 0 (false) then this sets the maximum-to-static compression ratio for the contact point (a unitless value). Please see Notes On Spring/Damping Factors for more information. Float No
10 The damping ratio constant (used to compute ground reaction damping). A value between 0.0 (un-damped) and 1.0 (critically damped). Please see Notes On Spring/Damping Factors for more information. Float Yes
11 Extension time, in seconds. This is the time required to fully extend wheels/water rudder/skis/floats. Float Yes
12 Retraction time, in seconds. This is the time required to fully retract wheels/water rudder/skis/floats. Float Yes
13 Identifies the type of sound that is going to be played for the contact point.

Integer:

  1. 0 = Center Gear
  2. 1 = Auxiliary Gear
  3. 2 = Left Gear
  4. 3 = Right Gear
  5. 4 = Fuselage Scrape
  6. 5 = Left Wing Scrape
  7. 6 = Right Wing Scrape
  8. 7 = Aux1 Scrape
  9. 8 = Aux2 Scrape
  10. 9 = Tail Scrape
Yes
14 The airspeed limit for gears retraction, in kias. Float No
15

Airspeed above which gear is damaged, in kias.

For more information see here: Landing Gear Damage.

Float No
16 The exponential constant for springs (if in doubt, omit or set to 1). For more information, see Notes On The Exponential Constant below. Float No

 

 

Notes On The Exponential Constant

By default when defining a point.N list, the last value (16) is used to give an exponential constant for the springs. This is used in the spring calculations to change the way they react.  A standard spring will use the following linear curve formula to generate its force:

$$F = k_0 \times x$$

Where:

  • \(F\) is the force (in lbf)
  • \(k_0\) is the spring constant, calculated as \(\frac {\textrm{lbf}}{ft}\)
  • \(x\) is the compression distance.

 

That's the standard spring linear curve, however the simulation does not use this exact curve. Instead, the simulation permits you to supply an exponent so that you do not end up with a standard "linear" spring (unless it is set to 1). This means that the simulation formula is as follows:

$$F = k_1 \times x \times ratio_1$$

Where:

  • \(F\) is the force (in lbf)
  • \(k_1\) is the modified spring constant, calculated as \(k_1 = k_0 \times \frac{n \times MSCR}{1+\frac{n-1}{MSCR^{n-1}}}\)
  • \(x\) is the compression distance in ft
  • \(\textrm{ratio}_1\) is the ratio applied to correct the default linear curve, calculated as \(ratio_1 = \frac{\overline{x} + (n-1) \times \overline{x}^n}{n}\)

The additional terms used in the above calculation are as follows:

  • \(k_0\) is the default linear spring constant, calculated as \(\frac {\textrm{lbf}}{ft}\)
  • \(n\) is the exponential constant (16 in the point list)
  • \(MSCR\) is maximum to static compression ratio (9 in the point list)
  • \(\overline{x}\) is calculated as \(\frac{x}{x_{max}}\)
  • \(x_{max}\) a value greater than 0.1 ft

 

However, this implementation of the formula gives rise to certain issues:

  1. if \(n > 1\) - ie: the curve is not linear - then the formula lowers the spring force if compression is low, making the spring very weak at low compression ranges.
  2. if \(n > 1\) but close to 1, then the formula is incorrect and still differs significantly from the base linear curve formula.

This can be fixed by having your aircraft use the updated formula by setting the spring_exponential_fix parameter to 1 (true). The updated formula looks like this:

 $$F = k_0 \times x \times ratio_2$$

Where:

  • \(F\) is the force (in lbf)
  • \(k_0\) is the default linear spring constant, calculated as \(\frac {\textrm{lbf}}{ft}\)
  • \(x\) is the compression distance (in \({ft}\))
  • \(\textrm{ratio}_2\) is the ratio applied to correct the default linear curve, calculated as \(ratio_2 = \frac{1}{n} + (R \times x^{n-1} - \frac{1}{n}) \times \overline{x}\)

The additional terms used in the above calculation are as follows:

  • \(\overline{x}\) is calculated as \(\frac{x}{x_{max}}\)
  • \(n\) is the exponential constant (16 in the point list)
  • \(R\) calculated as \(\frac{A}{k_0} = \frac{MSCR+\frac{1-MSCR}{n}}{SC^{n-1}}\)
  • \(SC\) is the static compression (in ft) under load \(W\) (in lbf)
  • \(A\) is the load calculation \(W \times \frac{MSCR+\frac{1-MSCR}{n}}{SC^n}\)

 

Using this new calculation we get the following:

  • Force \(F\) will be \(\frac{K_0}{n} \times x\) as \(\overline{x}\) approaches 0, which gives us the low compression range
  • Force \(F\) will be \(A \times x^n\) as \(\overline{x}\) approaches 1, which gives us the high compression range

 

Essentially, When the spring_exponential_fix parameter to 1 (true), if the exponential constant is greater than 1 then it becomes the denominator for the linear spring force curve in the low compression range, and the power of this curve in the high compression range.

 

It is worth noting that this curve formula can be visualised using the following Excel document, where you can edit the values highlighted in blueLanding_Gear_ExpoConstant.xlsx

 

 

Notes On Spring/Damping Factors

By default the spring factor and damping factor for the landing gear is calculated automatically based on the value of the static compression of the landing gear when parked parked (specified by parameter 9 of the contact point.N), using the maximum gross weight of the aircraft and taking into account the location of the contact point relative to the center of gravity.

 

However, this default method is only used for landing gear that are all of the type wheel. For other types of landing gear (Skids, Skis and Floats), and mixed types of landing gear (wheels + some other landing gear type), the following process is used to determine the spring and damping factors:

 

  1. The simulation will check through the list of contact points and find the first spring reaction contact point - either a wheel, skid, or a ski - which is located in front of the center of gravity of the empty aircraft. This contact point will initially be considered as main front landing gear.
  2. If there is another spring reaction contact point which is located towards the front of the center of gravity of the empty aircraft, then that will be the contact point that is considered as the main front landing gear (so, the second contact point) .
  3. The simulation then calculates the spring factor and damping factor for this basic "main" front contact point, taking into account its location relative to the empty center of gravity, and the point.N parameters: static compression, max/static compression ratio and damping ratio (8, 9 and 10 in the point list).
  4. These newly calculated spring and damping factors are transmitted to all contact points of the type skid and ski - but not wheels - which are located in front of the center of gravity of the empty aircraft. Therefore, the location of all these contact points and their static compression, max/static compression ratio and damping ratio parameters don't matter at all.
  5. The simulation then does the same thing for the rear landing gear, ie: finds the first (or the second if there are two) spring reaction contact point in the list which is located behind the center of gravity of the empty aircraft, calculates the spring factor and damping factor for this contact point, then applies these values to all rear skid or ski contact points.
  6. Finally, the simulation will repeat the same procedure (steps 1 - 5, above) for float contact points, this time only taking into account float type contact points.

 

As you can see, the order in which the contact points are defined in the list can play significant role.

 

 

Notes On Skids

If you are defining the contact points for skids, there are a few things that you should be aware of:

 

  • The maximum number of contact points for skid-type retractable landing gear is 6 (previously this was limited to only 2). These are:
    • Center Front Skid
    • Center Rear Skid
    • Left Front Skid
    • Left Rear Skid
    • Right Front Skid
    • Right Rear Skid

 

  • The initialisation rules for skids when reading the contact point list from the flight_model.cfg file are as follows:
    • If the contact point is of skid type and is retractable (ie: it has non-zero retraction and extension times), then the skid position is determined by the lateral X coordinate of the contact point, where:
      • The skid is on the left if X < -0.1 ft.
      • The skid is on the right if X > 0.1 ft.
      • Any value other than those, and the skid is considered as being in the center.
    • The front and rear skids on each side are then initialized based on the longitudinal Z coordinate of the contact points. If there is only one skid on one side, the skid will be considered as the front skid if the longitudinal coordinate Z > 0, otherwise it will be considered as the rear skid.
    • If more than 2 skids are mistakenly found in the list of contact points for any side, the others are ignored.

 

  • Retractable skids can be used in addition to wheels (whether the wheels are retractable or not).

 

  • The initialization method of retractable skids in the FLT Files (including in the game-menu hangar) is similar to the wheel-type retractable landing gear, ie: Gear1 for the center skid(s), Gear2 for the left skid(s), Gear3 for the right skid(s).

 

Finally, it is worth noting that the following SimVars can also be used for skids: