MATLAB在“汽车理论”中的简单应用

合集下载

汽车理论matlab作业

汽车理论matlab作业

一、确定一轻型货车的动力性能。

1)绘制汽车驱动力与行驶阻力平衡图;2)求汽车最高车速与最大爬坡度;3)绘制汽车行驶加速度倒数曲线;用计算机求汽车用Ⅱ档起步加速行驶至 70km/h 所需的加速时间。

已知数据略。

(参见《汽车理论》习题第一章第3题)解题程序如下:用Matlab语言(1)绘制汽车驱动力与行驶阻力平衡图m1=2000; m2=1800; mz=3880;g=9.81; r=0.367; CdA=2.77; f=0.013; nT=0.85;ig=[5.56 2.769 1.644 1.00 0.793]; i0=5.83;If=0.218; Iw1=1.798; Iw2=3.598;Iw=2*Iw1+4*Iw2;for i=1:69n(i)=(i+11)*50;Ttq(i)=-19.313+295.27*(n(i)/1000)-165.44*(n(i)/1000)^2+40.874*(n(i)/1000)^3-3.8 445*(n(i)/1000)^4;endfor j=1:5for i=1:69Ft(i,j)=Ttq(i)*ig(j)*i0*nT/r;ua(i,j)=0.377*r*n(i)/(ig(j)*i0);Fz(i,j)=CdA*ua(i,j)^2/21.15+mz*g*f;endendplot(ua,Ft,ua,Ff,ua,Ff+Fw)title('汽车驱动力与行驶阻力平衡图');xlabel('ua(km/h)');ylabel('Ft(N)');gtext('Ft1')gtext('Ft2')gtext('Ft3')gtext('Ft4')gtext('Ft5')gtext('Ff+Fw')(2)求最大速度和最大爬坡度for k=1:175n1(k)=3300+k*0.1;Ttq(k)=-19.313+295.27*(n1(k)/1000)-165.44*(n1(k)/1000)^2+40.874*(n1(k)/1000)^33.8445*(n1(k)/1000)^4;Ft(k)=Ttq(k)*ig(5)*i0*nT/r;ua(k)=0.377*r*n1(k)/(ig(5)*i0);Fz(k)=CdA*ua(k)^2/21.15+mz*g*f;E(k)=abs((Ft(k)-Fz(k)));endfor k=1:175if(E(k)==min(E))disp('汽车最高车速=');disp(ua(k));disp('km/h');endendfor p=1:150n2(p)=2000+p*0.5;Ttq(p)=-19.313+295.27*(n2(p)/1000)-165.44*(n2(p)/1000)^2+40.874*(n2(p)/1000)^3-3.8445*(n2(p)/1000)^4;Ft(p)=Ttq(p)*ig(1)*i0*nT/r;ua(p)=0.377*r*n2(p)/(ig(1)*i0);Fz(p)=CdA*ua(p)^2/21.15+mz*g*f;af(p)=asin((Ft(p)-Fz(p))/(mz*g));endfor p=1:150if(af(p)==max(af))i=tan(af(p));disp('汽车最大爬坡度=');disp(i);endend汽车最高车速=99.0679km/h汽车最大爬坡度=0.3518(3)计算2档起步加速到70km/h所需时间for i=1:69n(i)=(i+11)*50;Ttq(i)=-19.313+295.27*(n(i)/1000)-165.44*(n(i)/1000)^2+40.874*(n(i)/1000)^3-3.8 445*(n(i)/1000)^4;endfor j=1:5for i=1:69deta=1+Iw/(mz*r^2)+If*ig(j)^2*i0^2*nT/(mz*r^2);ua(i,j)=0.377*r*n(i)/(ig(j)*i0);a(i,j)=(Ttq(i)*ig(j)*i0*nT/r-CdA*ua(i,j)^2/21.15-mz*g*f)/(deta*mz);if(a(i,j)<=0)a(i,j)=a(i-1,j);endif(a(i,j)>0.05)b1(i,j)=a(i,j);u1(i,j)=ua(i,j);elseb1(i,j)=a(i-1,j);u1(i,j)=ua(i-1,j);endb(i,j)=1/b1(i,j);endendx1=u1(:,1);y1=b(:,1);x2=u1(:,2);y2=b(:,2);x3=u1(:,3);y3=b(:,3);x4=u1(:,4);y4=b(:,4);x5=u1(:,5);y5=b(:,5);plot(x1,y1,x2,y2,x3,y3,x4,y4,x5,y5); title('加速度倒数时间曲线');axis([0 120 0 30]);xlabel('ua(km/h)');ylabel('1/aj');gtext('1/a1')gtext('1/a2')gtext('1/a3')gtext('1/a4')gtext('1/a5')for i=1:69A=ua(i,3)-ua(69,2);if (A<1&A>0)j=i;endB=ua(i,4)-ua(69,3);if(B<2&B>0)k=i;endif(ua(i,4)<=70)m=i;endendt=ua(1,2)*b(1,2);for p1=2:69t1(p1)=(ua(p1,2)-ua(p1-1,2))*(b(p1,2)+b(p1-1,2))*0.5;t=t+t1(p1);endfor p2=j:69t2(p2)=(ua(p2,3)-ua(p2-1,3))*(b(p2,3)+b(p2-1,3))*0.5;t=t+t2(p2);endfor p3=k:mt3(p3)=(ua(p3,4)-ua(p3-1,4))*(b(p3,4)+b(p3-1,4))*0.5;t=t+t3(p3);endt=t+(ua(j,3)-ua(69,2))*b(69,2)+(ua(k,4)-ua(69,3))*b(69,3)+(70-ua(m,4))*b(m,4);tz=t/3.6;disp('加速时间=');disp(tz);disp('s');加速时间=29.0585s二、计算与绘制题1 中货车的1)汽车功率平衡图;2)最高档与次高档的等速百公里油耗曲线。

汽车理论课程设计:基于Matlab的汽车动力性的仿真

汽车理论课程设计:基于Matlab的汽车动力性的仿真

2009 届海南大学机电工程学院汽车工程系汽车理论课程设计题目:汽车动力性的仿真学院:机电工程学院专业:09级交通运输姓名:黄生锐学号:20090504指导教师:编号名称件数页数编号名称件数页数1 课程设计论文 1 3Matlab编程源程序 12 设计任务书 12012年6月20日成绩汽车理论课程设计任务书姓名黄生锐学号20090504 专业09交通运输课程设计题目汽车动力性的仿真内容摘要:本设计的任务是对一台Passat 1.8T手动标准型汽车的动力性能进行仿真。

采用MATLAB编程仿真其性能,其优点是:一是能过降低实际成本,提高效率;二是获得较好的参数模拟,对汽车动力性能提供理论依据。

主要任务:根据该车的外形、轮距、轴距、最小离地间隙、最小转弯半径、车辆重量、满载重量以及最高车速等参数,结合自己选择的适合于该车的发动机型号求出发动机的最大功率、最大扭矩、排量等重要的参数。

并结合整车的基本参数,选择适当的主减速比。

依据GB、所求参数,结合汽车设计、汽车理论、机械设计等相关知识,计算出变速器参数,进行设计。

论证设计的合理性。

设计要求:1、动力性分析:1)绘制汽车驱动力与行驶阻力平衡图;2)求汽车的最高车速、最大爬坡度;3)用图解法或编程绘制汽车动力特性曲线4)汽车加速时间曲线。

2、燃油经济性分析:1) 汽车功率平衡图;完成内容:1.Matlab编程汽车驱动力与行驶阻力平衡图2.编程绘制汽车动力特性曲线图3.编程汽车加速时间曲线图4.课程设计论文1份汽车动力性仿真摘要本文是对Passat 1.8T 手动标准型汽车的动力性能采用matlab 编制程序,对汽车动力性进行计算。

