《MATLAB在自动控制系统中的应用.ppt》由会员分享,可在线阅读,更多相关《MATLAB在自动控制系统中的应用.ppt(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1电气信息学院首页上页下页末页结束自动控制理论MATLABMATLAB在自动控制系统中的应用在自动控制系统中的应用2电气信息学院首页上页下页末页结束自动控制理论 1 用用MATLAB进行部分分式展开进行部分分式展开考虑下列传递函数考虑下列传递函数式中式中 的某些值可能为零的某些值可能为零,在在MATLABMATLAB的行向量中的行向量中,num,num和和denden分别表示传递函数的分子和分母的系数分别表示传递函数的分子和分母的系数,即即命令命令 r,p,k=residue(num,den)将求出多项式将求出多项式B(s)和和A(s)之比的部分分式展开式中的留数之比的部分分式展开式中的留数极
2、点和余项极点和余项.3电气信息学院首页上页下页末页结束自动控制理论 例例1:对下述传递函数展开对下述传递函数展开解:对于该传递函数有如下程序对于该传递函数有如下程序:num=2 5 3 6 num=2 5 3 6 den=1 6 11 6 den=1 6 11 6 r,p,kr,p,k=residue(num,denresidue(num,den)其中其中,r,r为留数列向为留数列向量量,p,p为极点列向量为极点列向量,k,k为余项列向量为余项列向量,num=2 5 3 6den=1 6 11 6r=-6.0000 -4.0000 3.0000p=-3.0000 -2.0000 -1.0000
3、k=24电气信息学院首页上页下页末页结束自动控制理论5电气信息学院首页上页下页末页结束自动控制理论 例例2:(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.00006电气信息学院首页上页下页末页结束自动控制理论 2 将部分分式展开式返回到多项式之比将部分分式展开式返回到多项式之比 命令命令:num,den=residue(r,p,k)printsys(num,den,s)将以将以s s多项式之比的形式打印出传递
4、函数多项式之比的形式打印出传递函数num=0 1 2 3den=1 3 3 1 r p k=residue(num,den)num,den=residue(r,p,k)printsys(num,den,s)7电气信息学院首页上页下页末页结束自动控制理论3、求特征方程的根、求特征方程的根利用求根命令利用求根命令roots,可以求得多项式的根可以求得多项式的根.(poly(p1 p2pi)命令可以在已知根的情况下求多项式命令可以在已知根的情况下求多项式)例例:求求 的根的根p=1 2 3 4;roots(p)ans=-1.65062919143939 -0.17468540428031+1.546
5、86888723140i-0.17468540428031-1.54686888723140ipoly(1,2,3)或或 p1=1;p2=2;p3=3;poly(p1,p2,p3)ans=1 -6 11 -68电气信息学院首页上页下页末页结束自动控制理论 4、用用MATLAB求函数的零点和极点求函数的零点和极点程序为:num=0 0 4 16 12den=1 12 44 48 0z,p,k=tf2zp(num,den)Printsys(num,den,s)z,p,kz,p,k=tf2zp(=tf2zp(num,dennum,den)例:求如下传递函数的零极点,例:求如下传递函数的零极点,9电气
6、信息学院首页上页下页末页结束自动控制理论z=-3 -1p=0-6.0000-4.0000-2.0000k=44 s2+16 s+12 -s4+12 s3+44 s2+48 s10电气信息学院首页上页下页末页结束自动控制理论 5、已知零点、极点求传递函数已知零点、极点求传递函数 z=-1;p=-2;-4;-8;K=12;num,den=zp2tf(z,p,k);printsys(num,den)num/den=4 s+4 -s3+14 s2+56 s+6411电气信息学院首页上页下页末页结束自动控制理论6、求串联、并联和反馈(闭环)传递函数求串联、并联和反馈(闭环)传递函数 命令:命令:num,
7、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(num1,den1,num2,den2);Printsys(num,den)12电气信息学院首页上页下页末页结束自动控制理论 7、瞬态响应分析瞬态响应分析如果已知如果已知numnum和和denden,则命令,则命令 step(num,denstep(num,den),
8、),step(num,den,tstep(num,den,t)sys=sys=tf(num,den);step(systf(num,den);step(sys)将会产生单位阶跃响应图(在阶跃命令中,将会产生单位阶跃响应图(在阶跃命令中,t t为用户指为用户指定时间)定时间)当阶跃命令的左端含有变量时,如当阶跃命令的左端含有变量时,如 y,x,ty,x,t=step(num,den,tstep(num,den,t)显示屏上不会含有响应曲线,必须利用显示屏上不会含有响应曲线,必须利用plotplot命令去查命令去查看响应曲线。矩阵看响应曲线。矩阵y y和和x x分别包含系统在计算时间点分别包含系统
9、在计算时间点t t求出的输出响应和状态响应求出的输出响应和状态响应13电气信息学院首页上页下页末页结束自动控制理论(1 1)标准)标准2 2阶系统的阶系统的MATLABMATLAB描述描述 对于给定的自然震荡频率和阻尼系数,下列命令对于给定的自然震荡频率和阻尼系数,下列命令 printsys(num,denprintsys(num,den)或或printsys(num,den,printsys(num,den,s s)将以将以s s的多项式比值形式,打印出的多项式比值形式,打印出num/dennum/den 例:例:wnwn=5;=5;damping_ratiodamping_ratio=0.
10、4;=0.4;num0,den=ord2(wn,damping_ratio);num0,den=ord2(wn,damping_ratio);num=52num0;num=52num0;printsys(num,den,printsys(num,den,s s);step(num,denstep(num,den)14电气信息学院首页上页下页末页结束自动控制理论num/den=25 -s2+4 s+2515电气信息学院首页上页下页末页结束自动控制理论例: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
11、 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);16电气信息学院首页上页下页末页结束自动控制理论17电气信息学院首页上页下页末页结束自动控制理论例子程序:例子程序:%计
12、算二阶系统的阶跃响应计算二阶系统的阶跃响应%wn=1t=0:0.1: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
13、,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)Grid onTitle(zeta=0.1,0.2,0.4,0.6,0.8,1.0,2.0)18电气信息学院首页上页下页末页结束自动控制理论19电气信息学院首页上页下页末页结束自动控制理论(2)求系统的单位脉冲响应)求系统的单位脉冲响应例子程序例子程序%计算单位脉冲响应计算
14、单位脉冲响应%wn=1,zeta=0.2Num=0 0 1;Den=1 0.4 1;Impulse(num,den);Grid onTitle(unit-impulse response of G(s)=1/(s2+0.4s+1)20电气信息学院首页上页下页末页结束自动控制理论例子程序例子程序%计算单位斜坡响应计算单位斜坡响应%根据根据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
15、(t,c,.,t,t,-);Grid onTitle(unit-ramp response curve for system G(s)Xlabel(t/s)Ylabel(r(t),c(t)21电气信息学院首页上页下页末页结束自动控制理论(3)用)用MATLAB求上升时间、峰值时间、最大超调量和调整求上升时间、峰值时间、最大超调量和调整时间:时间:例:求例:求 的上升时间、峰值时间、最大超调量的上升时间、峰值时间、最大超调量和调整时间。和调整时间。解:解: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
16、.98&y(s)1.02;s=s-1;end;setting_time=(s-1)*0.00522电气信息学院首页上页下页末页结束自动控制理论rise_time=0.5550peak_time=0.7850max_overshoot=0.0948setting_time=1.185023电气信息学院首页上页下页末页结束自动控制理论(4)求对任意输入信号的响应)求对任意输入信号的响应 为了求对任意输入信号的响应,可以应用为了求对任意输入信号的响应,可以应用lsim。命令:命令:lsim(num,den,r,t)y=lsim(num,den,r,t)将产生对输入时间函数将产生对输入时间函数r和和u
17、的响应的响应例:求函数的单位斜坡响应例:求函数的单位斜坡响应 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,2.0,output)24电气信息学院首页上页下页末页结束自动控制理论8、
18、用、用MATLAB绘制和分析控制系统的根轨迹绘制和分析控制系统的根轨迹1 1)命令)命令 rlcocus(num,den)利用该命令,可以在屏幕上得到画出的根轨迹图。增利用该命令,可以在屏幕上得到画出的根轨迹图。增益向量益向量K K自动地被确定(向量自动地被确定(向量K K包含所有的增益值,据包含所有的增益值,据此可以计算出闭环极点)。此可以计算出闭环极点)。n=1;d=conv(1,1,1,2),0;rlocus(n,d)2 2)命令命令 rlocus(num,den,k)该命令利用了用户提供的增益向量该命令利用了用户提供的增益向量K K,可以调整轨迹上可以调整轨迹上点的密度。点的密度。nu
19、m=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 k2 k3 k4;rlocus(num,den,k)25电气信息学院首页上页下页末页结束自动控制理论3 3)r,k=rlocus(num,den)r,krlocus(num,den,k)屏幕上将显示矩阵屏幕上将显示矩阵r r和增益向量和增益向量K K(r r具有长度为具有长度为K K的行的行和长度为和长度为den-1den-1的列,后者包括复数根位置的列,后者包括复数根位置),),但不显但不显示根轨迹示根轨迹n=1;d=conv(
20、1,0,1,0.5);k=0:10:100;r,k=rlocus(n,d,k)4 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)26电气信息学院首页上页下页末页结束自动控制理论5)5)命令命令 sgrid 将定常阻尼比(将定常阻尼比(0-10-1,增量间隔为,增量间隔为0.1)0.1)线与定常自然振线与定常自然振荡频率圆覆盖到根轨迹上。荡频率圆覆盖到根轨迹上。如
21、果只需要一些特定的定常阻尼线和特定的定常自然振如果只需要一些特定的定常阻尼线和特定的定常自然振荡频率圆,则可采用下列命令:荡频率圆,则可采用下列命令: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)27电气信息学院首页上页下页末页结束自动控制理论不想把定常自然震荡频率圆覆盖到根轨迹上,则不想把定常自然震荡频率圆覆盖到根轨迹上,则sgridzeta1,zeta2,不想把特定的定常阻尼线覆盖到根轨迹上,则不想把特定的定常阻尼线覆盖到根轨迹上,则sgrid
22、,wn1,wn2,wn3例例:num=0 0 0 1;den=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 6)命令命令 k,r=rlocfind(num,den)用于求根轨迹上任意点的增益用于求根轨迹上任意点的增益K K值。它必须跟在值。它必须跟在rlocusrlocus命令之后。命令之后。28电气信息学院首页上页下页末页结束自动控制理论num=0 0 0 1;den=1 4 5 0;rlocus(num,den);sgrid(,0.5);k,r=rlocf
23、ind(num,den)7 7)命令命令 rltool(h)可以观察到根轨迹运动的规律,同时可以分析系统可以观察到根轨迹运动的规律,同时可以分析系统在增加极点或零点的情况下,根轨迹的变化。在增加极点或零点的情况下,根轨迹的变化。d=conv(1,4,1,4,20),0;g=tf(1,d);rltool(g)29电气信息学院首页上页下页末页结束自动控制理论 9、用用MATLAB作伯特图作伯特图命令命令bodebode可以计算连续线性定常系统频率响应的幅值和可以计算连续线性定常系统频率响应的幅值和相角。当把命令相角。当把命令bodebode(不带左方变量)输入计算机后,不带左方变量)输入计算机后,
24、MATLABMATLAB可以在屏幕上产生伯特图。常用的命令:可以在屏幕上产生伯特图。常用的命令:bode(num,den)bode(num,den,w)bode(sys)当包含左方变量时,即:当包含左方变量时,即:mag,phase,w=bode(num,den,w)mag,phase,w=bode(num,den)该命令将把系统的频率响应转变成该命令将把系统的频率响应转变成mag,phasemag,phase和和W W三个矩阵,这三个矩阵,这时在屏幕上不显示频率响应图。矩阵时在屏幕上不显示频率响应图。矩阵magmag 和和phasephase包含系统频率包含系统频率响应的幅值和相角,这些幅值
25、和相角值是在用户指定的频率点响应的幅值和相角,这些幅值和相角值是在用户指定的频率点30电气信息学院首页上页下页末页结束自动控制理论上得到的。这时的相角是以度来表示。上得到的。这时的相角是以度来表示。利用下列表达式可以把幅值转变成分贝:利用下列表达式可以把幅值转变成分贝:magdB=20*lg10(mag)为了指明频率范围,采用命令为了指明频率范围,采用命令 lgspace(d1,d2)lgspace(d1,d2,n)在两个十进制数在两个十进制数1010的的d1d1次方和次方和1010的的d2d2次方之间产生一次方之间产生一个由个由5050个点组成的向量,这个点组成的向量,这5050个点彼此在对
26、数上有相个点彼此在对数上有相等的距离。等的距离。而第二条命令是在而第二条命令是在1010的的d1d1次方和次方和1010的的d2d2次方之间产生次方之间产生N N个在对数上相等距离的点。个在对数上相等距离的点。31电气信息学院首页上页下页末页结束自动控制理论 num=10 4 10;den=1 0.8 9 0;w=logspace(-2,3,100);bode(num,den,w);title(bode Diagram of G(s)=10(s2+0.4s+1)/s(s2+0.8s+9)num=1-1;den=1 2;bode(num,den)32电气信息学院首页上页下页末页结束自动控制理论九
27、、用九、用MATLAB作奈奎斯特图作奈奎斯特图命令命令 nyquist可以计算连续时间、线性定常系统的频可以计算连续时间、线性定常系统的频率响应。当命令中不包含左方变量时,率响应。当命令中不包含左方变量时,nyquist仅仅在屏幕上产生奈奎斯特图。在屏幕上产生奈奎斯特图。其形式:其形式:nyquist(num,den)nyquist(num,den,w)其中,第二条指令包含有用户指定频率向量,可以在其中,第二条指令包含有用户指定频率向量,可以在指定的频率点上计算频率响应。指定的频率点上计算频率响应。当采用左方变量时,命令当采用左方变量时,命令 re,im,w=nyquist(num,den)re,im,w=nyquist(num,den,w)将把系统的频率响应表示成将把系统的频率响应表示成re,im,w,这时在屏幕上这时在屏幕上不产生图形不产生图形33电气信息学院首页上页下页末页结束自动控制理论num=1;den=1 0.2 1 1;nyquist(num,den);roots(den)num=1 2 1;den=1 0.2 1 1;nyquist(num,den)num=1;den=1 0.8 1 0;nyquist(num,den)num=1;den=1-1 0;nyquist(num,den)
限制150内