MPC(Model Predictive Control,模型预测控制)是一种”滚动优化”的控制方法。它在每个控制周期用系统模型预测未来一段时间的行为,求解一段控制序列的最优解,然后只执行第一步,下一周期再基于新状态重复这一过程。也称”滚动时域控制”。
核心流程
- 建模:用动力学模型描述系统,例如 。
- 设定目标与约束:
- 代价函数:例如累计跟踪误差和控制代价 。
- 约束:输入/状态限幅、速度/加速度/力矩限制、障碍物避让等。
- 优化:在预测时域 N 内求解最优控制序列 。
- 执行与滚动:只执行 ,时域前移一拍,重复求解。
特点
- 优点:天然处理多变量耦合与硬约束,有前瞻性(look-ahead),轨迹平滑。
- 缺点:需要实时求解优化问题(算力与时延要求高),对模型准确性敏感,参数与权重需调优。
常见变体与求解
- 线性 MPC:线性模型 + 二次代价,转为 QP 求解,实时性好。
- 非线性 MPC(NMPC):用 SQP、IPOPT,或基于 iLQR/DDP 的逐次线性化;也有采样式 MPPI/CEM(随机优化)。
- 鲁棒/自适应:tube MPC、在线辨识/学习模型。
- 显式 MPC:预先离线求解策略映射,在线查表(适合低维场景)。
机器人中的例子
- 移动机器人跟踪路径:最小化与参考轨迹的偏差并约束速度/加速度,实时避障。
- 机械臂末端轨迹跟踪:同时考虑关节限位、速度/力矩限制与障碍物约束。
- 夹爪控制与精确释放:规划未来若干步位姿与开口,满足力/行程约束,在合适时刻松爪。
与 Diffusion Policy 的关系
- 两者都生成“未来一段动作序列并滚动执行”。
- MPC 显式用模型与代价函数做在线优化;Diffusion Policy 从数据中学“去噪”生成动作分布,弱化对显式模型的依赖。
- 可结合:用学习的模型做 MPC;或用 MPC 做安全屏障/约束投影,Diffusion 提供先验动作。