• 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.

FS2004 Engine EGT problem

Messages
1,468
Country
italy
This has been touched upon briefly elsewhere on the forum in that
(A:ENG EXHAUST GAS TEMPERATURE, celsius) goes straight back down to zero when the engines are turned off. Not exactly realistic!
So I'm trying to think of a way round that. I assume that probably one has to put a value into an L:var and "combine" that with the A:var so that the two work together. Or I could perhaps do A:var * (a multiple) to slow the cooling rate down.
What's the best solution or is there a better one?
vololiberista
 
This has been touched upon briefly elsewhere on the forum in that
(A:ENG EXHAUST GAS TEMPERATURE, celsius) goes straight back down to zero when the engines are turned off. Not exactly realistic!
So I'm trying to think of a way round that. I assume that probably one has to put a value into an L:var and "combine" that with the A:var so that the two work together. Or I could perhaps do A:var * (a multiple) to slow the cooling rate down.
What's the best solution or is there a better one?
vololiberista

I do this:

Set up an L:var for the EGT...
The L:var increases to the FS EGT value. It does so in big enough steps that the response is very rapid (there's a reason for not just setting the FS EGT)
The L:var decreases following a Newtonian cooling rate model where the step is proportional to the difference between the temperatures. I have set a lower limit - target - of the outside air temperature (with a modifier for 'residual heat'). The cooling rate has a modifier for airspeed / wind speed so that the response in flight is suitably fast but after a flight the temperature falls more slowly.

Geoff
 
There's an EGT time constant in the .air file. I don't know how effective it is!
 
I do this:

Set up an L:var for the EGT...
The L:var increases to the FS EGT value. It does so in big enough steps that the response is very rapid (there's a reason for not just setting the FS EGT)
The L:var decreases following a Newtonian cooling rate model where the step is proportional to the difference between the temperatures. I have set a lower limit - target - of the outside air temperature (with a modifier for 'residual heat'). The cooling rate has a modifier for airspeed / wind speed so that the response in flight is suitably fast but after a flight the temperature falls more slowly.

Geoff

Geoff,
I'd be grateful if you could show me what you do. At the moment I'm playing with the idea of "adding" an L:var to the equation. The problem is that it is already a bit complex.
Code:
<Value Minimum="0" Maximum="800">(A:ENG1 EXHAUST GAS TEMPERATURE, celsius) (L:temp adj1,number) - (L:E1_hotstart, number) - </Value>
The (L:temp adj1,number) compensates for when ambient temperature is above ISA and (L:E1_hotstart, number) limits the EGT to 595c on startup if it would otherwise exceed it.
vololiberista
 
EGT is the temperature of a flowing gas so why not relate it to N2 once the fuel is turned off - let it fall to ambient when N2 = 0.
 
That's what I actually do!! The problem is that when the engine is turned off ie. n2=0 EGT falls too quickly. If for example I have an engine failure at altitude EGT will immediately fall to ambient temperature in about 2 seconds. Whereas it should take up to a minute or so (depending on actual OAT) to get from say 300c to -25c. The gauge indicates from 50c upwards so one would expect say 15secs not 1sec!!!!!
vololiberista
 
I checked the FSX default B747 which takes more than 30 sec to spool down from N1 = 27.3% to 0%, although it only takes about 4 sec to fall by 50% to N1 = 13.6%
 
You could make a set of L:EGT_N variables.
Every cycle you shift the valuses from L:EGT_N to L:EGT_N+1 and add the current EGT to L:EGT_0.
Then the EGT gauge displays the avarage of all the variables.
That way the average will drop off slowly even if the actual EGT suddenly drops.

Another option is to detect when the engine stops.
Then you mark the time and the previous high EGT.
You then let a formula based on the elapsed time determine which EGT to display.
 
Last edited:
Yes, I'm toying with the idea of a "feedback" L:var. The other thing that I noticed which is why I introduced an "adjustment" is that if the ambient temperature is ISA +5 or above and the engines has been used and shut down then the starting EGT is higher then if the engine was cold.
Because as stated above we're talking only of the air temperature then it's only necessary to account for "reflected-convected" heat from the various engine surfaces. So in reality I only need to concentrate on say at or below 150c. And there is also a tendency for the temperature to rise once the engine is shut down because of the convection. As in your car the water temperature rises when you switch the engine off.
I don't think it's necessary to model to that detail!!!!!!!
vololiberista
 
Geoff,
I'd be grateful if you could show me what you do. At the moment I'm playing with the idea of "adding" an L:var to the equation. The problem is that it is already a bit complex.
...
vololiberista

Hi,

This is probably way over complicated and now that this has brought it back to my attention I might clean it up a bit, but this is the current code:

Code:
(A:General eng1 exhaust gas temperature, celsius) (L:LastEGT1,enum) &gt;= (L:runonce, enum) 1 == &amp;&amp; (A:ENG1 N1 RPM, percent) 0 &gt; &amp; if{ 
(A:General eng1 exhaust gas temperature, celsius) (>L:ModEGT1,enum) (L:ModEGT1,enum) (>L:LastEGT1,enum) 
} els{ 
(L:ModEGT1,enum) (A:General eng1 exhaust gas temperature, celsius) - abs 12.5 * /-/ 5000 + 2500 min 60 max s0 
(L:ModEGT1,enum) (A:General eng1 exhaust gas temperature, celsius) - l0 / (>L:E1TGTcool, enum) 
(L:E1TGTcool, enum) (A:AIRCRAFT WIND Z,knots) 25 / (A:AIRSPEED TRUE, knot) 10 / + 0.5 max 40 min * (>L:E1TGTcool, enum) 
(L:LastEGT1,enum) (L:E1TGTcool, enum) - (>L:ModEGT1,enum) (L:ModEGT1,enum) (>L:LastEGT1,enum) 
}

Basically, the L:Var cannot be lower than the FS TGT with the engine running. If the engine is not running then it can fall to the ambient temp.
The rate of cooling is modified by the temp difference and also wind / air speed. When stationary, the cooling rate is very fast down to about 200 and then somewhat slower... This is consistent with my experience of the 717 flight deck (usually about 10 mins after engine shutdown) where there is still significant temperature shown - about 180 degrees is typical...

Geoff
 
An alternative unchecked simple version.


Code:
(A:GENERAL ENG COMBUSTION:1, Boolean) 1 ==  )
	if{ A:GENERAL ENG EXHAUST GAS TEMPERATURE:1, Celsius) (&gt; L:MYEGT1, Celsius)
	(L:MYEGT1, Celsius) (A:AMIENT TEMPERATURE Celsius) -  (&gt; L:MYOFFSET1, Celsius)
	}
	els{ (L:MYOFFSET1, Celsius) 0.9 * (A:AMBIENT, Celsius) + (&gt; L:MYOFFSET1, Celsius)}

