概述
LQR(Linear Quadratic Regulator,线性二次调节器)是一种经典的最优控制方法,广泛应用于机器人、航空航天、过程控制等领域。它的核心思想是:对于线性系统,设计一个状态反馈控制器,使得某个二次型性能指标最小化。
一、问题描述
1.1 线性系统模型
考虑线性时不变系统:
$$ \dot{x}(t) = Ax(t) + Bu(t) $$其中:
- $x \in \mathbb{R}^n$:状态向量
- $u \in \mathbb{R}^m$:控制输入
- $A \in \mathbb{R}^{n \times n}$:系统矩阵
- $B \in \mathbb{R}^{n \times m}$:输入矩阵
1.2 性能指标
LQR的目标是最小化以下二次型性能指标:
$$ J = \frac{1}{2}x^T(T)S_fx(T) + \frac{1}{2}\int_0^T \left[ x^T(t)Qx(t) + u^T(t)Ru(t) \right] dt $$其中:
- $Q \in \mathbb{R}^{n \times n}$:状态权重矩阵(半正定)
- $R \in \mathbb{R}^{m \times m}$:控制权重矩阵(正定)
- $S_f \in \mathbb{R}^{n \times n}$:终端权重矩阵(半正定)
权重矩阵的物理意义:
- $Q$ 越大:对状态偏差的惩罚越大,系统响应更快
- $R$ 越大:对控制输入的惩罚越大,控制更平缓
二、无限时间LQR
2.1 问题形式
对于无限时间($T \to \infty$)问题,性能指标简化为:
$$ J = \frac{1}{2}\int_0^{\infty} \left[ x^T(t)Qx(t) + u^T(t)Ru(t) \right] dt $$2.2 Riccati方程
最优控制律通过求解代数Riccati方程(ARE)得到:
$$ A^TP + PA - PBR^{-1}B^TP + Q = 0 $$其中 $P$ 是对称正定矩阵。
2.3 最优控制律
$$ u^*(t) = -Kx(t) = -R^{-1}B^TPx(t) $$其中反馈增益矩阵:
$$ K = R^{-1}B^TP $$2.4 求解步骤
|
|
三、有限时间LQR
3.1 问题形式
对于有限时间问题,需要求解微分Riccati方程:
3.2 微分Riccati方程
$$ -\dot{P}(t) = A^TP(t) + P(t)A - P(t)BR^{-1}B^TP(t) + Q $$边界条件:$P(T) = S_f$
3.3 时变反馈增益
$$ K(t) = R^{-1}B^TP(t) $$四、离散时间LQR
4.1 离散系统模型
$$ x_{k+1} = Ax_k + Bu_k $$4.2 性能指标
$$ J = \frac{1}{2}\sum_{k=0}^{\infty} \left[ x_k^TQx_k + u_k^TRu_k \right] $$4.3 离散Riccati方程
$$ P = A^TPA - A^TPB(R + B^TPB)^{-1}B^TPA + Q $$4.4 最优控制律
$$ u_k^* = -Kx_k = -(R + B^TPB)^{-1}B^TPA \cdot x_k $$五、LQR性质
5.1 稳定性
在以下条件下,闭环系统渐近稳定:
- $(A, B)$ 可控
- $(A, Q^{1/2})$ 可观测
闭环系统矩阵:$A_{cl} = A - BK$
5.2 鲁棒性
LQR具有优秀的鲁棒性质:
- 至少 $\pm 60°$ 的相位裕度
- 至少 $6$ dB(约 $50%$)的增益裕度
5.3 最优性
对于给定的 $Q$ 和 $R$,LQR提供的是全局最优解。
六、权重矩阵选择
6.1 布莱森规则(Bryson’s Rule)
$$ Q = \text{diag}\left(\frac{1}{x_{1,max}^2}, \frac{1}{x_{2,max}^2}, \ldots\right) $$$$ R = \text{diag}\left(\frac{1}{u_{1,max}^2}, \frac{1}{u_{2,max}^2}, \ldots\right) $$其中 $x_{i,max}$ 和 $u_{i,max}$ 是状态和控制的最大允许值。
6.2 迭代调整
- 初始选择:$Q = I$,$R = I$
- 观察响应,调整权重
- 状态响应慢 → 增大 $Q$
- 控制输入过大 → 增大 $R$
6.3 比例因子法
$$ Q = q \cdot I_n, \quad R = \rho \cdot I_m $$调节比例因子 $q/\rho$ 来平衡性能与控制代价。
七、Python实现示例
|
|
八、应用案例
8.1 倒立摆控制
|
|
8.2 无人机姿态控制
|
|
8.3 航迹跟踪
|
|
九、LQR的局限性
9.1 需要精确模型
LQR依赖于精确的系统模型,模型误差会影响控制效果。
9.2 无法处理约束
标准LQR无法显式处理:
- 控制输入饱和
- 状态约束
- 输入变化率限制
9.3 全状态反馈
需要所有状态可测量,否则需要配合状态观测器(如卡尔曼滤波器)。
十、扩展方法
10.1 LQG(线性二次高斯)
LQR + 卡尔曼滤波器:
$$ \hat{x}_{k+1} = A\hat{x}_k + Bu_k + L(y_k - C\hat{x}_k) $$10.2 LQR with Integral Action
添加积分项消除稳态误差:
$$ \dot{z} = r - y = r - Cx $$扩展状态:$\begin{bmatrix} x \ z \end{bmatrix}$
10.3 LTV-LQR(线性时变)
对于时变系统 $\dot{x} = A(t)x + B(t)u$,求解时变Riccati方程。
总结
LQR是最优控制的基础方法,具有以下特点:
| 优点 | 缺点 |
|---|---|
| 解析解,计算简单 | 需要精确模型 |
| 全局最优 | 无法处理约束 |
| 鲁棒性好 | 需要全状态可测 |
| 广泛应用 | 线性系统限制 |
适用场景:
- 线性系统或可线性化的系统
- 无硬约束的场合
- 有精确模型的情况
参考资料
- 《Linear Systems》- Kailath
- 《最优控制理论与应用》- 吴受章
- MATLAB lqr函数文档
- Python Control Systems Library
🎯 LQR是控制理论的基石,理解它对于掌握更高级的控制方法至关重要!