从而对汽车各个参数做出准确的仿真研究,为研究汽车动力性提供理论依据,本文主要进行的汽车动力性仿真有:最高车速、加速时间和最大爬坡度。

及相关汽车燃油性经济。

关键词:汽车;动力性;试验仿真;matlab1. Passat 1.8T 手动标准型汽车参数功率Pe (kw )转速n (r/min )15 1000 36 1750 50 2200 66 2850 80 3300 90 4000 110 5100 1055500各档传动比主减速器传动比第1档 3.665 4.778第2档 1.999 第3档 1.407 第4档 1 第5档 0.472 车轮半径0.316(m )传动机械效率0.91 假设在良好沥青或水泥路面上行驶,滚动阻力系数 0.014 整车质量1522kgC D A2.4m22. 最高车速汽车的最高车速是指汽车标准满载状态,在水平良好的路面(混凝土或沥青路面)上所能达到的最高行驶速度。

MATLAB软件在汽车理论教学中的应用

MATLAB软件在汽车理论教学中的应用

MATLAB软件在汽车理论教学中的应用
黄兵锋
【期刊名称】《科技信息》
【年(卷),期】2010(000)008
【摘要】鉴于<汽车理论>内容抽象和枯燥的教学现状,本文介绍了将MATEAB软件应用于<汽车理论>的教学实践.事实证明,MATLAB软件强大的计算和分析功能以及方便的可视化手段,有助于清晰地阐释概念,并能极大地提高学生学习的兴趣和积极性,从而有效地改善了教学效果.
【总页数】2页(P510,512)
【作者】黄兵锋
【作者单位】湖北汽车工业学院汽车工程系
【正文语种】中文
【相关文献】
1.《汽车理论》教学中的有效教学理论应用的研究
2.有效教学理论在《汽车理论》教学中的应用研究
3.理论与实践相结合模式在《汽车理论》教学中的应用
4.MATLAB软件在生物统计理论教学中的应用
——以抽样分布为例5.基于MATLAB软件分析汽车理论课程基本问题的应用探讨因版权原因,仅展示原文概要,查看原文内容请购买。

MATLAB_Simulink_Simdriveline在汽车理论教学中的应用

MATLAB_Simulink_Simdriveline在汽车理论教学中的应用

MATLAB 提供了大量的数值计算函数和符号计算函数,通过调用MA TLAB 提供的函数和其附带的模块工具进行分析和计算,不但可以准确地画出图形,计算出相应的性能指标,大大提高工作效率,而且能有效地调动学生的积极性。

对于汽车工程领域中的计算问题,主要包括多项式和矩阵运算、数值微分和积分以及符号微积分、方程求解等,使用MA TLAB 能使学生能跳出繁琐的数学计算,集中精力于专业知识的学习。

MATLAB 的模拟仿真模块为试验模拟提供了优秀的工作平台,使得实验可以在无硬件支持的条件下实施,并且可以实时反映数据变化,这是传统实验不具备的。

Simulink 是MAT-LAB 提供的进行动态系统建模、仿真和综合分析的集成软件包。

它支持线性和非线性系统,Simulink提供的图形用户界面GUI 上,用户只要对所需系统模块进行鼠标的简单拖拉操作,就可构造出复杂的仿真和分析模型,可以大大提高仿真的效率和可靠性;它具有高度的开放性,用户可以根据自己的需要开发模型,并通过封装后添加到模型库中,以后就如同调用Simulink 自身提供的模型库一样直接调用即可。

利用这种特性,可在课堂上开设的仿真实验,以加深学生对理论的理解与接受。

数据分析模块为数据分析和处理提供了方便,使数据处理不再是困扰学生的最大难题;MATLAB 强大的图形处理和数值计算功能在汽车设计和综合控制上显示出其不可替代的优越性,使设计过程简单化,MATLAB 的优化工具箱为工程优化提供了最简单高效的工具。

Simulink 工具箱中的Simdriveline 模块是专门为车辆动力传动系统建模仿真设计的。

与传统的数学模型不同,Sim-driveline 采用基本元素法,即按照实际物理结构来搭建,可以直接选用转动惯量、离合器、变速器、车轮和自定义模块。

Sim-driveline 模型接口以机械力矩传递为主,数据信号传递为辅,具有双向性,动态特性很好。

同时,由于Simulink 与Simdriv-eline 强大的交互性,利用该软件设计的CAI ,学生可改变相关计算参数,就可实时看到计算及仿真结果。

汽车理论第四章matlab

汽车理论第四章matlab

第四章1)求利用附着系数曲线的程序:m1=4080;hg1=0.845;L1=3.950;a1=2.100;bt1=0.38;m2=9290;hg2=1.170;L2=3.950;a2=2.950;bt2=0.38;%利用附着系数与制动强度的关系曲线z=0:0.01:0.8;y=z;b1=L1-a1;b2=L2-a2;yf1=bt1*L1.*z./(b1+hg1.*z);yf2=bt2*L2.*z./(b2+hg2.*z);yr1=(1-bt1)*L1.*z./(a1-hg1.*z);yr2=(1-bt2)*L2.*z./(a2-hg2.*z);%ECE法规要求曲线yECE2=(z+0.07)./0.85;z1=0.30:0.01:0.80;yECE1=(z1-0.02)./0.74;z2=0.15:0.01:0.30;yECE3=z2+0.08;yECE4=z2-0.08;plot(z,yf1,'y',z,yf2,'g',z,yr1,'b',z,yr2,'c',z,y,'r--',z,yECE2,'k',z1,yECE1,'k',z2,yECE3,'k',z2,yE CE4,'k')axis([0 0.8 0 0.8]);xlabel('制动强度z/g');ylabel('利用附着系数y');title('利用附着系数与制动强度的关系曲线');gtext('yf1(空车)');gtext('yf2(满载)');gtext('yr1(空车)');gtext('yr2(满载)');gtext('y=z');gtext('ECE法规要求界限')以下是利用附着系数曲线和ECE法规要求曲线界限由利用附着系数曲线和ECE法规要求曲线界限曲线可知该车的制动系统满足法规的要求求制动效率曲线的程序:m1=4080;hg1=0.845;L1=3.950;a1=2.100;bt1=0.38;m2=9290;hg2=1.170;L2=3.950;a2=2.950;bt2=0.38;b1=L1-a1;b2=L2-a2;%求制动效率曲线Y=(0:0.01:1); %Y为地面附着系数Ef1=b1./(bt1*L1-Y*hg1)*100; %空车Ef2=b2./(bt2*L2-Y*hg2)*100; %满载Er1=a1./((1-bt1)*L1+Y*hg1)*100;Er2=a2./((1-bt2)*L2+Y*hg2)*100;plot(Y,Ef1,'y',Y,Ef2,'b',Y,Er1,'k',Y,Er2,'r')axis([0 1.0 0 100]);xlabel('附着系数Y');ylabel('制动效率(%)');title('制动效率曲线')gtext('Ef2(满载)'),gtext('Er1(空车)'),gtext('Ef2(满载)');以下是制动效率曲线:2),3)问的计算程序:m1=4080;hg1=0.845;L1=3.950;a1=2.100;bt1=0.38; m2=9290;hg2=1.170;L2=3.950;a2=2.950;bt2=0.38; b1=L1-a1;b2=L2-a2;%求制动效率曲线Y=(0:0.01:1); %Y为地面附着系数Ef1=b1./(bt1*L1-Y*hg1)*100; %空车Ef2=b2./(bt2*L2-Y*hg2)*100; %满载Er1=a1./((1-bt1)*L1+Y*hg1)*100;Er2=a2./((1-bt2)*L2+Y*hg2)*100;%求制动距离t1=0.02;t2=0.2;ua0=30;Y1=0.8;g=9.8;abmax1=Y1*g*Er1(81)/100;abmax2=Y1*g*Er2(81)/100;disp('空载时汽车不抱死的制动距离')s1=1/3.6*(t1+t2/2)*ua0+ua0^2/(25.92*abmax1) disp('满载时汽车不抱死的制动距离')s2=1/3.6*(t1+t2/2)*ua0+ua0^2/(25.92*abmax2)%当汽车制动系后部管路破损时的制动距离Fxb11=Y1*m1*g*b1/(L1-Y1*hg1); %当后轮的制动力为0,空车时前轮的地面制动力Fxb12=Y1*m2*g*b2/(L2-Y1*hg2); %当后轮的制动力为0,满载时前轮的地面制动力a11=Fxb11/m1;a12=Fxb12/m2;disp('当汽车制动系后部管路破损时空车的制动距离')s11=1/3.6*(t1+t2/2)*ua0+ua0^2/(25.92*a11)disp('当汽车制动系后部管路破损时满载的制动距离')s12=1/3.6*(t1+t2/2)*ua0+ua0^2/(25.92*a12)%当汽车制动系前部管路破损时的制动距离Fxb21=Y1*m1*g*a1/(L1+Y1*hg1); %当前轮的制动力为0,空车时后轮的地面制动力Fxb22=Y1*m2*g*a2/(L1+Y1*hg2); %当前轮的制动力为0,满载时后轮的地面制动力a21=Fxb21/m1;a22=Fxb22/m2;disp('当汽车制动系前部管路破损时空车的制动距离')s21=1/3.6*(t1+t2/2)*ua0+ua0^2/(25.92*a21)disp('当汽车制动系前部管路破损时满载的制动距离')s22=1/3.6*(t1+t2/2)*ua0+ua0^2/(25.92*a22)运行结果为:空载时汽车不抱死的制动距离s1 =7.5906满载时汽车不抱死的制动距离s2 =6.0819当汽车制动系后部管路破损时空车的制动距离s11 =8.8379当汽车制动系后部管路破损时满载的制动距离s12 =14.3486当汽车制动系前部管路破损时空车的制动距离s21 =10.7561当汽车制动系前部管路破损时满载的制动距离s22 =8.3354。

