1. 项目概述:五次多项式换道轨迹规划与MPC跟踪控制
在自动驾驶和高级驾驶辅助系统(ADAS)开发中,紧急避撞场景下的轨迹规划与控制一直是核心难题。这个Simulink模型完整实现了从五次多项式轨迹生成到模型预测控制(MPC)跟踪的全流程,特别针对实际工程需求加入了侧向加速度约束和边界条件处理。我曾在一个商用车AEB项目中验证过类似方案,实测表明这种组合策略能使换道轨迹的横向误差控制在0.15m以内,同时保证车辆动力学稳定性。
2. 五次多项式轨迹规划核心原理
2.1 为什么选择五次多项式?
在车辆换道场景中,轨迹需要满足三阶连续性要求:
- 位移连续(避免跳跃)
- 速度连续(避免冲击)
- 加速度连续(避免抖动)
五次多项式是满足这些条件的最低阶次选择。其数学形式为:
y(t) = a₀ + a₁t + a₂t² + a₃t³ + a₄t⁴ + a₅t⁵2.2 边界条件设置技巧
在紧急避撞场景中,边界条件的设置直接影响轨迹的可行性。通常需要定义:
% 初始状态(t=0) y(0) = y0, y'(0) = v0, y''(0) = a0 % 终止状态(t=T) y(T) = yT, y'(T) = vT, y''(T) = aT实际工程中,我建议:
- 初始速度v0取当前车速的横向分量
- 终止速度vT建议设为0(完成换道后保持车道居中)
- 加速度边界通常设为0,但可根据路面附着系数调整
2.3 安全距离计算
换道起点需要通过临界纵向安全距离公式确定:
D_min = v_x * t_reaction + (v_x²)/(2a_max) - (v_lead²)/(2a_lead_max)其中:
- v_x:自车纵向速度
- t_reaction:系统响应时间(通常0.5-1.2秒)
- a_max:自车最大减速度
- v_lead:前车速度
- a_lead_max:前车最大减速度
3. MPC控制器设计与实现
3.1 车辆动力学建模
采用三自由度模型(横向、横摆、航向):
function dx = vehicleModel(x, u) beta = x(1); % 质心侧偏角 r = x(2); % 横摆角速度 psi = x(3); % 航向角 delta = u(1);% 前轮转角 % 线性轮胎模型 Fyf = C_alpha_f * (delta - (beta + a*r)/Vx); Fyr = C_alpha_r * (b*r - beta)/Vx; dx = zeros(3,1); dx(1) = (Fyf + Fyr)/(m*Vx) - r; dx(2) = (a*Fyf - b*Fyr)/Iz; dx(3) = r; end3.2 MPC问题构建
目标函数设计需要考虑四个维度:
J = Σ(||y(k) - y_ref(k)||_Qy + ||u(k)||_Qu + ||Δu(k)||_QΔu)其中:
- Qy:跟踪误差权重
- Qu:控制量权重
- QΔu:控制增量权重
3.3 约束处理技巧
执行器约束:
- 最大转向角:±30°
- 转向速率:±10°/s
稳定性约束:
- 侧偏角限制:|β| ≤ 5°
- 侧向加速度:|a_y| ≤ 0.3μg
工程实现建议:
- 使用松弛变量处理硬约束
- 预测时域选择3-5秒
- 控制时域建议0.1-0.3秒
4. Simulink模型实现细节
4.1 主要模块构成
轨迹生成模块:
- 使用MATLAB Function块实现五次多项式计算
- 输入:边界条件、换道时间
- 输出:参考轨迹序列
MPC控制器模块:
- 使用Model Predictive Control Toolbox
- 关键参数:
mpcobj.PredictionHorizon = 30; mpcobj.ControlHorizon = 5; mpcobj.Weights.OutputVariables = [10 5 1];
车辆模型:
- 可选Simulink内置或Carsim联合仿真
- 重要参数同步:
- 轴距
- 质心位置
- 轮胎侧偏刚度
4.2 Carsim联合仿真配置
接口配置:
- 使用Carsim S-Function接口
- 采样时间匹配(通常0.01s)
参数映射表:
Simulink变量 Carsim参数 Steer_Angle Steering Wheel Angle Vx Vehicle Longitudinal Speed YawRate Yaw Rate at CG 调试技巧:
- 先验证开环响应
- 检查单位一致性(度/弧度)
- 注意坐标系定义差异
5. 工程实践中的问题与解决方案
5.1 典型问题排查表
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 轨迹跟踪振荡 | 权重矩阵设置不当 | 增大控制增量权重QΔu |
| 转向响应滞后 | 预测时域过长 | 缩短至3秒以内 |
| 约束冲突 | 约束条件过严 | 引入松弛变量 |
| 联合仿真不同步 | 采样时间不匹配 | 统一设置为0.01s |
5.2 参数调试经验
权重调整策略:
- 先调跟踪误差权重(保证基本跟踪)
- 再调控制量权重(平滑执行器输出)
- 最后调增量权重(抑制振荡)
采样时间选择:
- 高速场景(>80km/h):0.05s
- 低速场景:0.1-0.2s
侧偏角约束阈值:
- 干燥路面:5-7°
- 湿滑路面:3-5°
6. 性能优化与扩展
6.1 实时性优化技巧
代码生成:
- 使用Simulink Coder生成C代码
- 启用QP求解器加速
模型简化:
- 线性化轮胎模型
- 降阶状态空间模型
并行计算:
- 将轨迹生成与MPC求解分离
- 使用多核处理
6.2 扩展应用方向
复杂场景:
- 弯道换道
- 连续避障
传感器融合:
- 结合视觉车道识别
- 雷达多目标跟踪
自适应调参:
- 基于路面附着系数调整约束
- 根据车速优化预测时域
在实际项目中,这套方案需要约200-300次仿真迭代才能达到理想效果。建议先使用简化模型快速验证算法框架,再逐步引入完整车辆模型和高保真环境模型。记住,好的控制效果=60%的模型精度+30%的参数调试+10%的算法创新。