Advanced Control

model predictive control (MPC)

Model predictive control, or MPC, is the controller that thinks ahead. At every instant it uses an internal model of how the robot moves to imagine the next few seconds, tries out many possible action plans in its head, picks the plan that comes out best, then takes only the very first step of that plan — and throws the rest away. A heartbeat later it looks at the new situation and does the whole thing over again. It is like a chess player who plans several moves deep but commits to just one move at a time, replanning after each one.

The window it peers into is called the horizon, and because that window keeps sliding forward with the robot, MPC is also known as receding-horizon control. Two things make this style powerful. First, it plans, so it can anticipate a turn coming up or a wall ahead instead of only reacting once it is too late. Second, and most importantly, it can obey hard constraints right inside the plan: 'never command more torque than this motor can give', 'never let the arm cross into that wall', 'keep the speed under the limit'. The optimizer simply refuses any imagined plan that breaks a rule.

The price for all this foresight is computation. MPC must solve a fresh optimization problem — basically a small optimal-control problem over the horizon — many times per second, on the robot, in real time. For years that was only possible for slow systems like chemical plants, but faster computers and smarter solvers have brought MPC onto quadrupeds, drones, and self-driving cars, where it now coordinates many limbs or wheels at once while respecting every physical limit.

A self-driving car using MPC predicts where it will be over the next few seconds, plans a steering and braking sequence that stays in its lane and below the speed limit, applies just the first command, then replans as the road updates.

Predict, plan, take one step, repeat — always inside the rules.

Computing a whole plan but using only its first step is the defining habit of MPC — it is why the controller can keep correcting itself even when its model is slightly wrong.

Also called
MPCreceding-horizon control滚动时域控制滾動時域控制