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

下载本文档

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

文档简介

1、MATLAB在自动控制系统中的应用第1页,共33页。 1 用MATLAB进行部分分式展开考虑下列传递函数式中 的某些值可能为零,在MATLAB的行向量中,num和den分别表示传递函数的分子和分母的系数,即命令 r,p,k=residue(num,den)将求出多项式B(s) 和A(s)之比的部分分式展开式中的留数极点和余项.第2页,共33页。 例1: 对下述传递函数展开解:对于该传递函数有如下程序: num=2 5 3 6 den=1 6 11 6 r,p,k=residue(num,den)其中,r为留数列向量, p为极点列向量,k为余项列向量,num =2 5 3 6den =1 6 1

2、1 6r = -6.0000 -4.0000 3.0000p = -3.0000 -2.0000 -1.0000k =2第3页,共33页。第4页,共33页。 例2:(传递函数具有重根的情况)num=0 1 2 3;den=1 3 3 1; r p k=residue(num,den) r= 1.0000 0.0000 2.0000 p= -1.0000 -1.0000 -1.0000第5页,共33页。 2 将部分分式展开式返回到多项式之比 命令: num,den=residue(r,p,k) printsys(num,den,s)将以s多项式之比的形式打印出传递函数num=0 1 2 3den

3、=1 3 3 1 r p k=residue(num,den)num,den=residue(r,p,k)printsys(num,den,s)第6页,共33页。3、求特征方程的根利用求根命令roots,可以求得多项式的根.(poly(p1 p2pi)命令可以在已知根的情况下求多项式)例: 求 的根p=1 2 3 4; roots(p)ans = -1.65062919143939 -0.17468540428031 + 1.54686888723140i -0.17468540428031 - 1.54686888723140ipoly(1,2,3) 或 p1=1;p2=2;p3=3;pol

4、y(p1,p2,p3)ans = 1 -6 11 -6第7页,共33页。 4、 用MATLAB求函数的零点和极点程序为:num=0 0 4 16 12den=1 12 44 48 0z,p,k=tf2zp (num,den)Printsys(num,den,s)z,p,k=tf2zp (num,den)例:求如下传递函数的零极点,第8页,共33页。z = -3 -1p = 0 -6.0000-4.0000-2.0000k = 44 s2 + 16 s + 12 - s4 + 12 s3 + 44 s2 + 48 s第9页,共33页。 5、 已知零点、极点求传递函数 z=-1; p=-2;-4;

5、-8; K=12; num,den=zp2tf(z,p,k); printsys(num,den)num/den = 4 s + 4 - s3 + 14 s2 + 56 s + 64第10页,共33页。6、 求串联、并联和反馈(闭环)传递函数 命令: num,den=series(num1,den1,num2,den2) num,den=parallel(num1,den1,num2,den2) num,den=feedback(num1,den1,num2,den2)例: num1=0 0 10; den1=1 2 10; num2=0 5; den2=1 5;num,den=series(

6、num1,den1,num2,den2);Printsys(num,den)第11页,共33页。 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求出的输出响应和状态响应第12页,共33页。(1)标准2阶系统的MATLAB描述 对于给定的自然震荡频率和阻尼系

7、数,下列命令 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)第13页,共33页。num/den = 25 - s2 + 4 s + 25第14页,共33页。例:t=0:0.2:10; zeta=0 0.2 0.4 0.6 0.8 1 for n=1:6; num=0 0 1 den=1 2*zeta(n) 1

8、 y(1:51,n),x,t=step(num,den,t) end plot(t,y) grid title(plot of unit-step response curves withzeta=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);第15页,共33页。第16页,共33页。例子程序:%计算二阶系统的阶跃响应% wn=1t=0:0.1:

9、12;num=1;zeta1=0.1;den1=1 2*zeta1 1;zeta2=0.2;den2=1 2*zeta2 1;zeta3=0.4;den3=1 2*zeta3 1;zeta4=0.6;den4=1 2*zeta4 1;zeta5=0.8;den5=1 2*zeta5 1; zeta6=1.0;den6=1 2*zeta6 1;zeta7=2.0;den7=1 2*zeta7 1;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

