Skip to content

Commit

Permalink
fix(a380x/flight model): Fix pitchup and unrecoverable stall (flybywi…
Browse files Browse the repository at this point in the history
…resim#9645)

* Update flight_model.cfg

* Update flight_model.cfg

* Update CHANGELOG.md

* Update flight_model.cfg

* Update flight_model.cfg

---------

Co-authored-by: floridude <[email protected]>
  • Loading branch information
donstim and flogross89 authored Dec 29, 2024
1 parent 763a4e1 commit d028e95
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 57 deletions.
1 change: 1 addition & 0 deletions .github/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@
1. [A380X/ANIM] Animation of flaps now from FPPU position. Interim fix for spoiler low end animation - @Crocket63 (crocket)
1. [A380X/ENGINES] Adjust climb thrust to be more accurate - @BlueberryKing (BlueberryKing)
1. [A380X/EWD] Show THR limit in EWD instead of N1 - @flogross89 (floridude)
1. [A380X/FLIGHT MODEL] Fix pitchup and unrecoverable stall - - @donstim (donbikes#4084)

## 0.12.0

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,6 @@
; SPDX-License-Identifier: GPL-3.0

; A380 MSN 225 - WV03 A380-842
; 07 Mar 2023 - Fuel System Update

; 10 Feb 2024 - Masses (tanks/cargo) shift 5m fwd to match visual model
; Contact point of wing gear slightgly set higher so it gets less plane weight (shift weight on nose)
; Main gears contact points pushed a bit aft as a compromise between correct tilt animation and weight distribution

; 14 Feb 2024 - Moved CG while keeping correct %Mac offset by moving aero center forward
; Changed contact points and empty mass to match real MSN empty weight load sheet

; 15 Feb 2024 - Activate new spring method and update strut springs

; 19 Jul 2024 - Adjust CG, wheels and fuel tanks to correct model origin to Airbus reference datum offset
; The position of the nose in the model coord. system is 35.1927m. The Airbus reference datum distance from the nose is 7.33m.
; So, the conversion from HArm value to model coordinates in m is: model_coord = (35.1927m + 7.33m) - harm_value

; 13 Sept 2024 fixed some invalid entries in the trigger section

; 22 Oct 2024 Fixed numerous issues with the fuel system. Code added to address MSFS fuel system issues and restrict transfers until airplane is in flight.

[VERSION]
major = 1
Expand All @@ -37,9 +19,9 @@ reference_datum_position = 0, 0, 0 ; Position of reference datum relative to FS(
empty_weight_CG_position = 6.47, 0, 2.8 ; Position of airplane empty weight CG relative to reference datum (FEET), z, x, y Should give empty weight cg of 36.2%RC
CG_forward_limit = 0.28 ; Gravity center forward limit (longitudinal offset) for longitudinal stability
CG_aft_limit = 0.44 ; Gravity center after limit (longitudinal offset z) w.r.t reference datum for longitudinal stability (FEET)
empty_weight_pitch_MOI = 79112140 ; Empty pitch moment of inertia, Jxx (SLUG SQ FEET)
empty_weight_roll_MOI = 35568930 ; Empty roll moment of inertia, Jzz (SLUG SQ FEET)
empty_weight_yaw_MOI = 109433436 ; Empty yaw moment of inertia, Jyy (SLUG SQ FEET)
empty_weight_pitch_MOI = 53233642 ; Empty pitch moment of inertia, Jxx (SLUG SQ FEET)
empty_weight_roll_MOI = 53147216 ; Empty roll moment of inertia, Jzz (SLUG SQ FEET)
empty_weight_yaw_MOI = 102443484 ; Empty yaw moment of inertia, Jyy (SLUG SQ FEET)
empty_weight_coupled_MOI = 1000 ; Empty transverse moment of inertia, Jyz (SLUG SQ FEET)
activate_mach_limit_based_on_cg = 0 ; Activate mach limitation depending on CG position (true if > 0 /false othewise). Mostly for Concorde).
activate_cg_limit_based_on_mach = 0 ; Activate cg limitation depending on mach value (true if > 0 /false othewise). Mostly for Concorde).
Expand Down Expand Up @@ -515,15 +497,15 @@ wing_dihedral = 6.5 ; Dihedral angle Lambda (DEGREES)
wing_incidence = 2 ; Wing incidence (DEGREES) (unknown)
wing_twist = -5.5 ; Wing twist epsilon (DEGREES)
oswald_efficiency_factor = 0.70 ; Wing Oswald efficiency factor e (non dimensional)
wing_winglets_flag = 0 ; Has winglets true/false (MSFS doesn't use this parameter)
wing_winglets_flag = 0 ; Has winglets true/false
wing_sweep = 37 ; Wing sweep (DEGREES)
;wing_pos_apex_lon = 0 ; Longitudinal (z) position of wing apex w.r.t reference datum (FEET) (not used)
wing_pos_apex_vert = -2 ; Vertical (y) position of wing apex w.r.t reference datum (FEET) (estimated from mesh drawing)
htail_area = 1250 ; Horizontal tail area (SQUARE FEET) -original 1603
htail_span = 80 ; Horizontal tail span (FEET) -OLD VALUE 83.50
htail_pos_lon = -105 ; Longitudinal (z) position of horizontal tail w.r.t reference datum (FEET) -76.6
htail_pos_vert = 13.8 ; Vertical (y) position of horizontal tail w.r.t reference datum (FEET) 13.8 11.35 -OLD VALUE 14.8
htail_incidence = -2 ; Horizontal tail incidence (DEGREES) OLD VALUE 0
wing_pos_apex_vert = -2 ; Vertical (y) position of wing apex w.r.t reference datum (FEET)
htail_area = 1250 ; Horizontal tail area (SQUARE FEET)
htail_span = 80 ; Horizontal tail span (FEET)
htail_pos_lon = -105 ; Longitudinal (z) position of horizontal tail w.r.t reference datum (FEET)
htail_pos_vert = 13.8 ; Vertical (y) position of horizontal tail w.r.t reference datum (FEET)
htail_incidence = -2 ; Horizontal tail incidence (DEGREES)
htail_sweep = 38 ; Horizontal tail sweep angle (DEGREES)
htail_thickness_ratio = 0.02 ; Local thickness is local_chord(x)*htail_thickness_ratio, x = lateral coord
vtail_area = 2800.4 ; Vertical tail area (SQUARE FEET)
Expand All @@ -539,9 +521,9 @@ elevator_area = 500 ; Elevator area (SQUARE FEET) OLD VALUE 593
aileron_area = 258 ; Elevator area (SQUARE FEET)
rudder_area = 416.6 ; Elevator area (SQUARE FEET)
elevator_up_limit = 30 ; Elevator max deflection up angle (DEGREES) Real value is 30
elevator_down_limit = 20 ; Elevator max deflection down angle (absolute value) (DEGREES) Real value is 17
aileron_up_limit = 30; Aileron max deflection angle (DEGREES) Real value is 25
aileron_down_limit = 20; Aileron max deflection down angle (absolute value) (DEGREES) Real value is 25
elevator_down_limit = 20 ; Elevator max deflection down angle (absolute value) (DEGREES)
aileron_up_limit = 30; Aileron max deflection angle (DEGREES)
aileron_down_limit = 20; Aileron max deflection down angle (absolute value) (DEGREES)
rudder_limit = 30; Rudder max deflection angle (absolute value) (DEGREES)
rudder_trim_limit = 25.5 ; Rudder trim max deflection angle (absolute value) (DEGREES)
elevator_trim_up_limit = 10 ; Elevator trim max angle (absolute value) (DEGREES)
Expand Down Expand Up @@ -569,7 +551,7 @@ fly_by_wire = 0 ; Fly-by-wire available true/false
elevator_elasticity_table = 0:1, 400:1
aileron_elasticity_table = 0:1, 400:1
rudder_elasticity_table = 0:1, 400:1
elevator_trim_elasticity_table = 0:1, 400:1
elevator_trim_elasticity_table = 0:0.3, 40:0.50, 55:1.2, 80:1.45, 400:1.7
;controls_reactivity_scalar = 1 ; Reactivity scalar for all controls


Expand All @@ -578,19 +560,19 @@ lift_coef_pitch_rate = -47.338 ; The change in lift per change in pitch rate
lift_coef_daoa = 0 ; lift per change in angle of attack rate
lift_coef_delta_elevator = -1.143 ; The change in lift per change in elevator deflection
lift_coef_horizontal_incidence = 0 ; The change in lift per change in horizontal incidence angle
lift_coef_flaps = 1.905 ; Change in lift due to flaps
lift_coef_flaps = 1.505 ; Change in lift due to flaps
lift_coef_spoilers = -0.546875 ; Change in lift due to spoilers
drag_coef_zero_lift = 0.015 ; The zero lift drag polar
drag_coef_zero_lift = 0.0249 ; The zero lift drag polar
drag_coef_flaps = 0.0706
drag_coef_gear = 0.0872
drag_coef_gear = 0.079
drag_coef_spoilers = 0.04775; ; Change in drag due to spoilers
side_force_slip_angle = -0.624 ; (yaw angle) The change in side force per change in side slip angle
side_force_roll_rate = 2.069 ; (roll velocity) The change in side force per change in roll rate
side_force_yaw_rate = 8.646 ; (yaw velocity) The change in side force per change in yaw rate
side_force_delta_rudder = -2.507 ; The change in side force per change in rudder deflection
pitch_moment_horizontal_incidence = 0 ; The change in pitch moment per change in horizontal incidence angle
pitch_moment_delta_elevator = -2.716 ; The change in pitch moment per change in elevator deflection
pitch_moment_delta_trim = -2.716 ; The change in pitch moment per change in trim
pitch_moment_delta_elevator = -3.268 ; The change in pitch moment per change in elevator deflection
pitch_moment_delta_trim = -3.268 ; The change in pitch moment per change in trim
pitch_moment_pitch_damping = -73.534 ; The change in pitch moment per change in pitch rate(PRIMARY PITCH STABILITY FACTOR). deg/s
pitch_moment_aoa_0 = -0.151 ; Pitch moment at zero angle - of - attack
pitch_moment_daoa = 0 ; The change in pitch moment per change in angle of attack
Expand All @@ -616,8 +598,8 @@ yaw_moment_delta_rudder_propwash = 0.753 ; (control)
yaw_moment_delta_rudder_trim_scalar = 0.753 ; Change in yaw moment due to rudder trim
compute_aero_center = 0
aero_center_lift = 11 ; Init to center
lift_coef_aoa_table = -3.15:0, 0:0.138, 0.139:1.32, 0.2:1.48, 0.26:1.76, 0.29:1.750, 0.32:1.60, 0.5:1.50, 3.15:0
lift_coef_ground_effect_mach_table = 0.1171:0.7211,0.1411:0.7111,0.1761:0.6811,0.2171:0.6631,0.3171:0.647135503,0.4171:0.637668047,0.5171:0.63293432,0.6171:0.628200592,0.7171:0.625833728,0.8171:0.623466864,1:1
lift_coef_aoa_table = -3.15:0, 0:0.138, 0.139:1.32, 0.2:1.48, 0.314:1.90, 0.36:1.740, 0.5:1.50, 3.15:0
lift_coef_ground_effect_mach_table = 0:0.75, 0.1:0.73, 0.2:0.69, 0.3:0.68, 0.4:0.66, 0.5:0.65, 1.0:0.63
lift_coef_mach_table = 0:1
lift_coef_delta_elevator_mach_table = 0:0
lift_coef_daoa_mach_table = 0:0
Expand All @@ -628,8 +610,8 @@ side_force_slip_angle_mach_table = 0:0
side_force_delta_rudder_mach_table = 0:0
side_force_yaw_rate_mach_table = 0:0
side_force_roll_rate_mach_table = 0:0
pitch_moment_aoa_table = -3.15:0, -0.8:-2.402, -0.4:-1.861, -0.2:-0.842, -0.1:-0.442, 0:0, 0.2:1.173, 0.23:1.337, 0.26:1.489, 0.29:1.723, 0.31:1.919, 0.4:2.276, 0.8:2.992, 3.15:0
pitch_moment_delta_elevator_aoa_table = -180:-1, -40:0.05, -20:0.455, -10:0.853, -5:1.007, 0:1, 5:0.839, 10:0.693, 20:0.381, 40:-0.08, 180:-1; AoA(alpha) is given in DEGREES
pitch_moment_aoa_table = 0:0
pitch_moment_delta_elevator_aoa_table = 0:0; AoA(alpha) is given in DEGREES
pitch_moment_horizontal_incidence_aoa_table = 0:1 ; AoA(alpha) is given in DEGREES
pitch_moment_daoa_aoa_table = 0:1 ; AoA(alpha) is given in DEGREES
pitch_moment_pitch_alpha_table = 0:1 ; AoA(alpha) is given in DEGREES
Expand Down Expand Up @@ -665,6 +647,13 @@ lift_coef_at_drag_zero_flaps = 0.40000
;elevator_lift_coef = 0.5 ; Defines elevator lift vs elevator angle-of-attack
;rudder_lift_coef = 0.5 ; Defines rudder lift vs rudder angle-of-attack
;fuselage_lateral_cx = 0.5; Defines fuselage lift and side force vs fuselage angle-of-attack and beta
StallDef_StartRatio = 4
StallDef_EndRatio = 6
StallDef_airflowdetachspeed = 0.01
Stall_AileronAddIncidence = 7
Stall_TipAddIncidence = 7
presspt_fwd_Alpha0_pMAC = -0.15 ; Forward offset for wing center of pressure at aoa = 0 -- is ratio of local MAC -- positive is forward, negative is aft
presspt_fwd_AlphaStall_pMAC = -0.5 ; ; Forward offset for wing center of pressure at stall aoa -- is ratio of local MAC -- positive is forward, negative is aft

[FLIGHT_TUNING]

Expand All @@ -673,20 +662,20 @@ modern_fm_only = 1; 1 (true) forces use of modern flight model regardless of wha
;icing_scalar = 1 ; Scales effect of icing on lift and weight
cruise_lift_scalar = 0.81
parasite_drag_scalar = 1
induced_drag_scalar = 1
flap_induced_drag_scalar = 0.5
induced_drag_scalar = 0.827
flap_induced_drag_scalar = 0.25
elevator_effectiveness = 1
elevator_maxangle_scalar = 0.7
aileron_effectiveness = 1
rudder_effectiveness = 0.16
rudder_effectiveness = 0.25
rudder_maxangle_scalar = 1
pitch_stability = 4
roll_stability = 0.65
pitch_stability = 2
roll_stability = 1
yaw_stability = 1
pitch_gyro_stability = 6
roll_gyro_stability = 4.5
yaw_gyro_stability = 1
elevator_trim_effectiveness = 1
elevator_trim_effectiveness = 1.1
aileron_trim_effectiveness = 1
rudder_trim_effectiveness = 1
hi_alpha_on_roll = 0
Expand All @@ -698,10 +687,12 @@ gyro_precession_on_yaw = 0
engine_wash_on_roll = 0 ; Torque effect
wingflex_scalar = 0.75
wingflex_offset = -0.25
ground_crosswind_effect_zero_speed = -1000
ground_crosswind_effect_max_speed = -1000
ground_crosswind_effect_zero_speed = 10
ground_crosswind_effect_max_speed = -90
ground_high_speed_steeringwheel_static_friction_scalar = 1
ground_high_speed_otherwheel_static_friction_scalar = 1
clcd_normalization_aoa_deg_low = 0
clcd_normalization_aoa_deg_high = 18

[REFERENCE SPEEDS]
full_flaps_stall_speed = 115 ; Knots True (KTAS)
Expand Down Expand Up @@ -814,10 +805,10 @@ drag_scalar = 1 ; Scalar coefficient to ponderate global flap drag coef (non dim
pitch_scalar = 1 ; Scalar coefficient to ponderate global flap pitch coef (non dimensioned)
max_on_ground_position = 5 ; Dynamically set in-tool to last flap-position index by defaut when -1 is found.
flaps-position.0 = 0.00, -1, 0, 0.0 ; CONF 0
flaps-position.1 = 5.0, -1, 1.00, 1.00 ; CONF 1
flaps-position.2 = 10.00, 222, 0.70, 1.30 ; CONF 1+F
flaps-position.3 = 15.00, 220, 1.30, 1.25 ; CONF 2
flaps-position.4 = 20.00, 196, 1.50, 1.50 ; CONF 3
flaps-position.1 = 5.0, -1, 0.05, 0.01 ; CONF 1
flaps-position.2 = 10.00, 222, 0.22, 1.26 ; CONF 1+F
flaps-position.3 = 15.00, 220, 1.00, 1.30 ; CONF 2
flaps-position.4 = 20.00, 196, 1.50, 1.46; CONF 3
flaps-position.5 = 32.00, 182, 1.00, 1.00 ; CONF FULL

[FLAPS.2]
Expand All @@ -834,8 +825,8 @@ drag_scalar = 0.5 ; Scalar coefficient to ponderate global flap drag coef (non d
pitch_scalar = 1 ; Scalar coefficient to ponderate global flap pitch coef (non dimensioned)
max_on_ground_position = 5 ; Dynamically set in-tool to last flap-position index by defaut when -1 is found.
flaps-position.0 = 0.00, -1, 1.00, 1.00 ; CONF 0
flaps-position.1 = 20.00, 263, 1.85, 0.55 ; CONF 1
flaps-position.2 = 20.01, 222, 0.70, 1.00 ; CONF 1+F
flaps-position.3 = 20.02, 220, 1.30, 1.25 ; CONF 2
flaps-position.4 = 23.00, 196, 1.50, 1.50 ; CONF 3
flaps-position.1 = 20.00, 263, 0.10, 0.01 ; CONF 1
flaps-position.2 = 20.01, 222, 1.00, 1.00 ; CONF 1+F
flaps-position.3 = 20.02, 220, 1.00, 1.25 ; CONF 2
flaps-position.4 = 23.00, 196, 1.50, 1.25 ; CONF 3
flaps-position.5 = 23.01, 182, 1.00, 1.00 ; CONF FULL

0 comments on commit d028e95

Please sign in to comment.