Official Fulqrum Publishing forum

Official Fulqrum Publishing forum (http://forum.fulqrumpublishing.com/index.php)
-   FM/DM threads (http://forum.fulqrumpublishing.com/forumdisplay.php?f=196)
-   -   Spitfire Mk IIa performance tests - Patch 1.07.18301 (http://forum.fulqrumpublishing.com/showthread.php?t=33077)

Crumpp 07-13-2012 10:31 AM

Quote:

"Principles of Performance Measurement" but it may prove useful to you for gathering data for the Spitfire IIa once I have straightened out the script in my Performance.mis.

Yes it will be a great help in any future testing. It is silly to even discuss airplane performance without knowing the atmospheric conditions.

You can tell if the game is modeling denisty altitude by looking at the FTH. If the FTH matches standard day conditions, the atmospheric model is not correct.

Crumpp 07-13-2012 01:22 PM

http://books.google.com/books?id=m5V...arging&f=false

Peril 07-15-2012 01:45 AM

Quote:

Originally Posted by Crumpp (Post 444226)
Yes it will be a great help in any future testing. It is silly to even discuss airplane performance without knowing the atmospheric conditions.

You can tell if the game is modeling denisty altitude by looking at the FTH. If the FTH matches standard day conditions, the atmospheric model is not correct.

Hi crumpp.

If the terrain is to scale in ClOD, you could try 'time vs distance' over varying alts to confirm atmospheric change effects on TAS.

Crumpp 07-15-2012 02:07 AM

Quote:

Hi crumpp.

If the terrain is to scale in ClOD, you could try 'time vs distance' over varying alts to confirm atmospheric change effects on TAS.
Hi Peril,

Good to see you. Hope they get the P-40 in the game soon, LOL.

That is a really good idea. You could even do T vs D in cardinal directions to check wind modeling, confirm the PEC, and TAS.

ACE-OF-ACES 07-18-2012 10:45 PM

1 Attachment(s)
Quote:

Originally Posted by klem (Post 443464)
Am I missing something?

I think so.. In that I found and error in your Density Altitude calculation

See the following REVIEW of your Java code.

Before we do that, I took the liberty of re-wording the formulas you used from Williams site, i.e.

http://williams.best.vwh.net/avform.htm#Altimetry

I also added more detailed definitions all in all with the goal of making them easier to read and follow

Quote:

ISA Standard Temperature Lapse Rate
Code:

TLR = 0.0065°C/m = 0.0019812°C/ft
Relationship between pressure and indicated altitude
Code:

Alt_corr = (T_o/TLR) × [1 - (Altimeter_set/P_o)^0.190261]
Alt_corr = 145442.16 × [1 - (Altimeter_set/P_o)^0.190261] <-- in feet
Alt_corr =  44330.77 × [1 - (Altimeter_set/P_o)^0.190261] <-- in meters

Alt_pressure = Alt_ind + Alt_corr

Where:
Code:

Alt_ind      = Altimeter Indicated Altitude with corresponding Altimeter Setting
Altimeter_set = Altimeter Setting
P_o          = ISA Standard Pressure @ SL
T_o          = ISA Standard Temperature @ SL
TLR          = ISA Standard Temperature Lapse Rate

Relationship between pressure and density altitude
Code:

Alt_density = Alt_pressure + (T_std/TLR) × [1 - (T_std/OAT)^0.2349690]
Where:
Code:

T_std = T_o - Alt_ind × TLR = Standard Temperature in Kelvin
T_o  = ISA Standard Temperature @ SL
TLR  = ISA Standard Temperature Lapse Rate
OAT  = Outside Temperature in Kelvin


Now lets review your Java implementation of Williams formulas

Quote:

Pressure Altitude

Code:

//Pressure Alt = P_alt = Ind_Alt + 145442.2*(1 - (alt_set/1013.25)^0.190261)
Pressure_Alt = I_Altitude + 145442.2 * (1 - Math.Pow((C_AltimeterPinion/1013.25),0.190261));

Everything looks fine here, but keep in mind this is only valid when I_Altitude is in feet, which will be the case when testing RAF planes, but it will switch to meters when testing LW planes.

Density Altitude
Code:

//Density Alt = P_Alt +(StdTemp0/.0019812)*(1-(StdTemp0/OAT)^0.2349690);
//Density Alt = P_Alt +( 273.15 /.0019812)*(1-( 273.15 /OAT)^0.2349690);

Density_Alt = Pressure_Alt + 137870.9872804361 * (1 - Math.Pow((273.15 / Z_AmbientAirTemperature),0.2349690));

Here you made a Standard Temperature calculation error..

It is not a constant!

It varries with Alt_ind (see above)

Which causes several problems..

1) You created a constant (137870.9872804361) when it should not be a constant!
2) You subtracted the wrong value from 1
Here is the Java code you want to use

Code:

Density_Alt = Pressure_Alt + (T_std/TLR) * (1 - Math.Pow((T_std / Z_AmbientAirTemperature),0.2349690));
Where:
Code:

T_std = 288.15 - Alt_ind × TLR
TLR  = 0.0065

If you plan on doing any testing above 36Kft than you will want to adjust T_std as follows

Code:

if ( height < tropopause ) then
  T_std = T_o - Alt_ind × TLR
else
  T_std = T_tropopause

Where:
Code:

tropopause starts at 11.0km (36089.24ft) and ends at 20km (65,616.78ft)
TLR = 6.49(°C/1,000m) = 1.98(°C/1,000ft) = 3.56(°F)/1,000ft
T_Topopause = -56.5(°C) = 216.65(°K)

Thus no need to check for height above 65kft in that I don't think the X-15 is in the game.. Yet! Or if the sequal includes the Bf-109K-4 with the uber FM you might have to add that check! ;)

SUMMARY
I don't know if I would use Williams formulas.. I have some concerns with how he handles some of the units, but since you were using his formulas I thought it best to review those formulas. Also not sure if you can use Z_AmbientAirTemperature directly in that it is not realitve to I_Altitude.. And as you know small temp differences can have a big effect on Density Altitude calculations, so hopefully these are small differences. Might be better of using the ISA Standard Temp formulas adjusted for temp.

Hope this helps! S!

PS see attached where I did a quick ROC test and ploted the different altitudes

klem 07-19-2012 08:16 PM

Quote:

Originally Posted by ACE-OF-ACES (Post 446202)
I think so.. In that I found and error in your Density Altitude calculation

See the following REVIEW of your Java code.
...............................................
Where:
T_std = T_o - Alt_ind × TLR = Standard Temperature in Kelvin
T_o = ISA Standard Temperature @ SL
TLR = ISA Standard Temperature Lapse Rate
OAT = Outside Temperature in Kelvin[/code]

Now lets review your Java implementation of Williams formulas

Here is the Java code you want to use

Code:

Density_Alt = Pressure_Alt + (T_std/TLR) * (1 - Math.Pow((T_std / Z_AmbientAirTemperature),0.2349690));

OK I get the Constant versus T_std/TLR error, I made the mistake of taking it directly from his example

Quote:

Where:
T_std = 288.15 - Alt_ind × TLR
TLR = 0.0065
OK
Quote:

If you plan on doing any testing above 36Kft than you will want to adjust TLR as follows

Code:

if ( height < tropopause ) then
  TLR = 6.49(°C/1,000m) = 1.98(°C/1,000ft) = 3.56(°F)/1,000ft
else
  TLR = -56.5(°C) = 216.65(°K)

Where:
tropopause starts at 11.0km (36089.24ft) and ends at 20km (65,616.78ft)
I don't but I might build that into the code in case anyone else wants to use it.

Quote:

Also not sure if you can use Z_AmbientAirTemperature directly in that it is not realitve to I_Altitude.. And as you know small temp differences can have a big effect on Density Altitude calculations, so hopefully these are small differences. Might be better of using the ISA Standard Temp formulas adjusted for temp.

The Z_AmbeintAirTemperature appears to be the OAT at the altitude, it decreases with alt at around 0.0021C/ft

Quote:

Hope this helps! S!
It does, thanks. Also learning from Robo that the BCO doesn't work unless I wiggle the throttle.

ACE-OF-ACES 07-19-2012 08:39 PM

Quote:

Originally Posted by klem (Post 446523)
The Z_AmbeintAirTemperature appears to be the OAT at the altitude, it decreases with alt at around 0.0021C/ft

Roger that..

But my point is it is NOT realitive to 'I_Altitude'..

As far as I can tell it is realitive to 'Z_AltitudeAGL' and/or 'Z_AltitudeMSL'.

In short, the Z_AmbeintAirTemperature value your using may be the OAT realitive to another 'altitude' and not the one the plane is currently at..

For an example of which I speak, look at the TIME TO CLIMB picture I posted

Note at the higher altitudes (around 17.5Kft) the "Z" altitudes are quite different (higher) from the indicated, pressure and density.. Thus in and around that area when you use Z_AmbeintAirTemperature (OAT) your getting the temperature 'realitive' to the "Z" altitudes and not the OAT realitive to indicated, pressure, and density. How big of an error that will introduce.. Not sure have not calcualed it yet, but knowing how a little temperature difference can have a big effect on the calcuation of density altitude one should take pause.

Again, not 100% sure yet, need to test that to prove it to myself! I just wanted to bring it up should you come across it while testing

klem 07-19-2012 10:02 PM

Quote:

Originally Posted by ACE-OF-ACES (Post 446527)
Roger that..

But my point is it is NOT realitive to 'I_Altitude'..

As far as I can tell it is realitive to 'Z_AltitudeAGL' and/or 'Z_AltitudeMSL'.

In short, the Z_AmbeintAirTemperature value your using may be the OAT realitive to another 'altitude' and not the one the plane is currently at..

For an example of which I speak, look at the TIME TO CLIMB picture I posted

Note at the higher altitudes (around 17.5Kft) the "Z" altitudes are quite different (higher) from the indicated, pressure and density.. Thus in and around that area when you use Z_AmbeintAirTemperature (OAT) your getting the temperature 'realitive' to the "Z" altitudes and not the OAT realitive to indicated, pressure, and density. How big of an error that will introduce.. Not sure have not calcualed it yet, but knowing how a little temperature difference can have a big effect on the calcuation of density altitude one should take pause.

Again, not 100% sure yet, need to test that to prove it to myself! I just wanted to bring it up should you come across it while testing

OK, well there is the parameter I_AmbientTemp. William's example calls it Actual Temperature. It looks as though that is what he means, actual emperature as measured in the aircraft environment, "the outside air temperature (OAT) or static air temperature (SAT) refers to the temperature of the air around an aircraft".

Now, regarding:
Density_Alt = Pressure_Alt + (T_std/TLR) * (1 - Math.Pow((T_std / I_AmbientAirTemperature),0.2349690));
(now with I_AmbientAirTemperature)

Where:
T_std = 288.15 - Alt_ind × TLR
TLR = 0.0065


and

if ( height < tropopause ) then
TLR = 6.49(°C/1,000m) = 1.98(°C/1,000ft) = 3.56(°F)/1,000ft
else
TLR = -56.5(°C) = 216.65(°K)


I have two questions.

1. TLR is a rate so presumably below the Tropopause the Temperature Lapse is - Alt_Ind x TLR but above the Tropopause the Temperature Lapse is simply 56.5C ?
and similarly......
2. Within the DA calc, T_Std/TLR would appear to calculate an altitude. Does it hold good above the Tropopause where the lapse rate is zero or should I be capping T_Std at 288.15 - 56.5 = 231.65K once T_Std/TLR hits 56.5?

EDIT: Sorry, ref Q.2, I meant should I replace T_Std/TLR with some other expression above the Tropopause??

EDIT2: Think I've got it

if ( 15 - Pressure_Alt_ft*0.0019812 < -56.5)
{
TropAlt = PressureAlt - 56.5/0.0019812
TempStd = 288.15 - 56.5;
Density_Alt_ft = Pressure_Alt_ft + (TempStd/0.0019812 + TropAlt) * (1 - Math.Pow((TempStd / I_AmbientAirTemperature),0.2349690));
else
TempLapse= Pressure_Alt_ft*0.0019812;
TempStd = 288.15 - Templapse;
Density_Alt_ft = Pressure_Alt_ft + (TempStd/0.0019812) * (1 - Math.Pow((TempStd / I_AmbientAirTemperature),0.2349690));
}
TempStd = 288.15 - TempLapse;
Density_Alt_ft = Pressure_Alt_ft + (TempStd/0.0019812) * (1 - Math.Pow((TempStd / I_AmbientAirTemperature),0.2349690));

ACE-OF-ACES 07-19-2012 11:03 PM

Quote:

Originally Posted by klem (Post 446567)
OK, well there is the parameter I_AmbientTemp.

Ah yes, I forgot about that one!

I just don't recall if every plane had one? I noticed that when a plane does not have a guage for a said "I" value that said value is not aval to read/log.

But we can use that value and log it along with the "Z" value (which is allways active) you were using to see if they are the same, or if they diverage at some point (alt). If they don't than I was worring for nuttin and we can continue to use the "Z" value.

Quote:

Originally Posted by klem (Post 446567)
I have two questions.

Ok lets see if I have two answers! ;)

