MATLAB在自动控制系统中的应用_第1页
MATLAB在自动控制系统中的应用_第2页
MATLAB在自动控制系统中的应用_第3页
MATLAB在自动控制系统中的应用_第4页
MATLAB在自动控制系统中的应用_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2020/5/11,MATLAB在自动控制系统中的应用,2020/5/11,1用MATLAB进行部分分式展开,考虑下列传递函数,式中的某些值可能为零,在MATLAB的行向量中,num和den分别表示传递函数的分子和分母的系数,即,命令r,p,k=residue(num,den)将求出多项式B(s)和A(s)之比的部分分式展开式中的留数极点和余项.,2020/5/11,例1:对下述传递函数展开,解:对于该传递函数有如下程序:num=2536den=16116r,p,k=residue(num,den),其中,r为留数列向量,p为极点列向量,k为余项列向量,num=2536den=16116r=-6.0000-4.00003.0000p=-3.0000-2.0000-1.0000k=2,2020/5/11,2020/5/11,例2:(传递函数具有重根的情况),num=0123;den=1331;rpk=residue(num,den)r=1.00000.00002.0000p=-1.0000-1.0000-1.0000,2020/5/11,2将部分分式展开式返回到多项式之比,命令:num,den=residue(r,p,k)printsys(num,den,s)将以s多项式之比的形式打印出传递函数,num=0123den=1331rpk=residue(num,den)num,den=residue(r,p,k)printsys(num,den,s),2020/5/11,3、求特征方程的根利用求根命令roots,可以求得多项式的根.(poly(p1p2pi)命令可以在已知根的情况下求多项式)例:求的根,p=1234;roots(p)ans=-1.65062919143939-0.17468540428031+1.54686888723140i-0.17468540428031-1.54686888723140i,poly(1,2,3)或p1=1;p2=2;p3=3;poly(p1,p2,p3)ans=1-611-6,2020/5/11,4、用MATLAB求函数的零点和极点,程序为:num=0041612den=11244480z,p,k=tf2zp(num,den)Printsys(num,den,s),z,p,k=tf2zp(num,den)例:求如下传递函数的零极点,,2020/5/11,z=-3-1p=0-6.0000-4.0000-2.0000k=4,4s2+16s+12-s4+12s3+44s2+48s,2020/5/11,5、已知零点、极点求传递函数,z=-1;p=-2;-4;-8;K=12;num,den=zp2tf(z,p,k);printsys(num,den),num/den=4s+4-s3+14s2+56s+64,2020/5/11,6、求串联、并联和反馈(闭环)传递函数,命令:num,den=series(num1,den1,num2,den2)num,den=parallel(num1,den1,num2,den2)num,den=feedback(num1,den1,num2,den2),例:num1=0010;den1=1210;num2=05;den2=15;num,den=series(num1,den1,num2,den2);Printsys(num,den),2020/5/11,7、瞬态响应分析,如果已知num和den,则命令step(num,den),step(num,den,t)sys=tf(num,den);step(sys)将会产生单位阶跃响应图(在阶跃命令中,t为用户指定时间)当阶跃命令的左端含有变量时,如y,x,t=step(num,den,t)显示屏上不会含有响应曲线,必须利用plot命令去查看响应曲线。矩阵y和x分别包含系统在计算时间点t求出的输出响应和状态响应,2020/5/11,(1)标准2阶系统的MATLAB描述对于给定的自然震荡频率和阻尼系数,下列命令printsys(num,den)或printsys(num,den,s)将以s的多项式比值形式,打印出num/den例:wn=5;damping_ratio=0.4;num0,den=ord2(wn,damping_ratio);num=52num0;printsys(num,den,s);step(num,den),2020/5/11,num/den=25-s2+4s+25,2020/5/11,例:t=0:0.2:10;zeta=00.20.40.60.81forn=1:6;num=001den=12*zeta(n)1y(1:51,n),x,t=step(num,den,t)endplot(t,y)gridtitle(plotofunit-stepresponsecurveswithzeta=0,0.2,0.4,0.6,0.8,1)Xlabel(t(sec)text(4.1,1.86zeta=0);text(3.5,1.50.2);text(3.5,1.240.4);text(3.5,1.080.6);text(3.5,0.950.8);text(3.5,0.861.0);,2020/5/11,2020/5/11,例子程序:%计算二阶系统的阶跃响应%wn=1t=0:0.1:12;num=1;zeta1=0.1;den1=12*zeta11;zeta2=0.2;den2=12*zeta21;zeta3=0.4;den3=12*zeta31;zeta4=0.6;den4=12*zeta41;zeta5=0.8;den5=12*zeta51;zeta6=1.0;den6=12*zeta61;zeta7=2.0;den7=12*zeta71;y1,x,t=step(num,den1,t);y2,x,t=step(num,den2,t);y3,x,t=step(num,den3,t);y4,x,t=step(num,den4,t);y5,x,t=step(num,den5,t);y6,x,t=step(num,den6,t);y7,x,t=step(num,den7,t);Plot(t,y1,t,y2,t,y3,t,y4,t,y5,t,y6,t,y7)Xlabel(wnt),ylabel(c(t)GridonTitle(zeta=0.1,0.2,0.4,0.6,0.8,1.0,2.0),2020/5/11,2020/5/11,(2)求系统的单位脉冲响应例子程序%计算单位脉冲响应%wn=1,zeta=0.2Num=001;Den=10.41;Impulse(num,den);GridonTitle(unit-impulseresponseofG(s)=1/(s2+0.4s+1),2020/5/11,例子程序%计算单位斜坡响应%根据G(s)/s的单位阶跃响应求系统的斜坡响应%根据G(s)/s形式输入分子、分母数组元素Num=0001;Den=00.410;T=0:0.1:8;C=step(num,den,t);Plot(t,c,.,t,t,-);GridonTitle(unit-rampresponsecurveforsystemG(s)Xlabel(t/s)Ylabel(r(t),c(t),2020/5/11,(3)用MATLAB求上升时间、峰值时间、最大超调量和调整时间:例:求的上升时间、峰值时间、最大超调量和调整时间。解:num=0025;den=1625;t=0:0.005:5;y,x,t=step(num,den,t);r=1;whiley(r)0.98setting_time=(s-1)*0.005,2020/5/11,rise_time=0.5550peak_time=0.7850max_overshoot=0.0948setting_time=1.1850,2020/5/11,(4)求对任意输入信号的响应为了求对任意输入信号的响应,可以应用lsim。命令:lsim(num,den,r,t)y=lsim(num,den,r,t)将产生对输入时间函数r和u的响应例:求函数的单位斜坡响应num=001;den=111;t=0:0.1:8;r=t;y=lsim(num,den,r,t);plot(t,r,-,t,y,o);grid;title(unit-rampresponseobtainedbyuseofcommand”lsim”);xlabel(tsec);Ylabel(unit-rampinputandsystemoutput);text(2.1,4.65,unit-rampinput);text(4.5,2.0,output),2020/5/11,8、用MATLAB绘制和分析控制系统的根轨迹,1)命令rlcocus(num,den)利用该命令,可以在屏幕上得到画出的根轨迹图。增益向量K自动地被确定(向量K包含所有的增益值,据此可以计算出闭环极点)。n=1;d=conv(1,1,1,2),0;rlocus(n,d)2)命令rlocus(num,den,k)该命令利用了用户提供的增益向量K,可以调整轨迹上点的密度。num=0001;den=1320;k1=0:0.1:0.3;k2=0.3:0.005:0.5;k3=0.5:0.5:10;k4=10:5:100;k=k1k2k3k4;rlocus(num,den,k),2020/5/11,3)r,k=rlocus(num,den)r,krlocus(num,den,k)屏幕上将显示矩阵r和增益向量K(r具有长度为K的行和长度为den-1的列,后者包括复数根位置),但不显示根轨迹n=1;d=conv(1,0,1,0.5);k=0:10:100;r,k=rlocus(n,d,k)4)r=rlocus(num,den,k)plot(r,o)前句只给出相应跟轨迹增益对应的根值,后者绘制跟轨迹的点n=1;d=conv(1,0,1,0.5);k=0:10:100;r=rlocus(n,d,k);plot(r,o),2020/5/11,5)命令sgrid将定常阻尼比(0-1,增量间隔为0.1)线与定常自然振荡频率圆覆盖到根轨迹上。如果只需要一些特定的定常阻尼线和特定的定常自然振荡频率圆,则可采用下列命令:sgrid(zeta1,zeta2,wn1,wn2,wn3)例:num=0001;den=1450;rlocus(num,den);sgrid(0.5,0.707,0.5,1,2),2020/5/11,不想把定常自然震荡频率圆覆盖到根轨迹上,则sgridzeta1,zeta2,不想把特定的定常阻尼线覆盖到根轨迹上,则sgrid,wn1,wn2,wn3例:num=0001;den=1450;rlocus(num,den);sgrid(0.5,)例:num=0001;den=1450;rlocus(num,den);sgrid(,0.5)6)命令k,r=rlocfind(num,den)用于求根轨迹上任意点的增益K值。它必须跟在rlocus命令之后。,2020/5/11,num=0001;den=1450;rlocus(num,den);sgrid(,0.5);k,r=rlocfind(num,den)7)命令rltool(h)可以观察到根轨迹运动的规律,同时可以分析系统在增加极点或零点的情况下,根轨迹的变化。,d=conv(1,4,1,4,20),0;g=tf(1,d);rltool(g),2020/5/11,9、用MATLAB作伯特图,命令bode可以计算连续线性定常系统频率响应的幅值和相角。当把命令bode(不带左方变量)输入计算机后,MATLAB可以在屏幕上产生伯特图。常用的命令:bode(num,den)bode(num,den,w)bode(sys)当包含左方变量时,即:mag,phase,w=bode(num,den,w)mag,phase,w=bode(num,den)该命令将把系统的频率响应转变成mag,phase和W三个矩阵,这时在屏幕上不显示频率响应图。矩阵mag和phase包含系统频率响应的幅值和相角,这些幅值和相角值是在用户指定的频率点,2020/5/11,上得到的。这时的相角是以度来表示。利用下列表达式可以把幅值转变成分贝:magdB=20*lg10(mag)为了指明频率范围,采用命令lgspace(d1,d2)lgspace(d1,d2,n)在两个十进制数10的d1次方和10的d2次方之间产生一个由50个点组成的向量,这50个点彼此在对数上有相等的距离。而第二条命令是在10的d1次方和10的d2次方之间产生N个在对数上相等距离的点。,2020/5/11,num=10410;den=10.890;w=logspace(-2,3,100);bode(num,den,w);title(bodeDiagramofG(s)=10(s2+0.4s+1)/s(s2+0.8s+9)num=1-1;den=12;bode(num,den),2020/5/11,九、用MATLAB作奈奎斯特图,命令nyquist可以计算连续时间、线性定常系统的频率响应。当命令中不包含左方变量时,nyquist仅在屏幕上产生奈奎斯特图。其形式:nyquist(num,den)nyquist(nu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论