关于自抗扰控制的稳定性分析

本文介绍了自抗扰控制(ADRC)的稳定性分析方法,重点分析了ADRC在多输入多输出系统中的应用及其稳定性证明过程。文章详细阐述了ADRC的设计步骤及ESO的结构,并对ADRC的稳定性进行了三步证明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

这里不打算再像之前博客那样过一遍文献[2]的证明步骤了,仅仅分析其思想,因此只罗列部分公式以对套路进行辅助说明,感兴趣的读者可以直接找来文献[2]仔细研读。文献[2]考虑下面的下三角形式的系统:
{x˙1(t)=x2(t)+h1(x1(t),ζ(t),w(t)),x˙2(t)=x3(t)+h2(x1(t),x2(t),ζ(t),w(t)),⋮x˙n(t)=f(t,x(t),ζ(t),w(t))+b(t,w(t))u(t),ζ˙(t)=f0(x1(t),,ζ(t),w(t)),y(t)=x1(t),(1) \left\{\begin{aligned} &\dot{x}_1(t)=x_2(t)+h_1(x_1(t),\zeta(t),w(t)),\\ &\dot{x}_2(t)=x_3(t)+h_2(x_1(t),x_2(t),\zeta(t),w(t)),\\ &\vdots\\ &\dot{x}_n(t)=f(t,x(t),\zeta(t),w(t))+b(t,w(t))u(t),\\ &\dot{\zeta}(t)=f_0(x_1(t),,\zeta(t),w(t)),\\ &y(t)=x_1(t), \end{aligned}\right.\tag{1} x˙1(t)=x2(t)+h1(x1(t),ζ(t),w(t)),x˙2(t)=x3(t)+h2(x1(t),x2(t),ζ(t),w(t)),x˙n(t)=f(t,x(t),ζ(t),w(t))+b(t,w(t))u(t),ζ˙(t)=f0(x1(t),,ζ(t),w(t)),y(t)=x1(t),(1)
其中,x(t)=(x1(t),…,xn(t))∈Rnx(t)=(x_1(t),\ldots,x_n(t))\in\mathbb{R}^nx(t)=(x1(t),,xn(t))Rn为系统状态,ζ(t)∈Rm\zeta(t)\in\mathbb{R}^mζ(t)Rm为所谓的零动态(控制理论喜欢玩的一套,这里仅仅为了增加公式表面复杂性来装B),y(t)y(t)y(t)为输出,u(t)u(t)u(t)为控制输入,w(t)w(t)w(t)为外部干扰,bbb为不知道准确值的控制系数,但是有一个比较接近的名义值b0b_0b0,事实上,要是bbb完全未知,那么理论推导导相当复杂,可以说,ADRC里面最关键的参数就是这个bbb了。

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

{xˉ1(t)=x1(t),xˉ2(t)=x2(t)+h1(x1(t),ζ(t),w(t)),xˉi(t)=xi(t)+∑j=1i−1hi−j(j−1)(x1(t),…,xi−j(t),ζ(t),w(t)),3≤j≤n,(2) \left\{\begin{aligned} &\bar{x}_1(t)=x_1(t),\\ &\bar{x}_2(t)=x_2(t)+h_1(x_1(t),\zeta(t),w(t)),\\ &\bar{x}_i(t)=x_i(t)+\sum_{j=1}^{i-1}h_{i-j}^{(j-1)}(x_1(t),\ldots,x_{i-j}(t),\zeta(t),w(t)),3\leq j\leq n,\end{aligned}\right.\tag{2} xˉ1(t)=x1(t),xˉ2(t)=x2(t)+h1(x1(t),ζ(t),w(t)),xˉi(t)=xi(t)+j=1i1hij(j1)(x1(t),,xij(t),ζ(t),w(t)),3jn,(2)
其中,hi−j(j−1)(⋅)h_{i-j}^{(j-1)}(\cdot)hij(j1)()hi−j(⋅)h_{i-j}(\cdot)hij()对时间变量ttt(j−1)(j-1)(j1)阶导数,这样转换后,利用新的状态变量xˉ(t)=(xˉ1(t),…,xˉn(t))\bar{x}(t)=(\bar{x}_1(t),\ldots,\bar{x}_n(t))xˉ(t)=(xˉ1(t),,xˉn(t)),系统可写为如下的积分链形式:
{xˉ˙1(t)=xˉ2(t),xˉ˙2(t)=xˉ3(t),⋮xˉ˙n(t)=xˉn+1(t)+b0(t)u(t),y(t)=xˉ1(t),(3) \left\{\begin{aligned} &\dot{\bar{x}}_1(t)=\bar{x}_2(t),\\ &\dot{\bar{x}}_2(t)=\bar{x}_3(t),\\ &\vdots\\ &\dot{\bar{x}}_n(t)=\bar{x}_{n+1}(t)+b_0(t)u(t),\\ &y(t)=\bar{x}_1(t), \end{aligned}\right.\tag{3} xˉ˙1(t)=xˉ2(t),xˉ˙2(t)=xˉ3(t),xˉ˙n(t)=xˉn+1(t)+b0(t)u(t),y(t)=xˉ1(t),(3)
系统(3)单独提取出了b0(t)u(t)b_0(t)u(t)b0(t)u(t)这一项以方便控制器设计,因此总扰动xˉn+1(t)\bar{x}_{n+1}(t)xˉn+1(t)的表达式为
xˉn+1(t)=f(t,x(t),ζ(t),w(t))+(b(t,w(t))−b0(t))u(t)+∑j=1n−1hn−j(j)(x1(t),…,xn−j(t),ζ(t),w(t)).(4)\begin{aligned} \bar{x}_{n+1}(t)=&f(t,x(t),\zeta(t),w(t))+(b(t,w(t))-b_0(t))u(t)\\ &+\sum_{j=1}^{n-1}h_{n-j}^{(j)}(x_1(t),\ldots,x_{n-j}(t),\zeta(t),w(t)).\end{aligned}\tag{4} xˉn+1(t)=f(t,x(t),ζ(t),w(t))+(b(t,w(t))b0(t))u(t)+j=1n1hnj(j)(x1(t),,xnj(t),ζ(t),w(t)).(4)
这样一来,系统形式整理完毕,控制目标是在初值有界的前提下,状态(x(t),ζ(t))(x(t),\zeta(t))(x(t),ζ(t))始终有界,输出y(t)y(t)y(t)能跟踪给定的有界参考信号r(t)r(t)r(t),且r(t)r(t)r(t)的各阶导数r˙(t)\dot{r}(t)r˙(t)r¨(t)\ddot{r}(t)r¨(t)…\ldotsr(n)(t)r^{(n)}(t)r(n)(t)均有界,并记为
(r1(t),r2(t),…,rn+1(t))=(r(t),r˙(t),…,r(n)(t)).(5) (r_1(t),r_2(t),\ldots,r_{n+1}(t))=(r(t),\dot{r}(t),\ldots,r^{(n)}(t)).\tag{5} (r1(t),r2(t),,rn+1(t))=(r(t),r˙(t),,r(n)(t)).(5)
接下来可以给出ADRC的结构了,ESO的形式为
{xˉ^˙1(t)=xˉ^2(t)+εn−1g1(η1(t)),xˉ^˙2(t)=xˉ^3(t)+εn−2g2(η1(t)),⋮xˉ^˙n(t)=xˉ^n+1(t)+gn(η1(t))+b0(t)u(t),xˉ^˙n+1(t)=1εgn+1(η1(t)),η1(t)=y(t)−xˉ^1(t)εn,(6) \left\{\begin{aligned} &\dot{\hat{\bar{x}}}_1(t)=\hat{\bar{x}}_2(t)+\varepsilon^{n-1}g_1(\eta_1(t)),\\ &\dot{\hat{\bar{x}}}_2(t)=\hat{\bar{x}}_3(t)+\varepsilon^{n-2}g_2(\eta_1(t)),\\ &\vdots\\ &\dot{\hat{\bar{x}}}_n(t)=\hat{\bar{x}}_{n+1}(t)+g_n(\eta_1(t))+b_0(t)u(t),\\ &\dot{\hat{\bar{x}}}_{n+1}(t)=\frac{1}{\varepsilon}g_{n+1}(\eta_1(t)),\eta_1(t)=\frac{y(t)-\hat{\bar{x}}_1(t)}{\varepsilon^n},\end{aligned}\right.\tag{6} xˉ^˙1(t)=xˉ^2(t)+εn1g1(η1(t)),xˉ^˙2(t)=xˉ^3(t)+εn2g2(η1(t)),xˉ^˙n(t)=xˉ^n+1(t)+gn(η1(t))+b0(t)u(t),xˉ^˙n+1(t)=ε1gn+1(η1(t)),η1(t)=εny(t)xˉ^1(t),(6)
还是熟悉的配方,gi∈C(R;R)g_i\in C(\mathbb{R};\mathbb{R})giC(R;R)i=1,2,…,n+1i=1,2,\ldots,n+1i=1,2,,n+1为设计函数,ε>0\varepsilon>0ε>0为调节参数。与单独ESO收敛性分析不同的是,这里还需要给出u(t)u(t)u(t)的表达式,由于系统已经转换为了积分链形式,因此可以直接给出
u(t)=1b0(t)[ρ(satQ1(xˉ^1(t)−r1(t)),…,satQn(xˉ^n(t)−rn(t)))−satQn+1(xˉ^n+1(t))+rn+1(t)],(7) u(t)=\frac{1}{b_0(t)}\left[\rho\left(\mathrm{sat}_{Q_1}(\hat{\bar{x}}_1(t)-r_1(t)),\ldots,\mathrm{sat}_{Q_n}(\hat{\bar{x}}_n(t)-r_n(t))\right)\right.\\ -\left.\mathrm{sat}_{Q_{n+1}}(\hat{\bar{x}}_{n+1}(t))+r_{n+1}(t)\right],\tag{7} u(t)=b0(t)1[ρ(satQ1(xˉ^1(t)r1(t)),,satQn(xˉ^n(t)rn(t)))satQn+1(xˉ^n+1(t))+rn+1(t)],(7)
其中,xˉ^n+1(t)\hat{\bar{x}}_{n+1}(t)xˉ^n+1(t)用于补偿总扰动xˉn+1(t)\bar{x}_{n+1}(t)xˉn+1(t)ρ(satQ1(xˉ^1(t)−r1(t)),…,satQn(xˉ^n(t)−rn(t)))+rn+1(t)\rho\left(\mathrm{sat}_{Q_1}(\hat{\bar{x}}_1(t)-r_1(t)),\ldots,\mathrm{sat}_{Q_n}(\hat{\bar{x}}_n(t)-r_n(t))\right)+r_{n+1}(t)ρ(satQ1(xˉ^1(t)r1(t)),,satQn(xˉ^n(t)rn(t)))+rn+1(t)用于输出跟踪,采用饱和函数satQi(⋅)\mathrm{sat}_{Q_i}(\cdot)satQi()是为了防止所谓的峰值现象,文献[3]对此有专门的论述。我们可以看到的是,ADRC中ESO和控制器的形式比较直接,其复杂性主要体现在稳定性证明上。这里有两类误差:ESO的观察误差η(t)\eta(t)η(t)和系统对参考信号的跟踪误差e(t)e(t)e(t)。首先给出两类误差的定义:
{ηi(t)=xˉi(t)−xˉ^i(t)εn+1−i  (i=1,2,…,n+1),η(t)=(η1(t),…,ηn+1(t)),ei(t)=xˉi(t)−ri(t)  (i=1,2,…,n),e(t)=(e1(t),…,en(t)),Δ(t)=ρ(satQ1(xˉ^1(t)−r1(t)),…,satQn(xˉ^n(t)−rn(t)))−ρ(e(t)),(8) \left\{\begin{aligned} &\eta_i(t)=\frac{\bar{x}_i(t)-\hat{\bar{x}}_i(t)}{\varepsilon^{n+1-i}}\;(i=1,2,\ldots,n+1),\\ &\eta(t)=(\eta_1(t),\ldots,\eta_{n+1}(t)),\\ &e_i(t)=\bar{x}_i(t)-r_i(t)\;(i=1,2,\ldots,n),\\ &e(t)=(e_1(t),\ldots,e_n(t)),\\ &\varDelta(t)=\rho\left(\mathrm{sat}_{Q_1}(\hat{\bar{x}}_1(t)-r_1(t)),\ldots,\mathrm{sat}_{Q_n}(\hat{\bar{x}}_n(t)-r_n(t))\right)-\rho(e(t)),\end{aligned}\right.\tag{8} ηi(t)=εn+1ixˉi(t)xˉ^i(t)(i=1,2,,n+1),η(t)=(η1(t),,ηn+1(t)),ei(t)=xˉi(t)ri(t)(i=1,2,,n),e(t)=(e1(t),,en(t)),Δ(t)=ρ(satQ1(xˉ^1(t)r1(t)),,satQn(xˉ^n(t)rn(t)))ρ(e(t)),(8)
进而可以写出η(t)\eta(t)η(t)e(t)e(t)e(t)满足的微分方程:
{e˙1(t)=e2(t),e˙2(t)=e3(t),⋮e˙n(t)=ρ(e(t))+Δ(t)+xˉn+1(t)−satQn+1(xˉ^n+1(t)),η˙1(t)=1ε[η2(t)−g1(η1(t))],⋮η˙n(t)=1ε[ηn+1(t)−gn(η1(t))],η˙n+1(t)=−1εgn+1(η1(t))+xˉ˙n+1(t).(9) \left\{\begin{aligned} &\dot{e}_1(t)=e_2(t),\\ &\dot{e}_2(t)=e_3(t),\\ &\vdots\\ &\dot{e}_n(t)=\rho(e(t))+\varDelta(t)+\bar{x}_{n+1}(t)-\mathrm{sat}_{Q_{n+1}}(\hat{\bar{x}}_{n+1}(t)),\\ &\dot{\eta}_1(t)=\frac{1}{\varepsilon}[\eta_2(t)-g_1(\eta_1(t))],\\ &\vdots\\ &\dot{\eta}_n(t)=\frac{1}{\varepsilon}[\eta_{n+1}(t)-g_n(\eta_1(t))],\\ &\dot{\eta}_{n+1}(t)=-\frac{1}{\varepsilon}g_{n+1}(\eta_1(t))+\dot{\bar{x}}_{n+1}(t).\end{aligned}\right.\tag{9} e˙1(t)=e2(t),e˙2(t)=e3(t),e˙n(t)=ρ(e(t))+Δ(t)+xˉn+1(t)satQn+1(xˉ^n+1(t)),η˙1(t)=ε1[η2(t)g1(η1(t))],η˙n(t)=ε1[ηn+1(t)gn(η1(t))],η˙n+1(t)=ε1gn+1(η1(t))+xˉ˙n+1(t).(9)
然后就可以根据式(9)开展ADRC稳定性分析了,证明一般分三步走:

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

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

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

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

第三步:证明跟踪误差e(t)e(t)e(t)的收敛性,也就是ADRC的稳定性。具体来说,对任意σ>0\sigma>0σ>0,存在ε∗>0\varepsilon^*>0ε>0使得对所有ε∈(0,ε∗)\varepsilon\in(0,\varepsilon^*)ε(0,ε)∥e(t)∥≤σ\Vert e(t)\Vert\leq \sigmae(t)σ对所有t∈[tε,∞)t\in[t_\varepsilon,\infty)t[tε,)均成立,tεt_\varepsilontε为与ε\varepsilonε有关的常数。

这一步就比较直接了,结合第一步和第二步的结论,直接计算跟踪误差e(t)e(t)e(t)系统对应的Laypunov函数V1(e(t))V_1(e(t))V1(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.

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值