Matlab在汽车工程中的应用示例

Matlab在汽车工程中的应用示例

Matlab在汽车工程中的应用示例引言:汽车工程是一个综合性的学科,涉及到多个领域的知识和技术。

在汽车的设计、测试、控制和优化等方面,Matlab都有着广泛的应用。

本文将针对几个具体的应用领域,介绍Matlab在汽车工程中的应用示例。

一、汽车动力学仿真汽车动力学仿真是汽车工程中的重要组成部分。

通过建立系统的动力学模型,可以模拟汽车在不同条件下的运行行为,为汽车设计与控制提供可靠的依据。

Matlab具备强大的数值计算和仿真功能,极大地方便了汽车动力学仿真的实施。

1. 制动系统仿真:Matlab可以用来建立汽车的制动系统仿真模型,包括制动器、制动液压系统和车轮等部件。

通过对制动力、制动距离、制动时间等参数的计算,可以评估和改进汽车的制动性能。

此外,还可以通过调整摩擦系数、制动液流动压力等参数,优化制动系统的设计。

2. 悬挂系统仿真:汽车的悬挂系统对行驶的稳定性和舒适性有着重要影响。

利用Matlab,可以建立汽车悬挂系统仿真模型,预测悬挂系统的动态响应、滤波效果等性能指标,并进行悬挂系统的参数优化。

此外,还可以通过调整悬挂系统的刚度、阻尼等参数,来改善汽车的操控性和乘坐舒适性。

二、车辆动力学测试数据处理在汽车工程中,进行车辆动力学测试是评估汽车性能的重要手段之一。

通过采集汽车在实际情况下的运行数据,可以进行各种性能指标的分析和评估。

而Matlab的数据处理和分析功能,为车辆动力学测试提供了强大的支持。

1. 加速性能分析:通过采集汽车的实际加速数据,可以分析汽车的加速性能,如加速时间、加速度等指标。

在Matlab中,可以利用数据处理和统计分析的函数,快速计算出汽车的平均加速时间、最大加速度等参数,并与其他车型进行对比分析。

2. 操控性能评估:通过分析汽车在连续驱动和急转弯等情况下的动力学数据,可以评估汽车的操控性能。

利用Matlab的信号处理和频谱分析工具,可以提取出汽车的横向加速度、侧向加速度等指标,并进行综合评估。

matlab在汽车中的应用

matlab在汽车中的应用

matlab在汽车中的应用随着现代汽车电子化的趋势越来越明显,使用计算机技术来实现汽车控制、监测、校准等功能成为了汽车行业的趋势,而Matlab正是其中的重要工具之一。

Matlab可以对汽车设计、测试、校准等方面起到重要作用。

下面分别从以下几个方面具体阐述。

1. 汽车设计Matlab的强大之处在于它所拥有的各种工具箱。

例如,在汽车的设计阶段,可以利用Matlab进行SSI(可靠性、的性能和锋利度)评估,不仅可以提高汽车的品质、效率和性能,还可以减少设计的误差。

此外,通过利用Simulink工具箱可以模拟并优化汽车控制算法,使得汽车部件的控制更加精准,方便设计师们在设计过程中寻找问题并修正错误。

2. 汽车测试在汽车的测试阶段,Matlab可以帮助测试人员更好地收集和分析测试数据,提高测试数据的精度和可靠性。

利用Matlab,可以将测试数据进行可视化处理,并且可以对测试数据的统计学特征进行分析。

此外,利用其机器学习算法,可以对测试数据进行分析和预测,从而为汽车的性能和安全提供更好的监测。

3. 汽车校准Matlab可用于自动化校准,将自动化校准算法应用于汽车电子控制单元(ECU)中,可以提高校准的结果精度和速度。

Matlab可以帮助提高汽车解决问题的速度和准确性。

在车辆发动前,MEEM估计了电子控制单元(ECU)所需的扭矩。

通过在Matlab中运行ECU的算法,可以更轻松地改变校准值并运行程序。

综上所述,Matlab在汽车中的应用是广泛的,不仅可以提高汽车的设计精度、测试可靠性和校准准确性,还可以增强汽车的智能化水平。

同时,也为未来更科学、高效和安全的智能汽车发展奠定了基础。

Matlab技术在智能车辆和自动驾驶中的应用

Matlab技术在智能车辆和自动驾驶中的应用

Matlab技术在智能车辆和自动驾驶中的应用引言:随着科技的不断进步,智能车辆和自动驾驶技术成为了当今研究的热点之一。

在这个领域中,Matlab技术发挥着不可或缺的作用。

本文将探讨Matlab技术在智能车辆和自动驾驶中的应用,并以几个具体实例来展示其强大的功能。

一、传感器数据处理智能车辆和自动驾驶技术离不开高精度的传感器数据。

Matlab提供了丰富的工具箱,用于处理传感器数据并提取有价值的信息。

通过Matlab,不仅可以对传感器数据进行实时分析和处理,还可以进行数据融合,从而提高车辆的感知能力和决策能力。

例如,在自动驾驶中,激光雷达是一种常用的传感器。

Matlab提供了较为完善的点云数据处理工具箱,可以将激光雷达扫描到的点云数据进行滤波、分割和聚类等操作,从而提取出车辆周围的物体信息。

这些信息可以用于车辆的环境感知,帮助车辆进行路径规划和障碍物避免。

二、算法开发和优化Matlab是一个强大的数学建模和算法开发平台。

在智能车辆和自动驾驶中,各种算法的设计和优化是至关重要的。

