Hello all, I plan here on expand on some of the findings from my previous Post:
With the great support from two friends, Jose Monteiro and Marco Ottaviano, to whom I am very thankful for teaching me a lot, and for sending me tons of really nice reading material, I continued investigating the inner workings of the Aerodynamics Simulation in MSFS2020.
Let me first warn you this is going to be a looong post. If you don’t feel like readying a bunch of theoretical stuff now, better to come back later ;).
I started looking a scientific way to compare a Simulator Aircraft Model to the real world counterpart. Putting aside the subjectivity of a pilot opinion, feeling, etc, is the only way to have a precise and repeatable outcome, which are crucial to make this comparison.
Turns out engineers, dating back to before WW2, had the same necessity, a way to evaluate the Flight Handling Characteristics of airplanes in a way that could be measured and evaluated without guesses. They developed a series of experiments, done by experienced test pilots, that enabled raw flight data to be gathered, and then processed.
This is what is called Stability and Control Derivatives. Don’t ask me to explain how exactly this works, I barely know myself. What is important to understand is that these values are used on the Equations of Motion, that every simulator has running inside, along with flight data information, such as Airspeed, Altitude, Moment of Inercia, etc, and will output what your airplane is going to react.
Some of these values alone can tell you Stable or Unstable an airplane is, how powerful the Control Surfaces, such as Elevator or Rudder, are when displaced. You can then compare two completely different aircrafts, with unique shape, surface dimensions, etc. Call it a Benchmark for an Airplane Flight Characteristics.
So, how can we get this data from the Simulator? Turns out Asobo / Microsoft has built in just what we need ! The Virtual WindTunnel, built in Modern Flight Model in MSFS2020. Find info about this on the SDK!
Source: SDK Documentation
MSFS2020 is already doing the hard work for us! It flies the aircraft you loaded in the Virtual Wind Tunnel, when you load an aircraft, and recreating loads of relevant flight conditions, extracting and processing data to generate the derivatives for the Aircraft, all this in such a short time you don’t even notice. It’s shown on the Legacy Page inside within DevMode
Kudos for Asobo / Microsoft on this implementation. Really smart thinking.
Of all those values, we will focus at the ones which tells us how stable or unstable the airplane is directionally, or around the yaw axis. The Twitchy reactions I see in all MSFS2020 Airplanes, Addons or Default, really bothers me, so this is the area I think needs most attention now.
I decided I would focus on the Cessna C172, since it’s a very known plane. My friends helped me find Real Derivative Values for the C172, so I was able to tweak the model in MSFS2020, knowing what I should be striving for.
Real C172 Aerodynamic Data
I have highlighted two values, CyBeta and CnBeta.
CyBeta - This is the Sideforce Variation due to Sideslip Angle. Is primarily due to the side force (or “lift”) produced by the vertical tail. This Force wants to return your plane back to Zero Sideslip, when you Drift, so it’s a stabilizing force. The Higher it is, the more Stable the airplane is Directionally.
CnBeta - Yawing moment due to Sideslip Angle. Also known as weathercock stability derivative, is caused mostly by the vertical tail side force acting through the moment arm. A positive value of Cnβ corresponds to stability, i.e., to the tendency for the vehicle to turn into the relative wind.
These values are in RADIANS. Not Degrees, 1 Rad = 57,3 Degrees.
Now I will show the Derivative Values for the Default untouched C172 MSFS2020:
The Virtual WindTunnel in MSFS2020 is calculating the Cessna C172 CyBeta as -2.236Rad, and CnBeta as 0.913Rad. Remember it’s Radians, not Degrees, so this gets multiplied to 57.3!
Now I began to understand why aircraft feel so twitchy in MSFS2020. The Real C172 has a calculated CyBeta = -0.31 Rad, almost 10X lower than in the Asobo simulation. CnBeta calculated as 0.065 Radians, that’s orders of magnitude smaller than the MSFS2020 Flight Model.
Just as an example, 0.065Radian = 3.72 degrees. While 0.913 Radian = 52.3 Degrees!
This generates a plane with incredible and completely unrealistic high Directional Stability. Meaning, if you use Rudder, or it is affected by a Gust, it wants to instantly come back to Zero Sideslip, making the handflying extremely unpleasent for the pilot in command.
With my modifications, I managed to achieve these values.
What did I have to do to get to this? I had to put the rudder_effectiveness scalar = 0.1! So, 1/10th of the calculated value from the Virtual WindTunnel.
I find it very likely that some internal calculations within the Core Flight Model, are not working as they should, nothing to do with any individual Aircraft or addon. This affects all the Planes. The Scalars should be used to adjust some minor deviations to what the Simulator is calculating internally, but when it gets to this order of magnitude, the issue is probably in the Root of the Calculations.
The Influence of the Tail in the Stability, in the case of this experiment, is being superestimated by a LOT. No Control Settings or Expertise from Experienced 3rd Party Developers will change that unfortunately. Only Asobo can find and fix this, and I’m pretty sure they will, just as they already fixed a bunch of other stuff the community reported.
And the good news is, if Asobo can find the causes, and fix this issue, I anticipate that all airplanes, default and addons, will start feel and behave a LOT better. Most of the Complains of Exaggerated Weathercock tendendy during Takeoff, Twitch Flight Controls, etc will disappear! Other areas will still need improvement, for sure, but this is a big one in order to improve the realism and make a lot of people happy with how their planes are flying!
I hope this can help improve this Simulator even further, it’s my only intention!
Hope you managed to read this far The Beer is on me! Thank you!
Please let me know of your opinions on this, and If I Can, I will answer any question you might have!
Edit: Removed conversion of Derivatives from Radians to Degrees, as it wasn’t correct. the values are per radians, so 1/rad. Anyway, it was my stupid attempt to make it easier for us regular brains to understand in degrees, not in Radians. It will however NOT affect any of the comparions made in this post, as the real C172 data, and the MSFS2020 Virtual Windtunnel data, are both given in Radians!