今天本来想发这一篇,结果无意间发现google drive里我找不到当初写的草稿了。可能是之前误操作把这篇给删除了,于是无奈地发现:只能重写。 在此提醒大家做好data backup。另一方面,不破不立,重写并不是什么难事,只要你理解了它们。 但是这次重写为了节约一些时间,我就从[1]中copy & paste一些公式,希望它们能帮助你的理解。

下一篇我们谈谈根轨迹法怎么分析和设计系统。(又要重写了...可怕)

历史这段本来是应该作为第一篇的,这次重写就补充进来吧。

本篇目录

  1. Back to the old times.
  2. 根轨迹概念回顾
  3. Why Root Locus
  4. Root-locus Form
  5. Determine a positive root locus
  6. Rules for determining positive root locus
  7. Magnitude Condition

1. Back To the Old Times

根轨迹方法(Root Locus Method)是控制理论学家与发明家W.R.Evans在1948年发明的一种设计控制系统的方法。我们把时钟调回过去,截止1948年控制上的一些比较大的成就:

Control theory dates from the 19th century, when the theoretical basis for the operation of governors was first described byJames Clerk Maxwell.[2]Control theory was further advanced byEdward Routhin 1874,Charles Sturmand in 1895,Adolf Hurwitz, who all contributed to the establishment of control stability criteria; and from 1922 onwards, the development of PID controltheory by Nicolas Minorsky.

以上摘自Wikipedia:Controy Theory 的一段简单讲述了控制理论的发展历史。注意控制的应用远早于19世纪。

自1783年James Watt改良可实用的蒸汽机后,John Rennie采用了离心调速器(Centrifugal Governor)自动控制了蒸汽机的轻质节流阀(throttle valve)。后续人们又开发出了类似的离心调速器,但是节流阀的控制却出现了不稳定现象,这一直困扰着工程师。直到第二个James的出现,我们更熟悉它的Last name, 大名鼎鼎的 J.C. Maxwell通过建立微分方程,发现只有系统微分方程的各根具有负实部才能保证系统的稳定性。[3][4]

1877年数学家Edward John Routh和后来1895年数学家Adolf Hurwitz都贡献了通过特征方程系数判断稳定性的方法,一般可以把他们的成果合称为 Routh-Hurwitz Criteria。 [3][4]

1922年俄国人 Nicolas Minorsky发表论文阐述PID控制律。[3][4]

1927年Bell Labs的Harold Black发明了负反馈放大器(Negative Feedback Amplifer)。[3][4]

1932年物理学博士Harry Nyquist发表频域稳定性判据:Nyquist Criterion。[3][4]

1938年物理学博士Hendrik Bode提出Bode plot,1940发表阐述Bode定理,相位裕度(Phase Margin)和幅值裕度(Gain Margin)用于控制系统分析与设计[3][4]

1942年Ziegler和Nichols发表Ziegler-Nichols Method,用于整定PID控制器参数。Nichols 后提出了Nichols Chart,成为控制图解设计的重要工具。 [3]

Cut! 我们不继续往后演了,再往后不是我们这部经典戏的片场了。

从18世纪的发明到经历完一战二战的20世纪40年代为止,经典控制已经基本成型了,大佬们都开始出专著了。这期间还有很多控制的应用成果没有详细例举。

在40年代末,我们这篇的主角Root Locus才被Evans提出来。所以这块东西讲道理应该是可以放在最末去讲的,因为学习前面这些大佬们的理论也不需要学习根轨迹的概念。

Gene. F. Franklin他们把Root Locus这块放到了教材[1]的靠前部分,至少在讲解Bode Plot和Nyquist Criterion之前。于是很多教材就也把根轨迹设计也放在了前面。

2. 根轨迹概念回顾

一个LTI开环系统闭环特征方程的所有根在s平面上随着某一开环系统参数从零到无穷变化产生的轨迹称为该系统的根轨迹(Root Locus)

用粗体缩句,并提炼根轨迹几个核心特点即:

  1. 根轨迹描述了开环系统的一个参数变化时闭环系统特征根变化规律。
  2. 根轨迹在画在复平面上。
  3. 系统的开环参数从0到无穷变化。

