Is it possible to adjust spool rate?

Having reviewed this topic: https://devsupport.flightsimulator.com/t/3223 I
would like to add that the current spool rate for jet engines appears not to
be adjustable (at least, I have not found a way!) . In FSX, this was achieved
by manipulating the N2 v FF table, but as noted in the above topic if you set
that to adjustable ( ‘=1’) in MSFS and make any adjustments, the engine fails
to work entirely. If we use ‘=0’ for that table, the spool rate is reversed in
comparison to a normal jet engine behaviour - currently it is highly
responsive in the low RPM range and slow to respond in the high RPM range. A
real jet has the higher responsiveness in the higher band’s of RPM, hence
military aircraft often use airbrakes and higher power settings in formation
or in the circuit. Also, given that different jets can have vastly different
ranges from idle to max, and thus different bands of responsiveness, it would
be really useful not only to have this corrected in the default jet engine
model but also to have an adjustable table that we can use to refine an
individual engine’s behaviour.

You mean more than 6 months?

Hello @GrimPhoenix9349 Sorry, we missed that one. We are aware of the of the
issue with the spool rate of our turbine and that’s something we plan to
address. But using the corrected_N2_from_ff_table should work. When you
say your “engine fails to work entirely”, what do you mean? If the turbine is
shutting down, that’s something we experienced as well and it was caused by
the N2 being below the min_N2_for_fuel_flow threshold so make sure you’re
always above this threshold when N1 goes above low_idle_N1 (moment when
the starter stops). Hope this helps. Regards, Sylvain

Spool rates are really important in fast jets, especially around the circuit.
Enabling this would make Asobo’s Top Gun Maverick F/A-18E much more
realistic ! ! ! And hence more fun.

@FlyingRaccoon Hi Sylvain, Initial settings: min_N2_for_fuel_flow = 15
min_N2_for_ combustion = 19 Lowest point on the N2 axis is 20
Use_N2_to_N1 has been set to both 1 and 0, when set to 1 the two defined line
graphs are close together across the range. The turbine is not ‘shutting down’
as such - it is stagnating, and the rpm will neither increase nor decrease. I
have tried a variety of settings, each one keeping n2 above the minimum
settings. The only difference in behaviour is that the rpm sits solidy without
moving at different rpm values depending on the lowest point on the N2 axis. I
have also tried adjusting the angle of the graph line, but this also made no
effect. I have managed , just by altering the fuel flow v N2 curve, to get a
running engine with no throttle response at 30%, 45%, 60% and 70% rpm, the
last two being significantly above the idle point, the fact that the first two
(slightly below and significantly below idle) maintain a running engine
suggest that fuel flow is not the issue but that the use of the table is?
(apologies for my own late response, I have an ongoing family situation which
is eating up virtually all of my spare time).

Hello @GrimPhoenix9349 Can you provide me with the engines.cfg file that
produces the problem so I can investigate please? Regards, Sylvain

Happy to, but how would I go about sending you that file?

Check section 3 here, where we explain how to provide private content.
[http://devsupport.flightsimulator.com/t/how-to-report-a-bug-or-
crash/77](https://devsupport.flightsimulator.com/t/how-to-report-a-bug-or-
crash/77)

Hello @GrimPhoenix9349 Regarding the use of the corrected_n2_from_ff_table
, I think the issue comes from your low_idle_n2 and low_idle_n1 values
set respectively to 55 and 50 , being too high for the actual N1 and
N2 you get from your configuration. So when your engine is in idle, the fuel
flow ( idle_fuel_flow ) is limited to 634 pounds per hour. With a
static_thrust of 5200 , the interpolation of your
corrected_n2_from_ff_table gives an N2 around 20 and an N1
around 9. Both of those being below your low idle values, the turbine is
considered in a “starting” status and the fuel flow is still limited to 634
pph. That explains why the RPM are stagnating. You want to lower those idle
values or raise the N2 you get from the idle fuel flow. Does that make sense?
Regards, Sylvain

Hi Sylvain, Thanks for your answer - it makes sense in a way but I do not
think that it is actually the problem as (referring back to my earlier
comment) you will see that it is possible to achieve exactly the same
behaviour at 70%rpm, simply by following your suggestion of raising the N2
from the idle fuel flow on the graph. It will probably go higher but that’s as
far as I went when testing it. I raised the fuel flow curve significantly at
the same RPM points, and have been unable to get response to the throttle. The
N1 and N2 idle values are correct to the book, as is the idle fuel flow.
Static thrust of 5,200 lb is at max rpm so shouldn’t affect the idle fuel
flow. 634 PPH is the Hawk’s idle fuel flow at sea level / standard ISA /
52%rpm. I am using real-world figures throughout. The tables are exact to
those which worked in FSX / P3D and gave correct behaviour and figures. I know
MSFS is not either of those sims, but would expect the option to use tables
from them to maintain the same behaviours as there are no documented changes
in the SDK which would necessitate alteration.