When the engine is running it stores engine EGT in L:MYEGT and the difference between engine EGT and ambient temperature in L:MYOFFSET.

When the engine is not running it reduces the offset by a factor of 0.9 and adds it to the ambient temperature and assigns that to L:MYEGT each cycle. The lower the value of the constant, 0.9, the more quickly the temperature decays.
 
Geoff,
I've got your code working. Though I think it is a little too slow when it starts from a very high temperature. I haven't yet tried in the air.
I've done it in two bits making the actual gauge code simpler
Code:
<Value Minimum="0" Maximum="800">(A:General eng1 exhaust gas temperature, celsius) (L:ModEGT1,enum) &gt; if{ (A:ENG1 EXHAUST GAS TEMPERATURE, celsius) (L:temp adj1,number) - (L:E1_hotstart, number) - }
els{ (L:ModEGT1,enum) } </Value>

The only remaining problem is the tooltip. Whilst I have done tooltips with {if} and {else} before they have only contained alternative texts.
I have never yet had success with coding formulae as a tooltip.
The original working tooltip is/was
Code:
<Tooltip>Engine1 EGT: %((A:ENG1 EXHAUST GAS TEMPERATURE, celsius) (L:temp adj1,number) - (L:E1_hotstart, number) -)%!03d!c %</Tooltip>

What is the best way to put
Code:
<Value Minimum="0" Maximum="800">(A:General eng1 exhaust gas temperature, celsius) (L:ModEGT1,enum) &gt; if{ (A:ENG1 EXHAUST GAS TEMPERATURE, celsius) (L:temp adj1,number) - (L:E1_hotstart, number) - }
els{ (L:ModEGT1,enum) } </Value>
into a tooltip?

MGH I tried your code too. (even after correcting the errors!!!!!) But I couldn't get it to work. Sorry.
vololiberista
 
Store your calculated value into another L:var such as (>L:MyCustomEGT,enum) and then use that L:var in your tooltip! :D
 
As usual the solution is simple!!! Thanks Bill.
There are some other anomalies which I'm sure have been noticed before.
When I was setting up the gauges I tested them at various temperatures and noticed that the base EGT is higher then the ambient temperature if it's above 20c. It's obviously built in to the formulation of EGT.
oat 20 > egt 25
oat 25 > egt 35
oat 30 > egt 46
oat 35 > egt 56
oat 40 > egt 67
oat 45 > egt 78
oat 50 > egt 89
It's easy enough to compensate when starting up but not so easy after landing (assuming it's an en route stopover).

And to Geoff. Last night I tested to see how long the temperature actually took to get to the exact level of ambient = 3 days and nights of sim time!!!!
vololiberista
 
That's not too far out. An engine shut down the previous night for a morning borescope inspection will still be warm to the touch.
 
I'm trying to work out a formula for the above numbers which don't make sense especially if the engine is "cold".
vololiberista
 
Back
Top