自动驾驶仿真 (四)—— 基于PreScan与Simulink的AEB系统多场景验证
1. AEB系统与多场景验证的必要性
自动紧急制动系统(AEB)作为现代车辆主动安全的核心配置,其可靠性直接关系到道路安全。我在实际项目中发现,单纯依靠实车测试验证AEB性能存在三大痛点:测试成本高(每辆测试车需进行上百次碰撞试验)、场景覆盖有限(无法复现极端危险工况)、参数调整周期长(机械部件改动耗时数周)。而通过PreScan+Simulink联合仿真,我们能在虚拟环境中快速构建CCRs(前车静止)、CCRm(前车慢行)等C-NCAP标准场景,还能自定义暴雨、隧道逆光等复杂工况。
以某车企项目为例,他们原先需要3个月完成的AEB验证,我们通过仿真平台在2周内完成了以下工作:
- 建立12种标准测试场景库(含C-NCAP 2021全部要求)
- 模拟200+次碰撞试验(包含5%概率的极端工况)
- 优化毫米波雷达探测参数(将误报率从7%降至1.2%)
这种效率提升的关键在于PreScan的物理级传感器建模能力。比如毫米波雷达的波束发散角、多径效应等特性都能通过Technology Independent Sensor(TIS)模块精准还原。我曾遇到一个典型案例:某车型实车测试时出现隧道内误触发AEB,后来在仿真中发现是雷达波在隧道壁多次反射导致的——通过在Simulink中增加多径滤波算法,问题得以解决。
2. 多场景建模实战技巧
2.1 标准场景快速搭建
针对C-NCAP 2021要求的CCRs/CCRm场景,推荐按以下步骤操作:
道路建模:在PreScan的Builder界面创建长200m、宽3.5m的直线道路(CCRm需要更长距离)。这里有个细节——务必在道路末端预留30m缓冲带,否则仿真结束时的突然停车会导致数据异常。
车辆配置:
- 主车选用Audi_A8_Sedan_1(质量1980kg)
- 目标车选用Ford_Fiesta_Hatchback_1(质量1200kg)
- 在SpeedProfile中设置初始参数:
# CCRs场景示例 ego_vehicle.init_speed = 40km/h target_vehicle.init_speed = 0km/h initial_distance = 40m
传感器部署:同时配置长距雷达(LRR)和短距雷达(SRR):
- LRR参数:探测距离150m、水平视角±10°、更新频率20Hz
- SRR参数:探测距离30m、水平视角±45°、更新频率50Hz
实测中发现,将SRR安装高度设为0.6m(保险杠位置)时,对低矮障碍物的检测效果比标准0.8m提升23%。
2.2 复杂工况扩展方法
除标准场景外,我们还需要验证以下特殊工况:
- 低能见度场景:在PreScan的Atmosphere模块中设置雾浓度0.3g/m³,此时摄像头探测距离会下降60%,需要调整雷达权重。
- 横穿行人场景:使用Pedestrian模块创建速度为5km/h的行人,注意设置其运动轨迹与车辆中轴线呈30°夹角。
- 湿滑路面:修改Tire-Road Interaction参数,将摩擦系数从0.8(干沥青)调整为0.3(湿冰面)。
有个容易忽略的细节:在模拟夜间场景时,记得关闭PreScan默认的环境光照明,改用车辆前照灯作为唯一光源,否则会导致摄像头过曝。
3. 控制策略调优关键点
3.1 TTC模型参数优化
碰撞时间(TTC)模型的阈值设置直接影响AEB性能。根据实测数据建议:
| 预警阶段 | 传统阈值 | 优化建议 | 适用场景 |
|---|---|---|---|
| 一级预警 | 2.6s | 2.8-3.0s | 高速公路 |
| 部分制动 | 1.6s | 1.8s | 城市道路 |
| 完全制动 | 0.6s | 0.5s | 紧急情况 |
在Simulink中实现时,建议用Stateflow搭建有限状态机。例如当TTC<1.8s时触发部分制动,输出减速度-3m/s²;当TTC<0.5s时输出-8m/s²的紧急制动。
3.2 传感器融合策略
单一传感器容易受环境干扰,这里分享一个多传感器融合方案:
- 数据同步:在Simulink中使用Buffer模块对齐雷达(10ms延迟)和摄像头(50ms延迟)的时间戳。
- 目标关联:用匈牙利算法匹配雷达点云和摄像头检测框,匹配阈值设为0.7IoU。
- 置信度计算:
final_confidence = 0.6*radar_conf + 0.3*camera_conf + 0.1*LIDAR_conf if final_confidence < 0.65 ignore_target() end
曾有个项目因未考虑传感器延迟,导致在50km/h速度下出现1.4m的测距误差——这相当于AEB触发距离的15%!
4. 仿真与实车对比分析
4.1 数据一致性验证
我们选取某车型的测试数据对比:
| 指标 | 仿真结果 | 实车测试 | 误差 |
|---|---|---|---|
| CCRs制动距离 | 1.21m | 1.35m | 10% |
| CCRm跟车距离 | 2.8m | 3.1m | 9.7% |
| 误触发次数 | 2次/百次 | 3次/百次 | -33% |
误差主要来源于仿真中未考虑制动系统液压延迟(约80ms)。可以在Simulink的Brake Actuator模块中添加一阶惯性环节来修正:
brake_pressure = brake_command * (1 - exp(-t/0.08))4.2 典型问题排查指南
根据多年经验整理常见问题解决方案:
AEB不触发:
- 检查雷达探测角度是否被车身遮挡(建议在PreScan中开启Sensor FOV可视化)
- 验证TTC计算模块的输入信号单位(常有km/h与m/s混用错误)
频繁误触发:
- 调整雷达 clutter参数(将地面反射系数从0.5降至0.3)
- 在信号处理链中增加卡尔曼滤波
制动距离超标:
- 检查车辆质量参数(曾发现某项目误将1980kg输为1890kg)
- 验证轮胎模型(使用Pacejka模型替代默认线性模型)
在最近一个项目中,我们通过仿真发现了实车测试中未曾出现的"幽灵刹车"问题——最终定位是雷达旁瓣干扰导致。这类问题若不提前在仿真中发现,后期整改成本会高达数十万元。
