Rowan-Classes/8th-Semester-Spring-2025/weapon-systems/homework/atmospheric_model.py
Aidan Sharpe 82b435b6a2 Week 3
2025-02-14 22:27:10 -05:00

44 lines
993 B
Python

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