阅读约8分钟 | 关键词:MPC、横向控制、纵向控制、多目标优化、预见性控制
第18天我们讲了运动控制的基础——PID和MPC怎么把规划好的路径变成方向盘和油门的动作。今天咱们再深一层,聊聊一个更具体的问题:MPC是怎么同时管好方向和速度,让车在弯道里又稳又快不推头的?
🎯 一、运动控制的“双重任务”
运动控制其实是在同时做两件事:
横向控制——管方向盘。让车辆横向位置贴近规划路径,航向角对准路径方向。目标是“别偏出去”。
纵向控制——管油门和刹车。让车速贴近期望速度,与前车保持安全距离。目标是“别太快也别太慢”。
这两件事互相影响:转弯时如果速度太快,轮胎抓不住地,车就会推头(转向不足)或甩尾(转向过度);刹车时如果方向没回正,车身姿态会不稳定。所以优秀的运动控制必须同时考虑横向和纵向,不能各管各的。
🧠 二、PID为什么做不到“协同”?
第18天我们讲过,PID是反馈控制——有了误差才反应。进入弯道后,横向偏差逐渐增大,PID才逐渐加大方向盘转角,这时候车身已经偏出去了。纵向PID也一样——发现速度太快才收油,但往往已经晚了。
更关键的是,横向PID和纵向PID通常是独立工作的。横向控制不知道“现在正在入弯”,只会按照横向偏差输出方向盘转角;纵向控制不知道“弯道快到了”,只会根据速度误差决定加速还是减速。结果就是:入弯时纵向控制器可能还在加速(因为速度低于设定值),横向控制器却需要急打方向,整个车处于一种“较劲”的状态,既不安全也不舒适。
🔮 三、MPC的“预见性协同”
MPC能同时解决这两个问题,因为它会做三件PID做不到的事:
第一,预见未来。 MPC里有一个车辆动力学模型,输入方向盘转角和加速度,就能预测未来几秒车辆的运动轨迹。入弯前300米,MPC就已经知道“前方有个弯道”,可以提前收油、甚至轻微制动,让车以合适的速度入弯。
第二,同时优化。 MPC的“优化问题”里同时包含了横向偏差、速度偏差、方向盘变化率、加速度变化率等多个目标。它寻找的是“综合最优”——不是横向偏差最小,也不是速度最准,而是两者兼顾、整体最舒服的那个解。这就是为什么MPC过弯更像老司机——老司机也是同时考虑“走线”和“速度”的。
第三,硬约束保障安全。 MPC可以设置方向盘最大转角、最大加速度、最大横向加速度等硬约束,确保规划出来的轨迹和速度组合不会超过车辆的物理极限,从根源上避免推头或甩尾。
🚗 四、实际体验上的差异
大家可能都体验过LCC过弯的区别:有些车入弯时方向盘会“等一下”才动,然后猛打一把,车身晃一下再回正——这很可能是PID在干活。有些车入弯前就开始柔和地转向,整个弯道中方向盘几乎感觉不到修正动作,像有人在轨道上推着车走——这大概率是MPC在干活。
特斯拉FSD、华为ADS、理想AD Max等主流智驾系统在弯道中的流畅表现,背后都离不开MPC的贡献。
⚠️ 五、MPC的代价
MPC不是免费的午餐,它的核心代价是算力消耗。每一次控制周期(通常50毫秒),MPC都要在线求解一个优化问题,涉及矩阵求逆和迭代运算。算力不足时,MPC的计算可能延迟,导致控制指令滞后,反而比PID更危险。
这也是为什么早期算力有限的车型用PID,近年来芯片算力提升后才大规模普及MPC。另一个代价是模型依赖——MPC的效果完全取决于动力学模型的准确度。如果轮胎磨损、路面湿滑、载重变化,模型和实际情况不匹配,MPC的控制质量就会下降。
📌 给普通用户的一句话
MPC让智驾过弯更顺滑的秘密就一句话:它提前知道要转弯,所以提前减速、提前打方向,而不是到了弯心才慌慌张张地救车。
🎯 明天预告(第52天 / 动态篇)
结合今天的控制知识,解读一条行业新闻:智己L6“蟹行模式”刷屏——后轮转向+MPC如何让车横着走?
本系列为100天深度学习计划,每日1篇。欢迎随时提问。