您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 冶金工业 > MATLAB复习知识点
MATLAB复习1、实现符号函数运算功能的函数m文件为:functiony=sgn(x)ifx0y1=-1;elseifx==0y1=0;elsey1=1;endy=y1;2、求满足1+2+3+…n100的最大正整数n的MATLAB程序为:sum=0;n=0;whilesum100n=n+1;sum=sum+n;endsum=sum-n;n=n-1;n,sum3、m文件有两种形式,一种称为命令文件(ScriptFile),另一种称为函数文件(FunctionFile),两种文件的扩展名都是m。4、反馈控制系统品质要求:稳定性、准确性、快速性5、按不同系统的特征方程式,可将自动控制系统分为线性系统和非线性系统。6、MATLAB控制相关的工具箱(1)控制系统工具箱(2)系统辨识工具箱(3)模型预测控制工具箱(4)鲁棒控制工具箱(5)神经网络工具箱7、MATLAB系统的构成(1)开发环境(2)数学函数库(3)MATLAB语言(4)图形处理系统(5)应用程序接口8、常用工具箱(1)控制类工具箱(2)应用数学类工具箱(3)信号处理类工具箱(4)其他常用工具箱9、MATLAB语句形式:变量=表达式10、MATLAB常用命令1,0,sgn()0,0,1,0xyxxxquit关闭MATLABexit关闭MATLABclc清除MATLAB命令窗口中的所有显示内容clear清除工作空间中保存的所有变量11、MATLAB基本数据类型:双精度数组、字符串数组、元胞数组、结构数组12、矩阵的创建(1)直接输入法(2)通过数据文件创建矩阵(3)通过m文件创建矩阵(4)通过函数创建矩阵(5)冒号法13、冒号法[1]冒号法构造向量冒号表达式的一般格式为:向量名=初值:步长:终值[2]冒号法构造矩阵一般格式为:A(:,j):表示矩阵A的第j列;A(i,:):表示矩阵A的第i行。A(i,j)表示取矩阵A的第i行第j列交叉位置的元素14、矩阵的运算/(矩阵的右除)或\(矩阵的左除)A-1=inv(A)矩阵的逆15、求下面方程组的根A=[2,1,-3;3,-2,2;5,-3,-1];B=[5;5;16];%列向量X=A\B16、矩阵的大小测度行数:m=size(A,1)列数:n=size(A,2)测行数和列数:d=size(A)17、矩阵的元素操作A(2,3):找出元素A(3,5)=-1:赋值18、符号变量和符号表达式①用函数sym建立符号变量、符号表达式和符号矩阵。调用格式为:变量=sym(‘表达式’)②用函数syms建立符号变量、符号表达式和符号矩阵。调用格式为:Symsvar1var2var3…19、符号微积分limit(f,x,a)求表达式f当x→a时的极限diff(f)求表达式f对缺省变量的微分diff(f,n)求表达式f对缺省变量求n阶微分diff(f,v)求表达式f对变量v的微分12312312323532255316xxxxxxxxxdiff(f,v,n)求表达式f对变量v的n阶微分int(f)求表达式f对缺省变量的积分int(f,v)求表达式f对变量v的积分int(f,v,a,b)求表达式f在区间(a,b)上对变量v的定积分20、已知f(x)=ax2+bx+c,求f(x)的微分和积分。解:symsabcxf=sym(‘a*x^2+b*x+c’)f=a*x^2+b*x+cdiff(f,a)ans=x^2int(f)ans=1/3*a*x^3+1/2*b*x^2+c*xint(f,x,0,2)ans=8/3*a+2*b+2*c21、MATLAB绘图命令例在[0,2]用红线画sinx,用绿圈画cosx.x=linspace(0,2*pi,30);%%(30等分)y=sin(x);z=cos(x);plot(x,y,'r',x,z,'go')符号函数(显函数、隐函数和参数方程)画图ezplot命令(1)ezplot(‘f(x)’,[a,b])表示在axb绘制显函数f=f(x)的函数图.(2)ezplot(‘f(x,y)’,[xmin,xmax,ymin,ymax])表示在区间xminxxmax和yminyymax绘制隐函数f(x,y)=0的函数图.(3)ezplot(‘x(t)’,’y(t)’,[tmin,tmax])表示在区间tminttmax绘制参数方程x=x(t),y=y(t)的函数图.例在[-2,0.5],[0,2]上画隐函数0)sin(xyex的图.解:输入命令:ezplot('exp(x)+sin(x*y)',[-2,0.5,0,2])例在[-1,2]上画22esin(3)xyx的图形.解:先建M文件myfun1.m:functionY=myfun1(x)Y=exp(2*x)+sin(3*x.^2)再输入命令:fplot(‘myfun1’,[-1,2])处理图形(1)GRIDON:加格栅在当前图上GRIDOFF:删除格栅(2)hh=xlabel(string):在当前图形的x轴上加图例stringhh=ylabel(string):在当前图形的y轴上加图例stringhh=zlabel(string):在当前图形的z轴上加图例stringhh=title(string):在当前图形的顶端上加图例string(3)holdon保持当前图形,以便继续画图到当前图上holdoff释放当前图形窗口22、Simulink仿真实例例题1、使用Simulink创建系统,求解非线性微分方程xxxxx44)23(2.其初始值为2)0(,0)0(xx,绘制函数的波形.例题2、力-质量系统,要拉动一个箱子(拉力f=1N),箱子质量为M(1kg),箱子与地面存在摩擦力[(b=0.4N(/m/s)],其大小与车子的速度成正比。其运动方程式为:xMxbf拉力作用时间为2s,建构的模型为例题3、力-弹簧-阻尼系统,假设箱子与地面无摩擦存在,箱子质量为M(1kg),箱子与墙壁间有线性弹簧(k=1N/m)与阻尼器(b=0.3N/ms-1)。阻尼器主要用来吸收系统的能量,吸收系统的能量转变成热能而消耗掉。现将箱子拉离静止状态2cm后放开,试求箱子的运动轨迹。运动方程式为:0xbkxxM23、控制系统数学模型1、传递函数(TransferFunction:TF)模型在MATLAB中,控制系统的分子多项式系数和分母多项式系数分别用向量num和den表示,即2、零极点增益(Zero-Pole-Gain:ZPK)模型在MATLAB中,控制系统的零点和极点分别用向量Z和P表示,即Z=[z1,z2,…,zm],P=[p1,p2,…,pn]3、传递函数模型sys=tf(num,den)生成传递函数模型sys直接生成传递函数模型。在MATLAB命令窗口中输入:sys=tf([132],[1573])4、零极点增益模型sys=zpk(z,p,k)%建立连续系统的零极点增益模型sys。z,p,k分别对应系统的零点向量,极点向量和增益sys2=tf(sys)%将零极点增益模型转换为传递函数模型【例2.1】已知控制系统的传递函数为,用MATLAB建立其数学模型【解】(1)生成连续传递函数模型。在MATLAB命令窗口中输入:37523)(232ssssssGnum=[b0,b1,…,bm-1,bm],den=[a0,a1,…,an-1,an]num=[132];den=[1573];sys=tf(num,den)【例2.3】系统的零极点增益模型为,用MATLAB建立其传递函数模型。【解】在MATLABz=[-0.1,-0.2];p=[-0.3,-0.3];k=1;sys=zpk(z,p,k)%建立系统的零极点增益模型5、模型连接(1)串联连接格式:sys=series(sys1,sys2)(2)并联连接格式:sys=parallel(sys1,sys2)(3)反馈连接格式:sys=feedback(sys1,sys2,sign)24、时域分析时域响应性能指标求取1、峰值时间[Y,k]=max(y)%求出y的峰值及相应的时间timetopeak=t(k)%获得峰值时间2、超调量C=dcgain(G)%求取系统的终值[Y,k]=max(y)%求出y的峰值及相应的时间percentovershoot=100*(Y-C)/C%计算超调量3、上升时间C=dcgain(G)n=1whiley(n)Cn=n+1endm=1;risetime=t(n)4、调节时间C=dcgain(G)i=length(t)while(y(i)0.98*C)&(y(i)1.02*C)i=i-1endSettingtime=t(i)※※例1已知二阶系统传递函数为3()(13)(13)Gssisi,编程求取系统的性能指标。2)3.0()2.0)(1.0()(ssssGG=zpk([],[-1+3*i,-1-3*i],3);%计算最大峰值时间和它对应的超调量C=dcgain(G)[y,t]=step(G);plot(t,y)grid[Y,k]=max(y);timeopeak=t(k)%取得最大峰值时间percentovershoot=100*(Y-C)/C%计算超调量n=1%计算上升时间whiley(n)Cn=n+1endrisetime=t(n)i=length(t);%计算稳态响应时间while(y(i)0.98*C)&(y(i)1.02*C)i=i-1;endsettingtime=t(i)例2已知单位负反馈系统,其开环传递函数为2()(2)nnGsss,其中n=1,试绘制分别为0,0.2,0.4,0.6,0.9,1.2,1.5时其单位负反馈系统的单位阶跃响应曲线。wn=1sigma=[0,0.2,0.4,0.6,0.9,1.2,1.5]figure(1);holdonnum=wn*wnt=linspace(0,20,200)'%将t在0到20之间均等分成200份fori=sigmaden=conv([1,0],[1,2*wn*i]);s1=tf(num,den)sys=feedback(s1,1)step(sys,t)gridendtitle('典型二阶系统取不同阻尼比时的单位阶跃响应')holdongtext('sigma=0');gtext('sigma=0.2');gtext('sigma=0.4');gtext('sigma=.6');gtext('sigma=0.9');gtext('sigma=1.2');gtext('sigma=1.5');例3已知单位负反馈的二阶系统,其开环传函为(),(1)kGssTs其中T=1,试绘制k分别为0.1,0.2,0.5,0.8,1.0,2.4时,其单位负反馈系统的单位阶跃响应曲线。T=1k=[0.1,0.2,0.5,0.8,1.0,2.4]t=linspace(0,20,200)'num=1;den=conv([1,0],[T,1])forj=1:6s1=tf(num*k(j),den)sys=feedback(s1,1)y(:,j)=step(sys,t);endplot(t,y(:,1:6));gridtitle(‘典型二阶系统取不同开环增益时的单位阶跃响应')gtext('k=0.1');gtext('k=0.2');gtext('k=0.5');gtext('k=0.8');gtext('k=1.0');gtext('k=2.4');例4已知单位负反馈的二阶系统,其中T=1,K=1,试绘制分别为0,0.05,0.2,0.5,1.0,2.4时,其单位负反馈系统的单位阶跃响应曲线。T=1k=1tou=[0,0.05,0.2,0.5,1.0,2.4]t=linspace(0,20,200)'num=1forj=1:6den=con
本文标题:MATLAB复习知识点
链接地址:https://www.777doc.com/doc-5278086 .html