以下將線性時不變系統 的倫伯傑觀測器( 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} }
的流形)。