**代數Riccati方程**（algebraic Riccati equation）是最优控制的非線性方程，和連續時間（英语：）或是離散時間下，無限時間（infinite-horizon）的最优控制有關。

標準的代數Riccati方程如下：

連續時間代數Riccati方程（CARE）：

{\displaystyle A^{T}P+PA-PBR^{-1}B^{T}P+Q=0\,}
離散時間代數Riccati方程（DARE）：

{\displaystyle P=A^{T}PA-(A^{T}PB)(R+B^{T}PB)^{-1}(B^{T}PA)+Q.\,}
*P*是未知數的*n*×*n*對稱矩陣，*A*、*B*、*Q*及*R*是已知实係數矩陣。

一般而言此方程式有許多的解，不過若有存在穩定解的話，希望可以找到穩定解。

名稱的起源
-----

此方程名稱中有Riccati，是因為和Riccati方程的關係。連續時間代數Riccati方程（CARE）可以由相關矩陣值的Riccati微分方程的非時變解來驗證。離散時間代數Riccati方程（DARE）可以由矩陣值的Riccati微分方程的非時變解來驗證（類似離散時間LQR下的Riccati微分方程）。

離散時間的代數Riccati方程
----------------

在無限時間的最佳控制問題中，關注的是一些變數在相當時間之後的值，因此需在現在選定控制變數的值，讓系統在之後的時間都在最佳狀態下運作。控制變數在任意時間下的最佳值可以用Riccati方程的解以及狀態變數當時的觀測值求得。若觀測變數及控制變數都不只一個，Riccati方程就會是矩阵方程。

代數Riccati方程可以決定無限時間下非時變LQR控制器的解，以及無限時間下非時變LQG控制的解。這兩個是控制理论中的基礎問題。

典型的離散時間LQR問題，是要最小化以下的函數

{\displaystyle \sum \_{t=1}^{T}(y\_{t}^{T}Qy\_{t}+u\_{t}^{T}Ru\_{t})}
其狀態方程如下

{\displaystyle y\_{t}=Ay\_{t-1}+Bu\_{t},}
其中 *y* 是 *n* × 1 的狀態變數向量，*u* 是 *k* × 1 的控制變數向量，*A* 是 *n* × *n* 的狀態遞移矩陣，*B* 是 *n* × *k* 的控制係數矩陣，*Q* (*n* × *n*) 是對應半正定狀態损失函数矩陣，*R* (*k* × *k*) 是對應正定的控制損失函數矩陣。

從最後時間往前的推導可以找到每一個時間的最佳控制解

{\displaystyle u\_{t}^{\*}=-(B^{T}P\_{t}B+R)^{-1}(B^{T}P\_{t}A)y\_{t-1},}
其中對應正定cost-to-go矩陣 *P* 會依下式，配合{\displaystyle P\_{T}=Q}，以逆向時間推導

{\displaystyle P\_{t-1}=Q+A^{T}P\_{t}A-A^{T}P\_{t}B(B^{T}P\_{t}B+R)^{-1}B^{T}P\_{t}A,\,}
這個就是離散時間的代數Riccati方程。*P*的穩態解和和*T*趨近無限大時的無限時間問題有關，可以將動態方程反覆迭代直到收斂，來求得*P*的穩態解，之後再將動態方程中的時間標註移除，來確認穩態解是否正確。

求解
--

若代數Riccati方程存在穩定解，求解器一般會設法找到唯一的穩定解。穩定解的意思是指用此解控制相關的LQR系統，可以使閉迴路的系統穩定。

針對CARE，其控制律為

{\displaystyle K=R^{-1}B^{T}P}
閉迴路遞移矩陣為

{\displaystyle A-BK=A-BR^{-1}B^{T}P}
其穩定的充份必要條件是所有的特徵值都有負的實部。

針對DARE，其控制律為

{\displaystyle K=(R+B^{T}PB)^{-1}B^{T}PA}
閉迴路遞移矩陣為

{\displaystyle A-BK=A-B(R+B^{T}PB)^{-1}B^{T}PA}
其穩定的充份必要條件是所有的特徵值在複數平面的單位圓內。

代數Riccati方程的解可以用Riccati方程的的迭代或是矩陣因式分解求得。離散時間問題的一種迭代方式是由有限時間問題下的動態Riccati方程，每一次迭代時，矩陣中的值都是從最終時間往前一段有限時間內的最佳解，若進行無限長的迭代。就會分斂到特定矩陣，是無限時間內的最佳解。

針對大型系統，也可以用找特徵分解的方式求解。針對CARE，可以定義漢彌爾頓矩陣

{\displaystyle Z={\begin{pmatrix}A&-BR^{-1}B^{T}\\-Q&-A^{T}\end{pmatrix}}}
因為{\displaystyle \scriptstyle Z}是漢彌爾頓矩陣，若在虛軸上沒有特徵值，則會有恰好一半的特徵值會有負的實部。若定義{\displaystyle \scriptstyle 2n\times n}矩陣，其纵排（column）形成對應子空間的基底，表示為區塊矩陣的形式，如下所示

{\displaystyle {\begin{pmatrix}U\_{1}\\U\_{2}\end{pmatrix}}}
則

{\displaystyle P=U\_{2}U\_{1}^{-1}}
是Riccati方程的解。而且{\displaystyle \scriptstyle A-BR^{-1}B^{T}P}的特徵值即為\scriptstyle Z特徵值中有負實部的特徵值。

針對DARE，若A是可逆矩陣，可以定義辛矩陣

{\displaystyle Z={\begin{pmatrix}A+BR^{-1}B^{T}(A^{-1})^{T}Q&-BR^{-1}B^{T}(A^{-1})^{T}\\-(A^{-1})^{T}Q&(A^{-1})^{T}\end{pmatrix}}}
因為{\displaystyle \scriptstyle Z}是辛矩陣，若在單位圓圓周上沒有特徵值，則會有恰好一半的特徵值會在單位圓內。若定義{\displaystyle \scriptstyle 2n\times n}矩陣，其纵排（column）形成對應子空間的基底，表示為區塊矩陣的形式，如下所示
則

{\displaystyle P=U\_{2}U\_{1}^{-1}}
是Riccati方程的解。而且{\displaystyle \scriptstyle A-B(R+B^{T}PB)^{-1}B^{T}PA}的特徵值即為\scriptstyle Z特徵值中，在單位圓內的特徵值。

相關條目
----

* 李亞普諾夫方程

參考資料
----

1. ↑  Chow, Gregory.. New York: John Wiley & Sons. 1975. ISBN 0-471-15616-7.

* Peter Lancaster; Leiba Rodman, 牛津大學出版社: 504, 1995, ISBN 0-19-853795-6
* Alan J. Laub,  (PDF),  [2020-02-21], （原始内容存档 (PDF)于2016-10-24）

外部連結
----

* CARE solver help of MATLAB Control toolbox.
* DARE solver help of MATLAB Control toolbox.
* Online CARE solver for arbitrary sized matrices.
* Python CARE and DARE solvers.（页面存档备份，存于）
* Mathematica function to solve the continuous-time algebraic Riccati equation.（页面存档备份，存于）
* Mathematica function to solve the discrete-time algebraic Riccati equation.（页面存档备份，存于）