09 · 深入|约束 MPC:在未来几秒里提前做取舍
PID 看当前误差,MPC 还看未来可行性
当机器人即将转弯、推进器有幅值与变化率限制、多个轴争用同一组执行器时,当前误差小不代表下一秒不会饱和。MPC 用模型预测未来一段时间的状态,求出一串输入,只执行第一个,再用新测量重新求解。这叫滚动时域。
约束可以包括速度、推力、推力变化率和安全走廊。线性模型、二次目标和线性约束构成 QP。Q/R/S 表达跟踪、输入和变化平滑的权衡;力矩和力同样要先归一化。若控制变量直接使用八台推力,模型中含 A f,就能把分配限制一起纳入预测;代价是问题更大。
一个“必须提前刹车”的例子
沿某轴以 0.4 m/s 接近目标,最大减速度只有 0.2 m/s²,理想刹停需 2 s 和 0.4 m。若预测窗只覆盖 0.5 s,控制器看不到完整刹停过程,可能过晚制动;覆盖关键动力学时间尺度的预测窗更有意义。增加 N 同时增加计算量,因此可适当降低预测采样率,控制输出仍保持更快更新。
实现顺序
先用已辨识的单轴离散模型,状态 [位置,速度],只约束推力;再加入速度与 Δu 限制。之后引入扰动估计,避免模型偏差造成稳态偏差。最后扩展到多轴和分配耦合。每次求解都检查状态、约束与上一输入的一致性,并为求解失败或超时保留一个简单可预测的控制回退。
为什么“用了优化”不等于自动稳定
有限预测窗与合适目标通常能产生好行为,但稳定性和递归可行性仍取决于设计。终端代价与终端集合、约束收紧和软约束是重要工具。软约束允许付出代价违反某些性能目标,避免无解;物理输入限制不能通过松弛变成真实可执行。管状 MPC 用局部反馈把模型误差限制在名义轨迹附近,并收紧约束留出误差余量。
什么时候值得换
PID 适合模型简单、低速、约束较少且计算资源有限的局部环;MPC 适合约束经常活跃、轴间耦合明显、参考轨迹可预测的外层。很实用的组合是外层 MPC 生成受约束速度/加速度,内层保留快速稳定的 PID 或鲁棒控制,而不是把所有环一次替换。
实验:同一模型上比较 PID+抗饱和与 MPC,使用相同推力和速度限制,给出需要提前减速的轨迹。随后加入质量误差,观察预测优势怎样受到模型质量影响。阅读 Rawlings、Mayne、Diehl 的免费教材入口,优先看线性约束 MPC 与滚动优化:https://sites.chemengr.ucsb.edu/~jbraw/mpc/ 。