特征根影响了系统的闭环性能,所以根轨迹方法是用于闭环系统的分析与设计。

3. Why Root Locus?

从历史回顾里就发现了,Bode早就提出了频域设计方法,Nyquist提出了频域稳定性判据。那提出Root Locus的价值在哪里呢? 价值在于根轨迹可以更方便地研究参数变化时,系统性能的变化,尤其是高阶系统的性能。研究系统性能的变化,我们最终想得到什么呢? 很多时候我们都想要一个标准下的最优性能(optimal performance)。不过对于最初Evans提出的根轨迹方法,虽然我们能找到一个相对比较合适的参数来改变系统的性能,但是对于最优性能的求解要归结到很多年之后现代控制理论中的最优控制问题。也就是说,Evans的根轨迹方法并不能很好地解答最优性能的问题。

在当时那个年代,根轨迹设计方法应当属于非常实用的方法。到了现代,大家对控制系统的性能设计要求更高了,根轨迹设计法很多时候已经难以胜任了。但作为一种经典控制中经典的图解设计方法法,对于理解系统的性能与特征根位置的关系很有帮助

4. Root-locus Form

对于这样一个闭环系统而言:

假设没有外界干扰,其传递函数为

特征方程为:

我们从DGH中选择一个感兴趣的变化参数K,改写成 [公式] 的形式,移项后下式称为根轨迹形式(root-locus form):

下面这些都是等价的root-locus form

比如开环系统为

则闭环系统传递函数

[公式]

我们研究A变化时闭环系统方程的根轨迹,则有

[公式]

往往 [公式]  [公式] 会写成zeros与poles的乘积形式。当然这个简单的二阶系统的根直接求根公式都可以求出来。更高阶的系统才能体现根轨迹的优势。

5 . Determine a positive root locus

分析性能之前我们先解释这个L(s)。我们要画的所有轨迹都满足方程 [公式] ,其中K从0到正无穷发生变化。如果K是一个正实数,那么L(s)就是个负实数。 我们注意到L(s)本来应该是个复数,在这里K如果确实是正实数,那么L(s)就从复数成为了负实数,因为

[公式]

那么画到复平面上去,这个复数代表的点就落在了负半实轴上。在极坐标中,其角度总是为180度。于是定义这种K为正实数的根轨迹为 [公式] 根轨迹,或者叫Positive root locus。相对的,你自然想到了[公式] 根轨迹或者negative root locus,这时候K值就是负实数。画图方面规律是相似的。

然而这并不意味着根轨迹就一直落在实轴上了,因为我们的轨迹实际上是s的取值,并不是L(s)的取值。s满足方程 [公式] ,根据此式我们需要画出s在复平面上的轨迹。问题是我们不能通过直接求解这个方程的形式,因为高阶的方程求解非常困难。

接下来的工作就是依靠一套规则来勾勒出L(s)的根轨迹。 在这里L(s)就等价于了转化后的开环系统传递函数,从b(s)和a(s)知道了L(s)的零极点分布,就能画出闭环系统特征方程 [公式]的根轨迹。

怎么检查一个点 [公式] 是不是 [公式] 的根轨迹呢? 下面这个例子告诉我们,画在图上按照复数除法进行幅角计算

对于这样一个开环系统,我们选取s平面上的一个点 [公式] 来测试,结果 [公式] 这个复数落在负半实轴上,也就是它的幅角不是180,就是180+360 = 540,要么就是180 + 360 *2 = 900,等等等。那我们取 [公式] 试试:

这个点应该满足:

然而结果却是:

于是Sorry,这个点并不是根轨迹上的,重新再取吧。这就是Evans的工作,取每个点去试太累了,来一套规则总结下怎么找点吧。

6 . Rules for determining positive root locus

假设 [公式] 的分母[公式] 是n阶s多项式, [公式] 是m阶的。下面阐述画图规则。

下面的这些画图规则实际上不需要再记忆了,[2]中一共写了8条,[1]里讲了5条。

我在这里就讲3条,大概能画个草图就行了。准确的图采用MATLAB的rlocus命令分分钟就解决了。

牢牢记住,我们的检验标准

零极点与test point的幅角相加减的结果,即 [公式] 的幅角,为180度。

