Hi Jimi,
a few thing I have noticed ironing out these backflips:
- G Limiters: Noticed the settings for yoke/elevator position are set to 90% as a triggers - probably due to NATOPS. This results in breaking g limits in our case. When flying at sea level, 450-500kts and you apply full stick/elevator during a turn, the g limiter kicks in and everything is fine, up to the point when you gradually release stick. The bird, e.g. with max. loadout will transition from limited 5.5g relatively fast up to 7.5g and sometimes even g warning will sound. As you apply more stick again, she will get back into the limited 5.5g zone (working with thrust as suitable, in order to keep speed relatively constant). In order to avoid this behaviour I have changed elevator/yoke position values in g limiter sections. During my tests I found these to give the most reliable and smoothest, although still clearly noticeable results, getting in and out of g limits without breaking them.
- The additional two G Limiters I have added, work as wannabe AOA limiters (20deg. and 35deg. for loadouts above 44000lbs and below), suppressing very effectively backflips during tight turns at slow speeds. I have tested these with the following adjusted Elevator Effectiveness table 341 in the .air file - that allows for higher AoAs during slow speed turns, right to the limit - than compared to the current one in use. It differs only in the next-to-last Y value from the one in the above mentioned post.
Y: 0.8 0.75 0.75 0.6 1.0 1.13 1.50
X: -0.262 -0.209 -0.175 0.0 0.175 0.209 0.262
As you may notice, I have removed G Force as a trigger value from the additional two G Limiters, because I have found, that it more hinders than helps in certain conditions, as when you are already below that trigger threshold, it won't snap anymore, e.g. protect against backflips.
- One more thing. In order to battle sideslip due to bank angle, I have adjusted the following values in the .air file, with good results. Table 1101 Primary Aerodynamics > Yaw moments:
- Adjusted Cn_beta - Sideslip from '500' to '-200'. This battles sideslip due to bank angle.
- Adjusted Cn_R - Yaw Rate from '-500' to '-1500'. This entry dampens induced instability due to inverted sideslip, so the jet does not spin out of control around the yaw axis. A must have in order to work for the before mentioned change.
- Adjusted Cn_dr - Rudder (control) from '300' to '150'. Max applied rudder seemed much too strong, could lift entire jet effortlessly at slow speeds at 90deg. bank angle, so I reduced it by 1/2.
Overall result: There is still sideslip due to bank angle, which is good, so the flight envelope still looks natural but it is much more controlled than before. You do not have to pull elevator immediately in order to keep her from slipping during a turn, nor have to react with instantaneous rudder input during straight flight.
As usual, I hope this feedback helps in some way.
Best regards, Peter
P.S. I hope to release an updated version of the mod before the weekend, so you can give it a try.
-----------------------------------------------------------------------------------------------------------------------------------
<!-- G LIMITER: 7.5 -->
(L:FCS_ENABLE, enum) 1 ==
(A:G FORCE,G Force) 7.0 > and
(A:AIRSPEED MACH,Mach) 1.8 < and
(A:TOTAL WEIGHT,pounds) 44000 < and
(A:ELEVATOR POSITION, Percent) 1 > and
(A:YOKE Y POSITION, Percent) 1 > and
if{ 1 (>L:G_LIMITER_7.5_ENABLE, enum) } els{ 0 (>L:G_LIMITER_7.5_ENABLE, enum) }
(L:G_LIMITER_7.5_ENABLE, enum) 1 ==
if{ (A:G FORCE,G Force) 7.5 / (>L:G_LIMIT_RATIO, number) } els{ }
(L:G_LIMITER_7.5_ENABLE, enum) 1 ==
if{ (L:G_LIMIT_RATIO, number) (A:AIRSPEED TRUE, Knots) * (>L:G_LIMIT_VALUE, number) } els{ }
(L:G_LIMITER_7.5_ENABLE, enum) 1 ==
if{ 16383 (L:G_LIMIT_VALUE, number) - -0.9 * (>K:AXIS_ELEVATOR_SET) } els{ }
(A:G FORCE,G Force) 7.5 >
if{ (>K:ELEV_TRIM_DN) } els{ }
<!-- G LIMITER: 5.5 -->
(L:FCS_ENABLE, enum) 1 ==
(A:G FORCE,G Force) 5.0 > and
(A:AIRSPEED MACH,Mach) 1.8 < and
(A:TOTAL WEIGHT,pounds) 44000 > and
(A:ELEVATOR POSITION, Percent) 1 > and
(A:YOKE Y POSITION, Percent) 1 > and
if{ 1 (>L:G_LIMITER_5.5_ENABLE, enum) } els{ 0 (>L:G_LIMITER_5.5_ENABLE, enum) }
(L:G_LIMITER_5.5_ENABLE, enum) 1 ==
if{ (A:G FORCE,G Force) 5.5 / (>L:G_LIMIT_RATIO, number) } els{ }
(L:G_LIMITER_5.5_ENABLE, enum) 1 ==
if{ (L:G_LIMIT_RATIO, number) 500 * (>L:G_LIMIT_VALUE, number) } els{ }
(L:G_LIMITER_5.5_ENABLE, enum) 1 ==
if{ 16383 (L:G_LIMIT_VALUE, number) - -0.8 * (>K:ELEVATOR_SET) } els{ }
<!-- G LIMITER: -3.0 -->
(L:FCS_ENABLE, enum) 1 ==
(A:G FORCE,G Force) -2.5 < and
(A:AIRSPEED MACH,Mach) 1.8 < and
(A:ELEVATOR POSITION, Percent) -1 < and
(A:YOKE Y POSITION, Percent) -1 > and
if{ 1 (>L:G_LIMITER_-3.0_ENABLE, enum) } els{ 0 (>L:G_LIMITER_-3.0_ENABLE, enum) }
(L:G_LIMITER_-3.0_ENABLE, enum) 1 ==
if{ (A:G FORCE,G Force) -3.0 / (>L:G_LIMIT_RATIO, number) } els{ }
(L:G_LIMITER_-3.0_ENABLE, enum) 1 ==
if{ (L:G_LIMIT_RATIO, number) 3000 * (>L:G_LIMIT_VALUE, number) } els{ }
(L:G_LIMITER_-3.0_ENABLE, enum) 1 ==
if{ 16383 (L:G_LIMIT_VALUE, number) - 0.9 * (>K:ELEVATOR_SET) } els{ }
<!-- G LIMITER: 2.0 (suppress backflip: loadout above 44000lbs, speed below 250kts, AOA above 20deg.) -->
(L:FCS_ENABLE, enum) 1 ==
(A:AIRSPEED INDICATED,knots) 250 < and
(A:TOTAL WEIGHT,pounds) 44000 > and
(A:INCIDENCE ALPHA,Degrees) 20 > and
(A:SIM ON GROUND, bool) ! and
(A:ELEVATOR POSITION, Percent) 1 > and
(A:YOKE Y POSITION, Percent) 1 > and
if{ 1 (>L:G_LIMITER_2.0_ENABLE, enum) } els{ 0 (>L:G_LIMITER_2.0_ENABLE, enum) }
(L:G_LIMITER_2.0_ENABLE, enum) 1 ==
if{ (A:G FORCE,G Force) 2.0 / (>L:G_LIMIT_RATIO, number) } els{ }
(L:G_LIMITER_2.0_ENABLE, enum) 1 ==
if{ (L:G_LIMIT_RATIO, number) 500 * (>L:G_LIMIT_VALUE, number) } els{ }
(L:G_LIMITER_2.0_ENABLE, enum) 1 ==
if{ 16383 (L:G_LIMIT_VALUE, number) - -0.8 * (>K:ELEVATOR_SET) } els{ }
<!-- G LIMITER: 2.0 (suppress backflip: loadout below 44000lbs, speed below 250kts, AOA above 35deg.) -->
(L:FCS_ENABLE, enum) 1 ==
(A:AIRSPEED INDICATED,knots) 250 < and
(A:TOTAL WEIGHT,pounds) 44000 < and
(A:INCIDENCE ALPHA,Degrees) 35 > and
(A:SIM ON GROUND, bool) ! and
(A:ELEVATOR POSITION, Percent) 1 > and
(A:YOKE Y POSITION, Percent) 1 > and
if{ 1 (>L:G_LIMITER_2.0_ENABLE, enum) } els{ 0 (>L:G_LIMITER_2.0_ENABLE, enum) }
(L:G_LIMITER_2.0_ENABLE, enum) 1 ==
if{ (A:G FORCE,G Force) 2.0 / (>L:G_LIMIT_RATIO, number) } els{ }
(L:G_LIMITER_2.0_ENABLE, enum) 1 ==
if{ (L:G_LIMIT_RATIO, number) 500 * (>L:G_LIMIT_VALUE, number) } els{ }
(L:G_LIMITER_2.0_ENABLE, enum) 1 ==
if{ 16383 (L:G_LIMIT_VALUE, number) - -0.8 * (>K:ELEVATOR_SET) } els{ }