以下将线性时不变系统 的伦伯杰观测器( Luenberger observer),修改为滑动模式观测器。在滑动模式观测器中,若进入滑动模式,观测器动态的阶数会减一。在以下例子中,单一估测状态的状态误差可以在有限时间内收敛到零。Drakunov最早提出[ 3] ,非线性系统可以建立滑动模式观测器,让所有估测状态的估测误差都在有限时间(而且是任意短的时间内)收敛到零。
考虑以下的LTI系统
{
x
˙
=
A
x
+
B
u
y
=
[
1
0
0
⋯
]
x
=
x
1
{\displaystyle {\begin{cases}{\dot {\mathbf {x} }}=A\mathbf {x} +B\mathbf {u} \\y={\begin{bmatrix}1&0&0&\cdots &\end{bmatrix}}\mathbf {x} =x_{1}\end{cases}}}
其中状态向量
x
≜
(
x
1
,
x
2
,
…
,
x
n
)
∈
R
n
{\displaystyle \mathbf {x} \triangleq (x_{1},x_{2},\dots ,x_{n})\in \mathbb {R} ^{n}}
,
u
≜
(
u
1
,
u
2
,
…
,
u
r
)
∈
R
r
{\displaystyle \mathbf {u} \triangleq (u_{1},u_{2},\dots ,u_{r})\in \mathbb {R} ^{r}}
是输入向量,输出utput y 是标量,等于
x
{\displaystyle \mathbf {x} }
状态向量的第一个状态。令
A
≜
[
a
11
A
12
A
21
A
22
]
{\displaystyle A\triangleq {\begin{bmatrix}a_{11}&A_{12}\\A_{21}&A_{22}\end{bmatrix}}}
其中
a
11
{\displaystyle a_{11}}
是标量,对应第一个状态
x
1
{\displaystyle x_{1}}
对自己的影响
A
21
∈
R
(
n
−
1
)
{\displaystyle A_{21}\in \mathbb {R} ^{(n-1)}}
是行向量,对应第一个状态对其他状态的影响
A
22
∈
R
(
n
−
1
)
×
(
n
−
1
)
{\displaystyle A_{22}\in \mathbb {R} ^{(n-1)\times (n-1)}}
是矩阵,对应其他各状态彼此之间的影响
A
12
∈
R
1
×
(
n
−
1
)
{\displaystyle A_{12}\in \mathbb {R} ^{1\times (n-1)}}
是列向量,对应其他状态对第一个状态的影响
目的是要设计高增益的状态观测器,可以在只有量测资讯
y
=
x
1
{\displaystyle y=x_{1}}
的情形下,估测状态向量。因此,令向量
x
^
=
(
x
^
1
,
x
^
2
,
…
,
x
^
n
)
∈
R
n
{\displaystyle {\hat {\mathbf {x} }}=({\hat {x}}_{1},{\hat {x}}_{2},\dots ,{\hat {x}}_{n})\in \mathbb {R} ^{n}}
是n 状态的观测值,观测器的形式为
x
^
˙
=
A
x
^
+
B
u
+
L
v
(
x
^
1
−
x
1
)
{\displaystyle {\dot {\hat {\mathbf {x} }}}=A{\hat {\mathbf {x} }}+B\mathbf {u} +Lv({\hat {x}}_{1}-x_{1})}
其中
v
:
R
→
R
{\displaystyle v:\mathbb {R} \to \mathbb {R} }
是估测状态
x
^
1
{\displaystyle {\hat {x}}_{1}}
和输出
y
=
x
1
{\displaystyle y=x_{1}}
之间误差的非线性函数,
L
∈
R
n
{\displaystyle L\in \mathbb {R} ^{n}}
是估测器增益向量,其作用类似典型的线性状态观测器。同样的,也令
L
=
[
−
1
L
2
]
{\displaystyle L={\begin{bmatrix}-1\\L_{2}\end{bmatrix}}}
其中
L
2
∈
R
(
n
−
1
)
{\displaystyle L_{2}\in \mathbb {R} ^{(n-1)}}
是列向量。另外,令
e
=
(
e
1
,
e
2
,
…
,
e
n
)
∈
R
n
{\displaystyle \mathbf {e} =(e_{1},e_{2},\dots ,e_{n})\in \mathbb {R} ^{n}}
是状态估测误差,也就是说
e
=
x
^
−
x
{\displaystyle \mathbf {e} ={\hat {\mathbf {x} }}-\mathbf {x} }
。误差的动态方程为
e
˙
=
x
^
˙
−
x
˙
=
A
x
^
+
B
u
+
L
v
(
x
^
1
−
x
1
)
−
A
x
−
B
u
=
A
(
x
^
−
x
)
+
L
v
(
x
^
1
−
x
1
)
=
A
e
+
L
v
(
e
1
)
{\displaystyle {\begin{aligned}{\dot {\mathbf {e} }}&={\dot {\hat {\mathbf {x} }}}-{\dot {\mathbf {x} }}\\&=A{\hat {\mathbf {x} }}+B\mathbf {u} +Lv({\hat {x}}_{1}-x_{1})-A\mathbf {x} -B\mathbf {u} \\&=A({\hat {\mathbf {x} }}-\mathbf {x} )+Lv({\hat {x}}_{1}-x_{1})\\&=A\mathbf {e} +Lv(e_{1})\end{aligned}}}
其中
e
1
=
x
^
1
−
x
1
{\displaystyle e_{1}={\hat {x}}_{1}-x_{1}}
是第一个状态估测值的估测误差。可以设计非线性控制律v 控制滑动流形
0
=
x
^
1
−
x
1
{\displaystyle 0={\hat {x}}_{1}-x_{1}}
使估测量
x
^
1
{\displaystyle {\hat {x}}_{1}}
在有限时间内(也就是
x
^
1
=
x
1
{\displaystyle {\hat {x}}_{1}=x_{1}}
)追到实际状态
x
1
{\displaystyle x_{1}}
。因此,滑动控制切换函数为
σ
(
x
^
1
,
x
^
)
≜
e
1
=
x
^
1
−
x
1
.
{\displaystyle \sigma ({\hat {x}}_{1},{\hat {x}})\triangleq e_{1}={\hat {x}}_{1}-x_{1}.}
为了要保持在滑动流形上,
σ
˙
{\displaystyle {\dot {\sigma }}}
和
σ
{\displaystyle \sigma }
需永远维持异号(
σ
σ
˙
<
0
{\displaystyle \sigma {\dot {\sigma }}<0}
在几乎处处
x
{\displaystyle \mathbf {x} }
都要成立)。 不过
σ
˙
=
e
˙
1
=
a
11
e
1
+
A
12
e
2
−
v
(
e
1
)
=
a
11
e
1
+
A
12
e
2
−
v
(
σ
)
{\displaystyle {\dot {\sigma }}={\dot {e}}_{1}=a_{11}e_{1}+A_{12}\mathbf {e} _{2}-v(e_{1})=a_{11}e_{1}+A_{12}\mathbf {e} _{2}-v(\sigma )}
其中
e
2
≜
(
e
2
,
e
3
,
…
,
e
n
)
∈
R
(
n
−
1
)
{\displaystyle \mathbf {e} _{2}\triangleq (e_{2},e_{3},\ldots ,e_{n})\in \mathbb {R} ^{(n-1)}}
是所有无法量测状态估测误差的集合。为了要确保
σ
σ
˙
<
0
{\displaystyle \sigma {\dot {\sigma }}<0}
,令
v
(
σ
)
=
M
sgn
(
σ
)
{\displaystyle v(\sigma )=M\operatorname {sgn} (\sigma )}
其中
M
>
max
{
|
a
11
e
1
+
A
12
e
2
|
}
.
{\displaystyle M>\max\{|a_{11}e_{1}+A_{12}\mathbf {e} _{2}|\}.}
也就是说,正的常数M 需大于系统最可能估计误差的标量。若M 够大,可以假设系统会达到
e
1
=
0
{\displaystyle e_{1}=0}
(也就是
x
^
1
=
x
1
{\displaystyle {\hat {x}}_{1}=x_{1}}
)。因为在流形上
e
1
{\displaystyle e_{1}}
是常数(零),也可以推得
e
˙
1
=
0
{\displaystyle {\dot {e}}_{1}=0}
。因此不连续的控制律
v
(
σ
)
{\displaystyle v(\sigma )}
可以用等效的连续控制律
v
eq
{\displaystyle v_{\text{eq}}}
取代,其中
0
=
σ
˙
=
a
11
e
1
⏞
=
0
+
A
12
e
2
−
v
eq
⏞
v
(
σ
)
=
A
12
e
2
−
v
eq
.
{\displaystyle 0={\dot {\sigma }}=a_{11}{\mathord {\overbrace {e_{1}} ^{{}=0}}}+A_{12}\mathbf {e} _{2}-{\mathord {\overbrace {v_{\text{eq}}} ^{v(\sigma )}}}=A_{12}\mathbf {e} _{2}-v_{\text{eq}}.}
因此
v
eq
⏟
scalar
=
A
12
⏟
1
×
(
n
−
1
)
vector
e
2
⏟
(
n
−
1
)
×
1
vector
.
{\displaystyle {\mathord {\underbrace {v_{\text{eq}}} _{\text{scalar}}}}={\mathord {\underbrace {A_{12}} _{1\times (n-1) \atop {\text{ vector}}}}}{\mathord {\underbrace {\mathbf {e} _{2}} _{(n-1)\times 1 \atop {\text{ vector}}}}}.}
等效的控制律
v
eq
{\displaystyle v_{\text{eq}}}
代表剩下的
(
n
−
1
)
{\displaystyle (n-1)}
个状态对输出状态
x
1
{\displaystyle x_{1}}
轨迹的贡献。行向量
A
12
{\displaystyle A_{12}}
类似以下误差子系统的输出向量
[
e
˙
2
e
˙
3
⋮
e
˙
n
]
⏞
e
˙
2
=
A
2
[
e
2
e
3
⋮
e
n
]
⏞
e
2
+
L
2
v
(
e
1
)
=
A
2
e
2
+
L
2
v
eq
=
A
2
e
2
+
L
2
A
12
e
2
=
(
A
2
+
L
2
A
12
)
e
2
.
{\displaystyle {\mathord {\overbrace {\begin{bmatrix}{\dot {e}}_{2}\\{\dot {e}}_{3}\\\vdots \\{\dot {e}}_{n}\end{bmatrix}} ^{{\dot {\mathbf {e} }}_{2}}}}=A_{2}{\mathord {\overbrace {\begin{bmatrix}e_{2}\\e_{3}\\\vdots \\e_{n}\end{bmatrix}} ^{\mathbf {e} _{2}}}}+L_{2}v(e_{1})=A_{2}\mathbf {e} _{2}+L_{2}v_{\text{eq}}=A_{2}\mathbf {e} _{2}+L_{2}A_{12}\mathbf {e} _{2}=(A_{2}+L_{2}A_{12})\mathbf {e} _{2}.}
为了确保未量测状态的估测误差
e
2
{\displaystyle \mathbf {e} _{2}}
可以收敛到零,需选择
(
n
−
1
)
×
1
{\displaystyle (n-1)\times 1}
向量
L
2
{\displaystyle L_{2}}
使得
(
n
−
1
)
×
(
n
−
1
)
{\displaystyle (n-1)\times (n-1)}
矩阵
(
A
2
+
L
2
A
12
)
{\displaystyle (A_{2}+L_{2}A_{12})}
是赫维兹矩阵 (其特征值实部均为负数)。假设系统有可观察性 ,可将
A
12
{\displaystyle A_{12}}
视为输出矩阵(C ),则
e
2
{\displaystyle \mathbf {e} _{2}}
系统可以用和一般线性观测器相同的方式来稳定。也就是说,
v
eq
{\displaystyle v_{\text{eq}}}
的等效控制可以提供未观测状态的量测资讯,可以连续地将其估测值渐近的趋近实际值。平均来说,不连续的控制律
v
=
M
sgn
(
x
^
1
−
x
)
{\displaystyle v=M\operatorname {sgn} ({\hat {x}}_{1}-x)}
强制量测信号的估测量在有限时间内达到零。而且,平均值为零的对称量测噪声(正态分布 )只会影响控制律v 的切换频率,对等效滑动模式控制律
v
eq
{\displaystyle v_{\text{eq}}}
的影响不大。因此,滑动模式观测器有类似卡尔曼滤波 的特性[ 2] 。
最终版本的观测器为
x
^
˙
=
A
x
^
+
B
u
+
L
M
sgn
(
x
^
1
−
x
1
)
=
A
x
^
+
B
u
+
[
−
1
L
2
]
M
sgn
(
x
^
1
−
x
1
)
=
A
x
^
+
B
u
+
[
−
M
L
2
M
]
sgn
(
x
^
1
−
x
1
)
=
A
x
^
+
[
B
[
−
M
L
2
M
]
]
[
u
sgn
(
x
^
1
−
x
1
)
]
=
A
obs
x
^
+
B
obs
u
obs
{\displaystyle {\begin{aligned}{\dot {\hat {\mathbf {x} }}}&=A{\hat {\mathbf {x} }}+B\mathbf {u} +LM\operatorname {sgn} ({\hat {x}}_{1}-x_{1})\\&=A{\hat {\mathbf {x} }}+B\mathbf {u} +{\begin{bmatrix}-1\\L_{2}\end{bmatrix}}M\operatorname {sgn} ({\hat {x}}_{1}-x_{1})\\&=A{\hat {\mathbf {x} }}+B\mathbf {u} +{\begin{bmatrix}-M\\L_{2}M\end{bmatrix}}\operatorname {sgn} ({\hat {x}}_{1}-x_{1})\\&=A{\hat {\mathbf {x} }}+{\begin{bmatrix}B&{\begin{bmatrix}-M\\L_{2}M\end{bmatrix}}\end{bmatrix}}{\begin{bmatrix}\mathbf {u} \\\operatorname {sgn} ({\hat {x}}_{1}-x_{1})\end{bmatrix}}\\&=A_{\text{obs}}{\hat {\mathbf {x} }}+B_{\text{obs}}\mathbf {u} _{\text{obs}}\end{aligned}}}
其中
A
obs
≜
A
,
{\displaystyle A_{\text{obs}}\triangleq A,}
B
obs
≜
[
B
[
−
M
L
2
M
]
]
,
{\displaystyle B_{\text{obs}}\triangleq {\begin{bmatrix}B&{\begin{bmatrix}-M\\L_{2}M\end{bmatrix}}\end{bmatrix}},}
u
obs
≜
[
u
sgn
(
x
^
1
−
x
1
)
]
.
{\displaystyle u_{\text{obs}}\triangleq {\begin{bmatrix}\mathbf {u} \\\operatorname {sgn} ({\hat {x}}_{1}-x_{1})\end{bmatrix}}.}
用切换函数
sgn
(
x
^
1
−
x
1
)
{\displaystyle \operatorname {sgn} ({\hat {x}}_{1}-x_{1})}
来辅助控制向量
u
{\displaystyle \mathbf {u} }
,滑动模式观测器可以用LTI系统来表示。不连续信号
sgn
(
x
^
1
−
x
1
)
{\displaystyle \operatorname {sgn} ({\hat {x}}_{1}-x_{1})}
视为是双输入LTI的一个控制“输入”。
为了简化说明,这个例子假设滑动模式估测器可以量测单一状态(例如,输出
y
=
x
1
{\displaystyle y=x_{1}}
)。用类似的方式也可以用各状态的加权平均(例如,输出
y
=
C
x
{\displaystyle \mathbf {y} =C\mathbf {x} }
使用一般的矩阵C )来设计滑动模式估测器。此例子中,滑动模式就会是使估测输出
y
^
{\displaystyle {\hat {\mathbf {y} }}}
追随量测输出
y
{\displaystyle \mathbf {y} }
,没有误差的流形(使
σ
(
x
)
≜
y
^
−
y
=
0
{\displaystyle \sigma (\mathbf {x} )\triangleq {\hat {\mathbf {y} }}-\mathbf {y} =\mathbf {0} }
的流形)。