Jet engines capped at 100% CN1

Version: Any

Frequency: Consistently

Severity: High
Similar MSFS 2020 issue: https://devsupport.flightsimulator.com/t/is-there-a-planned-fix-for-corrected-n1-being-capped-at-100/5832

Bug description:

The first major bug is that CN1 is capped at 100%. From a flight model standpoint, we need to go past 100% CN1 at high altitudes to be able to maintain a stable indicated N1, which is what happens in reality.

In FSX -which uses the same Corrected method as MSFS- we were able to go past 100% N1 as we climbed and therefore, we could keep N1 consistent throughout different altitudes. In MSFS Corrected N1 is capped at 100%, meaning that with full throttle the indicated N1 will decrease with altitude.

We can programmatically override the TURB ENG N1 variable, but that is an extra step that shouldn’t be needed as the engine simulation is correct, other than that cap at 100%.

Repro steps:

Take the Grand Caravan, 737 MAX or PC-12NGX and set it to full power and climb from sea level to 15000ft without moving the throttle. You will notice that indicated N1 will drop with altitude. IRL it should be stable, meaning that Corrected N1 should increase with altitude.

COMMENT:

The base sim already has the correct mathematics in it and Corrected Fuel Flow sets Corrected N1 already. If the clamp is removed from CN1, all developers have to do is adjust their fuel flow to achieve higher N1 with altitude and their engines will work perfectly, without external programming.

If a 3rd party developer does not update their fuel flows after this is fixed, their plane will work exactly the same as before, so no problems will be caused.

5 Likes

I can’t say for the others but with the C208 the corrected N1 is NOT capped. It stops at 100% only because the fuel_flow_max is set the same as high_fuel_flow.

If I set fuel_flow_max higher then high_n1 then CN1 will go happily over 100%. You can also map GENERAL ENG THROTTLE LEVER POSITION to go past 100% and CN1 will flow.

But ye it would be much much easier if we could just set high_n1 lets say 110 and be done with it.
For example:
high_fuel_flow = 607
fuel_flow_max = 900

2 Likes

I am aware of that, but it still involves feeding an Avar through code. Throttle shouldn’t go past 100% if we are looking at realistic ops.

In my tests, setting max fuel flow to a high value works but the CN1 will settle at 100% again.

3 Likes

I can confirm this issue exists for helicopter engines as well. With throttle at 100% I can only get the N1 above 100% for a short moment instead of consistently.

1 Like

Bumping this up, it is still not addressed. While we can work around it, the aircraft editor still flags it as an issue and can “correct” it, breaking our engine.

1 Like

Hello @SWS-AlexVletsas

Can you please create a dedicated bug report for the issue with the Sim Object Editor?

The turbine issue is still tracked on our side. As usual, I’ll update this thread as soon as we move forward on the subject.

Regards,
Sylvain

1 Like

Hello @SWS-AlexVletsas,

To be honest, I was initially a little confused by the issue description until I realized that you were referring to turboprop engines rather than JET engines. :slight_smile:

As for turbojet and turbofan engines, there is actually no cap on CN1. There is, however, a cap on N1 when the commanded Ne tables are not used, but in that case N1 remains constant during the climb.

Therefore, the behavior you describe:

In MSFS Corrected N1 is capped at 100%, meaning that with full throttle the indicated N1 will decrease with altitude.

and

Take the Grand Caravan, 737 MAX or PC-12NGX and set it to full power and climb from sea level to 15000ft without moving the throttle. You will notice that indicated N1 will drop with altitude. IRL it should be stable, meaning that Corrected N1 should increase with altitude.

does not actually occur with turbojet or turbofan engines, including the 737 MAX.

With a fixed throttle position, N1 remains constant regardless of altitude or Mach number.

Alternatively, when the commanded Ne tables are used (mach_0_corrected_commanded_ne_table and mach_hi_corrected_commanded_ne_table), any desired N1 and corrected N1 value, including values above 100%, can be achieved at any altitude, Mach number, and throttle setting, exactly as it worked in FSX back then.

However, the limitation you describe does indeed apply to turboprop and turboshaft engines.

FSX allowed corrected Ng (represented as corrected N1), to be tuned in the same way as corrected N2 for turbojet engines: through the same tables (AIR_70_MACH_0_CORRECTED_COMMANDED_NE and AIR_70_MACH_HI_CORRECTED_COMMANDED_NE, based on power-lever position, inverse pressure ratio, and Mach number). As a result, developers could tune an engine so that Ng remained constant during a climb while the power lever remained in the same position. They could also achieve Ng values above 100% where required.

