滑動模式觀測器

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

滑動模式控制屬於非線性控制,滑動模式觀測器會有非線性高增益觀測器的特性,可以在有限時間內將觀測器的誤差收斂到零。此外,切換模式的觀測器類似卡尔曼滤波,可以允許一些程度的量測雜訊。
線性滑動模式觀測器
以下將线性时不变系统的倫伯傑觀測器( Luenberger observer),修改為滑動模式觀測器。在滑動模式觀測器中,若進入滑動模式,觀測器動態的階數會減一。在以下例子中,單一估測狀態的狀態誤差可以在有限時間內收斂到零。Drakunov最早提出,非線性系統可以建立滑動模式觀測器,讓所有估測狀態的估測誤差都在有限時間(而且是任意短的時間內)收斂到零。

考慮以下的LTI系統
:\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}
其中狀態向量\mathbf{x} \triangleq (x_1, x_2, \dots, x_n) \in \mathbb{R}^n, \mathbf{u} \triangleq (u_1, u_2, \dots, u_r) \in \mathbb{R}^r是輸入向量,輸出utput 是純量,等於\mathbf{x}狀態向量的第一個狀態。令
:A \triangleq \begin{bmatrix} a_{11} & A_{12} \\ A_{21} & A_{22} \end{bmatrix}
其中

  • a_{11}是純量,對應第一個狀態x_1對自己的影響
  • A_{21} \in \mathbb{R}^{(n-1)}是-{zh-cn:行; zh-tw:列;}-向量,對應第一個狀態對其他狀態的影響
  • A_{22} \in \mathbb{R}^{(n-1) \times (n-1)}是矩陣,對應其他各狀態彼此之間的影響
  • A_{12} \in \mathbb{R}^{1\times(n-1)}是-{zh-cn:列; zh-tw:行;}-向量,對應其他狀態對第一個狀態的影響

目的是要設計高增益的狀態觀測器,可以在只有量測資訊y=x_1的情形下,估測狀態向量。因此,令向量\hat{\mathbf{x}} = (\hat{x}_1,\hat{x}_2,\dots,\hat{x}_n) \in \mathbb{R}^n是狀態的觀測值,觀測器的形式為
:\dot{\hat{\mathbf{x}}} = A \hat{\mathbf{x}} + B \mathbf{u} + L v(\hat{x}_1 - x_1)
其中v: \R \to \R是估測狀態\hat{x}_1和輸出y=x_1之間誤差的非線性函數,L \in \mathbb{R}^n是估測器增益向量,其作用類似典型的線性狀態觀測器。同樣的,也令
:L = \begin{bmatrix} -1 \\ L_{2} \end{bmatrix}
其中L_2 \in \mathbb{R}^{(n-1)}是-{zh-cn:列; zh-tw:行;}-向量。另外,令\mathbf{e} = (e_1, e_2, \dots, e_n) \in \mathbb{R}^n是狀態估測誤差,也就是說\mathbf{e} = \hat{\mathbf{x}} - \mathbf{x}。誤差的動態方程為
:\begin{align}
\dot{\mathbf{e}}
&= \dot{\hat{\mathbf{x}}} - \dot{\mathbf{x}}\\
&= A \hat{\mathbf{x}} + B \mathbf{u} + L v(\hat{x}_1 - x_1)

  • A \mathbf{x} - B \mathbf{u}\\

&= A (\hat{\mathbf{x}} - \mathbf{x}) + L v(\hat{x}_1 - x_1)\\
&= A \mathbf{e} + L v(e_1)
\end{align}
其中e_1 = \hat{x}_1 - x_1是第一個狀態估測值的估測誤差。可以設計非線性控制律控制滑動流形
:0 = \hat{x}_1 - x_1
使估測量\hat{x}_1在有限時間內(也就是\hat{x}_1 = x_1)追到實際狀態x_1。因此,滑動控制切換函數為
:\sigma(\hat{x}_1,\hat{x}) \triangleq e_1 = \hat{x}_1 - x_1.
為了要保持在滑動流形上,\dot{\sigma}和\sigma需永遠維持異號(\sigma \dot{\sigma} 在幾乎處處\mathbf{x}都要成立)。 不過
:
\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 )

