Files
we_collect/luftwiderstand.py
T
2024-12-02 15:41:41 +01:00

110 lines
2.1 KiB
Python

from matplotlib import pyplot as plot
import numpy as np
temperatures = []
# Standard-Atmosphärendruck [Pa]
g_p0 = 101325
# spezifischen Gaskonstante R_S = R/M = 287,058 J/(kg*K) für trockene Luft
g_RS = 287.54
# CW-Wert und Stirnfläche
c_val_id3 = 0.267
area_id3 = 2.360 # m^3
car_list = [
{
"car": "VW id.3",
"cw": 0.267,
"area": 2.360
},
{
"car": "Tesla Model Y LR AWD",
"cw": 0.23,
"area": 2.518
},
{
"car": "Tesla Model 3 LR AWD",
"cw": 0.23,
"area": 2.220
},
{
"car": "Polestar 2",
"cw": 0.278,
"area": 2.480
},
{
"car": "Renault Zoe",
"cw": 0.33,
"area": 2.27
},
{
"car": "Hyundai Kona Elektro",
"cw": 0.29,
"area": 2.37
},
{
"car": "Hyundai Ioniq Elektro",
"cw": 0.24,
"area": 2.22
}
]
# rho: [kg/m3]
def rho(temperature_degc: float, p_pa: float =g_p0):
return p_pa/(g_RS*(temperature_degc + 273.15))
# Force : N = kg·m·s2
def fd(rho: float, velocity_kmh: float, c_val: float, area: float):
vel = velocity_kmh / 3.6
cwa = c_val * area
res = 0.5*rho*vel*vel*cwa
return res
plot.figure()
# Fd vs. velocity, param: temperature
temps_list = [-20, -10, 0, 10, 20, 30]
vel_list = [20, 40, 60, 80, 100, 120, 130, 140, 160]
reference = fd(rho(20), 100, c_val_id3, area_id3)
temps_list_leg = [f"{t}°C" for t in temps_list]
for temp_degc in temps_list:
rho_t = rho(temp_degc)
y_fd = []
for vel_kmh in vel_list:
fd_t = (fd(rho_t, vel_kmh, c_val_id3, area_id3)/reference - 1) * 100
y_fd.append(fd_t)
plot.plot(vel_list, y_fd)
plot.ylabel("Wind-Widerstand [%]")
plot.xlabel("Geschwindigkeit [km/h]")
plot.legend(temps_list_leg)
plot.grid()
plot.figure()
# Fd vs. velocity, param: car
temp = 20
vel_list = [20, 40, 60, 80, 100, 120, 130, 140, 160]
car_list_leg = [f"{t['car']}" for t in car_list]
rho_t = rho(temp)
reference = fd(rho_t, 100, c_val_id3, area_id3)
for car in car_list:
y_fd = []
for vel_kmh in vel_list:
fd_t = (fd(rho_t, vel_kmh, car['cw'], car['area'])/reference - 1) * 100
y_fd.append(fd_t)
plot.plot(vel_list, y_fd)
plot.ylabel("Wind-Widerstand [%]")
plot.xlabel("Geschwindigkeit [km/h]")
plot.legend(car_list_leg)
plot.grid()
plot.show()