Matlab提供了丰富的工具和函数,用于开发和优化各种智能算法,如目标检测、路径规划、目标跟踪等。

以目标检测为例,Matlab提供了深度学习工具箱,使研究人员可以基于神经网络进行目标检测算法的开发与训练。

通过Matlab,可以方便地加载和处理数据集,设计并训练卷积神经网络,并进行模型优化和性能评估。

这些工具和函数大大简化了智能算法的开发过程,提高了研究效率。

三、仿真与验证在智能车辆和自动驾驶的研究中,仿真与验证是不可或缺的环节。

通过仿真,可以对车辆的感知、决策和控制进行虚拟测试,发现潜在的问题并改进算法和系统。

Matlab提供了全面的仿真工具箱,用于建立高度精确的车辆动力学模型和环境模型。

例如,Matlab提供了CarSim工具箱,用于建立车辆动力学仿真模型。

通过CarSim,可以模拟车辆在不同场景下的行驶行为,包括加速、制动、转弯等,还可以对车辆的结构和悬挂系统进行建模和仿真。

试析MATLAB在汽车振动分析及控制中的运用

试析MATLAB在汽车振动分析及控制中的运用

试析MATLAB在汽车振动分析及控制中的运用摘要:随着汽车振动会对汽车造成一定的危害,影响汽车的正常运行,因此要对汽车振动的原因进行分析,并提出合理的解决对策。

而MATLAB在汽车有巨大的作用,既能够应用与汽车的振动分析和控制中,还能够预测到汽车的反映,在实际中有较高的使用价值。

关键词:汽车振动;MATLAB;控制;应用在实际中汽车振动具有巨大的危害,因此一方面为了减少振动对汽车的零部件和使用性能造成的损害,另一方面还要针对汽车振动进行研究,尽量把汽车振动运用到汽车设计的服务中来,同时还要尽量利用振动的原理来制造推动机,减少汽车部件工作的强度,从而来提高工作效率。

1.汽车振动产生的原因分析机械的振动实际上是一种形式特殊的运动,构成振动系统的主要因素有阻尼、弹性、质量以及激励。

汽车本身就是具有阻尼、弹簧以及质量的系统,在汽车内部各部分具有不同的频率,因而汽车在平时的行驶中就往往会因为路面不平坦、运动方向以及车速的改变、发动机车轮与传送系统不平衡、汽车齿轮之间的冲击等各种内部与外部的激振作用造成汽车的局部或者是整体发生强烈的振动。

这种振动现象就会使汽车在运动时由于动力性能没有得到充分的发挥就容易出现一些问题。

另外,振动还会对汽车操作的平顺性与稳定性以及汽车的通过性造成不利的影响,还会使乘员在乘坐时产生不舒服的感觉,严重情况下还会对汽车的零部件造成损坏,缩短汽车正常的使用寿命。

2. 汽车振动的理论分析2.1.汽车振动的模型在实际中当一个振动系统比较复杂的时候,而建立的相应的模型也比较复杂,就越接近于真实的情况,相应的模拟情况就越真实,但是这却增加了对系统分析的难度,所以在建立振动的力学模型时就需要在逼真模拟与系统分析之间找出一个平衡点。

在进行汽车振动分析时需要把握的一个关键因素就是在实际中要根据研究的要求和研究内容,把研究的对象和外界的作用力进行简化,同时还要保证简化的模型能够与原来的系统模型在动态分析方面进行等效对比。

MATLAB软件在汽车理论教学中的应用

MATLAB软件在汽车理论教学中的应用

1.前言《汽车理论》是汽车类专业的一门必修专业课,其特点是理论性强,计算和分析工作多,教和学两方面都感觉难度较大。

现有的实验和实习效果有限,为学生提供的主要是感性的认识和对书本知识的验证,对抽象概念和复杂公式无能为力。

MATLAB是一个可视化的计算软件,功能强大、使用简单,被广泛地应用于科学和工程计算领域,包括汽车的设计和分析。

各大汽车公司、零部件企业的研究院或技术中心,在研究和分析工作中大量应用MATLAB实现。

在《汽车理论》教学中使用MATLAB为工具,利用其强大的计算功能和图形功能,可以方便地完成各种性能的计算;同时,利用MATLAB 的数值计算函数和Simulink软件,可以对《汽车理论》中复杂的过程进行仿真分析和求解。

这些计算和分析的结果都可以通过MATLAB提供的可视化手段呈现给学生,有助于清晰地阐释抽象的概念,并系统地仿真复杂的分析过程。

2.易学易用的计算工具MATLAB被称为“演草纸”式的计算机语言,在一般的科学计算中完全可以替代传统的计算机语言如C、Fortran、Basic等,矩阵运算更是MATLAB的拿手好戏。

MATLAB语法简单、界面友好、使用方便,既不用苦于指针等晦涩概念的掌握,也不必与难以操作的DOS环境打交道。

《汽车理论》前四章介绍了汽车动力性、经济性以及制动性的计算和校核,工作量较大,有时候还要不断的调整参数并反复计算。

这些性能的计算对于任何一种车型的设计和开发都是必不可少且极为重要的。

利用MATLAB编制程序,其简单的语法,能够使设计人员将精力集中于核心工作。

3.方便实用的图形功能《汽车理论》课程中需要绘制的曲线图形非常多,“驱动力-行驶阻力图”、“功率平衡图”、“动力因素图”、“百公里油耗曲线”、“C曲线”、“制动效率曲线”等等,数不胜数。

传统的程序设计语言如C、Fortran、Basic等,绘图功能的使用极为不便,程序员需要了解计算机的图形模式等复杂的软件知识,在绘图前还要做大量的设置和转换工作。

MATLAB在汽车理论教学中的应用

MATLAB在汽车理论教学中的应用

1.前言在教学中,同学们反映《汽车理论》中的汽车性能之间似乎无直接联系,内容显得松散,部分内容抽象不易理解和记忆,让人乏味;尤其在“汽车的操纵稳定性”和“汽车的平顺性”这两章,数学模型复杂,数学模型和汽车结构及工作原理之间不易联系。

有教师提出结合国家汽车标准,多进行实验实习等办法提高理论教学效果。

[1]但面对课程中提及的复杂公式和图表时,如何更清晰的阐明其原理,显得无能为力。

M AT LAB 具有开放的环境、图形绘制、数据处理、各种工具箱等许多优点,用于动态系统仿真分析的软件包Sim ulink 广泛用于系统的性能分析与结构设计。

[2]一个系统的分析和设计问题都可以利用M AT L AB 在计算机上迅速得到答案或实现,如果利用M AT LAB 对“汽车理论”中讨论的系统和数学模型进行可视化分析,并且对参数进行变换看最终的结果,对于加深学生对所学内容的理解,提高学习兴趣是很有帮助的。

下面依据一个例子来详细说明。

2.问题的提出教材在“汽车的操纵稳定性”章节提到了“转向盘角阶跃输入下的时域响应”,给出了其瞬态响应的规律曲线,如图1所示。

根据图1得出了汽车在转向盘角阶跃输入下的时域响应具有4个特点,分别为:(1)时间上的滞后,汽车的横摆角速度不能立即达到稳态横摆角速度ωr o ,而要经过时间τ后才能第一次达到ωr o ,这一段滞后时间称为反应时间。

反应时间短,则驾驶者感到转向响应迅速、及时,否则就会觉得转向迟钝,也有用到达第一峰值的时间ε来表示滞后时间的;(2)执行上的误差,最大横摆角速度ωr l 常大于稳态值ωr o 。

