**滑動模式觀測器**（Sliding mode observer）是應用滑動模式控制的狀態觀測器，應用滑動模式控制的技術，使觀測器的狀態可以接近受控體的狀態。

滑動模式控制屬於非線性控制，滑動模式觀測器會有非線性高增益觀測器的特性，可以在有限時間內將觀測器的誤差收斂到零。此外，切換模式的觀測器類似卡尔曼滤波，可以允許一些程度的量測雜訊。

線性滑動模式觀測器
---------

以下將线性时不变系统的龍貝格觀測器（ Luenberger observer），修改為滑動模式觀測器。在滑動模式觀測器中，若進入滑動模式，觀測器動態的階數會減一。在以下例子中，單一估測狀態的狀態誤差可以在有限時間內收斂到零。Drakunov最早提出，非線性系統可以建立滑動模式觀測器，讓所有估測狀態的估測誤差都在有限時間（而且是任意短的時間內）收斂到零。

考慮以下的LTI系統

{\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}}}
其中狀態向量{\displaystyle \mathbf {x} \triangleq (x\_{1},x\_{2},\dots ,x\_{n})\in \mathbb {R} ^{n}}, {\displaystyle \mathbf {u} \triangleq (u\_{1},u\_{2},\dots ,u\_{r})\in \mathbb {R} ^{r}}是輸入向量，輸出utput y是純量，等於\mathbf {x} 狀態向量的第一個狀態。令

{\displaystyle A\triangleq {\begin{bmatrix}a\_{11}&A\_{12}\\A\_{21}&A\_{22}\end{bmatrix}}}
其中

* {\displaystyle a\_{11}}是純量，對應第一個狀態x\_1對自己的影響
* {\displaystyle A\_{21}\in \mathbb {R} ^{(n-1)}}是向量，對應第一個狀態對其他狀態的影響
* {\displaystyle A\_{22}\in \mathbb {R} ^{(n-1)\times (n-1)}}是矩陣，對應其他各狀態彼此之間的影響
* {\displaystyle A\_{12}\in \mathbb {R} ^{1\times (n-1)}}是向量，對應其他狀態對第一個狀態的影響

目的是要設計高增益的狀態觀測器，可以在只有量測資訊{\displaystyle y=x\_{1}}的情形下，估測狀態向量。因此，令向量{\displaystyle {\hat {\mathbf {x} }}=({\hat {x}}\_{1},{\hat {x}}\_{2},\dots ,{\hat {x}}\_{n})\in \mathbb {R} ^{n}}是n狀態的觀測值，觀測器的形式為

{\displaystyle {\dot {\hat {\mathbf {x} }}}=A{\hat {\mathbf {x} }}+B\mathbf {u} +Lv({\hat {x}}\_{1}-x\_{1})}
其中{\displaystyle v:\mathbb {R} \to \mathbb {R} }是估測狀態{\displaystyle {\hat {x}}\_{1}}和輸出{\displaystyle y=x\_{1}}之間誤差的非線性函數，{\displaystyle L\in \mathbb {R} ^{n}}是估測器增益向量，其作用類似典型的線性狀態觀測器。同樣的，也令

{\displaystyle L={\begin{bmatrix}-1\\L\_{2}\end{bmatrix}}}
其中{\displaystyle L\_{2}\in \mathbb {R} ^{(n-1)}}是向量。另外，令{\displaystyle \mathbf {e} =(e\_{1},e\_{2},\dots ,e\_{n})\in \mathbb {R} ^{n}}是狀態估測誤差，也就是說{\displaystyle \mathbf {e} ={\hat {\mathbf {x} }}-\mathbf {x} }。誤差的動態方程為

{\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}}}
其中{\displaystyle e\_{1}={\hat {x}}\_{1}-x\_{1}}是第一個狀態估測值的估測誤差。可以設計非線性控制律v控制滑動流形

{\displaystyle 0={\hat {x}}\_{1}-x\_{1}}
使估測量{\displaystyle {\hat {x}}\_{1}}在有限時間內（也就是{\displaystyle {\hat {x}}\_{1}=x\_{1}}）追到實際狀態x\_1。因此，滑動控制切換函數為

{\displaystyle \sigma ({\hat {x}}\_{1},{\hat {x}})\triangleq e\_{1}={\hat {x}}\_{1}-x\_{1}.}
為了要保持在滑動流形上，{\displaystyle {\dot {\sigma }}}和\sigma 需永遠維持異號（{\displaystyle \sigma {\dot {\sigma }}<0}在幾乎處處\mathbf {x} 都要成立）。 不過

{\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 )}
其中{\displaystyle \mathbf {e} \_{2}\triangleq (e\_{2},e\_{3},\ldots ,e\_{n})\in \mathbb {R} ^{(n-1)}} 是所有無法量測狀態估測誤差的集合。為了要確保{\displaystyle \sigma {\dot {\sigma }}<0}，令

{\displaystyle v(\sigma )=M\operatorname {sgn} (\sigma )}
其中

{\displaystyle M>\max\{|a\_{11}e\_{1}+A\_{12}\mathbf {e} \_{2}|\}.}
也就是說，正的常數M需大於系統最可能估計誤差的純量。若M夠大，可以假設系統會達到{\displaystyle e\_{1}=0}（也就是{\displaystyle {\hat {x}}\_{1}=x\_{1}}）。因為在流形上e\_{1}是常數（零），也可以推得{\displaystyle {\dot {e}}\_{1}=0}。因此不連續的控制律{\displaystyle v(\sigma )}可以用等效的連續控制律{\displaystyle v\_{\text{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}}.}
因此

{\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}}}}}.}
等效的控制律{\displaystyle v\_{\text{eq}}}代表剩下的(n-1)個狀態對輸出狀態x\_1軌跡的貢獻。向量{\displaystyle A\_{12}}類似以下誤差子系統的輸出向量

{\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}.}
為了確保未量測狀態的估測誤差{\displaystyle \mathbf {e} \_{2}}可以收斂到零，需選擇{\displaystyle (n-1)\times 1}向量L\_2使得{\displaystyle (n-1)\times (n-1)}矩陣{\displaystyle (A\_{2}+L\_{2}A\_{12})}是赫維茲矩陣（其特征值實部均為負數）。假設系統有可觀察性，可將{\displaystyle A\_{12}}視為輸出矩陣（C），則{\displaystyle \mathbf {e} \_{2}}系統可以用和一般線性觀測器相同的方式來穩定。也就是說，{\displaystyle v\_{\text{eq}}}的等效控制可以提供未觀測狀態的量測資訊，可以連續地將其估測值漸近的趨近實際值。平均來說，不連續的控制律{\displaystyle v=M\operatorname {sgn} ({\hat {x}}\_{1}-x)}強制量測信號的估測量在有限時間內達到零。而且，平均值為零的對稱量測雜訊（正态分布）只會影響控制律v的切換頻率，對等效滑動模式控制律{\displaystyle v\_{\text{eq}}}的影響不大。因此，滑動模式觀測器有類似卡尔曼滤波的特性。

最終版本的觀測器為

{\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}}}
其中

* {\displaystyle A\_{\text{obs}}\triangleq A,}
* {\displaystyle B\_{\text{obs}}\triangleq {\begin{bmatrix}B&{\begin{bmatrix}-M\\L\_{2}M\end{bmatrix}}\end{bmatrix}},}
* {\displaystyle u\_{\text{obs}}\triangleq {\begin{bmatrix}\mathbf {u} \\\operatorname {sgn} ({\hat {x}}\_{1}-x\_{1})\end{bmatrix}}.}

用切換函數{\displaystyle \operatorname {sgn} ({\hat {x}}\_{1}-x\_{1})}來輔助控制向量\mathbf{u}，滑動模式觀測器可以用LTI系統來表示。不連續信號{\displaystyle \operatorname {sgn} ({\hat {x}}\_{1}-x\_{1})}視為是雙輸入LTI的一個控制「輸入」。

為了簡化說明，這個例子假設滑動模式估測器可以量測單一狀態（例如，輸出{\displaystyle y=x\_{1}}）。用類似的方式也可以用各狀態的加權平均（例如，輸出{\displaystyle \mathbf {y} =C\mathbf {x} }使用一般的矩陣C）來設計滑動模式估測器。此例子中，滑動模式就會是使估測輸出\hat{\mathbf{y}}追隨量測輸出\mathbf {y} ，沒有誤差的流形（使{\displaystyle \sigma (\mathbf {x} )\triangleq {\hat {\mathbf {y} }}-\mathbf {y} =\mathbf {0} }的流形）。

非線性滑動模式觀測器
----------

Drakunov曾經提過，可以針對非線性系統設計滑動模式觀測器。此觀測器可以用原始變數的估測值\hat{x}表示，型式如下

{\displaystyle {\dot {\hat {x}}}=\left[{\frac {\partial H({\hat {x}})}{\partial x}}\right]^{-1}M({\hat {x}})\operatorname {sgn}(V(t)-H({\hat {x}}))}
其中：

* {\displaystyle \operatorname {sgn}({\mathord {\cdot }})}向量將符號函數延伸到n維。也就是說
{\displaystyle \operatorname {sgn}(z)={\begin{bmatrix}\operatorname {sgn}(z\_{1})\\\operatorname {sgn}(z\_{2})\\\vdots \\\operatorname {sgn}(z\_{i})\\\vdots \\\operatorname {sgn}(z\_{n})\end{bmatrix}}}
針對向量{\displaystyle z\in \mathbb {R} ^{n}}.
* 向量H(x)的分量是輸出函數h(x)以及其各階李導數。其中
{\displaystyle H(x)\triangleq {\begin{bmatrix}h\_{1}(x)\\h\_{2}(x)\\h\_{3}(x)\\\vdots \\h\_{n}(x)\end{bmatrix}}\triangleq {\begin{bmatrix}h(x)\\L\_{f}h(x)\\L\_{f}^{2}h(x)\\\vdots \\L\_{f}^{n-1}h(x)\end{bmatrix}}}
其中{\displaystyle L\_{f}^{i}h}是h沿著向量場f（也就是沿著非線性系統的x軌跡）的*i*階李导数。在此特例中，系統沒有輸入，也沒有相對次數（relative degree）*n*，{\displaystyle H(x(t))}是輸出{\displaystyle y(t)=h(x(t))}以及其n-1次導數的集合。因為H(x)Jacobian線性化的倒數存在（讓觀測器可以有良好定義），H(x)的轉換保證是局部的微分同胚。
* 增益對角矩陣 {\displaystyle M({\hat {x}})} 會使下式成立
{\displaystyle M({\hat {x}})\triangleq \operatorname {diag} (m\_{1}({\hat {x}}),m\_{2}({\hat {x}}),\ldots ,m\_{n}({\hat {x}}))={\begin{bmatrix}m\_{1}({\hat {x}})&&&&&\\&m\_{2}({\hat {x}})&&&&\\&&\ddots &&&\\&&&m\_{i}({\hat {x}})&&\\&&&&\ddots &\\&&&&&m\_{n}({\hat {x}})\end{bmatrix}}}
其中，針對每一個{\displaystyle i\in \{1,2,\dots ,n\}}，元素{\displaystyle m\_{i}({\hat {x}})>0} 　而且夠大，以保證會碰到滑動模式。
* 觀測器向量V(t)會滿足下式
{\displaystyle V(t)\triangleq {\begin{bmatrix}v\_{1}(t)\\v\_{2}(t)\\v\_{3}(t)\\\vdots \\v\_{i}(t)\\\vdots \\v\_{n}(t)\end{bmatrix}}\triangleq {\begin{bmatrix}y(t)\\\{m\_{1}({\hat {x}})\operatorname {sgn}(v\_{1}(t)-h\_{1}({\hat {x}}(t)))\}\_{\text{eq}}\\\{m\_{2}({\hat {x}})\operatorname {sgn}(v\_{2}(t)-h\_{2}({\hat {x}}(t)))\}\_{\text{eq}}\\\vdots \\\{m\_{i-1}({\hat {x}})\operatorname {sgn}(v\_{i-1}(t)-h\_{i-1}({\hat {x}}(t)))\}\_{\text{eq}}\\\vdots \\\{m\_{n-1}({\hat {x}})\operatorname {sgn}(v\_{n-1}(t)-h\_{n-1}({\hat {x}}(t)))\}\_{\text{eq}}\end{bmatrix}}}
其中的{\displaystyle \operatorname {sgn}({\mathord {\cdot }})}是正常對純量定義的符号函数，而{\displaystyle \{\ldots \}\_{\text{eq}}}是不連續函數在滑動模式下的「等效值運算子」。

