1、实验四 线性系统的根轨迹一、实验目的1. 熟悉 MATLAB 用于控制系统中的一些基本编程语句和格式。2. 利用 MATLAB 语句绘制系统的根轨迹。3. 掌握用根轨迹分析系统性能的图解方法。4. 掌握系统参数变化对特征根位置的影响。基础知识及 MATLAB函数根轨迹是指系统的某一参数从零变到无穷大时,特征方程的根在 s 平面上的变化轨迹。这个参数一般选为开环系统的增益 K。课本中介绍的手工绘制根轨迹的方法,只能绘制根轨迹草图。而用 MATLAB 可以方便地绘制精确的根轨迹图,并可观测参数变化对特征根位置的影响。假设系统的对象模型可以表示为nnmmasbsabKsG11210)()( 系统的闭
2、环特征方程可以写成: 0)(对每一个 K 的取值,我们可以得到一组系统的闭环极点。如果我们改变 K 的数值,则可以得到一系列这样的极点集合。若将这些 K 的取值下得出的极点位置按照各个分支连接起来,则可以得到一些描述系统闭环位置的曲线,这些曲线又称为系统的根轨迹。1)绘制系统的根轨迹 rlocus()MATLAB 中绘制根轨迹的函数调用格式为:rlocus(num,den) 开环增益 k 的范围自动设定。rlocus(num,den,k) 开环增益 k 的范围人工设定。rlocus(p,z) 依据开环零极点绘制根轨迹。r=rlocus(num,den) 不作图,返回闭环根矩阵。r,k=rloc
3、us(num,den) 不作图,返回闭环根矩阵 r 和对应的开环增益向量 k。其中,num,den 分别为系统开环传递函数的分子、分母多项式系数,按 s的降幂排列。K 为根轨迹增益,可设定增益范围。例 3-1:已知系统的开环传递函数 ,绘制系统的924)1()(3ssKG根轨迹的 MATLAB 的调用语句如下:num=1 1; %定义分子多项式den=1 4 2 9; %定义分母多项式rlocus (num,den) %绘制系统的根轨迹grid %画网格标度线xlabel(Real Axis),ylabel(Imaginary Axis) %给坐标轴加上说明title(Root Locus)
4、%给图形加上标题名则该系统的根轨迹如图 3-1 所示: 若上例要绘制 K 在(1,10)的根轨迹图,则此时的 MATLAB 的调用格式如下,对应的根轨迹如图 3-2 所示。num=1 1; den=1 4 2 9; k=1:0.5:10;rlocus (num,den,k) 2)确定闭环根位置对应增益值 K 的函数 rlocfind()在 MATLAB 中,提供了 rlocfind 函数获取与特定的复根对应的增益 K 的值。在求出的根轨迹图上,可确定选定点的增益值 K 和闭环根 r(向量)的值。该函数的调用格式为:k,r=rlocfind(num,den)执行前,先执行绘制根轨迹命令 rloc
5、us(num,den) ,作出根轨迹图。执行rlocfind 命令时,出现提示语句“Select a point in the graphics window” ,即要求在根轨迹图上选定闭环极点。将鼠标移至根轨迹图选定的位置,单击左键确定,根轨迹图上出现“+”标记,即得到该点的增益 K 和闭环根 r 的返回变图 3-1 系统的完整根轨迹图形 图 3-2 特定增益范围内的根轨迹图形 量值。例 3-2:系统的开环传递函数为 ,试求:(1)25386)(23ssKG系统的根轨迹;(2)系统稳定的 K 的范围;(3) K=1 时闭环系统阶跃响应曲线。则此时的 MATLAB 的调用格式为:G=tf(1,
6、5,6,1,8,3,25); rlocus (G); %绘制系统的根轨迹 k,r=rlocfind(G) %确定临界稳定时的增益值 k 和对应的极点 r G_c=feedback(G,1); %形成单位负反馈闭环系统step(G_c) %绘制闭环系统的阶跃响应曲线则系统的根轨迹图和闭环系统阶跃响应曲线如图 3-2 所示。其中,调用 rlocfind()函数,求出系统与虚轴交点的 K 值,可得与虚轴交点的 K 值为 0.0264,故系统稳定的 K 的范围为 。),0264.(二、实验内容请绘制下面系统的根轨迹曲线 )136)(2()2ssKsG)0()(12)10)(74.(5)2ssKsG(a
7、)根轨迹图形 (b)K=1 时的阶跃响应曲线图 3-2 系统的根轨迹和阶跃响应曲线同时得出在单位阶跃负反馈下使得闭环系统稳定的 K 值的范围。1.1,程序代码num=0,0,0,0,0,1; %定义分子多项式den=1,8,27,38,26,0; %定义分母多项rlocus(num,den); %绘制系统的根轨迹grid %画网格标度线k,r=rlocfind(num,den)xlabel(Real Axis);ylabel(Imaginary Axis)title(Root Locus);12,截屏图k = 0.6981r =-2.9946 + 2.0027i;-2.9946 - 2.002
8、7i; -0.9914 + 0.9696i; -0.9914 - 0.9696i; -0.0280k =0.8946r = -2.9931 + 2.0035i;-2.9931 - 2.0035i; -0.9887 + 0.9607i;-0.9887 - 0.9607i;-0.0363k = 31.4829r =-2.8088 + 2.1856i;-2.8088 - 2.1856i ;-2.4150 ; 0.0163 + 1.0144i; 0.0163 - 1.0144ik =40.4848r =-2.7794 + 2.2469i; -2.7794 - 2.2469i; -2.6459 ; 0.
9、1024 + 1.0897i;0.1024 - 1.0897i1.3,分析可知 k 的范围是(0.698140.4848)2.1,程序代码num=0,0,0,1,12; %定义分子多项式den=1,23,121,1220,1000; %定义分母多项rlocus(num,den); grid %绘制系统的根轨迹 k,r=rlocfind(num,den)xlabel(Real Axis);ylabel(Imaginary Axis);title(Root Locus) ;22,截屏图k =18.4941r = -19.8919 -1.0151 + 7.4803i-1.0151-7.4803i-1
10、.0780 k =110.5021r =-19.9853 -0.5160 + 7.6445i-0.5160 - 7.6445i -1.9826k =194.8401r =-20.0707 -0.1144 + 7.8470i-0.1144 - 7.8470i-2.7005 k =273.5006r =-20.1500 0.2109 + 8.0566i0.2109 - 8.0566i-3.2717 2.3,分析可知:k 的范围是(18.4941273.5006)3.1,程序代码num=0,0,0,0.05,1; %定义分子多项式den=0.0008568,0.01914,0.1714,1,0; %
11、定义分母多项rlocus(num,den); grid %绘制系统的根轨迹 k,r=rlocfind(num,den)xlabel(Real Axis);ylabel(Imaginary Axis);title(Root Locus) ;32,截屏图k =0.5225r =-13.9230 -3.9290 + 7.9404i-3.9290 - 7.9404i-0.5580 k =3.3944r =-13.3489 -2.0233 + 7.4794i-2.0233 - 7.4794i-4.9434 k =7.6385r =-0.0916+8.4713i-0.0916-8.4713i -11.07
12、79 + 1.2238i-11.0779 - 1.2238ik =8.4866r = -11.3214+1.8886i-11.3214-1.8886i0.1519+8.6696i0.1519-8.6696i3.3,分析可知:k 的范围是(0.5225,8.4866)三,实验体会与总结:通过自动控制原理实验的学习与调试,使我学习和了解了许多知识。首先是对关自动控制原理相关的知识点有了更深刻的理解,原本课本上不是很懂得知识点许多都得到了相应的解答;其次是对这门课有了新的认识和理解,原本不知道学习这门课有什么作用,觉得无聊,不过现在才发现,学习、掌握好这门课不仅可以使我们队信号处理的过程与原理有了根本的理解和应用,而且可以方便的利用相关知识去理解和解答相关疑难问题;更重要的事学习和掌握了许多相关 matlab 软件的应用方法和知识,在学习技能和方法上使得自己有了更高的进步,掌握了又多一门的学习技能和方法,为以后学习和应用打下了相关的基础知识与根基,相信在以后的学习和生后中都将受益。不过,我也从中认识到自己在相关知识领域的认识不足和缺陷,不过通过实验的过程都有所了解和体会,在以后的学习过程中就会多方面去注意,查漏补缺。综合而言,这门课的实验课给了我一个愉快的,丰厚的过程。感谢这门课所带给我的巨大作用,同时感谢指导老师耐心细致的开导与指点,此致敬礼。