4. 线性二次型最优控制

线性二次型最优控制(Linear Quadratic Regulator, LQR)是现代控制理论中最经典、工程应用最广泛的最优控制方法之一。它针对线性系统,以状态偏差与控制能量的加权二次型积分作为性能指标,通过求解Riccati方程获得最优状态反馈增益,使闭环系统在“响应快”与“能耗小”之间取得可量化的平衡。对于机器人系统而言,LQR常用于平衡控制、轨迹跟踪的局部稳定、姿态调节以及作为MPC的终端控制器或基准对照。

一、LQR问题描述

考虑连续时间线性时不变系统:

ẋ(t) = A x(t) + B u(t)
x(0) = x₀

其中 x ∈ Rⁿ 为状态向量,u ∈ Rᵐ 为控制输入,A、B 为系统矩阵。LQR的目标是寻找控制律 u(t),使如下二次型性能指标最小:

J = ½ xᵀ(T) S x(T) + ½ ∫₀ᵀ [ xᵀ(t) Q x(t) + uᵀ(t) R u(t) ] dt

式中 Q 为状态加权矩阵(半正定),R 为控制加权矩阵(正定),S 为终端状态加权矩阵。Q 越大,系统越倾向于快速压制状态偏差;R 越大,则越倾向于节省控制能量、降低执行器负担。LQR的本质是一个带约束的优化问题:在系统动力学约束下,最小化“状态误差代价 + 控制代价”的累积。

Q 与 R 的选取没有唯一标准,通常先取对角矩阵,通过仿真观察超调、调节时间、控制饱和等指标反复调整。Q 中某状态权重越大,该状态收敛越快,但往往需要更大的控制量。

二、Riccati方程与最优反馈增益

LQR的核心结论是:最优控制律具有状态反馈形式:

u*(t) = -K(t) x(t)
K(t) = R⁻¹ Bᵀ P(t)

其中 P(t) 为对称矩阵,满足连续时间Riccati微分方程:

-Ṗ(t) = AᵀP(t) + P(t)A - P(t) B R⁻¹ Bᵀ P(t) + Q
P(T) = S

该方程从终端时刻 T 反向积分求解,因此有限时域LQR的最优增益 K(t) 是时变的。当终端时间趋于无穷、系统可控且可观测时,P(t) 趋于稳态常值矩阵 P,此时Riccati微分方程退化为代数Riccati方程(CARE):

AᵀP + PA - P B R⁻¹ Bᵀ P + Q = 0

求解CARE得到唯一的正定解 P,即可得到常数最优反馈增益:

K = R⁻¹ Bᵀ P
u(t) = -K x(t)

下图展示了LQR从问题描述到最优反馈增益求解的完整信号与计算关系:

LQR 最优控制求解流程与信号关系 线性系统模型 ẋ = Ax + Bu 性能指标 J = ∫(xᵀQx + uᵀRu)dt + ½xᵀ(T)Sx(T) 权重矩阵 Q ≥ 0, R > 0, S ≥ 0 Riccati 方程 AᵀP + PA − PBR⁻¹BᵀP + Q = 0 (代数形式,无限时域) −Ṗ = AᵀP+PA−PBR⁻¹BᵀP+Q 求解得到 P P = Pᵀ > 0 (正定对称解) 最优反馈增益 K = R⁻¹BᵀP 最优控制律 u*(t) = −K x(t) 状态反馈闭环 有限时域:P(t) 时变 无限时域:P 常值 闭环系统 ẋ = (A − BK)x

三、有限时域与无限时域LQR对比

有限时域LQR与无限时域LQR在数学形式和工程使用上有明显差异。有限时域问题需要从终端时刻反向积分Riccati微分方程,得到的增益 K(t) 随时间变化,适合有明确任务终点、终端代价重要的场景,例如机械臂定点抓取的最后阶段。无限时域LQR则求解代数Riccati方程,得到常数增益 K,实现简单、便于实时计算,是机器人稳定控制中最常用的形式。

对比项 有限时域LQR 无限时域LQR
性能指标 含终端代价 ½xᵀ(T)Sx(T) 无终端代价,积分上限为∞
Riccati方程 微分方程,反向积分 代数方程,直接求解
反馈增益 K(t) 时变 K 常数
计算负担 较高,需在线或离线积分 低,离线求一次即可
典型场景 有限时间任务、终端精度要求高 长期稳定、姿态保持、轨迹跟踪

四、案例:倒立摆LQR稳定控制

以直线倒立摆为例,状态取 x = [位置, 速度, 摆角, 角速度]ᵀ,控制量为小车加速度。线性化后得到 A、B 矩阵,选取 Q = diag(10, 1, 100, 10),R = 1,强调摆角稳定。通过求解CARE得到增益 K,闭环极点被配置到左半平面,摆角可在约1秒内收敛到零附近。若把 R 增大到 10,控制量明显减小,但摆角恢复变慢,说明权重矩阵直接决定“稳定速度”与“控制代价”的折中。

% MATLAB 示例:无限时域 LQR
A = [0 1 0 0; 0 0 -1 0; 0 0 0 1; 0 0 9 0];
B = [0; 1; 0; -1];
Q = diag([10, 1, 100, 10]);
R = 1;
[K, P, e] = lqr(A, B, Q, R);
% K 为最优反馈增益,e 为闭环极点
常见误区:一是认为Q、R可以随意设置,实际上Q必须半正定、R必须正定,否则问题可能无解或控制律不唯一;二是忽略可控性检查,若(A,B)不可控,Riccati方程可能没有正定解;三是把LQR当作能处理约束的方法,LQR本身不显式处理输入饱和与状态约束,遇到执行器限幅时需结合抗饱和或改用MPC。

五、复盘与要点

  • LQR以二次型代价函数为核心,通过Q、R权衡状态收敛速度与控制能量。
  • 最优控制律是状态反馈 u = −Kx,K 由Riccati方程的解 P 决定。
  • 有限时域对应Riccati微分方程,增益时变;无限时域对应代数Riccati方程,增益常值。
  • 工程中需检查可控性、正定性,并通过仿真调整权重矩阵,避免控制饱和与响应过慢。
  • LQR是MPC的重要基础,理解其推导有助于掌握预测控制中的终端代价与稳定性设计。