MATLAB期末作业(MATLAB应用)
matlab期末作业转差频率控制的异步电动机矢量控制系统的matlab仿真

转差频率控制的异步电动机矢量控制系统的matlab仿真一、概要:1。
矢量变换控制技术的诞生和发展奠定了现代交流调速系统高性能化的基础。
交流电动机是个多变量、非线性、强耦合的被控对象,采用参数重构和状态重构的现代控制理论概念可以实现交流电动机定子电流的励磁分量和转矩分量之间的解耦,实现了将交流电动机的控制过程等效为直流电动机的控制过程,使交流调速系统的动态性能得到了显著的改善和提高,从而使交流调速取代直流调速成为可能。
目前对调速性能要求较高的生产工艺已较多地采用了矢量控制型的变频调速装置。
实践证明,采用矢量控制的交流调速系统的优越性高于直流调速系统。
现代交流调速系统由交流电动机、电力电子功率变换器、控制器和检测器四大部分组成。
根据被控对象——交流电动机的种类不同,现代交流调速系统可分为异步电机调速系统和同步电动机调速系统,矢量控制是目前交流电动机的先进控制方式,本文对异步电动机的动态数学模型、转差频率矢量控制的基本原理和概念做了简要介绍,并结合Matlab的Simulink软件包构建了异步电动机转差频率矢量控制调速系统的仿真模型,并进行了试验验证和仿真结果显示,同时对不同参数下的仿真结果进行了对比分析。
该方法简单、控制精度高,能较好地分析交流异步电动机调速系统的各项性能。
2.由于交流异步电动机属于一个高阶、非线性、多变量、强耦合系统。
数学模型比较复杂,将其简化成单变量线性系统进行控制,达不到理想性能。
为了实现高动态性能,提出了矢量控制的方法。
矢量变换控制技术的诞生和发展奠定了现代交流调速系统高性能化的基础。
一般将含有矢量变换的交流电动机控制称之为矢量控制。
交流电动机是个多变量、非线性、强耦合的被控对象,采用参数重构和状态重构的现代控制理论概念可以实现交流电动机定子电流的励磁分量和转矩分量之间的解耦,实现了将交流电动机的控制过程等效为直流电动机的控制过程,使交流调速系统的动态性能得到了显著的改善和提高,从而使交流调速取代直流调速成为可能。
MATLAB期末大作业

