• Which the release of FS2020 we see an explosition of activity on the forun and of course we are very happy to see this. But having all questions about FS2020 in one forum becomes a bit messy. So therefore we would like to ask you all to use the following guidelines when posting your questions:

    • Tag FS2020 specific questions with the MSFS2020 tag.
    • Questions about making 3D assets can be posted in the 3D asset design forum. Either post them in the subforum of the modelling tool you use or in the general forum if they are general.
    • Questions about aircraft design can be posted in the Aircraft design forum
    • Questions about airport design can be posted in the FS2020 airport design forum. Once airport development tools have been updated for FS2020 you can post tool speciifc questions in the subforums of those tools as well of course.
    • Questions about terrain design can be posted in the FS2020 terrain design forum.
    • Questions about SimConnect can be posted in the SimConnect forum.

    Any other question that is not specific to an aspect of development or tool can be posted in the General chat forum.

    By following these guidelines we make sure that the forums remain easy to read for everybody and also that the right people can find your post to answer it.

Real World Digital Engine Control

Messages
112
Country
unitedkingdom
Hi folks,

I'm working of simulating some aircraft systems (outside FSX/XPX etc) and getting in a bit of a pickle about how to manage engine start up. I'm trying to simulate a reasonably high level of systems detail so not just making indicated engine thrust proportional to throttle lever position.

The engine I'm trying to simulate is a 2 spool turbofan which is started with a Gas Turbine Starter (GTS) and controlled with a Digital Engine Control System (DECS). The DECS is responsible primarily for sensing the pilots throttle lever angle, controlling fuel valves and thus controlling N1 RPM. I believe it also controls igniters and manages the start sequence. As far as I understand from documentation, the GTS runs up to speed then engages with the N2 spool to start it turning. At some point the DECS takes control, opens fuel valves and lights the igniters. If the engine lights then the DECS manages it to idle at 29% N1 RPM.

So, on to the code:
I have a GTS object which I instruct to spin up to 77000 (the speed at which the manual says it engages with the N2 spool).
Next the GTS code starts accelerating the virtual N2 spool on my relatively dumb Engine object.
I have an N2 RPM Sensor object which throws events periodically which are caught by my DECS object.

Where I'm getting myself a bit confused is in how I should manage what happens next, so here's a whole bunch of questions:
1) Before the engine is lit, does an N1 fan spool start to rotate under the pressure of (cold) air passing over its turbines by virtue of the N2 rotation? If so, how fast in relation to N2?
2) At what sort of N2 speed would it be normal to start igniting fuel?
3) Once combustion is taking place, what would be a typical rate of acceleration of N1?
4) Does a GTS automatically disengage once a light is detected?
5) Is JPT the sensor that tells DECS that the engine is lit?

I appreciate that not all turbofans are created equal but am just looking for some ball park figures to help me get a plausible sequence of events.

Many thanks in advance for any insight you can give,
Z
 
1) Before the engine is lit, does an N1 fan spool start to rotate under the pressure of (cold) air passing over its turbines by virtue of the N2 rotation? If so, how fast in relation to N2?

I'd just divide N2 by the bypass ratio of the engine to get N1.
No point in doing detailed moment of inertia, exhaust velocity and pressure analysis for the fan to determine spool-up lag.

2) At what sort of N2 speed would it be normal to start igniting fuel?

I'd say between 10 and 15%.

3) Once combustion is taking place, what would be a typical rate of acceleration of N1?

Depends on the bypass ratio and the subsequent fan size, weight and thus MOI. Make an educated guess. :)

4) Does a GTS automatically disengage once a light is detected?

It would be advisable if you're not a stakeholder in a GTS repair and overhaul business.

5) Is JPT the sensor that tells DECS that the engine is lit?

EGT alone might be a bit too unrealiable to indicate a lighted engine (hot start), so you might want to couple that with some N2 check (~40?).


You might want to model the actual engine start sequence in the .air file and C++ or XML. Something like this...

