研讨会系列 · KF L20 · 线性二次型调节器 · 第一部分

LQR 问题与 DP 求解

线性二次型调节器(LQR)问题建模、DP 方法逆向推导、Riccati 方程与最优增益

📅 2026-07-22 🧩 LQR 🏆 Riccati 方程 🔄 最优控制

🎯 学完本节,你应能

  • 写出 LQR 问题的系统模型与代价函数
  • 用 DP 方法从终值反向推导 LQR 最优控制律
  • 推导离散时间 Riccati 方程
  • 理解 Completion of Squares(配方法)在 LQR 求解中的角色

🔑 核心思想

LQR 是 DP 方法在二次型代价+线性系统下的闭式解。由于代价是二次型,Bellman 方程退化为一个矩阵递推——Riccati 方程——无需穷举就能直接求出最优控制律。这是"求解 DP 问题"的黄金标准样例。

📖 目录

1. LQR 问题描述

线性二次型调节器(Linear Quadratic Regulator, LQR)是控制理论中最经典的问题之一,也是 DP 方法能够给出简洁闭式解的一个重要实例。

1.1 系统模型

$$ x_{k+1} = A x_k + B u_k, \qquad x_0 \text{ 给定} $$

其中 $x_k \in \mathbb{R}^n$ 为状态向量,$u_k \in \mathbb{R}^m$ 为控制输入

1.2 代价函数

$$ J = \underbrace{x_N^\top Q x_N}_{g_N} + \sum_{k=0}^{N-1} \big( x_k^\top Q x_k + u_k^\top R u_k \big) $$

1.3 目标

找到最优控制序列 $\{u_0^*, u_1^*, \dots, u_{N-1}^*\}$,使得总代价 $J$ 最小化。

2. DP 求解 LQR:逆向递推

代价函数是二次型、系统是线性的,因此 Bellman 方程每一步都可以得到一个闭式解。

2.1 终值条件

$$ J_N(x_N) = g_N(x_N) = x_N^\top Q x_N = x_N^\top P_N x_N, \quad P_N = Q $$

2.2 逆向一步:$k = N-1$

$$ \begin{aligned} J_{N-1}(x_{N-1}) &= \min_{u_{N-1}} \Big\{ x_{N-1}^\top Q x_{N-1} + u_{N-1}^\top R u_{N-1} + J_N(x_N) \Big\} \\ &= \min_{u_{N-1}} \Big\{ x_{N-1}^\top Q x_{N-1} + u_{N-1}^\top R u_{N-1} + x_N^\top Q x_N \Big\} \end{aligned} $$

代入 $x_N = A x_{N-1} + B u_{N-1}$:

$$ J_{N-1}(x_{N-1}) = \min_{u_{N-1}} \Big\{ x_{N-1}^\top Q x_{N-1} + u_{N-1}^\top R u_{N-1} + (A x_{N-1} + B u_{N-1})^\top Q (A x_{N-1} + B u_{N-1}) \Big\} $$
DP逆向递推
从 $k=N$ 到 $k=0$ 的逆向递推过程

3. 配方法与最优控制律

3.1 展开整理

$$ \begin{aligned} J_{N-1}(x_{N-1}) &= \min_{u_{N-1}} \Big\{ x_{N-1}^\top Q x_{N-1} + u_{N-1}^\top R u_{N-1} \\ &\quad + x_{N-1}^\top A^\top Q A x_{N-1} + 2 x_{N-1}^\top A^\top Q B u_{N-1} + u_{N-1}^\top B^\top Q B u_{N-1} \Big\} \\ &= \min_{u_{N-1}} \Big\{ u_{N-1}^\top (R + B^\top Q B) u_{N-1} + 2 x_{N-1}^\top A^\top Q B \cdot u_{N-1} + \text{const}(x_{N-1}) \Big\} \end{aligned} $$

3.2 Completion of Squares

对于 $u^\top M u + 2 v^\top u$ 型二次型,最小值通过配方法求得:

