在进行汽车动力性分析之前我们得先了解汽车动力性评价指标:汽车动力性评价指标
动力性三个指标分别是:1.最高车速 2.加速时间 3.最大爬坡度。
我们以这辆货车为例进行计算货车参数
1.计算最大爬坡度
我们可以使用下面这个公式绘制驱动力图
其中发动机外特性曲线由下面这个公式给出:
由于计算过于复杂,我们使用python代码实现绘图:代码如下
import numpy as np
from matplotlib import pyplot as plt
plt.figure(num=3, figsize=(8,5 ))
n = np.linspace(600, 4000,)
Tq=(-19.313+295.27*(n/1000)-165.44*(n/1000)**2+40.874*(n/1000)**3-3.8445*(n/1000)**4)
Ua1 = (0.377 * 0.367 * n / (5.83 * 6.69))
Ua2 = (0.377 * 0.367 * n / (5.83 * 3.97))
Ua3 = (0.377 * 0.367 * n / (5.83 * 1.71))
Ua4 = (0.377 * 0.367 * n / (5.83 * 1.00))
Ft1 = Tq * 5.83 * 0.85 * 6.69 / 0.367
Ft2 = Tq * 5.83 * 0.85 * 3.09 / 0.367
Ft3 = Tq * 5.83 * 0.85 * 1.71 / 0.367
Ft4 = Tq * 5.83 * 0.85 * 1.00 / 0.367
plt.title("Ft-F-Ua ")
plt.xlabel("Ua (km.h)")
plt.ylabel("Ft (N)")
plt.xlim((0, 100))
plt.ylim((0, 20000))
plt.plot(Ua1, Ft1)
plt.plot(Ua2, Ft2)
plt.plot(Ua3, Ft3)
plt.plot(Ua4, Ft4)
plt.show()
运行代码结果如下:
所以现在可以通过最大驱动力求出最大爬坡度imax
由于计算过程过于复杂,所以使用python代码实现:
import math
a=0
for n in range(600,4000):
Tq = (-19.313 + 295.27 * (n / 1000) - 165.44 * (n / 1000) ** 2 + 40.874 * (n / 1000) ** 3 - 3.8445 * ( n / 1000) ** 4)
Ft1 =int( Tq * 5.83 * 0.85 * 6.69 / 0.367)
Ua1 = (0.377 * 0.367 * n / (5.83 * 6.69))
if a
a=Ft1
else:
a=a
if a==15805:
b=Ua1
print("最大驱动力对应的转速:",n)
print("最大驱动力对应的转矩Tq",round(Tq,2))
break
print("最大驱动力",a)
print("最大驱动力对应的车速",round(b,2))
F1 = 3880 * 9.8 * 0.013 + 2.77 * b ** 2 / 21.15
l=((a-F1)/(3880*9.8))
X=math.asin(l)
imax=math.tan(X)
print("最大爬坡度:",round(imax,2))
运行代码:结果如下
代码分析:在for循环中通过不断的迭代比较,将最大的Ft存在变量a中。
if a
a=Ft1
else:
a=a
最大爬坡度表明:这辆货车可以爬上tanx=0.4397的坡度。
2.计算最高车速
计算最高车速我们需要使用驱动力-行驶阻力图:
使用以下公式进行计算:
计算最高车速时,先暂时忽略坡道阻力与加速阻力
我们还是使用python进行作图
import math
import numpy as np
from matplotlib import pyplot as plt
plt.figure(num=3, figsize=(8,5 ))
n = np.linspace(600, 4000,)
Tq=(-19.313+295.27*(n/1000)-165.44*(n/1000)**2+40.874*(n/1000)**3-3.8445*(n/1000)**4)
Ua1 = (0.377 * 0.367 * n / (5.83 * 6.69))
Ua2 = (0.377 * 0.367 * n / (5.83 * 3.97))
Ua3 = (0.377 * 0.367 * n / (5.83 * 1.71))
Ua4 = (0.377 * 0.367 * n / (5.83 * 1.00))
F1 = 3880 * 9.8 * 0.013 + 2.77 * Ua1 ** 2 / 21.15
F2 = 3880 * 9.8 * 0.013 + 2.77 * Ua2 ** 2 / 21.15
F3 = 3880 * 9.8 * 0.013 + 2.77 * Ua3 ** 2 / 21.15
F4 = 3880 * 9.8 * 0.013 + 2.77 * Ua4 ** 2 / 21.15
Ft1 = Tq * 5.83 * 0.85 * 6.69 / 0.367
Ft2 = Tq * 5.83 * 0.85 * 3.09 / 0.367
Ft3 = Tq * 5.83 * 0.85 * 1.71 / 0.367
Ft4 = Tq * 5.83 * 0.85 * 1.00 / 0.367
plt.title("Ft-F-Ua ")
plt.xlabel("Ua (km.h)")
plt.ylabel("Ft (N)")
plt.xlim((0, 100))
plt.ylim((0, 20000))
plt.plot(Ua1, Ft1)
plt.plot(Ua2, Ft2)
plt.plot(Ua3, Ft3)
plt.plot(Ua4, Ft4)
plt.plot(Ua1,F1)
plt.plot(Ua2,F2)
plt.plot(Ua3,F3)
plt.plot(Ua4,F4)
plt.show()
最下面棕色的线就是行驶阻力-Ua图,本来应该找到Ft与行驶阻力的交点算出最高车速,但是没有相交,于是Uamax就是最高车速。
使用代码实现计算:
a=0
for ig in (6.09,3.09,1.71,1.00):
for n in (600,1000,2000,3000,4000):
Tq=-19.313+295.27*(n/1000)-165.44*(n/1000)**2+40.874*(n/1000)**3-3.8445*(n/1000)**4
Ua=0.377*0.367*n/(5.83*ig)
if a < Ua:
a = Ua
else:
a = a
print(round(a,2))
计算结果如下:
最高车速Umax=94.93km/h
3.计算加速时间到70km/h
加速时间由下面两个公式给出:
计算过程与作图由python代码实现:
import numpy as np
from matplotlib import pyplot as plt
plt.figure(num=3, figsize=(8,5 ))
n = np.linspace(600, 4000, 50)
Tq=-19.313+295.27*(n/1000)-165.44*(n/1000)**2+40.874*(n/1000)**3-3.8445*(n/1000)**4
Ua1 = (0.377 * 0.367 * n / (5.83 * 6.69))
Ua2 = (0.377 * 0.367 * n / (5.83 * 3.97))
Ua3 = (0.377 * 0.367 * n / (5.83 * 1.71))
Ua4 = (0.377 * 0.367 * n / (5.83 * 1.00))
F1 = 3880 * 9.8 * 0.013 + 2.77 * Ua1 ** 2 / 21.15
F2 = 3880 * 9.8 * 0.013 + 2.77 * Ua2 ** 2 / 21.15
F3 = 3880 * 9.8 * 0.013 + 2.77 * Ua3 ** 2 / 21.15
F4 = 3880 * 9.8 * 0.013 + 2.77 * Ua4 ** 2 / 21.15
Ft1 = Tq * 5.83 * 0.85 * 6.69 / 0.367
Ft2 = Tq * 5.83 * 0.85 * 3.09 / 0.367
Ft3 = Tq * 5.83 * 0.85 * 1.71 / 0.367
Ft4 = Tq * 5.83 * 0.85 * 1.00 / 0.367
A1=1.4470*3880/(Ft1-F1)/3.6
A2=1.4470*3880/(Ft2-F2)/3.6
A3=1.4470*3880/(Ft3-F3)/3.6
A4=1.4470*3880/(Ft4-F4)/3.6
plt.plot(Ua1, A1)
plt.plot(Ua2, A2)
plt.plot(Ua3, A3)
plt.plot(Ua4, A4)
plt.title("A-Ua ")
plt.xlabel("Ua (km.h)")
plt.ylabel("A (s)")
plt.show()
运行结果如下:
通过计算A与Ua与x的面积就可以算出加速时间:
使用python代码实现:
s=0
for ig in (3.09,1.71,1.00):
for b in range(600,4000):
Ua = 0.377 * 0.367 * b / (5.83 * ig)
for n in range(600,4000):
Tq = -19.313 + 295.27 * (n / 1000) - 165.44 * (n / 1000) ** 2 + 40.874 * (n / 1000) ** 3 - 3.8445 * (n / 1000) ** 4
Ua = 0.377 * 0.367 * n / (5.83 * ig)
F = 3880 * 9.8 * 0.013 + 2.77 * Ua ** 2 / 21.15
Ft = Tq * 5.83 * 0.85 * ig / 0.367
A = 1.4470 * 3880 / (Ft - F) / 3.6
s=s+A*(0.377 * 0.367) / (5.83 * ig)
if Ua>70 :
break
print("加速时间:",round(s,2))
运行结果如下:
加速时间为37.14 s
汽车动力性分析完毕。