MATLAB程序总结(精选6篇)
篇1:MATLAB程序总结
clear clc
X=[1 2 3 4 5];A=[ 1 2 1 0 0;4 0 0 1 0;0 4 0 0 1];C=[2 3 0 0 0 ];b=[8;16;12];t=[3 4 5];B0=A(:,t);while 1
CB0=C(:,t);XN01=X;
for i=1:length(t);
for j=1:length(X);
if XN01(j)==t(i)
XN01(j)=0;
end
end
end j=1;
for i=1:length(X);
if XN01(i)~=0
XN0(j)=XN01(i);
j=j+1;
end
end
for j=1:length(XN0);
CN0(j)=C(XN0(j));
end N0=[];
for i=1:length(XN0);
N0=[N0,A(:,XN0(i))];
end
xiN0=CN0-CB0*B0*N0;j=1;z=[];
for i=1:length(xiN0)
if xiN0(i)>0
z(j)=i;
j=j+1;
end
end
if length(z)+1==1;
break;
end n=1;
for i=1:length(z)
if z(i)>z(n)
n=i;
end
end
k=XN0(z(n));%换入变量 B=B0*b;
P=B0*A(:,k);j=1;
for i=1:length(P)
if P(i)>0
x(j)=i;
j=j+1;
end
end y=1;
for i=1:length(x)
if B(x(y))/P(x(y))>B(x(i))/P(x(i))
y=i;
end
end
y1=x(y);
y=t(y1);%换出变量
for i=1:length(t)
if t(i)==y
m=i;
break;
end
end
t(m)=k;
P2=B0*A(:,k);q=P2(y1);P2(y1)=-1;P2=-P2./q;
E=[1 0 0;0 1 0;0 0 1];E(:,m)=P2;B0=E*B0;end
CB0*B0*b
篇2:MATLAB程序总结
实习二
MATLAB简单程序设计
目的:通过实习MATLAB简单程序设计,能够编写简单MATLAB程序,为编写结构较为复杂的M文件做准备。
要求:掌握MATLAB变量命名规则,算术运算符,关系运算符,逻辑运算符以及特殊运算符,掌握脚本M文件和函数M文件的编写,掌握结构化程序设计。
一、MATLAB运算符 1. 算术运算附
包括普通运算符(+、-、*、/、^)和数组运算符(.*、.、./、.^),请回顾并掌握。2. 关系运算附 大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)、不等于(~=)。3. 逻辑运算附 逻辑与(&)、逻辑或(|)、逻辑异或(xor)、逻辑非(~)。4. 特殊运算附
冒号运算符(:)与句点(.)。以上内容请参考课件。
二、M文件的编写 1. 脚本M文件
只包括一些可执行命令行,是Matlab表达式的集合,不可以接受参数。
比如新建一个文件名为cal.m的M文件,一种方法是在MATLAB的command window中输入:
>>edit cal.m 这时,就会打开MATLAB的M文件编辑器——M Editor,在窗口中输入M文件的内容,然后保存就会在当前目录下生成一个文件名为cal.m的M文件。请回忆另外两种M文件的创建方式。如把以下内容输入到cal.m中,这个M文件就是一个脚本M文件。
%this is a script M file example!clc;clear x=[4 6 5;8 2 3;7 1 9];y=x’;z=inv(x);a1=x*y,a2=x.*y b1=x/y,b2=x./y,b3=x.y 注意上面‘%’号的作用,M文件的文件名命名规则与变量相同,而且文件名不能和MATLAB函数名相同。2. 函数M文件
函数M文件是另一类M文件,用户可以根据需要编写自己的M文件,它们可以像库函数一样方便地调用。函数M文件的第一行有特殊的要求,必须遵循如下的形式:
Function<因变量>=<函数名>(<自变量>)
如果用户建立起许多M函数文件,则可以最终形成独立的用户自己的工具箱(1)单一因变量的函数M文件 新建一个M文件,输入以下内容:
% This is a function M file example function myabs=absolute(a)if a>0
myabs=a;else
myabs=-a;end 然后把M文件保存为absolute.m,在MATLAB的command window中输入: >>absolute(-5)就能调用。而不能像脚本M文件那样直接运行,因为函数M文件需要有输入参数。但是,这个M文件只能对标量求绝对值,而不能对矩阵求绝对值,请编写一个M文件,使其能对矩阵的各个元素求绝对值(提示:用size函数得到输入矩阵的行数和列数,使用嵌套for循环对矩阵的每个元素进行判断)。(2)多因变量的函数M文件
由于MATLAB的运算是矩阵运算,很多情况下,调用函数后需要返回多个值。
% This is a function M file example function [summ,mean,stdev]=stat(x)[m n]=size(x);if m==1
m=n;%if x is an array end summ=sum(x);mean=sum(x)/m;stdev=sqrt(sum(x.^2)/m-mean.^2);同样,新建一个文件名为stat.m的M文件,输入以上内容,就能调用: >>[a,b,c]=stat([1,2,3;4,5,6;10,2,8])
三、MATLAB结构化程序设计 1. if-else-end结构 2. while-end结构 3. for-end结构
4. switch-case-end结构
以上几种结构的表述与实例参见课件。
实习二作业:
1. 请编写一个函数M文件,使其能对矩阵的各个元素求绝对值,要求用2种循环实现(for循环和while循环)。提示:用size函数得到输入矩阵的行数和列数,使用嵌套for循环(while循环)对矩阵的每个元素进行判断。
2. 对课件3中的switch-case-end结构用if-elseif-else-end结构改写,实现相同功能。
3. 编制一个程序,该程序将接受用户输入的任何字符串,并查找在这个字符串中某个指定字符的出现次数。提示:用findstr函数和length函数。
答题要求:
一、独立完成以上各题,一旦发现抄袭行为,该次作业记零分。
二、作业请手写,一律不收打印稿。
篇3:MATLAB程序总结
备课是一个很重要的环节, 教师需要认真阅读教材与参考书, 特别要阅读一些经典的教材。不同的教材对同一个问题往往会提出不同的侧重点, 不同的解决问题的方法。另外, 对于教材中的知识点, 教师还要认真思考, 发现问题的本质, 进行总结。以教材中“利用冒号表达式获得子矩阵”这一知识点为例, 教材中指出了如下几种类型:A (:, j) 、A (i, :) 、A (i:i+m, :) 、A (:, k:k+m) 、A (i:i+m, k:k+m) 。经过仔细分析, 注意到i:i+m, k:k+m, i, j以及冒号 (表示所有的行或列) , 实际上都表示一个矩阵, 所以, 可以用一个通用的公式A (U, V) 这种形式来表示, 其中, 。这样, 能够让学生懂得, 在matlab中“无论是冒号表达式, 还是一个数, 它们本质上都是一个矩阵”这一知识点, 而且减轻了学生记忆的负担, 只需要记一个通用的规律即可, 同时, 掌握了问题的本质。
在迭代法解方程组这一章节, 最好举例说明迭代公式合理与否决定着迭代能否收敛。另一方面, 有些方程组, 用一种迭代方法收敛, 用另一种迭代方法则发散。比如方程组 (1) 用Jacobbi迭代收敛, 用Gauss-Serdel迭代则发散。对于某些方程组, 还可以通过自己编写的matlab程序来说明, 迭代的初值和迭代的结果无关, 但是和迭代的次数有关。这样, 经过归纳和总结, 能帮助学生加深对所学知识的理解。
在课堂教学方面, 要向学生指出:学新的知识的同时, 往往是对老的知识的一个复习。比如, 在matlab绘图中, 所要绘制的对象都来自前几章。为了正确绘制所要绘的对象, 必须对这些对象有一个很好的理解。对于一个复杂的例题, 建议分为几个小问题。下面以matlab中常见的两条曲线求交点为例来分析。在同一坐标内, 分别用不同线型和颜色绘制曲线y1=0.2e-0.5xcos (4πx) 和y2=2e-0.5xcos (πx) , 标记两曲线交点。这个问题可以拆为以下几个学生能理解的小问题:
y2=2*exp (-0.5*x) .*cos (pi*x) 。对于上述小问题, 可以先用小例子“X=[1, 2], 则sin (X) =[sin (1) , sin (2) ]
”来说明Matlab中矩阵作为函数参数的用法, 然后再分析上述问题。
2 x=linspace (0, 2*pi, 1000) ;最后一个参数取值要注意“若x的间隔取得太小, 有些交点会遗漏, 比如x=linspace (0, 2*pi, 100) ;”。
3 k=find (abs (y1-y2) <1e-2) ;误差的取值。如误差取太小如1e-3, 则会漏掉一部分点 (如图1所示) , 若误差取1e-1, 则会把许多不符合的点画出来 (如图2所示) 。
在课堂教学中, 还要多和同学们讨论, 一方面, 能够激发同学们学习的积极性, 增加互动的效果, 对同学提出的不同解法进行点评。另一方面, 有时候同学甚至能提出更好的求解方法。类比的方法也很重要。从一道例题想到另一些相关的知识点。比如在讲圆的极坐标表示时, 可以复习一下圆的参数方程表示。对于难度较大的知识点, 除了上课讲解以外, 还可以把讲解过程详细地写到一个word文件中, 以“各章注释”的形式发给同学。比如meshgrid () 函数的用法。
上机实验是Matlab教学中的另一个重要环节, 上机题目的设置可以分为简单的基础题和有一定难度的提高题。其中基础题主要帮助学生复习课堂中所学的基础知识, 提高题主要帮助学生灵活应用课本所学的知识, 对于有些题可以适当给些提示, 对学生的实验加以引导。还是以Matlab绘图为例。本题的曲线求
交点和刚才讲的曲线求交点的例题有差异。本题中, 第二条曲线以参数的形式给出。为此, 第一条曲线y=2*x+1的x的取值必须和第二条曲线的x取值范围一致。单步调试程序也是一个很重要的上机环节。一方面, 可以在理论课讲例题时适当讲解一下单步调试程序的方法。另一方面, 任课教师可以结合具体的例子写几个单步调试程序的教程, 帮助学生理解单步调试。实践中发现, 这些教程对同学掌握单步调试程序帮助很大。另外, 对于基础好的同学, 可以提供一些选作题, 培养学生的积极性。比如:曲线插值和拟合, 在教才中一般只讲到一维和二维的插值和拟合。可以适当提供一些Matlab专著以及数学建模专著中的相关内容, 来培养学生的探索能力, 同时也可以为数学建模等竞赛发现优秀的苗子。最后, 教师还要注意学生在上机环节中常见的错误, 及时进行讲解。
总之, 备课, 课堂教学和上机实验这三个环节相互联系, 相互促进。备课是准备环节;课堂教学是教师的实践环节;上机实验一方面是学生的实践环节, 另一方面也是对教师上课效果的检验。
参考文献
[1]刘卫国.MATLAB程序设计教程 (第2版) [M].北京:中国水利水电出版社, 2010.
[2]王志新.《Matlab程序设计》.课程建设的思考[J].黑龙江科技信息, 2009 (21) :190-191.
[3]龙佳乐, 应自炉, 张建民.“Matlab程序设计”课程的教学探讨[J].电气电子教学学报, 2010 (1) :111-112.
[4]贺超英.《MATLAB语言与应用》.教学探讨[J].科技创新导报, 2010 (5) :135.
篇4:Matlab程序设计教改实践
关键词:Matlab程序设计;教学改革;教学实践
近年来,计算机技术和网络技术飞速发展,信息类专业即使不是计算机相关专业的人才,也应该具有较高的编程水平,甚至要具备软件研发等多个方面的能力,这样才能满足社会的需求。因此,程序设计类课程在高校信息类专业课程体系中占有相当大的比重。
Matlab是一个拥有数值计算分析、可视化的图形、处理文字以及分析符号等功能的集成化软件。目前,科学理论的仿真分析、工程技术、数据整合计算、实验的平台搭建等各方面都离不开Matlab这个强大的科学计算仿真平台。因为其具有非常直观、高效、便捷的良好性能,这门程序设计语言在普通高等教育的理工科院校中成为必修学科,也是理工科学生必须掌握的基本技能。因此,如何让学生更轻松地学好Matlab程序设计课程,是教师值得思考的问题。
一、课程教学现状分析
Matlab程序设计课程所涉及的学科领域广泛,新知识比较多,而且内容抽象、乏味,教学课时少。这就导致教师的教学任务重,课程安排紧凑;学生对知识的消化不透,学习吃力,大部分学生学习成果十分不理想,较优秀的学生也只能勉强读懂十分简单的程序语句,并不会利用Matlab语言进行项目开发。
1.学生缺乏学习兴趣,基础薄弱
学好Matlab软件,不但要求学生具备英语、数学等学科的基本知识和良好的逻辑思维能力,还要求学生有一定的设计程序基本理念。但是对于非重点高校,大多数学生的数学和英语基础较为薄弱,给编程学习带来困难;编程相关知识抽象程度高,对于数学逻辑思维相对较差的学生,很难顺利地运用编程语言;学生普遍喜欢理论比较简单、可以动手操作的课程,这就使对Matlab课程的学习比较吃力,学习兴趣下降,上课不认真听讲,甚至产生放弃学习该课程的想法,逃避程序设计类课程。因此,程序设计类课程的枯燥结构搭建和语句分析往往让初学者表现出学习动力不足、学习兴趣不高等问题。
2.现有教材不能满足教学要求
现有的教材过多地停留在数学问题上,使学生感到枯燥乏味。计算机技术发展迅猛,但是教材却更新缓慢,现在使用的教材版本较低,不能涵盖Matlab软件的实现功能,导致学生不能够将所学的理论知识较好地与实践课相结合,产生厌学的消极情绪。
3.教学方法陈旧
传统的教学方法是“填鸭式”教学,就是由教师为主体给学生灌输书本上的内容。虽然教师希望能在有限的时间里给学生传授更多的知识,但是这样的教学方法会导致师生间的互动、交流减少,学生一直处在被动、机械的学习状态,学生没有自主思考,学习的积极性和主导性都会降低。久而久之,学生分析、解决问题的能力以及创新能力非但不能提高,反而丧失了学习这门课程的兴趣,甚至对其他的程序设计课程也产生反感、抵触情绪。
4.教学手段单一
虽然由“黑板+粉笔”转变为“计算机+大屏幕”,节省了大量板书的时间,提高了教学效率,但是教学效果并未得到明显提高。因为教师的教学观念并没有改变,仍是以教师为课堂的中心,教师课上采用读PPT的教学方式给学生传授课程知识,信息量大,学生缺乏思考和消化知识的时间,对知识的理解不够透彻。
二、课程教学改革与实践
1.培养学生学习热情
学生长期坚持学习的重要条件是兴趣,所以培养学生的学习兴趣至关重要。首先,讲课之前,可以通过列举生活中应用Matlab的现实例子告知学生这门课程的实用性和重要性,学生才会知道该课程与实际生活是有联系的,是有用的。其次,让学生明白这门课程哪个部分好学,哪个部分难学,让学生在学习的时候有心理准备,合理分配时间。这样,在学习难的部分时学生会深入钻研,发现自己的不足,自觉利用课余时间给自己“充电”。最后,教师应适当地在课堂上引入该年龄段学生关注的事情活跃课堂气氛,让学生爱上课堂,喜欢听课。
2.精心组织教学内容
教材内容不仅要符合学校的教学计划、课程的教学大纲要求和学时安排,而且要明确在课程的教授过程中,注重讲解该课程的分析方法和在实际中的应用。Matlab程序设计课程可以分为三个阶段:第一阶段是基础知识讲解,重点是算法分析和设计;第二阶段是简单的编程及应用;第三阶段是减少理论,增加案例,注重实践。
3.改进教学方法
近年来,迅猛发展的计算机技术及网络技术,不但为现代教育事业做出了巨大贡献,而且对以往的教学方法产生影响。第一,教师通过多媒体课件引入问题,可以给学生演示开发成功的软件成果,让学生感受这门课程的神奇与强大,培养学生产生浓厚的学习兴趣和探索知识的欲望。第二,改变传统的教法,让学生与学生之间、学生与教师之间在课堂上可以相互讨论,让学生多思考、多提出问题,充分发挥学生的主观能动性,教师不用对学生的提问给出直接回答,可以稍加引导,让学生多独立思考,提出解决问题的方法和设想。最后,教师对知识点进行总结,并对学生的整个学习过程加以评价,让学生注意自己的思考误区,在这样的学习过程中,培养学生的程序设计思想。另外,安排课后的上机操作作业,可以使学生对知识有进一步的巩固。
4.在教学中引入多媒体和网络化教学手段
随着互联网的飞速发展,微信、微博等在学生生活中已经成为不可或缺的部分。因此,借助这些网络教学平台可以突破传统教学存在的时间和空间的限制;学生可以根据自己的时间安排,自由选择使用网络教学平台进行学习的时间;学生在听网络授课时,如有不懂的地方,可以暂停或者回放,这就提供给学生独立思考以及深入学习的便利。通过网络平台,学生可以随时和教师、同学相互交流,探讨问题,提高了学生的学习兴趣。在发现问题、解决问题的过程中,学生不仅学到了知识,感受到了知识的博大精深,还体会到了学习的快乐。总而言之,在教学中引入多媒体和网络化教学手段势在必行。
三、结语
本文针对Matlab程序设计课程,简要地介绍了该课程的教学现状和存在的问题,提出了一些对该课程的教改对策。教师要注重理论和实践的结合,与时俱进,通过使用微信、微博等教学平台增强学生的学习兴趣、主动性及积极性,提高学生的创新能力和实际操作技能,拓展学生的思维方式,使学生在课堂上学习知识、解决問题。
参考文献:
[1]樊春霞.《MATLAB与仿真》课程教学改革的探讨和思考[J].科学创新导报,2012(26):184.
[2]李龙,方智,罗振国.基于Matlab软件的数值分析实践教学研究[J].教育教学论坛,2014(35):203.
篇5:MATLAB程序总结
1.3
确定一轻型货车的动力性能(货车可装用4挡或5挡变速器,任选
其中的一种进行整车性能计算):
1)绘制汽车驱动力与行驶阻力平衡图。
2)求汽车最高车速,最大爬坡度及克服该坡度时相应的附着率。
3)绘制汽车行驶加速度倒数曲线,用图解积分法求汽车用2档起步加速行驶至70km/h的车速-时间曲线,或者用计算机求汽车用2档起步加速行驶至70km/h的加速时间。
轻型货车的有关数据:
汽油发动机使用外特性的Tq-n曲线的拟合公式为
式中,Tq为发动机转矩(N•m);n为发动机转速(r/min)。
发动机的最低转速nmin=600r/min,最高转速nmax=4000r/min。
装载质量
2000kg
整车整备质量
1800kg
总质量
3880kg
车轮半径
0.367m
传动系机械效率
ηt=0.85
滚动阻力系数
f=0.013
空气阻力系数×迎风面积
CDA=2.77m2
主减速器传动比
i0=5.83
飞轮转动惯量
If=0.218kg•m2
二前轮转动惯量
Iw1=1.798kg•m2
四后轮转动惯量
Iw2=3.598kg•m2
变速器传动比
ig(数据如下表)
Ⅰ档
Ⅱ档
Ⅲ档
Ⅳ档
Ⅴ档
四档变速器
6.09
3.09
1.71
1.00
五档变速器
5.56
2.769
1.644
1.00
0.793
轴距
L=3.2m
质心至前轴距离(满载)
a=1.974m
质心高(满载)
hg=0.9m
解:Matlab程序:
(1)
求汽车驱动力与行驶阻力平衡图和汽车最高车速程序:
n=[600:10:4000];
Tq=-19.313+295.27*(n/1000)-165.44*(n/1000).^2+40.874*(n/1000).^3-3.8445*(n/1000).^4;
m=3880;g=9.8;nmin=600;nmax=4000;
G=m*g;
ig=[5.56
2.769
1.644
1.00
0.793];nT=0.85;r=0.367;f=0.013;CDA=2.77;i0=5.83;
L=3.2;a=1.947;hg=0.9;If=0.218;Iw1=1.798;Iw2=3.598;
Ft1=Tq*ig(1)*i0*nT/r;
Ft2=Tq*ig(2)*i0*nT/r;
Ft3=Tq*ig(3)*i0*nT/r;
Ft4=Tq*ig(4)*i0*nT/r;
Ft5=Tq*ig(5)*i0*nT/r;
ua1=0.377*r*n/ig(1)/i0;
ua2=0.377*r*n/ig(2)/i0;
ua3=0.377*r*n/ig(3)/i0;
ua4=0.377*r*n/ig(4)/i0;
ua5=0.377*r*n/ig(5)/i0;
ua=[0:5:120];
Ff=G*f;
Fw=CDA*ua.^2/21.15;
Fz=Ff+Fw;
plot(ua1,Ft1,ua2,Ft2,ua3,Ft3,ua4,Ft4,ua5,Ft5,ua,Fz);
title('驱动力-行驶阻力平衡图');
xlabel('ua(km/s)');
ylabel('Ft(N)');
gtext('Ft1'),gtext('Ft2'),gtext('Ft3'),gtext('Ft4'),gtext('Ft5'),gtext('Ff+Fw');
zoom
on;
[x,y]=ginput(1);
zoom
off;
disp('汽车最高车速=');disp(x);disp('km/h');
汽车最高车速=
99.3006
km/h
(2)求汽车最大爬坡度程序:
n=[600:10:4000];
Tq=-19.313+295.27*(n/1000)-165.44*(n/1000).^2+40.874*(n/1000).^3-3.8445*(n/1000).^4;
m=3880;g=9.8;nmin=600;nmax=4000;
G=m*g;
ig=[5.56
2.769
1.644
1.00
0.793];nT=0.85;r=0.367;f=0.013;CDA=2.77;i0=5.83;
L=3.2;a=1.947;hg=0.9;If=0.218;Iw1=1.798;Iw2=3.598;
Ft1=Tq*ig(1)*i0*nT/r;
ua1=0.377*r*n/ig(1)/i0;
Ff=G*f;
Fw1=CDA*ua1.^2/21.15;
Fz1=Ff+Fw1;
Fi1=Ft1-Fz1;
Zoom
on;
imax=100*tan(asin(max(Fi1/G)));
disp('汽车最大爬坡度=');
disp(imax);
disp('%');
汽车最大爬坡度=
35.2197%
(3)求最大爬坡度相应的附着率和求汽车行驶加速度倒数曲线程序:
clear
n=[600:10:4000];
Tq=-19.313+295.27*(n/1000)-165.44*(n/1000).^2+40.874*(n/1000).^3-3.8445*(n/1000).^4;
m=3880;g=9.8;nmin=600;nmax=4000;
G=m*g;
ig=[5.56
2.769
1.644
1.00
0.793];nT=0.85;r=0.367;f=0.013;CDA=2.77;i0=5.83;
L=3.2;a=1.947;hg=0.9;If=0.218;Iw1=1.798;Iw2=3.598;
Ft1=Tq*ig(1)*i0*nT/r;
Ft2=Tq*ig(2)*i0*nT/r;
Ft3=Tq*ig(3)*i0*nT/r;
Ft4=Tq*ig(4)*i0*nT/r;
Ft5=Tq*ig(5)*i0*nT/r;
ua1=0.377*r*n/ig(1)/i0;
ua2=0.377*r*n/ig(2)/i0;
ua3=0.377*r*n/ig(3)/i0;
ua4=0.377*r*n/ig(4)/i0;
ua5=0.377*r*n/ig(5)/i0;
Fw1=CDA*ua1.^2/21.15;
Fw2=CDA*ua2.^2/21.15;
Fw3=CDA*ua3.^2/21.15;
Fw4=CDA*ua4.^2/21.15;
Fw5=CDA*ua5.^2/21.15;
Ff=G*f;
deta1=1+(Iw1+Iw2)/(m*r^2)+(If*ig(1)^2*i0^2*nT)/(m*r^2);
deta2=1+(Iw1+Iw2)/(m*r^2)+(If*ig(2)^2*i0^2*nT)/(m*r^2);
deta3=1+(Iw1+Iw2)/(m*r^2)+(If*ig(3)^2*i0^2*nT)/(m*r^2);
deta4=1+(Iw1+Iw2)/(m*r^2)+(If*ig(4)^2*i0^2*nT)/(m*r^2);
deta5=1+(Iw1+Iw2)/(m*r^2)+(If*ig(5)^2*i0^2*nT)/(m*r^2);
a1=(Ft1-Ff-Fw1)/(deta1*m);ad1=1./a1;
a2=(Ft2-Ff-Fw2)/(deta2*m);ad2=1./a2;
a3=(Ft3-Ff-Fw3)/(deta3*m);ad3=1./a3;
a4=(Ft4-Ff-Fw4)/(deta4*m);ad4=1./a4;
a5=(Ft5-Ff-Fw5)/(deta5*m);ad5=1./a5;
plot(ua1,ad1,ua2,ad2,ua3,ad3,ua4,ad4,ua5,ad5);
axis([0
0
10]);
title('汽车的加速度倒数曲线');
xlabel('ua(km/h)');
ylabel('1/a');
gtext('1/a1');gtext('1/a2');gtext('1/a3');gtext('1/a4');gtext('1/a5');
a=max(a1);
af=asin(max(Ft1-Ff-Fw1)/G);
C=tan(af)/(a/L+hg*tan(af)/L);
disp('假设后轮驱动,最大爬坡度相应的附着率=');
disp(C);
假设后轮驱动,最大爬坡度相应的附着率=
0.4219
(4)
>>clear
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;
G=m*g;
ig=[5.56
2.769
1.644
1.00
0.793];
nmin=600;nmax=4000;
u1=0.377*r*nmin./ig/i0;
u2=0.377*r*nmax./ig/i0;
deta=0*ig;
for
i=1:5
deta(i)=1+(Iw1+Iw2)/(m*r^2)+(If*(ig(i))^2*i0^2*nT)/(m*r^2);
end
ua=[6:0.01:99];N=length(ua);n=0;Tq=0;Ft=0;inv_a=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)/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;
inv_a(i)=(deta(2)*m)/(Ft-Ff-Fw(i));
delta(i)=0.01*inv_a(i)/3.6;
elseif
ua(i)<=u2(3)
n=ua(i)*(ig(3)*i0/r)/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(3)*i0*nT/r;
inv_a(i)=(deta(3)*m)/(Ft-Ff-Fw(i));
delta(i)=0.01*inv_a(i)/3.6;
elseif
ua(i)<=u2(4)
n=ua(i)*(ig(4)*i0/r)/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(4)*i0*nT/r;
inv_a(i)=(deta(4)*m)/(Ft-Ff-Fw(i));
delta(i)=0.01*inv_a(i)/3.6;
else
n=ua(i)*(ig(5)*i0/r)/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(5)*i0*nT/r;
inv_a(i)=(deta(5)*m)/(Ft-Ff-Fw(i));
delta(i)=0.01*inv_a(i)/3.6;
end
a=delta(1:k);
t(i)=sum(a);
end
plot(t,ua);
axis([0
0
100]);
title('汽车2档原地起步换挡加速时间曲线');
xlabel('时间t(s)');
ylabel('速度ua(km/h)');
>>
ginput
ans
=
25.8223
70.0737
25.7467
70.0737
所以汽车2档原地起步换挡加速行驶至70km/h的加速时间约为25.8s
2.7已知货车装用汽油发动机的负荷特性与万有特性。负荷特性曲线的拟合公式为:
其中,b为燃油消耗率[g/(kW•h)];Pe为发动机净功率(kW);拟合式中的系数随转速n变化。怠速油耗(怠速转速400r/min)。
计算与绘制题1.3中货车的1)汽车功率平衡图。
2)最高档与次高档的等速百公里油耗曲线。或利用计算机求货车按JB3352-83规定的六工况循环行驶的百公里油耗。计算中确定燃油消耗值b时,若发动机转速与负荷特性中给定的转速不相等,可由相邻转速的两根曲线用插值法求得。
解:Matlab程序:
(1)
汽车功率平衡图程序:
clear
n=[600:10:4000];
Tq=-19.313+295.27*(n/1000)-165.44*(n/1000).^2+40.874*(n/1000).^3-3.8445*(n/1000).^4;
m=3880;g=9.8;
G=m*g;
ig=[5.56
2.769
1.644
1.00
0.793];
nT=0.85;r=0.367;f=0.013;CDA=2.77;i0=5.83;
L=3.2;a=1.947;hg=0.9;If=0.218;Iw1=1.798;Iw2=3.598;
ua1=0.377*r*n/ig(1)/i0;
ua2=0.377*r*n/ig(2)/i0;
ua3=0.377*r*n/ig(3)/i0;
ua4=0.377*r*n/ig(4)/i0;
ua5=0.377*r*n/ig(5)/i0;
Pe1=Tq.*ig(1)*i0.*ua1./(3600*r);
Pe2=Tq.*ig(2)*i0.*ua2./(3600*r);
Pe3=Tq.*ig(3)*i0.*ua3./(3600*r);
Pe4=Tq.*ig(4)*i0.*ua4./(3600*r);
Pe5=Tq.*ig(5)*i0.*ua5./(3600*r);
ua=[0:0.35:119];
Ff=G*f;
Fw=CDA*ua.^2/21.15;
Pf=Ff*ua/3600;
Pw=Fw.*ua/3600;
Pe0=(Pf+Pw)./nT;
Pe=max(Pe1);
plot(ua1,Pe1,ua2,Pe2,ua3,Pe3,ua4,Pe4,ua5,Pe5,ua,Pe0,ua,Pe);
axis([0
119
0
100]);
title('汽车功率平衡图');
xlabel('ua(km/h)');
ylabel('Pe(kw)');
gtext('1'),gtext('2'),gtext('3'),gtext('4'),gtext('5'),gtext('(Pf+Pw)/et'),gtext('Pe');
(2)最高档与次高档的等速百公里油耗曲线程序:
clear
n=600:1:4000;
m=3880;g=9.8;
G=m*g;
ig=[5.56
2.769
1.644
1.00
0.793];
nT=0.85;r=0.367;f=0.013;CDA=2.77;i0=5.83;
L=3.2;a=1.947;hg=0.9;If=0.218;Iw1=1.798;Iw2=3.598;
n0=[815
1207
1614
2012
2603
3006
3403
3804];
B00=[1326.8
1354.7
1284.4
1122.9
1141.0
1051.2
1233.9
1129.7];
B10=[-416.46
-303.98
-189.75
-121.59
-98.893
-73.714
-84.478
-45.291];
B20=[72.379
36.657
14.524
7.0035
4.4763
2.8593
2.9788
0.71113];
B30=[-5.8629
-2.0553
-0.51184
-0.18517
-0.091077
-0.05138
-0.047449
-0.00075215];
B40=[0.17768
0.043072
0.0068164
0.0018555
0.00068906
0.00035032
0.00028230
-0.000038568];
B0=spline(n0,B00,n);
B1=spline(n0,B10,n);
B2=spline(n0,B20,n);
B3=spline(n0,B30,n);
B4=spline(n0,B40,n);
Ff=G*f;
ua4=0.377*r*n/ig(4)/i0;
ua5=0.377*r*n/ig(5)/i0;
Fz4=Ff+CDA*(ua4.^2)/21.15;
Fz5=Ff+CDA*(ua5.^2)/21.15;
Pe4=Fz4.*ua4./(nT*3.6*1000);
Pe5=Fz5.*ua5./(nT*3.6*1000);
for
i=1:1:3401
b4(i)=B0(i)+B1(i)*Pe4(i)+B2(i)*Pe4(i).^2+B3(i)*Pe4(i).^3+B4(i)*Pe4(i).^4;
b5(i)=B0(i)+B1(i)*Pe5(i)+B2(i)*Pe5(i).^2+B3(i)*Pe5(i).^3+B4(i)*Pe5(i).^4;
end
pg=7.0;
Q4=Pe4.*b4./(1.02.*ua4.*pg);
Q5=Pe5.*b5./(1.02.*ua5.*pg);
plot(ua4,Q4,ua5,Q5);
axis([0
30]);
title('最高档与次高档等速百公里油耗曲线');
xlabel('ua(km/h)');
ylabel('百公里油耗(L/100km)');
gtext('4'),gtext('5');
3.1改变1.3题中轻型货车的主减速器传动比,做出为5.17、5.43、5.83、6.17、6.33时的燃油经济性—加速时间曲线,讨论不同值对汽车性能的影响。
解:Matlab程序:
主程序:
i0=[5.17,5.43,5.83,6.17,6.33];
%输入主传动比的数据
for
i=1:1:5
y(i)=jiasushijian(i0(i));
%求加速时间
end
y;
for
i=1:1:5
b(i)=youhao(i0(i));
%求对应i0的六工况百公里油耗
end
b;
plot(b,y,'+r')
hold
on
b1=linspace(b(1),b(5),100);
y1=spline(b,y,b1);
%三次样条插值
plot(b1,y1);
%绘制燃油经济性-加速时间曲线
title('燃油经济性—加速时间曲线');
xlabel('百公里油耗(L/100km)');
ylabel('加速时间s');
gtext('i0=5.17'),gtext('i0=5.43'),gtext('i0=5.83'),gtext('i0=6.17'),gtext('i0=6.33');
子程序:
(1)
function
y=jiasushijian(i0)
%求加速时间的处理函数
n1=linspace(0,5000);
%先求各个档位的驱动力
nmax=4000;nmin=600;r=0.367;yita=0.85;CDA=2.77;f=0.013;G=(3880)*9.8;ig=[6.09,3.09,1.71,1.00];%i0=5.83
for
i=1:1:4
%i为档数
uamax(i)=chesu(nmax,r,ig(i),i0);
%计算各个档位的最大速度与最小速度
uamin(i)=chesu(nmin,r,ig(i),i0);
ua(i,:)=linspace(uamin(i),uamax(i),100);
n(i,:)=zhuansu(ua(i,:),r,ig(i),i0);
%计算各个档位的转速范围
Ttq(i,:)=zhuanju(n(i,:));
%求出各档位的转矩范围
Ft(i,:)=qudongli(Ttq(i,:),ig(i),i0,yita,r);
%求出驱动力
F(i,:)=f*G+CDA*(ua(i,:).^2)/21.15;
%求出滚动阻力和空气阻力的和
delta(i,:)=1+(1.798+3.598+0.218*(ig(i)^2)*(i0^2)*yita)/(3880*r^2);
%求转动质量换算系数
a(i,:)=1./(delta(i,:).*3880./(Ft(i,:)-F(i,:)));
%求出加速度
F2(i,:)=Ft(i,:)-F(i,:);
end
%下面分各个档位进行积分,求出加速时间
temp1(1,:)=ua(2,:)/3.6;
temp1(2,:)=1./a(2,:);
n1=1;
for
j1=1:1:100
if
ua(3,j1)>max(ua(2,:))&&ua(3,j1)<=70
temp2(1,n1)=ua(3,j1)/3.6;
temp2(2,n1)=1./a(3,j1);
n1=n1+1;
end
end
n2=1;
for
j1=1:1:100
if
ua(4,j1)>max(ua(3,:))&&ua(4,j1)<=70;
temp3(1,n2)=ua(4,j1)/3.6;
temp3(2,n2)=1./a(4,j1);
n2=n2+1;
end
end
y=temp1(1,1)*temp1(2,1)+qiuji(temp1(1,:),temp1(2,:))+qiuji(temp2(1,:),temp2(2,:))+qiuji(temp3(1,:),temp3(2,:));
end
(2)
function
ua=chesu(n,r,ig,i0);
%由转速计算车速
ua=0.377*r.*n/(ig*i0);
(3)
function
n=zhuansu(ua,r,ig,i0);
%求转速
n=ig*i0.*ua./(0.377*r);
end
(4)
function
y=zhuanju(n);
%求转矩函数
y=-19.313+295.27.*(n./1000)-165.44.*(n./1000).^2+40.874.*(n./1000).^3-3.8445.*(n./1000).^4;
(5)
function
y=qudongli(Ttq,ig,i0,yita,r);
%求驱动力函数
y=(ig*i0*yita.*Ttq)/r;
end
(6)
function
p=qiuji(x0,y0)
%求积分函数
n0=size(x0);
n=n0(2);
x=linspace(x0(1),x0(n),200)
;
y=spline(x0,y0,x);
%插值
%
figure;plot(x,y);
p=trapz(x,y)
;
end
(7)
%求不同i0下的六工况油耗
function
b=youhao(i0);
global
f
G
CDA
yita
m
r
If
Iw1
Iw2
pg
B0
B1
B2
B3
B4
n
%声明全局变量
ig=[6.09,3.09,1.71,1.00];r=0.367;
yita=0.85;CDA=2.77;f=0.013;%i0=5.83;
G=(3880)*9.8;If=0.218;Iw1=1.798;Iw2=3.598;m=3880;
%汽车的基本参数设定
n0=[815
1207
1614
2012
2603
3006
3403
3804];
B00=[1326.8
1354.7
1284.4
1122.9
1141.0
1051.2
1233.9
1129.7];
B10=[-416.46
-303.98
-189.75
-121.59
-98.893
-73.714
-84.478
-45.291];
B20=[72.379
36.657
14.524
7.0035
4.4763
2.8593
2.9788
0.71113];
B30=[-5.8629
-2.0553
-0.51184
-0.18517
-0.091077
-0.05138
-0.047449
-0.00075215];
B40=[0.17768
0.043072
0.0068164
0.0018555
0.00068906
0.00035032
0.00028230
-0.000038568];
n=600:1:4000;
B0=spline(n0,B00,n);
B1=spline(n0,B10,n);
B2=spline(n0,B20,n);
%使用三次样条插值,保证曲线的光滑连续
B3=spline(n0,B30,n);
B4=spline(n0,B40,n);
ua4=0.377*r.*n./(i0*ig(4));
%求出发动机转速范围内对应的III、IV档车速
F4=f*G+CDA*(ua4.^2)/21.15;
%求出滚动阻力和空气阻力的和
P_fw4=F4.*ua4./(yita*3.6*1000);
%求出阻力功率
for
i=1:1:3401
%用拟合公式求出各个燃油消耗率
b4(i)=B0(i)+B1(i)*P_fw4(i)+B2(i)*(P_fw4(i))^2+B3(i)*(P_fw4(i))^3+B4(i)*(P_fw4(i))^4;
end
pg=7.06;
%汽油的重度取7.06N/L
ua4_m=[25,40,50];
%匀速阶段的车速
s_m=[50,250,250];
%每段匀速走过的距离
b4_m=spline(ua4,b4,ua4_m);
%插值得出对应速度的燃油消耗率
F4_m=f*G+CDA*(ua4_m.^2)/21.15;
%车速对应的阻力
P_fw4_m=F4_m.*ua4_m./(yita*3.6*1000);
%发动机功率
Q4_m=P_fw4_m.*b4_m.*s_m./(102.*ua4_m.*pg)
;
Q4_a1=jiasu(40,25,ig(4),0.25,ua4,i0);
Q4_a2=jiasu(50,40,ig(4),0.2,ua4,i0);
Qid=0.299;tid=19.3;s=1075;
Q_i=Qid*tid;
%求出减速阶段的燃油消耗量
Q4all=(sum(Q4_m)+Q4_a1+Q4_a2+Q_i)*100/s;
%IV档六工况百公里燃油消耗量
b=Q4all;
(8)加速阶段处理函数
function
q=jiasu(umax,umin,ig,a,ua0,i0);
global
f
G
CDA
yita
m
r
If
Iw1
Iw2
pg
B0
B1
B2
B3
B4
n;
%i0
;
ua1=umin:1:umax;
%把速度范围以1km/h为间隔进行划分
delta=1+(Iw1+Iw2)/(m*r^2)+(If*ig^2*i0^2*yita)/(m*r^2);
P0=(G*f.*ua0./3600+CDA.*ua0.^3/76140+(delta*m.*ua0/3600)*a)/yita;
P=(G*f.*ua1/3600+CDA.*ua1.^3/76140+(delta*m.*ua1/3600)*a)/yita;
dt=1/(3.6*a)
;
%速度每增加1km/h所需要的时间
for
i=1:1:3401
%重新利用拟合公式求出b与ua的关系
b0(i)=B0(i)+B1(i)*P0(i)+B2(i)*(P0(i))^2+B3(i)*(P0(i))^3+B4(i)*(P0(i))^4;
end
b1=interp1(ua0,b0,ua1);
%插值出各个速度节点的燃油消耗率
Qt=P.*b1./(367.1.*pg);
%求出各个速度节点的燃油消耗率
i1=size(Qt);
i=i1(2);
Qt1=Qt(2:i-1);
q=(Qt(1)+Qt(i))*dt./2+sum(Qt1)*dt;
%求该加速阶段的燃油消耗量
4.3一中型货车装有前后制动器分开的双管路制动系,其有关参数如下:
载荷
质量(kg)
质心高hg/m
轴距L/m
质心至前轴距离a/m
制动力分配系数β
空载
4080
0.845
3.950
2.100
0.38
满载
9290
1.170
3.950
2.950
0.38
1)
计算并绘制利用附着系数曲线和制动效率曲线
2)
求行驶车速Ua=30km/h,在=0.80路面上车轮不抱死的制动距离。计算时取制动系反应时间=0.02s,制动减速度上升时间=0.02s。
3)
求制动系前部管路损坏时汽车的制动距离s,制动系后部管路损坏时汽车的制动距离。
解:Matlab程序:
(1)
求利用附着系数曲线和制动效率曲线程序:
clear
k=4080;hgk=0.845;Lk=3.950;ak=2.10;betak=0.38;bk=Lk-ak;%空载时的参数
mm=9290;hgm=1.170;Lm=3.950;am=2.950;betam=0.38;bm=Lm-am;%满载时的参数
z=0:0.01:1.0;
figure(1);
fai=z;
fai_fk=betak*z*Lk./(bk+z*hgk);%空载时前轴的φf
fai_fm=betam*z*Lm./(bm+z*hgm);%满载时前轴的φf
fai_rk=(1-betak)*z*Lk./(ak-z*hgk);%空载时后轴的φr
fai_rm=(1-betam)*z*Lm./(am-z*hgm);%满载时后轴的φr
plot(z,fai_fk,'b--',z,fai_fm,'r',z,fai_rk,'b--',z,fai_rm,'r',z,fai,'k');
title('利用附着系数与制动强度的关系曲线');
xlabel('制动强度(z/g)');
ylabel('利用附着系数φ');
gtext('φr(空载)'),gtext('φr(满载)'),gtext('φ=z'),gtext('φf(空载)'),gtext('φf(满载)');
figure(2);
Efk=z./fai_fk*100;%空载时前轴的制动效率
Efm=z./fai_fm*100;
Erk=z./fai_rk*100;
Erm=z./fai_rm*100;
plot(fai_fk,Efk,'b',fai_fm,Efm,'r',fai_rk,Erk,'b',fai_rm,Erm,'r');
axis([0
0
100]);
title('前.后制动效率曲线');
xlabel('附着系数φ');
ylabel('制动效率%');
gtext('Ef'),gtext('Er'),gtext('Er'),gtext('满载'),gtext('空载');
(2)
问和(3)问程序:
clear
mk=4080;hgk=0.845;Lk=3.950;ak=2.10;betak=0.38;bk=Lk-ak;%空载时的参数
mm=9290;hgm=1.170;Lm=3.950;am=2.950;betam=0.38;bm=Lm-am;%满载时的参数
z=0:0.01:1;
fai_fk=betak*z*Lk./(bk+z*hgk);%空载时前轴的φf
fai_fm=betam*z*Lm./(bm+z*hgm);%满载时前轴的φf
fai_rk=(1-betak)*z*Lk./(ak-z*hgk);%空载时后轴的φr
fai_rm=(1-betam)*z*Lm./(am-z*hgm);%满载时后轴的φr
Efk=z./fai_fk*100;%空载时前轴的制动效率
Efm=z./fai_fm*100;
Erk=z./fai_rk*100;
Erm=z./fai_rm*100;
t1=0.02;t2=0.02;ua0=30;fai=0.80;g=9.8;
ak1=Erk(81)*g*fai/100;
am1=Erm(81)*g*fai/100;
Sk1=(t1+t2/2)*ua0/3.6+ua0^2/(25.92*ak1);%制动距离
Sm1=(t1+t2/2)*ua0/3.6+ua0^2/(25.92*am1);
disp('空载时,汽车制动距离Sk1=');
disp(Sk1);
disp('满载时,汽车制动距离Sm1=');
disp(Sm1);
ak2=fai*g*ak/(Lk+fai*hgk);
am2=fai*g*am/(Lm+fai*hgm);
ak3=fai*g*bk/(Lk-fai*hgk);
am3=fai*g*bm/(Lk-fai*hgm);
Sk2=(t1+t2/2)*ua0/3.6+ua0^2/(25.92*ak2);%制动距离
Sm2=(t1+t2/2)*ua0/3.6+ua0^2/(25.92*am2);
Sk3=(t1+t2/2)*ua0/3.6+ua0^2/(25.92*ak3);
Sm3=(t1+t2/2)*ua0/3.6+ua0^2/(25.92*am3);
disp('空载时,前制动器损坏,汽车制动距离Sk2=');
disp(Sk2);
disp('满载时,前制动器损坏,汽车制动距离Sm2=');
disp(Sm2);
disp('空载时,后制动器损坏,汽车制动距离Sk3=');
disp(Sk3);
disp('满载时,后制动器损坏,汽车制动距离Sm3=');
disp(Sm3);
空载时,汽车制动距离Sk1=
7.8668
满载时,汽车制动距离Sm1=
5.6354
空载时,前制动器损坏,汽车制动距离Sk2=
10.0061
满载时,前制动器损坏,汽车制动距离Sm2=
7.5854
空载时,后制动器损坏,汽车制动距离Sk3=
8.0879
满载时,后制动器损坏,汽车制动距离Sm3=
13.5986
5.11二自由度轿车模型的有关参数如下:
总质量
m=1818.2kg
绕Oz轴转动惯量
轴距
L=3.048m
质心至前轴距离
a=1.463m
质心至后轴距离
b=1.585m
前轮总侧偏刚度
k1=-62618N/rad
后轮总侧偏刚度
k2=-110185N/rad
转向系总传动比
i=20
试求:
1)
稳定性因数K、特征车速uch。
2)
稳态横摆角速度增益曲线、车速u=22.35m/s时的转向灵敏度。
3)
静态储备系数S.M.,侧向加速度为0.4g时的前、后轮侧偏角绝对值之差与转弯半径的比值R/R0(R0=15m)。
4)
车速u=30.56m/s时,瞬态响应的横摆角速度波动的固有(圆)频率、阻尼比、反应时间与峰值反应时间
解:Matlab程序:
m=1818.2;Iz=3885;L=3.048;a=1.463;b=1.585;k1=-62618;k2=-110185;
i=20;g=9.8;R0=15;u1=30.56;
K=m*(a/k2-b/k1)/L^2;
Uch=(1/K)^(1/2);%特征车速
disp('稳定性因数(s^2/m^2)K=');
disp(K);
disp('特征车速(m/s)Uch=');
disp(Uch);
u=0:0.05:30;
S=u./(L*(1+K*u.^2));%稳态横摆角速度增益
plot(u,S);
title('汽车稳态横摆角速度增益曲线');
xlabel('车速u(m/s)');
ylabel('稳态横摆角速度增益');
disp('u=22.35m/s时,转向灵敏度为');
disp(S(448));
SM=k2/(k1+k2)-a/L;
ay=0.4*g;
A=K*ay*L;
B=L/R0;
R=L/(B-A);
C=R/R0;%转弯半径比
disp('静态储备系数S.M.=');
disp(SM);
disp('侧向加速度为0.4g时前、后轮侧偏角绝对值之差(rad)
a1-a2=');
disp(A);
disp('侧向加速度为0.4g时转弯半径比值R/R0=');
disp(C);
W0=L/u1*(k1*k2/(m*Iz)*(1+K*u1^2))^(1/2);%固有(圆)频率
D=(-m*(k1*a^2+k2*b^2)-Iz*(k1+k2))/(2*L*(m*Iz*k1*k2*(1+K*u1^2))^(1/2));%阻尼比
t=atan((1-D^2)^(1/2)/(-m*u1*a*W0/(L*k2)-D))/(W0*(1-D^2)^(1/2));%反应时间
E=atan((1-D^2)^(1/2)/D)/(W0*(1-D^2)^(1/2))+t;%峰值反应时间
disp('车速u=30.56m/s时的瞬态响应参数分别为:');
disp('横摆角速度波动的固有(圆)频率(rad)为
');
disp(W0);
disp('阻尼比为');
disp(D);
disp('反应时间(s)为');
disp(t);
disp('峰值反应时间(s)为');
disp(E);
稳定性因数(s^2/m^2)K=
0.0024
特征车速(m/s)Uch=
20.6053
u=22.35m/s时,转向灵敏度为
3.3690
静态储备系数S.M.=
0.1576
侧向加速度为0.4g时前、后轮侧偏角绝对值之差(rad)
a1-a2=
0.0281
侧向加速度为0.4g时转弯半径比值R/R0=
1.1608
车速u=30.56m/s时的瞬态响应参数分别为:
横摆角速度波动的固有(圆)频率(rad)为
5.5758
阻尼比为
0.5892
反应时间(s)为
0.1811
峰值反应时间(s)为
0.3899
6.5车身-车轮双质量系统参数:。
“人体-座椅”系统参数:。车速,路面不平度系数,参考空间频率n0=0.1m-1。
计算时频率步长,计算频率点数。
1)
计算并画出幅频特性、、和均方根值谱、、谱图。进一步计算值
2)
改变“人体-座椅”系统参数:。分析值随的变化。
3)
分别改变车身-车轮双质量系统参数:。绘制三个响应量均方根值随以上四个系统参数变化的曲线。
解:Matlab程序
(1)问
yps=0.25;%阻尼比ζ
gama=9;%刚度比γ
mu=10;%质量比μ
fs=3;ypss=0.25;g=9.8;a0=10^(-6);f0=1.5;
ua=20;Gqn0=2.56*10^(-8);n0=0.1;detaf=0.2;N=180;
f=detaf*[0:N];lamta=f/f0;lamtas=f/fs;Wf=0*f;
deta=((1-lamta.^2).*(1+gama-1/mu*lamta.^2)-1).^2+4*yps^2*lamta.^2.*(gama-(1/mu+1)*lamta.^2).^2;
z1_q=gama*sqrt(((1-lamta.^2).^2+4*yps^2*lamta.^2)./deta);
z2_z1=sqrt((1+4*yps^2*lamta.^2)./((1-lamta.^2).^2+4*yps^2*lamta.^2));
p_z2=sqrt((1+(2*ypss*lamtas).^2)./((1-lamtas.^2).^2+(2*ypss*lamtas).^2));
z2_q=gama*sqrt((1+4*yps^2*lamta.^2)./deta);
p_q=p_z2.*z2_q;
jfg_Gqddf=4*pi^2*sqrt(Gqn0*n0^2*ua)*f;
jfg_Gzdd1f=z1_q.*jfg_Gqddf;
jfg_Gzdd2f=z2_q.*jfg_Gqddf;
jfg_Gaf=p_q.*jfg_Gqddf;
sigmaqdd=sqrt(trapz(f,jfg_Gqddf.^2));%路面不平度加速度均方根值
sigmazdd1=sqrt(trapz(f,jfg_Gzdd1f.^2));%车轮加速度均方根值
sigmazdd2=sqrt(trapz(f,jfg_Gzdd2f.^2));%车身加速度均方根值
sigmaa=sqrt(trapz(f,jfg_Gaf.^2));%人体加速度均方根值
for
i=1:(N+1)
if
f(i)<=2
Wf(i)=0.5;
elseif
f(i)<=4
Wf(i)=f(i)/4;
elseif
f(i)<=12.5
Wf(i)=1;
else
Wf(i)=12.5/f(i);
end
end
kk=Wf.^2.*jfg_Gaf.^2;
aw=sqrt(trapz(f,kk));%加权加速度均方根值
Law=20*log10(aw/a0);%加权振级
disp('路面不平度加速度均方根值为');disp(sigmaqdd);
disp('车轮加速度均方根值为');disp(sigmazdd1);
disp('车身加速度均方根值为');disp(sigmazdd2);
disp('人体加速度均方根值为');disp(sigmaa);
disp('加权加速度均方根值为');disp(aw);
disp('加权振级');disp(Law);
figure(1)
plot(f,z1_q),title('幅频特性|z1/q|,(f=1.5Hz,ζ=0.25,γ=9,μ=10)'),xlabel('激振频率f/Hz'),ylabel('|z1/q|');
figure(2)
plot(f,z2_z1),title('幅频特性|z2/z1|,(f=1.5Hz,ζ=0.25,γ=9,μ=10)'),xlabel('激振频率f/Hz'),ylabel('|z2/z1|');
figure(3)
plot(f,p_z2),title('幅频特性|p/z2|,(fs=1.5Hz,ζs=0.25)'),xlabel('激振频率f/Hz'),ylabel('|p/z2|');
figure(4)
plot(f,jfg_Gzdd1f),title('车轮加速度均方根值√Gz1(f)谱图'),xlabel('激振频率f/Hz'),ylabel('√Gz1(f)');
figure(5)
plot(f,jfg_Gzdd2f),title('车身加速度均方根值√Gz2(f)谱图'),xlabel('激振频率f/Hz'),ylabel('√Gz2(f)');
figure(6)
plot(f,jfg_Gaf),title('人体加速度均方根值√Ga(f)谱图'),xlabel('激振频率f/Hz'),ylabel('√Ga(f)');
路面不平度加速度均方根值为
0.3523
车轮加速度均方根值为
0.2391
车身加速度均方根值为
0.0168
人体加速度均方根值为
0.0161
加权加速度均方根值为
0.0100
加权振级
80.0291
(2)问
程序1:
clear
gama=9;%刚度比γ
mu=10;%质量比μ
f0=1.5;g=9.8;a0=10^(-6);ua=20;
Gqn0=2.56*10^(-8);n0=0.1;detaf=0.2;N=180;
f=detaf*[0:N];lamta=f/f0;Wf=0*f;
for
i=1:(N+1)
if
f(i)<=2
Wf(i)=0.5;
elseif
f(i)<=4
Wf(i)=f(i)/4;
elseif
f(i)<=12.5
Wf(i)=1;
else
Wf(i)=12.5/f(i);
end
end
fs=3;ypss=0.25;
ypss0=[0.125:0.005:0.5];a=0*ypss0;La=0*ypss0;
M=length(ypss0);
for
i=1:M
yps=ypss0(i);
lamtas=f/fs;
deta=((1-lamta.^2).*(1+gama-1/mu*lamta.^2)-1).^2+4*yps^2*lamta.^2.*(gama-(1/mu+1)*lamta.^2).^2;
p_z2=sqrt((1+(2*ypss*lamtas).^2)./((1-lamtas.^2).^2+(2*ypss*lamtas).^2));
z2_q=gama*sqrt((1+4*yps^2*lamta.^2)./deta);
p_q=p_z2.*z2_q;
jfg_Gqddf=4*pi^2*sqrt(Gqn0*n0^2*ua)*f;
jfg_Gaf=p_q.*jfg_Gqddf;
kk=Wf.^2.*jfg_Gaf.^2;
aw(i)=sqrt(trapz(f,kk));
end
Law=20*log10(aw/a0);
figure(1)
plot(ypss0,aw);title('aw随ζs的变化'),xlabel('“人体—座椅”系统的阻尼比ζs'),ylabel('aw/m*s^-2');
figure(2)
plot(ypss0,Law);title('Law随ζs的变化'),xlabel('“人体—座椅”系统的阻尼比ζs'),ylabel('Law/dB');
程序2:
clear
yps=0.25;%阻尼比ζ
gama=9;%刚度比γ
mu=10;%质量比μ
f0=1.5;g=9.8;a0=10^(-6);ua=20;
Gqn0=2.56*10^(-8);n0=0.1;detaf=0.2;N=180;
f=detaf*[0:N];lamta=f/f0;Wf=0*f;
for
i=1:(N+1)
if
f(i)<=2
Wf(i)=0.5;
elseif
f(i)<=4
Wf(i)=f(i)/4;
elseif
f(i)<=12.5
Wf(i)=1;
else
Wf(i)=12.5/f(i);
end
end
ypss=0.25;
fs=[1.5:0.025:6];
M=length(fs);
for
i=1:M
fs0=fs(i);
lamtas=f/fs0;
deta=((1-lamta.^2).*(1+gama-1/mu*lamta.^2)-1).^2+4*yps^2*lamta.^2.*(gama-(1/mu+1)*lamta.^2).^2;
p_z2=sqrt((1+(2*ypss*lamtas).^2)./((1-lamtas.^2).^2+(2*ypss*lamtas).^2));
z2_q=gama*sqrt((1+4*yps^2*lamta.^2)./deta);
p_q=p_z2.*z2_q;
jfg_Gqddf=4*pi^2*sqrt(Gqn0*n0^2*ua)*f;
jfg_Gaf=p_q.*jfg_Gqddf;
kk=Wf.^2.*jfg_Gaf.^2;
aw(i)=sqrt(trapz(f,kk));
end
Law=20*log10(aw/a0);
figure(3)
plot(fs,aw);title('aw随fs的变化'),xlabel('“人体—座椅”系统的固有频率fs'),ylabel('aw/m*s^-2');
figure(4)
plot(fs,Law);title('Law随fs的变化'),xlabel('“人体—座椅”系统的固有频率fs'),ylabel('Law/dB');
(3)问
程序1:
clear
figure(1)
fs=3;yps_s=0.25;g=9.8;
ua=20;Gqn0=2.56*10^(-8);n0=0.1;detaf=0.2;N=180;
f0=1.5;yps=0.25;gama=9;mu=10;
ff0=[0.25:0.05:3];sigmaz2=0*ff0;sigmafd=0*ff0;sigmaFd_G=0*ff0;
M=length(ff0);
for
i=1:M
f0=ff0(i);
f=detaf*[0:N];lamta=f/f0;lamtas=f/fs;
deta=((1-lamta.^2).*(1+gama-1/mu*lamta.^2)-1).^2+4*yps^2*lamta.^2.*(gama-(1/mu+1)*lamta.^2).^2;
z2_qdot=2*pi*f*gama.*sqrt((1+4*yps^2*lamta.^2)./deta);
fd_qdot=gama*lamta.^2./(2*pi*f+eps)./sqrt(deta);
Fd_Gqdot=2*pi*f*gama/g.*sqrt(((lamta.^2/(mu+1)-1).^2+4*yps^2*lamta.^2)./deta);
Gq_dotf=4*pi^2*Gqn0*n0^2*ua;
Gz2f=(z2_qdot).^2*Gq_dotf;
Gfd_qf=(fd_qdot).^2*Gq_dotf;
GFd_Gf=(Fd_Gqdot).^2*Gq_dotf;
sigmaz2(i)=sqrt(trapz(f,Gz2f));
sigmafd(i)=sqrt(trapz(f,Gfd_qf));
sigmaFd_G(i)=sqrt(trapz(f,GFd_Gf));
if
f0==1.5
sgmz2=sigmaz2(i);
sgmfd=sigmafd(i);
sgmFd_G=sigmaFd_G(i);
end
end
sz2=20*log10(sigmaz2/sgmz2);
sfd=20*log10(sigmafd/sgmfd);
sFd_G=20*log10(sigmaFd_G/sgmFd_G);
plot(ff0,sz2,'r-',ff0,sfd,'b-.',ff0,sFd_G,'k--');
axis([0.25
15]);
title('三个响应量均方根值随f0变化的曲线'),xlabel('车身部分固有频率f0/Hz'),ylabel('σz2/dB,σfd/dB,σFd/G/dB');
程序2:
clear
figure(2)
fs=3;yps_s=0.25;g=9.8;
ua=20;Gqn0=2.56*10^(-8);n0=0.1;detaf=0.2;N=180;
f0=1.5;yps=0.25;gama=9;mu=10;
c=(0.5-0.125)/180;
yps0=[0.125:c:0.5];sigmaz2=0*yps0;sigmafd=0*yps0;sigmaFd_G=0*yps0;
M=length(yps0);
for
i=1:M
yps=yps0(i);
f=detaf*[0:N];lamta=f/f0;lamtas=f/fs;
deta=((1-lamta.^2).*(1+gama-1/mu*lamta.^2)-1).^2+4*yps^2*lamta.^2.*(gama-(1/mu+1)*lamta.^2).^2;
z2_qdot=2*pi*f*gama.*sqrt((1+4*yps^2*lamta.^2)./deta);
fd_qdot=gama*lamta.^2./(2*pi*f+eps)./sqrt(deta);
Fd_Gqdot=2*pi*f*gama/g.*sqrt(((lamta.^2/(mu+1)-1).^2+4*yps^2*lamta.^2)./deta);
Gq_dotf=4*pi^2*Gqn0*n0^2*ua;
Gz2f=(z2_qdot).^2*Gq_dotf;
Gfd_qf=(fd_qdot).^2*Gq_dotf;
GFd_Gf=(Fd_Gqdot).^2*Gq_dotf;
sigmaz2(i)=sqrt(trapz(f,Gz2f));
sigmafd(i)=sqrt(trapz(f,Gfd_qf));
sigmaFd_G(i)=sqrt(trapz(f,GFd_Gf));
if
yps==0.25
sgmz2=sigmaz2(i);
sgmfd=sigmafd(i);
sgmFd_G=sigmaFd_G(i);
end
end
sz2=20*log10(sigmaz2/sgmz2);
sfd=20*log10(sigmafd/sgmfd);
sFd_G=20*log10(sigmaFd_G/sgmFd_G);
plot(yps0,sz2,'r-',yps0,sfd,'b-.',yps0,sFd_G,'k--');
axis([0.125
0.5
4]);
title('三个响应量均方根值随ζ变化的曲线'),xlabel('车身部分阻尼比ζ'),ylabel('σz2/dB,σfd/dB,σFd/G/dB');
程序3:
clear
figure(3)
fs=3;yps_s=0.25;g=9.8;
ua=20;Gqn0=2.56*10^(-8);n0=0.1;detaf=0.2;N=180;
f0=1.5;yps=0.25;mu=10;
gama0=[4:0.1:19];sigmaz2=0*gama0;sigmafd=0*gama0;sigmaFd_G=0*gama0;
M=length(gama0);
for
i=1:M
gama=gama0(i);
f=detaf*[0:N];lamta=f/f0;lamtas=f/fs;
deta=((1-lamta.^2).*(1+gama-1/mu*lamta.^2)-1).^2+4*yps^2*lamta.^2.*(gama-(1/mu+1)*lamta.^2).^2;
z2_qdot=2*pi*f*gama.*sqrt((1+4*yps^2*lamta.^2)./deta);
fd_qdot=gama*lamta.^2./(2*pi*f+eps)./sqrt(deta);
Fd_Gqdot=2*pi*f*gama/g.*sqrt(((lamta.^2/(mu+1)-1).^2+4*yps^2*lamta.^2)./deta);
Gq_dotf=4*pi^2*Gqn0*n0^2*ua;
Gz2f=(z2_qdot).^2*Gq_dotf;
Gfd_qf=(fd_qdot).^2*Gq_dotf;
GFd_Gf=(Fd_Gqdot).^2*Gq_dotf;
sigmaz2(i)=sqrt(trapz(f,Gz2f));
sigmafd(i)=sqrt(trapz(f,Gfd_qf));
sigmaFd_G(i)=sqrt(trapz(f,GFd_Gf));
if
gama==9
sgmz2=sigmaz2(i);
sgmfd=sigmafd(i);
sgmFd_G=sigmaFd_G(i);
end
end
sz2=20*log10(sigmaz2/sgmz2);
sfd=20*log10(sigmafd/sgmfd);
sFd_G=20*log10(sigmaFd_G/sgmFd_G);
plot(gama0,sz2,'r-',gama0,sfd,'b-.',gama0,sFd_G,'k--');
axis([4
6]);
title('三个响应量均方根值随γ变化的曲线'),xlabel('悬架与轮胎的刚度比γ'),ylabel('σz2/dB,σfd/dB,σFd/G/dB');
程序4:
clear
figure(4)
fs=3;yps_s=0.25;g=9.8;
ua=20;Gqn0=2.56*10^(-8);n0=0.1;detaf=0.2;N=180;
f0=1.5;yps=0.25;gama=9;
mu0=[5:0.1:20];sigmaz2=0*mu0;sigmafd=0*mu0;sigmaFd_G=0*mu0;
M=length(mu0);
for
i=1:M
mu=mu0(i);
f=detaf*[0:N];lamta=f/f0;lamtas=f/fs;
deta=((1-lamta.^2).*(1+gama-1/mu*lamta.^2)-1).^2+4*yps^2*lamta.^2.*(gama-(1/mu+1)*lamta.^2).^2;
z2_qdot=2*pi*f*gama.*sqrt((1+4*yps^2*lamta.^2)./deta);
fd_qdot=gama*lamta.^2./(2*pi*f+eps)./sqrt(deta);
Fd_Gqdot=2*pi*f*gama/g.*sqrt(((lamta.^2/(mu+1)-1).^2+4*yps^2*lamta.^2)./deta);
Gq_dotf=4*pi^2*Gqn0*n0^2*ua;
Gz2f=(z2_qdot).^2*Gq_dotf;
Gfd_qf=(fd_qdot).^2*Gq_dotf;
GFd_Gf=(Fd_Gqdot).^2*Gq_dotf;
sigmaz2(i)=sqrt(trapz(f,Gz2f));
sigmafd(i)=sqrt(trapz(f,Gfd_qf));
sigmaFd_G(i)=sqrt(trapz(f,GFd_Gf));
if
mu==10
sgmz2=sigmaz2(i);
sgmfd=sigmafd(i);
sgmFd_G=sigmaFd_G(i);
end
end
sz2=20*log10(sigmaz2/sgmz2);
sfd=20*log10(sigmafd/sgmfd);
sFd_G=20*log10(sigmaFd_G/sgmFd_G);
plot(mu0,sz2,'r-',mu0,sfd,'b-.',mu0,sFd_G,'k--');
axis([5
2]);
篇6:MATLAB程序总结
x=inv(A*b x =-6.0000 26.6667 27.3333 5.(1 diag(A;主对角线元素 ans = 1 1 5 9 triu(A;上三角阵 ans = 1-1 2 3 0 1-4 2 0 0 5 2
0 0 0 9 tril(A;下三角阵 ans = 1 0 0 0 5 1 0 0 3 0 5 0 11 15 0 9 rank(A;秩 ans = 4 norm(A;范数 ans = 21.3005 cond(A;条件数 ans = 11.1739 trace(A;迹 ans = 16(2略
【MATLAB程序总结】相关文章:
牛头刨床课程设计matlab程序04-25
matlab学习总结06-05
matlab学习总结总结05-15
matlab建模课程总结04-08
matlab与sql总结05-24
amesim与matlab联合仿真步骤(自己总结)05-07
matlab习题04-23
matlab曲线05-19
matlab论文题目05-02