Quote:

Originally Posted by klem (Post 446567)
1. TLR is a rate so presumably below the Tropopause the Temperature Lapse is - Alt_Ind x TLR but above the Tropopause the Temperature Lapse is simply 56.5C ?

Exactally!

Take a look at any standard atmosphere table/graph and you will see that is indeed the case

Quote:

Originally Posted by klem (Post 446567)
and similarly......
2. Within the DA calc, T_Std/TLR would appear to calculate an altitude. Does it hold good above the Tropopause where the lapse rate is zero or should I be capping T_Std at 288.15 - 56.5 = 231.65K once T_Std/TLR hits 56.5?

EDIT: Sorry, ref Q.2, I meant should I replace T_Std/TLR with some other expression above the Tropopause??

EDIT2: Think I've got it

if ( 15 - Pressure_Alt_ft*0.0019812 < -56.5)
{
TropAlt = PressureAlt - 56.5/0.0019812
TempStd = 288.15 - 56.5;
Density_Alt_ft = Pressure_Alt_ft + (TempStd/0.0019812 + TropAlt) * (1 - Math.Pow((TempStd / I_AmbientAirTemperature),0.2349690));
else
TempLapse= Pressure_Alt_ft*0.0019812;
TempStd = 288.15 - Templapse;
Density_Alt_ft = Pressure_Alt_ft + (TempStd/0.0019812) * (1 - Math.Pow((TempStd / I_AmbientAirTemperature),0.2349690));
}
TempStd = 288.15 - TempLapse;
Density_Alt_ft = Pressure_Alt_ft + (TempStd/0.0019812) * (1 - Math.Pow((TempStd / I_AmbientAirTemperature),0.2349690));

Let me look at your code a bit.. and ill get back to ya!

So, one answer, one pending! ;)

ACE-OF-ACES 07-19-2012 11:29 PM

My bad..

When checking for the tropopause, i.e.

Code:

if ( height < tropopause ) then
else
end

We have to adjust the whole T_std equation, not the the TLR!

Note I had this

Code:

if ( height < tropopause ) then
  TLR = 6.49(°C/1,000m) = 1.98(°C/1,000ft) = 3.56(°F)/1,000ft
else
  TLR = -56.5(°C) = 216.65(°K)

Which is wrong!

What we want to do is this

Code:

if ( height < tropopause ) then
  T_std = T_o - Alt_ind × TLR
else
  T_std = T_tropopause

Where
Code:

T_Topopause = -56.5(°C) = 216.65(°K)


All times are GMT. The time now is 04:13 PM.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright © 2007 Fulqrum Publishing. All rights reserved.