10、,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) )Grid onTitle(zeta=0.1,0.2,0.4,0.6,0.8,1.0,2.0)第17页,共33页。第18页,共33页。(2)求系统的单位脉冲响应例子程序%计算单位脉冲响应%wn=1,zeta=0.2Num=0 0 1;Den=1 0.4 1;Impulse(num,den);Grid onTitle(uni

11、t-impulse response of G(s)=1/(s2+0.4s+1)第19页,共33页。例子程序%计算单位斜坡响应%根据G(s)/s的单位阶跃响应求系统的斜坡响应%根据G(s)/s形式输入分子、分母数组元素Num=0 0 0 1;Den =0 0.4 1 0;T=0:0.1:8;C=step(num,den,t);Plot(t,c,.,t,t,-);Grid onTitle(unit-ramp response curve for system G(s)Xlabel(t/s)Ylabel(r(t),c(t)第20页,共33页。(3)用MATLAB求上升时间、峰值时间、最大超调量和调

12、整时间:例:求 的上升时间、峰值时间、最大超调量和调整时间。 解: num=0 0 25; den=1 6 25; t=0:0.005:5; y,x,t=step(num,den,t);r=1;while y(r)0.98 & y(s)1.02;s=s-1;end;setting_time=(s-1)*0.005第21页,共33页。rise_time = 0.5550peak_time = 0.7850max_overshoot = 0.0948setting_time = 1.1850第22页,共33页。(4)求对任意输入信号的响应 为了求对任意输入信号的响应,可以应用lsim。命令:lsi

13、m(num,den,r,t) y=lsim(num,den,r,t) 将产生对输入时间函数r和u的响应例:求函数的单位斜坡响应 num=0 0 1; den=1 1 1; t=0:0.1:8; r=t;y=lsim(num,den,r,t); plot(t,r,-,t,y,o);grid;title(unit-ramp response obtained by use of command”lsim”);xlabel(t sec);Ylabel(unit-ramp input and system output);text(2.1,4.65,unit-ramp input);text(4.5,

14、2.0,output)第23页,共33页。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=0 0 0 1;den=1 3 2 0; k1=0:0.1:0.3;k2=0.3:0.005:0.5; k3=0.5:0.5:10;k4=10:5:100; k=k1

15、k2 k3 k4;rlocus(num,den,k)第24页,共33页。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)第

16、25页,共33页。5) 命令 sgrid 将定常阻尼比(0-1,增量间隔为0.1)线与定常自然振荡频率圆覆盖到根轨迹上。如果只需要一些特定的定常阻尼线和特定的定常自然振荡频率圆,则可采用下列命令: sgrid(zeta1,zeta2,wn1,wn2,wn3) 例: num=0 0 0 1;den=1 4 5 0; rlocus(num,den); sgrid(0.5,0.707,0.5,1,2)第26页,共33页。不想把定常自然震荡频率圆覆盖到根轨迹上,则sgridzeta1,zeta2,不想把特定的定常阻尼线覆盖到根轨迹上,则sgrid,wn1,wn2,wn3例:num=0 0 0 1;de

17、n=1 4 5 0; rlocus(num,den); sgrid(0.5,)例: num=0 0 0 1; den=1 4 5 0; rlocus(num,den); sgrid(,0.5)6)命令 k,r=rlocfind(num,den) 用于求根轨迹上任意点的增益K值。它必须跟在rlocus命令之后。第27页,共33页。num=0 0 0 1; den=1 4 5 0; rlocus(num,den); sgrid(,0.5); k,r=rlocfind(num,den) 7) 命令 rltool(h) 可以观察到根轨迹运动的规律,同时可以分析系统在增加极点或零点的情况下,根轨迹的变化

18、。d= conv(1,4,1,4,20),0;g=tf(1,d);rltool(g)第28页,共33页。 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包含系统频率响应的幅值和相角,这些幅值和相角值是在用户指定的频率点第29页,共33页。上得到的。这时的相角是以度来表示。 利用下列表达式可以把幅值转变成分贝: magdB=20*lg10(mag)为了指明频率范围,采用命令 lgspace(d1,d2) lgspace(d1,d2,n)在两个十进制数10的d1次方和10的d2次方之间产生一个由50个点组成的向量,这50个点彼此在对数上有相等的距离。 而第二条命令是在10的d1次方和10

温馨提示

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

评论

0/150

提交评论