其中\mathbf{e}_2 \triangleq (e_2, e_3, \ldots, e_n) \in \mathbb{R}^{(n-1)} 是所有無法量測狀態估測誤差的集合。為了要確保\sigma \dot{\sigma} ,令
:v( \sigma ) = M \operatorname{sgn}(\sigma)
其中
:M > \max\{ |a_{11} e_1 + A_{12} \mathbf{e}_2| \}.
也就是說,正的常數需大於系統最可能估計誤差的純量。若夠大,可以假設系統會達到e_1 = 0(也就是\hat{x}_1 = x_1)。因為在流形上e_1是常數(零),也可以推得\dot{e}_1 = 0。因此不連續的控制律v(\sigma)可以用等效的連續控制律v_{\text{eq}}取代,其中
:
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}}.
因此
:
\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_{\text{eq}}代表剩下的(n-1)個狀態對輸出狀態x_1軌跡的貢獻。-{zh-cn:行; zh-tw:列;}-向量A_{12}類似以下誤差子系統的輸出向量
:
\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.

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

最終版本的觀測器為
:\begin{align}
\dot{\hat{\mathbf{x}}}
&= A \hat{\mathbf{x}} + B \mathbf{u} + L M \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{align}
其中

  • A_{\text{obs}} \triangleq A,
  • B_{\text{obs}} \triangleq \begin{bmatrix} B & \begin{bmatrix} -M\\L_2 M\end{bmatrix} \end{bmatrix},
  • u_{\text{obs}} \triangleq \begin{bmatrix} \mathbf{u} \\ \operatorname{sgn}(\hat{x}_1 - x_1) \end{bmatrix}.

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

為了簡化說明,這個例子假設滑動模式估測器可以量測單一狀態(例如,輸出y=x_1)。用類似的方式也可以用各狀態的加權平均(例如,輸出\mathbf{y} = C \mathbf{x}使用一般的矩陣)來設計滑動模式估測器。此例子中,滑動模式就會是使估測輸出\hat{\mathbf{y}}追隨量測輸出\mathbf{y},沒有誤差的流形(使\sigma(\mathbf{x}) \triangleq \hat{\mathbf{y}} - \mathbf{y} = \mathbf{0}的流形)。
非線性滑動模式觀測器
Drakunov曾經提過,可以針對非線性系統設計滑動模式觀測器。此觀測器可以用原始變數的估測值\hat{x}表示,型式如下

: \dot{\hat{x}} =
\left [ \frac{\partial H(\hat{x})}{\partial x}\right]^{-1} M(\hat{x})
\sgn( V(t) - H(\hat{x}) )

其中:

  • \sgn(\mathord{\cdot})向量將符號函數延伸到n維。也就是說

*:: \sgn(z) = \begin{bmatrix}
\sgn(z_1)\\
\sgn(z_2)\\
\vdots\\
\sgn(z_i)\\
\vdots\\
\sgn(z_n)
\end{bmatrix}
*: 針對向量z \in \mathbb{R}^n.

  • 向量H(x)的分量是輸出函數h(x)以及其各階李導數。其中

*:: 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}
: 其中L^i_f h是h沿著向量場f(也就是沿著非線性系統的x軌跡)的i階李导数。在此特例中,系統沒有輸入,也沒有相對次數(relative degree)n*,H(x(t))是輸出y(t)=h(x(t))以及其n-1次導數的集合。因為H(x)Jacobian線性化的倒數存在(讓觀測器可以有良好定義),H(x)的轉換保證是局部的微分同胚。

  • 增益對角矩陣 M(\hat{x}) 會使下式成立

*:: 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}
*: 其中,針對每一個i \in \{1,2,\dots,n\},元素m_i(\hat{x}) > 0  而且夠大,以保證會碰到滑動模式。

  • 觀測器向量V(t)會滿足下式

