In control theory, a state observer or state estimator 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.
Linear, delayed, sliding mode, high gain, Tau, homogeneity-based, extended and cubic observers are among several observer structures used for state estimation of linear and nonlinear systems. A linear observer structure is described in the following sections.
The state of a linear, time-invariant discrete-time system is assumed to satisfy
x(k+1)=Ax(k)+Bu(k)
y(k)=Cx(k)+Du(k)
where, at time
k
x(k)
u(k)
y(k)
y(k)
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
\hat{x}(k)
\hat{y}(k)
\hat{x}(k+1)=A\hat{x}(k)+L\left[y(k)-\hat{y}(k)\right]+Bu(k)
\hat{y}(k)=C\hat{x}(k)+Du(k)
The observer is called asymptotically stable if the observer error
e(k)=\hat{x}(k)-x(k)
k\toinfty
e(k+1)=(A-LC)e(k)
A-LC
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)-BK\hat{x}(k)
\hat{y}(k)=C\hat{x}(k)-DK\hat{x}(k)
or, more simply,
\hat{x}(k+1)=\left(A-BK\right)\hat{x}(k)+L\left(y(k)-\hat{y}(k)\right)
\hat{y}(k)=\left(C-DK\right)\hat{x}(k)
Due to the separation principle we know that we can choose
K
L
A-LC
A-BK
The previous example was for an observer implemented in a discrete-time LTI system. However, the process is similar for the continuous-time case; the observer gains
L
A-LC
For a continuous-time linear system
x |
=Ax+Bu,
y=Cx+Du,
where
x\inRn,u\inRm,y\inRr
\hat{x |
\hat{y}=C\hat{x}+Du,
The observer error
e=x-\hat{x}
e |
=(A-LC)e
The eigenvalues of the matrix
A-LC
L
[A,C]
e(t)\to0
t\toinfty
When the observer gain
L
High gain, sliding mode and extended observers are the most common observers for nonlinear systems. To illustrate the application of sliding mode observers for nonlinear systems, first consider the no-input non-linear system:
x |
=f(x)
where
x\inRn
y\inR
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,
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)
z |
=Az+\phi(y),
y=Cz.
The Luenberger observer is then designed as
\hat{z |
The observer error for the transformed variable
e=\hat{z}-z
e |
=(A-LC)e
As shown by Gauthier, Hammouri, and Othmanand Hammouri and Kinnaert, if there exists transformation
z=\Phi(x)
z |
=A(u(t))z+\phi(y,u(t)),
y=Cz,
then the observer is designed as
\hat{z |
where
L(t)
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.
As discussed for the linear case above, the peaking phenomenon present in Luenberger observers justifies the use of switched observers. A switched observer encompasses a relay or binary switch that acts upon detecting minute changes in the measured output. Some common types of switched observers include the sliding mode observer, nonlinear extended state observer,[1] fixed time observer,[2] switched high gain observer[3] and uniting observer.[4] The sliding mode observer uses non-linear high-gain feedback to drive estimated states to a hypersurface where there is no difference between the estimated output and the measured output. The non-linear gain used in the observer is typically implemented with a scaled switching function, like the signum (i.e., sgn) of the estimated – measured output error. Hence, due to this high-gain feedback, the vector field of the observer has a crease in it so that observer trajectories slide along a curve where the estimated output matches the measured output exactly. So, if the system is observable from its output, the observer states will all be driven to the actual system states. Additionally, by using the sign of the error to drive the sliding mode observer, the observer trajectories become insensitive to many forms of noise. Hence, some sliding mode observers have attractive properties similar to the Kalman filter but with simpler implementation.
As suggested by Drakunov,[5] a sliding mode observer can also be designed for a class of non-linear systems. Such an observer can be written in terms of original variable estimate
\hat{x}
\hat{x |
where:
sgn(d{ ⋅ })
n
sgn(z)=\begin{bmatrix} sgn(z1)\\ sgn(z2)\\ \vdots\\ sgn(zi)\\ \vdots\\ sgn(zn) \end{bmatrix}
for the vector
z\inRn
H(x)
h(x)
H(x)\triangleq \begin{bmatrix} h1(x)\\ h2(x)\\ h3(x)\\ \vdots\\ hn(x) \end{bmatrix} \triangleq \begin{bmatrix} h(x)\\ Lf
2 | |
h(x)\\ L | |
f |
n-1 | |
h(x)\\ \vdots\\ L | |
f |
h(x) \end{bmatrix}
where
i | |
L | |
f |
h
h
f
x
H(x(t))
y(t)=h(x(t))
n-1
H(x)
H(x)
M(\hat{x})
M(\hat{x})\triangleq \operatorname{diag}(m1(\hat{x}),m2(\hat{x}),\ldots,mn(\hat{x})) = \begin{bmatrix} m1(\hat{x})&&&&&\\ &m2(\hat{x})&&&&\\ &&\ddots&&&\\ &&&mi(\hat{x})&&\\ &&&&\ddots&\\ &&&&&mn(\hat{x}) \end{bmatrix}
where, for each
i\in\{1,2,...,n\}
mi(\hat{x})>0
V(t)
V(t) \triangleq \begin{bmatrix}v1(t)\\ v2(t)\\ v3(t)\\ \vdots\\ vi(t)\\ \vdots\\ vn(t) \end{bmatrix} \triangleq \begin{bmatrix} y(t)\\ \{m1(\hat{x})sgn(v1(t)-h1(\hat{x}(t)))\}eq\\ \{m2(\hat{x})sgn(v2(t)-h2(\hat{x}(t)))\}eq\\ \vdots\\ \{mi-1(\hat{x})sgn(vi-1(t)-hi-1(\hat{x}(t)))\}eq\\ \vdots\\ \{mn-1(\hat{x})sgn(vn-1(t)-hn-1(\hat{x}(t)))\}eq\end{bmatrix}
where
sgn(d{ ⋅ })
\{\ldots\}eq
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(vi(t)-hi(\hat{x}(t)))
The modified observation error can be written in the transformed states
e=H(x)-H(\hat{x})
\begin{align} e | &= |
d | H(x) - | |
dt |
d | H(\hat{x})\\ &= | |
dt |
d | |
dt |
H(x) - M(\hat{x})sgn(V(t)-H(\hat{x}(t))), \end{align}
\begin{align} \begin{bmatrix} e |
|
|
|
n-1\\
e |
|
|
|
|
n-1(x)\\
h |
\tfrac{d | |
n(x) \end{bmatrix} } |
{dt}H(x)}} - d{\overbrace{ M(\hat{x})sgn(V(t)-H(\hat{x}(t))) }\tfrac{d{dt}H(\hat{x})}} = \begin{bmatrix} h2(x)\\ h3(x)\\ \vdots\\ hi+1(x)\\ \vdots\\ hn(x)\\ L
n | |
f |
h(x) \end{bmatrix} - \begin{bmatrix} m1sgn(v1(t)-h1(\hat{x}(t)))\\ m2sgn(v2(t)-h2(\hat{x}(t)))\\ \vdots\\ misgn(vi(t)-hi(\hat{x}(t)))\\ \vdots\\ mn-1sgn(vn-1(t)-hn-1(\hat{x}(t)))\\ mnsgn(vn(t)-hn(\hat{x}(t))) \end{bmatrix}\\ &= \begin{bmatrix} h2(x)-m1(\hat{x})sgn(
v1(t)=y(t)=h1(x) | |
d{\overbrace{d{\overbrace{v | |
1(t)} |
m1(\hat{x})\geq|h2(x(t))|
e |
1=h2(\hat{x})-m1(\hat{x})sgn(e1)
e1=0
e1=0
v2(t)=\{m1(\hat{x})sgn(e1)\}eq
h2(x)
v2(t)-h2(\hat{x})=h2(x)-h2(\hat{x})=e2
m2(\hat{x})\geq|h3(x(t))|
e |
2=h3(\hat{x})-m2(\hat{x})sgn(e2)
e2=0
ei=0
vi+1(t)=\{\ldots\}eq
hi+1(x)
mi+1(\hat{x})\geq|hi+2(x(t))|
(i+1)
e |
i+1=hi+2(\hat{x})-mi+1(\hat{x})sgn(ei+1)
ei+1=0
So, for sufficiently large
mi
mi
|hi(x(0))|
H:Rn\toRn
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
\partialH(x) | |
\partialx |
B(x)
does not depend on time. The observer is then
\hat{x |
Multi-observer extends the high-gain observer structure from single to multi observer, with many models working simultaneously. This has two layers: the first consists of multiple high-gain observers with different estimation states, and the second determines the importance weights of the first layer observers. The algorithm is simple to implement and does not contain any risky operations like differentiation. The idea of multiple models was previously applied to obtain information in adaptive control.[6]
Assuming that the number of high-gain observers equals
n+1
\hat{x |
\hat{yk}(t)=C\hat{xk}(t)
where
k=1,...,n+1
L
xk(0)
xk(t)
k=1...n+1
\hat{yk}(t)=
n+1 | |
\sum\limits | |
k=1 |
\alphak(t)\hat{xk}(t)
where
\alphak\inR
Let assume that
n+1 | |
\sum\limits | |
k=1 |
\alphak(t)\xik(t)=0
and
n+1 | |
\sum\limits | |
k=1 |
\alphak(t)=1
where
\xik\inRn
kth
ek(t)
Some transformation yields to linear regression problem
[-\xin(t)]=[\xi1(t)-\xin(t)...\xik(t)-\xin(t)...\xin(t)-\xin(t)]T\begin{bmatrix}\alpha1(t)\ \vdots\ \alphak(t)\ \vdots\ \alphan(t)\end{bmatrix}
This formula gives possibility to estimate
\alphak(t)
m:Rn\toRn
\xik(t)=m(ek(t))
\xik(t)
\alphak(t)
e\sigma(t)=
n+1 | |
\sum\limits | |
k=1 |
\alphak(t)ek(t)
Calculate
n
ηk(t)=\hatyk(t)-y(t)
\xik(t)
\xik(t)=\begin{bmatrix}1&0&0& … &0\ CL&1&0& … &0\\ CAL&CL&1& … &0\\ CA2L&CAL&CL& … &0\\ \vdots&\vdots&\vdots&\ddots\ CAn-2L&CAn-3L&CAn-4L& … &1 \end{bmatrix}\begin{bmatrix}
t | |
\int\limits | |
t-td |
{{n-1}\atop … }
t | |
\int\limits | |
t-td |
ηk(\tau)d\tau\ \vdots\\ η(t)-η(t-(n-1)td) \end{bmatrix}
where
td>0
\xik(t)
ηk(t)
\alphak(t)
\hat\alphak(t)
k=1...n+1
\alphak(t)
e\xi(t)=
n+1 | |
\sum\limits | |
k=1 |
\hat\alphak(t)\xik(t)
where
e\xi(t)\inRn,\hat\alphak(t)\inR
\hat\alpha(t)
\alphak(t)
e\xi(t)=0
\hatx
x(t)
x
Bounding[7] or interval observers[8] [9] constitute a class of observers that provide two estimationsof the state simultaneously: one of the estimations provides an upper bound on the real value of the state,whereas the second one provides a lower bound. The real value of the state is then known to be always within these two estimations.
These bounds are very important in practical applications,[10] [11] as they make possible to know at each time the precision of the estimation.
Mathematically, two Luenberger observers can be used, if
L
\hat{x}U(k)
e(k)=\hat{x}U(k)-x(k)
k\toinfty
\hat{x}L(k)
e(k)=\hat{x}L(k)-x(k)
\hat{x}U(k)\gex(k)\ge\hat{x}L(k)