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