1) Process GTS starter logic
2) Tell FSX to toggle the starter for engine 1 [(>K:TOGGLE_STARTER1)]
3) FSX will then engage its own internal starter and start spooling N2 up to a maximum of 20% N2.
4) At one point (~5-10% N2), you'll need to toggle the fuel valve for engine 1 [(>K:TOGGLE_FUEL_VALVE_ENG1)]
5) The engine should light and this is where the .air file tables will take over.
6) Table 1505 controls the fuel flow rate for the engine and can essentially be used to make engine spool-up from injection to full as slow as you need it to be*. Will have to be carefully coordinated with fuel valve opening, so that there won't be any jumping needles in the instuments.
7) N2 idle RPM is controlled by table 1503 by means of throttle position, so between fuel injection and idle RPM, table 1505 controls the start-up speed on its own.
8) Table 1502 has the N1-N2 ratio, so you can effectively control what the N1 rotation speed will be at what N2 speed.
9) Once you have attained satisfactory criteria for a running engine (simple: Check the (A:GENERAL ENG COMBUSTION:1,bool) flag, complicated: Query N2 and/or EGT), simply issue the [(>K:TOGGLE_STARTER1)] event again and start your "stop GTS logic"

So much, so easy. The only thing you need to fake in any case though is EGT or EPR, as FSX' modeling of these is horrible.



*I've managed to replicated the sluggish spool of an early turbofan with this table. Starts in ten seconds and takes six seconds from idle to full and thus requires you to think ahead on approach.
 
Hey Heretic - thanks very much for the response. I haven't actually settled on which environment sim to interface to yet but all the .air file information will be invaluable.
I'd just divide N2 by the bypass ratio of the engine to get N1.
No point in doing detailed moment of inertia, exhaust velocity and pressure analysis for the fan to determine spool-up lag.

Not sure if I explained myself particularly well in this question; I'm assuming that the relationship between N2 and N1 before the burner is lit is different from how it is afterwards. I'm guessing this on the basis that N2 is being driven by the GTS but is only blowing the (warm at best?) air that passes through it on to the N1 turbine and hence it won't turn anything like as close to the N2 speed. Am I just displaying my complete lack of understanding of the underlying physics here?

It would be advisable if you're not a stakeholder in a GTS repair and overhaul business.
Ha, ha! I had meant to roll this into the next question. A better question would have been to ask what trips the disengagement of the starter?

All those "rule of thumb" metrics are great too. Cheers!

Z
 
Just reading that you want to do this outside of any simulator. Then disregard my statements about FSX' internals.

Not sure if I explained myself particularly well in this question; I'm assuming that the relationship between N2 and N1 before the burner is lit is different from how it is afterwards. I'm guessing this on the basis that N2 is being driven by the GTS but is only blowing the (warm at best?) air that passes through it on to the N1 turbine and hence it won't turn anything like as close to the N2 speed. Am I just displaying my complete lack of understanding of the underlying physics here?

Jet engine shafts are usually well lubricated. On days with appropriate wind speed and wind direction, you can see (and hear) at least the first stage fans of some jet engines windmill in the breeze*. So my take is that even a smallish GTS should be able to spin the second turbine.

I meant dividing by bypass ratio, so if your BPR is 1.5 and you spin N2 up to 10%, you'd end up with 6.7% N1. Make it less, if you want to. It won't be relevant for the startup as it happens rather quickly and only N2 is being watched by the pilot. If you start your fuel injection process at 10%, things change again anyway and you need a new relationship between N2 and N1.

A better question would have been to ask what trips the disengagement of the starter?

As I've said: N2 and/or EGT.

Once you've got the basics down, you can get creative with hot starts (too much fuel in the combustion chamber -> excessive EGT) and hung starts (EGT rises, but N2 lags behind), although these should be really rare with digital engine controls.


*Personal experience with a CF6-80, which isn't quite small...
 
Thanks for the clarifications. I'm going to catch the N2 Sensor events on the GTS processor and "disengage and spin down".