ωr l /ωr o ×100%称为超调量,它表示执行指令误差的大小;(3)横摆角速度的波动,在瞬态响应中,横摆角速度ωr 以频率ω在ωr o 值上下波动,波动的频率ω决定于汽车动力学系统的结构参数,它也是表征汽车操纵稳定性的一个重要参数;(4)进入稳态所经历的时间,横摆角速度达到稳态值95%—100%之间的时间σ称为稳定时间,它表明进入稳态响应所经历的时间。

浅谈MATLAB软件在汽车上的应用

浅谈MATLAB软件在汽车上的应用

浅谈MATLAB软件在汽车上的应用本文阐述了MATLAB软件在汽车上的应用。

标签:MATLAB;汽车MATLAB最初是由美国MathWorks公司推出的一款解决线性代数学科开发的科技计算软件。

命名来源为Matrix和Laboratory的前三个字母组合而成,称为矩阵实验室。

MATLAB经过研究人员的不断深入开发和改进后,变成一款多功能的软件。

它的用途十分广泛,尤其是在工程上,例如进行矩阵操作、图像处理、开发算法、数据可视化、金融建模、数值计算、数据分析、数学符号计算等。

MATLAB不仅可以绘制二维图形,还可绘制三维图形,为很多领域的研究提供了便利。

1.在汽车动力性、经济性仿真中的应用汽车动力性是指汽车在良好路面上直线行驶时由汽车受到的纵向外力决定的,所能达到的平均行驶速度,是汽车的基本性能之一。

在室内台架测试汽车动力性时,常用底盘输出最大功率、加速时间、最大扭矩等作为主要评价指标。

在道路上测试时,常用最高车速、加速时间、最大爬坡度等作为主要评价指标。

汽车经济性是指以最小的燃油消耗量完成单位运输工作的能力。

经济性有三个评价指标:单位行驶里程的燃料消耗量、单位运输工作量的燃料消耗量、消耗单位燃油所行驶的里程,中国主要以针对第一个指标的测试为主。

近年来,随着汽车用户的不断增加,人们对汽车的各项性能也越来越重视,其中,最关键的就是汽车的动力性能。

到目前为止,已经有大量的专家和学者对汽车的动力性能展开的研究,但是都是人为的计算和试验研究,增加了很多不可避免的因素。

如今,随着信息技术的高速发展,M ATLAB技术也逐渐成熟,越来越多的人们倾向于电脑仿真技术,因为它既高效又避免了很多外在因素对汽车性能的影响。

通过M ATLAB软件能够较好的模拟仿真汽车的各项指标,比如①汽车的最高车速;②汽车的加速时间;③汽车的最大爬坡等。

通过模拟仿真得到的数据,经过人们很多的现场测验,发现仿真得到的数据可靠高,具有很大的参考价值。

ADAMSCar与MATLAB联合仿真在《汽车理论》教学中的应用

ADAMSCar与MATLAB联合仿真在《汽车理论》教学中的应用

ADAMS/Car与MATLAB联合仿真在《汽车理论》教学中的应用张文灿(佛山科学技术学院,广东佛山528000)【摘要】针对车辆工程专业课程《汽车理论》知识交叉性和理论性都非常强,导致学生学习积极性不高,教学效果差的问题,本文以汽车平顺性为例介绍了ADAMS/Car与MATLAB联合仿真在《汽车理论》教学中的应用,仿真软件的应用可以使力学分析直观化、晦涩难懂的数学推导和数学建模形象化、影响规律的图形化和生动化,大大增强学生对所学课程的感性认识,加强其对授课内容的理解,让学生更加容易接受和掌握抽象的理论知识。

【关键词】汽车理论;仿真分析;ADAMS/Car;MATLAB1《汽车理论》课程特点《汽车理论》是车辆工程专业的核心课程之一,知识交叉性和理论性都非常强,在学习中需要掌握高等数学、工程力学、机械设计与原理、汽车构造与发动机原理等多理论知识,涉及的基础理论和专业知识非常宽广。

因此,《汽车理论》课程学习对大部分学生来说感觉枯燥难学,在课堂上听不懂,学习主动性不高,甚至产生厌学、弃学等不良情绪,导致在教学中尽管对多种教学方法进行尝试和改进,但教学效果提升依然不明显,因此,有必要针对《汽车理论》教学中存在大量的数值计算、推演及数学模型理论的特点,采用更加可视化的教学方法,使晦涩难懂的理论知识变得直观易懂。

将《汽车理论》的理论知识与工程实践结合起来,通过让学生接触到实际的汽车产品,并对汽车各性能进行实验测试,测试不同因素对其性能的影响作用,无疑使学生加深对理论知识的理解。

然而,在对汽车各性能进行测试的实验中,往往对设备仪器和测试条件有比较高的要求,尤其是汽车操纵稳定性以及平顺性的实验,普通高等本科学校很难具备相应的实验条件,且在路试中涉及到学生的安全问题,这就决定了不可能大规模的应用汽车实测实验来辅助理论教学。

针对《汽车理论》存在大量力学建模、推演及数学模型的难点,一些数值仿真软件可以很好地解决这个问题,比如,MATLAB、ADMAS等软件在图形和计算上的优势使其成为解决车辆工程专业课程教学以及实验设备不足的有效工具。

Matlab技术在车辆控制中的应用案例解析

Matlab技术在车辆控制中的应用案例解析

Mat1ab技术在车辆控制中的应用案例解析1 .引言在当今车辆工业发展的背景下,车辆控制技术的不断创新和发展成为了汽车工程中的重要组成部分。

Mat1ab作为一种强大的工程软件,为车辆控制领域的研究和应用提供了有力的支持。

本文将通过几个典型案例,探讨MaHab技术在车辆控制中的应用。

2 .车辆动力学建模与仿真车辆动力学建模是设计车辆控制系统的基础,通过Mat1ab可以快速创建车辆运动学和动力学模型,实现对车辆行驶过程的仿真。

例如,可以使用Mat1ab建立基于质点的车辆运动学模型,通过输入油门、刹车和转向指令来模拟车辆在不同道路条件下的运动状态。

3 .车辆稳定性控制车辆稳定性控制是现代车辆控制系统的重要组成部分,它通过传感器实时监测车辆的姿态和运动状态,并根据反馈控制算法来调整车辆的悬挂系统和制动系统,以提高车辆的稳定性和操控性能。

MatIab提供了丰富的控制算法库和模型库,可以用于设计和优化车辆稳定性控制系统。

例如,可以使用MatIabSimUIink工具箱来建立车辆稳定性控制系统的模型,并通过Mat1ab的优化工具箱进行参数优化。

4 .自动驾驶系统随着人工智能技术的发展,自动驾驶技术已经成为汽车工业领域的热点。

Mauab提供了丰富的图像处理和机器学习工具,可以用于开发和测试自动驾驶算法。

例如,可以使用Mauab进行车辆的图像感知和目标检测,通过深度学习算法对车辆周围的环境进行识别和分析,从而实现自动驾驶功能。

5 .电动汽车控制电动汽车是新能源汽车的重要代表,其控制系统具有独特的特点。

MaUab提供了针对电动汽车的特殊控制算法和仿真模型,可以用于设计和优化电动汽车的动力系统和能量管理系统。

例如,可以使用Mat1abSimU1ink工具箱构建电动汽车的电机驱动控制模型,并利用Mat1ab的优化工具箱进行电池组的能量管理优化。

6 .智能交通系统智能交通系统是一种将信息技术与交通运输系统相结合的新型交通管理方法,可以提高交通效率和安全性。

融入Matlab和Carsim联合仿真的汽车理论教学方法探讨

融入Matlab和Carsim联合仿真的汽车理论教学方法探讨

AUTOMOBILE EDUCATION | 汽车教育融入Matlab和Carsim联合仿真的汽车理论教学方法探讨程准南京林业大学 江苏省南京市 210037摘 要: 传统的《汽车理论》课程教学方法以讲授法为主,而课程具有一定的理论深度且重难点多,学生在缺乏对汽车实体、系统动力学状态、测量信号等直接感知的情况下相关知识和能力的增进效果有限。

