import numpy as np import matplotlib.pyplot as plt def temperature(altitude): if altitude > 25000: return -131.21 + 0.00299*altitude elif altitude > 11000: return -56.46 else: return 15.04 - 0.00649*altitude def pressure(altitude): T = temperature(altitude) if altitude > 25000: kpa = 2.488 * ((T+273.1)/216.6)**(-11.388) elif altitude > 11000: kpa = 22.65 * np.exp(1.73 - 0.000157*alititude) else: kpa = 101.29 * ((T+273.1)/288.08)**5.256 return 1000*kpa def atmospheric_density(altitude): p = pressure(altitude) T = temperature(altitude) return p / (286.9*(T+273.1)) def Mach(altitude, speed): return speed/speed_of_sound(altitude) def speed_of_sound(altitude): gamma = 1.4 p = pressure(altitude) rho = atmospheric_density(altitude) return (gamma*p/rho)**0.5 def dynamic_pressure(altitude, speed): rho = atmospheric_density(altitude) return rho * speed**2 / 2