阅读约13分钟 | 关键词:PID控制、前馈+反馈、模型预测控制(MPC)、横向控制、纵向控制
前一篇我们讲了决策与规划——系统决定“要变道”并生成了一条平滑的期望路径。但有了路径不等于车会自动沿着它走。谁来执行方向盘转动、油门踩深踩浅、刹车轻重?这就是运动控制模块的任务。
运动控制是自动驾驶的“最后一公里”,它将规划模块输出的期望轨迹(位置、速度、加速度、曲率)转换为具体的方向盘转角、油门开度、制动压力等执行器指令,并实时补偿外界扰动(如横风、路面坡度、车辆载重变化)。今天,我们讲清楚两种最主流的控制方法:PID控制和模型预测控制(MPC),以及它们在横向(转向)和纵向(速度)控制中的应用。
🎮 一、控制问题的本质
定义状态量:比如横向偏移(距离车道中心线的距离)、航向角误差、车速等。
控制器的目标:通过调整控制量(方向盘转角、加速度/制动力),使状态量尽快、稳定地趋近于期望值,同时保证舒适性(变化平缓)和安全性(不超物理极限)。
横向控制 vs 纵向控制
· 横向控制:控制方向盘转角,使车辆跟随规划的路径(车道中心线)。输出是前轮转角或方向盘转角。
· 纵向控制:控制油门和刹车,使车辆达到期望速度或与前车保持安全距离。输出是加速度/减速度请求,再转换为踏板开度。
两者需要协同工作,否则会相互干扰(例如急刹车时转向会变得不稳定)。
⚙️ 二、PID控制:经典且广泛应用的“比例-积分-微分”
PID(Proportional-Integral-Derivative)是一种不依赖精确模型、仅根据误差进行反馈的控制算法。它已经存在了超过一个世纪,在工业控制中无处不在,也是早期及许多量产车最基本的控制方法。
工作原理
控制器计算期望值(如期望的横向偏移=0)与实际值(实际横向偏移)的误差 e(t),然后输出控制量 u(t) 为三项之和:
u(t) = Kp × e(t) + Ki × ∫ e(t) dt + Kd × de(t)/dt
· 比例项 (P):误差越大,控制量越大。单独使用P会导致稳态误差(比如永远差5cm达不到中心线)。
· 积分项 (I):累积过去的误差,消除稳态误差。但积分过大容易引起超调或震荡。
· 微分项 (D):预测误差的变化趋势,阻尼系统响应,减少超调。对噪声敏感。
在自动驾驶中的应用示例
横向PID:输入为车辆当前位置与规划路径的横向偏差和航向角偏差,输出为方向盘转角。工程师通常会设置两套独立的PID(一个用于偏差,一个用于航向角),并加权求和。
纵向PID:输入为速度误差(期望车速 - 实际车速),输出为期望加速度。再通过一个低层映射表转换为油门踏板百分比或制动压力。
PID的优缺点
优点:简单、参数物理意义明确、无需精确模型、计算量极小、可靠。
缺点:难以处理耦合(横向和纵向相互作用)、无法预见未来、对变化的路况(如不同速度下车辆转向响应不同)需要多个PID参数表(增益调度)。在极限工况下(湿滑路面、紧急避障)性能较差。
🧠 三、模型预测控制(MPC):更智能的未来预见者
MPC在近年来的高端智驾系统中逐渐成为主流,尤其是高速NOA和城市NOA,因为它能显式地处理约束(方向盘转角限幅、加速度舒适度限制)并预测未来。
核心思想
在每个控制周期,MPC根据当前车辆状态和动态模型,预测未来N个步长(如3秒)的系统行为,然后求解一个优化问题——寻找最优的控制序列(比如未来1秒内每0.05秒的方向盘转角),使得预测的轨迹与期望轨迹的偏差最小,同时满足约束。然后只执行控制序列的第一个控制量,下一周期重新计算(滚动时域)。
与PID的关键区别
· 预见性:MPC能看到未来的期望路径(比如前方即将出现的弯道),提前转动方向盘,而不是像PID那样等到进入弯道有了偏差才开始纠正。
· 约束处理:MPC可以直接限制方向盘转动速率、最大转角、最大加速度,确保舒适和安全。
· 多目标协调:可同时最小化横向偏差、速度偏差、转向能耗等,并设置权重。
MPC的挑战
· 计算量大:需要在线求解优化问题(二次规划QP),对算力要求高。但现代芯片已能支持10-50Hz的MPC运行。
· 依赖模型:需要车辆的动力学模型(如自行车模型、轮胎特性),模型不准确会影响控制效果。
· 参数调优复杂:预测时域、控制时域、权重矩阵需要大量标定工作。
🚗 四、横向控制对比:PID vs MPC 实测感受
· PID:在高速直道和缓弯中表现很稳。进入急弯时,方向盘会“等一下”才转动,车身出现明显的外偏再修正,感觉像是“画龙”或“生硬”。
· MPC:进入弯道前就能提前平滑地转动方向,过弯全程贴近车道中心,乘客几乎感觉不到修正动作。在车道线短暂缺失时,MPC能利用模型“推断”车辆在未来几米内的运动,保持更长时间的稳定。
结论:对于30万以下、智驾功能以LCC和高速NOA为主的车型,优化良好的PID仍够用;但对于城市NOA、复杂曲率匝道,MPC能提供明显更好的舒适性和安全性。
📊 五、纵向控制中的PID与MPC
纵向控制相对横向简单,因为纵向动力学模型比较准确(可通过标定获得)。常见做法:
· 上层:ACC根据前车距离和速度,计算出期望加速度(通常用PID或MPC)。
· 下层:将期望加速度通过逆模型(或查表)转换为油门踏板开度或制动压力,并执行。
MPC在纵向控制中的优势主要是能预见上坡、下坡、限速变化,提前调整油门,避免忽快忽慢。
🛠️ 六、工程实践中的常见问题与对策
1. 时延补偿
从传感器采样、感知、规划到控制指令发出,整个链路有约50-100ms的延迟。PID和MPC都需要考虑这个延迟。通常做法:将延迟建模为一阶惯性,或在优化中加入时间偏移。
2. 抗积分饱和(Anti-windup)
长时间有误差(例如坡道起步),积分项会累积到很大,导致超调。解决方案:限制积分项上限,或当执行器饱和时停止积分。
3. 不同速度下的参数自适应
车辆在低速和高速下对方向盘的响应不同。PID增益调度表按车速分段标定;MPC模型参数也会随车速变化。
4. 安全冗余
控制模块通常有独立的监控单元,如果检测到控制器输出异常(如方向盘转角突变),会立即触发安全降级(如退出辅助驾驶,提示接管)。
📌 今日思考题
1. 设想你驾驶一辆车通过一个长下坡急弯。如果用PID横向控制,可能会在弯道中出现“外偏-修正”的往复摆动;而MPC则可以更平滑。请从“预见性”和“约束处理”两个角度解释差异原因。
2. 为什么单纯靠PID很难做到在湿滑路面上稳定控制?MPC能通过哪些方式改进?
关键词回顾
PID控制 模型预测控制 横向控制 纵向控制 增益调度 时延补偿 约束处理
🎯 明天预告(第19天 / 动态篇)
结合今天的控制知识,解读一则行业事件:某品牌智驾在雨夜弯道中失控,分析是控制算法、感知还是决策的缺陷?
本系列为100天深度学习计划,每日1篇。欢迎随时提问。