本文围绕融入Matlab和Carsim联合仿真的《汽车理论》课程新型教学方法进行了分析和探讨。

以汽车的制动性为例进行了教学设计,通过Matlab调节汽车参数及观测信号,通过Carsim观察汽车运行状态,以直接感知、实际训练和自主探究等多方面出发培养学生工程综合能力。

关键词:汽车理论 联合仿真 教学方法 直接感知1 引言《汽车理论》主要涉及与汽车动力学有关的汽车使用性能(主要包括动力性、燃油经济性、制动性、操纵稳定性、平顺性和通过性)[1],是车辆相关专业的核心课程。

其各章节的知识内容包含了一定数量的动力学方程,知识点表征时多借助简图进行受力分析并且文字性描述较多。

传统的教学方法以课堂讲授为主并辅之以课后练习(主要采用习题的方式)。

学生学习时面对纯粹的理论公式、数据图表、受力简图和文字分析难以提高对知识的理解和应用程度。

在工程教育专业认证的背景下《汽车理论》是车辆相关专业“毕业要求”的关键课程支撑[2]。

这使得《汽车理论》课程有了更高的目标[3],例如学生通过对这门课程需掌握车辆工程专业知识,并将相关知识和数学模型方法用于车辆工程专业问题解决方案的比较与综合;学生能基于相关科学原理和数学建模方法正确表达车辆工程领域的复杂工程问题;学生能够对实验结果进行分析和解释,通过信息综合解决复杂工程问题,并得到合理有效的结论等。

借助于仿真技术模拟再现汽车运动过程能够显著提升教学效果。