If you start your fuel injection process at 10%, things change again anyway and you need a new relationship between N2 and N1.

Presumably when up and running at cruise power the ratio of N1:N2 percent tends to 1:1 (although I'd imagine that the actual RPM is quite different)?

...hot starts (too much fuel in the combustion chamber -> excessive EGT) and hung starts (EGT rises, but N2 lags behind)...
As you suggest, I think I'd better get a basic start and idle under my belt first!!!

only N2 is being watched by the pilot
That's interesting. Whilst there is a switch to allow selection of display of N1 or N2, the documentation seems to suggest that the pilot watches N1 until idle at 29% and watches JPT (EGT) for a rapid rise (sounds like the hot start you describe above) at which case they are instructed to abort the start.

Oh, one more thing. The pilot is supposed to leave the throttle lever at the idle stop for a start. Is it reasonable to suppose that if it were positioned above this then the start would continue to the commanded N1?

Cheers,
Z
PS/ One of the reasons I'm not doing this in the sim is that this is a Pegasus 11-61 we're talking about here. Even if FSX/P3D can simulate the spools it will all come horribly unstuck once I start wanting to vector the thrust. :)
 
Well that's starting to work quite nicely. What I have now is pretty simplistic but is reasonably realistic. When I initiate a start:
  • GTS controller accelerates the GTS to 77,000 rpm
  • GTS RPM sensor in the GTS controller starts accelerating N2 and tells the DECS that a start is underway
  • In the engine, the N2 acceleration timer detects that we are not lit and moves N1 at 2/3 N2 (for now)
  • An N2 RPM sensor in the DECs detects N2 at 10%, opens the torch igniter valve and starts the igniton
  • Back in the engine, the N2 acceleration timer checks if we have fuel and spark and lights (no fancy failures yet). This increases the rate of acceleration and moves N1 at the same percentage speed as N1. This is an ugly step change but I've yet to think through both non-linear accelerations and (more mind-bendingly for me right now) "elastic" relationship between N2 & N1 speeds.
  • An N2 sensor in the GTS controller spins down the GTS
  • The engine acceleration timer starts the generator controller. It should really just turn the generator but I'll do that later
  • The N2 sensor in the DECS closes the torch igniter valve and stops the ignition and instructs N2 acceleration up to idle.
  • Moving the throttle lever is caught by the Pilot Lever Angle sensor in the DECS and accelerates the engine over a fixed period (ugly code) to the new %RPM according to a simple formula
  • Moving the throttle back to shutoff causes N1 and N2 to spin down and all sorts of stuff to stop. No windmilling of N1/N2 due to airspeed yet.
I stare smugly at the screen and Mrs Z looks on despairingly, wondering why I don't find finishing the utility room more appealing...

Z
 
Presumably when up and running at cruise power the ratio of N1:N2 percent tends to 1:1 (although I'd imagine that the actual RPM is quite different)?

Uh, that depends on the engine. You can have engines that run at 93% N1 and 87% N2 or the other way around at cruise.

Oh, one more thing. The pilot is supposed to leave the throttle lever at the idle stop for a start. Is it reasonable to suppose that if it were positioned above this then the start would continue to the commanded N1?

I suppose the digital engine control unit would conduct a regular startup and then spool the engine to the commanded thrust setting.

PS/ One of the reasons I'm not doing this in the sim is that this is a Pegasus 11-61 we're talking about here. Even if FSX/P3D can simulate the spools it will all come horribly unstuck once I start wanting to vector the thrust. :)

Pegasus...Pegasus...Pegasus...oh, right, Harrier!

The position of the vector nozzle affects engine RPM?
That would be news to me.


  • Back in the engine, the N2 acceleration timer checks if we have fuel and spark and lights (no fancy failures yet). This increases the rate of acceleration and moves N1 at the same percentage speed as N1. This is an ugly step change but I've yet to think through both non-linear accelerations and (more mind-bendingly for me right now) "elastic" relationship between N2 & N1 speeds.