$$ \begin{aligned} &u^\top M u + 2 v^\top u = (u - \Delta)^\top M (u - \Delta) - \Delta^\top M \Delta \\ &\text{其中 } \Delta = -M^{-1} v, \quad M = R + B^\top Q B \end{aligned} $$

代入 $v = B^\top Q A x_{N-1}$,得到:

🏆 $k = N-1$ 最优控制律

$$ u_{N-1}^* = - (R + B^\top P_N B)^{-1} B^\top P_N A \cdot x_{N-1} $$

这是状态线性反馈:$u_{N-1}^* = -L_{N-1} x_{N-1}$

3.3 代价函数的值

代回最优控制律:

$$ J_{N-1}(x_{N-1}) = x_{N-1}^\top P_{N-1} x_{N-1} $$
$$ P_{N-1} = A^\top P_N A + Q - A^\top P_N B (B^\top P_N B + R)^{-1} B^\top P_N A, \quad P_N = Q $$

4. Riccati 方程推导

4.1 一般形式

假设 $J_{k+1}(x_{k+1}) = x_{k+1}^\top P_{k+1} x_{k+1}$,则在时刻 $k$:

$$ J_k(x_k) = \min_{u_k} \Big\{ x_k^\top Q x_k + u_k^\top R u_k + (A x_k + B u_k)^\top P_{k+1} (A x_k + B u_k) \Big\} $$

4.2 离散时间 Riccati 方程

📐 DARE

$$ P_k = A^\top P_{k+1} A + Q - A^\top P_{k+1} B \big( B^\top P_{k+1} B + R \big)^{-1} B^\top P_{k+1} A $$

终值条件 $P_N = Q$,从 $k=N$ 到 $k=0$ 逆向递推

4.3 最优增益矩阵

$$ L_k = \big( B^\top P_{k+1} B + R \big)^{-1} B^\top P_{k+1} A $$

最优控制律:$u_k^* = -L_k x_k$

Riccati递推
Riccati 方程逆向递推:从 $P_N$ 到 $P_0$

5. 完整求解流程与数值例子

5.1 离线计算流程

📋 LQR 求解步骤

  1. 初始化:$P_N = Q$
  2. 对 $k = N-1, \dots, 0$ 逆向循环:
    1. 计算增益:$L_k = (B^\top P_{k+1} B + R)^{-1} B^\top P_{k+1} A$
    2. 更新 Riccati:$P_k = A^\top P_{k+1} A + Q - A^\top P_{k+1} B L_k$
  3. 在线执行:$u_k = -L_k x_k$

5.2 标量例子

$x_{k+1} = a x_k + b u_k$,代价 $J = x_N^2 + \sum_{k=0}^{N-1} (x_k^2 + r u_k^2)$。

$$ p_k = a^2 p_{k+1} + 1 - \frac{a^2 b^2 p_{k+1}^2}{b^2 p_{k+1} + r}, \quad p_N = 1 $$

取 $a = 0.9, b = 1, r = 0.1, N = 10$:

$k$$p_k$$L_k$
101.0000—
91.64330.9427
82.04270.9095
72.27440.8928
62.40280.8842
52.46990.8799
42.50590.8776
32.52510.8765
22.53540.8759
12.54080.8756
02.54360.8755

$p_k$ 和 $L_k$ 趋于稳定——引出下一节主题:稳态 LQR。

📝 练习与自测

1️⃣ 配方法验证

对 $u^\top M u + 2 v^\top u$ 配方,证明最小值在 $u = -M^{-1} v$ 处取到。

2️⃣ 标量 Riccati

$x_{k+1} = 0.8 x_k + 0.5 u_k$,$J = x_N^2 + \sum (x_k^2 + 0.2 u_k^2)$,手动计算 $p_9$($p_{10}=1$)。

3️⃣ 增益收敛

什么条件下 $P_k$ 会收敛到稳态解 $P$?提示:回忆 KF 中协方差收敛的条件。

施老师大课堂 · 研讨会系列 KF L20(1/2) · LQR 问题与 DP 求解

板书来源:KF L20 · 研讨会系列 25 · 施凌老师