10 50 0 30 24 0 42 0 0 24 0 0 info=
[ ]
由系统返回的routh表可以看出,其第一列没有符号的变化,系统是稳定的。
3)赫尔维茨判据hurwitz()
赫尔维茨的调用格式为:H=hurwitz(den)。该函数的功能是构造hurwitz矩阵。其中,den为系统的分母多项式系数向量。
以上述多项式为例,由hurwitz判据判定系统的稳定性。
>>den=[1,10,35,50,24]; H=hurwitz(den) H=
10 50 0 0 1 35 24 0 0 10 50 0 0 1 35 24
由系统返回的hurwitz矩阵可以看出,系统是稳定的。与前面的分析结果完全一致。 注意:routh()和hurwitz()不是MATLAB中自带的功能函数,(在共享文件夹里有routh文件夹,把其中的routh.m和hurwitz .m放到MATLAB文件夹中work文件中才能运行)。 三、实验内容
1.观察函数step( )和impulse( )的调用格式,假设系统的传递函数模型为
s2?3s?7 G(s)?4 32s?4s?6s?4s?1可以用几种方法绘制出系统的阶跃响应曲线?试分别绘制。
2.对典型二阶系统
?n2 G(s)?22s?2??ns??n1)分别绘出?n?2(rad/s),?分别取0,0.25,0.5,1.0和2.0时的单位阶跃响应曲线,分析参数?对系统的影响,并计算?=0.25时的时域性能指标?p,tr,tp,ts,ess。
33
2)绘制出当?=0.25, ?n分别取1,2,4,6时单位阶跃响应曲线,分析参数?n对系统的影响。
3.系统的特征方程式为2s4?s3?3s2?5s?10?0,试用三种判稳方式判别该系统的稳定性。
4.单位负反馈系统的开环模型为
G(s)?K
(s?2)(s?4)(s2?6s?25)试分别用劳斯稳定判据和赫尔维茨稳定判据判断系统的稳定性,并求出使得闭环系统稳定的K值范围。 四、实验报告
1.根据内容要求,写出调试好的MATLAB语言程序,及对应的MATLAB运算结果。 2. 记录各种输出波形,根据实验结果分析参数变化对系统的影响。 3.总结判断闭环系统稳定的方法,说明增益K对系统稳定性的影响。 4.写出实验的心得与体会。 五、预习要求
1. 预习实验中基础知识,运行编制好的MATLAB语句,熟悉MATLAB指令及step( )和impulse( )函数。
2. 结合实验内容,提前编制相应的程序。 3.思考特征参量?和?n对二阶系统性能的影响。 4.熟悉闭环系统稳定的充要条件及学过的稳定判据。
实验三 线性系统的根轨迹
Experiment 3 Root locus analysis of linear system
一、实验目的
1. 熟悉MATLAB用于控制系统中的一些基本编程语句和格式。 2. 利用MATLAB语句绘制系统的根轨迹。 3. 掌握用根轨迹分析系统性能的图解方法。 4. 掌握系统参数变化对特征根位置的影响。 二、基础知识及MATLAB函数
根轨迹是指系统的某一参数从零变到无穷大时,特征方程的根在s平面上的变化轨
34
迹。这个参数一般选为开环系统的增益K。课本中介绍的手工绘制根轨迹的方法,只能绘制根轨迹草图。而用MATLAB可以方便地绘制精确的根轨迹图,并可观测参数变化对特征根位置的影响。
假设系统的对象模型可以表示为
b1sm?b2sm?1???bms?bm?1 G(s)?KG0(s)?Kns?a1sn?1???bn?1s?an系统的闭环特征方程可以写成
1?KG0(s)?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]=rlocus(num,den) 不作图,返回闭环根矩阵r和对应的开环增益向量k。
其中,num,den分别为系统开环传递函数的分子、分母多项式系数,按s的降幂排列。K为根轨迹增益,可设定增益范围。
例3-1:已知系统的开环传递函数G(s)?K?MATLAB的调用语句如下:
num=[1 1]; %定义分子多项式 den=[1 4 2 9]; %定义分母多项式 rlocus (num,den) %绘制系统的根轨迹 grid %画网格标度线
xlabel(‘Real Axis’),ylabel(‘Imaginary Axis’) %给坐标轴加上说明 title(‘Root Locus’) %给图形加上标题名
则该系统的根轨迹如图3-1所示:
35
(s?1),绘制系统的根轨迹的
s3?4s2?2s?9
若上例要绘制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)
执行前,先执行绘制根轨迹命令rlocus(num,den),作出根轨迹图。执行rlocfind命令时,出现提示语句“Select a point in the graphics window”,即要求在根轨迹图上选定闭环极点。将鼠标移至根轨迹图选定的位置,单击左键确定,根轨迹图上出现“+”标记,即得到了该点的增益K和闭环根r的返回变量值。
s2?5s?6例3-2:系统的开环传递函数为G(s)?K3,试求:(1)系统的根2s?8s?3s?25?轨迹;(2)系统稳定的K的范围;(3)K=1时闭环系统阶跃响应曲线。则此时的MATLAB的调用格式为:
G=tf([1,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的范围为K?(0.0264
36
3)绘制阻尼比?和无阻尼自然频率?n的栅格线sgrid( )
当对系统的阻尼比?和无阻尼自然频率?n有要求时,就希望在根轨迹图上作等?或等?n线。MATLAB中实现这一要求的函数为sgrid( ),该函数的调用格式为:
sgrid(?,?n) 已知?和?n的数值,作出等于已知参数的等值线。 sgrid(‘new’) 作出等间隔分布的等?和?n网格线。 例3-3:系统的开环传递函数为G(s)?1,由rlocfind函数找出能产生
s(s?1)(s?2)主导极点阻尼?=0.707的合适增益,如图3-3(a)所示。
G=tf(1,[conv([1,1],[1,2]),0]); zet=[0.1:0.2:1];wn=[1:10]; sgrid(zet,wn);hold on;rlocus(G) [k,r]=rlocfind(G)
Select a point in the graphics window selected_point = -0.3791 + 0.3602i k = 0.6233 r =
-2.2279 -0.3861 + 0.3616i -0.3861 - 0.3616i
同时我们还可以绘制出该增益下闭环系统的阶跃响应,如图3-3(b)所示。事实上,等?或等?n线在设计系补偿器中是相当实用的,这样设计出的增益K=0.6233将使得整
37