]> git.mxchange.org Git - flightgear.git/blobdiff - src/AIModel/AIBase.cxx
Set the format default to float instead of int.
[flightgear.git] / src / AIModel / AIBase.cxx
index f082f5176e4e8c8bbf7e637c7d7c582aa6f1f781..db566a1ef19bd17a71ddea692dd06f6dc53ff25c 100644 (file)
@@ -88,7 +88,7 @@ void FGAIBase::update(double dt) {
       T = 59 - 0.00356 * altitude;
       p = 2116 * pow( ((T + 459.7) / 518.6) , 5.256);
 
-    } else if ( 36152 < altitude < 82345 ) {    // lower stratosphere
+    } else if ( 36152 < altitude && altitude < 82345 ) {    // lower stratosphere
       T = -70;
       p = 473.1 * pow( e , 1.73 - (0.000048 * altitude) );
 
@@ -98,9 +98,23 @@ void FGAIBase::update(double dt) {
     }
 
     rho = p / (1718 * (T + 459.7));
+       
+       // calculate the speed of sound at altitude
+       // a = sqrt ( g * R * (T + 459.7))
+       // where:
+       // a = speed of sound [ft/s]
+       // g = specific heat ratio, which is usually equal to 1.4  
+       // R = specific gas constant, which equals 1716 ft-lb/slug/°R 
+       
+       a = sqrt ( 1.4 * 1716 * (T + 459.7));
+       
+       // calculate Mach number
+       
+       Mach = speed/a;
+       
+//     cout  << "Speed(ft/s) "<< speed <<" Altitude(ft) "<< altitude << " Mach " << Mach;
 }
 
-
 void FGAIBase::Transform() {
     if (!invisible) {
       aip.setPosition(pos.lon(), pos.lat(), pos.elev() * SG_METER_TO_FEET);