离散代数 Riccati 方程 (DARE) 求解

一、DARE 方程的推导

1.1 最优值函数假设

假设最优值函数(值函数)具有二次形式:

其中 是待定的对称正定矩阵。

1.2 Bellman 方程

根据动态规划原理,最优值函数满足 Bellman 方程:

代入

1.3 最优性条件

求导并令导数为零:

解得最优控制:

1.4 反馈增益矩阵


二、DARE 方程

2.1 标准形式

将最优控制代入 Bellman 方程,整理后得到离散代数 Riccati 方程 (Discrete Algebraic Riccati Equation, DARE)

2.2 等价形式

使用矩阵逆引理,DARE 可写为:

2.3 闭环 Lyapunov 方程

将 DARE 重写为闭环 Lyapunov 方程形式:

其中

物理意义

这表明最优值函数 是闭环系统的 Lyapunov 函数。


三、DARE 的求解方法

3.1 不动点迭代法

最直接的方法是不动点迭代:

算法

  1. 初始化 (或任意正定矩阵)
  2. 迭代更新:
  3. 时收敛

收敛条件

能稳且 可检测,则迭代收敛到唯一半正定解。

3.2 特征值方法

DARE 的解与辛矩阵 (Symplectic Matrix) 的特征值相关:

通过计算 的稳定不变子空间可得

3.3 Schur 方法

更数值稳定的方法:

  1. 构造增广矩阵
  2. 计算 Schur 分解
  3. 从稳定子空间提取

四、DARE 解的性质

4.1 存在唯一性

定理:若 能稳且 可检测,则 DARE 存在唯一半正定对称解

4.2 正定性

可观测(强于可检测),则 (正定)。

4.3 单调性

迭代序列 单调非减:


五、示例:一阶系统 DARE 求解

5.1 系统参数

5.2 DARE 方程

标量 DARE:

5.3 解析解

化简得二次方程:

解得:

5.4 反馈增益


六、数值计算注意事项

6.1 条件数

DARE 的条件数与以下因素相关:

  • 的特征值接近单位圆 → 条件数大
  • 过小 → 数值病态
  • 过小 → 解接近奇异

6.2 推荐算法

场景推荐方法
小型系统 ()不动点迭代
中型系统 ()Schur 方法
大型系统 ()迭代 + 低秩近似

6.3 软件工具

工具函数
MATLABdare(A, B, Q, R)
Python (SciPy)scipy.linalg.solve_discrete_are(A, B, Q, R)
Python (Control)control.dare(A, B, Q, R)

七、总结

概念公式
DARE 方程
反馈增益
最优控制律
最优值函数
存在条件 能稳, 可检测

更新记录

日期内容
2026-04-10初始版本