自动控制原理综合实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六 MATLAB 及仿真实验(控制系统的根轨迹分析)
一 实验目的
1.利用计算机完成控制系统的根轨迹作图
2.了解控制系统根轨迹图的一般规律
3.利用根轨迹图进行系统分析
二 预习要点
1. 预习什么是系统根轨迹?
2. 闭环系统根轨迹绘制规则。
三 实验方法
(一)方法:当系统中的开环增益k 从0到变化时,闭环特征方程的根在复平面上的一组曲线为根轨迹。设系统的开环传函为:)()()(0s Q s N k
s G =,则系统的闭环特征方程为:0)()(1)(10=+=+s Q s N k
s G 根轨迹即是描述上面方程的根,随k 变化在复平面的分布。
(二)MATLAB 画根轨迹的函数常用格式:利用Matlab 绘制控制系统的根
轨迹主要用pzmap ,rlocus ,rlocfind ,sgrid 函数。
1、零极点图绘制
❑ [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 表示。
2、根轨迹图绘制
❑ 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函数绘制的是系统的零度根轨迹。(正反馈系统或非最小相位系统)
3、rlocfind()函数
❑[k,p]=rlocfind(a,b,c,d)或者[k,p]=rlocfind(num,den)
它要求在屏幕上先已经绘制好有关的根轨迹图。然后,此命令将产生一个光标以用来选择希望的闭环极点。命令执行结果:k为对应选择点处根轨迹开环增益;p为此点处的系统闭环特征根。
❑不带输出参数项[k,p]时,同样可以执行,只是此时只将k的值返回到缺省变量ans中。
4、sgrid()函数
❑sgrid:在现存的屏幕根轨迹或零极点图上绘制出自然振荡频率wn、阻尼比矢量z对应的格线。
❑sgrid(‘new’):是先清屏,再画格线。
❑sgrid(z,wn):则绘制由用户指定的阻尼比矢量z、自然振荡频率wn的格线。
四 MATLAB在根轨迹法中的应用示例
在用根轨迹法对控制系统的性能作分析时,必须先绘制具有一定准确度的根轨迹草图,这就要花费较多时间。用MATLAB的相关指令,能既迅速又较精确地绘制系统的根轨迹图,并方便地确定根轨迹图上任一点所对应的一组闭环极点和相应的根轨迹增益值。绘制根轨迹的常用命令为rlocus (num,den) 或rlocus (num,den,K)。若参变量K的范围是给定的,则MATLAB将按给定的参数范围绘制根轨迹;否则K是自动确定,其变化范围为0~∞。
例1已知某单位反馈系统的开环传递函数,试用MATLAB 绘制系统的根轨迹。
()()()=+1+2K
G s s s s
解:程序设计如下
K=1;Z=[];
P=[0 -1 -2];
[num,den]=zp2tf(Z,P,K); %将以零、极点形式表示的G(s)
rlocus(num,den); %转换为传递函数的一般形式
V=[-4 2 -3 3]; %坐标范围
axis(V);
title('Root-locus plot of G(s)=K/s(s+1)(s+2)');
xlabel('Re');
ylabel('Im');
运行结果如图所示。
图1 系统的根轨迹
例2某控制系统如图4-23所示,其中()()1.2c G s K s =+, ()
01
()=+1G s s s ,
()1
=+7H s s ,试用MATLAB 绘制该系统的根轨迹。 +G c (s)G 0(s)H(s)R(s)C(s)- H (s )
C (s )
R (s ) G c (s ) G 0(s )
图2 系统的结构图
解:程序设计如下
Gc=tf([1 1.2],[1]);
Go=tf([1],[1 1 0]);
H=tf([1],[1 7]);
rlocus(Gc* Go* H);
V=[-10 1 -6 6];
axis(V);
grid on ;
xlabel('Re');
ylabel('Im');
运行结果如图所示。
图2 系统的根轨迹图
在对系统性能的分析过程中,一般需要确定根轨迹图上某一点的根轨迹增益值和其他对应的闭环极点。在应用rlocus 指令后,需调用指令
[K2,P2]=rlocfind(num,den)。运行该指令后,在显示根轨迹图形的屏幕上会生成一个十字光标,同时在MATLAB 的命令窗口出现“Select a point in the graphics window ”,提示用户选择某一个点。当使用鼠标移动十字光标到所希望的位置后,单击左键,在MATLAB 的命令窗口就会显示该点的数值、增益值和对应的其他闭环极点。
五 实验内容
1.()()()21++=s s s k s G g
要求: