滑動模式控制

**滑動模式控制**（sliding mode）簡稱**SMC**，是一種非線性控制的技術，利用不連續的控制信號來調整非線性系統的特性，強迫系統在二個系統的正常狀態之間滑動，最後進入穩態。其狀態-反饋控制律不是時間的連續函數。相反的，控制律會依目前在狀態空間中的位置不同，可能從一個連續的控制系統切換到另一個連續的控制系統。因此滑動模型控制屬於變結構控制。已針對滑動模型控制設計了許多的控制結構，目的是讓相空間圖中的軌跡可以前往和另一個控制結構之間相鄰的區域，因此最終的軌跡不會完全脫離某個控制結構。相反的，軌跡會在控制結構的邊界上「滑動」。這種沿著控制結構之間邊界滑動的行為稱為「滑動模式」而包括邊界在內的幾何轨迹稱為滑動曲面（sliding surface）。在現代控制理論的範圍中，任何變結構系統（例如滑動模式控制）都可以視為是併合系統的特例，因為系統有些時候會在連續的狀態空間中移動，有時也會在幾個離散的控制模式中切換。

## 簡介

滑動模式控制中存在滑動曲面s=0，一開始時，系統會在有限時間內到達滑動曲面，之後就會沿著滑動曲面移動。在滑動模式的理論敘述中，系統會約束在滑動曲面上，因此只需將系統視為在滑動曲面上滑動。不過實際系統的實現是用高頻切換來讓系統近似在滑動曲面上滑動，高頻切換的控制信號讓系統在很鄰近滑動曲面的範圍內切跳（chatter），而且其頻率是不固定的。雖然整體系統是非線性的，不過圖1中，當系統到達滑動曲面後，理想（沒有切跳）系統會限制在s=0的滑動曲面上，滑動曲面是線性時不變系統，在原點處指數穩定。

直觀來說，滑動模式控制會配合很大的增益（理想上可視為是無限大），強迫動態系統的軌跡無法離開滑動模式子空間太遠，必須沿著此子空間滑動。在降階滑動模式上的軌跡會有理想的動態特性（例如，系統會自然沿著此軌跡滑行，最後會停在理想的駐點。滑動模式控制的主要優點是其強健性。因為控制很簡單，是在二個狀態之間（例如開/關或是正轉/反轉）切換，控制法則不需要精確，而且不會受到控制系統中參數的變異所影響。而且因為控制律不是連續函數，滑動模式控制可以在有限時間內到達滑動曲面（比漸進到達的特性要好）在一些常見的條件下，最优控制需要用到起停式控制，而滑動模式控制中也有用到起停式控制的特性，有些滑動模式控制也是某些控制系統下的最優控制。

有些交換式電源供應器驅動的電機就是利用滑動模式控制。這類轉換器本身就有不連續的特性，和不連續輸出的滑動模式控制器在本質上是一致的。使用連續性的控制器，還需要透過脈衝寬度調變或是其他類似的技術來將連續性的輸出轉換為可用離散狀態表示的輸出。滑動模式控制在機器人學有許多的應用。此控制演算法特別已用在無人水面載具模擬在有大風大浪海面下的運作，其成功率相當高。

相較於其他有較多適度控制行為的非線性控制，滑動模式控制因為其不連續的輸出，在應用上需要更謹慎的應用。特別是因為致動器本身的延遲以及其他實務上的限制，硬切換的滑動模式控制會產生顫動、能量損失、設備損壞，或是激發一些系統中的未建模動態。連續性的控制器設計比較不會有上述的問題，而且也可以設計一些接近滑動模式控制器的特性。
## 控制架構
考慮以下的非線性系統

其中
:\mathbf{x}(t) \triangleq \begin{bmatrix}x_1(t)\\x_2(t)\\\vdots\\x_{n-1}(t)\\x_n(t)\end{bmatrix} \in \mathbb{R}^n
是n維的状态向量以及
:\mathbf{u}(t) \triangleq \begin{bmatrix}u_1(t)\\u_2(t)\\\vdots\\u_{m-1}(t)\\u_m(t)\end{bmatrix} \in \mathbb{R}^m
為表示狀態反馈的m維的輸入向量。函数f: \mathbb{R}^n \times \mathbb{R} \mapsto \mathbb{R}^n和B: \mathbb{R}^n \times \mathbb{R} \mapsto \mathbb{R}^{n \times m}假設是連續函數，而且有相當程度的光滑性，因此可以用柯西-利普希茨定理確保方程&nbsp;(1)的解\mathbf{x}(t)存在及唯一。

常見的作法是設計一個狀態回授的控制律\mathbf{u}(\mathbf{x}(t))（也就是可以將時間t時的狀態\mathbf{x}(t)，映射到輸入\mathbf{u}的映射），這個控制律要可以穩定方程式(1)的动力系统在原點\mathbf{x} = [0, 0, \ldots, 0]^{\text{T}}附近的行為。也就是說，在此控制律下，只要系統從原點開始往任意方向前進，最後都會回到原點。例如，狀態向量\mathbf{x}中的分量x_1表示輸出和已知訊號（例如某個希望出現的弦波）之間的差，若控制\mathbf{u}可以讓x_1快速的回到x_1 =  0，也代表輸出會追隨理想的弦波信號。在滑動模式控制中，只要系統是限制在其組態空間的子空間內，設計者可以確定系統有理想的行為（有穩定的平衡點）。滑動模式控制會強迫系統軌跡進入子空間，並且讓軌跡維持在子空間內，因此可以在子空間內滑動。這個降階的子空間稱為「滑動（超）曲面」，若透過閉迴路回授，使得軌跡在滑動曲面上滑動，則稱為閉回路系統的「滑動模式」。沿著這個子空間的軌跡可以類比沿著LTI系統特徵向量的軌跡，不過滑動模式是透過此向量場上加上高增益回授來實現。就像彈珠會沿著裂縫滾動一樣，系統的軌跡也會限制在滑動模式上。

滑動模式的控制架構包括以下幾項：
#選擇超曲面或是流形（滑動曲面）讓系統軌跡限制在此流形上時，可以有理想的特性。
#選擇回授增益，讓系統軌跡可以和流形相交，而且之後可以維持在流形上。

因為滑動模式控制是不連續的，控制器可以在有限時間內將軌跡帶到滑動模式上（若偏離滑動平面時，回到滑動平面上的穩定性會比漸近穩定要好）。不過，只要軌跡接觸到滑動平面後，系統的特性會依照滑動模式的特性（也就是滑動平面上，在原點\mathbf{x}=\mathbf{0}附近只有漸近穩定性）。

在設計滑動模式時，會選擇一個切換函數\sigma: \mathbb{R}^n \mapsto\mathbb{R}^m，表示狀態 \mathbf{x}遠離滑動曲面的程度。
*在滑動平面外的狀態\mathbf{x}會有\sigma(\mathbf{x}) \neq 0。
*在滑動平面上的狀態\mathbf{x}會有\sigma(\mathbf{x}) = 0。

滑動模式控制律會依照上述距離的正負號在二種不同的狀態之間進行切換。因此滑動模式控制就類似一個硬的壓力，將系統軌跡移到\sigma(\mathbf{x}) = 0的滑動模式上。理想的\mathbf{x}(t)會接觸到滑動平面，而且因為控制律不連續（當軌跡越過滑動曲面時，控制律會由一個狀態切換到另一個狀態），軌跡會在有限時間內到達滑動平面。只要軌跡踫到平面之後，會沿著滑動平面滑動，而且會往原點\mathbf{x} = \mathbf{0}移動。因此切換函數類似地形图，有恒定高度的轮廓，而軌跡會限制在恒定高度的轮廓上移動。

滑動（超）曲面的維度是n \times m，其中n是狀態\mathbf{x}的個數，而m是輸入信號（也就是控制信號）\mathbf{u}的個數。針對每個1 \leq k \leq m，有n \times 1的滑動曲面，方程式為

滑動模式控制主要關鍵是選擇控制律，使得滑動模式（也就是\sigma(\mathbf{x})=\mathbf{0}曲面）存在，而且其他的系統軌跡可以進入滑動模式。滑動模式控制的原則是透過適當的控制策略，強迫性的限制系統在滑動曲面上，讓系統可以有理想的特性。當系統受滑動控制所限制，維持在滑動曲面上時，系統的動態特性可以用方程式(2)所得的降階系統所描述。

為了強迫系統狀態\mathbf{x}滿足\sigma(\mathbf{x}) = \mathbf{0}，需要：
# 確認系統可以從任意的初始條件到達\sigma(\mathbf{x}) = \mathbf{0}。
# 在到達\sigma(\mathbf{x})=\mathbf{0}後，可以透過控制行為讓系統維持在\sigma(\mathbf{x})=\mathbf{0}上

### 閉迴路解的存在
此控制律不是連續函數，也不會是利普希茨連續，因此無法用柯西-利普希茨定理確保閉迴路解的存在及唯一性。這個解需要用的架構來理解。。 大致上，沿著\sigma(\mathbf{x}) = \mathbf{0}的閉迴路系統可以用會平滑的動態\dot{\sigma}(\mathbf{x}) = \mathbf{0};　來近似，不過實際上不一定有這樣平滑的特性。高速的脈波振幅調變或ΔΣ調變產生的輸出是兩個狀態組成而成，但其有效的輸出會在連續的運動範圍內擺動。若是使用其他具有連續特性的非線性控制設計可以避免這類的問題。有些情形下，滑動模式控制的設計可以用其他連續控制器來近似。

## 理論基礎
以下定理是滑動模式控制的基礎。
### 定理1：滑動模式的存在
考慮以下的李亞普諾夫候選函數

其中
:\|\mathord{\cdot}\|為欧几里德范数（也就是說，\|\sigma(\mathbf{x})\|_2是距離滑動流形\sigma(\mathbf{x})=\mathbf{0}的距離）。

針對由方程式(1)及方程式(1)的滑動曲面組成的系統，滑動模式存在的充份條件是
: \underbrace{ \overbrace{\sigma^{\text{T}}}^{\tfrac{\partial V}{\partial \sigma}} \overbrace{\dot{\sigma}}^{\tfrac{\operatorname{d} \sigma}{\operatorname{d} t}} }_{\tfrac{\operatorname{d}V}{\operatorname{d}t}} 
在\sigma(\mathbf{x})=0曲面的邻域都成立。

簡單來說（例如針對m=1的純量控制應用），為了要使\sigma^{\text{T}} \dot{\sigma} ，需選擇回授控制律 u(\mathbf{x}) 使\sigma和\dot{\sigma}有相反的符號，因此
* 當\sigma(\mathbf{x})為正時，u(\mathbf{x})會使\dot{\sigma}(\mathbf{x})為負。
* 當\sigma(\mathbf{x})為負時，u(\mathbf{x})會使\dot{\sigma}(\mathbf{x})為正。

注意
:\dot{\sigma} 
= \frac{\partial \sigma}{\partial \mathbf{x}} \overbrace{\dot{\mathbf{x}}}^{\tfrac{\operatorname{d} \mathbf{x}}{\operatorname{d} t}}
= \frac{\partial \sigma}{\partial \mathbf{x}} \overbrace{\left( f(\mathbf{x},t) + B(\mathbf{x},t) \mathbf{u} \right)}^{\dot{\mathbf{x}}}
因此回授控制律\mathbf{u}(\mathbf{x})會直接影響\dot{\sigma}。

#### 可達性：可以在有限時間內到達滑動流形
為了要確保可以在有限時間內進入滑動模式\sigma(\mathbf{x})=\mathbf{0}，\operatorname{d}V/{\operatorname{d}t}需要比零小很多。若此數值很快的就歸零，就只能以漸近收斂的方式進入到滑動模式。若要在有限時間內進入滑動模式
:\frac{\operatorname{d}V}{\operatorname{d}t} \leq -\mu (\sqrt{V})^{\alpha}
其中\mu > 0，0 均為常數。

; 比較引理的說明
引理的條件確認在滑動模式V \in [0,1]的鄰域，下式成立
:\frac{\operatorname{d}V}{\operatorname{d}t} \leq -\mu (\sqrt{V})^{\alpha} \leq -\mu \sqrt{V}.
因此，針對V \in (0,1]，下式成立
:\frac{ 1 }{ \sqrt{V} } \frac{\operatorname{d}V}{\operatorname{d}t} \leq -\mu,
根據链式法则（也就是\operatorname{d}W/{\operatorname{d}t}，而W \triangleq 2 \sqrt{V}），下式也會成立
:\mathord{\underbrace{D^+ \Bigl( \mathord{\underbrace{2 \mathord{\overbrace{\sqrt{V}}^{ {} \propto \|\sigma\|_2}}}_{W}} \Bigr)}_{D^+ W \, \triangleq \, \mathord{\text{Upper right-hand } \dot{W}}}} = \frac{ 1 }{ \sqrt{V} } \frac{\operatorname{d}V}{\operatorname{d}t} \leq -\mu
其中
:D^+為2 \sqrt{V}的
:\propto代表比例。

因此將上式和曲線z(t) = z_0 - \mu t比較（初始條件 z(0)=z_0微分方程\dot{z} = -\mu的對應曲線）。可得2 \sqrt{V(t)} \leq V_0 - \mu t在所有t下成立。而且，因為\sqrt{V} \geq 0，\sqrt{V}必需在有限時間達到\sqrt{V}=0，表示V必需在有限時間達到V=0（也就是進入滑動模式）。因為\sqrt{V}和切換函數\sigma的欧几里德范数\|\mathord{\cdot}\|_2成正比，因此接近滑動模式的速率比定大於零。
### 定理2：吸引區域
針對方程式&nbsp;(1)的系統，以及方程式&nbsp;(2)的滑動曲面，\{ \mathbf{x} \in \mathbb{R}^n : \sigma(\mathbf{x})=\mathbf{0} \}表面的子空間有可達性的條件是
:\{ \mathbf{x} \in \mathbb{R}^n : \sigma^{\text{T}}(\mathbf{x})\dot{\sigma}(\mathbf{x}) 
也就是說，當初始條件完全由這個空間出發時，李亞普諾夫候選函數V(\sigma)為李亞普諾夫函數，而且\mathbf{x}軌跡確定會往滑動模式表面\sigma( \mathbf{x} ) = \mathbf{0}前進。而且，若定理1的可達性條件滿足，滑動模式會完全進入\dot{V}在有限時間遠離0的區域。因此會在有限時間內進入滑動模式\sigma = 0。

### 定理3：滑動運動
令
: \frac{\partial \sigma}{\partial{\mathbf{x}}} B(\mathbf{x},t) 
為非奇异的，也就是說，系統有某種可控制性使得永遠存在一種控制方式可以讓軌跡更靠近滑動模式。只要達到了滑動模式 \sigma(\mathbf{x}) = \mathbf{0} ，系統會維持在滑動模式上。沿著滑動模式軌跡，\sigma(\mathbf{x})為定值，因此滑動模式軌跡可以用以下的微分方程來描述
:\dot{\sigma} = \mathbf{0}.
若相對微分方程在\mathbf{x}-平衡是稳定的，則系統會沿著滑動模式表面往平衡點移動。

滑動模式下的「等效控制律」可以透過求解下式求得
: \dot\sigma(\mathbf{x})=0 
等效控制律為\mathbf{u}(\mathbf{x})，也就是說
:
\frac{\partial \sigma}{\partial \mathbf{x}} \overbrace{\left( f(\mathbf{x},t) + B(\mathbf{x},t) \mathbf{u} \right)}^{\dot{\mathbf{x}}} = \mathbf{0}
因此等效控制
:\mathbf{u} = -\left( \frac{\partial \sigma}{\partial \mathbf{x}} B(\mathbf{x},t) \right)^{-1} \frac{\partial \sigma}{\partial \mathbf{x}} f(\mathbf{x},t)
也就是說，就算實際的控制\mathbf{u}不連續，在滑動模式 \sigma(\mathbf{x})=\mathbf{0}兩側的快速切換會強迫系統的行為類似在連續模式下驅動的行為。

類似的，在滑動模式上的系統軌跡類似
:\dot{\mathbf{x}} = \overbrace{f(\mathbf{x},t) - B(\mathbf{x},t) \left( \frac{\partial \sigma}{\partial \mathbf{x}} B(\mathbf{x},t) \right)^{-1} \frac{\partial \sigma}{\partial \mathbf{x}} f(\mathbf{x},t)}^{f(\mathbf{x},t) + B(\mathbf{x},t) u} = f(\mathbf{x},t)\left( \mathbf{I} - B(\mathbf{x},t) \left( \frac{\partial \sigma}{\partial \mathbf{x}} B(\mathbf{x},t) \right)^{-1} \frac{\partial \sigma}{\partial \mathbf{x}} \right)
所得的系統符合滑動模式的微分方程
:\dot{\sigma}(\mathbf{x}) = \mathbf{0}
只要滑動模式表面\sigma(\mathbf{x})=\mathbf{0}為李雅普诺夫稳定性，從到達相位的軌跡條件可以簡化為上述較簡單的條件。因此系統在找到滑動模式後，會經過一些初始的暫態，之後就可以假定為符合較簡單的\dot{\sigma} = 0條件。若等式 \sigma(\mathbf{x}) = \mathbf{0} 只是近似成立，系統的動態仍可以近似為上述的特性。

依照上述定理，滑動運動對於由進入系統時足夠小的擾動是不敏感的，只要控制項大到足以滿足\sigma^{\text{T}} \dot{\sigma}  ，而且\dot{\sigma}均勻有界的遠離0，滑動模式的運作就如同系統沒有擾動時一樣。滑動模式控制對特定擾動及模型不確定性的不敏感是很具吸引力的特點，滿足鲁棒控制。

如同以上提到的，滑動模式控制律會維持以下的限制
: \dot{x} + x = 0 
目的是為了讓以下型態的任意系統可以漸近的穩定
: \ddot{x}=a(t,x,\dot{x}) + u
其中a(\cdot)為有限的上界，此例中，滑動模式為
:\dot{x} = -x
（也就是說，\dot{x}+x=0）。若系統限制在此條件下，會類似一個穩定的線性系統，因此在(x,\dot{x})=(0,0))位置是全域指數穩定的平衡點。

## 控制設計的例子
* 考慮一個由方程(1)描述的受控體，有單一輸入u（也就是說，m = 1）。其切換函數選擇為以下的線性組合

:其中的加權s_i > 0，對所有的1 \leq i \leq n都成立。滑動曲面是单纯形\sigma(\mathbf{x})=0。若軌跡強迫在曲面上滑行，
::\dot{\sigma}(\mathbf{x}) = 0
:因此
::s_1 \dot{x}_1 + s_2 \dot{x}_2 + \cdots + s_{n-1} \dot{x}_{n-1} + s_n \dot{x}_n = 0
:這是降階系統（新系統的階數為n-1，因為會限制在(n-1)-維的滑動模式单纯形上）。這個表面有理想的性質（當受控體被強制在滑動曲面上滑動，會趨向原點\mathbf{x}=\mathbf{0}）。取方程(3)中李亞普諾夫函數的導數，可得
::
\dot{V}(\sigma(\mathbf{x}))
= \overbrace{\sigma(\mathbf{x})^{\text{T}}}^{\tfrac{\partial \sigma}{\partial \mathbf{x}}} \overbrace{\dot{\sigma}(\mathbf{x})}^{\tfrac{\operatorname{d} \sigma}{\operatorname{d} t}}
:為了要確保\dot{V}是負定函數（也就是\dot{V} ，在\mathbf{\sigma}=0表面上有李雅普诺夫稳定性），需選擇回授控制律u(\mathbf{x})使下式成立
::\begin{cases}
\dot{\sigma}  0\\
\dot{\sigma} > 0 &\text{if } \sigma 
:因此\sigma \dot{\sigma} 因為是一個正數及負數的累積。注意到

:控制律u(\mathbf{x})可以選擇使下式成立
::u(\mathbf{x})
=
\begin{cases}
u^+(\mathbf{x}) &\text{if } \sigma(\mathbf{x}) > 0 \\ 
u^-(\mathbf{x}) &\text{if } \sigma(\mathbf{x}) 
:其中
:* u^+(\mathbf{x})是某種極端的控制（正轉或是打開），使得方程(5)\dot{\sigma}在\mathbf{x}為負值。
:* u^-(\mathbf{x})是另一種極端的控制（反轉或是關閉），使得方程(5)\dot{\sigma}在\mathbf{x}為正值。
:所得的軌跡會往滑動曲面\sigma(\mathbf{x})=0前進。因為實際系統會有時間延遲，滑動模式的軌跡不會是平滑的沿著滑動曲面滑動，而會在滑動曲面兩側反覆的切跳（chatter），不過若離開滑動曲面，會很快又回到滑動曲面。

* 考慮動態系統
::\ddot{x}=a(t,x,\dot{x})+u
:可以用二維的状态空间（其中with x_1 = x，x_2 = \dot{x}）表示：
::
\begin{cases}
\dot{x}_1 = x_2\\
\dot{x}_2 = a(t,x_1,x_2) + u
\end{cases}
:也假設\sup\{ |a(\cdot)| \} \leq k（也就是說|a|有一個已知有限的上限k），對於此系統，選擇切換函數
::\sigma(x_1,x_2)= x_1 + x_2 = x + \dot{x}
:在之前的例子中，必須選擇回授控制律u(x,\dot{x})使得\sigma \dot{\sigma} ，在此處
::\dot{\sigma} = \dot{x}_1 + \dot{x}_2 = \dot{x} + \ddot{x} = \dot{x}\,+\,\overbrace{a(t,x,\dot{x})+ u}^{\ddot{x}}
:* 當x + \dot{x} （也就是\sigma ），要讓\dot{\sigma} > 0，需選擇控制律使u > |\dot{x} + a(t,x,\dot{x})|成立
:* 當x + \dot{x} > 0（也就是\sigma > 0)，要讓\dot{\sigma} ，需選擇控制律使u 成立
:不過，因為三角不等式，
::|\dot{x}| + |a(t,x,\dot{x})| \geq |\dot{x} + a(t,x,\dot{x})|
:依照|a|的假設,
::|\dot{x}| + k + 1 > |\dot{x}| + |a(t,x,\dot{x})|
:因此系統可以利用以下的控制律進行回授穩定（回到滑動模式）
::u(x,\dot{x})
=
\begin{cases}
   |\dot{x}| + k + 1 &\text{if } \underbrace{x + \dot{x}}  0
\end{cases}
:可以表示為以下的解析解
::u(x,\dot{x}) = -(|\dot{x}|+k+1) \underbrace{\operatorname{sgn}(\overbrace{\dot{x}+x}^{\sigma})}_{\text{(i.e., tests } \sigma > 0 \text{)}}
:假設系統軌跡會受限制，因此\sigma(\mathbf{x})=0，則
::\dot{x} = -x \qquad \text{(i.e., } \sigma(x,\dot{x}) = x + \dot{x} = 0 \text{)}
:因此只要系統進入滑動模式，系統的二維動態特性會像一維的系統，而且在(x,\dot{x})=(0,0)會有一個全域指數穩定的驻点。

### 自動化設計的解
在設計滑動模式的控制系統時，雖然有許多不同的理論，不過沒有一個高效率的設計方法論，原因因為解析方法及數值方法實務上的困難。像是基因演算法之類可復用的方式，可以用來將中不可解的問題，轉換成實務上可解的非確定性多項式問題。這有助於滑動模式控制的電腦自動化設計。

## 相關條目
*變結構控制
*變結構系統
*併合系統
*非線性控制
*鲁棒控制
*最优控制
*起停式控制&nbsp;–滑動模式控制常會以起停式控制來實現。
*H桥&nbsp;– 將四個開關組合成類似H的四支腳的架構，在只有單方向電源的情形下，可用來驅動電機（或是其他設備）正轉或反轉。一般用在滑動模式控制的致動器中。
*&nbsp;–利用滑動模式控制來驅動連續的輸出
*ΔΣ調變&nbsp;–一種回授方式，將一個連續信號編碼為在二個狀態之間快速切換的訊號（一種特殊的滑動模式控制）。
*脈衝密度調變&nbsp;– 一種特殊的滑動模式控制
*脈衝寬度調變&nbsp;– 一種特殊的滑動模式控制，將連續信號轉換為不連續的切換
*積分滑動模式控制
*滑動模式觀測器

## 註解

## 參考資料