资源描述
,第六章 控制系统的时频分析法,第六章 控制系统的时频域分析方法,6.1,控制系统的时域分析,6.2,控制频域分析,6.3,根轨迹分析,(一)时域响应概述:,回顾时域响应的性能指标,(,1,)动态性能指标,上升时间、峰值时间、超调量、调整时间,(,2,)稳态性能指标,稳态误差,控制系统最常用的时域分析方法是,:,当输入信号为单位阶跃和单位冲激函数时,求出系统的输出响应,(二)时域响应常用的,Matlab,函数:,产生输入信号:,gensig,求取系统单位阶跃响应:,step,求取系统的冲激响应:,impulse,连续系统的零输入响应:,initial,连续系统对任意输入的响应:,lsim,求系统稳态值:,dcgain,求具有反馈结构的闭环传函:,feedback,对于离散系统只需在连续系统对应函数前加,d,就可以,如,dstep,,,dimpulse,dinitial,dlsim,等。调用格式与,step,、,impulse,类似。,1,、,gensig(),函数的用法,u,t=gensig(type,tau),u,t=gensig(type,tau,tf,ts),信号序列,时间序列,信号类型,信号周期,持续时间,采样时间,eg1.,生成一个周期为,2*pi,持续时间为,50s,,采样时间为,0.01s,的正弦波和方波信号。,程序:,u1,t1=gensig(,sin,2*pi,50,0.01);,u2,t2=gensig(,square,2*pi,50,0.01);,plot(t1,u1,t2,u2),axis(0 50-1.2 1.2),xlabel(,time/s,),ylabel(,c(t),),2,、,step(),函数的用法,step(sys);step(sys,t);,y=step(num,den,t);,y,x,t=step(num,den);,y,x,t=step(A,B,C,D,iu);,输出矩阵,状态轨迹,时间序列自动生成,时间向量,0,t,eg2.,求下列系统在输入信号为,r(t)=10*1(t),输入时,系统在,0 20s,的响应曲线。,程序:,K=10;Z=-1;P=-2-3;,num,den=zp2tf(Z,P,K);,sys=tf(num,den);,t=0:0.2:20;,step(sys,t),xlabel(,time/s,),ylabel(,c(t),),3,、,dstep(),函数的用法,dstep(numz,denz);,dstep(A,B,C,D);,dstep(A,B,C,D,iu);,第,iu,个输入,eg3.,求下列系统的阶跃响应曲线。,程序:,numz=1-1.2 0.4;,denz=1.2-1.5 0.9;,dstep(numz,denz),xlabel(,time/s,),ylabel(,c(t),),4,、,impluse(),函数的用法,impluse(sys);impluse(sys,t);,y=impluse(num,den,t);,y,x,t=impluse(num,den);,y,x,t=impluse(A,B,C,D,iu);,输出矩阵,状态轨迹,时间序列自动生成,时间向量,0,t,eg4.,求下列系统的脉冲响应曲线。,程序:,K=1;Z=-1;P=-2-3;,num,den=zp2tf(Z,P,K);,sys=tf(num,den);,t=0:0.2:20;,impulse(sys,t),xlabel(,time/s,),ylabel(,c(t),),5,、,dimpulse(),函数的用法,dimpulse(numz,denz);,dimpulse(A,B,C,D);,dimpulse(A,B,C,D,iu);,第,iu,个输入,eg5.,将下列连续系统离散化,并求其离散状态系统的冲激响应曲线。,程序:,离散化:,a=-0.5-0.8;0.4 0;b=1;-1;,c=2 5;d=0;,G,H,Cd,Dd=c2dm(a,b,c,d,0.1),冲激响应:,dimpulse(G,H,Cd,Dd),6,、,initial(),函数的用法,y,t,x=initial(sys,x0);,y,t,x=initial(sys,x0,t);,7,、,dinitial(),函数的用法,dinitial(sys,x0);,y,x,n=dinitial(sys,x0,n);,eg6.,求下列系统在,x0=1;1,时,系统的零输入响应。,程序:,a=-0.5-0.8;-0.4 0.4;b=1;-1;,c=2-5;d=2;,x0=1;1;,t=0:0.1:30;,initial(a,b,c,d,x0,t),eg7.,求下列系统在,x0=1;1.2,时,系统的零输入响应。,程序:,G=-0.5-0.8;0.4 1;H=1;-1;,C=1-5;D=2;,x0=1;1.2;,dinitial(G,H,C,D,x0),8,、,lsim(),函数的用法,y,t,x=lsim(sys,u,t);,y,t,x=lsim(sys,u,t,x0);,9,、,dlsim(),函数的用法,dlsim(sys,u);,y,x=dlsim(sys,u,x0);,eg8.,求下列系统的正弦响应。其中:周期,2*pi,时间,t=30s,采样周期取,0.1s.,程序:,a=-0.5-0.8;0.4 0.4;b=1;-1;,c=2-5;d=2;,sys=ss(a,b,c,d),u,t=gensig(,sin,2*pi,30,0.1),lsim(sys,u,t),11,、,dcgain(),函数的用法,k=dcgain(sys);,12,、,feedback(),函数的用法,sys=feedback(sys1,sys2);,eg9.,给出如下系统的开环传递函数,试用,MATLAB,求取其单位阶跃响应和系统的稳定响应输出值。,程序:,num=1;,den=1 3 3 4 0;,numc,denc=cloop(num,den);,t=0:0.1:20;,y=step(numc,denc,t);,plot(t,y),title(,Step response,),xlabel(,Time/s,),dc=dcgain(numc,denc),dc=1.,eg10.,给出如下系统的开环传递函数,试用,MATLAB,求取其单位加速度响应。,程序:,num=3;,den=1 4 3 0 0 0;,t=0:0.1:20;,y=step(num,den,t);,plot(t,y),title(,Step response,),xlabel(,Time/s,),6.2,频域分析:,以频率特性作为数学模型来分析、设计控制系统的方法称为频率特性法。它具有明确的物理意义,计算量较小,一般可采用作图方法或实验方法求出系统或元件的频率特性。,常用的作图方法:,Bode,图,奈奎斯特图,频域响应常用的,Matlab,函数:,画,Bode,图:,bode,画奈奎斯特图:,nyquist,画尼克尔斯图:,nichols,绘制零极点位置:,pzmap,计算增益和相位裕度:,margin,对于离散系统只需在连续系统对应函数前加,d,就可以,如,dbode,,,dnyquist,dnichols,。调用格式类似。,(,1,),Bode,图,1.,产生频率向量,横轴,频率向量可由,logspace(),函数来构成。此函数的调用格式为,=logspace(m,n,npts),此命令可生成一个以,10,为底的指数向量,(10,m,10,n,),,点数由,npts,任意选定。,10,m,10,n,npts,2.,输入画,Bode,图的命令,纵轴,连续系统的伯德图可利用,bode(),函数来绘制,连续系统的调用格式为:,bode(sys);bode(sys,w);,mag,phase,w=bode(num,den),mag,phase=bode(num,den,w),mag,phase,w=bode(A,B,C,D),mag,phase,w=bode(A,B,C,D,iu),式中,num,den,和,A,B,C,D,分别为系统的开环传递函数和状态方程的参数,,w,为,Bode,图的频率点。,幅频,相频,离散系统的调用格式为:,mag,phase,w=dbode(numz,denz,Ts),mag,phase=dbode(numz,denz,Ts,w),mag,phase,w=dbode(A,B,C,D,Ts,iu),mag,phase,w=dbode(A,B,C,D,Ts,iu,w),式中,numz,denz,和,A,B,C,D,分别为系统的开环传递函数和状态方程的参数,,Ts,为取样频率,w,为,Bode,图的频率点。,幅频,相频,3.,显示绘制结果,可以利用下面的,MATLAB,命令,subplot(2,1,1);semilogx(w,20*log10(mag),subplot(2,1,2);semilogx(w,phase),subplot,把屏幕分成两个部分,semilogx,生成半对数坐标图,同一个窗口上同时绘制出系统的,Bode,图了,其中前一条命令中对幅值向量,mag,求取分贝,(dB),值。,M,行,N,列,4.,求幅值裕量和相位裕量,在判断系统稳定性时,常常需要求出系统的幅值裕量和相位裕量。利用,MATLAB,控制系统工具箱提供的,margin(),函数可以求出系统的幅值裕量与相位裕量,该函数的调用格式为,Gm,Pm,Wcg,Wcp=margin(sys),或,Gm,Pm,Wcg,Wcp=margin(sys),式中,Gm,和,Pm,分别为系统的幅值裕量和相位裕量,而,Wcg,和,Wcp,分别为幅值裕量和相位裕量处相应的频率值。,例,5-2,已知二阶系统的开环传递函数为,试绘制系统的开环频率特性曲线,k=1.5;,ng=1.0;,dg=poly(0-1-2);,w=logspace(-1,1,100);,m,p=bode(k*ng,dg,w);,subplot(2,1,1);,semilogx(w,20*log10(m);,grid;ylabel(,增益,(dB);,subplot(2,1,2);,semilogx(w,p);,grid;xlabel(,频率,(rad/s);,ylabel(,相角,(deg);,Gm,Pm,Wcg,Wcp=margin(k*ng,dg),Gm=,4.0000,Pm=,41.5340,Wcg=,1.4142,Wcp=,0.6118,G=20*log10(Gm),G=,12.0412,相位裕量,幅值裕量,练习,已知二阶系统的开环传递函数为,试绘制系统的,Bode,图,k=10;,z=-4;,p=0-0.5-50-50;,num,den=zp2tf(z,p,k);,Bode(num,den);,title(Bode plot);,grid on,(,2,),Nyquist,图,连续系统函数的调用格式为,nyquist(sys),nyquist(sys,w),Re,Im,w=nyquist(num,den),Re,Im,w=nyquist(num,den,w),Re,Im,w=nyquist(A,B,C,D),其中,返回值,Re,Im,和,w,分别为频率特性的实部向量、虚部向量和对应的频率向量,离散系统函数的调用格式为,dnyquist(a,b,c,d,Ts),dnyquist(a,b,c,d,Ts,iu),dnyquist(a,b,c,d,Ts,iu,w),其中,TS,和,w,分别为频率特性的取样时间和对应的频率向量,例例,5-16,、,5-17,例,绘制,的,nyquist,图和,bode,图。,解,MATLAB,编程如下:,num=10;,den=1,1.2,10;,w=logspace(-2,2,1000);,nyquist(num,den,w),grid,bode(num,den,w),grid,练习,已知系统的开环传递函数,绘制系统,nyquist,曲线。,解,MATLAB,编程如下:,k=50;,z=;,p=-5 2;,num,den=zp2tf(z,p,k);,nyquist(num,den),(,3,),Nichols,图,连续系统函数的调用格式为,nichols(sys),nichols(sys,w),nichols(num,den),nichols(num,den,w),nichols(A,B,C,D),其中,w,对应的频率向量,离散系统函数的调用格式为,dnichols(num,den,Ts),dnichols(num,den,Ts,w),dnichols(a,b,c,d,Ts),dnichols(a,b,c,d,Ts,iu),dnichols(a,b,c,d,Ts,iu,w),其中,TS,和,w,分别为频率特性的取样时间和对应的频率向量,例例,5-18,、,5-19,(,4,),pzmap,绘制零极点位置,调用格式为,pzmap(p,z);,P,零点向量,z,极点向量,例,5-24,重要,(三)根轨迹:,所谓根轨迹是指,当开环系统某一参数从零变到无穷大时,闭环系统特征方程的根在,s,平面上的轨迹。一般来说,这一参数选作开环系统的增益,K,,而在无零极点对消时,闭环系统特征方程的根就是闭环传递函数的极点。,根轨迹分析方法是分析和设计线性定常控制系统的图解方法,使用十分简便。,通常来说,绘制系统的根轨迹是很繁琐的事情,因此在教科书中介绍的是一种按照一定规则进行绘制的概略根轨迹。在,MATLAB,中,专门提供了绘制根轨迹的有关函数。,rlocus,:,求系统根轨迹。,rlocfind,:,计算给定一组根的根轨迹增益。,对于图所示的负反馈系统,其特征方程可表示为,或,利用,rlocus(),函数可绘制出当开环增益,K,由,0,至变,化时,闭环系统的特征根在,s,平面变化的轨迹,函,数的调用格式为:,rlocus(GH);rlocus(GH,k);,r,K=rlocus(num,den),r,K=rlocus(a,b,c,d),其中:返回值,r,为系统的闭环极点,,K,为相应的增益。,例,num=1 1;den=1 5 6 0;rlocus(num,den),r=rlocus(num,den,10),r=,-2.1056+2.8714i,-2.1056-2.8714i,-0.7887,K(s+1),s(s+2),1,(s+3),-,R(s),C(s),r,k=rlocus(num,den),命令,K,poles=rlocfind(num,den),或,K,poles=rlocfind(A,B,C,D),了解特定的复根对应的增益,K,的取值,只有运行了,rlocus,函数并得到根轨迹后,才能合法调用,运行,rlocfind,函数后,,MATLAB,会在根轨迹图上产生,+,提示符,通过鼠标将提示符移动到根轨迹相应的位置确定,所选的,K,值就会在命令窗口显示,selected_point=,-0.3212+0.0000i,k=,2.1281,poles=,-2.3394+1.0735i,-2.3394-1.0735i,-0.3212,例,特定的根对应的增益,K,rlocus(num,den),k,poles=rlocfind(num,den),Select a point in the,graphics window,
展开阅读全文