State observer
≈ 17 min read
Names in other languages
No names in other languages are held for this entry yet.
Article bodies are English and are not machine-translated. A name in another language is not a translation of the article.
In control theory, a state observer, state estimator, or Luenberger observer is a system that provides an estimate of the internal state of a given real system, from measurements of the input and output of the real system. It is typically computer-implemented, and provides the basis of many practical applications. Knowing the system state is necessary to solve many control theory problems; for example, stabilizing a system using state feedback. In most practical cases, the physical state of the system cannot be determined by direct observation. Instead, indirect effects of the internal state are observed by way of the system outputs. A simple example is that of vehicles in a tunnel: the rates and velocities at which vehicles enter and leave the tunnel can be observed directly, but the exact state inside the tunnel can only be estimated. If a system is observable, it is possible to fully reconstruct the system state from its output measurements using the state observer.
In control theory, a state observer, state estimator, or Luenberger observer is a system that provides an estimate of the internal state of a given real system, from measurements of the input and output of the real system. It is typically computer-implemented, and provides the basis of many practical applications. Knowing the system state is necessary to solve many control theory problems; for example, stabilizing a system using state feedback. In most practical cases, the physical state of the system cannot be determined by direct observation. Instead, indirect effects of the internal state are observed by way of the system outputs. A simple example is that of vehicles in a tunnel: the rates and velocities at which vehicles enter and leave the tunnel can be observed directly, but the exact state inside the tunnel can only be estimated. If a system is observable, it is possible to fully reconstruct the system state from its output measurements using the state observer. x(k+1) = A x(k) + B u(k) y(k) = C x(k) + D u(k) where, at time k , x(k) is the plant's state; u(k) is its inputs; and y(k) is its outputs. These equations simply say that the plant's current outputs and its future state are both determined solely by its current states and the current inputs. (Although these equations are expressed in terms of discrete time steps, very similar equations hold for continuous systems). If this system is observable then the output of the plant, y(k) , can be used to steer the state of the state observer. The observer model of the physical system is then typically derived from the above equations. Additional terms may be included in order to ensure that, on receiving successive measured values of the plant's inputs and outputs, the model's state converges to that of the plant. In particular, the output of the observer may be subtracted from the output of the plant and then multiplied by a matrix L ; this is then added to the equations for the state of the observer to produce a so-called Luenberger observer, defined by the equations below. Note that the variables of a state observer are commonly denoted by a "hat": \hat{x}(k) and \hat{y}(k) to distinguish them from the variables of the equations satisfied by the physical system. \hat{x}(k+1) = A \hat{x}(k) + L \left[y(k) - \hat{y}(k)\right] + B u(k) \hat{y}(k) = C \hat{x}(k) + D u(k) The observer is called asymptotically stable if the observer error e(k) = \hat{x}(k) - x(k) converges to zero when k \to \infty . For a Luenberger observer, the observer error satisfies e(k+1) = (A - LC) e(k) . The Luenberger observer for this discrete-time system is therefore asymptotically stable when the matrix A - LC has all the eigenvalues inside the unit circle. For control purposes the output of the observer system is fed back to the input of both the observer and the plant through the gains matrix K . u(k)= -K \hat{x}(k) The observer equations then become: \hat{x}(k+1) = A \hat{x}(k) + L \left[y(k) - \hat{y}(k)\right] - B K \hat{x}(k) \hat{y}(k) = C \hat{x}(k) - D K \hat{x}(k) or, more simply, \hat{x}(k+1) = \left(A - B K \right) \hat{x}(k) + L \left[ y(k) - \hat{y}(k) \right] \hat{y}(k) = \left(C - D K\right) \hat{x}(k) Due to the separation principle we know that we can choose K and L independently without harm to the overall stability of the systems. As a rule of thumb, the poles of the observer A-LC are usually chosen to converge 10 times faster than the poles of the system A-BK . \dot{x} = A x + B u, y = C x + D u, where x \in \mathbb{R}^n, u \in \mathbb{R}^m ,y \in \mathbb{R}^r , the observer looks similar to discrete-time case described above: \dot{\hat{x}} = A \hat{x}+ B u + L \left(y - \hat{y}\right) . \hat{y} = C \hat{x} + D u, The observer error e=x-\hat{x} satisfies the equation \dot{e} = (A - LC) e . The eigenvalues of the matrix A-LC can be chosen arbitrarily by appropriate choice of the observer gain L when the pair [A,C] is observable, i.e. observability condition holds. In particular, it can be made Hurwitz, so the observer error e(t) \to 0 when t \to \infty . \dot{x} = f(x) where x \in \mathbb{R}^n . Also assume that there is a measurable output y \in \mathbb{R} given by y = h(x). There are several non-approximate approaches for designing an observer. The two observers given below also apply to the case when the system has an input. That is, \dot{x} = f(x) + B(x) u y = h(x). One suggestion by Krener and Isidori and Krener and Respondek can be applied in a situation when there exists a linearizing transformation (i.e., a diffeomorphism, like the one used in feedback linearization) z=\Phi(x) such that in new variables the system equations read \dot{z} = A z+ \phi(y), y = Cz. The Luenberger observer is then designed as \dot{\hat{z}} = A \hat{z}+ \phi(y) - L \left(C \hat{z}-y \right) . The observer error for the transformed variable e=\hat{z}-z satisfies the same equation as in classical linear case. \dot{e} = (A - LC) e . As shown by Gauthier, Hammouri, and Othman and Hammouri and Kinnaert, if there exists transformation z=\Phi(x) such that the system can be transformed into the form \dot{z} = A(u(t)) z+ \phi(y,u(t) ), y = Cz, then the observer is designed as \dot{\hat{z}} = A(u(t)) \hat{z}+ \phi(y,u(t) ) - L(t) \left(C \hat{z}-y \right) , where L(t) is a time-varying observer gain. Ciccarella, Dalla Mora, and Germani obtained more advanced and general results, removing the need for a nonlinear transform and proving global asymptotic convergence of the estimated state to the true state using only simple assumptions on regularity. \dot{\hat{x}} = \left [ \frac{\partial H(\hat{x})}{\partial x}\right]^{-1} M(\hat{x}) \sgn( V(t) - H(\hat{x}) ) where: The \sgn(\mathord{\cdot}) vector extends the scalar signum function to n dimensions. That is, \sgn(z) = \begin{bmatrix} \sgn(z_1)\\ \sgn(z_2)\\ \vdots\\ \sgn(z_i)\\ \vdots\\ \sgn(z_n) \end{bmatrix} for the vector z \in \mathbb{R}^n . The vector H(x) has components that are the output function h(x) and its repeated Lie derivatives. In particular, 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} where L^i_f h is the i th Lie derivative of output function h along the vector field f (i.e., along x trajectories of the non-linear system). In the special case where the system has no input or has a relative degree of n, H(x(t)) is a collection of the output y(t)=h(x(t)) and its n-1 derivatives. Because the inverse of the Jacobian linearization of H(x) must exist for this observer to be well defined, the transformation H(x) is guaranteed to be a local diffeomorphism. The diagonal matrix M(\hat{x}) of gains is such that 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} where, for each i \in \{1,2,\dots,n\} , element m_i(\hat{x}) > 0 and suitably large to ensure reachability of the sliding mode. The observer vector V(t) is such that 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} where \sgn(\mathord{\cdot}) here is the normal signum function defined for scalars, and \{ \ldots \}_{\text{eq}} denotes an "equivalent value operator" of a discontinuous function in sliding mode. The idea can be briefly explained as follows. According to the theory of sliding modes, in order to describe the system behavior, once sliding mode starts, the function \sgn( v_{i}(t)\!-\! h_{i}(\hat{x}(t)) ) should be replaced by equivalent values (see equivalent control in the theory of sliding modes). In practice, it switches (chatters) with high frequency with slow component being equal to the equivalent value. Applying appropriate lowpass filter to get rid of the high frequency component on can obtain the value of the equivalent control, which contains more information about the state of the estimated system. The observer described above uses this method several times to obtain the state of the nonlinear system ideally in finite time. The modified observation error can be written in the transformed states e=H(x)-H(\hat{x}) . In particular, \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} and so \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} So: As long as m_1(\hat{x}) \geq |h_2(x(t))| , the first row of the error dynamics, \dot{e}_1 = h_2(\hat{x}) - m_1(\hat{x}) \sgn( e_1 ) , will meet sufficient conditions to enter the e_1 = 0 sliding mode in finite time. Along the e_1 = 0 surface, the corresponding v_2(t) = \{m_1(\hat{x}) \sgn( e_1 )\}_{\text{eq}} equivalent control will be equal to h_2(x) , and so v_2(t) - h_2(\hat{x}) = h_2(x) - h_2(\hat{x}) = e_2 . Hence, so long as m_2(\hat{x}) \geq |h_3(x(t))| , the second row of the error dynamics, \dot{e}_2 = h_3(\hat{x}) - m_2(\hat{x}) \sgn( e_2 ) , will enter the e_2 = 0 sliding mode in finite time. Along the e_i = 0 surface, the corresponding v_{i+1}(t) = \{\ldots\}_{\text{eq}} equivalent control will be equal to h_{i+1}(x) . Hence, so long as m_{i+1}(\hat{x}) \geq |h_{i+2}(x(t))| , the (i+1) th row of the error dynamics, \dot{e}_{i+1} = h_{i+2}(\hat{x}) - m_{i+1}(\hat{x}) \sgn( e_{i+1} ) , will enter the e_{i+1} = 0 sliding mode in finite time. So, for sufficiently large m_i gains, all observer estimated states reach the actual states in finite time. In fact, increasing m_i allows for convergence in any desired finite time so long as each |h_i(x(0))| function can be bounded with certainty. Hence, the requirement that the map H:\mathbb{R}^n \to \mathbb{R}^n is a diffeomorphism (i.e., that its Jacobian linearization is invertible) asserts that convergence of the estimated output implies convergence of the estimated state. That is, the requirement is an observability condition. In the case of the sliding mode observer for the system with the input, additional conditions are needed for the observation error to be independent of the input. For example, that \frac{\partial H(x)}{\partial x} B(x) does not depend on time. The observer is then \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. Multi observer.png|Multi-observer schema Assuming that the number of high-gain observers equals n+1 , \dot{\hat{x}}_k(t) = A \hat{x_k}(t)+ B \phi_0(\hat{x}(t), u(t)) - L (\hat{y_k}(t)-y(t)) \hat{y_k}(t) = C \hat{x_k}(t) where k = 1, \dots, n + 1 is the observer index. The first layer observers consists of the same gain L but they differ with the initial state x_k(0) . In the second layer all x_k(t) from k = 1...n + 1 observers are combined into one to obtain single state vector estimation \hat{y_k}(t) = \sum\limits_{k=1}^{n+1} \alpha_k(t) \hat{x_k}(t) where \alpha_k \in \mathbb{R} are weight factors. These factors are changed to provide the estimation in the second layer and to improve the observation process. Let assume that \sum\limits_{k=1}^{n+1} \alpha_k(t) \xi_k(t) = 0 and \sum\limits_{k=1}^{n+1} \alpha_k(t) = 1 where \xi_k \in \mathbb{R}^{n \times 1} is some vector that depends on kth observer error e_k(t) . Some transformation yields to linear regression problem [- \xi_{n + 1} (t)] = [\xi_{1}(t) - \xi_{n + 1}(t)\dots \xi_{k}(t) - \xi_{n + 1}(t)\dots \xi_{n}(t) - \xi_{n + 1}(t)]^T \begin{bmatrix} \alpha_1(t)\\ \vdots \\ \alpha_k(t)\\ \vdots\\ \alpha_n(t) \end{bmatrix} This formula gives possibility to estimate \alpha_k (t) . To construct manifold we need mapping m: \mathbb{R}^{n} \to \mathbb{R}^{n} between \xi_k (t) = m(e_k(t)) and ensurance that \xi_k (t) is calculable relying on measurable signals. First thing is to eliminate parking phenomenon for \alpha_k(t) from observer error e_{\sigma}(t) = \sum\limits_{k=1}^{n+1} \alpha_k(t) e_k(t) . Calculate n times derivative on \eta_k(t)=\hat y_k (t) - y(t) to find mapping m lead to \xi_k(t) defined as \xi_k (t) = \begin{bmatrix} 1 & 0 & 0 & \cdots & 0 \\ CL & 1 & 0 & \cdots & 0 \\ CAL & CL & 1 & \cdots & 0 \\ CA^{2}L & CAL & CL & \cdots & 0 \\ \vdots & \vdots & \vdots & \ddots \\ CA^{n-2}L & CA^{n-3}L & CA^{n-4}L & \cdots & 1 \end{bmatrix} \begin{bmatrix} \int\limits^t_{t-t_d} {{n-1} \atop \cdots} \int\limits^t_{t-t_d} \eta_k(\tau) d\tau\\ \vdots \\ \eta(t) - \eta(t-(n-1)t_d) \end{bmatrix} where t_d > 0 is some time constant. Note that \xi_k(t) relays on both \eta_k(t) and its integrals hence it is easily available in the control system. Further \alpha_k(t) is specified by estimation law; and thus it proves that manifold is measurable. In the second layer \hat\alpha_k(t) for k = 1 \dots n + 1 is introduced as estimates of \alpha_k(t) coefficients. The mapping error is specified as e_\xi(t) = \sum\limits_{k=1}^{n+1} \hat\alpha_k(t) \xi_k(t) where e_\xi(t) \in \mathbb{R}^{n \times 1}, \hat\alpha_k(t) \in \mathbb{R} . If coefficients \hat\alpha(t) are equal to \alpha_k(t) , then mapping error e_\xi(t) = 0 Now it is possible to calculate \hat x from above equation and hence the peaking phenomenon is reduced thanks to properties of manifold. The created mapping gives a lot of flexibility in the estimation process. Even it is possible to estimate the value of x(t) in the second layer and to calculate the state x . Mathematically, two Luenberger observers can be used, if L is properly selected, using, for example, positive systems properties: one for the upper bound \hat{x}_U(k) (that ensures that e(k) = \hat{x}_U(k) - x(k) converges to zero from above when k \to \infty , in the absence of noise and uncertainty), and a lower bound \hat{x}_L(k) (that ensures that e(k) = \hat{x}_L(k) - x(k) converges to zero from below). That is, always \hat{x}_U(k) \ge x(k) \ge \hat{x}_L(k)
Text derived from https://en.wikipedia.org/w/index.php?oldid=1362356924 under CC BY-SA 4.0; modifications have been made.