4. 虚实验证工程概述

自动驾驶系统的验证对象横跨感知、决策、控制与整车执行,单一手段很难同时覆盖“高频次、低成本、可复现”和“真实物理、真实时延、真实环境”这两类需求。虚实验证工程的核心思路,是把仿真世界与真实世界通过接口、时基和信号链连接起来,让被测对象在接近真实的工作条件下接受可重复、可观测、可注入故障的测试。它不是“仿真替代实车”,也不是“实车补仿真”,而是按验证目标分层组合:模型在环解决算法逻辑,软件在环解决代码集成,硬件在环解决控制器与执行器接口,车辆在环解决整车动力学与真实道路耦合。

一、虚实结合验证理念:以“被测对象边界”决定虚实切分

虚实结合的第一原则是明确被测对象边界。边界之内是真实件,边界之外用模型或台架替代。边界划得越靠近真实车辆,物理保真度越高,但成本、周期和风险也越高。因此工程上通常按“风险—频次”分配:高风险、低频次场景用车辆在环或实车;中风险、中频次用硬件在环;低风险、高频次用软件在环或模型在环。

第二原则是时基一致。仿真步长、控制器周期、总线周期和传感器更新率必须统一到同一时间基准,否则会出现“仿真里通过、实车里抖动”的假通过。第三原则是信号链可观测,即注入的激励、被测件的输出、模型反馈和故障注入点都要能记录和回放,形成可追溯的证据链。

虚实结合不是把真实件塞进仿真,而是让真实件在受控的虚拟环境中“被真实地激励、被真实地观测、被真实地复现”。

二、X-in-the-loop分类:从MIL到VIL的连续谱

X-in-the-loop是一组按“真实件比例”递增的验证方法。常见分类包括:

  • MIL(Model-in-the-Loop):控制算法与被控对象均为模型,在Simulink等环境中闭环,用于早期逻辑验证。
  • SIL(Software-in-the-Loop):算法生成C/C++代码,与被控对象模型在同一PC或服务器上运行,验证代码级正确性。
  • PIL(Processor-in-the-Loop):算法代码运行在目标处理器上,被控对象仍为模型,验证编译器、定点化和实时性。
  • HIL(Hardware-in-the-Loop):真实控制器或ECU接入实时仿真机,被控对象、传感器和执行器用I/O板卡模拟,验证接口、时延和故障响应。
  • VIL(Vehicle-in-the-Loop):真实车辆或整车台架接入虚拟交通环境,验证整车动力学、底盘执行与真实道路耦合。

这些方法不是替代关系,而是同一V模型上的不同验证层级。越往右,真实件越多,虚拟环境越需要高保真;越往左,迭代越快,但物理真实性越弱。

X-in-the-loop 虚实连续谱:真实件比例递增 虚拟为主 真实为主 MIL 算法+对象模型 SIL 代码+对象模型 PIL 目标处理器+模型 HIL 真实ECU+实时仿真 VIL 真实车辆+虚拟交通 HIL/VIL 典型信号链 场景/交通流模型 → 传感器模型 → 实时仿真机 → I/O板卡 → 真实ECU/整车 → 执行器反馈 关键约束:统一时基、固定步长、故障注入点、数据回放与证据留存 观测点:激励输入、ECU输出、总线报文、模型状态、执行器响应

三、硬件在环(HIL)基本原理:让ECU“以为”自己在车上

HIL的核心是实时仿真机+真实控制器。实时仿真机以固定步长(常见1 ms或0.5 ms)运行车辆动力学、传感器和执行器模型,通过I/O板卡输出模拟量、数字量、CAN/CAN FD、LIN、以太网等信号给真实ECU。ECU按真实逻辑计算控制指令,再回传给仿真机,形成闭环。

HIL的关键技术点包括:

  • 实时性:仿真步长必须小于控制器周期,且抖动可控,否则闭环失稳。
  • I/O匹配:电压范围、电流驱动能力、PWM频率、CAN终端电阻必须与真实车辆一致。
  • 故障注入:可模拟传感器开路、短路、漂移、总线丢帧、电源跌落等,验证ECU诊断与降级策略。
  • 自动化测试:用脚本批量执行场景,自动判定通过/失败并生成报告。
# HIL典型配置片段(示意)
sim_step: 0.001 s          # 实时仿真步长
ecu_cycle: 0.010 s         # ECU控制周期
bus: CAN_FD 500 kbps       # 总线速率
fault_injection:
  - sensor_front_radar: open_circuit @ t=12.0s
  - can_bus: drop_frame 5% @ t=20.0s
logging: all_io + bus + model_state

四、车辆在环(VIL)基本原理:整车与虚拟交通的耦合

VIL把真实车辆或整车台架接入虚拟环境。常见形式有两种:一是整车台架VIL,车辆固定在转鼓或轴耦合台架上,虚拟环境提供道路阻力、坡度、风阻和交通流,车辆真实动力系统与底盘执行器工作;二是实车VIL,真实车辆在封闭场地行驶,虚拟环境通过感知注入或增强现实方式叠加虚拟交通参与者。

VIL的难点在于感知闭环。如果虚拟目标只存在于仿真机中,真实车辆的摄像头和雷达看不到它,就无法形成感知—决策—控制的完整闭环。因此VIL通常采用“感知注入”或“目标模拟”手段,把虚拟目标转换成真实传感器可识别的信号,或者直接向感知输出注入目标级信息。前者保真度高但实现复杂,后者工程可行但需明确其验证边界。

常见误区:把VIL当成“实车跑一遍仿真场景”。若虚拟目标未被真实传感器感知,验证的只是决策规划,而非完整感知闭环。必须在报告中明确“感知是否在环”。

五、方法选择与验证矩阵

方法 真实件 典型验证目标 成本/周期 主要风险
MIL 无 算法逻辑、场景覆盖 低/快 模型保真度不足
SIL 代码 代码集成、数值一致性 低/快 未覆盖目标硬件特性
PIL 目标处理器 定点化、实时性、编译器 中/中 外设与总线未真实接入
HIL ECU/控制器 接口、时延、故障诊断 中高/中 模型与I/O失配
VIL 整车/底盘 整车动力学、执行器耦合 高/慢 感知闭环不完整

六、工程落地建议

第一,先定义验证问题再选方法。要验证的是算法逻辑、代码正确性、接口时序还是整车响应,直接决定切分边界。第二,建立统一场景库与数据格式,让MIL到VIL复用同一场景描述,避免重复建模。第三,把故障注入和边界场景作为必测项,而不是附加项。第四,所有在环测试都要保留时间戳、输入激励、输出响应和判定依据,形成可审计的验证证据。第五,明确每种方法的置信边界,在报告中写清“哪些真实件在环、哪些是模型、哪些信号被注入”,避免把局部结论外推为整车结论。

虚实验证工程的价值,不在于追求某一种“最真实”的手段,而在于用连续谱思维把不同保真度的验证手段组织成证据链:低频高风险场景用VIL/实车兜底,高频回归用HIL/SIL快速迭代,早期设计用MIL探索。只有边界清晰、时基一致、信号可观测,虚实结合才真正可信。