LQR MPC
时间: 2025-06-17 10:23:30 浏览: 13
### LQR 和 MPC 的基本概念
线性二次调节器(Linear Quadratic Regulator, LQR)是一种基于最优控制理论的经典方法,用于设计控制器来最小化系统的性能指标函数[^1]。该算法通过求解代数黎卡提方程(Algebraic Riccati Equation),得到状态反馈增益矩阵 \( K \),从而实现闭环控制系统的设计。
模型预测控制(Model Predictive Control, MPC)则是一种现代控制策略,其核心思想是在每一个采样时刻优化未来一段时间内的输入序列,同时考虑约束条件并滚动更新控制动作[^2]。MPC 使用显式的动态模型对未来的行为进行预测,并在线解决有限时间范围内的优化问题。
---
### 数学描述与原理对比
#### 线性二次调节器(LQR)
对于一个离散时间系统:
\[
x_{k+1} = A x_k + B u_k,
\]
其中 \( x_k \in \mathbb{R}^n \) 是状态向量,\( u_k \in \mathbb{R}^m \) 是控制输入向量,目标是最小化如下代价函数:
\[
J(u) = \sum_{k=0}^\infty (x_k^T Q x_k + u_k^T R u_k),
\]
这里 \( Q \geq 0 \), \( R > 0 \) 分别表示状态和控制权重矩阵。通过解析计算可以得出最佳控制律为:
\[
u_k = -K x_k,
\]
其中 \( K \) 可由黎卡提方程推导获得[^3]。
```python
import numpy as np
from scipy.linalg import solve_discrete_are
def lqr(A, B, Q, R):
P = solve_discrete_are(A, B, Q, R)
K = np.dot(np.linalg.inv(R + np.dot(B.T, np.dot(P, B))), np.dot(B.T, np.dot(P, A)))
return K
```
#### 模型预测控制(MPC)
假设给定相同的离散时间系统形式,MPC 需要定义一个有限时域上的成本函数,通常写成:
\[
J(\textbf{U}) = \min_\textbf{U} \left( x_N^T P x_N + \sum_{k=0}^{N-1}(x_k^T Q x_k + u_k^T R u_k)\right),
\]
这里的 \( N \) 表示预测视界长度,而终端加权矩阵 \( P \) 常常取作稳定性的保障项。每一步都需要重新求解上述优化问题以获取当前的最佳控制信号[^4]。
---
### 应用领域比较
两种技术广泛应用于工业自动化、机器人技术和航空航天等领域。具体而言,
- **LQR** 更适合于那些能够被精确建模并且不需要实时调整参数的小规模线性系统;
- 而由于具备处理复杂非线性和多变量能力以及支持硬/软约束的特点,**MPC** 成为了许多实际工程场景下的首选方案,比如化工过程控制中的温度压力管理或者自动驾驶汽车路径规划等任务中都有出色表现[^5]。
---
### 总结
尽管两者都追求使某些量化标准达到最优点的目标,但在实现方式上存在显著差异——前者依赖固定公式快速给出全局最优解;后者则是借助数值迭代逼近局部极值点,在灵活性方面占据优势但也付出了更高的计算资源消耗作为代价。
---
阅读全文
相关推荐


















