1. 课程导入与验证工程全景
在自动驾驶量产开发中,NVIDIA DRIVE 平台承担的是“车载计算与软件运行基座”的角色:它向下连接传感器、执行器与整车网络,向上承载感知、定位、预测、规划、控制等自动驾驶软件栈,并通过 DriveOS、CUDA、TensorRT、DriveWorks 等软件组件提供实时计算、推理加速与中间件能力。换句话说,算法团队在 PC 上训练出的模型,最终必须落到 DRIVE 平台的算力、内存、时延与安全约束之内,才能成为可上车的功能。而 SIL(Software-in-the-Loop,软件在环)与 HIL(Hardware-in-the-Loop,硬件在环)联合验证,正是连接“算法可运行”与“整车可交付”之间的关键工程环节。
SIL 验证的核心,是在不依赖真实 ECU 硬件的条件下,把自动驾驶软件栈(或其关键模块)运行在宿主机或服务器上,用虚拟传感器、虚拟车辆动力学和场景仿真器构造闭环。它回答的问题是:软件逻辑在给定输入下是否正确、稳定、可复现。HIL 验证则把真实的 DRIVE 计算平台(或其中的 SoC、板卡、接口)接入测试台架,由实时仿真机提供传感器数据、车辆总线信号与故障注入,回答的问题是:真实硬件在真实时序、真实接口和真实负载下,是否仍能满足功能与安全要求。两者不是替代关系,而是互补关系:SIL 负责“快速、大规模、可回归”,HIL 负责“真实、闭环、可追溯”。
从项目流程看,一个典型的 DRIVE 平台自动驾驶项目通常经历如下阶段:需求与场景定义 → 软件架构与接口设计 → SIL 模块级/系统级验证 → 代码集成与持续回归 → HIL 台架集成验证 → 实车标定与路测 → 版本冻结与释放。SIL/HIL 联合验证贯穿其中,尤其在“软件集成后、实车之前”这一区间承担主要质量门禁作用。其价值可以概括为三点:第一,把大量缺陷拦截在实车之前,降低路测风险与成本;第二,把场景、参数、结果固化为可重复执行的资产,支撑版本迭代回归;第三,为功能安全与预期功能安全(SOTIF)提供可追溯的验证证据。
角色分工上,SIL/HIL 联合验证通常涉及以下角色:系统工程师负责定义验证范围、接口与通过准则;仿真工程师负责场景搭建、传感器模型、车辆动力学与仿真环境维护;软件工程师负责被测软件的可测试性改造、接口适配与问题定位;HIL 台架工程师负责实时机、IO 板卡、总线仿真、故障注入与台架标定;测试工程师负责用例设计、执行、结果判读与缺陷跟踪;安全与质量工程师负责验证覆盖度、证据链与释放评审。这些角色在同一个验证流程中共享场景库、参数集与结果数据库,形成闭环协作。
需要特别强调的是,SIL 与 HIL 的“联合”并不是简单地把两个测试阶段串起来,而是让它们共享同一套场景描述、同一套接口定义和同一套结果判读标准。例如,一个“前车紧急制动”场景,在 SIL 中可以用虚拟传感器输出目标距离与相对速度,验证规划控制模块是否在 TTC(碰撞时间)低于阈值时输出足够减速度;在 HIL 中,同一场景由实时仿真机通过视频注入或 CAN 报文发送给真实 DRIVE 平台,验证从传感器接口到执行器指令的整条链路时延是否满足要求。如果 SIL 与 HIL 使用不同的场景参数或不同的通过准则,验证结果就无法互相印证,联合验证也就失去了意义。