a. 说 [公式] 时,等价于开环传递函数的分母 [公式] ,那就说明了根轨迹都是满足n阶分母多项式为0的方程的,这说明根轨迹都是从 [公式] 个开环极点出发的。说 [公式] 正无穷的时候,方程还要满足,那s满足分子 [公式] 的点符合条件是一种情况,此时说明 [公式] 个开环零点是根轨迹的终点。那如果是 [公式] 无穷大的情况,因为 [公式] ,那剩下 [公式] 条轨迹就去无穷远的地方了,那你说哪个方向的无穷远呢? 这个参看Rule3。 于是起点和终点找到了

b. 说实轴上的点,如果右边极点和零点的个数加起来为奇数,那么这个点就在根轨迹上。这规则要记住很简单的,我在实轴上试取一点,要是有最终两个个极点在这个试点的右边,那么试点与他们之间的夹角一定是180+180 = 360。所以这个点不满足 [公式] ,实轴上这个点就不是根轨迹的点。换成零点也一样,右边只要有偶数个零极点,那么夹角就会是180的偶数倍。然而180度根轨迹上的必须满足 [公式] 表示的点是180的奇数倍。于是实轴上的点可以确定了。

c. 老胡在[2]的141页与142页放了Rule 3的证明。如果当 [公式] 值很大时, [公式] 自然就趋于0了。那么这时候要么根此时变成了 [公式] 的zeros,要么就是因为分母阶次高于分子阶次, [公式] 趋向于无穷大了。我们之前在Rule 1中说了, [公式] 个poles都去 [公式] 个zeros那里报到了,剩下那 [公式] 个poles就去无穷远了,分析 [公式] 后发现可以近似为 [公式] ,把分母除分子的最高次前两项近似为一个由 [公式] 个极点的 [公式] 。这时候根轨迹上的点与这 [公式] 个实轴上的极点之间的夹角之和必然满足180的奇数倍,即有:

于是无穷远处的根轨迹与实轴极点上连线,即渐近线的夹角就可以通过 [公式] 算出。

这个渐近线与实轴的交点 [公式] 其实是从找多项式的系数与零极点关系得到的,就不多展开了,公式也挺简单的,况且也不需要我们记。现在MATLAB一个命令就解决了。

7. Magnitude Condition

最后一点是关于如何在根轨迹上找增益K的问题。 我们如果用MATLAB画图那所有的增益K与信息都会在根轨迹上表示出来。

确定一个根轨迹上解的增益,可以通过求解

因为 [公式] 是一个正实数,所以就有幅值条件(Magnitude condition)

比如下面这个例子

化成零极点zpk形式,任意根轨迹上的点 [公式] 满足

根据上面的关系就有:

估计一下与zeros与poles的距离就可以估计出K值大小。

总结一下:

下一篇我们讲讲根轨迹的分析与设计。

这篇简单回顾了根轨迹出现前的经典控制的历史,应该说根轨迹出现之前经典控制的理论已经基本成熟了。根轨迹的出现更方便地帮助当时的工程师们进行变参数设计和分析,图解法也是因为当时计算机技术并不成熟而催生出来的工具。

在现代计算机高度发展的背景下,我们的计算能力已经大大加强了。强大的MATLAB可以随时调用其已有的库函数和Apps帮助我们完成控制中绝大部分的设计和画图工作。对于高性能的计算,如今MATLAB可以转换成C/C++,甚至再配合Nvidia CUDA技术实现我们想要的效果。无论身处哪个时代都要学会站在巨人的肩膀上。

虽然对于高维问题仍然困难重重,但是相信人类的发展,计算问题会一步步得到解决。

Reference

[1] G.F. Franklin, J.D. Powell, A.Emami-Naeini, Feedback Control of Dynamic Systems, 7th Edition, 2014, Pearson

[2] 胡寿松,自动控制原理(第六版),2013,科学出版社

[3] 王广雄 何朕,控制系统设计, 2008,清华大学出版社

[4] Wikipedia, Control theory, Hendrik Wade Bode,Harry NyquistNathaniel B. Nichols


若有纰漏,烦请指出。转载还请私信联系,请勿私自转载。O(∩_∩)O