概念可以說明如下：依照滑動模式的理論，為了要描述系統特性，只要開始進入滑動模式，函數{\displaystyle \operatorname {sgn}(v\_{i}(t)\!-\!h\_{i}({\hat {x}}(t)))}就需要改為定效的值實務上，函數會高頻的切換，其慢速的成份會和等效值相等。應用適當的低通濾波器可以濾掉高頻成份，得到等效值，其中也會有較多有關估測系統狀態的資訊。以下的觀測器用了幾次上述的作法，在有限時間內會得到非線性系統的狀態。

修改後的估測器誤差以用轉換後的狀態{\displaystyle e=H(x)-H({\hat {x}})}表示。

{\displaystyle {\begin{aligned}{\dot {e}}&={\frac {\mathrm {d} }{\mathrm {d} t}}H(x)-{\frac {\mathrm {d} }{\mathrm {d} t}}H({\hat {x}})\\&={\frac {\mathrm {d} }{\mathrm {d} t}}H(x)-M({\hat {x}})\,\operatorname {sgn}(V(t)-H({\hat {x}}(t))),\end{aligned}}}
而且

{\displaystyle {\begin{aligned}{\begin{bmatrix}{\dot {e}}\_{1}\\{\dot {e}}\_{2}\\\vdots \\{\dot {e}}\_{i}\\\vdots \\{\dot {e}}\_{n-1}\\{\dot {e}}\_{n}\end{bmatrix}}&={\mathord {\overbrace {\begin{bmatrix}{\dot {h}}\_{1}(x)\\{\dot {h}}\_{2}(x)\\\vdots \\{\dot {h}}\_{i}(x)\\\vdots \\{\dot {h}}\_{n-1}(x)\\{\dot {h}}\_{n}(x)\end{bmatrix}} ^{{\tfrac {\mathrm {d} }{\mathrm {d} t}}H(x)}}}-{\mathord {\overbrace {M({\hat {x}})\,\operatorname {sgn}(V(t)-H({\hat {x}}(t)))} ^{{\tfrac {\mathrm {d} }{\mathrm {d} t}}H({\hat {x}})}}}={\begin{bmatrix}h\_{2}(x)\\h\_{3}(x)\\\vdots \\h\_{i+1}(x)\\\vdots \\h\_{n}(x)\\L\_{f}^{n}h(x)\end{bmatrix}}-{\begin{bmatrix}m\_{1}\operatorname {sgn}(v\_{1}(t)-h\_{1}({\hat {x}}(t)))\\m\_{2}\operatorname {sgn}(v\_{2}(t)-h\_{2}({\hat {x}}(t)))\\\vdots \\m\_{i}\operatorname {sgn}(v\_{i}(t)-h\_{i}({\hat {x}}(t)))\\\vdots \\m\_{n-1}\operatorname {sgn}(v\_{n-1}(t)-h\_{n-1}({\hat {x}}(t)))\\m\_{n}\operatorname {sgn}(v\_{n}(t)-h\_{n}({\hat {x}}(t)))\end{bmatrix}}\\&={\begin{bmatrix}h\_{2}(x)-m\_{1}({\hat {x}})\operatorname {sgn}({\mathord {\overbrace {{\mathord {\overbrace {v\_{1}(t)} ^{v\_{1}(t)=y(t)=h\_{1}(x)}}}-h\_{1}({\hat {x}}(t))} ^{e\_{1}}}})\\h\_{3}(x)-m\_{2}({\hat {x}})\operatorname {sgn}(v\_{2}(t)-h\_{2}({\hat {x}}(t)))\\\vdots \\h\_{i+1}(x)-m\_{i}({\hat {x}})\operatorname {sgn}(v\_{i}(t)-h\_{i}({\hat {x}}(t)))\\\vdots \\h\_{n}(x)-m\_{n-1}({\hat {x}})\operatorname {sgn}(v\_{n-1}(t)-h\_{n-1}({\hat {x}}(t)))\\L\_{f}^{n}h(x)-m\_{n}({\hat {x}})\operatorname {sgn}(v\_{n}(t)-h\_{n}({\hat {x}}(t)))\end{bmatrix}}.\end{aligned}}}
因此

