控制系统的根轨迹分析
时间:2015-03-29 21:19 来源:自动控制网
一、根轨迹分析方法的概念 所谓根轨迹是指,当开环系统某一参数从零变到无穷大时,闭环系统特征方程的根在s平面上的轨迹。一般来说,这一参数选作开环系统的增益K,而在无零极点对消时,闭环系统特征方程的根就是闭环传递函数的极点。 根轨迹分析方法是分析和设计线性定常控制系统的图解方法,使用十分简便。利用它可以对系统进行各种性能分析, 1.稳定性 当开环增益K从零到无穷大变化时,图中的根轨迹不会越过虚轴进入右半s平面,因此这个系统对所有的K值都是稳定的。如果根轨迹越过虚轴进入右半s平面,则其交点的K值就是临界稳定开环增益。 2.稳态性能 开环系统在坐标原点有一个极点,因此根轨迹上的K值就是静态速度误差系数,如果给定系统的稳态误差要求,则可由根轨迹确定闭环极点容许的范围。 3.动态性能
当0 例exp4_18.m %exp4_18.m %对根轨迹进行分析 %二阶开环系统为H(s)=K/(s*(0.5s+1)) clear closeall clc num=1; den=[0.510]; rlocus(num,den); text(0.1,0.1,'k=0'); text(-0.9,0.1,'k=0.5'); 二、根轨迹分析函数 通常来说,绘制系统的根轨迹是很繁琐的事情,因此在教科书中介绍的是一种按照一定规则进行绘制的概略根轨迹。在MATLAB中,专门提供了绘制根轨迹的有关函数。 pzmap:绘制线性系统的零极点图 rlocus:求系统根轨迹。 rlocfind:计算给定一组根的根轨迹增益。 sgrid:在连续系统根轨迹图和零极点图中绘制出阻尼系数和自然频率栅格。 (一)零极点图绘制 MATLAB提供了函数pzmap()来绘制系统的零极点图,其用法如下: [p,z]=pzmap(a,b,c,d):返回状态空间描述系统的极点矢量和零点矢量,而不在屏幕上绘制出零极点图。 [p,z]=pzmap(num,den):返回传递函数描述系统的极点矢量和零点矢量,而不在屏幕上绘制出零极点图。 pzmap(a,b,c,d)或pzmap(num,den):不带输出参数项,则直接在s复平面上绘制出系统对应的零极点位置,极点用×表示,零点用o表示。 pzmap(p,z):根据系统已知的零极点列向量或行向量直接在s复平面上绘制出对应的零极点位置,极点用×表示,零点用o表示。 exp4_19.m %零极点图的绘制 clc clear closeall %已知系统的状态空间描述模型 a=[03;-3-1]; b=[01]'; c=[13];d=2; [p1,z1]=pzmap(a,b,c,d) subplot(221) pzmap(p1,z1) subplot(222) pzmap(a,b,c,d) %已知系统传递函数模型 num=[2255110]; den=[11577840]; [p2,z2]=pzmap(num,den) subplot(223) pzmap(p2,z2) subplot(224) num1=[24]; den1=[8831]; pzmap(num1,den1) moreoff (二)根轨迹图绘制 MATLAB提供了函数rlocus()来绘制系统的根轨迹图,其用法如下: rlocus(a,b,c,d)或者rlocus(num,den):根据SISO开环系统的状态空间描述模型和传递函数模型,直接在屏幕上绘制出系统的根轨迹图。开环增益的值从零到无穷大变化。 rlocus(a,b,c,d,k)或rlocus(num,den,k):通过指定开环增益k的变化范围来绘制系统的根轨迹图。 r=rlocus(num,den,k)或者[r,k]=rlocus(num,den):不在屏幕上直接绘出系统的根轨迹图,而根据开环增益变化矢量k,返回闭环系统特征方程1+k*num(s)/den(s)=0的根r,它有length(k)行,length(den)-1列,每行对应某个k值时的所有闭环极点。或者同时返回k与r。 若给出传递函数描述系统的分子项num为负,则利用rlocus函数绘制的是系统的零度根轨迹。(正反馈系统或非最小相位系统) exp4_20.m %根轨迹图的绘制 clc clear closeall %已知系统的状态空间描述模型 a=[03;-3-1]; b=[01]'; c=[13];d=2; subplot(211) rlocus(a,b,c,d) %已知系统传递函数模型 num=[24]; den=[8310]; subplot(212) rlocus(num,den) [r,k]=rlocus(num,den); disp('r的维数') size(r) (三)rlocfind()函数 MATLAB提供了函数rlocfind()来找出给定的一组根(闭环极点)对应的根轨迹增益。其用法如下: [k,p]=rlocfind(a,b,c,d)或者[k,p]=rlocfind(num,den) 它要求在屏幕上先已经绘制好有关的根轨迹图。然后,此命令将产生一个光标以用来选择希望的闭环极点。命令执行结果:k为对应选择点处根轨迹开环增益;p为此点处的系统闭环特征根。 不带输出参数项[k,p]时,同样可以执行,只是此时只将k的值返回到缺省变量ans中。 (四)sgrid()函数 sgrid:在现存的屏幕根轨迹或零极点图上绘制出自然振荡频率wn阻尼比矢量z对应的格线。 sgrid(‘new’):是先清屏,再画格线。 sgrid(z,wn):则绘制由用户指定的阻尼比矢量z自然振荡频率wn的格线。 三、根轨迹分析应用实例 例exp4_21.m 已知某单位反馈系统的开环传递函数为: 要求:绘制系统的闭环根轨迹,并确定使系统产生重实根和纯虚根的开环增益k。 %根轨迹图的绘制 clc clear closeall %已知系统开环传递函数模型 num=1; den=conv([0.0110],[0.021]); rlocus(num,den) [k1,p]=rlocfind(num,den) [k2,p]=rlocfind(num,den) title('rootlocus') 例exp4_22.m某开环系统传递函数如下所示:要求绘制系统的闭环根轨迹,分析其稳定性,并绘制出当k=55和k=56时系统的闭环冲激响应。
%根轨迹图的绘制与分析 clc clear closeall %已知系统传递函数模型 numo=[12]; den=[143]; deno=conv(den,den); figure(1) k=0:0.1:150; rlocus(numo,deno,k) title('rootlocus') [p,z]=pzmap(numo,deno); %求出系统临界稳定增益 [k,p1]=rlocfind(numo,deno); k %验证系统的稳定性 figure(2) subplot(211) k=55; num2=k*[12]; den=[143]; den2=conv(den,den); [numc,denc]=cloop(num2,den2,-1); impulse(numc,denc) title('impulseresponsek=55'); subplot(212) k=56; num3=k*[12]; den=[143]; den3=conv(den,den); [numcc,dencc]=cloop(num3,den3,-1); impulse(numcc,dencc) title('impulseresponsek=56'); |