先进控制

模型预测控制

模型预测控制,也就是 MPC,是会“向前想”的控制器。在每一个瞬间,它都用一个关于机器人如何运动的内部模型,去设想接下来的几秒钟,在脑子里试验许多种可能的行动方案,挑出结果最好的那一套,然后只执行这套方案的第一步——其余的统统丢掉。一个心跳之后,它再看一眼新的情况,把整件事从头再做一遍。这就像一位棋手,会盘算往后好几步,却每次只落一子,落子之后再重新盘算。

它向前窥探的那扇窗口叫做时域,而由于这扇窗口会随着机器人不断向前滑动,MPC 又被称为滚动时域控制。有两点让这种风格很强大。第一,它会规划,所以能预先料到前方的一个转弯或一堵墙,而不是等到为时已晚才作出反应。第二,也是最重要的,它能把硬性约束直接放进规划里:“绝不发出超过这台电机所能给出的力矩”“绝不让手臂越进那堵墙”“把速度保持在限值之下”。优化器会干脆拒绝任何违反规则的设想方案。

这一切前瞻的代价是计算量。MPC 必须实时地、在机器人上、每秒许多次地求解一个全新的优化问题——本质上就是一个在该时域上的小型最优控制问题。多年以来,这只有对化工厂这类慢系统才办得到,但更快的计算机和更聪明的求解器,已经把 MPC 带到了四足机器人、无人机和自动驾驶汽车上,如今它能一边协调许多条腿或许多个轮子,一边遵守每一项物理极限。

一辆使用 MPC 的自动驾驶汽车,会预测自己在接下来几秒内将处的位置,规划出一套既保持在车道内、又不超速的转向和刹车序列,只执行其中的第一条指令,随后在路况更新时重新规划。

预测、规划、走一步、再重复——始终在规则之内。

算出一整套方案、却只用它的第一步,正是 MPC 的标志性习惯——这也是为什么即使它的模型略有偏差,这个控制器仍能不断自我纠正。

又称
MPCreceding-horizon control滚动时域控制滾動時域控制