MSFS, however, currently provides only a linear control law: corrected N1 = f(power lever) with an optional additional segment defined by the tp_high_idle_throttle_pos and tp_idle_range parameters. The maximum corrected N1 value is indeed hard-coded to 100%. Consequently, I can confirm that there is currently no way to maintain constant actual N1 (Ng), with altitude, or to achieve N1 values above 100% within the normal throttle range, without extending it.

Work is currently underway to address this issue.

Besides this, I would also like to clarify one point to help explain the relationships between the different parts of the engine model.

If the clamp is removed from CN1, all developers have to do is adjust their fuel flow to achieve higher N1 with altitude.

It works a little differently from what you describe.

The corrected fuel-flow settings for turboprop and turboshaft engines do indeed define the relationship between CN1 and CFF. However, the target CN1 is controlled solely by the throttle (power lever). In other words, by adjusting CFF-related parameters such as low_idle_n1, idle_fuel_flow, high_n1, and high_fuel_flow, developers can tune CFF itself as a function of CN1, based on the hard-coded exponential curve. But CN1 will still follow the throttle position, because the fuel-flow PID controller regulates CFF in order to reach the target CN1. The only fuel-flow parameters that can affect the achievable CN1 range are idle_fuel_flow and fuel_flow_max, because they clamp CFF and therefore indirectly limit the CN1 range.

If a 3rd party developer does not update their fuel flows after this is fixed, their plane will work exactly the same as before, so no problems will be caused.

Any changes applied to the model by default will affect its behavior with existing settings. We are therefore carefully avoiding this approach in order to preserve backward compatibility.

So we are going to implement a solution that resolves the issue with the engine-speed control-law settings while preserving backward compatibility.

I will keep you updated and let you know as soon as I have any news on this subject.

Best regards,
Andrey / Asobo

2 Likes

Hello @CaptainBalu0,

I can’t say for the others but with the C208 the corrected N1 is NOT capped. It stops at 100% only because the fuel_flow_max is set the same as high_fuel_flow.

If I set fuel_flow_max higher then high_n1 then CN1 will go happily over 100%. You can also map GENERAL ENG THROTTLE LEVER POSITION to go past 100% and CN1 will flow.

That’s absolutely correct, I can confirm it.

But ye it would be much much easier if we could just set high_n1 lets say 110 and be done with it.

For sure :slight_smile:

Best regards,
Andrey / Asobo

Hello @b1e1n7e,

Helicopter engines share the same code path and behavior as turboprop engines in this regard, so both will be addressed.

Best regards,
Andrey / Asobo

Hey Andrey,

thanks for further investigating the bug and finding a solution for it.
So after the fix N1 values above 100%, defined in the n1 to shaft torque table, will be achievable?
Lets say I want 104% N1 at 100% torque, this should then be possible? In the current state of my project I had solved it with a quite complex workaround and I would be happy if I can get rid of that.

1 Like

Hi,

I wouldn’t call it a bug, but rather a design limitation.

Yes, your understanding is absolutely correct: N1 values above 100% will be achievable within the normal throttle range, and it will also be possible to maintain a constant N1 during a climb.

1 Like

Hey Andrey,

Slightly off topic, but while you’re working on the Jet engine simulation, could you have a quick look at the EPR calculations? Simply removing or giving the option to remove the delta pressure ratio from the EPR calculation would make it a much more useful simvar.

Hello @kcgb,

That is a valid point, thank you for raising it.

Unfortunately, we cannot simply remove the delta pressure ratio from the EPR calculation, as this would break backward compatibility by changing the behavior of engines that already use the existing settings.

Making this optional would be a reasonable solution.However, I think an even better approach would be to provide an additional means of tuning EPR as a function of pressure altitude. At the moment, EPR depends only on CN2 and inlet Mach.

I will check whether we can fit this into the current development scope. If not, we will come back to this topic later.

As a temporary workaround, you can divide EPR by the delta pressure ratio on your end. This recovers the original value obtained from the N2_and_Mach_to_EPR_table.

Best regards,
Andrey / Asobo

1 Like

A post was split to a new topic: Turbine engine speed-law tuning improvements in SU6

Hello @everyone,

Here’s a thread describing changes done on SU6 to address this issue:
Turbine engine speed-law tuning improvements in SU6 - [MSFS 2024] Questions & Community Discussions - MSFS DevSupport

Marking the report as fixed for now and feel free to ping us if you feel some aspects still need to be discussed.

Regards,
Sylvain

2 Likes