第3章:PID与MPC控制算法面试高频问题

本章聚焦自动驾驶控制方向最常考的两种算法——PID与MPC。面试官通过基础原理、工程细节、场景选择三个维度考察候选人的理论深度和实战判断力。

车辆模型与工况 选择算法类型 参数整定/设计 仿真与实车验证 对比权衡(PID vs MPC) 虚线:迭代反馈;实线:正向流程

知识结构:PID vs MPC对比表

维度PIDMPC
模型依赖无模型(仅误差)需要预测模型
约束处理不直接支持天然支持(输入/状态约束)
计算开销低(kHz级)高(Hz~几十Hz)
适用场景低速、简单路径跟踪高速、复杂工况、有安全约束
调试难度经验调参需要模型标定 + 优化求解
面试频率★★★★★★★★★★

面试问题 1

请描述PID控制器的基本原理及其在自动驾驶中的应用。

考察点:基础理论理解、工程直觉、能否联系实际场景。

回答框架:3句话:① 比例消除当前误差,积分消除稳态误差,微分抑制振荡;② 举例:纵向速度环用PI,横向用PD;③ 说明局限性(无模型、无约束、调参依赖经验)。

示例回答:PID通过比例、积分、微分三个分量控制。在自动驾驶中,纵向上常用PI控制车速(积分克风阻),横向上常用PD控制前轮转角(D项抑制振荡)。但PID无法处理动力学约束和时延,高速场景需搭配前馈或模型补偿。

可能追问:① 积分饱和怎么处理?② 微分项对噪声敏感怎么解决?③ 前馈如何设计?

避坑提醒:不要只背公式!一定要结合车辆控制实例(如侧偏刚度变化导致PID失效)。

面试问题 2

MPC相比于PID有哪些优势和挑战?在什么场景下你会选择MPC?

考察点:算法对比能力、工程落地认知、场景判断力。

回答框架:① 优势:显式约束处理、多目标优化、滚动预测;② 挑战:计算实时性、模型精度、标定成本;③ 场景:高速避障、窄路通行、有人-无人混行等需安全约束的场景。

示例回答:MPC能同时优化跟踪精度、平顺性和控制能耗,并硬性约束转向/制动极限。我在L4泊车项目中用MPC处理曲率突变,避免PID引起的方向急变。代价是求解延迟,常见策略是降维(简化轮胎模型)或用嵌入式求解器(ACADO)。

可能追问:① MPC的预测时域如何选取?② 非线性MPC和线性MPC的区别?③ 遇到模型失配怎么鲁棒设计?

加分点:提到你实际调试过MPC参数对加速/减速中模型失配的敏感性。

面试问题 3

设计一个车辆横向控制器时,你会选择PID还是MPC?请说明你的设计流程。

考察点:系统设计能力、模型认知、工程取舍。

回答框架:① 分析需求:车速范围、曲率变化、精度要求;② 若低速且简单路径,选PID+前馈(省算力);③ 若高速/大曲率/有安全约束,选MPC;④ 给出仿真验证指标(横向误差±15cm,横摆率振荡< 3°/s)。

示例回答:假定车速≤30km/h且路径曲率≤0.2,我会用PD+前馈:PD负责反馈误差,前馈根据曲率计算稳态转角,最后用低通滤波抑制微分噪声。若车速>60km/h,改用MPC,预测时域设为15步,约束前轮角±30°、横摆角速度±5°/s。

可能追问:① 前馈量怎么算(基于阿克曼模型)?② 如何验证控制器鲁棒性(改变路面附着系数)?③ 你的控制器在“下着雨的匝道”上表现如何?

避坑提醒:不要直接说“MPC更好”而不提计算代价。面试官希望看到你在性能与资源之间的权衡。

项目案例模板:MPC路径跟踪控制器

要素内容
项目名称基于线性时变MPC的自主泊车路径跟踪控制器
业务背景解决地下停车库中曲率< 8m的连续弯道,要求全程横向误差< 15cm
规模指标10辆车×1000次泊车测试,通过率98.6%,平均求解时间6.3ms
技术栈LTV-MPC、CasADi、IPOPT、ROS2、Matlab/Simulink
核心难点轮胎非线性饱和+泊车终点精度要求±5cm;使用近似线性化+终端代价函数
面试高频追问① 为什么不用NMPC?② 求解失败怎么处理?③ 如何标定轮胎模型参数?
可迁移回答话术“我从简单线性MPC开始,逐步加入滑移角补偿;失败时启用fallback PID+降速策略确保安全。”
📌 面试官偏好:头部公司(如百度Apollo、小鹏)看重模型/算法与工程实现的闭环;Tier1(如博世、大陆)关注安全冗余与标定流程。回答时主动提及“实车验证环境”或“仿真与台架测试”会显著加分。