1、应用matlab解决汽车理论问题——“确定一轻型货车的动力性能” 摘要:确定一轻型货车的动力性能需要绘制其汽车驱动力和行驶助力平衡图,根据图形求出最高车速,最大爬坡度,克服最大爬坡度时相应的附着率,加速时间等动力性能参数方可对该货车的整体动力性能进行一个全面,直观,准确的确定与评价。Matlab集科学计算,图形处理,图像处理,多媒体处理与一身,并提供了丰富的windows图形界面设计方法,为科学研究,工程设计以及必须有效数值计算的众多科学领域提供了一种全面的解决方案。 关键词:matlab 编程 指令 数值计算 图形绘制 驱动力 行驶阻力 平衡图 最高车速 最大爬坡度
2、附着率 加速时间 动力性能 参数 功能强大的MATLAB软件对于解决汽车理论中的很多问题能够提供很大的帮助。确定一轻型货车的动力性能需要绘制其汽车驱动力和行驶助力平衡图,根据图形求出最高车速,最大爬坡度,克服最大爬坡度时相应的附着率,加速时间等动力性能参数方可对该货车的整体动力性能进行一个全面,直观,准确的确定与评价。Matlab的数值计算和图形处理功能恰能对这一问题的解决提供了方便有效的帮助。 一. 简介matlab. 向智能化发展的计算机技术为各种理论研究和工程技术问题的解决提供了强大而又方便快捷的工具支持。MATLAB(即matrix laboratory意为矩阵实验室)是由
3、美国mathworks公司发布的主要面对科学计算可视化以及交互式程序设计的高科技计算环境。它将数值分析,矩阵计算,科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的试图环境中,为科学研究,工程设计以及必须有效数值计算的众多科学领域提供了一种全面的解决方案。Matlab集科学计算,图形处理,图像处理,多媒体处理与一身,并提供了丰富的windows图形界面设计方法,它已成功应用于以下领域: 1) 工业研究与开发 2) 数学教学,特别是线形代数; 3) 数值分析和科学计算方面的教学与研究; 4) 电子学,控制理论和物理学等工程和科学学科方面的教学与研究; 5)
4、经济学,化学和生物学等计算问题领域中的教学与研究; 6) 数子图像信号处理,建模,仿真; 7) 图形用户界面设计。 二. 确定一轻型货车的动力性能 已知的轻型货车的有关数据为: 汽油发动机使用外特性的Tq-n曲线的拟合公式为:Tq=-19.313+295.27(n/1000)-165.44(n/1000)^2+40.874(n/1000)^3-3.8445(n/1000)^4.式中,Tq为发动机转矩(N.m);n为发动机转速(R/min).发动机的最低转速n=600r/min,最高转速n=4000r/min;装载质量:2000kg;整车整备质量:1800kg;总质量:3880kg;车
5、轮半径:0.367m;传动系机械效率:ƞT=0.85;滚动阻力系数:f=0.013;空气阻力系数*迎风面积:CdA=2.77m^2;主减速器传动比:i0=5.83;飞轮转动惯量:If=0.218kg.m^2;二前轮转动惯量:Iw1=1.798kg.m^2;四后轮转动惯量:Iw2=3.598kg.m^2;变速器传动比: 1档 2档 3档 4档 5档 4档变速器 6.09 3.09 1.71 1.00 —— 5档变速器 5.56 2.769 1.644 1.00 0.793 设该轻型货车装用的是4档变速器,则选用4档变速器的变速比数据。轴距:L=3.2m;质
6、心至前轴距离(满载):a=1.947m;质心高(满载):hg=0.9m. (一) 绘制汽车驱动力和行驶阻力平衡图,并求出汽车最高车速,最大爬坡度及克服该坡度时相应的附着率。运用matlab语言编写指令如下: 1. n=linspace(600,4000,100); 2. r=0.367; 3. i0=5.83; 4. nt=0.85; 5. G=3880*9.8;f=0.013;CDA=2.77;If=0.218;Iw1=1.798;Iw2=3.598;m=3880;L=3.2;a=1.947;hg=0.9; 6. ig=[6.09,3.09,1.71,1.00]; 7. ua
7、1=0.377*r*n/i0/ig(1); 8. ua2=0.377*r*n/i0/ig(2); 9. ua3=0.377*r*n/i0/ig(3); 10. ua4=0.377*r*n/i0/ig(4); 11. Tq=-19.313+295.27*(n/1000)-165.44*(n/1000).^2+40.874*(n/1000).^3-3.8445*(n/1000).^4; 12. Ft1=Tq*i0*ig(1)*nt/r; 13. Ft2=Tq*i0*ig(2)*nt/r; 14. Ft3=Tq*i0*ig(3)*nt/r; 15. Ft4=Tq*i0*ig(4)*n
8、t/r; 16. Ff=G*f; 17. ua=linspace(0,200,100); 18. Fw=CDA*ua.*ua/21.15; 19. plot(ua1,Ft1,ua2,Ft2,ua3,Ft3,ua4,Ft4,ua,Ff,ua,Ff+Fw); 20. xlabel('ua/ km/h'); 21. ylabel('F/N'); 22. title('汽车驱动力-行驶阻力平衡图'); 23. legend('Ft1','Ft2','Ft3','Ft4','Ff','Ff+Fw'); 24. umax=max(ua4); 25. disp('汽车最高车速=');
9、26. disp(umax);disp('km/h'); 27. imax=tan(asin(max((Ft1-(Ff+Fw))/G))); 28. disp('汽车最大爬坡度='); 29. disp(imax); 30. fai=imax*L/(a+hg*imax); 31. disp('货车后轮驱动克服最大坡度时相应的附着率='); 32. disp(fai); 对该程序指令编写过程的解释:指令第1行的linspace—线性等分函数生成向量,可以在首尾两端元素之间等分建立向量。所以linspace(600,4000,100)表示将600到4000之间等分为100份。2,3
10、4,5行将已知数据输入。第6行通过创建一个1*4维的数值矩阵输入4档变速器的传动比。7,8,9,10行根据车速公式Ua=0.377*r*n/i0/ig分别求出变速器各档位对应的汽车车速与发动机转速n的关系。11行为已知条件表示发动机转矩Tq与发动机转速n的函数关系。12,13,14,15行根据汽车驱动力公式Ft=Tq*i0*ig*nt/r求出变速器处于各档位时的汽车驱动力。16行求出滚动阻力。17行调用linspace()函数将车速0到200km/h等分生成100维向量。18行求出空气阻力。19行调用plot函数绘制多根二维曲线,输入的参数都为向量对,Ua1和Ft1,Ua2和Ft2,Ua3和
11、Ft3,Ua4和Ft4,Ua和Ff,Ua和Ff+Fw分别组成一对向量对,每一向量对可以绘制一条曲线,这样就在同一坐标内绘制出了六条曲线。20行和21行调用xlabel()和ylabel()函数分别对x轴和y轴进行标注,即在横坐标轴下方标注‘’Ua/km/h“,在纵坐标轴左侧标注“F/N”.22行调用title()函数在图形上方写图名“汽车驱动力——行驶阻力平衡图“。23行调用legend()函数在规定位置写图例,缺省在图形窗口右上角。24行调用max函数求出4档时的最高车速。26行调用disp函数显示文本“最高车速=”。26行显示Umax值及其单位。27行求最大爬坡度。28行调用disp函数显
12、示文本“汽车最大爬坡度=”。29行调用disp函数显示Imax的值。30行求出克服最大爬坡度时相应的附着率。31,32行调用disp函数显示文本,值。将1—32行指令程序导入matlab的command space窗口,按下enter键得到运行结果如下: 汽车最高车速= 94.9290 km/h 汽车最大爬坡度= 0.3702 货车后轮驱动克服最大坡度时相应的附着率= 0.5196 (二) 绘制汽车行驶加速度倒数曲线。运用matlab语言编写程序指令如下: n=linspace(600,4000,100); r=0.367; i0=5.83;
13、nt=0.85; G=3880*9.8;f=0.013;CDA=2.77;If=0.218;Iw1=1.798;Iw2=3.598;m=3880;L=3.2;a=1.947;hg=0.9; ig=[6.09,3.09,1.71,1.00]; ua1=0.377*r*n/i0/ig(1); ua2=0.377*r*n/i0/ig(2); ua3=0.377*r*n/i0/ig(3); ua4=0.377*r*n/i0/ig(4); Tq=-19.313+295.27*(n/1000)-165.44*(n/1000).^2+40.874*(n/1000).^3-3.8445*(n/1
14、000).^4; Ft1=Tq*i0*ig(1)*nt/r; Ft2=Tq*i0*ig(2)*nt/r; Ft3=Tq*i0*ig(3)*nt/r; Ft4=Tq*i0*ig(4)*nt/r; Ff=G*f; ua=linspace(0,200,100); Fw=CDA*ua.*ua/21.15; s1=1+(Iw1+Iw2)/(m*r^2)+ig(1)^2*i0^2*nt*If/(m*r^2); s2=1+(Iw1+Iw2)/(m*r^2)+ig(2)^2*i0^2*nt*If/(m*r^2); s3=1+(Iw1+Iw2)/(m*r^2)+ig(3)^2*i0^2*nt
15、If/(m*r^2); s4=1+(Iw1+Iw2)/(m*r^2)+ig(4)^2*i0^2*nt*If/(m*r^2); Fw1=CDA*ua1.*ua1/21.15; Fw2=CDA*ua2.*ua2/21.15; Fw3=CDA*ua3.*ua3/21.15; Fw4=CDA*ua4.*ua4/21.15; a1=(Ft1-(Ff+Fw1))/(s1*m); a2=(Ft2-(Ff+Fw2))/(s2*m); a3=(Ft3-(Ff+Fw3))/(s3*m); a4=(Ft4-(Ff+Fw4))/(s4*m); plot(ua1,1./a1,ua2,1./a2,u
16、a3,1./a3,ua4,1./a4); xlabel('ua/ km/h'); ylabel('1/a'); title('汽车的加速度倒数曲线'); legend('1/a1','1/a2','1/a3','1/a4'); 将上述程序指令导入matlab的command space窗口按下enter键,运行结果绘制的加速度倒数曲线如下图所示: (三) 求汽车用二档起步加速行驶至70km/h的加速时间。运用matlab语言编写程序指令如下: nT=0.85;r=0.367;f=0.013;CDA=2.77;i0=5.83;If=0.218; Iw1=1.798;Iw2=
17、3.598;L=3.2;a=1.947;hg=0.9;m=3880;g=9.8; nt=0.85; G=m*g; ig=[6.09,3.09,1.71,1.00]; nmin=600;nmax=4000; %每个档位所能达到的最小车速和最大车速 u1=0.377*r*nmin./ig/i0; u2=0.377*r*nmax./ig/i0; deta=0*ig; %不同档位时的s(&) s1=1+(Iw1+Iw2)/(m*r^2)+ig(1)^2*i0^2*nt*If/(m*r^2); s2=1+(Iw1+Iw2)/(m*r^2)+ig(2)^2*i0^2*nt*If/
18、m*r^2); s3=1+(Iw1+Iw2)/(m*r^2)+ig(3)^2*i0^2*nt*If/(m*r^2); s4=1+(Iw1+Iw2)/(m*r^2)+ig(4)^2*i0^2*nt*If/(m*r^2); %车速从二档的最低速到四档的最高速 ua=[4.6:0.001:94.9];N=length(ua);n=0;Tq=0;Ft=0;aa=0*ua;delta=0*ua; Ff=G*f; Fw=CDA*ua.^2/21.15; for i=1:N k=i; if ua(i)<=u2(2) n=ua(i)*(ig(2)*i0/r
19、)/0.377; Tq=-19.313+295.27*(n/1000)-165.44*(n/1000)^2+40.874*(n/1000)^3-3.8445*(n/1000)^4; Ft=Tq*ig(2)*i0*nT/r; %aa(i)为ua(i)时的1/a aa(i)=(s2*m)/(Ft-Ff-Fw(i)); %delta(i)为微分部分的面积,及dt delta(i)=0.001*aa(i)/3.6; elseif ua(i)<=u2(3) n=ua(i)*(ig(3)*i0/r)/0.37
20、7; Tq=-19.313+295.27*(n/1000)-165.44*(n/1000)^2+40.874*(n/1000)^3-3.8445*(n/1000)^4; Ft=Tq*ig(3)*i0*nT/r; aa(i)=(s3*m)/(Ft-Ff-Fw(i)); delta(i)=0.001*aa(i)/3.6; else n=ua(i)*(ig(4)*i0/r)/0.377; Tq=-19.313+295.27*(n/1000)-165.44*(n/10
21、00)^2+40.874*(n/1000)^3-3.8445*(n/1000)^4; Ft=Tq*ig(4)*i0*nT/r; aa(i)=(s4*m)/(Ft-Ff-Fw(i)); delta(i)=0.001*aa(i)/3.6; end a=delta(1:k); t(i)=sum(a); end plot(t,ua); title('汽车2档原地起步换挡加速时间曲线'); xlabel('时间t(s)'); ylabel('速度ua(km/h)'); t((70-4.6)/0.001)
22、 end a=delta(1:k); t(i)=sum(a); end plot(t,ua); axis([0 80 0 100]); title('汽车2档原地起步换挡加速时间曲线'); xlabel('时间t(s)'); ylabel('速度ua(km/h)'); t((70-4.6)/0.01) 将上述程序指令导入matlab的command space窗口按下enter键,运行结果绘制的加速时间曲线如下图所示: Subscript indices must either be real positive integers or logical
23、s. 由运行结果没有得出具体的加速时间知程序存在一定的错误。但从图形上能够估计出加速时间为27s. 三. 总结 由前面的运算可以得到该轻型货车的动力性能参数:汽车最高车速=94.9290km/h,汽车最大爬坡度= 0.3702,货车后轮驱动克服最大坡度时相应的附着率=0.5196,汽车用二档起步加速行驶至70km/h的加速时间为27s.根据这些动力性能参数便可对该轻型货车的动力性能进行评价。通过使用matlab解决该汽车理论问题之确定一轻型货车的动力性能的过程可以发现matlab这一数学软件对于理论研究问题具有强大的辅助作用。编写程序指令的过程能够明显体会到matlab语言是一种解释类语言,它将一个优秀软件的易用性与可靠性,通用性与专业性,一般目的的应用与科学技术应用有机地结合,是一种直译式的语言,编程效率高,能够实现方便的绘图功能。在本次学习过程中,我对汽车理论中关于汽车动力性能参数的求解进一步加深了理解。在接下来的学习中,我会更加注重理论与实践相结合,继续加深对于matlab语言及软件的学习使用,学会运用计算机软件这一技术工具对于专业理论学习的帮助。






