应用matlab解决汽车理论问题——“确定一轻型货车的动力性能”摘要:确定一轻型货车的动力性能需要绘制其汽车驱动力和行驶助力平衡图,根据图形求出最高车速,最大爬坡度,克服最大爬坡度时相应的附着率,加速时间等动力性能参数方可对该货车的整体动力性能进行一个全面,直观,准确的确定与评价。Matlab集科学计算,图形处理,图像处理,多媒体处理与一身,并提供了丰富的windows图形界面设计方法,为科学研究,工程设计以及必须有效数值计算的众多科学领域提供了一种全面的解决方案。关键词:matlab编程指令数值计算图形绘制驱动力行驶阻力平衡图最高车速最大爬坡度附着率加速时间动力性能参数功能强大的MATLAB软件对于解决汽车理论中的很多问题能够提供很大的帮助。确定一轻型货车的动力性能需要绘制其汽车驱动力和行驶助力平衡图,根据图形求出最高车速,最大爬坡度,克服最大爬坡度时相应的附着率,加速时间等动力性能参数方可对该货车的整体动力性能进行一个全面,直观,准确的确定与评价。Matlab的数值计算和图形处理功能恰能对这一问题的解决提供了方便有效的帮助。一.简介matlab.向智能化发展的计算机技术为各种理论研究和工程技术问题的解决提供了强大而又方便快捷的工具支持。MATLAB(即matrixlaboratory意为矩阵实验室)是由美国mathworks公司发布的主要面对科学计算可视化以及交互式程序设计的高科技计算环境。它将数值分析,矩阵计算,科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的试图环境中,为科学研究,工程设计以及必须有效数值计算的众多科学领域提供了一种全面的解决方案。Matlab集科学计算,图形处理,图像处理,多媒体处理与一身,并提供了丰富的windows图形界面设计方法,它已成功应用于以下领域:1)工业研究与开发2)数学教学,特别是线形代数;3)数值分析和科学计算方面的教学与研究;4)电子学,控制理论和物理学等工程和科学学科方面的教学与研究;5)经济学,化学和生物学等计算问题领域中的教学与研究;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;车轮半径: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.093.091.711.00——5档变速器5.562.7691.6441.000.793设该轻型货车装用的是4档变速器,则选用4档变速器的变速比数据。轴距:L=3.2m;质心至前轴距离(满载):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.ua1=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)*nt/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('汽车最高车速=');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,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和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函数显示文本“汽车最大爬坡度=”。29行调用disp函数显示Imax的值。30行求出克服最大爬坡度时相应的附着率。31,32行调用disp函数显示文本,值。将1—32行指令程序导入matlab的commandspace窗口,按下enter键得到运行结果如下:汽车最高车速=94.9290km/h汽车最大爬坡度=0.3702货车后轮驱动克服最大坡度时相应的附着率=0.5196(二)绘制汽车行驶加速度倒数曲线。运用matlab语言编写程序指令如下:n=linspace(600,4000,100);r=0.367;i0=5.83;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/1000).^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*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,ua3,1./a3,ua4,1./a4);xlabel('ua/km/h');ylabel('1/a');title('汽车的加速度倒数曲线');legend('1/a1','1/a2','1/a3','1/a4');将上述程序指令导入matlab的commandspace窗口按下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=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/(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;fori=1:Nk=i;ifua(i)=u2(2)n=u