I initially wanted some sample data for EGT, Fuel Flow, N1 and N2 to build a prognosis system that predicts engine failure (ECTM). I searched for some sample data online but got to know that there's virtually no way of acquiring that. (Where can I find sample data required for Engine Condition Monitoring?)

Now, I have to generate my own data for this. It is crucial for me to understand the relationship between the 5 important parameters that I'm taking into consideration.

Parameters are EGT, Fuel Flow, N1, N2 and Air Temperature.

For now, I've understood this:

  1. Temperature increases, EGT increases.
  2. Temperature increases, Fuel Flow increases.
  3. N2 decreases, Fuel Flow increases. (src - What does it mean for N1/N2 to float?)

Can you guys please give me more insight like the ones above? Also, please correct my mistakes. I'm a computer science student and this is all very new to me.

  • $\begingroup$ I think you misinterpreted the post on the N2/FF. What is meant by the answer is that for a 'set N2 control', if the N2 drops, a command will be sent to increase the FF → to bring the N2 back to its 'set N2' position. If N2 is allowed to float, then N2 won't be the control target. $\endgroup$
    – user14897
    Jun 20, 2018 at 6:45
  • $\begingroup$ Oh. I didn't know that. I've been reading about aircraft engines only since 2 days now. I'm only trying to generate some fake data to build an ECTM prototype. I'll keep this in mind when doing it. Thanks! $\endgroup$
    – Shreyas S
    Jun 21, 2018 at 4:06

1 Answer 1


I am not really sure what sort of engine failures you want to predict, but ECTM is usually used to detect things such as;

  • Worn air seals
  • Blade tip wear (compressors and turbines)
  • Compressor fouling
  • Eroded blades and turbine nozzle guides

These hardware issues cause changes in the “state variables”;

  • N1 (LPC) compressor efficiency
  • N2 (HPC) compressor efficiency
  • N2 (HPT) turbine efficiency
  • N1 (LPT) turbine efficiency

These changes in component efficiency then result in changes of the engine parameters;

  • N1 rpm
  • N2 rpm
  • Fuel flow
  • Exhaust gas temp
  • etc.

By detecting changes in the measurements, ECTM aims to tell you which module (LPC, HPC, HPT, or LPT) has degraded. Usually, it’s not possible to say why the efficiency has decreased (i.e. you can’t tell if it’s erosion of the blade leading edge, or worn blade tips), you can only tell which module is affected.

But the relationship you want between changes of efficiency and the measured parameters, is very complex. For that step, you need a performance simulation program, to give sufficient accuracy if you are actually going to apply the approach to data from a real engine. Otherwise, all one can say is, when an engine degrades, fuel flow, temperature, and rpms will go up. And they go up for most (or all) of the faults above. So, unless you know how much they change for each fault, you can’t tell which module has degraded. Then, your method is just saying “the engine has degraded” (not so useful), rather than why (and, only the LPC needs a repair, for example, which is cheaper and quicker than an HPC repair, because it requires a lot more disassembly).

But, if all you want to do is test an approach in theory, you could just make up the increase in each parameter, it doesn’t have to be accurate, because it’s just a mathematical example, you are not going to apply it to an actual engine, so the predicted effects of degradation don’t need to match reality closely. Just make up 4 different patterns of degradation;

  • degraded LPC: 50 rpm N1 increase, 200 rpm N2 increase, 5% inc in fuel flow, 200 deg inc in EGT
  • degraded HPC: 100 rpm N1 inc., 200 rpm N2 inc, 7% in in fuel flow, 150 deg inc in EGT


Then, create multiple examples of each fault by add a random amount of noise to each parameter, say < or up to 1% of full scale value (and you can make full scale up as well, let’s say, N1 = 8,500 rpm, N2 = 12,250 rpm, fuel flow = 3.2 lb/s, EGT = 650 deg C.)

Now, you have examples with noise, of known faults. See how well your method can correctly find the faults....

Sure, it’s a little crude, but if you can’t get hold of a performance simulation program that lets you change the efficiency of the modules to generate the degraded fault behaviour, at least it lets you do something. You can play around with the numbers, and see what size enables you to detect a fault, and what size does it start to get confused/ wrong.

  • $\begingroup$ This is awesome! You compiled my 2 days worth research in one answer. This is exactly what I was looking for. What you said is exactly what I'm trying to do. I'm just adding some amount of noise to each parameter and trying to build my machine learning model around it. Its good to know that I haven't deviated too much from what I intended to achieve. Thanks again for this beautiful answer! $\endgroup$
    – Shreyas S
    Jun 21, 2018 at 3:53
  • $\begingroup$ @ShreyasS. Glad to help. Just to clarify, though I think you have followed my words correctly, when I say “add a random amount of noise”, I mean, create multiple examples of each of the 4 faults, with a random amount of noise on each example. So, say 100 examples x 4 faults. Machine learning is a good technique to try. Are you using Python, by chance? $\endgroup$
    – Penguin
    Jun 21, 2018 at 9:39
  • $\begingroup$ Yeah, that's right. So for example, I've assumed the range of EGT to be between 700 and 1900. When generating random data, I've given the range to be 500 - 2100. Whenever EGT goes below 700 or above 1900, I consider it a fault. I've created 100,000 rows of data like that. And yes, I am using python. If you're interested, you can check it out on my github account - github.com/shreyas707/ectm $\endgroup$
    – Shreyas S
    Jun 21, 2018 at 16:19

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .