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

EPR in fs9

Messages
126
Country
italy
As we all know the EPR in FS9 is done badly.
To simulate some programmers do depend on the N1.
Is there a way to do it in a more realistic, then create it as a function of pressure and temperature?
 
EPR simulation for a JT8D-15.

Code:
(A:TURB ENG CORRECTED N1:1, percent) 31.50   <               
if{ (A:TURB ENG CORRECTED N1:1, percent) 0.0013 *   1.00 + (>L:EPR E1, enum) }

31.50 80.80 (A:TURB ENG CORRECTED N1:1, percent) rng             
if{ (A:TURB ENG CORRECTED N1:1, percent) 31.50 - 0.0103 *   1.04 + (>L:EPR E1, enum) }
   
80.80 83.60 (A:TURB ENG CORRECTED N1:1, percent) rng         
if{ (A:TURB ENG CORRECTED N1:1, percent) 80.80 - 0.0357 *   1.55 + (>L:EPR E1, enum) }

83.60 86.15 (A:TURB ENG CORRECTED N1:1, percent) rng           
if{ (A:TURB ENG CORRECTED N1:1, percent) 83.60 - 0.0392 *   1.65 + (>L:EPR E1, enum) }

86.15 88.60 (A:TURB ENG CORRECTED N1:1, percent) rng           
if{ (A:TURB ENG CORRECTED N1:1, percent) 86.15 - 0.0408 *   1.75 + (>L:EPR E1, enum) }

88.60 91.20 (A:TURB ENG CORRECTED N1:1, percent) rng           
if{ (A:TURB ENG CORRECTED N1:1, percent) 88.60 - 0.0385 *   1.85 + (>L:EPR E1, enum) }

91.20 94.15 (A:TURB ENG CORRECTED N1:1, percent) rng               
if{ (A:TURB ENG CORRECTED N1:1, percent) 91.20 - 0.0339 *   1.95 + (>L:EPR E1, enum) }

94.15 97.65 (A:TURB ENG CORRECTED N1:1, percent) rng           
if{ (A:TURB ENG CORRECTED N1:1, percent) 94.15 - 0.0286 *   2.05 + (>L:EPR E1, enum) }

(A:TURB ENG CORRECTED N1:1, percent) 97.65   >               
if{ (A:TURB ENG CORRECTED N1:1, percent) 97.65 - 0.0240 *   2.15 +   (>L:EPR E1, enum) }
 
Ok, but these are fixed values.
I would like variables FS9 static pressure and temperature to try to shape it to vary from these
 
The static EPR table I'm using is the easiest method for getting reasonably accurate values from real cruise tables as published in the aircraft manual.


You could, of course, also try to determine the dynamic pressure at the exit of the engine and divide it by the dynamic pressure in front of the engine. But this requires some knowledge of the inner workings of a turbofan engine and might not be feasible to do in XML.
 
I have almost finished my studies in aerospace engineering, so I mean enough to jet engines. The only problem is I do not know the variables xml FS9 I need.
What I need it is:
Outside temperature, static pressure, and if it is possible the pressure at the outlet from the turbine.
I can get considering the egt and unfortunately if one believes some assumptions because of FS9.
 
But this

Code:
(A:TURB ENG CORRECTED N1:1, percent) 31.50 <
if{ (A:TURB ENG CORRECTED N1:1, percent) 0.0013 * 1.00 + (>L:EPR E1, enum) }

31.50 80.80 (A:TURB ENG CORRECTED N1:1, percent) rng
if{ (A:TURB ENG CORRECTED N1:1, percent) 31.50 - 0.0103 * 1.04 + (>L:EPR E1, enum) }

80.80 83.60 (A:TURB ENG CORRECTED N1:1, percent) rng
if{ (A:TURB ENG CORRECTED N1:1, percent) 80.80 - 0.0357 * 1.55 + (>L:EPR E1, enum) }

83.60 86.15 (A:TURB ENG CORRECTED N1:1, percent) rng
if{ (A:TURB ENG CORRECTED N1:1, percent) 83.60 - 0.0392 * 1.65 + (>L:EPR E1, enum) }

86.15 88.60 (A:TURB ENG CORRECTED N1:1, percent) rng
if{ (A:TURB ENG CORRECTED N1:1, percent) 86.15 - 0.0408 * 1.75 + (>L:EPR E1, enum) }

88.60 91.20 (A:TURB ENG CORRECTED N1:1, percent) rng
if{ (A:TURB ENG CORRECTED N1:1, percent) 88.60 - 0.0385 * 1.85 + (>L:EPR E1, enum) }

91.20 94.15 (A:TURB ENG CORRECTED N1:1, percent) rng
if{ (A:TURB ENG CORRECTED N1:1, percent) 91.20 - 0.0339 * 1.95 + (>L:EPR E1, enum) }

94.15 97.65 (A:TURB ENG CORRECTED N1:1, percent) rng
if{ (A:TURB ENG CORRECTED N1:1, percent) 94.15 - 0.0286 * 2.05 + (>L:EPR E1, enum) }

(A:TURB ENG CORRECTED N1:1, percent) 97.65 >
if{ (A:TURB ENG CORRECTED N1:1, percent) 97.65 - 0.0240 * 2.15 + (>L:EPR E1, enum) }
[\code]




I must add between
<Value Minimum="1.0" Maximum="2.25">.........<\value>?
 
But this what?

A list of available variables for FSX/ESP/P3D is here:
https://msdn.microsoft.com/en-us/library/cc526981.aspx

Most of these are also in FS9. Still, you do not have any readily available variables for p_Exhaust and T_Exhaust (EGT is calculated in the same way by FS9 as EPR).


If you want to calculate p_Exhaust, you'll have to make a simple thermodynamic model of a jet engine and translate it into XML-readable equations.
But as this model is simplified and thus will be prone to errors compared to the real engine, sticking to the fixed table is the easiest option.
You certainly have a cruise table for a 747-200 with RB211 engines somewhere. Use it to create said table.
 
I must add between
<Value Minimum="1.0" Maximum="2.25">.........<\value>?

Code:
(A:TURB ENG CORRECTED N1:1, percent) 31.50 &lt;
if{ (A:TURB ENG CORRECTED N1:1, percent) 0.0013 * 1.00 + (&gt;L:EPR E1, enum) }

31.50 80.80 (A:TURB ENG CORRECTED N1:1, percent) rng
if{ (A:TURB ENG CORRECTED N1:1, percent) 31.50 - 0.0103 * 1.04 + (&gt;L:EPR E1, enum) }

80.80 83.60 (A:TURB ENG CORRECTED N1:1, percent) rng
if{ (A:TURB ENG CORRECTED N1:1, percent) 80.80 - 0.0357 * 1.55 + (&gt;L:EPR E1, enum) }

83.60 86.15 (A:TURB ENG CORRECTED N1:1, percent) rng
if{ (A:TURB ENG CORRECTED N1:1, percent) 83.60 - 0.0392 * 1.65 + (&gt;L:EPR E1, enum) }

86.15 88.60 (A:TURB ENG CORRECTED N1:1, percent) rng
if{ (A:TURB ENG CORRECTED N1:1, percent) 86.15 - 0.0408 * 1.75 + (&gt;L:EPR E1, enum) }

88.60 91.20 (A:TURB ENG CORRECTED N1:1, percent) rng
if{ (A:TURB ENG CORRECTED N1:1, percent) 88.60 - 0.0385 * 1.85 + (&gt;L:EPR E1, enum) }

91.20 94.15 (A:TURB ENG CORRECTED N1:1, percent) rng
if{ (A:TURB ENG CORRECTED N1:1, percent) 91.20 - 0.0339 * 1.95 + (&gt;L:EPR E1, enum) }

94.15 97.65 (A:TURB ENG CORRECTED N1:1, percent) rng
if{ (A:TURB ENG CORRECTED N1:1, percent) 94.15 - 0.0286 * 2.05 + (&gt;L:EPR E1, enum) }

(A:TURB ENG CORRECTED N1:1, percent) 97.65 &gt;
if{ (A:TURB ENG CORRECTED N1:1, percent) 97.65 - 0.0240 * 2.15 + (&gt;L:EPR E1, enum) }

[\code]
 
No.
Code:
<Element>
<Select>
<Value>
(A:TURB ENG CORRECTED N1:1, percent) 31.50 &lt;
if{ (A:TURB ENG CORRECTED N1:1, percent) 0.0013 * 1.00 + (&gt;L:EPR E1, enum) }

31.50 80.80 (A:TURB ENG CORRECTED N1:1, percent) rng
if{ (A:TURB ENG CORRECTED N1:1, percent) 31.50 - 0.0103 * 1.04 + (&gt;L:EPR E1, enum) }