*:: 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}) \sgn( v_1(t) - h_1(\hat{x}(t)) ) \}_{\text{eq}}\\
\{ m_2(\hat{x}) \sgn( v_2(t) - h_2(\hat{x}(t)) ) \}_{\text{eq}}\\
\vdots\\
\{ m_{i-1}(\hat{x}) \sgn( v_{i-1}(t) - h_{i-1}(\hat{x}(t)) ) \}_{\text{eq}}\\
\vdots\\
\{ m_{n-1}(\hat{x}) \sgn( v_{n-1}(t) - h_{n-1}(\hat{x}(t)) ) \}_{\text{eq}}
\end{bmatrix}

*: 其中的\sgn(\mathord{\cdot})是正常對純量定義的符号函数,而\{ \ldots \}_{\text{eq}}是不連續函數在滑動模式下的「等效值運算子」。

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

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

: \begin{align}
\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}) \, \sgn( V(t) - H(\hat{x}(t)) ),
\end{align}
而且

:
\begin{align}
\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}) \, \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 \sgn( v_1(t) - h_1(\hat{x}(t)) )\\
m_2 \sgn( v_2(t) - h_2(\hat{x}(t)) )\\
\vdots\\
m_i \sgn( v_i(t) - h_i(\hat{x}(t)) )\\
\vdots\\
m_{n-1} \sgn( v_{n-1}(t) - h_{n-1}(\hat{x}(t)) )\\
m_n \sgn( v_n(t) - h_n(\hat{x}(t)) )
\end{bmatrix}\\
&=
\begin{bmatrix}
h_2(x) - m_1(\hat{x}) \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}) \sgn( v_2(t) - h_2(\hat{x}(t)) )\\
\vdots\\
h_{i+1}(x) - m_i(\hat{x}) \sgn( v_i(t) - h_i(\hat{x}(t)) )\\
\vdots\\
h_n(x) - m_{n-1}(\hat{x}) \sgn( v_{n-1}(t) - h_{n-1}(\hat{x}(t)) )\\
L_f^n h(x) - m_n(\hat{x}) \sgn( v_n(t) - h_n(\hat{x}(t)) )
\end{bmatrix}.
\end{align}

因此

只要m_1(\hat{x}) \geq |h_2(x(t))|, 誤差動態的第一個-{zh-cn:行; zh-tw:列;}-\dot{e}_1 = h_2(\hat{x}) - m_1(\hat{x}) \sgn( e_1 ),會符合在有限時間進入e_1 = 0滑動模式的充份條件。

在e_1 = 0表面上,對應的v_2(t) = \{m_1(\hat{x}) \sgn( e_1 )\}_{\text{eq}}等效控制會等於h_2(x),因此v_2(t) - h_2(\hat{x}) = h_2(x) - h_2(\hat{x}) = e_2。只要m_2(\hat{x}) \geq |h_3(x(t))|,誤差動態的第二個-{zh-cn:行; zh-tw:列;}-\dot{e}_2 = h_3(\hat{x}) - m_2(\hat{x}) \sgn( e_2 ),會在有限時間內進入e_2 = 0滑動模式。

在e_i = 0表面上,對應的v_{i+1}(t) = \{\ldots\}_{\text{eq}}等效控會等於h_{i+1}(x)。只要m_{i+1}(\hat{x}) \geq |h_{i+2}(x(t))|,誤差動態的第(i+1)個-{zh-cn:行; zh-tw:列;}-\dot{e}_{i+1} = h_{i+2}(\hat{x}) - m_{i+1}(\hat{x}) \sgn( e_{i+1} ),會在有限時間內進入e_{i+1} = 0滑動模式。

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

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

: \frac{\partial H(x)}{\partial x} B(x)

和時間無關。則觀測器為

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

參考資料
控制理論

评论 (0)

  • 还没有评论,来抢沙发吧。