Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Sliding mode control
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Sliding mode observer== Sliding mode control can be used in the design of [[state observer]]s. These non-linear high-gain observers have the ability to bring coordinates of the estimator error dynamics to zero in finite time. Additionally, switched-mode observers have attractive measurement noise resilience that is similar to a [[Kalman filter]].<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> For simplicity, the example here uses a traditional sliding mode modification of a [[Luenberger observer]] for an [[LTI system]]. In these sliding mode observers, the order of the observer dynamics are reduced by one when the system enters the sliding mode. In this particular example, the estimator error for a single estimated state is brought to zero in finite time, and after that time the other estimator errors decay exponentially to zero. However, as first described by Drakunov,<ref name="Drakunov92">{{Cite book|last=Drakunov|first=S.V.|chapter=Sliding-mode observers based on equivalent control method |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}}</ref> a [[State observer#Switched observers|sliding mode observer for non-linear systems]] can be built that brings the estimation error for all estimated states to zero in a finite (and arbitrarily small) time. Here, consider the LTI system :<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> where state vector <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> is a vector of inputs, and output {{mvar|y}} is a scalar equal to the first state of the <math>\mathbf{x}</math> state vector. Let :<math>A \triangleq \begin{bmatrix} a_{11} & A_{12} \\ A_{21} & A_{22} \end{bmatrix}</math> where * <math>a_{11}</math> is a scalar representing the influence of the first state <math>x_1</math> on itself, * <math>A_{21} \in \mathbb{R}^{(n-1)}</math> is a row vector corresponding to the influence of the first state on the other states, * <math>A_{22} \in \mathbb{R}^{(n-1) \times (n-1)}</math> is a matrix representing the influence of the other states on themselves, and * <math>A_{12} \in \mathbb{R}^{1\times(n-1)}</math> is a column vector representing the influence of the other states on the first state. The goal is to design a high-gain state observer that estimates the state vector <math>\mathbf{x}</math> using only information from the measurement <math>y=x_1</math>. Hence, let the vector <math>\hat{\mathbf{x}} = (\hat{x}_1,\hat{x}_2,\dots,\hat{x}_n) \in \mathbb{R}^n</math> be the estimates of the {{mvar|n}} states. The observer takes the form :<math>\dot{\hat{\mathbf{x}}} = A \hat{\mathbf{x}} + B \mathbf{u} + L v(\hat{x}_1 - x_1)</math> where <math>v: \R \to \R</math> is a nonlinear function of the error between estimated state <math>\hat{x}_1</math> and the output <math>y=x_1</math>, and <math>L \in \mathbb{R}^n</math> is an observer gain vector that serves a similar purpose as in the typical linear [[state observer|Luenberger observer]]. Likewise, let :<math>L = \begin{bmatrix} -1 \\ L_{2} \end{bmatrix}</math> where <math>L_2 \in \mathbb{R}^{(n-1)}</math> is a column vector. Additionally, let <math>\mathbf{e} = (e_1, e_2, \dots, e_n) \in \mathbb{R}^n</math> be the state estimator error. That is, <math>\mathbf{e} = \hat{\mathbf{x}} - \mathbf{x}</math>. The error dynamics are then :<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> where <math>e_1 = \hat{x}_1 - x_1</math> is the estimator error for the first state estimate. The nonlinear control law {{mvar|v}} can be designed to enforce the sliding manifold :<math>0 = \hat{x}_1 - x_1</math> so that estimate <math>\hat{x}_1</math> tracks the real state <math>x_1</math> after some finite time (i.e., <math>\hat{x}_1 = x_1</math>). Hence, the sliding mode control switching function :<math>\sigma(\hat{x}_1,\hat{x}) \triangleq e_1 = \hat{x}_1 - x_1.</math> To attain the sliding manifold, <math>\dot{\sigma}</math> and <math>\sigma</math> must always have opposite signs (i.e., <math>\sigma \dot{\sigma} < 0</math> for [[almost everywhere|essentially]] all <math>\mathbf{x}</math>). However, :<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> where <math>\mathbf{e}_2 \triangleq (e_2, e_3, \ldots, e_n) \in \mathbb{R}^{(n-1)}</math> is the collection of the estimator errors for all of the unmeasured states. To ensure that <math>\sigma \dot{\sigma} < 0</math>, let :<math>v( \sigma ) = M \operatorname{sgn}(\sigma)</math> where :<math>M > \max\{ |a_{11} e_1 + A_{12} \mathbf{e}_2| \}.</math> That is, positive constant {{mvar|M}} must be greater than a scaled version of the maximum possible estimator errors for the system (i.e., the initial errors, which are assumed to be bounded so that {{mvar|M}} can be picked large enough; al). If {{mvar|M}} is sufficiently large, it can be assumed that the system achieves <math>e_1 = 0</math> (i.e., <math>\hat{x}_1 = x_1</math>). Because <math>e_1</math> is constant (i.e., 0) along this manifold, <math>\dot{e}_1 = 0</math> as well. Hence, the discontinuous control <math>v(\sigma)</math> may be replaced with the equivalent continuous control <math>v_{\text{eq}}</math> where :<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> So :<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> This equivalent control <math>v_{\text{eq}}</math> represents the contribution from the other <math>(n-1)</math> states to the trajectory of the output state <math>x_1</math>. In particular, the row <math>A_{12}</math> acts like an output vector for the error subsystem :<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> So, to ensure the estimator error <math>\mathbf{e}_2</math> for the unmeasured states converges to zero, the <math>(n-1)\times 1</math> vector <math>L_2</math> must be chosen so that the <math>(n-1)\times (n-1)</math> matrix <math>( A_2 + L_2 A_{12} )</math> is [[Hurwitz-stable matrix|Hurwitz]] (i.e., the real part of each of its [[eigenvalue]]s must be negative). Hence, provided that it is [[Observability|observable]], this <math>\mathbf{e}_2</math> system can be stabilized in exactly the same way as a typical linear [[state observer]] when <math>A_{12}</math> is viewed as the output matrix (i.e., "{{mvar|C}}"). That is, the <math>v_{\text{eq}}</math> equivalent control provides measurement information about the unmeasured states that can continually move their estimates asymptotically closer to them. Meanwhile, the discontinuous control <math>v = M \operatorname{sgn}( \hat{x}_1 - x )</math> forces the estimate of the measured state to have zero error in finite time. Additionally, white zero-mean symmetric measurement noise (e.g., [[Normal distribution|Gaussian noise]]) only affects the switching frequency of the control {{mvar|v}}, and hence the noise will have little effect on the equivalent sliding mode control <math>v_{\text{eq}}</math>. Hence, the sliding mode observer has [[Kalman filter]]–like features.<ref name="Drakunov83"/> The final version of the observer is thus :<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> where * <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> and * <math>u_{\text{obs}} \triangleq \begin{bmatrix} \mathbf{u} \\ \operatorname{sgn}(\hat{x}_1 - x_1) \end{bmatrix}.</math> That is, by augmenting the control vector <math>\mathbf{u}</math> with the switching function <math>\operatorname{sgn}(\hat{x}_1-x_1)</math>, the sliding mode observer can be implemented as an LTI system. That is, the discontinuous signal <math>\operatorname{sgn}(\hat{x}_1-x_1)</math> is viewed as a control ''input'' to the 2-input LTI system. For simplicity, this example assumes that the sliding mode observer has access to a measurement of a single state (i.e., output <math>y=x_1</math>). However, a similar procedure can be used to design a sliding mode observer for a vector of weighted combinations of states (i.e., when output <math>\mathbf{y} = C \mathbf{x}</math> uses a generic matrix {{mvar|C}}). In each case, the sliding mode will be the manifold where the estimated output <math>\hat{\mathbf{y}}</math> follows the measured output <math>\mathbf{y}</math> with zero error (i.e., the manifold where <math>\sigma(\mathbf{x}) \triangleq \hat{\mathbf{y}} - \mathbf{y} = \mathbf{0}</math>).
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)