Jump to content
Sign in to follow this  
ThomseN_inc

At what altitude/FL is AI traffic flying? Strange levels...

Recommended Posts

Good morning everyone,

 

Just a quick question. My observation is that AI Traffic always flies at an altitude "in between". For example on my last flight i was cruising at FL400 and every other traffic was shown like "-54", "+24", "-74". The other day its the same with "-52" and so on. So they were flying at FL346 for example and so on...

Is AI traffic really flying at those altitudes or is it some kind of display issue? If it is, is their altitude based on a different altimeter setting or what might be the cause here?

Any light on this would be appreciated.

 

Best regards

Tom

 

 


Intel i9-13900K | Gigabyte Z790 Aorus Master | RTX4090 | 2x16GB Corsair Vengeance DDR5-6000 | Be quiet! Pure Loop 2 FX AiO | Win 11

Share this post


Link to post
Share on other sites

Do you see this only when flying particular aircraft, or does the same thing happen with all aircraft?

Just a suspicion, but: I think the TCAS implementation may be using geometric altitude instead of barometric altitude to compute the altitude difference. Before Asobo implemented temperature effects on altimetry, this would not have made a difference, but now it does. I know this created some similar effects at the time - maybe you're flying an addon where this hasn't been corrected yet? 

 

  • Like 1

Share this post


Link to post
Share on other sites
20 minutes ago, martinboehme said:

Do you see this only when flying particular aircraft, or does the same thing happen with all aircraft?

Just a suspicion, but: I think the TCAS implementation may be using geometric altitude instead of barometric altitude to compute the altitude difference. Before Asobo implemented temperature effects on altimetry, this would not have made a difference, but now it does. I know this created some similar effects at the time - maybe you're flying an addon where this hasn't been corrected yet? 

 

As far as i can see it happens with all aircraft (i have flown). PMDG, FBW, TBM and currently i am flying the Longitude the most.

Edit: Forgot the HJet and the Visionjet.

Edited by ThomseN_inc

Intel i9-13900K | Gigabyte Z790 Aorus Master | RTX4090 | 2x16GB Corsair Vengeance DDR5-6000 | Be quiet! Pure Loop 2 FX AiO | Win 11

Share this post


Link to post
Share on other sites

Interesting. That sounds as if it's still a fundamental bug in the sim.

I'll have to pay attention to this the next time I fly. I believe there are debugging tools that can be used to display various parameters for AI aircraft, and of course for the player aircraft. I'll see if I can find something that sheds some light on what's going on. 

Share this post


Link to post
Share on other sites
4 minutes ago, martinboehme said:

Interesting. That sounds as if it's still a fundamental bug in the sim.

I'll have to pay attention to this the next time I fly. I believe there are debugging tools that can be used to display various parameters for AI aircraft, and of course for the player aircraft. I'll see if I can find something that sheds some light on what's going on. 

Sounds good! Thanks in advance.


Intel i9-13900K | Gigabyte Z790 Aorus Master | RTX4090 | 2x16GB Corsair Vengeance DDR5-6000 | Be quiet! Pure Loop 2 FX AiO | Win 11

Share this post


Link to post
Share on other sites

Same here. Yesterday I flew together with my made online on vatsim at the Same FL but my TCAS spot him -1200ft under my level

Share this post


Link to post
Share on other sites
9 hours ago, ThomseN_inc said:

 Any light on this would be appreciated.

Known topics of conversation:

 


AMD Ryzen 5800X3D; MSI RTX 3080 Ti VENTUS 3X; 32GB Corsair 3200 MHz; ASUS VG35VQ 35" (3440 x 1440)
Fulcrum One yoke; Thrustmaster TCA Captain Pack Airbus edition; MFG Crosswind rudder pedals; CPFlight MCP 737; Logitech FIP x3; TrackIR

MSFS; Fenix A320; A2A PA-24; HPG H145; PMDG 737-600; AIG; RealTraffic; PSXTraffic; FSiPanel; REX AccuSeason Adv; FSDT GSX Pro; FS2Crew RAAS Pro; FS-ATC Chatter

Share this post


Link to post
Share on other sites

PSXT is pretty much accurate as it reflects IRL situaon.

Share this post


Link to post
Share on other sites

You could also take a fighter up and do some intercepts and see what your altitude is.  Might be the most fun way to check it out 😀


Dave

Current System (Running at 4k): ASUS ROG STRIX X670E-F, Ryzen 7800X3D, RTX 4080, 55" Samsung Q80T, 32GB DDR5 6000 RAM, EVGA CLC 280mm AIO Cooler, HP Reverb G2, Brunner CLS-E NG Yoke, Thrustmaster Warthog HOTAS & Stick, Thrustmaster TCA Quadrant & Add-on, VirtualFly Ruddo+, TQ6+ and Yoko+, GoFlight MCP-PRO and EFIS, Skalarki FCU and MCDU

Share this post


Link to post
Share on other sites