Hello @GrimPhoenix9349 “The tables are exact to those which worked in FSX /
P3D and gave correct behaviour and figures”
Do you know any external resource
where this table and how to use it is described? I can see it comes from FSX
in the code, but can’t find any explanation on how it was supposed to be used
previously. The code is exactly the same though. BTW, our doc seems to be
faulty and pair should be inverted compared to what’s stated in the doc I
think. Here’s how it works in MSFS: this table is sampled by interpolating
using a corrected_FF / static_thrust ratio. In the pairs provided, the
first value is the ff/thrust ratio and the second is the corresponding N2. In
your case, the FF seems to range from 634 pph (idle) to around 3700
pph and static thrust is 5200. So if I configure the
corrected_n2_from_ff_table to have a section of it ranging from
0.122:55 to 0.712:max n2 (104? 110?), I end up with what seems to be
the behavior you are looking for. Engine ends up idling at the N1 & N2 values
you indicated and RPM are covering the whole range when using throttle. I am
interested to have your feedback on this. Regards, Sylvain

Hi Sylvain, Okay, I have it working but it is very rough - no smoothness in
the rpm as per previous sims, see the following videos:
<https://drive.google.com/file/d/10UOBiH-R0a4AvnIHNTU2TnxML8QU-
plM/view?usp=sharing>

and
https://drive.google.com/file/d/1ZuK-7b99nQ89zs8v6lplTwBYHyl9u2nq/view?usp=sharing
Very slightly different curves,
but both are much smoother than were necessary in the previous sims (see
reference material later) yet you can see the jerky nature in the videos.
Whilst you say the code is exactly the same as FSX, I think there must be
something affecting this table (conflict with the new code?) because the
behaviour whilst broadly similar is not as we had before and if it were
identical it should have worked with the original table, as below, which works
perfectly in FSX and P3D. In the table below, there are several points
before the idle (which is actually roughly in the same relative ff/n2
position, just further up the curve) and these are used to control the spool
up during engine start with the highlighted point being a fraction under 20%
rpm where combustion is first achieved. There is then a fairly straight
section which leads up to the idle % at which point the curve flattens for
slow rpm response before rising towards the higher rpm bands to gain faster
response times. The information you have given me above and the ‘range’
requested for it to work has removed the startup section of the spool rate, so
there is no longer control over that.
Regarding descriptive
resources, there is a decent thread on FS Developer:
<https://www.fsdeveloper.com/forum/threads/table-1505-what-it-was-intended-to-
do-and-how-it-should-be-set-up.389153/> The first post is probably the most
useful, though there is comment further on that " The spool rate is
interpolated to achieve a smooth spin up "
which may also be what is not
happening here in MSFS. __ Worth noting that the curves shown in that thread
are not at all smooth and yet in-sim they achieve smooth rpm movement. I will
keep exploring options with the table now that rpm is moving (thank you), but
as it currently works it is still not acceptable for anything on sale to the
public. __ Thanks again for your time on this. __

Hello @GrimPhoenix9349 I’m not sure to understand what your graphs are
showing. Corrected FF vs corrected N2 as in the topic you mentioned? I don’t
have such discontinuity in my test case. Can you provide me with your updated
engines.cfg so I can have a look? As to why I have removed the start
section from my test table, it’s because it’s handled separately in MSFS. In
this case, when starter is active, we compute a starter N2 and starter rate
and we take those values as long as the starter N2 is inferior to the N2
computed from the corrected_n2_from_ff_table. If you have a bleed air
starter, it’s handled through the n2_from_bleed_air_psi_table and
bleed_air_on_n2_tc parameters. For other starter types, it was hardcoded
in SU9 (N2=25, TC=0.1) and is now exposed in n2_raw_starter and
n2_starter_rate with SU10 beta. Regards, Sylvain

This is very useful information. Thank you! Since the sim is using the
corrected_N2_from_ff_table to calculate fuel flow, is there a recommended way
to adjust spool rate? I’m currently working on a small jet engine, and I’ve
been tweaking the fuel_flow_controller PID values to adjust spool rate. Here
is the problem I’m running into: I’ve collected real-world values of corrected
N2 and corrected FF/static thrust and produced the following plot for my
engine:

Here, corrected N2 is on
the y-axis and corrected ff / static thrust is on the x-axis. As you can see,
at low N2, a small change in fuel flow results in a relatively large change in
N2. On the other hand, when N2 is spinning very rapidly a large change in fuel
flow is required to get it to spin a little faster. When I use this data in
the corrected_N2_from_ff_table, I cannot find a set of fuel_flow_controller
PID values that will provide fast response at high N2 without overdoing the
response at low N2. As @GrimPhoenix9349 mentioned in his original post, the
usual behavior for a jet engine is to respond quickly at high RPM and
relatively slowly at low RPM. You mentioned that spool rate is planned to be
addressed in a reply above. Would this involve additional parameters to tune
spool rate? In the meantime, would it be best for me to keep my current
corrected_N2_from_ff_table based on real-world data and plan on adjusting the
spool rate at a future date? Or would you recommend using
corrected_N2_from_ff_table to tune spool rate and then adjusting fuel flow
with other parameters?

1 Like