代数Riccati方程(algebraic Riccati equation)是最优控制的非线性方程,和连续时间(英语:continuous time)或是离散时间下,无限时间(infinite-horizon)的最优控制有关。
标准的代数Riccati方程如下:
连续时间代数Riccati方程(CARE):
离散时间代数Riccati方程(DARE):
是未知数的×对称矩阵,、、及是已知实系数矩阵。
一般而言此方程式有许多的解,不过若有存在稳定解的话,希望可以找到稳定解。
此方程名称中有Riccati,是因为和Riccati方程的关系。连续时间代数Riccati方程(CARE)可以由相关矩阵值的Riccati微分方程的非时变解来验证。离散时间代数Riccati方程(DARE)可以由矩阵值的Riccati微分方程的非时变解来验证(类似离散时间LQR下的Riccati微分方程)。
在无限时间的最佳控制问题中,关注的是一些变数在相当时间之后的值,因此需在现在选定控制变数的值,让系统在之后的时间都在最佳状态下运作。控制变数在任意时间下的最佳值可以用Riccati方程的解以及状态变数当时的观测值求得。若观测变数及控制变数都不只一个,Riccati方程就会是矩阵方程。
代数Riccati方程可以决定无限时间下非时变LQR控制器的解,以及无限时间下非时变LQG控制的解。这两个是控制理论中的基础问题。
典型的离散时间LQR问题,是要最小化以下的函数
其状态方程如下
其中 是 × 1 的状态变数向量, 是 × 1 的控制变数向量, 是 × 的状态递移矩阵, 是 × 的控制系数矩阵, ( × ) 是对应半正定状态损失函数矩阵, ( × ) 是对应正定的控制损失函数矩阵。
从最后时间往前的推导可以找到每一个时间的最佳控制解
其中对应正定cost-to-go矩阵 会依下式,配合的稳态解和和趋近无限大时的无限时间问题有关,可以将动态方程反复迭代直到收敛,来求得的稳态解,之后再将动态方程中的时间标注移除,来确认稳态解是否正确。
若代数Riccati方程存在稳定解,求解器一般会设法找到唯一的稳定解。稳定解的意思是指用此解控制相关的LQR系统,可以使闭回路的系统稳定。
针对CARE,其控制律为
闭回路递移矩阵为
其稳定的充份必要条件是所有的特征值都有负的实部。
针对DARE,其控制律为
闭回路递移矩阵为
其稳定的充份必要条件是所有的特征值在复数平面的单位圆内。
代数Riccati方程的解可以用Riccati方程的的迭代或是矩阵因式分解求得。离散时间问题的一种迭代方式是由有限时间问题下的动态Riccati方程,每一次迭代时,矩阵中的值都是从最终时间往前一段有限时间内的最佳解,若进行无限长的迭代。就会分敛到特定矩阵,是无限时间内的最佳解。
针对大型系统,也可以用找特征分解的方式求解。针对CARE,可以定义汉弥尔顿矩阵
因为
是汉弥尔顿矩阵,若在虚轴上没有特征值,则会有恰好一半的特征值会有负的实部。若定义 矩阵,其纵排(column)形成对应子空间的基底,表示为区块矩阵的形式,如下所示则
是Riccati方程的解。而且
的特征值即为 特征值中有负实部的特征值。针对DARE,若
是可逆矩阵,可以定义辛矩阵因为
是辛矩阵,若在单位圆圆周上没有特征值,则会有恰好一半的特征值会在单位圆内。若定义 矩阵,其纵排(column)形成对应子空间的基底,表示为区块矩阵的形式,如下所示则是Riccati方程的解。而且
的特征值即为 特征值中,在单位圆内的特征值。