I've finally managed to look into this some more. And yes, it involved intercepting an airliner. In a Hawk. And then landing at whatever the closest airfield on the VFR map was. Which turned out to be LOGM Mariazell, a glider field with an entirely unsuitable 1700 foot runway. But I'm not going around on short final to a glider strip. Glider pilots laugh at people who go around. And hey, at least the runway was paved, and I did get the Hawk stopped in time.

So that alone was worth my time. And in the process, I found out why we see AI traffic flying at those strange "in between" altitudes.

The short version is: AI aircraft fly according to true altitude instead of indicated altitude. And then they try to cover it up. I'm not sure if this is a known bug or not, but I'll try to find out and will report it to Asobo if it's not yet known.

The detailed version is... well, quite a bit more detailed, but I hope it will be interesting to some.

Background

Let's first recap some relevant background. This will allow us to compare what we expect to see against what the simulator actually does.

Three different types of altitude are relevant to us:

  • Indicated altitude: This is, as the name implies, the altitude indicated on the altimeter.
  • Pressure altitude: This is the altitude the altimeter would indicate when set to the standard setting of 1013.25 hPa.
  • True altitude (also called geometric altitude): This is the vertical distance between the aircraft and mean sea level.

These three altitudes are the same if international standard atmosphere (ISA) conditions prevail (1013.25 hPa and 15 degrees C at sea level). Most weather presets use ISA conditions.

Otherwise – in particular when flying with real weather – these altitudes are generally different. They are related as follows:

  • For every 1 hPa that the altimeter setting is greater than standard, the indicated altitude is 30 feet greater than the pressure altitude.
  • Assuming that the altimeter is set to the local QNH: For every 1 degree that the temperature is warmer than ISA and every 1000 feet above the elevation of the airport that issued the QNH, the indicated altitude is 4 feet less than the true altitude. (The actual relationship is nonlinear, but this is a good approximation.)

TCAS works by detecting the transponder signals of other aircraft. A mode C transponder signal encodes the pressure altitude of the aircraft. To display a correct indicated altitude to the controller, radar equipment on the ground adjusts the received pressure altitude using the current QNH. TCAS, on the other hand, does not need to know the current QNH as it is only interested in the relative altitude of another aircraft compared to the own aircraft. This relative altitude is computed by subtracting the pressure altitude of the own aircraft from the pressure altitude of the other aircraft.

Experiment 1: User aircraft

I wrote a program that uses the SimConnect API to query indicated altitude, pressure altitude and true altitude for the user aircraft as well as AI aircraft.

Let’s first look at some data for the user aircraft. I did a test flight from EDDM Munich (elevation around 1500 feet) with real weather enabled. Temperature was 8 degrees (4 degrees below the ISA standard temperature of 12 degrees at 1500 feet), QNH was 1017 hPa.

Here is a measurement taken while the aircraft was sitting on the runway:

    1 Hawk       XX266      -- indicated:   1482 ft  pressure:   1379 ft  true:   1482 ft

The leading “1” is the so-called object ID, which is always 1 for the user aircraft. Indicated altitude and true altitude are the same, as they should be when on the ground at the airport that issued the QNH. As the QNH is 4 hPa higher than standard, we would expect indicated altitude to be 4 * 30 ft = 120 ft greater than pressure altitude; the actual difference is 103 ft, so pretty close.

I then took off and climbed to an indicated altitude of 10000 ft. Transition altitude is 5000 ft, so I should normally have set my altimeter to the standard pressure setting, but I left it set to QNH because I wanted to observe the difference between indicated altitude and pressure altitude again. Here is the measurement:

    1 Hawk       XX266      -- indicated:  10003 ft  pressure:   9908 ft  true:   9836 ft

The difference between Indicated altitude and pressure altitude has reduced slightly and is now just 95 ft. This seems correct: The factor of 30 ft per hPa is only valid close to sea level and becomes smaller with altitude.

Indicated altitude and true altitude are now different. Assuming the ISA temperature deviation is the same -4 degrees from the ground to 10000 ft, we would expect indicated altitude to be approximately 4 * 4 * 8500 / 1000 ft = 136 ft greater than true altitude. The actual difference is 167 ft, slightly more, but MSFS may actually be modelling this more accurately than our linear approximation.

In all, MSFS models the altimetry effects well for the user aircraft.

Experiment 2: AI aircraft

Now lets look at some measurements for AI aircraft. I took off again from EDDM in the Hawk and climbed to altitude, looking for an aircraft to intercept. I performed this experiment on a different day, again with real weather, so the temperature and QNH were different: 3 degrees C (ISA - 9) and 1025 hPa.

Here are measurements for some selected AI aircraft in the vicinity that were in level flight, i.e. had a vertical speed close to zero:

  597 A20N       D-AHVX     -- indicated:  30662 ft  pressure:  30998 ft  true:  30997 ft
  609 A20N       F-CTSU     -- indicated:  28664 ft  pressure:  29000 ft  true:  28999 ft
  612 TBM9       F-CKHA     -- indicated:  30662 ft  pressure:  31000 ft  true:  30997 ft
  614 A20N       D-ACHN     -- indicated:  25662 ft  pressure:  25998 ft  true:  25997 ft
  657 A320       4X-BJL     -- indicated:  40662 ft  pressure:  40994 ft  true:  40997 ft
