自抗扰ADRC之二阶线性扩展状态观测器(LESO)推导

1.龙伯格观测器

实际工程应用中,状态变量有时难以使用传感器直接测量,在这种情况下,使用状态观测器估计系统实际状态是非常常见的做法。最出名的状态观测器当属龙伯格博士在1971年发表于TAC的An Introduction to Observer[1]一文中提出的基于输出误差反馈补偿的龙伯格观测器。

1.1 状态空间模型

为了表达简便,假设待观测系统状态空间方程如下:

{ x ˙ = A x + B u y = C x \begin{align} \left\{\begin{array}{l} \dot{x} = Ax +Bu \\ y=Cx \end{array}\right. \tag{1-1} \end{align} {x˙=Ax+Buy=Cx(1-1)

如果想获取每个状态的取值,一个直观的想法是照抄待观测系统的系统矩阵 A,B,C构造一个新的系统,这个时候输入同样的u ,相应的读出状态估计值。如下图

然而,这种直接的开环观测方法存在固有缺陷,主要体现在以下两个方面:

  1. 系统初始状态与观测器初始状态难以保证完全一致;
  2. 系统噪声和测量噪声会导致观测误差累积。

为解决这些问题,必须引入反馈校正机制,其结构如下图所示

这张图描述的龙伯格观测器,相应的数学表达式为:

{ x ^ ˙ = A x ^ + B u + L ( y − y ^ ) y ^ = C x ^ (1-2) \left\{\begin{array}{l} \dot{\hat{x} } = A\hat{x}+Bu+L(y-\hat{y} ) \\ \hat{y}=C\hat{x} \end{array}\right.\tag{1-2} {x^˙=Ax^+Bu+L(yy^)y^=Cx^(1-2)

式中:

  • x ^ \hat{x} x^ 是对是状态 x x x的估计值。
  • y ^ \hat{y} y^ 是对是状态 y y y 的估计值。
  • L L L 是观测器增益。

可以看出龙伯格观测器形式上和待观测系统非常类似。对比式(1-1),唯一多出来的部分就是 L ( y − y ^ ) L(y-\hat{y} ) L(yy^),这是把输出误差当作反馈量加到系统里面。这个矩阵或者向量 L L L就是要设计观测器增益,它直接影响到观测器观测器误差收敛的速度。

1.2 误差动态

定义观测估计误差为:

x ~ = x − x ^ \begin{equation} \tilde{x}= x - \hat{x} \tag{1-3} \end{equation} x~=xx^(1-3)

对式(1-3)求导,即原系统减去观测器系统可得:

x ~ ˙ = x ˙ − x ^ ˙ = ( A − L C ) ( x − x ^ ) (1-4) \dot{\tilde{x} } = \dot{x} - \dot{ \hat{x} } = (A-LC)(x-\hat{x})\tag{1-4} x~˙=x˙x^˙=(ALC)(xx^)(1-4)

推导如下:

x ~ ˙ = x ˙ − x ^ ˙ = A x + B u − ( A x ^ + B u + L ( y − y ^ ) ) = A ( x − x ^ ) − L ( y − y ^ ) = A ( x − x ^ ) − L ( C x − C x ^ ) = A ( x − x ^ ) − L C ( x − x ^ ) = ( A − L C ) ( x − x ^ ) \begin{equation*} %加*表示不对公式编号 \begin{split} \dot{\tilde{x} } &= \dot{x} - \dot{ \hat{x} } \\ &= Ax+Bu-(A\hat{x}+Bu+L(y-\hat{y})) \\ &= A(x-\hat{x})-L(y-\hat{y}) \\ &= A(x-\hat{x})-L(Cx-C\hat{x}) \\ &= A(x-\hat{x})-LC(x-\hat{x}) \\ &= (A-LC)(x-\hat{x})\\ \end{split} \end{equation*} x~˙=x˙x^˙=Ax+Bu(Ax^+Bu+L(yy^))=A(xx^)L(yy^)=A(xx^)L(CxCx^)=A(xx^)LC(xx^)=(ALC)(xx^)

可以看出,在这个误差方程中矩阵 A , C A,C A,C都是固定的,配置增益 L L L即可影响 A − L C A-LC ALC特征值,进一步影响误差的时域响应 x ~ ( t ) = e ( A − L C ) t \tilde{x}(t)=e^{(A-LC)t} x~(t)=e(ALC)t

1.3 本章小结

龙伯格观测器(Luenberger Observer)虽具有理想线性系统中的优良性能,但其实际应用受限于精确的系统模型(A,B,C)和线性假设。然而,实际系统往往存在非线性、参数不确定性和未建模动态,导致观测精度下降甚至失稳。为此,扩张状态观测器(Extended State Observer, ESO)通过将模型不确定性和外部扰动统一估计并补偿,可在不依赖精确模型的情况下实现鲁棒状态观测。

2. 一阶系统的模型与扩展

2.1一阶系统的模型

一阶系统速度控制框图

图2.1 一阶系统速度控制框图

假设系统为一阶线性系统,其动态方程为:

y ˙ = b u + f (2-1) \dot{y} = b u + f\tag{2-1} y˙=bu+f(2-1)

式中:

  • y y y 是系统输出。
  • u u u是控制输入。
  • b b b 是系统的标称增益。
  • f f f是外部扰动或未建模动态。

目标是设计扩张状态观测器(ESO)估计状态 y y y 和扰动 f f f

为了消掉干扰 f f f,构造:

u = − f ^ + u 0 b (2-2) \begin{equation*} %加*表示不对公式编号 \begin{split} u = \frac{-\hat{f}+u_{0} }{b} \end{split} \end{equation*} \tag{2-2} u=bf^+u0(2-2)

代入(2-1)式得:

y ˙ = u 0 + ( f − f ^ ) ≈ u 0 (2-3) \begin{equation*} %加*表示不对公式编号 \begin{split} \dot{y} = u_{0} + (f-\hat{f}) \approx u_{0} \end{split} \end{equation*} \tag{2-3} y˙=u0+(ff^)u0(2-3)

u 0 u_0 u0定义为虚拟控制输入,此处取比例控制得:

u 0 = k p ( r − y ^ ) (2-4) \begin{equation*} %加*表示不对公式编号 \begin{split} u_{0} = k_{p}(r-\hat{y}) \end{split} \end{equation*} \tag{2-4} u0=kp(ry^)(2-4)

式中:

  • r r r 为参考输入。
  • y ^ \hat{y} y^为观测器输出。

2.2构建扩展系统模型

x 1 = y , x 2 = f , f ˙ = h x1=y,x2=f,\dot{f}=h x1=yx2=ff˙=h ,一阶非线性系统可以表示为状态空间模型展开形式:

{ x 1 ˙ = b u + f = x 2 + b u x 2 ˙ = f ˙ = h (2-5) \left\{\begin{array}{l} \dot{x_1} =bu+f=x_2+bu \\ \dot{x_2} =\dot{f}=h\\ \end{array}\right. \tag{2-5} {x1˙=bu+f=x2+bux2˙=f˙=h(2-5)

写成状态空间方程形式为:

{ x ˙ = A x + B u + E h y = C x (2-6) \left\{\begin{array}{l} \dot{x } = Ax+Bu+Eh \\ y = C x \end{array}\right. \tag{2-6} {x˙=Ax+Bu+Ehy=Cx(2-6)

式中:

A = [ 0 1 0 0 ] , B = [ b 0 ] , E = [ 0 1 ] , C = [ 1 0 ] (2-7) \begin{equation*} %加*表示不对公式编号 \begin{split} A=\begin{bmatrix} 0 &1 \\ 0 &0 \end{bmatrix},B=\begin{bmatrix} b\\0 \end{bmatrix},E=\begin{bmatrix} 0\\1 \end{bmatrix},C=\begin{bmatrix} 1&0 \end{bmatrix} \end{split} \end{equation*} \tag{2-7} A=[0010],B=[b0],E=[01],C=[10](2-7)

2.3构建扩张状态观测器

原系统为一阶,加入对扰动的观测状态后扩张为二阶,对这样经过坐标变换的系统构造龙伯格形式的观测器:

{ x ^ ˙ = A x ^ + B u + L ( y − y ^ ) y ^ = C x ^ (2-8) \left\{\begin{array}{l} \dot{\hat{x}}=A \hat{x}+B u+L(y-\hat{y}) \\ \hat{y}=C \hat{x} \end{array}\right. \tag{2-8} {x^˙=Ax^+Bu+L(yy^)y^=Cx^(2-8)

式中:

  • x ^ \hat{x} x^ 是对是状态 x x x 的估计值。
  • y ^ \hat{y} y^ 是对是状态 y y y 的估计值。
  • L L L 是观测器增益。

定义复合输入向量 : u c = [ u y ] u_c=\begin{bmatrix}u\\y\end{bmatrix} uc=[uy],由 y ^ = C x ^ \hat{y}=C \hat{x} y^=Cx^可得:

x ^ ˙ = ( A − L C ) x ^ + [ B L ] u c (2-9) \dot{\hat{x}}=(A-LC)\hat{x}+\begin{bmatrix}B&L\end{bmatrix}u_c \tag{2-9} x^˙=(ALC)x^+[BL]uc(2-9)

推导如下:

x ^ ˙ = A x ^ + B u + L ( y − y ^ ) x ^ ˙ = A x ^ + B u + L ( y − C x ^ ) x ^ ˙ = [ A − L C ] x ^ + B u + L y \begin{equation*} %加*表示不对公式编号 \begin{split} \dot{\hat{x}}&=A \hat{x}+B u+L(y-\hat{y}) \\ \dot{\hat{x}}&=A \hat{x}+B u+L(y-C\hat{x}) \\ \dot{\hat{x}}&=[A-L C] \hat{x}+Bu+Ly\\ \end{split} \end{equation*} x^˙x^˙x^˙=Ax^+Bu+L(yy^)=Ax^+Bu+L(yCx^)=[ALC]x^+Bu+Ly

x ^ ˙ = ( A − L C ) x ^ + [ B L ] [ u y ] \dot{\hat{x}}=(A-LC)\hat{x}+\begin{bmatrix}B&L\end{bmatrix}\begin{bmatrix}u\\y\end{bmatrix} x^˙=(ALC)x^+[BL][uy]

展开形式为:

{ x ^ ˙ = [ A − L C ] x ^ + [ B L ] u c y ^ = x ^ (2-10) \left\{\begin{array}{l} \dot{\hat{x}}=[A-L C] \hat{x}+[B \quad L]u_c\\ \hat{y}=\hat{x} \end{array} \right. \tag{2-10} {x^˙=[ALC]x^+[BL]ucy^=x^(2-10)

定义观测器增益 L = [ β 1 β 2 ] T L=\left[\begin{array}{ll}\beta _{1} & \beta_{2}\end{array}\right]^{T} L=[β1β2]T
展开矩阵形式为:

[ x ^ ˙ 1 x ^ ˙ 2 ] = [ − β 1 1 − β 2 0 ] [ x ^ 1 x ^ 2 ] + [ b β 1 0 β 2 ] [ u y ] (2-11) \left[\begin{array}{l} \dot{\hat{x}}_{1} \\ \dot{\hat{x}}_{2} \end{array}\right]=\left[\begin{array}{ll} -\beta _{1} & 1 \\ -\beta_{2} & 0 \end{array}\right]\left[\begin{array}{l} \hat{x}_{1} \\ \hat{x}_{2} \end{array}\right]+\left[\begin{array}{ll} b & \beta_{1} \\ 0 & \beta_{2} \end{array}\right]\left[\begin{array}{l} u \\ y \end{array}\right] \tag{2-11} [x^˙1x^˙2]=[β1β210][x^1x^2]+[b0β1β2][uy](2-11)

展开分量形式为:

{ x ^ ˙ 1 = x ^ 2 + β 1 ( y − x ^ 1 ) + b u x ^ ˙ 2 = β 2 ( y − x ^ 1 ) (2-12) \left\{\begin{array}{l} \dot{\hat{x}}_{1}=\hat{x}_{2}+\beta _{1}\left(y-\hat{x}_{1}\right)+b u \\ \dot{\hat{x}}_{2}=\quad \beta _{2}\left(y-\hat{x}_{1}\right) \end{array}\right. \tag{2-12} {x^˙1=x^2+β1(yx^1)+bux^˙2=β2(yx^1)(2-12)

2.4计算观测器增益L

参数 β 1 , β 2 \beta_{1}, \beta_{2} β1,β2可由状态观测器的系统矩阵 [ A − L C ] = [ − β 1 1 − β 2 0 ] [A-L C]=\left[\begin{array}{cc}-\beta _{1} & 1 \\ -\beta_{2} & 0\end{array}\right] [ALC]=[β1β210]的特征根来求取:

∣ λ I − ( A − L C ) ∣ = ∣ λ + β 1 − 1 β 2 λ ∣ = λ 2 + β 1 λ + β 2 = 0 (2-13) |\lambda I-(A-L C)|=\left|\begin{array}{cc} \lambda+\beta _{1} & -1 \\ \beta_{2} & \lambda \end{array}\right|={\lambda^{2}+\beta_{1} \lambda+\beta_{2}}=0 \tag{2-13} λI(ALC)= λ+β1β21λ =λ2+β1λ+β2=0(2-13)

将极点统一配置在 − ω o -\omega{}_o ωo处,即 ( λ + ω o ) 2 = 0 \left(\lambda+\omega_{o}\right)^{2}=0 (λ+ωo)2=0联立式(2-13)可得:

{ λ 2 + β 1 λ + β 2 = 0 λ 2 + 2 ω o λ + w o 2 = 0 (2-14) \left\{\begin{array}{l} \lambda^{2}+\beta _{1} \lambda+\beta_{2}=0 \\ \lambda^{2}+2 \omega_{o} \lambda+w_{o}^{2}=0 \end{array}\right. \tag{2-14} {λ2+β1λ+β2=0λ2+2ωoλ+wo2=0(2-14)

通过比较系数,可得ESO增益为:

L = [ 2 ω o ω o 2 ] T (2-15) \boldsymbol{L}=\left[\begin{array}{ll} 2 \omega_{o} & \omega_{o}^{2} \end{array}\right]^{T} \tag{2-15} L=[2ωoωo2]T(2-15)

2.5 本章小结

对于一阶系统:

1.扩展状态模型 简化为对输出 x 1 = y x_1 = y x1=y 和扰动 f f f 的估计。

2.通过设计 ESO 的带宽参数 ω o \omega_o ωo,可调节对扰动 f f f 的估计速度和精度。

3.控制律结合 ESO 可实现扰动补偿,使得系统具备良好的抗扰性能。

3. 二阶系统的模型与扩展

3.1 二阶系统控制框图:

图3.1 二阶系统控制框图

3.2 二阶系统的模型

下面给出二阶线性扩张状态观测器(LSEO)的数学描述[5],假设如下形式二阶非线性系统

y ¨ = g ( y , y ˙ , ω ) + d + b u (3-1) \ddot{y} = g(y,\dot{y},\omega)+d +bu \tag{3-1} y¨=g(y,y˙,ω)+d+bu(3-1)

式中:

  • g ( ⋅ ) g(⋅) g()为内部动态。
  • ω \omega ω为未建模动态。
  • d d d为外部扰动。
  • y y y为系统输出(可测量)。
  • y ˙ \dot{y} y˙为状态变量(速度)。
  • b b b为控制增益,假定已知。
  • u u u为控制输入。

f = g ( ⋅ ) + d f=g(⋅)+d f=g()+d视为总扰动,模型变为:

y ¨ = f ( y , y ˙ , ω , d ) + b u (3-2) \ddot{y} = f(y,\dot{y},\omega,d) +bu \tag{3-2} y¨=f(y,y˙,ω,d)+bu(3-2)

3.3 构建扩展系统模型

x 1 = y , x 2 = y ˙ , x 3 = f , f ˙ = h x1=y,x2=\dot{y},x3=f,\dot{f}=h x1=yx2=y˙x3=f,f˙=h ,二阶非线性系统可以表示为状态空间模型展开形式:

写成状态空间方程形式为:

{ x ˙ = A x + B u + E h y = C x (3-4) \begin{aligned} &\left.\left\{\begin{array}{l}{\dot{x}=Ax+Bu+Eh}\\ {y=Cx}\end{array}\right.\right. \\ \end{aligned} \tag{3-4} {x˙=Ax+Bu+Ehy=Cx(3-4)

式中:

A = [ 0 1 0 0 0 1 0 0 0 ] , B = [ 0 b 0 ] , E = [ 0 0 1 ] , C = [ 1 0 0 ] (3-5) \begin{aligned} &A=\begin{bmatrix}0&1&0\\0&0&1\\0&0&0\end{bmatrix}, B=\begin{bmatrix}0\\b\\0\end{bmatrix}, E=\begin{bmatrix}0\\0\\1\end{bmatrix}, C=\begin{bmatrix}1&0&0\end{bmatrix} \end{aligned} \tag{3-5} A= 000100010 ,B= 0b0 ,E= 001 ,C=[100](3-5)

3.4 构建扩张状态观测器

原系统为二阶,加入对扰动的观测状态后扩张为三阶,对这样经过坐标变换的系统构造龙伯格形式的观测器:

{ x ^ ˙ = A x ^ + B u + L ( y − y ^ ) y ^ = C x ^ (3-6) \left\{\begin{array}{l} \dot{\hat{x}}=A \hat{x}+B u+L(y-\hat{y}) \\ \hat{y}=C \hat{x} \end{array}\right. \tag{3-6} {x^˙=Ax^+Bu+L(yy^)y^=Cx^(3-6)

定义观测器增益 L = [ β 1 β 2 β 3 ] T L=\left[\begin{matrix}{\beta_{1}}&{\beta_{2}}&{\beta_{3}}\\\end{matrix}\right]^{T} L=[β1β2β3]T
展开矩阵形式为:

[ x ^ ˙ 1 x ^ ˙ 2 x ^ ˙ 3 ] = [ − β 1 1 0 − β 2 0 1 − β 3 0 0 ] [ x ^ 1 x ^ 2 x ^ 3 ] + [ 0 β 1 b β 2 0 β 3 ] [ u y ] (3-7) \begin{aligned} &\begin{bmatrix}\dot{\hat{x}}_1\\ \dot{\hat{x}}_2\\ \dot{\hat{x}}_3\end{bmatrix}=\begin{bmatrix}-\beta _1&1&0\\ -\beta_2&0&1\\-\beta_3&0&0\end{bmatrix}\begin{bmatrix}\hat{x}_1\\ \hat{x}_2\\\hat{x}_3\end{bmatrix}+\begin{bmatrix}0&\beta_1\\b&\beta_2\\ 0&\beta_3\end{bmatrix}\begin{bmatrix}u\\y\end{bmatrix} \\ \end{aligned} \tag{3-7} x^˙1x^˙2x^˙3 = β1β2β3100010 x^1x^2x^3 + 0b0β1β2β3 [uy](3-7)

展开分量形式为:

{ x ^ 1 ˙ = x ^ 2 + β 1 ( y − x ^ 1 ) x ^ 2 ˙ = x ^ 3 + β 2 ( y − x ^ 1 ) + b u x ^ 3 ˙ = β 3 ( y − x ^ 1 ) (3-8) \left\{\begin{array}{l} \dot{\hat{x}_{1}} =\hat{x}_{2}+\beta _{1}\left(y-\hat{x}_{1}\right)\\ \dot{\hat{x}_{2}}=\hat{x}_{3}+\beta_{2}\left(y-\hat{x}_{1}\right)+bu\\ \dot{\hat{x}_{3}}=\beta_{3}\left(y-\hat{x}_{1}\right) \\ \end{array}\right. \tag{3-8} x^1˙=x^2+β1(yx^1)x^2˙=x^3+β2(yx^1)+bux^3˙=β3(yx^1)(3-8)

3.5 计算观测器增益L

考虑观测器的收敛性,令 e = x − x ^ e=x-\hat{x} e=xx^ ,对其求导得:

e ˙ = x ˙ − x ^ ˙ (3-9) \dot{e}=\dot{x}-\dot{\hat{x}} \tag{3-9} e˙=x˙x^˙(3-9)

定义: A e = A − L C , E = I A_e = A - LC, \quad E = I Ae=ALC,E=I则,原系统与观测器相减得:

e ˙ = A e e + E h (3-10) \dot{e} = A_ee+Eh \tag{3-10} e˙=Aee+Eh(3-10)

A e A_e Ae展开得:

A e = A − L C = [ − β 1 1 0 − β 2 0 1 − β 3 0 0 ] (3-11) A_e=A-LC=\begin{bmatrix}-\beta_1&1&0\\-\beta_2&0&1\\-\beta_3&0&0\end{bmatrix} \tag{3-11} Ae=ALC= β1β2β3100010 (3-11)

推导如下:

将系统的状态方程和观测器的状态方程分别代入得:

e ˙ = ( A x + B u + h ) − ( A x ^ + B u + L ( C x − C x ^ ) ) \dot{e}=(Ax+Bu+h)-\left(A\hat{x}+Bu+L(Cx-C\hat{x})\right) e˙=(Ax+Bu+h)(Ax^+Bu+L(CxCx^))

整理得:

e ˙ = A x − A x ^ + h − L ( C x − C x ^ ) \dot e=Ax-A\hat x+h-L(Cx-C\hat x) e˙=AxAx^+hL(CxCx^)

注意到 x − x ^ = e x - \hat{x} = e xx^=e,因此 A x − A x ^ = A e Ax - A\hat{x} = Ae AxAx^=Ae,并且 C x − C x ^ = C e Cx - C\hat{x} = Ce CxCx^=Ce。最终误差动态变为:

e ˙ = A e − L C e + h e ˙ = ( A − L C ) e + h \dot{e}=Ae−LCe+h \\ \dot{e}=(A−LC)e+h e˙=AeLCe+he˙=(ALC)e+h

Ae 矩阵的特征多项式:

f ( λ ) = λ 3 + β 1 λ 2 + β 2 λ + β 3 (3-12) f\left(\lambda\right)=\lambda^{3}+\beta_{1}\lambda^{2}+\beta_{2}\lambda+\beta_{3} \tag{3-12} f(λ)=λ3+β1λ2+β2λ+β3(3-12)

如果要保证观测器误差收敛,则特征值应全部位于左半平面。假设理想的[特征多项式为

f ∗ ( λ ) = ( λ + w o ) 3 (3-13) f^*\left(\lambda\right)=\left(\lambda+w_o\right)^3 \tag{3-13} f(λ)=(λ+wo)3(3-13)

将极点均配置在 − ω o -\omega{}_o ωo处:

∣ λ I − ( A − L C ) ∣ = ( λ + ω o ) 3 (3-14) |\lambda I-(A-LC)|=(\lambda+\omega_{o})^{3} \tag{3-14} λI(ALC)=(λ+ωo)3(3-14)

由待定系数法得

L = [ 3 ω o 3 ω o 2 ω o 3 ] T (3-15) \boldsymbol{L}=\left[\begin{array}{ccc}{3\omega_{o}}&{3\omega_{o}^{2}}&{\omega_{o}^{3}}\end{array}\right]^{T} \tag{3-15} L=[3ωo3ωo2ωo3]T(3-15)

推导如下:

∣ λ I − ( A − L C ) ∣ = ∣ λ + β 1 − 1 0 β 2 λ − 1 β 3 0 λ ∣ \begin{aligned} |\lambda I-(A-LC)|=\begin{vmatrix}\lambda+\beta_{1}&-1&0\\\beta_{2}&\lambda&-1\\\beta_{3}&0&\lambda\end{vmatrix}\\ \end{aligned} \\ λI(ALC)= λ+β1β2β31λ001λ

按第三列展开:

= ∣ λ + β 1 − 1 β 3 0 ∣ + ∣ λ + β 1 − 1 β 2 λ ∣ λ = β 3 + ( λ + β 1 ) λ 2 + β 2 λ = λ 3 + β 1 λ 2 + β 2 λ + β 3 \begin{aligned} &\left.=\left|\begin{matrix}\lambda+\beta_1&-1\\\beta_3&0\end{matrix}\right.\right|+\left| \begin{matrix}\lambda+\beta_1&-1\\\beta_2&\lambda\end{matrix}\right|\lambda \\ &=\beta_3+(\lambda+\beta_1)\lambda^2+\beta_2\lambda \\ &\begin{aligned}&=\lambda^{3}+\beta_{1}\lambda^{2}+\beta_{2}\lambda+\beta_{3}\\ \end{aligned} \end{aligned} = λ+β1β310 + λ+β1β21λ λ=β3+(λ+β1)λ2+β2λ=λ3+β1λ2+β2λ+β3

右边式展开:

( λ + ω o ) 3 = λ 3 + 3 ω o λ 2 + 3 ω o 2 λ + ω o 3 (\lambda+\omega_{o})^{3} =\lambda^{3}+3\omega_{o}\lambda^{2}+3\omega_{o}{}^{2}\lambda + \omega_{o}{}^{3} (λ+ωo)3=λ3+3ωoλ2+3ωo2λ+ωo3

3.5本章小结

1.扩张状态观测器[2]跟龙伯格观测器使用目的区别:

龙伯格观测器主要是想把每个状态都快速准确的估计出来,扩张状态观测器主要是估计系统中存在的不确定性(即ADRC里面常说的的总扰动,包括系统的未建模动态、耦合/非线性项、未知来源的外界干扰)。

2.扩张状态观测器的优势在于:

a.跳出了龙伯格观测器要求线性模型的限制,ESO是可以对未知非线性系统进行状态重构、估计的;

b.ESO要求已知的系统信息极少(需要知道的仅有系统的相对阶次和对输入项前系数的大致数值),可以视为一种无模型的方法;

3.扩张状态观测器的缺陷在于:

a.不能实现对原系统状态的跟踪;

b.应用扩张状态观测器之前需要利用系统的相对阶次(即系统输入到输出的最小积分器实现)信息,对原系统进行相应的坐标变换转换成积分串联型,然后才能实现对变换后系统的观测;

4. 二阶离散形式的HESO

4.1零阶保持法

零阶保持法假设输入信号 u ( t ) u(t) u(t)在每个采样周期 T s T_s Ts内保持恒定值, 也就是说,在从 t k t_k tk t k + 1 t_{k+1} tk+1 的时间区间内,输入信号 u ( t ) u(t) u(t)被保持为 u ( t k ) u(t_k) u(tk)

对于离散化系统,假设在每个采样周期 [ t k , t k + h ] [t_k, t_k + h] [tk,tk+h] 内,输入 u ( t ) u(t) u(t)等于 u ( t k ) u(t_k) u(tk) ,即:

u ( t ) = u ( t k ) , ∀ t ∈ [ t k , t k + h ] (4-1) u(t)=u(t_k),\quad\forall t\in[t_k,t_k+h] \tag{4-1} u(t)=u(tk),t[tk,tk+h](4-1)

二阶HESO离散化后的状态更新方程为:

z ^ [ k + 1 ] = Φ z ^ [ k ] + Γ u [ k ] + L d ( y [ k ] − C z ^ [ k ] ) (4-2) \hat{\mathbf{z}}[k+1]=\boldsymbol{\Phi}\hat{\mathbf{z}}[k]+\boldsymbol{\Gamma}u[k]+ \mathbf{L}_d(y[k]-\mathbf{C}\hat{\mathbf{z}}[k]) \tag{4-2} z^[k+1]=Φz^[k]+Γu[k]+Ld(y[k]Cz^[k])(4-2)

式中:

Φ = e A T s , Γ = ∫ 0 T s e A τ B d τ , L d = T s L (4-3) \mathbf{\Phi}=e^{\mathbf{A}T_s}, \quad\mathbf{\Gamma}=\int_0^{T_s}e^{\mathbf{A}\tau}\mathbf{B}d\tau, \quad\mathbf{L}_d=T_s\mathbf{L} \tag{4-3} Φ=eATs,Γ=0TseAτBdτ,Ld=TsL(4-3)

通过数值计算或直接构造可以得到:

Φ = [ 1 T s T s 2 2 0 1 T s 0 0 1 ] , Γ = [ T s 2 2 b T s b 0 ] (4-4) \mathbf{\Phi}=\begin{bmatrix}1&T_s&\frac{T_s^2}{2}\\0&1&T_s\\0&0&1\end{bmatrix}, \quad\mathbf{\Gamma}=\begin{bmatrix}\frac{T_s^2}{2}b\\T_sb\\0\end{bmatrix} \tag{4-4} Φ= 100Ts102Ts2Ts1 ,Γ= 2Ts2bTsb0 (4-4)

离散形式增益矩阵:

L d = T s [ β 1 β 2 β 3 ] (4-5) \mathbf{L}_d=T_s\begin{bmatrix}\beta_1\\\beta_2\\\beta_3\end{bmatrix} \tag{4-5} Ld=Ts β1β2β3 (4-5)

最终得到离散 LESO 的迭代形式:

[ z ^ 1 [ k + 1 ] z ^ 2 [ k + 1 ] z ^ 3 [ k + 1 ] ] = [ 1 T s T s 2 2 0 1 T s 0 0 1 ] [ z ^ 1 [ k ] z ^ 2 [ k ] z ^ 3 [ k ] ] + [ T s 2 2 b T s b 0 ] u [ k ] + [ T s β 1 T s β 2 T s β 3 ] ( y [ k ] − z ^ 1 [ k ] ) (4-6) \begin{bmatrix}\hat{z}_1[k+1]\\\hat{z}_2[k+1]\\\hat{z}_3[k+1]\end{bmatrix}= \begin{bmatrix}1&T_s&\frac{T_s^2}{2}\\0&1&T_s\\0&0&1\end{bmatrix} \begin{bmatrix}\hat{z}_1[k]\\\hat{z}_2[k]\\\hat{z}_3[k]\end{bmatrix}+ \begin{bmatrix}\frac{T_s^2}{2}b\\T_sb\\0\end{bmatrix}u[k]+ \begin{bmatrix}T_s\beta_1\\T_s\beta_2\\T_s\beta_3\end{bmatrix} \begin{pmatrix}y[k]-\hat{z}_1[k]\end{pmatrix} \tag{4-6} z^1[k+1]z^2[k+1]z^3[k+1] = 100Ts102Ts2Ts1 z^1[k]z^2[k]z^3[k] + 2Ts2bTsb0 u[k]+ Tsβ1Tsβ2Tsβ3 (y[k]z^1[k])(4-6)

连续形式的增益 ,离散化时需乘以采样周期:

L d = T s [ 3 ω o 3 ω o 2 ω o 3 ] (4-7) \mathbf{L}_d=T_s\begin{bmatrix}3\omega_o\\3\omega_o^2\\\omega_o^3\end{bmatrix} \tag{4-7} Ld=Ts 3ωo3ωo2ωo3 (4-7)

采样周期 T s T_s Ts 应选得足够小,以确保系统的离散化误差可忽略,且系统响应带宽满足

ω o < π T s (香农采样定理) \omega_o < \frac{\pi}{T_s} \quad \tag{\text{香农采样定理}} ωo<Tsπ(香农采样定理)
T s ≤ 1 10 ω o (工程经验准则) T_s \leq \frac{1}{10\omega_o} \quad \tag{\text{工程经验准则}} Ts10ωo1(工程经验准则)

4.2前向欧拉法

前向欧拉法直接对微分方程进行数值逼近,假设导数在采样周期内恒定,使用当前点的斜率估算下一时刻的状态。

e = x − x ^ e=x-\hat{x} e=xx^ 连续时间 ESO 的模型为

{ x ^ 1 ˙ = x ^ 2 + β 1 e x ^ 2 ˙ = x ^ 3 + β 2 e + b u x ^ 3 ˙ = β 3 e (4-8) \left\{\begin{array}{l} \dot{\hat{x}_{1}} =\hat{x}_{2}+\beta _{1}e\\ \dot{\hat{x}_{2}}=\hat{x}_{3}+\beta_{2}e+bu\\ \dot{\hat{x}_{3}}=\beta_{3}e \\ \end{array}\right. \tag{4-8} x^1˙=x^2+β1ex^2˙=x^3+β2e+bux^3˙=β3e(4-8)

利用前向欧拉法离散化后得到离散形式:

z ^ [ k + 1 ] = z ^ [ k ] + T s ⋅ z ^ ˙ [ k ] (4-9) \hat{z} [k+1]=\hat{z}[k]+T_s\cdot \dot{\hat{z}}[k] \tag{4-9} z^[k+1]=z^[k]+Tsz^˙[k](4-9)

离散化后的扩张状态观测器 (ESO) 方程为:

{ z 1 ^ [ k + 1 ] = z 1 ^ [ k ] + T s ⋅ ( z 2 ^ [ k ] + β 1 e [ k ] ) z 2 ^ [ k + 1 ] = z 2 ^ [ k ] + T s ⋅ ( z 3 ^ [ k ] + β 2 e [ k ] ) z 3 ^ [ k + 1 ] = z 3 ^ [ k ] + T s ⋅ ( β 3 e [ k ] ) . (4-10) \left\{\begin{array}{l} \hat{z_1} [k+1]=\hat{z_1} [k]+T_s\cdot(\hat{z_2}[k]+\beta_1e[k])\\ \hat{z_2} [k+1]=\hat{z_2} [k]+T_s\cdot(\hat{z_3}[k]+\beta_2e[k])\\ \hat{z_3} [k+1]=\hat{z_3} [k]+T_s\cdot(\beta_3e[k]). \end{array}\right. \tag{4-10} z1^[k+1]=z1^[k]+Ts(z2^[k]+β1e[k])z2^[k+1]=z2^[k]+Ts(z3^[k]+β2e[k])z3^[k+1]=z3^[k]+Ts(β3e[k]).(4-10)

特征方程是 ESO 的动态特性描述,通常通过其闭环矩阵的极点配置确定。在这里,ESO 的特征方程为:

λ ( s ) = s 3 + β 1 s 2 + β 2 s + β 3 (4-11) \lambda(s) = s^3 + \beta_1 s^2 + \beta_2 s + \beta_3 \tag{4-11} λ(s)=s3+β1s2+β2s+β3(4-11)

给出的方程将 λ ( s ) \lambda(s) λ(s) 分解为三个一阶因子:

λ ( s ) = ( s + ω p ) ( s + ω s ) ( s + ω d ) (4-12) \lambda(s) = (s + \omega_p)(s + \omega_s)(s + \omega_d) \tag{4-12} λ(s)=(s+ωp)(s+ωs)(s+ωd)(4-12)

式中:

  • ω p \omega{}_p ωp为位置控制器的带宽;
  • ω s \omega{}_s ωs速度环控制器的带宽 ;
  • ω d \omega{}_d ωd为ESO 的带宽 ;

将上述分解展开后:

λ ( s ) = s 3 + ( ω p + ω s + ω d ) s 2 + ( ω p ω s + ω d ω p + ω s ω d ) s + ω p ω s ω d (4-13) \lambda(s) = s^3 + (\omega_p + \omega_s + \omega_d)s^2 + (\omega_p\omega_s + \omega_d\omega_p + \omega_s\omega_d)s + \omega_p\omega_s\omega_d \tag{4-13} λ(s)=s3+(ωp+ωs+ωd)s2+(ωpωs+ωdωp+ωsωd)s+ωpωsωd(4-13)

根据分解后的形式,与原始方程 s 3 + β 1 s 2 + β 2 s + β 3 s^3 + \beta_1 s^2 + \beta_2 s + \beta_3 s3+β1s2+β2s+β3 系数比较,可以得到:

{ β 1 = ω p + ω s + ω d β 2 = ω p ω s + ω d ω p + ω s ω d β 3 = ω p ω s ω d (4-14) \left\{\begin{array}{l} \beta_1 = \omega_p + \omega_s + \omega_d \\ \beta_2 = \omega_p\omega_s + \omega_d\omega_p + \omega_s\omega_d\\ \beta_3 = \omega_p\omega_s\omega_d \end{array}\right. \tag{4-14} β1=ωp+ωs+ωdβ2=ωpωs+ωdωp+ωsωdβ3=ωpωsωd(4-14)

结合分析 :

  • ω p \omega{}_p ωp 决定了位置环对 期望位置的跟踪能力,以及对扰动的间接响应;
  • ω s \omega{}_s ωs决定了速度环对扰动 f f f 的反应速度,通过调整速度控制器,可以减轻 f f f 对系统的影响;
  • ω d \omega{}_d ωd决定了 ESO 对扰动信号 f f f 的估计能力(即 z 3 z_3 z3 的动态响应),使得 z 3 ≈ f z_3 \approx f z3f

设计调整建议:

  • 当 扰动信号的频率较高时,应增大 ω d \omega_d ωd提高 ESO 的跟踪能力;
  • 当系统噪声较大时,应适当减小 ω d \omega_d ωd以降低噪声放大效应;
  • ω p \omega_p ωp ω s \omega_s ωs 的选取需要保证位置和速度控制环的稳定性;

4.3本章小结

两种离散方法区别如下表:

特性零阶保持法(ZOH)前向欧拉法
计算复杂度高,需要矩阵指数 $ e^{Ah} $ 和积分计算低,只需简单的加法和乘法运算
离散化精度精度较高,考虑到输入在整个采样周期内的作用精度较低,假设导数恒定
适用场景更适合高精度和控制器设计场景,如模型精度要求较高的应用更适合实时性要求高、计算资源有限的嵌入式系统
优缺点权衡优点:高精度,逼近连续系统行为 缺点:计算复杂、求解难度大优点:简单易行,实时性好 缺点:精度受步长限制

参考文献

[1] Luenberger, D. (1971). An introduction to observers. IEEE Transactions on automatic control, 16(6), 596-602.

[2] 韩京清. (1995). 一类不确定对象的扩张状态观测器 (Doctoral dissertation).

[3] Gao, Z. (2006, June). Scaling and bandwidth-parameterization based controller tuning. In Proceedings of the American control conference (Vol. 6, pp. 4989-4996).

[4] Zhao, Z. L., & Guo, B. Z. (2017). A novel extended state observer for output tracking of MIMO systems with mismatched uncertainty. IEEE Transactions on Automatic Control, 63(1), 211-218.

[5] 高钦和, & 董家臣. (2019). 线性扩张状态观测器的观测误差讨论. 控制与决策(12).

[6] 刘金琨. (2004). 先进PID控制MATLAB仿真.

参考博客

参考知乎文章:线性扩张状态观测器详解

参考知乎文章:【LESO】扩张状态观测器1~4阶系统推导

参考bilibili文章:ADRC–线性扩展状态观测器(LESO)推导笔记+ZhiqiangGao老师Paper4.1例仿真demo

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/76601.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从头开发一个Flutter插件(二)高德地图定位插件

开发基于高德定位SDK的Flutter插件 在上一篇文章里具体介绍了Flutter插件的具体开发流程&#xff0c;从创建项目到发布。接下来将为Flutter天气项目开发一个基于高德定位SDK的Flutter定位插件。 申请key 首先进入高德地图定位SDK文档内下载定位SDK&#xff0c;并按要求申请A…

分布式锁之redis6

一、分布式锁介绍 之前我们都是使用本地锁&#xff08;synchronize、lock等&#xff09;来避免共享资源并发操作导致数据问题&#xff0c;这种是锁在当前进程内。 那么在集群部署下&#xff0c;对于多个节点&#xff0c;我们要使用分布式锁来避免共享资源并发操作导致数据问题…

ubuntu中使用安卓模拟器

本文这里介绍 使用 android studio Emulator &#xff0c; 当然也有 Anbox (Lightweight)&#xff0c; Waydroid (Best for Full Android Experience), 首先确保自己安装了 android studio &#xff1b; sudo apt update sudo apt install openjdk-11-jdk sudo snap install…

二语习得理论(Second Language Acquisition, SLA)如何学习英语

二语习得理论&#xff08;Second Language Acquisition, SLA&#xff09;是研究学习者如何在成人或青少年阶段学习第二语言&#xff08;L2&#xff09;的理论框架。该理论主要关注语言习得过程中的认知、社会和文化因素&#xff0c;解释了学习者如何从初学者逐渐变得流利并能够…

WinDbg. From A to Z! 笔记(下)

原文链接: WinDbg. From A to Z! 文章目录 使用WinDbg临界区相关命令示例 -- 查看临界区其他有用的命令 WinDbg中的伪寄存器自动伪寄存器 WinDbg中的表达式其他操作默认的表达式计算方式 WinDbg中的重命名调试器命令语言编程控制流命令程序执行 WinDbg 远程调试事件监控WinDbg …

RainbowDash 的旅行

D RainbowDash 的旅行 - 第七届校赛正式赛 —— 补题 题目大意&#xff1a; 湖中心有一座岛&#xff0c;湖的外围有 m m m 间木屋&#xff08;围绕小岛&#xff09; &#xff0c;第 i i i 间木屋和小岛之间有 a i a_i ai​ 座 A A A 类桥&#xff0c; b i b_i bi​ 座 B …

MySQL-SQL-DDL语句、表结构创建语句

一.SQL SQL&#xff1a;一门操作关系型数据库的编程语言&#xff0c;定义操作所有关系型数据库的统一标准 二. DDL-数据库 1. 查询所有数据库 命令&#xff1a;show databases; 2. 查询当前数据库 命令&#xff1a;select database(); 3. 创建数据库 命令&#xff1a;create da…

Sora结构猜测

方案&#xff1a;VAE Encoder&#xff08;视频压缩&#xff09; -> Transform Diffusion &#xff08;从视频数据中学习分布&#xff0c;并根据条件生成新视频&#xff09; -> VAE Decoder &#xff08;视频解压缩&#xff09; 从博客出发&#xff0c;经过学术Survey&am…

TortoiseSVN设置忽略清单

1.TortoiseSVN > Properties&#xff08;如果安装了 TortoiseSVN&#xff09;。 2. 在弹出的属性窗口中&#xff0c;点击 New > Other。 4. 在 Property name 中输入 svn:ignore 。 5. 在 Property value 中输入要忽略的文件夹或文件名称&#xff0c;例如&#xff1a; #…

深入解析Java哈希表:从理论到实践

哈希表&#xff08;Hash Table&#xff09;是计算机科学中最重要的数据结构之一&#xff0c;也是Java集合框架的核心组件。本文将以HashMap为切入点&#xff0c;深入剖析Java哈希表的实现原理、使用技巧和底层机制。 一、哈希表基础原理 1. 核心概念 键值对存储&#xff1a;通…

leetcode:1582. 二进制矩阵中的特殊位置(python3解法)

难度&#xff1a;简单 给定一个 m x n 的二进制矩阵 mat&#xff0c;返回矩阵 mat 中特殊位置的数量。 如果位置 (i, j) 满足 mat[i][j] 1 并且行 i 与列 j 中的所有其他元素都是 0&#xff08;行和列的下标从 0 开始计数&#xff09;&#xff0c;那么它被称为 特殊 位置。 示…

《数字图像处理》教材寻找合作者

Rafael Gonzalez和Richard Woods所著的《数字图像处理》关于滤波器的部分几乎全错&#xff0c;完全从零开始写&#xff0c;困难重重。关于他的问题已经描述在《数字图像处理&#xff08;面向新工科的电工电子信息基础课程系列教材&#xff09;》。 现寻找能够共同讨论、切磋、…

为 Jenkins Agent 添加污点(Taint)容忍度(Toleration)

在 Kubernetes&#xff08;k8s&#xff09;环境中使用 Jenkins 时&#xff0c;为 Jenkins Agent 添加污点&#xff08;Taint&#xff09;容忍度&#xff08;Toleration&#xff09;是一种常见的配置操作&#xff0c;它允许 Jenkins Agent Pod 被调度到带有特定污点的节点上。下…

LeetCode算法题(Go语言实现)_28

题目 Dota2 的世界里有两个阵营&#xff1a;Radiant&#xff08;天辉&#xff09;和 Dire&#xff08;夜魇&#xff09; Dota2 参议院由来自两派的参议员组成。现在参议院希望对一个 Dota2 游戏里的改变作出决定。他们以一个基于轮为过程的投票进行。在每一轮中&#xff0c;每一…

使用python实现视频播放器(支持拖动播放位置跳转)

使用python实现视频播放器&#xff08;支持拖动播放位置跳转&#xff09; Python实现视频播放器&#xff0c;在我早期的博文中介绍或作为资料记录过 Python实现视频播放器 https://blog.csdn.net/cnds123/article/details/145926189 Python实现本地视频/音频播放器https://bl…

用Python和Pygame创造粉色粒子爱心:3D渲染的艺术

引言 在计算机图形学中&#xff0c;3D效果的2D渲染是一个迷人的领域。今天&#xff0c;我将分享一个使用Python和Pygame库创建的粉色粒子爱心效果。这个项目不仅视觉效果惊艳&#xff0c;而且代码简洁易懂&#xff0c;非常适合图形编程初学者学习3D渲染的基础概念。 项目概述…

在汇编层面理解MESI

理解MESI协议在汇编层面的表现需要结合缓存一致性机制和处理器指令执行的行为。以下是分步骤的解释&#xff1a; 1. MESI协议基础 MESI是缓存行&#xff08;Cache Line&#xff09;状态的协议&#xff0c;定义四种状态&#xff1a; Modified&#xff08;修改&#xff09;&…

爱瑞编程2025暑期CSP集训营开始招生啦!

一、什么是暑期CSP集训营&#xff1f; 为全力备战2025年9月CSP-J/S认证&#xff0c;举办的线下编程集训活动。 旨在通过高强度编程训练&#xff0c;帮助学员提升竞赛能力&#xff0c;冲刺一等奖。 二、为什么参加集训营&#xff1f; 高效编程特训&#xff1a;封闭式学习&…

问题大集10-git使用commit提交中文显示乱码

&#xff08;1&#xff09;问题 &#xff08;2&#xff09;解决步骤 1&#xff09; 设置全局编码为 UTF-8 git config --global core.quotepath false git config --global i18n.commitEncoding utf-8 git config --global i18n.logOutputEncoding utf-8 2&#xff09; 显示或设…

当AI开始“思考“:大语言模型的文字认知三部曲

引言&#xff1a;从《黑客帝国》说起 1999年上映的科幻经典《黑客帝国》描绘了一个令人震撼的未来图景——人类生活在一个由人工智能构造的数字矩阵中。当我们观察现代大型语言模型的工作原理时&#xff0c;竟发现与这个虚构世界有着惊人的相似&#xff1a;人们正在用矩阵以及矩…