matlab由公式绘制根轨迹步骤,第4章利用MATLAB绘制系统根轨迹.doc

第4章利用MATLAB绘制系统根轨迹

第4章 利用MATLAB绘制系统根轨迹

一、 利用MATLAB绘制系统根轨迹相关知识

假设闭环系统中的开环传递函数可以表示为:

则闭环特征方程为:

特征方程的根随参数K的变化而变化,即为闭环根轨迹。控制系统工具箱中提供了rlocus()函数,可以用来绘制给定系统的根轨迹,它的调用格式有以下几种:

rlocus(num,den)

rlocus(num, rlocus(G)

rlocus(G,K)

以上给定命令可以在屏幕上画出根轨迹图,其中G为开环系统G0(s)的对象模型,K为用户自己选择的增益向量。如果用户不给出K向量,则该命令函数会自动选择K向量。如果在函数调用中需要返回参数,则调用格式将引入左端变量。如

[R,K]=rlocus(G)

此时屏幕上不显示图形,而生成变量R和K。

R为根轨迹各分支线上的点构成的复数矩阵,K向量的每一个元素对应于R矩阵中的一行。若需要画出根轨迹,则需要采用以下命令:

plot(R,11)

plot()函数里引号内的部分用于选择所绘制曲线的类型,详细内容见表1。控制系统工具箱中还有一个rlocfind()函数,该函数允许用户求取根轨迹上指定点处的开环增益值,并将该增益下所有的闭环极点显示出来。这个函数的调用格式为:

[K,P]=rlocfind(G)

这个函数运行后,图形窗口中会出现要求用户使用鼠标定位的提示,用户可以用鼠标左键点击所关心的根轨迹上的点。这样将返回一个K变量,该变量为所选择点对应的开环增益,同时返回的P变量则为该增益下所有的闭环极点位置。此外,该函数还将自动地将该增益下所有的闭环极点直接在根轨迹曲线上显示出来。

例4.1 已知系统的开环传递函数模型为:

利用下面的MATLAB命令可容易地验证出系统的根轨迹如图4-1所示。

>> G=tf(1,[conv([1,1],[1,2]),0]);

rlocus(G);

grid

title(1Root_Locus Plot of G(s)=K/[s(s+1)(s+2)]1)

xlabel(1Real Axis1)  % 给图形中的横坐标命名。

ylabel(1Imag Axis1)   % 给图形中的纵坐标命名。

[K,P]=rlocfind(G)

用鼠标点击根轨迹上与虚轴相交的点,在命令窗口中可发现如下结果

select_point=0.0000+1.3921i

K=

5.8142

p=

-2.29830

-0.0085+1.3961i

-0.0085-1.3961i

所以,要想使此闭环系统稳定,其增益范围应为0

参数根轨迹反映了闭环根与开环增益K的关系。我们可以编写下面的程序,通过K的变化,观察对应根处阶跃响应的变化。考虑K=0.1,0.2,…,1,2,…,5,这些增益下闭环系统的阶跃响应曲线。可由以下MATLAB命令得到。

>> hold off;  % 擦掉图形窗口中原有的曲线。

图4-1 系统的根轨迹

t=0:0.2:15;

Y=[ ];

for K=[0.1:0.1:1,2:5]

GK=feedback(K*G,1);

y=step(GK,t);

Y=[Y,y];

end

plot(t,Y)

对于for循环语句,循环次数由K给出。系统画出的图形如图4-2所示。可以看出,当K的值增加时,一对主导极点起作用,且响应速度变快。一旦K接近临界K值,振荡加剧,性能变坏。

图4-2 不同K值下的阶跃响应曲线

4. MATLAB绘图的基本知识

通过以上实例的应用,我们已初步尝试了MATLAB的绘图功能。MATLAB具有丰富的获取图形输出的程序集。我们已用命令plot()产生线性x-y图形(用命令loglog、semilogx、semilogy或polar取代命令plot,可以产生对数坐标图和极坐标图)。所有这些命令的应用方式都是相似的,它们只是在如何给坐标轴进行分度和如何显示数据上有所差别。

(1)二维图形绘制

如果

你可能感兴趣的:(matlab由公式绘制根轨迹步骤,第4章利用MATLAB绘制系统根轨迹.doc)