查看“︁滑動模式觀測器”︁的源代码
←
滑動模式觀測器
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
'''滑動模式觀測器'''(Sliding mode observer)是應用[[滑動模式控制]]的[[狀態觀測器]],應用滑動模式控制的技術,使觀測器的狀態可以接近受控體的狀態。 滑動模式控制屬於[[非線性控制]],滑動模式觀測器會有非線性高增益觀測器的特性,可以在有限時間內將觀測器的誤差收斂到零。此外,切換模式的觀測器類似[[卡尔曼滤波]],可以允許一些程度的量測雜訊<ref name="UtkinGS99">{{Cite book|title=Sliding Mode Control in Electromechanical Systems|last1=Utkin|first1=Vadim|last2=Guldner|first2=Jürgen|last3=Shi|first3=Jingxin|year=1999|publisher=Taylor & Francis, Inc.|location=Philadelphia, PA|isbn=978-0-7484-0116-1}}</ref><ref name="Drakunov83">{{Cite journal|last=Drakunov|first=S.V.|title=An adaptive quasioptimal filter with discontinuous parameters|journal=Automation and Remote Control|year=1983|volume=44|issue=9|pages=1167–1175}}</ref>。 ==線性滑動模式觀測器== 以下將[[线性时不变系统理论|线性时不变系统]]的倫伯傑觀測器( Luenberger observer),修改為滑動模式觀測器。在滑動模式觀測器中,若進入滑動模式,觀測器動態的階數會減一。在以下例子中,單一估測狀態的狀態誤差可以在有限時間內收斂到零。Drakunov最早提出<ref name="Drakunov92">{{Cite book|chapter=Sliding-Mode Observers Based on Equivalent Control Method|journal=Proceedings of the 31st IEEE Conference on Decision and Control (CDC)|last=Drakunov|first=S.V.|title=[1992] Proceedings of the 31st IEEE Conference on Decision and Control|year=1992|issue=Tucson, Arizona, 16–18 December|pages=[https://archive.org/details/proceedingsofthe0003unse/page/2368 2368–2370]|isbn=978-0-7803-0872-5|doi=10.1109/CDC.1992.371368|s2cid=120072463|url=https://works.bepress.com/cgi/viewcontent.cgi?article=1003&context=sergey_v_drakunov|chapter-url=https://archive.org/details/proceedingsofthe0003unse/page/2368|access-date=2021-05-07|archive-date=2015-10-17|archive-url=https://web.archive.org/web/20151017015848/http://works.bepress.com/cgi/viewcontent.cgi?article=1003&context=sergey_v_drakunov|dead-url=no}}</ref>,非線性系統可以建立滑動模式觀測器,讓所有估測狀態的估測誤差都在有限時間(而且是任意短的時間內)收斂到零。 考慮以下的LTI系統 :<math>\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}</math> 其中狀態向量<math>\mathbf{x} \triangleq (x_1, x_2, \dots, x_n) \in \mathbb{R}^n</math>, <math>\mathbf{u} \triangleq (u_1, u_2, \dots, u_r) \in \mathbb{R}^r</math>是輸入向量,輸出utput {{mvar|y}}是純量,等於<math>\mathbf{x}</math>狀態向量的第一個狀態。令 :<math>A \triangleq \begin{bmatrix} a_{11} & A_{12} \\ A_{21} & A_{22} \end{bmatrix}</math> 其中 * <math>a_{11}</math>是純量,對應第一個狀態<math>x_1</math>對自己的影響 * <math>A_{21} \in \mathbb{R}^{(n-1)}</math>是-{zh-cn:行; zh-tw:列;}-<!--row-->向量,對應第一個狀態對其他狀態的影響 * <math>A_{22} \in \mathbb{R}^{(n-1) \times (n-1)}</math>是矩陣,對應其他各狀態彼此之間的影響 * <math>A_{12} \in \mathbb{R}^{1\times(n-1)}</math>是-{zh-cn:列; zh-tw:行;}-<!--column-->向量,對應其他狀態對第一個狀態的影響 目的是要設計高增益的狀態觀測器,可以在只有量測資訊<math>y=x_1</math>的情形下,估測狀態向量。因此,令向量<math>\hat{\mathbf{x}} = (\hat{x}_1,\hat{x}_2,\dots,\hat{x}_n) \in \mathbb{R}^n</math>是{{mvar|n}}狀態的觀測值,觀測器的形式為 :<math>\dot{\hat{\mathbf{x}}} = A \hat{\mathbf{x}} + B \mathbf{u} + L v(\hat{x}_1 - x_1)</math> 其中<math>v: \R \to \R</math>是估測狀態<math>\hat{x}_1</math>和輸出<math>y=x_1</math>之間誤差的非線性函數,<math>L \in \mathbb{R}^n</math>是估測器增益向量,其作用類似典型的線性狀態觀測器。同樣的,也令 :<math>L = \begin{bmatrix} -1 \\ L_{2} \end{bmatrix}</math> 其中<math>L_2 \in \mathbb{R}^{(n-1)}</math>是-{zh-cn:列; zh-tw:行;}-<!--column-->向量。另外,令<math>\mathbf{e} = (e_1, e_2, \dots, e_n) \in \mathbb{R}^n</math>是狀態估測誤差,也就是說<math>\mathbf{e} = \hat{\mathbf{x}} - \mathbf{x}</math>。誤差的動態方程為 :<math>\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}</math> 其中<math>e_1 = \hat{x}_1 - x_1</math>是第一個狀態估測值的估測誤差。可以設計非線性控制律{{mvar|v}}控制滑動流形 :<math>0 = \hat{x}_1 - x_1</math> 使估測量<math>\hat{x}_1</math>在有限時間內(也就是<math>\hat{x}_1 = x_1</math>)追到實際狀態<math>x_1</math>。因此,滑動控制切換函數為 :<math>\sigma(\hat{x}_1,\hat{x}) \triangleq e_1 = \hat{x}_1 - x_1.</math> 為了要保持在滑動流形上,<math>\dot{\sigma}</math>和<math>\sigma</math>需永遠維持異號(<math>\sigma \dot{\sigma} < 0</math>在[[幾乎處處]]<math>\mathbf{x}</math>都要成立)。 不過 :<math> \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 ) </math> 其中<math>\mathbf{e}_2 \triangleq (e_2, e_3, \ldots, e_n) \in \mathbb{R}^{(n-1)}</math> 是所有無法量測狀態估測誤差的集合。為了要確保<math>\sigma \dot{\sigma} < 0</math>,令 :<math>v( \sigma ) = M \operatorname{sgn}(\sigma)</math> 其中 :<math>M > \max\{ |a_{11} e_1 + A_{12} \mathbf{e}_2| \}.</math> 也就是說,正的常數{{mvar|M}}需大於系統最可能估計誤差的純量。若{{mvar|M}}夠大,可以假設系統會達到<math>e_1 = 0</math>(也就是<math>\hat{x}_1 = x_1</math>)。因為在流形上<math>e_1</math>是常數(零),也可以推得<math>\dot{e}_1 = 0</math>。因此不連續的控制律<math>v(\sigma)</math>可以用等效的連續控制律<math>v_{\text{eq}}</math>取代,其中 :<math> 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}}.</math> 因此 :<math> \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}}}. </math> 等效的控制律<math>v_{\text{eq}}</math>代表剩下的<math>(n-1)</math>個狀態對輸出狀態<math>x_1</math>軌跡的貢獻。-{zh-cn:行; zh-tw:列;}-<!--row-->向量<math>A_{12}</math>類似以下誤差子系統的輸出向量 :<math> \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. </math> 為了確保未量測狀態的估測誤差<math>\mathbf{e}_2</math>可以收斂到零,需選擇<math>(n-1)\times 1</math>向量<math>L_2</math>使得<math>(n-1)\times (n-1)</math>矩陣<math>( A_2 + L_2 A_{12} )</math>是[[赫維茲矩陣]](其特征值實部均為負數)。假設系統有[[可觀察性]],可將<math>A_{12}</math>視為輸出矩陣({{mvar|C}}),則<math>\mathbf{e}_2</math>系統可以用和一般線性觀測器相同的方式來穩定。也就是說,<math>v_{\text{eq}}</math>的等效控制可以提供未觀測狀態的量測資訊,可以連續地將其估測值漸近的趨近實際值。平均來說,不連續的控制律<math>v = M \operatorname{sgn}( \hat{x}_1 - x )</math>強制量測信號的估測量在有限時間內達到零。而且,平均值為零的對稱量測雜訊([[正态分布]])只會影響控制律{{mvar|v}}的切換頻率,對等效滑動模式控制律<math>v_{\text{eq}}</math>的影響不大。因此,滑動模式觀測器有類似[[卡尔曼滤波]]的特性<ref name="Drakunov83"/>。 最終版本的觀測器為 :<math>\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}</math> 其中 * <math>A_{\text{obs}} \triangleq A,</math> * <math>B_{\text{obs}} \triangleq \begin{bmatrix} B & \begin{bmatrix} -M\\L_2 M\end{bmatrix} \end{bmatrix},</math> * <math>u_{\text{obs}} \triangleq \begin{bmatrix} \mathbf{u} \\ \operatorname{sgn}(\hat{x}_1 - x_1) \end{bmatrix}.</math> 用切換函數<math>\operatorname{sgn}(\hat{x}_1-x_1)</math>來輔助控制向量<math>\mathbf{u}</math>,滑動模式觀測器可以用LTI系統來表示。不連續信號<math>\operatorname{sgn}(\hat{x}_1-x_1)</math>視為是雙輸入LTI的一個控制「輸入」。 為了簡化說明,這個例子假設滑動模式估測器可以量測單一狀態(例如,輸出<math>y=x_1</math>)。用類似的方式也可以用各狀態的加權平均(例如,輸出<math>\mathbf{y} = C \mathbf{x}</math>使用一般的矩陣{{mvar|C}})來設計滑動模式估測器。此例子中,滑動模式就會是使估測輸出<math>\hat{\mathbf{y}}</math>追隨量測輸出<math>\mathbf{y}</math>,沒有誤差的流形(使<math>\sigma(\mathbf{x}) \triangleq \hat{\mathbf{y}} - \mathbf{y} = \mathbf{0}</math>的流形)。 ==非線性滑動模式觀測器== Drakunov曾經提過<ref name="Drakunov92"/>,可以針對非線性系統設計滑動模式觀測器。此觀測器可以用原始變數的估測值<math>\hat{x}</math>表示,型式如下 : <math> \dot{\hat{x}} = \left [ \frac{\partial H(\hat{x})}{\partial x}\right]^{-1} M(\hat{x}) \sgn( V(t) - H(\hat{x}) )</math> 其中: * <math>\sgn(\mathord{\cdot})</math>向量將[[符號函數]]延伸到<math>n</math>維。也就是說 *:: <math>\sgn(z) = \begin{bmatrix} \sgn(z_1)\\ \sgn(z_2)\\ \vdots\\ \sgn(z_i)\\ \vdots\\ \sgn(z_n) \end{bmatrix}</math> *: 針對向量<math>z \in \mathbb{R}^n</math>. * 向量<math>H(x)</math>的分量是輸出函數<math>h(x)</math>以及其各階李導數。其中 *:: <math>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}</math> *: 其中<math>L^i_f h</math>是<math>h</math>沿著向量場<math>f</math>(也就是沿著非線性系統的<math>x</math>軌跡)的''i''階[[李导数]]。在此特例中,系統沒有輸入,也沒有相對次數(relative degree)''n'',<math>H(x(t))</math>是輸出<math>y(t)=h(x(t))</math>以及其<math>n-1</math>次導數的集合。因為<math>H(x)</math>Jacobian[[線性化]]的倒數存在(讓觀測器可以有良好定義),<math>H(x)</math>的轉換保證是局部的[[微分同胚]]。 * 增益[[對角矩陣]] <math>M(\hat{x})</math> 會使下式成立 *:: <math>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}</math> *: 其中,針對每一個<math>i \in \{1,2,\dots,n\}</math>,元素<math>m_i(\hat{x}) > 0</math> 而且夠大,以保證會碰到滑動模式。 * 觀測器向量<math>V(t)</math>會滿足下式 *:: <math>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} </math> *: 其中的<math>\sgn(\mathord{\cdot})</math>是正常對純量定義的[[符号函数]],而<math>\{ \ldots \}_{\text{eq}}</math>是不連續函數在滑動模式下的「等效值運算子」。 概念可以說明如下:依照滑動模式的理論,為了要描述系統特性,只要開始進入滑動模式,函數<math>\sgn( v_{i}(t)\!-\! h_{i}(\hat{x}(t)) )</math>就需要改為定效的值<!--(see ''equivalent control'' in the theory of [[sliding mode control]] ).-->實務上,函數會高頻的切換,其慢速的成份會和等效值相等。應用適當的低通濾波器可以濾掉高頻成份,得到等效值,其中也會有較多有關估測系統狀態的資訊。以下的觀測器用了幾次上述的作法,在有限時間內會得到非線性系統的狀態。 修改後的估測器誤差以用轉換後的狀態<math>e=H(x)-H(\hat{x})</math>表示。 : <math>\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}</math> 而且 : <math> \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} </math> 因此 # 只要<math>m_1(\hat{x}) \geq |h_2(x(t))|</math>, 誤差動態的第一個-{zh-cn:行; zh-tw:列;}-<!--row--><math>\dot{e}_1 = h_2(\hat{x}) - m_1(\hat{x}) \sgn( e_1 )</math>,會符合在有限時間進入<math>e_1 = 0</math>滑動模式的充份條件。 # 在<math>e_1 = 0</math>表面上,對應的<math>v_2(t) = \{m_1(\hat{x}) \sgn( e_1 )\}_{\text{eq}}</math>等效控制會等於<math>h_2(x)</math>,因此<math>v_2(t) - h_2(\hat{x}) = h_2(x) - h_2(\hat{x}) = e_2</math>。只要<math>m_2(\hat{x}) \geq |h_3(x(t))|</math>,誤差動態的第二個-{zh-cn:行; zh-tw:列;}-<!--row--><math>\dot{e}_2 = h_3(\hat{x}) - m_2(\hat{x}) \sgn( e_2 )</math>,會在有限時間內進入<math>e_2 = 0</math>滑動模式。 # 在<math>e_i = 0</math>表面上,對應的<math>v_{i+1}(t) = \{\ldots\}_{\text{eq}}</math>等效控會等於<math>h_{i+1}(x)</math>。只要<math>m_{i+1}(\hat{x}) \geq |h_{i+2}(x(t))|</math>,誤差動態的第<math>(i+1)</math>個-{zh-cn:行; zh-tw:列;}-<!--row--><math>\dot{e}_{i+1} = h_{i+2}(\hat{x}) - m_{i+1}(\hat{x}) \sgn( e_{i+1} )</math>,會在有限時間內進入<math>e_{i+1} = 0</math>滑動模式。 對於足夠大的<math>m_i</math>增益,所有的觀測器估測狀態都會在有限時間內到實際的狀態。只要<math>|h_i(x(0))|</math>有確定的上下界,增加<math>m_i</math>,可以在任意時間內讓估測狀態收斂。因此映射<math>H:\mathbb{R}^n \to \mathbb{R}^n </math>是[[微分同胚]](也就是其Jacobian [[線性化]]可逆)可以保證,若估測輸出的收斂,就意味著估測狀態的收斂。因此此要求是可觀察性的條件。 若針對有輸入系統的滑動模型觀測器,會需要額外的條件,其估測誤差和輸入無關。例如 : <math> \frac{\partial H(x)}{\partial x} B(x)</math> 和時間無關。則觀測器為 : <math> \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. </math> ==參考資料== {{reflist}} [[分類:控制理論]]
该页面使用的模板:
Template:Cite book
(
查看源代码
)
Template:Cite journal
(
查看源代码
)
Template:Mvar
(
查看源代码
)
Template:Reflist
(
查看源代码
)
返回
滑動模式觀測器
。
导航菜单
个人工具
登录
命名空间
页面
讨论
不转换
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
工具
链入页面
相关更改
页面信息