资源描述
单击此处编辑母版标题样式,*,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,本章内容,(1)利用MATLAB分析系统的稳定性;,(2)利用MATLAB求取系统在典型和任意输入信号作用下的时域,响应;,(3)利用MATLAB绘制系统的根轨迹,在根轨迹上可确定任意点,的根轨迹增益,K,值,从而得到系统稳定的根轨迹增益,K,值范围;,(4)利用MATLAB绘制系统的Bode图、Nichols图和Nyquist图等,,并求取系统的幅值裕量和相位裕量;,(5)利用MATLAB分析具有时间延迟系统的频率特性;,(6)求取频率响应数据,且根据频率响应数据辩识系统的模型参数,(7)利用MATLAB分析系统的能控性和能观测性,并能对不完全,能控或不完全能观测的系统进行结构分解。,第7章 控制系统的计算机辅助分析,1,7.1 控制系统的稳定性分析,判断一个线性系统稳定性的一种最有效的方法是直接求出系统所有的极点,然后根据极点的分布情况来确定系统的稳定性,对于极点的求取我们在上节中已作过介绍,下面举例说明其判断方法。,系统的特征方程,|,s,I-,A,|=,s,n,+,a,1,s,n,-1,+,a,n-,1,s,+,a,n,0,的根称为系统的特征值,即系统的闭环极点。当然判断系统的稳定性同样可利用特征值来判断。,2,线性定常连续系统,(7-2),在平衡状态,x,e,=0处,渐近稳定的充要条件是:对任给的一个正定对称矩阵,Q,,存在一个正定的对称矩阵,P,,且满足矩阵方程,A,T,P,PAQ,而标量函数V(,x,)=,x,T,Px,是这个系统的一个二次型形式的李雅普诺夫函数。,MATLAB提供了李雅普诺夫方程的求解函数lyap(),其调用格式为,P,=lyap(,A,Q,),3,7.2 控制系统的时域分析,生成任意信号函数gensig()的调用格式为,u,t=gensig(type,Ta),或 u,t=gensig(type,Ta,Tf,T),其中 第一式产生一个类型为type的信号序列u(t),周期为Ta,type为以下标识字符串之一:sin正弦波;square方波;pulse脉冲序列;第二式同时定义信号序列u(t)的持续时间Tf和采样时间T。,4,例7-5,生成一个周期为5秒,持续时间为30秒,采样时间为0.1秒的方波。,解,Matlab窗口中执行以下命令可得图7-2所示结果。,u,t=gensig(square,5,30,0.1);,plot(t,u),axis(0,30 0.5 1.5),5,图7-2,6,例7-7,对于典型二阶系统,试绘制出无阻尼自然振荡频率,n,=6,阻尼比分别为0.2,0.4,1.0,2.0时系统的单位阶跃响应曲线。,8,解,MATLAB,程序为,执行后可得如图,7-4,所示,的单位阶跃响应曲线。,图,7-4,9,离散系统的单位阶跃响应函数dstep()的调用格式为,y,x=dstep(num,den,n),或 y,x=dstep(G,H,C,D,iu,n),式中 n为选定的取样点个数,当n省略时,取样点数由函数自动选取,其余参数定义同前。,10,例7-9,已知二阶离散系统,试求其单位阶跃响应。,解,MATLAB程序为,执行后得如图,7-6,所示的,单位阶跃响应曲线。,图,7-6,11,单位脉冲响应函数impulse()和dimpulse()与单位阶跃函数step()和dstep()的调用格式完全一致,这里就不一一列写了。,12,对于连续系统由初始状态所引引起的响应,即零输入响应,可由函数initial()来求得,其调用格式为,y,x,t=initial(A,B,C,D,x0),或 y,x,t=initial(A,B,C,D,x0,t),其中 x0为初始状态,其余参数定义同前。,13,6.任意输入函数的响应,连续系统对任意输入函数的响应可利用MATLAB的函数lsim()求取,其调用格式为,y,x=lsim(num,den,u,t),或 y,x=lsim(A,B,C,D,iu,u,t),其中 u为给定输入序列构成的矩阵,它的每列对应一个输入,每行对应一个新的时间点,其行数与时间t的长度相等。其他用法同step()函数。,14,7.3 根轨迹法,所谓根轨迹是指,当开环系统的某一参数从零变化到无穷大时,闭环系统的特征方程根在s平面上所形成的轨迹。一般地,将这一参数选作开环系统的增益,K,,而在无零极点对消时,闭环系统特征方程的根就是闭环传递函数的极点。,15,pzmap()函数可绘制系统的零极点图,其调用格式为,p,z=pzmap(A,B,C,D),或 p,z=pzmap(p,z),,p,z=pzmap(num,den),其中 列向量P为系统极点位置,列向量z为系统的零点位置。,可通过pzmap(p,z)绘制出零极点图,图中的极点用“”表示,零点用“o”表示。,16,对于图7-12所示的负反馈系统,其特征方程可表示为,或,利用rlocus()函数可绘制出当开环增益K由0至变化时,闭环系统的特征根在s平面变化的轨迹,该函数的调用格式为,r,K=rlocus(num,den),r,K=rlocus(num,den,K),或 r,K=rlocus(A,B,C,D),r,K=rlocus(A,B,C,D,K),其中 返回值r为系统的闭环极点,,K为相应的增益。,17,在系统分析过程中,常常希望确定根轨迹上某一点处的增益值,K,,这时可利用MATLAB中的rlocfind()函数,在使用此函数前要首先得到系统的根轨迹,然后再执行如下命令,K,poles=rlocfind(num,den),或 K,poles=rlocfind(A,B,C,D),执行上述命令后,将在屏幕上的图形中生成一个十字光标,使用鼠标移动它至所希望的位置,然后敲击鼠标左键即可得到该极点的位置坐标值poles以及它所对应的增益K值。,18,执行以上程序,并移动鼠标到根轨迹与虚轴的交点处单击鼠标左键后可得如图7-12所示的根轨迹和如下结果,selected_point=,K=,poles=,-3.0000,0.0000+1.4142i,图,7-12,20,由此可见根轨迹与虚轴交点处的增益,K,=6,这说明当,K,6时,系统不稳定;利用rlocfind()函数也可找出根轨迹从实轴上的分离点处的增益,K,=0.38,这说明当0,K,0.38时,系统为单调衰减稳定,当0.38,K,subplot(2,1,1);semilogx(w,20*log10(mag),subplot(2,1,2);semilogx(w,phase),在同一个窗口上同时绘制出系统的Bode图了,其中前一条命令中对幅值向量mag求取分贝(dB)值。,25,如果只想绘制出系统的Bode图,而对获得幅值和相位的具体数值并不感兴趣,则可以采用如下简单的调用格式,bode(num,den,),bode(A,B,C,D,iu,),或更简单地,bode(num,den),bode(A,B,C,D,iu),26,例7-16,已知二阶系统的开环传递函数为,10之间变化的Bode图”改为“绘制出当,n=3,和分别取0.2,0.4,0.6,0.8,1.0时系统的Bode图。,解,当,n,=3,,取时二阶系统的,Bode,图可直接采用,bode(),函数得到。,MATLAB,程序为,27,执行后得如图7-14所示Bode图。,从图中可以看出,当,0,时,相角趋于,0,,当,时,相角趋于,-180,0,,当,=,n,时,相角等于,-90,0,,此时的幅值也最大。,图7-14,28,在判断系统稳定性时,常常需要求出系统的幅值裕量和相位裕量。利用MATLAB控制系统工具箱提供的margin()函数可以求出系统的幅值裕量与相位裕量,该函数的调用格式为,Gm,Pm,Wcg,Wcp=margin(num,den),或 Gm,Pm,Wcg,Wcp=margin(A,B,C,D),式中 Gm和Pm分别为系统的幅值裕量和相位裕量,而Wcg 和Wcp分别为幅值裕量和相位裕量处相应的频率值。,29,例7-17,给定系统的开环状态空间表达式为,求系统的幅值裕量和相位裕量,并画出Bode图。,30,执行后得如下数据及图7-15所示Bode图。,图7-15,31,Gm=,Pm=,Wcg=,Wcp=,5.8275,幅值裕量,k,g=4.4922=13.0492dB,相位裕量,r,=23.0706度。,32,除了根据系统模型直接求取幅值和相位裕量之外,MATLAB的控制系统工具箱中还提供了由幅值和相位相应数据来求取裕量的方法,这时函数的调用格式为,Gm,Pm,Wcg,Wcp=margin(mag,phase,),式中 频率响应可以是由bode()函数获得的幅值和相位向量,也可以是系统的实测幅值与相位向量,为相应的频率点向量。,33,MATLAB也提供了直接的求取频率响应数据的函数freqresp(),其调用格式为,F=freqresp(num,den,sqrt(-1)*),或 F=freqresp(A,B,C,D,iu,sqrt(-1)*),式中 F为频率响应,为给定的频率范围向量。,34,5.系统的奈奎斯特图(Nyquist图),nyquist()函数的调用格式为,Re,Im,=nyquist(num,den),Re,Im,=nyquist(num,den,),Re,Im,=nyquist(A,B,C,D),Re,Im,=nyquist(A,B,C,D,iu),Re,Im,=nyquist(A,B,C,D,iu,),其中 返回值Re,Im和分别为频率特性的实部向量、虚部向量和对应的频率向量,有了这些值就可利用命令plot(Re,Im)来直接绘出系统的奈奎斯特图。,35,当然也可使用下面的简单命令来直接绘出系统的奈魁斯特图。,nyquist(num,den,),或 nyquist(A,B,C,D),更简单地 nyquist(num,den),或 nyquist(A,B,C,D,iu),它的使用方法基本同bode()函数的用法。,36,例7-20,已知系统的开环传递函数为,绘制Nyquist图,并判断系统的稳定性。,解,MATLAB命令为,num=0.5;den=1 2 1 0.5;,nyquist(num,den),执行后可得如图7-16所示的曲线,由于Nyquist曲线没有包围(-1,j0)点,且,P,0,所以由,G,(s),H,(s)构成的单位负反馈闭环系统稳定。,37,图7-16,38,step(A,B,C,D,t),生成任意信号函数gensig()的调用格式为,尼柯尔斯图(Nichols图),MATLAB的控制系统工具箱提供了多种求取线性系统频率响应曲线的函数,如表7-5所示。,(7)利用MATLAB分析系统的能控性和能观测性,并能对不完全,由此可见根轨迹与虚轴交点处的增益K=6,这说明当K 6时,系统不稳定;,由此可见根轨迹与虚轴交点处的增益K=6,这说明当K 6时,系统不稳定;,其中 第一式产生一个类型为type的信号序列u(t),周期为Ta,type为以下标识字符串之一:sin正弦波;,或 r,K=rlocus(A,B,C,D),3 将系统按能观测性和不能观测性进行分解,mag,phase,=bode(num,den,),执行以上程序,并移动鼠标到根轨迹与虚轴的交点处单击鼠标左键后可得如图7-12所示的根轨迹和如下结果,其他用法同step()函数。,该函数的调用格式为,6.尼柯尔斯图(Nichols图),函数调用格式为,mag,phase,=nichols(num,den,),或 mag,phase,=nichols(A,B,C,D,iu,),可见该函数的调用格式以及返回的值与bode()函数完全一致,事实上虽然它们使用的算法不同,但这两个函数得出的结果还是基本一致的。但Nichols图的绘制方式和Bode图是不同的,它可由以下命令绘制,plot(phase,20*log10(mag),当然,Nichols图也可采用与Bode图类似的简单命令来直接绘制。,39,例7-23,已知单位负反馈的开环传递函数为,试绘制Nichols图。,解,MATLAB,程序为,执行后可得如图7-20所示的Nichols图。,40,图7-20,41,7.离散系统的频率分析,离散时间系统的频率分析也可以调用相应的MATLAB控制系统工具箱函数来完成,这些函数是以连续系统的函数名前加一字母,d,来命名的,例如离散时间系统的Bode图可以由dbode()函数求出,离散时间系统的Nyquist图可以由dnyquist()函数来求出,以及离散时间系统Nichols图可以由dnichols()函数来求出,其实在MATLAB的控制系统工具箱中这样的函数命名方式是相当普遍的,它们的调用格式与连续系统类似。,42,8.时间延迟系统的频率分析,函数的调用格式为,num,den=pade(,n),该函数的调用格式为,num,den=invfreqs(F,m,n),或,num,den=invfreqs(mag.*exp(sqrt(-1)*phase),m,n),43,7.5 系统的能控性和能观测性分析,7.5.1 系统的能控性和能观测性,对于,n,阶线性定常系统,44,能控性矩阵为,U,c,=,B AB A,2,B,A,n-,1,B,当rank,U,c,=,n,时,系统的状态完全能控,否则系统不能控。,能观测性矩阵为,当rank,V,o,n,时,系统的状态完全能观测,否则系统状态不能观测。,45,在MATLAB中,可利用ctrb()和obsv()函数直接求出能控性和能观测性矩阵,从而确定系统的状态能控性和能观测性。它们的调用格式分别为,Uc=ctrb(A,B),Vo=obsv(A,C),其中 A,B,C为系统的各矩阵,Uc和Vo分别为能控性矩阵和能观测性矩阵,46,另外,利用系统的能控性和能观测性Gram矩阵,和,是否满秩,也可判别系统的能控性和能观测性。,在MATLAB中,求系统的能控和能观测性Gram矩阵的函数gram()的调用格式为,Wc=gram(A,B),和 Wo=gram(A,C),47,7.5.2 将系统按能控和不能控性进行分解,MATLAB的控制系统工具箱中提供了这种分解的函数ctrbf(),其调用格式为,Ac,Bc,Cc,Tc,Kc=ctrbf(A,B,C),其中 Tc为相似变换阵,Kc是长度为,n,的一个矢量,其元素为各个块的秩,sum(K)可求出A中能控部分的秩,Ac,Bc,Cc对应与转换后系统的A,B,C。,48,7.5.3 将系统按能观测性和不能观测性进行分解,MATLAB控制系统工具箱中,能观测性分解函数obsvf()的调用格式为,Ao,Bo,Co,To,Ko=obsvf(A,B,C),其中 To为相似变换阵,To是长度为n的一个矢量,其元素为各个块的秩,sum(K)可求出,A,中能观测部分的秩,Ao,Bo,Co对应与转换后系统的A,B,C。,49,7.6.2 模型降阶,函数的调用格式为,A,B,C,D=modred(A1,B1,C1,D1,elim,),式中 A1,B1,C1,D1为平衡实现系统的状态空间表达式模型参数,,elim,为要消去的状态变量序号,当然为获得较好的近似,消去的状态变量应该选为Gram矩阵元素的数值较小的变量,返回的A,B,C,D为所获得的降阶模型。,51,
展开阅读全文