基于自适应观测器的故障估计
问题描述
在任何时候,执行器的故障都可能造成灾难性的后果,如无人机(UAV)的执行器故障,可能直接导致任务失败,机体损坏。本文是对参考文献[1]中的故障估计的自适应观测器设计的学习和理解,为以后的学习提供参考。
(本文针对的故障是线性故障,是简单的,并且故障的微分是0。)
一具有故障的多输入多输入线性系统,如下:
{
x
˙
(
t
)
=
A
x
(
t
)
+
B
u
(
t
)
+
E
f
(
t
)
y
=
C
x
(
t
)
(1)
\left\{ \begin{aligned} {}\dot x(t)&=Ax(t)+Bu(t)+Ef(t)\\ y&=Cx(t) \end{aligned} \right. \tag{1}
{x˙(t)y=Ax(t)+Bu(t)+Ef(t)=Cx(t)(1)
其中
f
(
t
)
∈
R
r
f(t)\in R^r
f(t)∈Rr是故障,
E
∈
R
n
×
r
E\in R^{n\times r}
E∈Rn×r是故障分布矩阵。
假设1:故障是有界的,并且其微分也是有界的,即满足 ∥ f ( t ) ∥ ≤ f 0 \Vert f(t) \Vert \leq f_0 ∥f(t)∥≤f0, ∥ f ˙ ( t ) ∥ ≤ f 1 \Vert \dot f(t) \Vert \leq f_1 ∥f˙(t)∥≤f1,其中 f 0 、 f 1 f_0、f_1 f0、f1是正标量。
设计的目的是估计 f ( t ) f(t) f(t)以抵消故障对执行器带来的影响。
观测器设计
建立一观测器如下:
{
x
^
˙
(
t
)
=
A
x
^
(
t
)
+
B
u
(
t
)
+
E
f
^
(
t
)
−
L
(
y
^
(
t
)
−
y
(
t
)
)
y
^
(
t
)
=
C
x
^
(
t
)
(2)
\left\{ \begin{aligned} {} \dot {\hat {x}}(t)&=A\hat x(t)+Bu(t)+E\hat f(t)-L(\hat y(t)-y(t))\\ \hat y(t) &=C\hat x(t) \end{aligned} \right. \tag{2}
{x^˙(t)y^(t)=Ax^(t)+Bu(t)+Ef^(t)−L(y^(t)−y(t))=Cx^(t)(2)
该观测器的形式就是在《现代控制理论》或者《线性系统理论》任何一本教材中所讲述的状态观测器的形式,可以说是非常亲切了。
定义如下误差:
{
e
x
(
t
)
=
x
^
(
t
)
−
x
(
t
)
e
y
(
t
)
=
y
^
(
t
)
−
y
(
t
)
e
f
(
t
)
=
f
^
(
t
)
−
f
(
t
)
(3)
\left\{ \begin{array} {}e_x(t)&=\hat x(t)-x(t)\\ e_y(t) &=\hat y(t)-y(t)\\ e_f(t) &=\hat f(t)-f(t) \end{array} \right. \tag{3}
⎩
⎨
⎧ex(t)ey(t)ef(t)=x^(t)−x(t)=y^(t)−y(t)=f^(t)−f(t)(3)
对公式(3)求导
{
e
˙
x
(
t
)
=
x
^
˙
(
t
)
−
x
˙
(
t
)
=
A
x
^
(
t
)
+
B
u
(
t
)
+
E
f
^
(
t
)
−
L
(
y
^
(
t
)
−
y
(
t
)
)
−
(
A
x
(
t
)
+
B
u
(
t
)
+
E
f
(
t
)
)
=
(
A
−
L
C
)
e
x
(
t
)
+
E
e
f
(
t
)
e
y
(
t
)
=
y
^
(
t
)
−
y
(
t
)
=
C
e
x
(
t
)
(4)
\left\{ \begin{aligned} {}\dot e_x(t) &=\dot {\hat x}(t)-\dot x(t)\\ &=A\hat x(t)+Bu(t)+E\hat f(t)-L(\hat y(t)-y(t))-(Ax(t)+Bu(t)+Ef(t))\\ &= (A-LC)e_{x}(t)+Ee_{f}(t)\\ e_y(t) &=\hat y(t)-y(t)=Ce_{x}(t)\\ \end{aligned} \right. \tag{4}
⎩
⎨
⎧e˙x(t)ey(t)=x^˙(t)−x˙(t)=Ax^(t)+Bu(t)+Ef^(t)−L(y^(t)−y(t))−(Ax(t)+Bu(t)+Ef(t))=(A−LC)ex(t)+Eef(t)=y^(t)−y(t)=Cex(t)(4)
由于故障是常数,所以
f
˙
(
t
)
=
0
\dot f(t)=0
f˙(t)=0,则
e
˙
f
(
t
)
=
f
^
˙
(
t
)
−
0
=
f
^
˙
(
t
)
(5)
\dot e_{f}(t)=\dot{\hat f}(t)-0=\dot{\hat f}(t)\tag{5}
e˙f(t)=f^˙(t)−0=f^˙(t)(5)
设计的用来处理常数故障的故障估计算法为:
f
^
˙
(
t
)
=
−
Γ
F
e
y
(
t
)
(6)
\dot{\hat f}(t)=-\Gamma Fe_y(t)\tag{6}
f^˙(t)=−ΓFey(t)(6)
其中
Γ
>
0
\Gamma>0
Γ>0是学习率矩阵,
F
F
F是待设计矩阵。为什么故障估计算法取这样的形式主要还是为了在后面凑李雅普诺夫函数时,得到理想的形式,等下证明的时候就会明白。(其实很多文章都是基于李雅普诺夫函数来设计控制器,大多数都是直接给出结果,然后再通过李亚普诺夫第二法来给出证明。其实也是属于推导控制器的过程了。)
如果存在一对称正定矩阵
P
∈
R
n
×
n
P \in R^{n\times n}
P∈Rn×n满足如下条件:
{
P
A
+
A
T
P
−
Y
C
−
C
T
Y
T
<
0
E
T
P
=
F
C
(7)
\left\{ \begin{array} {}PA+A^TP-YC-C^TY^T<0\\ E^TP=FC \end{array} \right. \tag{7}
{PA+ATP−YC−CTYT<0ETP=FC(7)
则误差
e
x
(
t
)
e_x(t)
ex(t)和
e
f
(
t
)
e_f(t)
ef(t)能够渐近稳定收敛到0。设计的状态观测器增益为:
L
=
P
−
1
Y
(8)
L=P^{-1}Y \tag{8}
L=P−1Y(8)
为什么要这么设计,也是后面证明的时候可以发现端倪。
证明(即设计的解释)
选取候选的李雅普诺夫函数
V
(
t
)
=
e
x
T
(
t
)
P
e
x
(
t
)
+
e
f
T
(
t
)
Γ
−
1
e
f
(
t
)
(9)
V(t)=e_{x}^{T}(t) P e_{x}(t)+e_{f}^{T}(t) \Gamma^{-1} e_{f}(t)\tag{9}
V(t)=exT(t)Pex(t)+efT(t)Γ−1ef(t)(9)
其中
P
>
0
、
Γ
>
0
P>0、\Gamma>0
P>0、Γ>0,显然
V
(
t
)
>
0
V(t)>0
V(t)>0,在原点处为0。
针对
V
(
t
)
V(t)
V(t)求导,则
V
˙
(
t
)
=
e
˙
x
T
(
t
)
P
e
x
(
t
)
+
e
x
T
(
t
)
P
e
˙
x
(
t
)
+
e
˙
f
T
(
t
)
Γ
−
1
e
f
(
t
)
+
e
f
T
(
t
)
Γ
−
1
e
˙
f
(
t
)
=
(
(
A
−
L
C
)
e
x
(
t
)
+
E
e
f
(
t
)
)
T
P
e
x
(
t
)
+
e
x
T
(
t
)
P
(
(
A
−
L
C
)
e
x
(
t
)
+
E
e
f
(
t
)
)
+
f
^
˙
T
(
t
)
Γ
−
1
e
f
(
t
)
+
e
f
T
(
t
)
Γ
−
1
f
˙
(
t
)
=
e
x
T
(
t
)
(
P
(
A
−
L
C
)
+
(
A
−
L
C
)
T
P
)
e
x
(
t
)
+
2
e
x
T
(
t
)
P
E
e
f
(
t
)
+
(
−
Γ
F
e
y
(
t
)
T
Γ
−
1
e
f
(
t
)
+
e
f
T
(
t
)
Γ
−
1
(
−
Γ
F
e
y
(
t
)
)
=
e
x
T
(
t
)
(
P
(
A
−
L
C
)
+
(
A
−
L
C
)
T
P
)
e
x
(
t
)
+
2
e
x
T
(
t
)
P
E
e
f
(
t
)
−
2
e
f
T
(
t
)
F
C
e
x
(
t
)
(10)
\begin{aligned} {}\dot{V}(t)&=\dot{e}_{x}^{T}(t) P e_{x}(t)+e_{x}^{T}(t) P \dot{e}_{x}(t) +\dot{e}_{f}^{T}(t) \Gamma^{-1} e_{f}(t)+e_{f}^{T}(t) \Gamma^{-1} \dot{e}_{f}(t)\\ &= ((A-LC)e_{x}(t)+Ee_{f}(t))^T P e_{x}(t)+e_{x}^{T}(t) P((A-LC)e_{x}(t)+Ee_{f}(t))\\ & +\dot{\hat f}^T(t)\Gamma^{-1} e_{f}(t)+e_{f}^{T}(t) \Gamma^{-1} {\dot f}(t)\\ &={e}_{x}^{T}(t)\left(P(A-LC)+(A-LC)^TP\right)e_{x}(t)+2{e}_{x}^{T}(t)PEe_{f}(t)\\&+(-\Gamma Fe_y(t)^T\Gamma^{-1}e_f(t)+e^T_f(t)\Gamma^{-1}(-\Gamma Fe_y(t))\\ &= {e}_{x}^{T}(t)\left(P(A-LC)+(A-LC)^TP\right)e_{x}(t)+2{e}_{x}^{T}(t)PEe_{f}(t)-2e^T_f(t)FCe_x(t) \end{aligned}\tag{10}
V˙(t)=e˙xT(t)Pex(t)+exT(t)Pe˙x(t)+e˙fT(t)Γ−1ef(t)+efT(t)Γ−1e˙f(t)=((A−LC)ex(t)+Eef(t))TPex(t)+exT(t)P((A−LC)ex(t)+Eef(t))+f^˙T(t)Γ−1ef(t)+efT(t)Γ−1f˙(t)=exT(t)(P(A−LC)+(A−LC)TP)ex(t)+2exT(t)PEef(t)+(−ΓFey(t)TΓ−1ef(t)+efT(t)Γ−1(−ΓFey(t))=exT(t)(P(A−LC)+(A−LC)TP)ex(t)+2exT(t)PEef(t)−2efT(t)FCex(t)(10)
此时若满足公式(7)的条件,带入公式(8)则:
V
˙
(
t
)
=
e
x
T
(
t
)
(
P
(
A
−
L
C
)
+
(
A
−
L
C
)
T
P
)
e
x
(
t
)
=
e
x
T
(
t
)
(
P
A
+
A
T
P
−
Y
C
−
C
T
Y
T
)
e
x
(
t
)
<
0
(11)
\begin{array} {}\dot V(t)&={e}_{x}^{T}(t)\left(P(A-LC)+(A-LC)^TP\right)e_{x}(t)\\ &={e}_{x}^{T}(t)\left(PA+A^TP-YC-C^TY^T\right)e_{x}(t)\\ &<0 \end{array}\tag{11}
V˙(t)=exT(t)(P(A−LC)+(A−LC)TP)ex(t)=exT(t)(PA+ATP−YC−CTYT)ex(t)<0(11)
后两项也被消去了,依据李雅普诺夫第二法可以判定系统是渐近稳定的,即则误差
e
x
(
t
)
e_x(t)
ex(t)和
e
f
(
t
)
e_f(t)
ef(t)能够渐近稳定收敛到0。可以发现设计是环环相扣的,其中的设计也来源李雅普诺夫函数。
如果觉得我写的不错,请给我一个免费的赞,如有错误,也欢迎向我反馈。
参考文献:
[1] F. Chen, R. Jiang, K. Zhang, B. Jiang and G. Tao, “Robust Backstepping Sliding-Mode Control and Observer-Based Fault Estimation for a Quadrotor UAV,” in IEEE Transactions on Industrial Electronics, vol. 63, no. 8, pp. 5044-5056, Aug. 2016, doi: 10.1109/TIE.2016.2552151.