Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(a380x/flight model): Fix pitchup and unrecoverable stall #9645

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@
1. [ELEC] Improved elec system startup behaviour - @Gurgel100 (Pascal) - @saschl
1. [A380X] Improve pilot and copilot camera positions - @heclak (Heclak)
1. [A380X/EFIS] Illuminate ND range and mode selectors during light test - @BravoMike99 (bruno_pt99)
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
Loading