MATLAB期末⼤作业学号:姓名:《Matlab/Simulink在数学计算与仿真中的应⽤》⼤作业1.假设地球和⽕星绕太阳运转的半径分别为r和2r,利⽤comet指令动画显⽰从地球到⽕星的转移轨迹(r可以任意取值,要求实时显⽰探测器、太阳、地球和⽕星的位置)。
解函数function comet(varargin)[ax,args,nargs] = axescheck(varargin{:});error(nargchk(1,3,nargs,'struct'));% Parse the rest of the inputsif nargs < 2, x = args{1}; y = x; x = 1:length(y); endif nargs == 2, [x,y] = deal(args{:}); endif nargs < 3, p = 0.10; endif nargs == 3, [x,y,p] = deal(args{:}); endif ~isscalar(p) || ~isreal(p) || p < 0 || p >= 1error('MATLAB:comet:InvalidP', ...'The input ''p'' must be a real scalar between 0 and 1.'); End指令 %particle_motiont = 0:5:16013;r1=6.7e6;%随便给定参数%---------------------------r2=2*r1;g=9.8;R=6.378e6;m=g*R^2;%内轨道v_inner=sqrt(m/r1);w_inner=v_inner/r1;x_inter=r1*cos(w_inner*t);y_inter=r1*sin(w_inner*t);%外轨道v_outer=sqrt(m/r2);w_outer=v_outer/r2;x_outer=r2*cos(w_outer*t);y_outer=r2*sin(w_outer*t);%控制器转移轨道a=(r1+r2)/2;E=-m/(2*a);V_near=sqrt(m*(2/r1-2/(r1+r2)));%转移轨道在近地点的速度V_far=sqrt(m*(2/r2-2/(r1+r2)));%转移轨道在远地点的速度h=r1*V_near;%由于在近地点的速度垂直于位置失量, h是转移轨道的⽐动量矩e=sqrt(1+2*E*h^2/m^2);%e为椭圆轨迹的偏⼼率TOF=pi*sqrt(a^3/m);%转移轨道是椭圆的⼀半及飞⾏时间是周期的⼀半(开普勒第三定律) w=pi/TOF;%椭圆轨迹的⾓速度c=a*e;b=sqrt(a^2-c^2);x_ellipse=a*cos(w*t)-0.5*r1;y_ellipse=b*sin(w*t);%动画显⽰运动轨迹x=[x_inter;x_outer;x_ellipse]';y=[y_inter;y_outer;y_ellipse]';comet(x,y)%---------------------------动态图像如下:2.利⽤两种不同途径求解边值问题dfdxf gdgdxf g f g=+=-+==34430001,,(),()的解.途径⼀:指令syms f g[f,g]=dsolve('Df=3*f+4*g,Dg=-4*f+3*g','f(0)=0,g(0)=1'); disp('f=');disp(f)disp('g=');disp(g)结果(Matlab 7.8版本)f=i/(2*exp(t*(4*i - 3))) - (i*exp(t*(4*i + 3)))/2g=exp(t*(4*i + 3))/2 + 1/(2*exp(t*(4*i - 3)))(Matlab 6.5版本)f=exp(3*t)*sin(4*t)g=exp(3*t)*cos(4*t)>>途径⼆:%problem2function dy=problem2(t,y)dy = zeros(2,1);dy(1) = 3*y(1)+4*y(2);dy(2) = -4*y(1)+3*y(2);[t,y] = ode45('problem2',[0 2],[0 1]);plot(t,y(:,1),'r',t,y(:,2),'b');图23.假设著名的Lorenz 模型的状态⽅程表⽰为-+-=+-=+-=)()()()()()()()()()()()(322133223211t x t x t x t x t x t x t x t x t x t x t x t x σρρβ其中,设28,10,3/8===σρβ。
MATLAB期末大作业模板

MATLAB应用技术期末大作业专业:姓名:学号:分数一、在一个图形窗口中以子图形式同时绘制正弦、余弦、正切、余切曲线。
请写下完整代码,展示图形结果。
(请标注题图和坐标轴,用不同颜色和不同线型分别绘制以上曲线)。
(15分)二、某公司员工的工资计算方法如下。
(1)工作时数超过120小时者,超过部分加发15%。
(2)工作时数低于60小时者,扣发700元。
(3)其余按每小时84元发。
根据员工的工时数,计算应发工资。
请写下完整的程序代码,并任意输入一工时数(使用input 函数),将结果展示(使用disp 函数)利用该代码进行计算工资,请写下计算结果。
(15分)三、编写一个函数文件,使其能够产生如下的分段函数:⎪⎩⎪⎨⎧≥<<≤-=66225.0,25.05.15.0)(x x x x xx f请编写完整的函数文件(保存函数文件名为hanshu.m ),并编写脚本文件代码,任意输入x 值(使用input 函数),在脚本文件中调用函数文件求)(x f ,展示结果(使用disp 函数),请写下计算结果。
(15分)四、将5个学生的6门功课的成绩存入矩阵P 中,进行如下处理:(1)分别求每门课的最高分、最低分及相应学生的序号。
(2)分别求每门课的平均分和标准差。
(3)5门课总分的最高分、最低分及相应学生序号。
(4)将5门课总分按从大到小顺序存入score 中,相应学生序号存入num 。
请将各小题的运行代码完整写下来,并写下运行结果。
(20分)五、请利用所学的MATLAB 知识,自主设计一个图形用户界面,请完整记录它的设计过程,需提供文字、代码和图片,以充分说明设计的图形用户界面可实现的功能。
(35分)。
matlab期末考试题目及答案

matlab期末考试题目及答案1. 题目:编写一个MATLAB函数,实现矩阵的转置操作。
答案:可以使用`transpose`函数或`.'`操作符来实现矩阵的转置。
例如,对于一个矩阵`A`,其转置可以通过`A'`或`transpose(A)`来获得。
2. 题目:使用MATLAB求解线性方程组Ax=b,其中A是一个3x3的矩阵,b是一个3x1的向量。
答案:可以使用MATLAB内置的`\`操作符来求解线性方程组。
例如,如果`A`和`b`已经定义,求解方程组的代码为`x = A\b`。
3. 题目:编写MATLAB代码,计算并绘制函数f(x) = sin(x)在区间[0, 2π]上的图像。
答案:首先定义x的范围,然后计算对应的函数值,并使用`plot`函数绘制图像。
代码示例如下:```matlabx = linspace(0, 2*pi, 100); % 定义x的范围y = sin(x); % 计算函数值plot(x, y); % 绘制图像xlabel('x'); % x轴标签ylabel('sin(x)'); % y轴标签title('Plot of sin(x)'); % 图像标题```4. 题目:使用MATLAB编写一个脚本,实现对一个给定的二维数组进行排序,并输出排序后的结果。
答案:可以使用`sort`函数对数组进行排序。
如果需要对整个数组进行排序,可以使用`sort`函数的两个输出参数来获取排序后的索引和值。
代码示例如下:```matlabA = [3, 1, 4; 1, 5, 9; 2, 6, 5]; % 给定的二维数组[sortedValues, sortedIndices] = sort(A(:)); % 对数组进行排序sortedMatrix = reshape(sortedValues, size(A)); % 将排序后的值重新构造成矩阵disp(sortedMatrix); % 显示排序后的结果```5. 题目:编写MATLAB代码,实现对一个字符串进行加密,加密规则为将每个字符的ASCII码值增加3。
matlab期末考试题及答案

matlab期末考试题及答案MATLAB期末考试题及答案一、选择题(每题2分,共20分)1. MATLAB中用于创建向量的函数是:A. vectorB. arrayC. linspaceD. ones答案:D2. 下列哪个命令可以计算矩阵的行列式?A. detB. diagC. traceD. rank答案:A3. 在MATLAB中,以下哪个选项是用于绘制三维图形的?A. plotB. plot3C. barD. scatter答案:B4. MATLAB中,用于计算向量范数的函数是:A. normB. meanC. medianD. std答案:A5. 下列哪个命令可以用于创建一个二维数组?A. array2dB. matrixC. create2dD. make2d答案:B6. MATLAB中,用于求解线性方程组的函数是:A. solveB. linsolveC. equationD. linprog答案:A7. 以下哪个函数可以用于生成随机数?A. randB. randomC. randnD. randi答案:A8. MATLAB中,用于实现循环结构的关键字是:A. loopB. forC. whileD. repeat答案:B9. 下列哪个命令可以用于绘制函数图形?A. plotB. graphC. drawD. functionplot答案:A10. MATLAB中,用于计算矩阵特征值的函数是:A. eigB. eigenvalueC. characteristicD. eigen答案:A二、简答题(每题5分,共30分)1. 简述MATLAB中矩阵的基本操作有哪些?答案:矩阵的基本操作包括矩阵的创建、矩阵的加法、减法、乘法、转置、求逆、求行列式等。
2. MATLAB中如何实现条件语句?答案:MATLAB中实现条件语句主要使用if-else结构,也可以使用switch-case结构。
3. 请解释MATLAB中的函数定义方式。
长治学院MatLab期末考试考试题及练习题题库(含答案)

一.填空题(每空2分,共24分)1. 设x 是一维数组,x 的倒数第3个元素表示为______x(_end-2_)________________;要在x 的第36和37个元素之间插入一个元素154,使用的命令(集)为_____________x=x(_1:36,[154],37:end)_______________;设y 为二维数组,要删除y 的第34行和48列,可使用命令______y(34,:)=[];y(:,48)=[]_______________________;2. 将变量x 以Ascii 文本格式存储到文件fname.txt ,应使用命令__________save ____x_____________;将Excel 文件data.xls 读入WorkSpace 并赋值给变量x ,可使用命令________________x=xlsread('data.xls')____________________________;3. 在while 表达式, 语句体, End 循环语句中,表达式的值__非零_____________时表示循环条件为真,语句体将被执行,否则跳出该循环语句;4. 打开Matlab 的一个程序文件fname.m ,以添加的方式进行读写,应当使用命令_____fid= fopen('fname.m','w+');_______________________;5.要从键盘读入一个字符串并赋值给变量x ,且给出提示“Who is she?”,应使用命令________x=input(‘Who is she?’,’s ’)_________________________________;使用fprintf()函数以含有2位小数的6位浮点格式输出数值变量weight 到文件wt.txt ,使用的命令(集)为fid = fopen(‘wt.txt ’,’’,_________________); fprintf ( _______ ) ;4.设()ij m n A a ⨯=,()ij m n B b ⨯=和()ij m n C c ⨯=均为m n ⨯矩阵,且存在于WorkSpace 中,要产生矩阵()()/i jci j ij i j m nD a c b ⨯=-,可用命令___D=(A-C)/B.^C_________________________,计算()1A B -'可用命令___________det(inv(A ’*B))_____________________________;8分,共24分) 1. (1) 写出关系运算符中的等号、不等号、小于号、大于号、小于等于号和大于等于号; (2) 写出逻辑操作中逻辑“与”、逻辑“或”及逻辑“非”的符号;(3) 并用语句表达“如果a 等于 b 且c 等于0就让d 等于3,否则如果a 大于b 且c=1让d 等于 0,其余情况让d 等于3”; 解:= = ~= <><= >= & | ~ if a==b&c==0 d=3else if a>b&c= =1 d=0 else d=3 end2. 设1010)(⨯=j i a A 和1010)(⨯=j i b B 是两个10行10列的矩阵(数组),试说明命令A*B, A/B,A\B, A .*(B.^A), A ./B, A .\B 和sin(A).*exp(B)的涵义。
MATLAB期末大作业

1.龟兔赛跑本题旨在可视化龟兔赛跑的过程。
比赛的跑道由周长为P面积为A的矩形构成。
每单位时间,乌龟沿跑道缓慢前进一步,而兔子信心满满,每次以一个固定的概率决定走或不走。
如果选择走,就从2-10步中等概率选择一个步长。
每个单位时间用一个循环表示。
赛跑从矩形跑道左上点(0,0)开始,并沿顺时针方向进行。
不管是乌龟或兔子,谁先到达终点,比赛就告结束。
要求:编写MATLAB程序可视化上述过程。
程序以P,A以及兔子每次休息或前进的概率为输入参量。
程序必须可视化每个时刻龟兔赛跑的进程,并以红色“*”表示乌龟,蓝色的“—”表示兔子。
测试时可取P=460,A=9000。
通过上述例子,可否从理论和实验角度估计兔子休息或前进的概率,是的兔子和乌龟在概率意义下打平手。
2.黄金分割Fibonacci数列F n通过如下递推格式定义F n=F n-1+F n-2,其中F0=F1=1要求:1.计算前51项Fibonacci数,并存入一个向量2.利用上述向量计算比值F n/F n-13.验证该比值收敛到黄金比例(1+5)/23.图像处理此题旨在熟悉图像处理的基本操作,请各位自己选择一张彩色图像pMATLAB以三维数组读取一张彩图。
该彩图上每个像素位置分别存放一个取值0-255的三维向量,其三个分量分别表示该点的红(R)绿(G)蓝(B)强度信息。
要求:编写MATLAB程序,读入原始彩色图像,并且在一个图形窗口界面下显示六张图像。
这六张图分别是原始RGB彩图,及其5各变形:RBG,BRG,BGR,GBR和GRB。
每张子图要求以其对应变形命名。
最后将图像以a.jpg形式保存并黏贴至报告中。
提示:imread, imshow, cat。
(完整word版)Matlab期末复习题(答案)

一、 选择题(有10个题,共20分)1.有一个4×4矩阵A,表示取得矩阵A 的第一行和第二行的第二列至第四列所有元素的命令是( A )(A) A(1:2,2:4) (B) A(2:4,1:2) (C) A(1:2:4) (D) A(4:2:1)2.将一个图形窗口分成3×4个子区并表示第一个子区的命令是( C )A . subplot(12,1)B .subplot(1,12)C .subplot(3,4,1)D .subplot(1,3,4)3.利用Matlab 的符号计算功能计算微分方程初值问题⎪⎩⎪⎨⎧=+-=2)1(42y x x y dx dy 在区间 [1,2]上的解析解时所用到的函数是( D )(A) ode23 (B) ode45 (C) solve (D) dsolve4.以下有关Matlab 子函数的性质中不正确的是( D )(A) 子函数只能被处于同一个文件的主函数或其他子函数调用;(B) 在M 函数文件中,任何指令通过“名字”对函数进行调用时,子函数的优先级仅次于内装函数;(C) 在M 函数文件内,主函数的位置不可改变,但子函数的排列次序可以任意改变;(D) help, lookfor 等帮助指令都能提供关于子函数的任何帮助信息。
5.以下语句中生成按钮控件的语句是( B )(A) h_1=uimenu(gcf,'Label','&Blue');(B) h_1=uicontrol(gcf,'style','push', 'string','grid off','callback','grid off');(C) h_1=uicontrol(gcf,'style','text', 'horizontal','left','string',{'输入'});(D) h_1=axes('unit','normalized','position',[0,0,1,1],'visible','off');6.以下有关Matlab 函数及其句柄的说法中正确的是( A,C )(A) 在该函数的目录下可定义该函数的句柄,句柄定义后,可用feval 函数和句柄在任何目录下调用该函数;(B) 函数不在Matlab 的当前工作目录下不可执行,但可以用feval 函数和句柄调用该函数;(C) 函数不在Matlab 的当前工作目录下时,可以定义函数的句柄;(D) 函数不在Matlab 的当前工作目录下时,不可以定义函数的句柄。
大学专业试题-Matlab期末考试及答案

大学专业试题-Matlab期末考试及答案一、填空题(一题3分,共15分)1、标点符号可以使命令行不显示运算结果。
答案:%2、x为0〜4,步长为0.1pi的向量,使用命令创建。
答案:x=0:0.1*pi:4。
3、输入矩阵A=[1 2 3;7 -5 8;9-1-7],使用全下标方式用A(2,2)取出元素“-5 ”,使用单下标方式用取出元素“-5 ”。
答案:A (5)。
4、在while表达式,语句体,End循环语句中,表达式的值__时表示循环条件为真,体语句将被执行,否则跳出该循环语句。
答案:非零。
5、要从键盘读入一个字符串并赋值给变量x,且给出提示“Hello",应使用命令—答案:x=input(‘Hello,;s')b二、选择题(一题3分,共15分)1、下列表示可以作为MATLAB的变量的是(D )A. abcd-2B. xyz_2#C. @hD. X_1_a2、如果x=1: 2 : 8,则U x(1)和x(4)分别是(B )A. 1, 8B. 1,7C. 2,8D. 2,73、指出下列错误的指令(B)。
A.symsa b;B. symsa, b;C.syms('a',’b');D. syms('a','b','positive');4、下列哪条指令是求矩阵的行列式的值(C)。
A .inv B. diag C. det D.eig5、清空Matlab工作空间内所有变量的指令是(C)。
A. clcB.clsC.clearD. clf三、程序分析题(一题10分,共20分)1、分析下面程序运行后s1,n1,s2,n2,m的值。
s1=0;s2=0;n1=0;n2=0;x=[1,-4,-8,3,10,-9,7,-3,10, 8,-5,-2,2,0 ]; m=length(x); fori=1:mif x(i)<0s1=s1+x(i); n1=n1+1; elses2=s2+x(i); n2=n2+1;end ends1,n1,s2,n2,m请回答s1,n1,s2,n2,m的结果。
【免费下载】MATLAB期末作业

姓名:杨墩坤班级:应数一班学号:2013442692 matlab期末作业MATLAB期末作业1.从键盘输入一个4位整数,按如下规则加密后输出。
加密规则:每位数字都加上7,然后用和除以10的余数取代该数字;再把第一位与第三位交换,第二位与第四位交换。
a=input('请输入一个四位数a=?');while (a<1000|a>9999);disp('输入错误,请重新输入!');a=input('请输入一个四位数a=?');end %要求输入的是4位整数,输入错误时要求重新输入a1=fix(a/1000); %求a的千位数字a2=rem(fix(a/100),10); %求a的百位数字a3=rem(fix(a/10),10); %求a的十位数字a4=rem(a,10); %求a的各位数字b1=rem(a3+7,10); %以下用加密规则进行加密b2=rem(a4+7,10);b3=rem(a1+7,10);b4=rem(a2+7,10);disp([b1,b2,b3,b4]);运行程序为请输入一个四位数a=?1326(此为随机输入的数字)9 3 8 0实验四第4题.已知{f1=1, n=1 f2=0, n=2 f3=1, n=3 f n=f n‒1‒2f n‒2+f n‒3, n>3求中:f1~f100(1)最大值、最小值、各数之和。
(2)正数、零、负数的个数。
解:f(1)=1;f(2)=0;f(3)=1;姓名:杨墩坤班级:应数一班学号:2013442692 matlab期末作业for n=4:100f(n)=f(n-1)-2.*f(n-2)+f(n-3);enddisp(['max=',num2str(max(f))])disp(['min=',num2str(min(f))])disp(['sum=',num2str(sum(f))])k1=0;k2=0;k3=0;for n=1:100if f(n)>0k1=k1+1;endif f(n)==0k2=k2+1;endif f(n)<0k3=k3+1;endenddisp(['正数个数为',num2str(k1)])disp(['零的个数',num2str(k2)])disp(['负数个数为',num2str(k3)])ρ=a sin(b+nθ)a、b、n 实验六第4题:绘制极坐标曲线,并分析参数对曲线形状的影响。
matlab期末复习练习题8题

matlab期末复习练习题8题1.functionrandisplayjiongaxisoff;set(gcf,'menubar','none','toolbar','none');fork=1:100h=text(rand,rand,...['\\fontsize{',num2str(unifrnd(20,50)),'}\\fontname{楷书}'],...'color',rand(1,3),'rotation',360*rand);pause(0.2);end2.小猫functiont=cat_in_holl(n)t=zeros(1,n);fork=1:nc=unidrnd(3,1);whilec~=1ifc==2t(k)=t(k)+4;elset(k)=t(k)+6;endc=unidrnd(3,1);endt(k)=t(k)+2;endmean(t,2)3.矩阵functionex2_3_6slowa=unidrnd(100,1000000,7);b=zeros(1000000,3);ticform=1:1000000a=a(m,:);b=[468];forii=1:3dd=a(a==b(ii));ifisempty(dd)==0b(ii)=0;endendb(m,:)=b;endtoc4.三角形functiontriangle_tablefig=figure('defaultuicontrolunits','normalized','name','triangle_table',...'numbertitle','off','menubar','none');ah=axes('pos',[.1.2.75.75],'visible','of f');slider_h=uicontrol('style','slider','units','normalized','pos',...[0.1,0.05,0.75,0.05],'sliderstep',[1/6,0.05],'callback',@change_color);holdonf ork=0:6plot(0:6-k,(6-k)*ones(1,(7-k)),'k');plot(k*ones(1,(7-k)),k:6,'k');endplot([0,6],[0,6],'k');holdoff;forx=1:5fory=1:xtext(y-0.5,x+0.5,num2str(x),'color','k','tag','数字');endendfork=0:5text(k+0.1,k+0.5,[num2str(k),'.5'],'tag','数字');end%====slider'scallbackfunction(nestedfunction)======functionchange_color(ho bject,eventdata)v=round(6*get(slider_h,'value'));num_h=findobj('tag','数字');num_pos=get(num_h,'pos');red_num_logic=cellfun(@(x)(x(1)<=v&&x(2)<=v),num_pos);set(num_h(red_num_logic) ,'color','r');set(num_h(~red_num_logic),'color','k');endend5.画图象%p82基准5.4-3function[m,n,tt]=plot3dnmt(n,l)c=zeros(n,1);m=linspace(0,2,l);[m,n]=meshgrid(m ,m);tt=zeros(size(n));forii=1:lforjj=1:ltt(ii,jj)=calct(m(ii,jj),n(ii,jj));endendfunctiontmn=calct(mm,nn)forn1=1:nc(n1)=(mm^n1/gamma(n1+1))*sum(nn.^(0:n1-1)./gamma(1:n1));tmn=1.0-exp(-mm-nn)*sum(c);endendmesh(n,m,tt);end6.7.加载图像functionducklakesegmentation%导入图像文件引导对话框[filename,pathname,flag]=uigetfile('*.jpg','恳请引入图像文件');duck=imread([pathname,filename]);laketraindata=[527487;76117150;194862;356482;465836;...505723;110127135;156173 189;246242232;...166174151];%从图上选取的几个位于湖面区域的有代表的点的rgb值%从图上挑选出的几个坐落于鸭子区域的存有代表的点的rgb值ducktraindata=[211192107;202193164;32250;213201151;1157516;...101700;16913122; 15013387];%属湖的迪潘县0,鸭子为1group=[zeros(size(laketraindata,1),1);ones(size(ducktraindata,1),1)];lakeducksvm=svm train([laketraindata;ducktraindata],group,...'kernel_function','polynomial','p olyorder',2);%训练得到支持向量分类机[m,n,k]=size(duck);duck1=double(reshape(duck,m*n,k));%将数组duck转换成m*n行,3列于的双精度矩阵%根据训练得到的支持向量机对整个图像的像素点分类indduck=svmclassify(lakeducksvm,duck1);indlake=~indduck;%属于湖的点的逻辑数组result=reshape([indlake,indlake,indlake],[m,n,k]);%和图片的维数相对应当duck2=duck;duck2(result)=0;figureimshow(duck2)8.定时器functionexample12_2_1timera=timer('timerfcn',@timerfun,'startdelay',unidrnd(5000,1)/1000,...'executionmode ','fixedrate');%用以记录timerfun函数继续执行的次数,由于通过startdelay方式同时实现内要随机一段时间展开特定%操作时,需要反复停止与启动定时器,因此tasksexecuted就不准确了。
(完整版)武汉大学matlab期末课程作业

(完整版)武汉⼤学matlab期末课程作业“MATLAB及其应⽤”课程作业院系:姓名:学号:联系⽅式:1. 请指出如下5个变量名中,哪些是合法的? abcd-2 xyz_3 3chan a 变量 ABCDefgh答:xyz_3,ABCDefgh 是合法的。
2. 在命令窗中,运⾏命令a=sqrt(2)。
然后请回答以下问题:计算结果a吗?该计算结果只是5近似吗?请在命令窗中,显⽰出具有最多位有MATLAB 数值结果显⽰的默认设置。
该计算结果只是5近似。
3. 命令clear, clf, clc 各有什么⽤处?答:clear 可以清除matlab ⼯作空间中保持的变量。
clf 可以清除图形窗。
clc 清除命令窗中显⽰内容。
4. 想要在MATLAB 中产⽣⼆维数组=987654321S ,下⾯哪些命令能实现⽬的? S=[1,2,3;4,5,6;7,8;9]S=[1 2 3;4 5 6;7 8 9]S=[1,2,3;4,5,6;7,8,9] %整个命令在中⽂状态下输⼊答:第⼆条S=[1 2 3;4 5 6;7 8 9]能实现⽬的。
中⽂状态下逗号不是有效字符。
1.说出以下四条命令产⽣的结果各属于哪种数据类型,是“双精度”对象,还是“符号”对象?3/7+0.1, sym(3/7+0.1), vpa(sym(3/7+0.1),4), vpa(sym(3/7+0.1))答:3/7+0.1结果是双精度。
sym(3/7+0.1)结果是符号。
vpa(sym(3/7+0.1),4)结果是符号。
vpa(sym(3/7+0.1))结果是符号。
过程如图:2.已知a1=sin(sym(pi/4)+exp(sym(0.7)+sym(pi/3)))产⽣精准符号数字,请回答:以下产⽣的各种符号数哪些是精准的?若不精准,误差⼜是多少?能说出产⽣误差的原因吗?a2=sin(sym(pi/4)+exp(sym(0.7))*exp(sym(pi/3)))a3=sin(sym('pi/4')+exp(sym('0.7'))*exp(sym('pi/3')))a4=sin(sym('pi/4')+exp(sym('0.7+pi/3')))a5=sin(sym(pi/4)+exp(sym(0.7+pi/3)))a6=sin(sym(pi/4)+sym(exp(0.7+pi/3)))a7=sin(sym(pi/4+exp(0.7+pi/3)))a8=sym(sin(pi/4+exp(0.7+pi/3)))(提⽰:可⽤vpa观察误差;注意数位的设置)。
matlab期末考试试题及答案

matlab期末考试试题及答案### MATLAB期末考试试题及答案#### 一、单选题(每题2分,共20分)1. MATLAB中,以下哪个函数用于计算矩阵的逆?A. invB. detC. eigD. rank答案:A2. MATLAB中,如何生成一个1到10的向量?A. `1:10`B. `1..10`C. `1..10`D. `1..10`答案:A3. MATLAB中,以下哪个命令用于绘制函数f(x)=x^2的图像?A. `plot(x, x^2)`B. `plot(x, f(x))`C. `fplot(x^2)`D. `fplot(x, x^2)`答案:A4. MATLAB中,如何计算矩阵A和B的点积?A. `dot(A, B)`B. `A * B`C. `A .* B`D. `A . B`答案:C5. MATLAB中,以下哪个函数用于求解线性方程组?A. `solve`B. `fsolve`C. `ode45`D. `fminsearch`答案:A#### 二、填空题(每题3分,共15分)1. MATLAB中,使用____函数可以计算矩阵的行列式。
答案:det2. 若向量`x = [1, 2, 3]`,则`x(2)`的值为____。
答案:23. MATLAB中,使用____函数可以创建一个3x3的单位矩阵。
答案:eye4. 若要在MATLAB中绘制函数f(x)=sin(x)的图像,可以使用____函数。
答案:plot5. MATLAB中,使用____函数可以计算矩阵的特征值。
答案:eig#### 三、编程题(每题10分,共30分)1. 编写一个MATLAB函数,计算并返回一个向量中所有元素的平方和。
```matlabfunction sum_of_squares = calculateSumOfSquares(vector)sum_of_squares = sum(vector.^2);end```2. 编写一个MATLAB脚本,使用while循环计算1到100之间所有奇数的和。
MATLAB考核期末(含答案)

一、微分方程求解。
(15分)设1)(8)(4)(2)(2233=+++t y dt t dy dt t y d dt t y d ,0)0(=y ,1)0(=dtdy ,0)0(22=dt y d 用ode45方法求微分方程的解。
要求: 1)仿真时间t=30秒2)结果绘制在一张图中,包括t y -曲线,一阶t y -'曲线,二阶t y -''曲线,三阶t y -'''曲线3)用图例命令分别说明四条曲线为“t y -”,“t y -'”,“t y -''” ,“t y -'''” 4)定义横坐标为“时间”,纵坐标为“输出”,图形标题名称为“微分方程的解”解:系统方程为 1)(8)(4)(2)(2233=+++t y dt t dy dt t y d dt t y d , 这是一个单变量三阶常微分方程。
将上式写成一个一阶方程组的形式,这是函数ode45调用规定的格式。
令:y y =)1()1()2(∙∙==y y y)2()1()3(∙∙∙∙∙===y y y y⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---=⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡∙∙∙)2(4)3(2)1(81)3()2()3()2()1(y y y y y y y y函数文件程序:function ydot=myfun1(t,y)ydot=[y(2);y(3);1-8*y(1)-2*y(3)-4*y(2)];主文件程序: t=[0 30]; y0=[0;1;0];[tt,yy]=ode45(@myfun1,t,y0);y=(1-yy(:,3)-2*yy(:,2)-4*yy(:,1))/8;plot(tt,y,'r',tt,yy(:,1),'k',tt,yy(:,2),'-g',tt,yy(:,3),'-.b'); legend('y-t','y ˊ-t','y ˊˊ-t','y ˊˊˊ-t') title('微分方程的解') xlabel('时间') ylabel('输出')运行程序后输出图形如下:二、数值计算,编程完成以下各题(共20分,每小题5分)1、画出函数5505.025.55.15.1cos 5)5(sin )(2x x x x ex x f x +++-=在区间[3, 5]的图形,求出该函数在区间[3, 5]中的最小值点m in x 和函数的最小值m inf .解:程序如下x=3:0.05:5;y=(sin(5*x).^2).*exp(0.05*x.^2)-5*(x.^5).*cos(1.5*x)+1.5*abs(x+5.5)+x.^2.5; plot(x,y);fn='(sin(5*x).^2).*exp(0.05*x.^2)-5*(x.^5).*cos(1.5*x)+1.5*abs(x+5.5)+x.^2.5'; [xmin,fmin]=fminbnd(fn,3,5) hold onplot(xmin,fmin,'r*'); Xlabel('x') Ylabel('f(x)')经过运行后得到的图像截图如下:运行后的最小值点m in x =4.6051,m in f = -8.3383e+003。
Matlab期末考试上机题汇总(选做)

1.求解方程组:x x2x21233x x x6123x3x4x4123 2.用magic产生一个5*5的矩阵,将这个矩阵的第2列与第5列互换位置。
3.编写一个M函数,求和S= 1+2+3+…+1000 4.定义一个矩阵,放入相应的数据,然后保存到MAT文件中,清除内存后,然后再调入内存。
查看数据是否改变。
5.根据下面的方程绘制图形,y=cos(x)+x,x 取值-pi-pi,然后用多项式拟合函数进行拟合。
6.创建一个5行5列的magic矩阵,删除其中的第二、三行与第三、四列。
使其变成3行3列的矩阵。
7.建一个2行2列的元胞数组,a={zeros(2,2,2),’hello’;1758,int16(1:10)},请在此基础上创建一个新的8行8列元胞数组。
8.要求编写一个函数文件,将一个给定图片的所有颜色都变深(变深多少自己斟酌),其中黑色为0,白色为255 9.根据下面的方程绘制图形,y=cos(2x)+sin(x),然后用5次多项式进行拟合。
10.要求编写一个M函数,完成下列函数的求解:y=sin(x);y=sin(x+pi);y=sin(x+pi/3);y=sin(x+pi/2)自变量x的变化范围从-pi到pi,要求四个图像画在同一个图形窗体中。
11.矩阵的使用多项式在[-1 ,3 ]之间求值并画出相应的曲线。
32x4x7x10 12.元胞和结构的定义创建一个元胞数组A{1,1}=’James Bond’ ;A{1,2}=[1 2 ;3 4 ;5 6] ;A{2,1}=pi ;A{2,2}=zeros(5) ;请读取A元胞数组中的数字5。
13.M文件的编写计算分段函数y2cos(x1)x1x10xx xx10 14.函数文件的编写编写函数文件,求半径为r的圆的周长和面积。
15.图形绘制和分析2y x绘制在[-3,3]上以0.3为步长各数据点的条形图。
e 16.多项式拟合用一个三次多项式在区间[0,20]内逼近函数sin(x)。
matlab期末试题库及答案

matlab期末试题库及答案一、选择题1. 下列关于MATLAB的说法中,错误的是:A. MATLAB是一种高级技术语言和环境B. MATLAB可以进行数值计算和数据可视化C. MATLAB支持矩阵运算和线性代数操作D. MATLAB无法处理大规模数据答案:D2. 在MATLAB中,下列哪个命令用于清除当前工作空间的变量:A. clearB. deleteC. closeD. refresh答案:A3. MATLAB中,用于创建行向量的命令是:A. rowvecB. linerowC. linspaceD. colon答案:D4. 在MATLAB中,如何计算数组a的平均值?A. mean(a)B. average(a)C. avg(a)D. meanval(a)答案:A5. 下列哪个命令用于将MATLAB中的向量a按从小到大排序?A. sort(a)B. order(a)C. arrange(a)D. rank(a)答案:A二、填空题1. MATLAB中表示pi的符号是______。
答案:pi2. MATLAB中用于计算2的10次方的命令是______。
答案:2^103. MATLAB中通过命令______可以生成从1到10的整数向量。
答案:1:104. MATLAB中用于求解线性方程组的命令是______。
答案:solve5. MATLAB中用于生成随机数的命令是______。
答案:rand三、计算题1. 计算下列矩阵的乘积:A = [1 2 3; 4 5 6; 7 8 9]B = [9 8 7; 6 5 4; 3 2 1]答案:C = A * B2. 解下列线性方程组:2x + y = 43x - y = 2答案:syms x yeq1 = 2*x + y == 4;eq2 = 3*x - y == 2;sol = solve([eq1, eq2], [x, y]);四、应用题题目:某电商公司的销售数据如下,请使用MATLAB进行分析和可视化。
MATLAB期末考试试卷及其参考答案..

MATLAB期末考试试卷及其参考答案一、填空题(每空1分,20分)1、MATLAB常用操作界面包括、工作空间窗口、、、存数组编辑器、M文件编辑/调试器、帮助导航/浏览器、图形窗口等。
2、MATLAB中Inf或inf表示、NaN或nan表示、nargout表示。
3、MATLAB中逗号主要用作;用作输入量与输入量之间的分隔符;。
4、工作空间浏览器主要用于存变量的、和。
5、MATLAB实现将全下标转换为单下标的指令为、据单下标换算出全下标的指令为。
6、二维数组的标识有、、“逻辑1”标识。
7、在一个元胞数组A中寻访第2行第3列元胞元素用;寻访数组第2行第3列元胞中所存的容用。
8、4、MATLAB中clf用于、clc用于、clear用于。
二、简答题(每题5分,共20分)1、简述MATLAB历史指令窗的主要作用。
2、简述空数组的功用。
3、简述MATLAB函数的基本结构。
4、简述绘制二维图形的一般步骤。
三、阅读程序并回答问题(每题4分,共28分)1、写出下列指令运行结果。
A=zeros(2,4);A(:)=1:8;s=[2 3 5];A(s)Sa=[10 20 30]'A(s)=Sa2、写出下列指令运行结果。
A=reshape(1:16,2,8)reshape(A,4,4)s=[1 3 6 8 9 11 14 16];A(s)=03、写出下列指令运行结果。
A=[1,2;3,4];B=[-1,-2;2;1];S=3;A.*BA*BS.*AS*B4、下面的函数主要完成什么功能?function f=factor(n)if n<=1f=1;elsef=factor(n-1)*n;end5、写出下列指令运行结果。
ch=‘ABc123d4e56Fg9’;subch=ch(1:5)revch=ch(end:-1:1)k=find(ch>=‘a’&ch<=‘z’);ch(k)=ch(k)-(‘a’-‘A’);char(ch)6、写出下列指令运行结果。
Matlab期末作业 李家兴20131336013

Matlab基础及应用教程期末作业学号20131336013 姓名李家兴一、M文件及注释用Matlab绘制管状几何体利用MATLAB绘制管状几何体,所谓管状几何体就是中空的像水管一样的几何体。
MATLAB 函数TubeLike,可以根据管道中心线坐标及各点处管道半径绘制管状几何体。
程序M文件function [X,Y,Z] = TubeLike(x,y,z,r)% 绘制三维管道型立体% TubeLike(x,y,z) 绘制三维管道型几何体,输入参数x,y,z分别为管道中心线各点处% 的坐标,x,y和z应为等长的向量,此时管道具有统一的半径1.%% TubeLike(x,y,z,r) 输入参数r用来指定管道半径。
r可以是标量,也可以是与x,y,z等% 长的向量。
当r是标量时,管道具有统一半径;当r是向量时,管道% 各截面处可以有不同的半径。
%% TubeLike(x) 输入参数x为3行或3列的矩阵,用来指定管道中心线各点处的坐标,% 此时管道具有统一的半径1.%% TubeLike(x,r) 输入参数x为3行或3列的矩阵,用来指定管道中心线各点处的坐标,% 输入参数r(标量或向量)用来指定管道半径。
%% [X,Y,Z] = TubeLike(...) 输出三维管道型几何体的网格数据X,Y和Z.%% Example:% t = linspace(0,2*pi,50);% x = sin(t);% y = cos(t);% z = cos(t/2);% r = sin(t);% TubeLike(x,y,z,r)if nargin>=1 && nargin<=2% 检查数据维数是否正确[m,n] = size(x);p = min(m,n); % 维数if p ~= 3error('应输入三维样本数据,并且样本容量应大于3');% 把样本观测值矩阵转置,使得行对应变量,列对应观测 if m >= nx = x';endyd = x(2,:);zd = x(3,:);xd = x(1,:);if nargin == 1r = ones(size(xd));elseif isvector(y)if numel(y) == 1r = y*ones(size(xd));elseif numel(y)>1 && numel(y) == length(xd) r = y(:)';elseerror('半径应为标量或与x等长的向量'); endelseerror('半径应为标量或与x等长的向量');endelseif nargin>=3 && nargin<=4if isvector(x) && isvector(y) && isvector(z)numxyz = [numel(x),numel(y),numel(z)];if any(numxyz-min(numxyz))error('管道中心坐标x,y,z应为等长的向量'); elsexd = x(:)';yd = y(:)';zd = z(:)';endelseerror('管道中心坐标x,y,z应为等长的向量');endif nargin == 3r = ones(size(xd));elseif isvector(r)if numel(r) == 1r = r*ones(size(xd));elseif numel(r)>1 && numel(r) == length(xd) r = r(:)';elseerror('半径应为标量或与x等长的向量'); endelseerror('半径应为标量或与x等长的向量');endendelseerror('至少需要1个输入参数,至多需要4个输入参数'); endt = linspace(0,2*pi,30)'; % 角度向量% x的一阶差分dx = diff(xd);dx = [dx(end) dx];% y的一阶差分dy = diff(yd);dy = [dy(end) dy];% z的一阶差分dz = diff(zd);dz = [dz(end) dz];%计算法线与y轴正向夹角余弦,法线与y轴正向夹角正弦负值den1 = sqrt(dx.^2 + dy.^2);cy = dy./den1;cy(den1 == 0) = 1;sy = -dx./den1;sy(den1 == 0) = 0;% 计算法线与z轴正向夹角余弦,法线与z轴正向夹角正弦负值den2 = sqrt(dx.^2 + dy.^2 + dz.^2);cz = dz./den2;cz(den2 == 0) = 1;sz = -sqrt(dx.^2 + dy.^2)./den2;sz(den2 == 0) = 0;OneMat = ones(numel(t),1); % 1向量% 管道中心线坐标矩阵Xcenter = OneMat*xd;Ycenter = OneMat*yd;Zcenter = OneMat*zd;% 单位圆坐标数据x0 = cos(t);y0 = sin(t);% 计算三维管道型几何体的网格数据X,Y和ZXgrid = Xcenter + x0*(r.*cy) - y0*(r.*cz.*sy); Ygrid = Ycenter + x0*(r.*sy) + y0*(r.*cz.*cy); Zgrid = Zcenter + y0*(r.*sz);% 输出图形或网格数据if nargout == 0surf(Xgrid,Ygrid,Zgrid);%绘制三维曲面图形elseX = Xgrid;Y = Ygrid;Z = Zgrid;EndM文件见附件二、程序运行实例1、绘制扭结% Example1:扭结n = 100;r = 0.75;q = floor(n/3);%向下舍入t = (0:n)/n;a = 2;b = 3;c = 1.5;q1=2; q2=4;f0 = sin(q1*pi*t) + a*sin(q2*pi*t) - ...b*cos(4*pi*t)/2 + c*sin(6*pi*t);f0 = [ f0(1:n) f0(1:n) ];x = f0(1:n+1);%管道中心线x点y = f0(q+1:q+n+1);%管道中心线y点z = f0(2*q+1:2*q+n+1);%管道中心线z点figure(1) %绘制图形TubeLike(x,y,z,r)%调用TubeLike程序shading interp;%进行彩色的插值处理,是彩色平滑过度light%照明模式lighting gouraud %光源模式点模式光照单元为图形的像素点view(2)%调整3d图形显示的角度axis equal off%坐标轴长度相等关闭axis vis3d%冻结屏幕高宽比2、绘制立体太极图% Example2:太极t = linspace(pi,0,50); %从0到π分50个点x0 = cos(t);%单位圆x0坐标y0 = sin(t);%单位圆y0坐标x = [x0-1 x0+1 fliplr(2*x0) 2*x0];%管道中心线x点y = [y0 -y0 fliplr(2*y0) -2*y0];%管道中心线y点z = zeros(size(x));%管道中心线z点figure(2)%绘制图形[X,Y,Z] = TubeLike(x,y,z,0.2);%输出三维管道型几何体的网格数据X,Y和Zsurf(X,Y,Z,'FaceColor',[1 0 0],'LineStyle','none');%绘制三维曲面图形[X,Y,Z] = sphere;%绘制单位球体hold on% 开启图形保持surf(0.2*X-1,0.2*Y,0.2*Z,'FaceColor',[0 1 0],'LineStyle','none');%绘制三维曲面surf(0.2*X+1,0.2*Y,0.2*Z,'FaceColor',[0 0 1],'LineStyle','none');%绘制三维曲面hold off %取消原来的图view(3)%调整3d图形显示的角度axis equal off%坐标轴长度相等关闭light%设置光源3、绘制田螺% Example3:田螺t = linspace(0,7*pi,200); %0到7π分200个点x = t.*cos(t)*0.1;%管道中心线x点y = t.*sin(t)*0.1;%管道中心线y点z = [1:numel(t)]*0.01;%管道中心线z点r = sqrt([0:numel(t)-1]*0.004);%管道半径rfigure(3) %画图TubeLike(x,y,z,r)%调用TubeLike函数view(-44,-52)%调整3d图形显示的角度角度-44,仰视角-52axis equal off%坐标轴长度相等关闭代码运行绘制三维管道型立体TubeLike(x,y,z) 绘制三维管道型几何体,输入参数x,y,z分别为管道中心线各点处的坐标,x,y和z应为等长的向量,此时管道具有统一的半径1.TubeLike(x,y,z,r) 输入参数r用来指定管道半径。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Matlab在汽车振动分析中的应用
XXX
(昆明理工大学交通工程学院,昆明650500)
摘要:在明确汽车振动的产生原因及其危害的基础上,对汽车振动进行了理论分析、MATLAB编程计算以及试验研究。
结果表明:将MATLAB强大的数据处理和可视化技术应用于汽车振动分析与控制中,既可以验证理论分析的结果,又可以预测汽车响应,具有很高的实用价值。
关键字:MATLAB 汽车振动激励阻尼自由度
1 汽车振动的产生原因及其危害
机械振动是一种特殊形式的运动,激励、质量、弹性和阻尼是振动系统的四大要素。
如果把汽车作为一个系统来研究,汽车本身就是一个具有质量、弹簧和阻尼的振动系统。
由于汽车内部各部分的固有频率不同,汽车在行驶中常因路面不平、车速和运动方向的变化,车轮、发动机和传动系统的不平衡,以及齿轮的冲击等各种外部和内部的激振作用而极易产生整车和局部的强烈振动。
汽车的这种振动使汽车的动力性得不到充分的发挥,使经济性变坏。
同时,还要影响汽车的通过性、操纵稳定性和平顺性,使乘员产生不舒服和疲乏的感觉,甚至损坏汽车的零部件和运载的货物,缩短汽车的使用寿命[1]。
因此,研究汽车振动的目的主要有两方面:一是降低振动对汽车零部件的损伤、对汽车使用性能的危害;二是试图利用振动为汽车设计服务,利用振动机理设计制造振动机械以减轻劳动强度,提高工作效率是不乏先例的。
2汽车振动的理论分析
2.1建立振动的力学模型
当一个实际振动系统较复杂时,建立的模型越复杂,越接近实际情况,模拟越逼真,但往往使分析困难;相反地,建立模型时,分析越容易,但得到的结果可能不精确,因此,在建立振动系统力学模型中,总是在求得简化表达和逼真模拟二者之间的折衷[2]。
振动分析的关键就是:根据研究的内容和要求,把所研究的对象以及外界对它的作用简化为一个既简单又能在动态特性方面与原来的研究对象等效的力学模型。
汽车是由多个系统组成的复杂的振动系统,每个系统都存在振动问题。
主要包括发动机、传动系统、制动系统、转向系统、悬架系统、车身和车架系统存在的振动问题。
研究汽车这样一个复杂的振动系统,要根据所分析的问题进行简化,具体简化方案有以下几种
[3]:
1)当汽车对称于其纵轴线时,汽车车身只有垂直振动和俯仰振动对平顺性影响最大。
此时,将汽车简化成如图1a)所示的四个自由度的平面模型,因轮胎阻尼较小,在此予以忽略。
在这个模型中,车身质量m2,主要考虑垂直和俯仰两个自由度前、后车轴质量m1f,m1r。
有两个垂直自由度。
2)当汽车前、后轴悬架质量分配达到一定值时,前、后悬架系统的垂直振动几乎是独立的。
于是可以将汽车进一步简化为如图1b)所示的车身和车轮两个自由度振动系统。
M2:为簧载(车身)质量,m1为非簧载(车轮)质量。
分析平顺性时,只考虑两个质量的垂直自由度。
3)在远离车轮部分,其固有频率(10~16Hz)在较低激振频率范围(如5Hz以下),轮胎动变形很小,忽略其弹性和轮胎质量,就得到如图1C)所示分析车身垂直振动的最简单的单自由度系统。
图1 汽车振动的简化模型
2.2建立运动方程
对所确定的振动系统中的每个物体作隔离体进行受力分析。
当受力分析较困难时,可以采用能量法,如拉格朗日方程,来建立运动微分方程[4]。
2.3 求解方程并得到响应规律
通过求解运动微分方程得到系统的响应,掌握振动规律,也就是得到振动系统的物理量,如位移、速度、加速度等随时间t的变化规律;还可以通过运动方程得到系统的特征
方程或频率方程,从而求出系统的固有频率、振动模态等[5]。
3 理论研究的MATLAB实现
3.1 单自由度有阻尼自由振动体系
作为基本的振动模式,此时,汽车的振动方程为:mx+cx+kx=0。
进一步可以转化为:。
式中,为系统的固有圆频率;为相对阻尼系数。
系统的振动结果是:。
其中振幅初始相位角,若给定初始条件:
x0=1,u0=0,wn=10,对于0.1到1,间隔0.1,编写M文件程序,并在MATLAB命令窗口中调用,可以求出运动方程的解,作出0~2s内的波形,如图2所示。
为了增加图形的显示效果,可以借助MATLAB的三维图形显示功能,并加以适当旋转,得到图3,从而更明显地观察阻尼系数对系统固有振形的影响[6]。
图2不同阻尼系数所对应的振形
图3 三维图形显示不同阻尼系数下的固有振形
3.2 单自由度有阻尼受迫振动体系
尽管简谐振动是一种最简单、最重要的振动,具有首要的研究价值,但在实际问题中,更多的是非简谐的振动,如发动机的振动[7]。
为了使研究结果更具一般性,这次研究了汽车在非简谐、甚至是非周期外力作用下的振动响应。
将汽车作为一个振动系统研究,则系统在外力作用下的受迫振动,等于系统的脉冲过渡函数h(t)和外力f(£)作卷积的结果。
在MATLAB中,可以利用函数residue求得h(t),然后采用卷积函数conv,求两者的卷积,即可以根据系统输入和脉冲函数得到系统的响应[8]。
图4是汽车在0~3s内的响应波形。
初始条件为:m=2450kg,c=7135N*s/m,
k=1.6×105N/m,采样时间间隔0n 015s,。
图4 单自由度有阻尼受迫振动波形
3.3 两自由度可解耦系统的振动分析
当汽车这样一个复杂的振动系统简化为图1b)的形式,成为双自由度振动系统后,其运动方程一般为:。
可写成矩阵形式:。
其中:
,,,。
当C=0,即无阻尼情况,则系统可以解耦为两种独立的振形。
但应注意以主模态组成的模态矩阵作为坐标变换矩阵,以保证质量矩阵和刚度矩阵同时对角化,从而实现解耦。
若给定初始条件为:m1=250kg,m2=1000kg,k1=1.5×105N/m,k2=6.6×105N/m,初始位置X0=[1 0]T,初始速度%=[0 -1]T。
图5是解耦后两个独立的输出x1、X2,在振动开始0.5s内的振动波形。
四自由度的简化模型,与两自由度的简化模型的振动分析基本相似。
图5解耦后系统的振动波形
4数值计算与实验相结合
MATLAB计算结果不仅可以验证汽车振动的理论分析结果,也可以用来预测系统的响应。
通过理论分析、MATLAB计算与试验的结合,可以更好地研究汽车振动问题。
在实际的试验中,首先应建立由激振台、计算机监测控制系统、计算机试验数据处理系统和其他附属设备组成的机械式悬架性能试验台。
电动机通电后,带动偏心凸轮旋转,引起激振台的振动,并通过对左右轮振动频率的不同组合和对振动的振幅调节来模拟实际的路面输人[9]。
具体研究步骤如下:
1)选择测试工况,也就是选取激振源。
2)对结构进行分析,研究振动测点,以布置传感器。
3)测取振动信号,并进行分析和处理。
4)对分析的结果作出结论。
试验证明:同一台车,接受同样激励,而且初始条件相同的情况下,实际测得的振动结果,与理论分析后用MATLAB计算结果是基本吻合的。
以单自由度有阻尼强迫振动的简化模型为例,实际测得的位移、速度、加速度数值依次是:0.1325、-0.1128、0.7710,与MATLAB计算结果0.1485、-0.1275、0.7683极为接近,误差约为5%。
出现这一误差可能由于两方面原因:一是将汽车这样复杂的振动系统简化为单自由系统虽然有助于分析和计算,但并不完全合适;二是由具体的试验过程中,由初始条件的产生、试验结果的测量等各方面误差所引起的。
尽管如此,利用MATLAB强大的数据处理功能,分析和处理汽车振动的可行性和正确性是毋庸置疑的。
5 结语
通过理论分析、MATLAB数值计算、试验结果三者的内在联系和结果的比对,MATLAB在汽车振动分析和控制方面的实用性和重要性是显而易见的,其在这一领域的应用前景是远大的。
在具体运用中,既可以通过MATLAB数值计算来验证对汽车振动理论分析的结果,又可以用MATLAB数值计算结果预测汽车对某一激励的响应。
当然,MATLAB作为功能十分强大的工程计算软件,在汽车振动分析与控制中的运用不会仅仅局限于本文所述的数值计算和计算结果可视化技术等几个方面。
参考文献
[1] 余志生.汽车理论[M].北京:机械工业出版社,2002.
[2] 陈南编.汽车振动与噪声控制[M].北京:人民交通出版社,2005.
[3] 申屠斌,杨绪剑,周晓军.汽车主减速器噪声振动检测系统研究[J].机电工程,2006,50(01).
[4] W.T.Thomson.MD Dehleh.Theory of Vibration with Ap—plieations.Prentice—Hall,1998.
[5] International Organization for Standardization.ISO 2631—1Mechanical vibration and shock—evaluation of
human expo—sure to whole—body vibration.1997.
[6] 王沫然.MA TLAB与科学计算[M].北京:电子工业出版社,2003.
[7] 李丽,等.MA TLAB工程计算及应用[M].北京:人民邮电出版社,2004.
[8] 黄道平.MA TLAB与控制系统的数学仿真机CAD[M].北京:化学工业出版社,2004.
[9] 唐岚.汽车测试技术[M].北京:机械工业出版社2006.。