1. 项目概述:AEB联合仿真系统设计
在自动驾驶辅助系统开发中,自动紧急制动(AEB)系统是最基础也是最重要的安全功能之一。这次我们采用Carsim2019.0与Matlab/Simulink2021a联合仿真的方式,构建了一个模块化的AEB算法验证平台。这个平台特别适合直线驾驶工况下的紧急制动场景验证,能够完整模拟从目标检测到制动执行的全过程。
关键优势:模块化设计使得算法各部分可以独立开发和测试,大大提高了开发效率和调试便利性。每个功能模块都有清晰的接口定义,数据流可视化程度高,便于问题定位。
2. 系统架构设计
2.1 整体框架
系统采用典型的"环境感知-决策规划-控制执行"三层架构:
- 感知层:由Carsim提供车辆动力学仿真环境,输出自车速度、前车距离、相对速度等关键参数
- 决策层:Simulink实现的核心算法模块,包括TTC计算、制动决策等
- 执行层:将决策结果反馈给Carsim,控制车辆制动系统
2.2 模块划分
系统主要包含以下核心模块:
- Carsim接口模块:负责与Carsim的实时数据交互
- TTC计算模块:基于相对速度和距离计算碰撞时间
- 状态决策模块:采用有限状态机实现驾驶模式切换
- PID控制模块:生成平滑的制动压力控制信号
3. Carsim环境配置
3.1 车辆参数设置
在Carsim中正确配置车辆参数是仿真的基础:
- 选择Sedan车型模板作为基础
- 重点调整纵向动力学参数:
- 质量:1550kg
- 轴距:2.7m
- 制动系统参数:最大制动力12MPa
- 轮胎模型选用Magic Formula 2002
- 转向系统锁定(直线工况)
3.2 信号输出配置
必须确保以下关键信号输出到Simulink:
- 自车速度(m/s)
- 前车相对距离(m)
- 相对速度(m/s)
- 纵向加速度(m/s²)
- 轮胎滑移率(%)
重要提示:信号采样率建议设置为100Hz(0.01s步长),与Simulink保持同步。
4. Simulink算法实现
4.1 TTC计算模块
碰撞时间(TTC)是AEB系统的核心决策依据,实现代码如下:
matlab复制function ttc = calculate_TTC(rel_speed, distance)
% 输入:rel_speed - 相对速度(前车速度-自车速度,m/s)
% distance - 两车距离(m)
% 输出:ttc - 碰撞时间(s)
if rel_speed > 0
ttc = distance / rel_speed;
else
ttc = inf; % 两车距离在增大,不会碰撞
end
ttc = max(ttc, 0); % 防止倒车时出现负值
end
参数选择依据:
- 相对速度采用前车减自车,保证正值为危险工况
- max函数处理边界条件,增强算法鲁棒性
4.2 状态决策模块
采用Stateflow实现的三状态机:
- 巡航模式(TTC > 3s):不采取任何制动措施
- 预警模式(2s < TTC ≤ 3s):触发声光报警
- 制动模式(TTC ≤ 2s):启动自动紧急制动
状态转移条件基于TTC值,并加入了200ms的延迟滤波,防止状态频繁切换。
4.3 PID控制模块
离散PID控制器实现制动压力控制:
matlab复制function brake_pressure = pid_controller(error, dt)
persistent integral prev_error;
if isempty(integral)
integral = 0;
prev_error = 0;
end
% PID参数
Kp = 1.2; % 比例系数
Ki = 0.05; % 积分系数
Kd = 0.3; % 微分系数
% 计算各项
integral = integral + error * dt;
derivative = (error - prev_error) / dt;
% 输出计算
output = Kp*error + Ki*integral + Kd*derivative;
brake_pressure = min(max(output, 0), 12); % 限制在0-12MPa
prev_error = error;
end
参数整定经验:
- 比例系数Kp决定响应速度,但过大会导致制动冲击
- 积分系数Ki需要谨慎调整,过大容易引起振荡
- 微分系数Kd有助于抑制超调,改善制动舒适性
5. 联合仿真配置
5.1 时钟同步设置
必须确保两个软件的求解器设置一致:
- 求解器类型:定步长(Fixed-step)
- 步长:0.01s
- 求解器:ode4(Runge-Kutta)
常见问题:如果步长设置不一致,会导致仿真结果失真,甚至出现车辆"瞬移"现象。
5.2 数据交互配置
在Simulink中正确配置Carsim S-Function:
- 指定Carsim求解文件(.sln)
- 设置输入输出变量映射
- 配置实时可视化选项
6. 仿真测试与验证
6.1 测试场景设计
典型测试场景包括:
- 前车匀速,自车高速接近
- 前车紧急制动
- 前车突然切入
- 自车高速接近静止障碍物
6.2 性能指标评估
关键评估指标:
- 制动触发时机(TTC阈值)
- 最大减速度(通常不超过0.8g)
- 制动距离
- 轮胎滑移率(应控制在15%以内)
- 乘员舒适性(jerk值小于15m/s³)
7. 调试经验与技巧
7.1 常见问题排查
-
信号不同步:
- 检查两个软件的步长设置
- 验证信号传输延迟
-
制动振荡:
- 调整PID参数,特别是Ki值
- 增加状态切换的迟滞区间
-
轮胎抱死:
- 检查最大制动压力限制
- 验证轮胎模型参数
7.2 性能优化建议
-
实时监控:
- 使用Simulink Data Inspector记录关键信号
- 设置触发条件捕获异常工况
-
参数自动化:
- 编写脚本批量测试不同参数组合
- 使用优化工具箱自动调参
-
模块复用:
- 将验证过的模块封装为子系统
- 建立模块库供其他项目使用
8. 扩展应用
本框架可扩展应用于:
- ACC(自适应巡航)系统开发
- FCW(前向碰撞预警)系统验证
- AEB在不同附着系数路面下的性能测试
- 与其他ADAS功能的集成测试
在实际项目中,我们还可以通过以下方式增强系统:
- 加入传感器噪声模型
- 考虑通信延迟影响
- 增加多目标处理能力
- 集成更复杂的车辆动力学模型