1. 为什么选择 MPC
MPC一般用于多输入多输出,且输入输出相互也会有影响。
根据你的加速踏板和方向盘控制,你会判断出你行驶的预测轨迹。
然后你会选择最理想的控制达到你的预期效果。
使用MPC控制可以解决一个输入影响另一个输出(耦合)等的问题,因为PID控制是独立控制的。
然后是MPC可以解决一些限制。
限制很重要,因为违反了它会导致不可期的问题。
它可以满足速度限制,也使得加速度在满足范围内。
以一个过弯为例,如果没有看到前方的弯道一开始,到时候就会急刹车过弯。
反之如果一开始车上有摄像头观测到了,过弯便会很顺利。
MPC可以很容易结合未来的信息量来控制。
2. MPC简介
MPC的控制策略是通过输入计算未来。
首先MPC有一个系统模型来计算未来量,再有一个优化,使得得到的是我们期待的量。
由于MPC可以多输入多输出,但这里只考虑方向盘转角,来保证汽车始终保持在道路中央。
MPC会有所预测,如k时,k+1...等等每一步的动作和结果。
但MPC并不是随机的采取很多种预测,而是系统的比较。
P是预测时域。
如优化时会减小误差,
初次之外,还会逐渐减小执行量的大小
因为以开车为例,如果突然打方向盘,驾驶体验便会很差。
w是系数。
除此之外MPC还要考虑限制constrains。如方向盘最大转到多少,汽车的位置(不能在道路外)。
在满足限制时,计算J选择其最小的。
但这样并不是完美的。
因为第一轮计算好了,执行开始到k+1时刻,发现并没有达到计算时的结果,可能由于是误差干扰(路很滑之类)
然后以k+1时刻为起点重复前面的步骤。
也因此MPC也叫做receding horizon control。滚动 时域 控制。
最后,其中MPC输出的是manipulated variables, 然后系统输出的反馈回来。
如果能够测到的话便直接返回, 如果不能便用状态观测器(如卡尔曼滤波)返回。