目录
- [一、什么是 MPC](#一、什么是 MPC)
- [二、MPC 的基本流程](#二、MPC 的基本流程)
-
-
- [1 建立系统模型](#1 建立系统模型)
- [2 预测未来状态](#2 预测未来状态)
- [3 构建优化目标](#3 构建优化目标)
- [4 加入约束](#4 加入约束)
- [5 求解优化问题](#5 求解优化问题)
- [6 只执行第一步](#6 只执行第一步)
-
- [三、MPC 的直观理解](#三、MPC 的直观理解)
- [四、MPC 在机器人中的应用](#四、MPC 在机器人中的应用)
-
-
- [1 机器人轨迹跟踪](#1 机器人轨迹跟踪)
- [2 四足机器人控制](#2 四足机器人控制)
- [3 自动驾驶](#3 自动驾驶)
- [4 无人机控制](#4 无人机控制)
-
- [五、MPC 的优点](#五、MPC 的优点)
-
-
- [1 可以处理约束](#1 可以处理约束)
- [2 可以考虑未来](#2 可以考虑未来)
- [3 可以处理多变量系统](#3 可以处理多变量系统)
-
- [六、MPC 的缺点](#六、MPC 的缺点)
-
-
- [1 计算量大](#1 计算量大)
- [2 需要准确模型](#2 需要准确模型)
-
- [七、MPC 在现代机器人中的发展](#七、MPC 在现代机器人中的发展)
-
-
- [1 Learning + MPC](#1 Learning + MPC)
- [2 Sampling MPC](#2 Sampling MPC)
- [3 强化学习结合 MPC](#3 强化学习结合 MPC)
-
- [八、一个非常简化的 MPC 伪代码](#八、一个非常简化的 MPC 伪代码)
- 九、一句话总结
机器人中的 MPC(Model Predictive Control,模型预测控制) 是一种非常重要的高级控制方法,广泛用于:
- 机器人运动控制 🤖
- 自动驾驶 🚗
- 无人机控制 ✈️
- 工业过程控制 🏭
核心思想是:
利用系统模型预测未来行为,并在每一步优化控制输入。
可以把它理解为:
"看未来、做优化、只执行第一步" 的控制方法。
一、什么是 MPC
Model Predictive Control 是一种基于优化的控制方法。
传统控制(如 PID):
text
当前误差 → 计算控制量 → 执行
MPC:
text
预测未来状态 → 求解最优控制序列 → 执行第一步
核心思想:
text
未来规划 + 实时优化
二、MPC 的基本流程
每个控制周期都会执行以下步骤:
1 建立系统模型
机器人动力学模型:
x t + 1 = f ( x t , u t ) x_{t+1} = f(x_t, u_t) xt+1=f(xt,ut)
其中:
- x t x_t xt:机器人状态(位置、速度等)
- u t u_t ut:控制输入(力、速度、关节力矩)
2 预测未来状态
假设未来 N 步:
text
t+1
t+2
t+3
...
t+N
利用模型预测:
text
x(t+1)
x(t+2)
...
x(t+N)
3 构建优化目标
例如机器人跟踪轨迹:
J = ∑ k = 0 N ( x k − x r e f ) 2 + λ u k 2 J = \sum_{k=0}^{N} (x_k - x_{ref})^2 + \lambda u_k^2 J=k=0∑N(xk−xref)2+λuk2
含义:
- 状态接近目标
- 控制输入不要太大
4 加入约束
机器人通常有很多限制:
例如:
text
关节角度限制
速度限制
加速度限制
碰撞约束
数学形式:
u m i n ≤ u k ≤ u m a x u_{min} \le u_k \le u_{max} umin≤uk≤umax
5 求解优化问题
求解:
text
最优控制序列
[u0, u1, u2 ... uN]
6 只执行第一步
只执行:
text
u0
然后系统进入下一时刻:
text
t → t+1
再次优化。
这个过程叫:
text
Receding Horizon Control
滚动优化
三、MPC 的直观理解
想象你开车:
普通控制:
text
看当前偏差 → 调整方向
MPC:
text
预测未来5秒路径
计算最优方向盘操作
执行第一步
重新规划
所以:
text
MPC = 实时轨迹规划 + 控制
四、MPC 在机器人中的应用
1 机器人轨迹跟踪
机械臂:
text
跟踪 end-effector 轨迹
2 四足机器人控制
例如:
- 步态规划
- 平衡控制
很多四足机器人(如 MIT Cheetah)都使用 MPC。
3 自动驾驶
MPC 控制:
text
方向盘
油门
刹车
实现:
text
轨迹跟踪
避障
4 无人机控制
控制:
text
姿态
位置
速度
五、MPC 的优点
1 可以处理约束
例如:
text
速度限制
关节限制
碰撞限制
PID 很难做到。
2 可以考虑未来
不是只看当前误差。
3 可以处理多变量系统
机器人通常:
text
多输入
多状态
MPC 非常适合。
六、MPC 的缺点
1 计算量大
每个控制周期都要:
text
解优化问题
如果模型复杂:
text
可能实时性不足
2 需要准确模型
如果模型错误:
text
预测不准
七、MPC 在现代机器人中的发展
近年来出现很多新方向:
1 Learning + MPC
用神经网络学习模型:
text
Neural MPC
2 Sampling MPC
例如:
text
MPPI
(Model Predictive Path Integral)
常用于无人机。
3 强化学习结合 MPC
text
RL 负责高层
MPC 负责低层控制
八、一个非常简化的 MPC 伪代码
python
while robot_running:
# 当前状态
x = get_robot_state()
# 预测未来
predicted_states = model_rollout(x)
# 求解优化问题
u_sequence = optimize(predicted_states)
# 执行第一步控制
apply_control(u_sequence[0])
九、一句话总结
机器人 MPC 控制:
text
利用系统模型
预测未来状态
实时求解优化问题
滚动执行最优控制
本质:
text
控制 + 规划 + 优化