17843 A20N       HB-NCE     -- indicated:  30662 ft  pressure:  30998 ft  true:  30997 ft
28796 Skyhawk    HA-QLB     -- indicated:  10998 ft  pressure:  10998 ft  true:  10998 ft
47373 Skyhawk    OE-WZS     -- indicated:   6999 ft  pressure:   7000 ft  true:   6999 ft

There are several points here that are unexpected:

  • For high-flying jets and turboprops, indicated altitude and pressure altitude are different, even though we would expect these aircraft to set their altimeter to standard pressure. The difference is about 340 feet for all aircraft.
  • Conversely, for the lower-flying Skyhawks, indicated altitude is within a few feet of pressure altitude.
  • Pressure altitude and true altitude are always within a few feet of each other. We would expect a significant difference here because the temperature is significantly colder than ISA.

Here’s my speculation on what is going on. The relationship between indicated altitude and pressure altitude looks like a “double bug”:

  • It looks as if MSFS is applying the US transition altitude of 18000 feet everywhere in the world. Above the transition altitude, indicated altitude and pressure altitude should be the same; below the transition altitude, they should be different. It appears that MSFS has this exactly flipped.
  • The difference of 340 feet corresponds to about 11 hPa. Because indicated altitude is lower than pressure altitude, the corresponding altimeter setting is 1013 hPa - 11 hPa = 1002 hPa. This isn’t even close to the local QNH. However, if indicated altitude was 340 feet greater than pressure altitude, we would obtain an altimeter setting of 1024 hPa, which is close to the QNH. So it appears that MSFS also has a sign error here.

The fact that pressure altitude and true altitude are almost the same is even more puzzling. Based on the temperature deviation from ISA, we would expect a significant difference, and indeed I was observing such a difference on the user aircraft. Either the pressure altitude or the true altitude must be wrong – but which one?

To find out, I intercepted the aircraft with ID 597 (D-AHVX) so that I would be able to compare the measurements from the user aircraft and the AI aircraft. Here are the measurements in comparison when I was flying directly behind the AI aircraft:

    1 Hawk       XX266      -- indicated:  32300 ft  pressure:  32306 ft  true:  31036 ft
  597 A20N       D-AHVX     -- indicated:  30662 ft  pressure:  30998 ft  true:  30997 ft

I had the altimeter set to standard, so as expected, the indicated and pressure altitudes are almost the same. On the user aircraft, true altitude is significantly lower than indicated, again as expected given the temperature deviation from ISA.

Comparing the user and the AI aircraft, the true altitudes are within 40 feet of each other, and that difference is down to my sloppy formation flying. So the true altitude reported for the AI aircraft is correct, and the pressure altitude is erroneous.

Unfortunately, this means that AI aircraft can fly at grossly incorrect altitudes. It seems obvious in this case that the AI aircraft was supposed to fly at FL 310, but in fact, it is flying at FL 323.

Conclusions

MSFS appears to do the following:

  • AI aircraft fly according to true altitude instead of indicated.altitude.
  • Indicated altitude for AI aircraft is wrong in two ways:
    • The AI aircraft’s altimeter should be set to QNH below transition altitude and standard setting above, but MSFS flips this.
    • The difference between indicated altitude and pressure altitude has the correct magnitude but the wrong sign.
  • Pressure altitude is erroneously reported as being the same (within a few feet) as true altitude.

Why does MSFS incorrectly report pressure altitude as being the equal to true altitude for AI aircraft when it can obviously model the temperature effects on altimetry accurately for the user aircraft? I can only speculate, but I remember there used to be a bug where ATC was continuously admonishing AI aircraft to climb or descend because their altitude was off. I suspect that, at the time, AI aircraft were reporting their correct pressure altitude to ATC but, as today, flying according to true altitude. This bug may have been “fixed” by reporting an erroneous pressure altitude that is equal to true altitude.

Finally: How should an addon developer compute altitude differences when they implement TCAS? Unfortunately, there is no good solution.

  • A real TCAS computes altitude difference from the difference of the two pressure altitudes. But in MSFS, this can lead to wildly incorrect results. In my intercept example above, TCAS would have displayed the other aircraft as being a safe 1300 feet below me when in fact we were at the same altitude (and very close!).
  • A better compromise is to compute the difference of the true altitudes. In my example, TCAS would have correctly shown the other aircraft as being at the same altitude. However, this does have the effect of displaying strange “in-between” altitudes when the user aircraft is cruising at a normal flight level. Had I actually been cruising at FL 310, I would have seen the other aircraft as being 1300 feet above me -- an accurate display because it was, indeed, flying at an "in-between" altitude.
Edited by martinboehme
  • Like 4

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Tom Allensworth,
    Founder of AVSIM Online


  • Flight Simulation's Premier Resource!

    AVSIM is a free service to the flight simulation community. AVSIM is staffed completely by volunteers and all funds donated to AVSIM go directly back to supporting the community. Your donation here helps to pay our bandwidth costs, emergency funding, and other general costs that crop up from time to time. Thank you for your support!

    Click here for more information and to see all donations year to date.
×
×
  • Create New...