1
0
Fork 0

Add spdFromMach() and spdFromVCAS().

This commit is contained in:
david 2003-03-02 01:43:39 +00:00
parent c90d7e96c2
commit 1e5d48d1d9
2 changed files with 22 additions and 0 deletions

View 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)
{

View 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