前面3篇博客分析了扩张状态观测器(ESO)收敛性分析的套路,基本上是过了一遍原文献的证明步骤,穿插一些说明,目的在于让人看清证明背后的思想。考虑到ESO是自抗扰控制(ADRC)的核心,因此ADRC的稳定性证明套路其实在一定程度上也借鉴了ESO收敛性套路。文献[1]首次给出了多输入多输出系统ADRC稳定性的完整证明,但其使用的符号比较多,且数学味过于浓厚,毕竟文献[1]对应的期刊其实是一本数学期刊,不太容易吸引人阅读,不过其证明的实质套路一直得到了传承和发扬,此后一连串的文献都沿袭了文献[1]的套路,比如文献[2]。因此,如果想知道ADRC的稳定性证明套路,文献[2]值得推荐,比文献[1]的可读性强一些。

这里不打算再像之前博客那样过一遍文献[2]的证明步骤了,仅仅分析其思想,因此只罗列部分公式以对套路进行辅助说明,感兴趣的读者可以直接找来文献[2]仔细研读。文献[2]考虑下面的下三角形式的系统:

其中, 为系统状态,为所谓的零动态(控制理论喜欢玩的一套,这里仅仅为了增加公式表面复杂性来装B),y(t)为输出,u(t)为控制输入,w(t)为外部干扰,b 为不知道准确值的控制系数,但是有一个比较接近的名义值b 0,事实上,要是b 完全未知,那么理论推导导相当复杂,可以说,ADRC里面最关键的参数就是这个b 了。

直接考虑系统(1)的ADRC不太容易,考虑一般ADRC的文章喜欢积分形式的系统,因此ADRC设计的第一步就是利用坐标变换把系统(1)转化为积分形式,文献[2]采用了反馈线性化里面的常规操作:

其中,对时间变量t的(j−1)阶导数,这样转换后,利用新的状态变量xˉ (t)=( xˉ1 (t),…, xˉn (t)),系统可写为如下的积分链形式:

系统(3)单独提取出了b 0(t)u(t)这一项以方便控制器设计,因此总扰动xˉn+1 (t)的表达式为

这样一来,系统形式整理完毕,控制目标是在初值有界的前提下,状态(x(t),ζ(t))始终有界,输出y(t)能跟踪给定的有界参考信号r(t),且r(t)的各阶导数r˙ (t),r¨ (t),…,r (n) (t)均有界,并记为

接下来可以给出ADRC的结构了,ESO的形式为

还是熟悉的配方为设计函数,ε>0为调节参数。与单独ESO收敛性分析不同的是,这里还需要给出u(t)的表达式,由于系统已经转换为了积分链形式,因此可以直接给出

其中用于输出跟踪,采用饱和函数sat Q i (⋅)是为了防止所谓的峰值现象,文献[3]对此有专门的论述。我们可以看到的是,ADRC中ESO和控制器的形式比较直接,其复杂性主要体现在稳定性证明上。这里有两类误差:ESO的观察误差η(t)和系统对参考信号的跟踪误差e(t)。首先给出两类误差的定义:

进而可以写出η(t)和e(t)满足的微分方程:

然后就可以根据式(9)开展ADRC稳定性分析了,证明一般分三步走:

第一步:证明跟踪误差e(t)的有界性。具体来说,存在ε 2>0使得对所有ε∈(0,ε 2 ),集合{e(t):t∈[0,∞)}有界。通过研究时间区间[t 1 ,t 2 ]上系统的性质,利用反证法证明,这里比较关键的有4个细节:

  1. 利用不等式放缩证明∣e i (t)∣的上界和ε无关;
  2. 对xˉ˙n+1 (t)表达式的计算,没有实际难度,只是需要注意各项的展开,结合论文的各种假设获得∣ xˉ˙n+1 (t)∣上界的形式;
  3. 在反证法的前提下,计算观察误差η(t)系统对应的Laypunov函数V 2 (η(t))对时间的导数,以表明观察误差η(t)的界小于某一表达式,即观测误差足够小;
  4. 计算跟踪误差e(t)系统对应的Laypunov函数V 1 (e(t))对时间的导数,以表明时间区间[t 1 ,t 2 ]上V 1(e(t))是随时间递减的,导出矛盾。

第二步:证明观测误差η(t)随0ε→0而趋于0,也就是ESO的收敛性。其实第一步已经完成大部分推导工作了,因此第二步比较直接:

  1. 在第一步证明结论的基础上,改写∣ xˉ˙n+1 (t)∣上界的形式;
  2. 计算观察误差η(t)系统对应的Laypunov函数V 2 (η(t))对时间的导数,然后对∥η(t)∥的上界进行放缩,获得结论。

第三步:证明跟踪误差e(t)的收敛性,也就是ADRC的稳定性。具体来说,对任意σ>0,存在ε ∗ >0使得对所有ε∈(0,ε ∗ ),∥e(t)∥≤σ对所有t∈[t ε ,∞)均成立,t ε 为与ε有关的常数。
这一步就比较直接了,结合第一步和第二步的结论,直接计算跟踪误差e(t)系统对应的Laypunov函数V 1 (e(t))对时间的导数,得到最终的结论。

至此可以看到ADRC的稳定性分析思路,而不是被其表明复杂的公式唬住。这里想指出的是,ADRC的稳定性分析需要先把系统转换为积分形式,因此当结合具体的应用对象时需要小心,毕竟实际系统不太容易满足ADRC稳定性分析必要的假设条件。相比之下,结合具体的应用对象设计特定形式的ESO,再在控制器设计上做点小改动,然后稳定性分析中利用ESO的分析套路,反倒相对容易产生一篇自己的论文。

总的来说,这里的ADRC的稳定性分析仅具备理论意义(主要用来写论文),因为这里暗含了一个条件,即ε \varepsilonε可以任意小,但任何的实际系统都存在时延,而在考虑时延的前提下,ε \varepsilonε是不能过小的。此外,这里并没有给出ADRC设计参数的指导准则,对于控制工程师来说没有参考价值(所以PID真香)。其实更有意义的是从频域角度分析ESO和ADRC,毕竟ADRC参数选择并不容易,这一方面的工作可以参考高志强老师的相关工作。此外,ADRC并不是万能的,比如当实际系统的扩张状态和系统状态相关时,问题就变复杂了,此时ESO的效果到底如何还真不好说。总之,一旦考虑工程实际,如何将ADRC利用好是个技术活。

参考文献

[1]Guo B Z, Zhao Z L. On convergence of the nonlinear active disturbance rejection control for MIMO systems[J]. SIAM Journal on Control and Optimization, 2013, 51(2): 1727-1757.

[2]Guo B Z, Wu Z H. Output tracking for a class of nonlinear systems with mismatched uncertainties by active disturbance rejection control[J]. Systems & Control Letters, 2017, 100: 21-31.

[3]Khalil H K. Nonlinear systems[M]. Prentice-Hall, 2001.