制系统的稳定性分析
时间:2015-03-29 21:17 来源:自动控制网
一、系统稳定及最小相位系统判据 对于连续时间系统,如果闭环极点全部在S平面左半平面,则系统是稳定的。 对于离散时间系统,如果系统全部极点都位于Z平面的单位圆内,则系统是稳定的。 若连续时间系统的全部零极点都位于S左半平面;或若离散时间系统的全部零极点都位于Z平面单位圆内,则系统是最小相位系统。 二、系统稳定及最小相位系统的判别方法 (一)间接判别(工程方法) 劳斯判据:劳斯表中第一列各值严格为正,则系统稳定,如果劳斯表第一列中出现小于零的数值,系统不稳定。 胡尔维茨判据:当且仅当由系统分母多项式构成的胡尔维茨矩阵为正定矩阵时,系统稳定。 (二)直接判别 MATLAB提供了直接求取系统所有零极点的函数,因此可以直接根据零极点的分布情况对系统的稳定性及是否为最小相位系统进行判断。 例exp4_1.m 已知某系统的模型如右所示: 要求判断系统的稳定性及系统是否为最小相位系统。 %exp4_1.m clear clc closeall %系统描述 a=[12-12;2630;47-8-5;7216]; b=[-1001]'; c=[-2561];d=7; %求系统的零极点 [z,p,k]=ss2zp(a,b,c,d) %检验零点的实部;求取零点实部大于零的个数 ii=find(real(z)>0) n1=length(ii); %检验极点的实部;求取极点实部大于零的个数 jj=find(real(p)>0) n2=length(jj); %判断系统是否稳定 if(n2>0) disp('thesystemisunstable') disp('theunstablepoleare:') disp(p(jj)) else disp('thesystemisstable') end %判断系统是否为最小相位系统 if(n1>0) disp('thesystemisanonminimalphaseone') else disp('thesyetemisaminimalphaseone') end %绘制零极点图 pzmap(p,z) 例exp4_2.m 系统模型如下所示,判断系统的稳定性,以及系统是否为最小相位系统。
%exp4_2.m clear clc closeall %系统描述 num=[3164128]; den=[11411052814942117112]; %求系统的零极点 [z,p,k]=tf2zp(num,den) %检验零点的实部;求取零点实部大于零的个数 ii=find(real(z)>0) n1=length(ii); %检验极点的实部;求取极点实部大于零的个数 jj=find(real(p)>0) n2=length(jj); %判断系统是否稳定 if(n2>0) disp('thesystemisunstable') disp('theunstablepoleare:') disp(p(jj)) else disp('thesystemisstable') end %判断系统是否为最小相位系统 if(n1>0) disp('thesystemisanonminimalphaseone') else disp('thesyetemisaminimalphaseone') end %绘制零极点图 pzmap(p,z) p z ii=find(条件式) 用来求取满足条件的向量的下标向量,以列向量表示。 例如exp4_1.m中的条件式为real(p>0),其含义就是找出极点向量p中满足实部的值大于0的所有元素下标,并将结果返回到ii向量中去。这样如果找到了实部大于0的极点,则会将该极点的序号返回到ii下。如果最终的结果里ii的元素个数大于0,则认为找到了不稳定极点,因而给出系统不稳定的提示,若产生的ii向量的元素个数为0,则认为没有找到不稳定的极点,因而得出系统稳定的结论。 pzmap(p,z) 根据系统已知的零极点p和z绘制出系统的零极点图 |