LMIs in Control/pages/Discrete-Time H2-Optimal Observer

In many applications, perhaps even most, the state of the system cannot be directly known. In this case, you will need to strategically to measure key system outputs that will make the system states indirectly observable. Observers need to converge much faster than the system dynamics in order for their estimations to be accurate. Optimal observer synthesis is therefore advantageous. In this LMI, we seek to optimize the H2 norm, which conceptually is minimizing the average magnitude of error in the observer.

The System


\begin{align}

x_{k+1}&=A_{d}x_{k}+B_{d1}w_{k},\\

y_{k}&=C_{c2}x_{k} + D_{d21}w_{k}\\ \end{align} $$

where $$ x \in R^{n}$$  and is the state vector,  $$ A \in R^{n\times n}$$  and is the state matrix,  $$ B \in R^{n\times r}$$  and is the input matrix,  $$ w \in R^{r}$$  and is the exogenous input,  $$ C \in R^{m\times n}$$  and is the output matrix,  $$ D \in R^{m\times r}$$  and is the feedthrough matrix,  $$ y \in R^{m}$$ and is the output, and it is assumed that $$(A_{d}, C_{d2})$$ is detectable.

The Data
The matrices $$ A_{d}, B_{d1}, C_{cd2}, C_{cd1}, D_{d21} $$.

The Optimization Problem
An observer of the form:



\begin{align}

\hat x_{k+1}&=A_{d}\hat x_{k}+ L_{d}(y_{k}-\hat y_{k}),\\

\hat y_{k}&=C_{d2} \hat x_{k} \\ \end{align} $$

is to be designed, where $$ L_{d} \in R^{n_{x}\times n_{y}}$$ is the observer gain.

Defining the error state $$ e_{k} = x_{k} - \hat x_{k}$$, the error dynamics are found to be

$$e_{k+1} = (A_{d} - L_{d}C_{d2} e_{k} + (B_{d1} - L_{d}D_{d21})w_{k}$$,

and the performance output is defined as

$$z_{k} = C_{d1}e_{k}$$.

The observer gain $$L_{d}$$ is to be designed such that the $$H_{2}$$ of the transfer matrix from $$w_{k}$$ to $$z_{k}$$, given by

$$L_{d} \begin{align} T(z) &= C_{d1}(z1 - (A_{d} - L_{d}C_{d2}))^{-1}(B_{d1} - L_{d}D_{d21}),\\ \end{align} $$

is minimized.

The LMI: Discrete-Time H2-Optimal Observer
The discrete-time $$H_{2}$$-optimal observer gain is synthesized by solving for $$P \in S^{n_{x}}$$, $$Z \in S^{n_{z}}$$, $$G_{d} \in R^{n_{x}\times n_{y}}$$, and $$v \in R_{>0}$$ that minimize $$J(v) = v$$ subject to $$P>0, Z>0$$,



\begin{align}

\begin{bmatrix}P & PA_{d}-G_{d}C_{d2} & PB_{d1}-G_{d}D_{d21}\\
 * & P & 0\\
 * & * & 1\end{bmatrix}&>0,\\

\begin{bmatrix} Z & PC_{d1}\\
 * & P\end{bmatrix}&>0,\\

\operatorname{tr}Z<v

\end{align}$$ where $$\operatorname{tr}$$ refers to the trace of a matrix.

Conclusion:
The $$H_{2}$$-optimal observer gain is recovered by $$L_{d} = P^{-1}G_{d}$$ and the $$H_{2}$$ norm of $$T(z)$$ is $$\mu = \sqrt{v}$$. The $$L_{d} $$ matrix is the observer gains that can be used to form the optimal observer:

\begin{align}

\hat x_{k+1}&=A_{d}\hat x_{k}+ L_{d}(y_{k}-\hat y_{k}),\\

\hat y_{k}&=C_{d2} \hat x_{k} \\ \end{align} $$

Implementation
This implementation requires Yalmip and Sedumi.

https://github.com/rezajamesahmed/LMImatlabcode/blob/master/Discrete_Time_H2_Optimal_Observer_LMIs_Wikibook_Example.m

Related LMIs
Mixed H2-Hinfinity discrete time observer

Discrete-Time_Hinfinity-Optimal_Observer