python编码思维导图_思维导图 使用python进行汽车动力性分析

在进行汽车动力性分析之前我们得先了解汽车动力性评价指标:汽车动力性评价指标

动力性三个指标分别是: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

汽车动力性分析完毕。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值