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) );
}
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);