Fulqrum Publishing Home   |   Register   |   Today Posts   |   Members   |   UserCP   |   Calendar   |   Search   |   FAQ

Go Back   Official Fulqrum Publishing forum > Fulqrum Publishing > IL-2 Sturmovik: Cliffs of Dover > Technical threads > FM/DM threads

FM/DM threads Everything about FM/DM in CoD

Reply
 
Thread Tools Display Modes
  #31  
Old 07-13-2012, 10:31 AM
Crumpp's Avatar
Crumpp Crumpp is offline
Approved Member
 
Join Date: Feb 2008
Posts: 1,552
Default

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.
__________________
Reply With Quote
  #32  
Old 07-13-2012, 01:22 PM
Crumpp's Avatar
Crumpp Crumpp is offline
Approved Member
 
Join Date: Feb 2008
Posts: 1,552
Default

http://books.google.com/books?id=m5V...arging&f=false
__________________
Reply With Quote
  #33  
Old 07-15-2012, 01:45 AM
Peril Peril is offline
Approved Member
 
Join Date: Apr 2011
Posts: 78
Default

Quote:
Originally Posted by Crumpp View Post
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.
Reply With Quote
  #34  
Old 07-15-2012, 02:07 AM
Crumpp's Avatar
Crumpp Crumpp is offline
Approved Member
 
Join Date: Feb 2008
Posts: 1,552
Default

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.
__________________
Reply With Quote
  #35  
Old 07-18-2012, 10:45 PM
ACE-OF-ACES's Avatar
ACE-OF-ACES ACE-OF-ACES is offline
Approved Member
 
Join Date: May 2010
Location: NM
Posts: 2,248
Default

Quote:
Originally Posted by klem View Post
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
Attached Images
File Type: jpg SpitfireMKIa TTC.jpg (72.8 KB, 12 views)
__________________
Theres a reason for instrumenting a plane for test..
That being a pilots's 'perception' of what is going on can be very different from what is 'actually' going on.

Last edited by ACE-OF-ACES; 07-19-2012 at 11:47 PM.
Reply With Quote
  #36  
Old 07-19-2012, 08:16 PM
klem's Avatar
klem klem is offline
Approved Member
 
Join Date: Nov 2007
Posts: 1,653
Default

Quote:
Originally Posted by ACE-OF-ACES View Post
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.
__________________
klem
56 Squadron RAF "Firebirds"
http://firebirds.2ndtaf.org.uk/



ASUS Sabertooth X58 /i7 950 @ 4GHz / 6Gb DDR3 1600 CAS8 / EVGA GTX570 GPU 1.28Gb superclocked / Crucial 128Gb SSD SATA III 6Gb/s, 355Mb-215Mb Read-Write / 850W PSU
Windows 7 64 bit Home Premium / Samsung 22" 226BW @ 1680 x 1050 / TrackIR4 with TrackIR5 software / Saitek X52 Pro & Rudders
Reply With Quote
  #37  
Old 07-19-2012, 08:39 PM
ACE-OF-ACES's Avatar
ACE-OF-ACES ACE-OF-ACES is offline
Approved Member
 
Join Date: May 2010
Location: NM
Posts: 2,248
Default

Quote:
Originally Posted by klem View Post
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
__________________
Theres a reason for instrumenting a plane for test..
That being a pilots's 'perception' of what is going on can be very different from what is 'actually' going on.

Last edited by ACE-OF-ACES; 07-19-2012 at 08:55 PM.
Reply With Quote
  #38  
Old 07-19-2012, 10:02 PM
klem's Avatar
klem klem is offline
Approved Member
 
Join Date: Nov 2007
Posts: 1,653
Default

Quote:
Originally Posted by ACE-OF-ACES View Post
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));
__________________
klem
56 Squadron RAF "Firebirds"
http://firebirds.2ndtaf.org.uk/



ASUS Sabertooth X58 /i7 950 @ 4GHz / 6Gb DDR3 1600 CAS8 / EVGA GTX570 GPU 1.28Gb superclocked / Crucial 128Gb SSD SATA III 6Gb/s, 355Mb-215Mb Read-Write / 850W PSU
Windows 7 64 bit Home Premium / Samsung 22" 226BW @ 1680 x 1050 / TrackIR4 with TrackIR5 software / Saitek X52 Pro & Rudders

Last edited by klem; 07-19-2012 at 10:31 PM.
Reply With Quote
  #39  
Old 07-19-2012, 11:03 PM
ACE-OF-ACES's Avatar
ACE-OF-ACES ACE-OF-ACES is offline
Approved Member
 
Join Date: May 2010
Location: NM
Posts: 2,248
Default

Quote:
Originally Posted by klem View Post
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 View Post
I have two questions.
Ok lets see if I have two answers!

Quote:
Originally Posted by klem View Post
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 View Post
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!
__________________
Theres a reason for instrumenting a plane for test..
That being a pilots's 'perception' of what is going on can be very different from what is 'actually' going on.

Last edited by ACE-OF-ACES; 07-19-2012 at 11:19 PM.
Reply With Quote
  #40  
Old 07-19-2012, 11:29 PM
ACE-OF-ACES's Avatar
ACE-OF-ACES ACE-OF-ACES is offline
Approved Member
 
Join Date: May 2010
Location: NM
Posts: 2,248
Default

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)
__________________
Theres a reason for instrumenting a plane for test..
That being a pilots's 'perception' of what is going on can be very different from what is 'actually' going on.

Last edited by ACE-OF-ACES; 07-19-2012 at 11:45 PM.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 09:52 PM.


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