文献[4]阐述了ADAMS软件在《汽车理论》(主要介绍了汽车的制动性、操纵稳定性和平顺性)教学过程中的应用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MATLAB在 汽车理论 中的简单应用 汽车理论 可以使用MATLAB作为科学计算工具的课程㊂本文档的目的在于向之前没有接触过MATLAB的同学介绍其在 汽车理论 中的简单应用,更多关于MATLAB的知识需要大家结合其他课程,通过进一步的学习和研究来掌握㊂需要说明的是:1)本文档默认读者已掌握C语言和线性代数基本知识㊂2)红色字体的语句可以直接复制到MATLAB中进行运算㊂语句中用到的符号(引号内部分除外)均为英文状态下输入㊂本文档所有语句均已在MATLAB7.8.0(R2009a)版本下调试过㊂3)例程编写样式纯属个人习惯,大家不必拘泥㊂4)如对本文档及‘汽车理论“第6版中的附录C㊀一个学生的 汽车理论 课程MATLAB习题编程思路有任何问题,欢迎发送邮件一起讨论㊂邮件地址:wang-d07@ ㊂1.MATLAB使用指南打开MATLAB后出现的是软件的主界面㊂几个窗口中最重要的是Command Window,用户可以在里面输入程序,编写的函数的结果也在这里显示㊂首先对MATLAB进行配置㊂如果是在自己的计算机上编程,建议先建一个属于自己的workspace,用来保留用户的工作环境㊂选择 file Save Workspace As ,在合适的目录下保存用户自己的workspace(.mat文件)㊂这样,以后用户编程的环境就默认为这个workspace了㊂虽然可以直接在Command Window里编写程序,但这样的程序无法被保存和发布㊂选择 file New Blank M File ,可以新建空白的MATLAB函数文件(.m文件),在这里编写的程序可以被保存和发布㊂编写好的程序要经过编译之后才能执行㊂选择 Tools Save File and Run (也可以直接按<F5>键),进行程序的编译和执行,结果显示在Command Window中㊂如果程序有错误,MATLAB也会提示程序运行到哪一行命令终止了,并指出可能的错误类型,然后用户就开始了漫长的debug㊂如果编写了子程序和主程序,那么需要先对子程序进行编译(此时不会产生任何结果),只有编译通过后再对主程序进行编译,才会显示结果㊂当然,也可以选择新建 Function M File ,它直接提供一个函数模板㊂(个人感觉没有太大意义)明白该如何操作MATLAB后,接下来介绍MATLAB中与C语言不同的变量单位 矩阵㊂2.矩阵及其运算MATLAB全称是Matrix Laboratory(矩阵实验室),因此矩阵是MATLAB中最基本的运算单位,熟练掌握矩阵的知识对于灵活运用MATLAB有很大帮助㊂1在MATLAB中,一个已知的矩阵可以定义如下:A=[1-20;3.54.8666pi]其中A是这个矩阵的名字,在MATLAB中,一个变量必须以字母开头,以数字㊁下划线等开头都是违法的(但可以用在变量名中间);A的值是一个矩阵,其元素分别为:a11=1,a12=-2,a13=0,a21=3.5,a22=4.8666,a23=3.1415由上述可知,同一行的元素用(一个或多个)空格隔开,不同行的元素用分号(英文状态下的,下同)隔开㊂其中, pi 是MATLAB中已经定义好的常数,可以直接引用㊂可以看出MATLAB与C语言在定义上有所差别,即如果变量是已知的,MATLAB无须事先定义对象类型(整数㊁浮点数㊁无符号数等),通过正常运算得出的变量也无须对其事先定义类型㊂此外,还可以定义向量,如:B=[123]C=[0;0.5;-1]其中,B是一个行向量,C是一个列向量㊂ᶄ 表示矩阵的转置,即列向量C也可以表示为:C=[00.5-1]ᶄ如果想表示矩阵中的某个元素,其方法如下:a=A(2,1)可以得到:a=3.5其中 () 内的语句部分表示元素的位置, , 前为行, , 后为列,即a等于矩阵A中第2行第1列的元素㊂对于一个向量,由于某一方向维度为1,因此上述语句可以简化为:b=B(3)c=C(2)可以得到:b=3c=0.5如果想取矩阵中的某一部分,其方法如下:D=[23783;01956;46215;40391]E=D(1:3:4,1:2:5)F=D(1:3,1:2)G=D(2,:)可以得到:E=[273;431]F=[23;01;46]G=[01956]其中, : 表示步进,如1:2:5表示从1开始步进为2直到5,即1㊁3㊁5,因此E 为矩阵D的第1㊁4行(步进为3)和第1㊁3㊁5列(步进为2)交叉处的元素组成的矩阵; 2如果步进为1,则可以省略不写,如1:3表示1㊁2㊁3,则F为矩阵D的第1~3行和1~2列交叉处元素组成的矩阵;单独使用的 : 表示所有行(列),即G为矩阵D第2行所有列的元素组成的矩阵㊂MATLAB也允许对矩阵进行扩充,但一定要注意维数的正确性㊂例如:H=[31;52]K=[H;60]L=[01;Hᶄ]ᶄ可以得到:K=[31;52;60]L=[031;152]矩阵间可以进行加㊁减㊁乘㊁除等矩阵运算,但同样需要注意维数的正确性㊂例如: M=[10;21]N=[31;10]那么有:M+N=[41;31]M∗N=[31;72]如果用一个常数与矩阵进行四则运算,结果是这个常数分别与矩阵中的元素进行四则运算,如:3+M=[43;54]2∗M=[20;42]此外,MATLAB还提供了有别于正常的矩阵运算的点乘(除㊁次方)运算,即在运算符号前加 . ,表示矩阵中对应位置的元素进行代数运算㊂例如:M.∗N=[30;20](对应位置元素相乘)M.^2=[10;41](对应位置元素平方)点乘(除㊁次方)运算在数据处理中很常用㊂例如,一个20维向量中记录的是汽车通过的20个测试路段的长度,另一个20维向量中记录的是汽车通过每个测试路段所用的时间,两个向量做点除运算,得到一个20维向量,即为汽车通过每个路段的平均速度㊂需要注意的是,由于矩阵加减本身就是相应位置元素的代数运算,因此没有点加(减)运算㊂在MATLAB中已定义好了一些特殊的矩阵,用户可以方便地使用,包括零矩阵(元素全为0)zeros㊁一矩阵(元素全为1)ones㊁单位矩阵(对角线元素均为1㊁其余位置元素均为0的方阵,即 I )eyes,用户用时只需定义矩阵的维数即可㊂例如:P=zeros(2,3)Q=ones(5,1)R=eyes(2)分别表示P为一个2行3列的零矩阵,Q为一个5维的一矩阵,R是一个2维单位矩阵㊂需要注意的是:1)如果zeros和ones只给了一个维度的定义,默认为方阵,如zeros(3)是一个3∗33的零方阵㊂2)eyes只能有一个维度的定义(本身即为方阵),定义为eyes(2,3)和eyes(2,2)都是错误的㊂3)零矩阵多用在初始化㊂例如执行某个循环语句来反复为一个矩阵增加元素(这种情况在数据处理时很常见,经常需要不断地将处理过的结果放到一个向量中区),矩阵的大小在每次循环中都会发生变化,MATLAB需要事先为这个矩阵分配相应大小的内存空间㊂此时可以先将该矩阵定义为零矩阵(数据的个数即为维度),这样在循环过程中得到的数据会将原有的0覆盖㊂4)灵活使用一矩阵会使运算简化㊂例如M=[1234],需要求出所有元素之和㊂可以定义N=ones(4,1),利用矩阵乘法M∗N就可以得到M中所有元素之和㊂这种情况多用于矩阵M中存放的是每个试验点的数据(如在每个工况下汽车的油耗),需要求出在试验过程中总的结果(如在六工况试验时测量汽车的总油耗),此时用一矩阵可以代替循环加法㊂其实,在工程应用中最常用到的是向量,对向量进行处理㊁计算和表达是接下来介绍的重点㊂3.常用函数简介MATLAB中有许许多多的函数,但常用的可能只有几十个㊂使用MATLAB中的函数需要知道函数名㊁参数个数及类型㊁返回量个数及类型,但没有必要完全记住这些,用到时只需在help菜单里查找就行了(MATLAB的help菜单十分强大)㊂当然,前提是要知道MAT-LAB提供了一个这样的函数㊂MATLAB中函数的格式通常为:[y1,y2, ]=function(x1,x2, );方括号内的是返回值,多个返回值用 , 隔开,如果只有一个返回值则不必写 [] ;function是函数名;小括号内是参数,多个参数用 , 隔开,小括号不可省略;函数语句结尾一般用 ; 表示结束㊂下面介绍常用的函数㊂如果是处理试验数据,首先要做的就是导入数据㊂程序如下:data=importdata( 1.txt );其中,data是一个存放数据的矩阵,importdata是导入数据函数,其参数为字符串类型的文件名(如1.txt),文件名要写在 ᵡᵡ 内㊂通常,一个数据文件中包含许多类型的数据,一般需要再将它们分别提取出来,即在后面加上如下语句:vel=data(:,1);该语句的含义为将data中第1列的速度数据提取出来放入vel向量中㊂面对海量的数据,需要一些函数来帮助我们处理㊂这里只介绍find()和length()函数㊂find()函数用来查找向量或矩阵中符合条件的元素的位置㊂其常用形式如下: pos=find(expression)其中,expression是人为设定的条件,pos是由符合条件的所有元素位置组成的向量㊂find()函数运行时,从第一个元素开始查找,并将使参数expression为真的元素位置写入4向量pos中㊂例如:X=[10-45.502-1];pos1=find(X>0&X<3)pos2=find(X)执行程序后可以得到:pos1=[16]pos2=[13467]即pos1用于查找向量X中所有大于0且小于3的元素的位置,pos2用于查找向量X中所有不为0的元素的位置(MATLAB与C语言相同,逻辑语句值为0表示FALSE,不为0表示TRUE)㊂在MATLAB中也有逻辑运算符,分别是与 & ㊁或 | ㊁非 ~ ㊂length()函数可用来求一个向量的长度㊂需要精确判断存储了海量数据的向量究竟有几个元素时,可以采用length()函数,如下:len=length(X)对向量中的数据,除了可以进行矩阵运算之外,还可以直接进行其他数学运算㊂例如输入以下语句即可画出一条正弦曲线:X=0:0.01:2∗pi;Y=sin(X);plot(X,Y);这里的X是从0开始,步进0.01直到2π的向量( : 的用法同上),Y是对X中每个元素求正弦后的值组成的向量,X和Y的元素个数应该是相同的;plot是画图函数,接下来会介绍㊂常用的数学函数包括:三角函数sin()㊁cos()㊁tan()等;反三角函数asin()㊁acos()㊁atan()等;平方根sqrt();向上取整ceil()㊁向下取整floor()㊁向0取整fix()㊁四舍五入取整round()等㊂由于经常需要进行插值运算,MATLAB中提供了许多插值函数,这里仅介绍一种一维(线性)插值函数interp1()㊂例如:X=1:10;Y=X.^2+3∗X+2;y1=interp1(X,Y,4.5)可以得到:y1=36这段语句中有几点需要说明㊂1)interp1()函数的常用形式是:y1=interp1(X,Y,x1)参数依次为:向量X㊁向量Y㊁向量X范围内的某个值x1(不一定是X中的元素,如x1=4.5就不是X中的元素);返回值y1是向量Y对应的线性插值㊂Interp1()函数首先将向量X和Y的对应值进行拟合,然后根据x1的位置线性插值出y1的大小㊂由上例可以看出,如果按照单纯的公式计算,y1应该等于35.75,但线性插值的结果是,y1等于36㊂(可以自行验证)52)最后一行的末尾没有写分号㊂分号的作用是表示一行语句的结束,但如果这行语句的结果需要显示出来(如y1的值需要在Command Window中显示),那么结尾的分号就需要去掉㊂也就是说,执行结尾有分号的语句,不显示运算结果,反之会显示运算结果㊂(其实在介绍矩阵部分时所有代码结尾都没有写分号,是一样的道理)如果想显示某个变量的值,可以直接输入名称㊂例如刚才的函数最后一行改为:y1=interp1(X,Y,4.5);y1执行程序后也是可以显示y1的值的㊂如果显示的运算结果没有被放到一个变量中,MATLAB默认将其放到一个名叫ans的变量中㊂例如刚才的函数最后一行改为:interp1(X,Y,4.5)那么会显示ans=36需要注意的是,由于只有一个ans变量,因此每次使用ans变量都会覆盖掉前一次的值㊂3)注意到第二行语句中的点乘运算了吗?有时候需要对数据进行多项式拟合,这时会用到函数polyfit()和polyval()㊂例如: X=[11.52.233.6];Y=[68.813.52025.8];A=polyfit(X,Y,2)X1=3:5;Y1=polyval(A,X1)可以得到A=[0.98443.07431.9556]Y1=[20.038430.003841.9380]polyfit()函数是多项式系数拟合函数,其常用形式如下:A=polyfit(X,Y,n)其中X是自变量,Y是因变量,n是拟合的多项式的系数(最高次方)㊂向量A中存放的是拟合的多项式系数(依次为n阶系数,n-1阶系数 1阶系数,常数项)㊂上例中A= polyfit(X,Y,2)就是将X和Y进行了2阶多项式拟合,结果为:Y=0.9844∗X.^2+3.0743∗X+1.9556polyval()函数是多项式求值函数,其常用形式如下:Y=polyval(A,X)其中,A是多项式的系数(由高阶到低阶),X是自变量,Y是因变量㊂上例中Y1= polyval(A,X1)就是利用polyfit()函数拟合出的系数对一组新的自变量进行了求值㊂积分运算是很常见的㊂MATLAB中提供了许多积分函数,这里仅介绍最常用㊁最简单的梯形积分函数trapz()㊂例如:X=0:0.01:pi;Y=sin(X);6I=trapz(X,Y)可以得到:I=2trapz()函数的参数分别是自变量X(隐含了积分起点和终点)和因变量Y,函数利用微积分中的梯形积分方法计算积分值㊂数据处理完后就该表达了㊂MATLAB中提供了丰富的绘图函数,最常用的就是二维绘图函数plot(),其应用例子可以参考前述绘制正弦曲线的部分㊂这里介绍一下常用的plot()函数参数以及其配套函数㊂首先用figure()函数选择图纸㊂例如:figure(1);表示打开1号图纸(MATLAB中用数字编号图纸)㊂也可以不选择图纸,MATLAB会根据作图的顺序依次在1㊁2㊁3 号图纸上绘图㊂figure()函数的作用是,允许用户选择图纸画图,这在同时绘制多张图而需要选定某张图时十分有用㊂接下来可以绘图了㊂plot()函数的常用形式为:plot(X,Y,Linestyle)X和Y就是绘制的横轴参数和纵轴参数;Linestyle是表示线型性的字符串类型参数,需要用 ᵡ 加注,可以省略㊂常用的Linestyle参数见下表,更多参数见help文档㊂线型对应字符线色对应字符数据点对应字符实线(默认)-蓝色(默认)b无(默认)(空白)虚线--红色r加号+点线:黄色y圆圈o点画线-.绿色g叉x青色c星号∗洋红色m方块s黑色k菱形d线型引用例子如下:plot(X,Y,ᶄ-.roᶄ);表示绘制的线型为红色点画线㊁数据点用圆圈表示㊂除了线型外,图上的任意标注都可以用函数进行修改㊂例如:plot(X,Y);xlabel( time ),ylabel( velocity ),title( v-t ),axis([0,120,0,50]),grid on, legend( TEST1 );执行该语句,可以绘制一幅横坐标表示时间㊁范围为0~120,纵坐标表示速度㊁范围为0~50,题目为 v-t ,图例为 TEST1 ,有网格线的图表㊂其中xlable()和ylable()函数表示图上横轴和纵轴的注释,参数为相应的字符串;title()函数表示图表的题目; axis()函数表示横纵坐标轴的范围,因为有时候MATLAB默认的坐标范围不是我们想要的,需要进行修正,axis()函数的参数是一个向量(有中括号),其元素依次为横轴最小值㊁横轴最大值㊁纵轴最小值㊁纵轴最大值;grid on函数表示有网格线;legend()函数是图例7函数,表示图上所画的曲线是什么意思,如果有多条曲线,legend()可以有多个参数,按照绘制顺序依次表示每条曲线㊂这些函数可根据需要进行取舍㊂另外,我的习惯是将这些函数用 , 隔开㊂另外,介绍一种绘图函数subplot(),其功能是将图纸分割成许多小部分,供你选择其中某一部分进行绘图,例如:subplot(2,4,2);plot(X,Y);subplot(2,2,4);plot(X,Z);subplot()函数的前两个参数表示将图纸分割成几行几列;第三个参数表示在第几个小图上绘图,其顺序为从左至右㊁从上至下㊂上例中,执行第一行命令后,将图纸分割成2行4列共8个小图纸,在第2个(第一行第二列)小图纸上绘制X-Y曲线;执行第二行命令后,将图纸分割成2行2列共4个小图纸,在第4个(第二行第二列)小图纸上绘制X-Z 曲线㊂需要注意的是,可以将一张图纸按照几种方式分割(如上例中就是2种分割方式),但如果图幅发生冲突,后绘制的图会覆盖先绘制的图㊂也就是说,如果第二行命令改为sub-plot(2,2,1),那第二次绘图会将第一次绘制的图覆盖掉㊂最后,介绍hold on函数㊂其用法如下:X=0:0.01:2∗pi;Y=sin(X);Z=cos(X);plot(X,Y),hold on;plot(X,Z);如果没有hold on语句,那么X-Y曲线会画在第一张图上,而X-Z曲线会画在另一张图上㊂hold on语句能保持当前的图纸不关闭,接下来的图仍然绘制在该图纸上㊂因此上述命令可以在同一张图纸上绘制正弦和余弦曲线㊂相应地有hold off命令㊂一般来说,掌握上述函数基本就可以应对大三学年课程对MATLAB的要求了㊂当然,有时候你也需要编一些自己的程序来更好地满足不同的要求㊂接下来,介绍如何编写自己的程序,即M文件㊂4.程序结构你可能已经掌握了如何在Command Window中用函数来进行一些计算,但如果你的函数很大或者需要保存和发布,还是需要把函数写到一个M文件中㊂MATLAB没有C语言那样的函数库,也不需要编写头文件(这些工作都定义在workspace中了),一个M文件就是你编写的一个函数(当然其中可以包括许多其他子函数),因此对于一个M文件(也是个函数)来说,就有相应的输入量㊁输出量和函数体㊂一般地,如果我们编写MATLAB程序只是为了处理数据㊁绘制图表,不需要传送数据给其他函数,这时M文件就不需要声明函数格式㊂如果这个M文件是其他M文件的一个子函数,有数据需要上传,那么在M文件的开头就需要函数声明㊂函数声明的格式如下: function[y1,y2, ]=func(x1,x2, )其中,y1㊁y2等就是M文件输出变量值,用中括号括起;x1㊁x2等是M文件的输入变量,用小括号括起;func是函数的名字,注意函数名字与M文件的名字一定要相同,不然会出现编译错误㊂MATLAB函数声明与C语言的不同之处是,开头要写function声明这是个8函数;输入变量和输出变量都不需要定义类型,因为输入变量的类型在上一级函数中已给定,而输出变量的类型在M文件中会定义,但输入变量和输出变量的名字都应该是这个函数中用到的实际变量的名称㊂除了函数声明之外,M文件的编写都是一样的了㊂下面介绍MATLAB中的条件语句和循环语句,其定义和功能与C语言相同,这里仅介绍格式上的区别㊂if条件语句格式如下:ifexpression1㊀㊀statements1elseifexpression2㊀㊀statements2else㊀㊀statements3end其中,elseif和else语句不是必需的㊂switch条件语句格式如下:switch x㊀㊀case x1㊀㊀㊀㊀statements1㊀㊀case x2㊀㊀㊀㊀statements2㊀㊀otherwise㊀㊀㊀㊀statementsnendfor循环语句格式如下:for x=x1:step:x2㊀㊀statementsend其中,for循环的条件是用 : 表示的步进㊂while循环语句格式如下:while expression㊀㊀statementsend需要注意的是:1)MATLAB中条件和循环语句statements不必用大括号括起来,但必须用end表示结束㊂多重条件或循环时要注意end的数量㊂2)在表示条件的expression中也可以包含与㊁或㊁非等逻辑命令,但应该写作:等于 == ㊁不等于 ~= ㊁与 && ㊁或 || ㊁非 ~ ㊂在程序编写过程中,很多时候需要添加注释㊂在MATLAB中,用 % 来引导一行注释语句, % 后的本行语句(可以有中文)在编译时均忽略㊂如果有多行语句需要注释,9除了可以在每行开头添加 % 外,还可以采用如下形式来进行注释:%{㊀㊀statements%}到此为止,你已经了解了MATLAB的一些基本知识㊂尝试用MATLAB解决一些问题吧!祝各位MATLAB学习顺利!感谢孟艳提供了参考用的MATLAB作业!01。

相关文档
最新文档