]> git.mxchange.org Git - flightgear.git/commitdiff
Add spdFromMach() and spdFromVCAS().
authordavid <david>
Sun, 2 Mar 2003 01:43:39 +0000 (01:43 +0000)
committerdavid <david>
Sun, 2 Mar 2003 01:43:39 +0000 (01:43 +0000)
src/FDM/YASim/Atmosphere.cpp
src/FDM/YASim/Atmosphere.hpp

index 83c6b974897862d3e0fe7ea485a7e028b14d4624..92d2fbe56a6e3495762d2c2ffff5c96c42e134e8 100644 (file)
@@ -102,6 +102,25 @@ float Atmosphere::calcMach(float spd, float temp)
     return spd / Math::sqrt(GAMMA * R * temp);
 }
 
+float Atmosphere::spdFromMach(float mach, float temp)
+{
+    return mach * Math::sqrt(GAMMA * R * temp);
+}
+
+float Atmosphere::spdFromVCAS(float vcas, float pressure, float temp)
+{
+                                // FIXME: does not account for supersonic
+    float p0 = getStdPressure(0);
+    float rho0 = getStdDensity(0);
+
+    float tmp = (vcas*vcas)/(7*p0/rho0) + 1;
+    float cp = ((Math::pow(tmp,(7/2.))-1)/(pressure/p0)) + 1;
+
+    float m2 = (Math::pow(cp,(1/3.5))-1)/0.2;
+    float vtas= spdFromMach(Math::sqrt(m2), temp);
+    return vtas;
+}
+
 void Atmosphere::calcStaticAir(float p0, float t0, float d0, float v,
                                float* pOut, float* tOut, float* dOut)
 {
index 559707a343f8cf07fbb2f6a42197f3cf827c1647..b0cfd3d868adfbdb0977c1a22c4f60ded6e56fc8 100644 (file)
@@ -13,6 +13,9 @@ public:
     static float calcVEAS(float spd, float pressure, float temp, float density);
     static float calcMach(float spd, float temp);
     static float calcStdDensity(float pressure, float temp);
+
+    static float spdFromMach(float mach, float temp);
+    static float spdFromVCAS(float vcas, float pressure, float temp);
     
     // Given ambient ("0") pressure/density/temperature values,
     // calculate the properties of static air (air accelerated to the