LMIs in Control/Discrete-Time Algebraic Riccati Inequality (DARE)

The System
Consider a Discrete-Time LTI system

\begin{align} x_{k+1} = A_dx_k + B_du_k \end{align}$$



\begin{align} y_k = C_dx_k \end{align}$$

Consider $$A_d \in\mathbb{R}^{n\times n}; B_d\in\mathbb{R}^{n\times m}$$

The LMI: Discrete-Time Algebraic Riccati Inequality (DARE)
An algebraic Riccati equation is a type of nonlinear equation that arises in the context of infinite-horizon optimal control problems in continuous time or discrete time

The Discrete-Time Algebraic Riccati Inequality is given by

\begin{align} A_d^TPA_d - A_d^TPB_d (R + B_d^TPB_d)^{-1} B_d^TPA_d + Q - P \geq 0 \end{align}$$

$$P, Q\in\mathbb{S}^n$$ and $$R\in\mathbb{S}^m$$ where $$P > 0, Q \geq 0, R > 0$$.

$$P$$ is the unknown n by n symmetric matrix and $$A, B, Q, R$$ are known real coefficient matrices.

The above equation can be rewritten using the Schur Complement Lemma as:

\begin{bmatrix} A_d^TPA_d-P+Q & A_d^TPB_d \\ B_d^TPA_d & R+B_d^TPB_d \end{bmatrix}$$$$\begin{align}\geq 0\end{align}$$

The Data
The Matrices $$A_d, B_d, C_d, Q, R$$ are given

$$Q$$ and $$R$$ should necessarily be Hermitian matrices.

A square matrix is Hermitian if it is equal to its complex conjugate transpose.

The Optimization Problem
Our aim is to find

$$P$$ - Unique solution to the discrete-time algebraic Riccati equation, returned as a matrix.

$$K$$ - State-feedback gain, returned as a matrix.

The algorithm used to evaluate the State-feedback gain is given by



\begin{align} K = (R+B_d^TPB_d)^{-1}B_d^TPA_d \end{align}$$

$$L$$ - Closed-loop eigenvalues, returned as a matrix.

Conclusion:
Algebraic Riccati Inequalities play a key role in LQR/LQG control, H2- and H∞ control and Kalman filtering. We try to find the unique stabilizing solution, if it exists. A solution is stabilizing, if controller of the system makes the closed loop system stable.

Equivalently, this Discrete-Time algebraic Riccati Inequality is satisfied under the following necessary and sufficient condition:



\begin{bmatrix} Q & 0 & A_d^TP & P\\ 0 & R & B_d^TP & 0\\ PA_d & PB_d & P & 0\\ P & 0 & 0 & P \end{bmatrix}$$$$\begin{align}\geq 0\end{align}$$

Implementation
($$X$$ in the output corresponds to $$P$$ in the LMI)

A link to the Matlab code for a simple implementation of this problem in the GitHub repository:

https://github.com/yashgvd/ygovada

Related LMIs
LMI for Continuous-Time Algebraic Riccati Inequality

LMI for Schur Stabilization