1. 只要{\displaystyle m\_{1}({\hat {x}})\geq |h\_{2}(x(t))|}, 誤差動態的第一個{\displaystyle {\dot {e}}\_{1}=h\_{2}({\hat {x}})-m\_{1}({\hat {x}})\operatorname {sgn}(e\_{1})}，會符合在有限時間進入{\displaystyle e\_{1}=0}滑動模式的充份條件。
2. 在{\displaystyle e\_{1}=0}表面上，對應的{\displaystyle v\_{2}(t)=\{m\_{1}({\hat {x}})\operatorname {sgn}(e\_{1})\}\_{\text{eq}}}等效控制會等於{\displaystyle h\_{2}(x)}，因此{\displaystyle v\_{2}(t)-h\_{2}({\hat {x}})=h\_{2}(x)-h\_{2}({\hat {x}})=e\_{2}}。只要{\displaystyle m\_{2}({\hat {x}})\geq |h\_{3}(x(t))|}，誤差動態的第二個{\displaystyle {\dot {e}}\_{2}=h\_{3}({\hat {x}})-m\_{2}({\hat {x}})\operatorname {sgn}(e\_{2})}，會在有限時間內進入{\displaystyle e\_{2}=0}滑動模式。
3. 在{\displaystyle e\_{i}=0}表面上，對應的{\displaystyle v\_{i+1}(t)=\{\ldots \}\_{\text{eq}}}等效控會等於{\displaystyle h\_{i+1}(x)}。只要{\displaystyle m\_{i+1}({\hat {x}})\geq |h\_{i+2}(x(t))|}，誤差動態的第{\displaystyle (i+1)}個{\displaystyle {\dot {e}}\_{i+1}=h\_{i+2}({\hat {x}})-m\_{i+1}({\hat {x}})\operatorname {sgn}(e\_{i+1})}，會在有限時間內進入{\displaystyle e\_{i+1}=0}滑動模式。

對於足夠大的m\_{i}增益，所有的觀測器估測狀態都會在有限時間內到實際的狀態。只要{\displaystyle |h\_{i}(x(0))|}有確定的上下界，增加m\_{i}，可以在任意時間內讓估測狀態收斂。因此映射{\displaystyle H:\mathbb {R} ^{n}\to \mathbb {R} ^{n}}是微分同胚（也就是其Jacobian 線性化可逆）可以保證，若估測輸出的收斂，就意味著估測狀態的收斂。因此此要求是可觀察性的條件。

若針對有輸入系統的滑動模型觀測器，會需要額外的條件，其估測誤差和輸入無關。例如

{\displaystyle {\frac {\partial H(x)}{\partial x}}B(x)}
和時間無關。則觀測器為

{\displaystyle {\dot {\hat {x}}}=\left[{\frac {\partial H({\hat {x}})}{\partial x}}\right]^{-1}M({\hat {x}})\operatorname {sgn}(V(t)-H({\hat {x}}))+B({\hat {x}})u.}

參考資料
----

1. ↑  Utkin, Vadim; Guldner, Jürgen; Shi, Jingxin.. Philadelphia, PA: Taylor & Francis, Inc. 1999. ISBN 978-0-7484-0116-1.
2. 1 2  Drakunov, S.V.. Automation and Remote Control. 1983, **44** (9): 1167–1175.
3. 1 2  Drakunov, S.V.. . 1992: 2368–2370  [2021-05-07]. ISBN 978-0-7803-0872-5. S2CID 120072463. doi:10.1109/CDC.1992.371368. （原始内容存档于2015-10-17）.  `|journal=`被忽略 (帮助); `|issue=`被忽略 (帮助)