I've tried to fit a polynomic curve through four or five known points in a N1-N2 diagram. OpenOffice spat out a polynom of the tenth degree as the closest approximation and I imemdiately called it quits. I've settled for intervals with a linear relationship instead. Not elegant, but implementing it into XML won't make your head explode.

I stare smugly at the screen and Mrs Z looks on despairingly, wondering why I don't find finishing the utility room more appealing...

Ah, the blessing of not being married...
 
Uh, that depends on the engine. You can have engines that run at 93% N1 and 87% N2 or the other way around at cruise.
Yeah - I'd read that but am scratching my head a little about why that would be. I suppose if they improve the design/efficiency of a spool then it might run at a different speed than the reference speed. I was thinking that they wouldn't design a situation where you'd have to accelerate the N2 past its max RPM in order to accelerate the N1 to 100% - or indeed vice versa where the N2 could over-speed the N1.

Pegasus...Pegasus...Pegasus...oh, right, Harrier!
The position of the vector nozzle affects engine RPM? That would be news to me.
Harrier indeed (are there other aircraft?), but sorry - not what I meant. I was just acknowledging that the ESP/FSX FDE doesn't model variable vectored thrust at all so I'm not yet clear of the relevance of its extensive inherent support for turbofan engine performance. I get the feeling that making vectored thrust work means you mostly need to ignore/overwrite the FDE. But, how hard can that be I wonder?o_O

I've tried to fit a polynomic curve through four or five known points in a N1-N2 diagram. OpenOffice spat out a polynom of the tenth degree as the closest approximation and I imemdiately called it quits. I've settled for intervals with a linear relationship instead. Not elegant, but implementing it into XML won't make your head explode.
Aggghhh! Head hurting! Head hurting! :eek: It was a long time since I did anything more than moderately tricky arithmetic. Calculus is a dim and distant memory and my greatest recollection of A-Level Physics is an experiment I devised using very high voltages, paint and beer cans. (It didn't work - which must have come as little surprise to Mr Harman, my Physics teacher). Polynomial equations have long since left the contents of the bone dome so writing any code to improve N1/N2 relationship is going to be a long, hard slog for me. Your comments and suggestions have been very helpful though.:D

Ah, the blessing of not being married...
Maybe. There are quite a few upsides though. I'll let you know when I remember them.:duck:
 
Yeah - I'd read that but am scratching my head a little about why that would be. I suppose if they improve the design/efficiency of a spool then it might run at a different speed than the reference speed. I was thinking that they wouldn't design a situation where you'd have to accelerate the N2 past its max RPM in order to accelerate the N1 to 100% - or indeed vice versa where the N2 could over-speed the N1.

As far as I remember, N1 is basically responsible for thrust, so you'll see more variation there than with N2. For a JT8D, the difference between idle and full throttle N2 is ~45% while for N1, it's 75%. Parity between N1 and N2 is only reached at about 90% for each. But this is a low bypass turbofan. Higher bypass fans might as well reach that point in the 80% range.

I get the feeling that making vectored thrust work means you mostly need to ignore/overwrite the FDE. But, how hard can that be I wonder?o_O

Rob Barendregt did some VTOL gauges that could be of use to a Harrier. Might want to check them out (they're on AVSIM).

Aggghhh! Head hurting! Head hurting! :eek: It was a long time since I did anything more than moderately tricky arithmetic. Calculus is a dim and distant memory and my greatest recollection of A-Level Physics is an experiment I devised using very high voltages, paint and beer cans. (It didn't work - which must have come as little surprise to Mr Harman, my Physics teacher). Polynomial equations have long since left the contents of the bone dome so writing any code to improve N1/N2 relationship is going to be a long, hard slog for me. Your comments and suggestions have been very helpful though.:D

Don't worry. According to my degree, I'm supposed to be an engineer, but maths was never one of my bigger strength. ;)

Maybe. There are quite a few upsides though. I'll let you know when I remember them.:duck:

Well, you won't have to go for groceries in at least 50% of cases. :D
 
Back
Top