80.80 83.60 (A:TURB ENG CORRECTED N1:1, percent) rng
if{ (A:TURB ENG CORRECTED N1:1, percent) 80.80 - 0.0357 * 1.55 + (&gt;L:EPR E1, enum) }

83.60 86.15 (A:TURB ENG CORRECTED N1:1, percent) rng
if{ (A:TURB ENG CORRECTED N1:1, percent) 83.60 - 0.0392 * 1.65 + (&gt;L:EPR E1, enum) }

86.15 88.60 (A:TURB ENG CORRECTED N1:1, percent) rng
if{ (A:TURB ENG CORRECTED N1:1, percent) 86.15 - 0.0408 * 1.75 + (&gt;L:EPR E1, enum) }

88.60 91.20 (A:TURB ENG CORRECTED N1:1, percent) rng
if{ (A:TURB ENG CORRECTED N1:1, percent) 88.60 - 0.0385 * 1.85 + (&gt;L:EPR E1, enum) }

91.20 94.15 (A:TURB ENG CORRECTED N1:1, percent) rng
if{ (A:TURB ENG CORRECTED N1:1, percent) 91.20 - 0.0339 * 1.95 + (&gt;L:EPR E1, enum) }

94.15 97.65 (A:TURB ENG CORRECTED N1:1, percent) rng
if{ (A:TURB ENG CORRECTED N1:1, percent) 94.15 - 0.0286 * 2.05 + (&gt;L:EPR E1, enum) }

(A:TURB ENG CORRECTED N1:1, percent) 97.65 &gt;
if{ (A:TURB ENG CORRECTED N1:1, percent) 97.65 - 0.0240 * 2.15 + (&gt;L:EPR E1, enum) }
</Value>
</Select>
</Element>

The gauge needle is driven with.
Code:
<Value Minimum="1.0" Maximum="2.25">(L:EPR E1, enum)</Value>
 
According to the SDK "rng returns True if the third operand lies between values one and two" Anyone know if that's correct?
 
0.002 (A:TURB ENG1 JET THRUST,pounds) 10000 / 4 pow * 0.008 (A:TURB ENG1 JET THRUST,pounds) 10000 / 3 pow * - 0.032 (A:TURB ENG1 JET THRUST,pounds) 10000 / * + 0,997 +

I tried the following formula, writing the EPR function of the thrust.
Still it seems to be all right, but when the plane accelerates EPR begins to decrease rapidly. Why?
 
Through an interpolation of points, data from cordinates X (jet trhust in pounds) and Y (EPR)
 
According to the SDK "rng returns True if the third operand lies between values one and two" Anyone know if that's correct?

Is correct, and because of the way Heretic wrote his code, it works ok for him.


You must use 0.997 , or perhaps you have written it ok in the code?

BTW, are you shure about linking EPR to Jet Thrust ???

Tom
 
Is correct, and because of the way Heretic wrote his code, it works ok for him.

Code:
1.50 80.80 (A:TURB ENG CORRECTED N1:1, percent) rng
if{ (A:TURB ENG CORRECTED N1:1, percent) 31.50 - 0.0103 * 1.04 + (&gt;L:EPR E1, enum) }

80.80 83.60 (A:TURB ENG CORRECTED N1:1, percent) rng
if{ (A:TURB ENG CORRECTED N1:1, percent) 80.80 - 0.0357 * 1.55 + (&gt;L:EPR E1, enum) }

Neither of those if-statements would evaluate if A:TURB ENG CORRECTED N1 = 80.80?
 
Code:
1.50 80.80 (A:TURB ENG CORRECTED N1:1, percent) rng
if{ (A:TURB ENG CORRECTED N1:1, percent) 31.50 - 0.0103 * 1.04 + (&gt;L:EPR E1, enum) }

80.80 83.60 (A:TURB ENG CORRECTED N1:1, percent) rng
if{ (A:TURB ENG CORRECTED N1:1, percent) 80.80 - 0.0357 * 1.55 + (&gt;L:EPR E1, enum) }

Neither of those if-statements would evaluate if A:TURB ENG CORRECTED N1 = 80.80?

Both wil evaluate, and the second if{ will assign the value, overwriting the first.

rng includes first and second operands in the calcs. Normal use would be like

0-0.99999
1-1.99999
etc.

but as to include the most fractional value, it may be written like

0-1
1-2
etc

as Heretic did, with proper care, of course.

Tom
 
Back
Top