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 ,相应的读出状态估计值。如下图
然而,这种直接的开环观测方法存在固有缺陷,主要体现在以下两个方面:
- 系统初始状态与观测器初始状态难以保证完全一致;
- 系统噪声和测量噪声会导致观测误差累积。
为解决这些问题,必须引入反馈校正机制,其结构如下图所示
这张图描述的龙伯格观测器,相应的数学表达式为:
{ 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(y−y^)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(y−y^),这是把输出误差当作反馈量加到系统里面。这个矩阵或者向量 L L L就是要设计观测器增益,它直接影响到观测器观测器误差收敛的速度。
1.2 误差动态
定义观测估计误差为:
x ~ = x − x ^ \begin{equation} \tilde{x}= x - \hat{x} \tag{1-3} \end{equation} x~=x−x^(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^˙=(A−LC)(x−x^)(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(y−y^))=A(x−x^)−L(y−y^)=A(x−x^)−L(Cx−Cx^)=A(x−x^)−LC(x−x^)=(A−LC)(x−x^)
可以看出,在这个误差方程中矩阵 A , C A,C A,C都是固定的,配置增益 L L L即可影响 A − L C A-LC A−LC特征值,进一步影响误差的时域响应 x ~ ( t ) = e ( A − L C ) t \tilde{x}(t)=e^{(A-LC)t} x~(t)=e(A−LC)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=b−f^+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+(f−f^)≈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(r−y^)(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=y,x2=f,f˙=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(y−y^)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^˙=(A−LC)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(y−y^)=Ax^+Bu+L(y−Cx^)=[A−LC]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^˙=(A−LC)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^˙=[A−LC]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(y−x^1)+bux^˙2=β2(y−x^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] [A−LC]=[−β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−(A−LC)∣= λ+β1β2−1λ =λ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=y,x2=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(y−y^)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(y−x^1)x^2˙=x^3+β2(y−x^1)+bux^3˙=β3(y−x^1)(3-8)
3.5 计算观测器增益L
考虑观测器的收敛性,令 e = x − x ^ e=x-\hat{x} e=x−x^ ,对其求导得:
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=A−LC,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=A−LC= −β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(Cx−Cx^))
整理得:
e ˙ = A x − A x ^ + h − L ( C x − C x ^ ) \dot e=Ax-A\hat x+h-L(Cx-C\hat x) e˙=Ax−Ax^+h−L(Cx−Cx^)
注意到 x − x ^ = e x - \hat{x} = e x−x^=e,因此 A x − A x ^ = A e Ax - A\hat{x} = Ae Ax−Ax^=Ae,并且 C x − C x ^ = C e Cx - C\hat{x} = Ce Cx−Cx^=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˙=Ae−LCe+he˙=(A−LC)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−(A−LC)∣=(λ+ω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−(A−LC)∣= λ+β1β2β3−1λ00−1λ
按第三列展开:
= ∣ λ + β 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β3−10 + λ+β1β2−1λ λ=β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{工程经验准则}} Ts≤10ωo1(工程经验准则)
4.2前向欧拉法
前向欧拉法直接对微分方程进行数值逼近,假设导数在采样周期内恒定,使用当前点的斜率估算下一时刻的状态。
令 e = x − x ^ e=x-\hat{x} e=x−x^ 连续时间 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]+Ts⋅z^˙[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 z3≈f;
设计调整建议:
- 当 扰动信号的频率较高时,应增大 ω 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