代數Riccati方程

代數Riccati方程(algebraic Riccati equation)是最优控制的非線性方程,和連續時間或是離散時間下,無限時間(infinite-horizon)的最优控制有關。

標準的代數Riccati方程如下:

連續時間代數Riccati方程(CARE):

: A^T P + P A - P B R^{-1} B^T P + Q = 0 \,

離散時間代數Riccati方程(DARE):

: P = A^T P A -(A^T P B)(R + B^T P B)^{-1}(B^T P A) + Q.\,

P是未知數的n×n對稱矩陣,ABQR是已知实係數矩陣。

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

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

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

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

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

:\sum_{t=1}^T (y_t^T Qy_t + u_t^T Ru_t)

其狀態方程如下

:y_t = Ay_{t-1} + Bu_t,

其中 yn × 1 的狀態變數向量,uk × 1 的控制變數向量,An × n 的狀態遞移矩陣,Bn × k 的控制係數矩陣,Q (n × n) 是對應半正定狀態损失函数矩陣,R (k × k) 是對應正定的控制損失函數矩陣。

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

:u_t^*=-(B^TP_tB+R)^{-1}(B^TP_tA)y_{t-1},

其中對應正定cost-to-go矩陣 P 會依下式,配合P_T = Q,以逆向時間推導

: P_{t-1} = Q+A^TP_tA - A^TP_tB(B^TP_tB+R)^{-1}B^TP_tA, \,

這個就是離散時間的代數Riccati方程。P的穩態解和和T趨近無限大時的無限時間問題有關,可以將動態方程反覆迭代直到收斂,來求得P的穩態解,之後再將動態方程中的時間標註移除,來確認穩態解是否正確。

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

針對CARE,其控制律為
:K = R^{-1} B^T P
閉迴路遞移矩陣為
: A - BK = A - B R^{-1} B^T P
其穩定的充份必要條件是所有的特徵值都有負的實部。

針對DARE,其控制律為
: K = (R + B^T P B)^{-1} B^T P A
閉迴路遞移矩陣為
: A - BK = A - B (R + B^T P B)^{-1} B^T P A
其穩定的充份必要條件是所有的特徵值在複數平面的單位圓內。

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

針對大型系統,也可以用找特徵分解的方式求解。針對CARE,可以定義漢彌爾頓矩陣
: Z = \begin{pmatrix} A & -B R^{-1} B^T \\ -Q & -A^T \end{pmatrix}
因為\scriptstyle Z 是漢彌爾頓矩陣,若在虛軸上沒有特徵值,則會有恰好一半的特徵值會有負的實部。若定義\scriptstyle 2n \times n矩陣,其纵排(column)形成對應子空間的基底,表示為區塊矩陣的形式,如下所示
: \begin{pmatrix} U_1 \\ U_2 \end{pmatrix}

: P = U_2 U_1^{-1}
是Riccati方程的解。而且\scriptstyle A - B R^{-1} B^T P的特徵值即為\scriptstyle Z特徵值中有負實部的特徵值。

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

: P = U_2 U_1^{-1}
是Riccati方程的解。而且\scriptstyle A - B (R + B^T P B)^{-1} B^T P A的特徵值即為\scriptstyle Z特徵值中,在單位圓內的特徵值。

相關條目
*李亞普諾夫方程

參考資料
*
*

外部連結

评论 (0)

  • 还没有评论,来抢沙发吧。