自动驾驶HiL测试实战指南:从选型到部署的关键技术解析
2026/9/6 10:51:24 网站建设 项目流程

搞自动驾驶开发的人,早晚会遇到 HiL(硬件在环)这个词。在我做过的几个量产和预研项目中,HiL 测试都扮演了承上启下的角色:它不像纯软件仿真(MIL/SIL)那样跑得快,但能把真实的控制器、总线协议和执行器信号接进来,逼真模拟整车的运行工况;它又比实车测试便宜得多,还能安全地复现碰撞、传感器失效、极端天气等危险边界场景。这篇文章把我这些年做 HiL 选型、搭建和调试中积累的东西梳理一遍,围绕主流方案对比、供应商评估维度以及背后的仿真技术原理展开,给准备上 HiL 或者正在选型的同行一个可以直接参考的路线图。

1. HiL测试在自动驾驶开发中的角色

1.1 HiL到底解决了什么问题

HiL(Hardware-in-the-Loop)的本质是把被测对象换成真实的硬件,把车辆环境用实时仿真模型替代。对于自动驾驶域控制器或者底盘域控制器来说,被测对象通常是真实的 ECU、传感器信号处理板卡甚至整车的域控制器。你在上位机上搭建一个实时车辆动力学模型、传感器模型和道路场景模型,让它们运行在实时机上,通过物理信号和总线协议与被测控制器通信,控制器会觉得自己好像装在真车上。

这套思路解决了两个核心问题。第一是测试安全性,实车测试中很难去反复验证“前车突然切入 + 摄像头被逆光干扰 + 制动系统单点故障”这类综合场景,但在 HiL 里,这种组合可以像循环播放那样反复跑,不会造成任何人员或设备风险。第二是可重复性,实车测试受天气、路面、胎压等环境因素影响很大,同一段代码今天过明天可能不过,而 HiL 环境高度可控,同一场景下跑一百次结果具有可对比性,这对自动驾驶算法的版本回归尤为重要。

从我实际经验看,HiL 在项目中的定位不是替代实车测试,而是把实车测试中约 70% 的“功能逻辑验证”提前到实验室完成,让实车资源集中去验证那些真正依赖物理世界的项,比如标定手感、零部件耐久、真实传感器盲区。这样一来,项目后期的测试压力会明显减少,缺陷在早期被发现和修复的成本也低得多。

1.2 为什么纯软件仿真替代不了HiL

很多人会问,现在 MIL(Model-in-the-Loop)和 SIL(Software-in-the-Loop)跑得那么快,场景库也越做越丰富,为什么还要花大价钱搭 HiL?答案在于信号真实性和接口时序。纯软件仿真中,算法跑在开发电脑上,通信总线是虚拟的,时间也是虚拟的,它验证的是“算法逻辑对不对”,而不是“控制器硬件和底层软件能不能在真实硬件环境下正确响应”。

自动泊车、AEB(自动紧急制动)、ACC(自适应巡航)这些功能,最终都是要通过控制器上的 CAN/CAN FD 或车载以太网接口来收发报文、接收传感器数据、输出执行器指令的。如果真实硬件上的信号电平、总线时序、诊断报文、故障处理逻辑有问题,纯软件仿真根本发现不了。举个例子,我们在一个项目中遇到过控制器在收到特定 CAN 报文时会偶发丢帧,这种问题在 SIL 里跑了无数遍都正常,一接 HiL 就复现了,原因跟接口芯片的中断优先级有关,只有真实硬件才能暴露这种问题。

另外,HiL 还具备故障注入能力,可以在毫秒级别控制信号线出现短路、断路、对电源搭接、对地搭接等异常。这种测试在纯软件仿真里做不了,实车做又很危险,几乎是为 HiL 量身定制的。

1.3 HiL测试工装的基本构成

一套标准的自动驾驶 HiL 测试工装,大致由五个部分组成。

第一部分是实时机,通常是一台工业级实时计算设备,比如 dSPACE SCALEXIO、NI PXI、Speedgoat 等,它对主机的核心要求是确定性和低抖动,能在微秒级周期内稳定执行车辆模型和 IO 刷新任务。第二部分是仿真模型,包括车辆动力学模型、传感器模型、道路交通流模型,这些模型运行在实时机上,与被测控制器形成闭环。第三部分是总线与 IO 接口,负责把实时机上的数据和被测控制器的 CAN/CAN FD、FlexRay、LIN、车载以太网以及模拟量、数字量、PWM 信号连接起来。

第四部分是故障注入单元,通过继电器和可控电源实现信号线状态切换,用来模拟各种电气故障。第五部分是上位机软件,负责场景编辑、测试用例管理、自动化执行、数据记录和报告生成。实际搭建的时候,还会有一堆辅助设备,比如程控电源、信号调理板卡、线束、机柜、冷却系统等。这些年提到越来越多的“时间同步模块”也基本是标配,自动驾驶普遍是多传感器融合,摄像头、激光雷达、毫米波雷达的数据若不对齐时间戳,感知融合根本没法做,这部分在第四章我会展开讲。

2. 主流HiL方案梳理与横向对比

2.1 传统强项:dSPACE、ETAS、Vector

在传统汽车电子测试领域,dSPACE、ETAS、Vector 三家是绕不开的名字。dSPACE 的 SCALEXIO 平台做了很多年,实时性能和 IO 板卡种类是业界标杆,ModelDesk 和 ControlDesk 的组合也比较成熟,尤其在车辆动力学和底盘电控测试方面积累很深,很多主机厂和 Tier 1 都拿它做整车控制器或底盘控制器的标准测试台架。

ETAS 的 LABCAR 在发动机和动力总成 HiL 里占有率很高,它的模块化设计比较紧凑,软件工具链支持诸如 ASCET、Simulink、TargetLink 等多种建模环境,对于做 ECU 底层软件和诊断功能的团队来说很顺手。Vector 的 VT 系统(VT System + CANoe)主要强在总线仿真和网络测试上,CANoe 的测试脚本生态非常完善,如果项目以总线通信、网络管理、诊断刷写为主,Vector 的方案往往事半功倍。三家各有各的地盘,选型时不要只看硬件参数,更要看你团队的软件习惯和被测功能分布。

2.2 模块化平台:NI与Speedgoat的灵活路线

NI PXI 平台是另一条主流路线。PXI 本身就是模块化仪器架构,你像搭积木一样选择实时控制器、总线接口板卡、模拟量板卡、数字 IO 板卡,配合 VeriStand 实时测试软件和 LabVIEW,能非常灵活地搭建一套 HiL 环境。它的优势是开放性高,能很方便地接入自研硬件和第三方模型,整体成本通常比传统一体化的商业 HiL 低不少,适合测试团队有一定软件开发能力、希望深度定制台架的场景。

MathWorks 旗下的 Speedgoat 也有类似定位,和 Simulink/Simscape 的兼容性非常好,如果你想在 Simulink 里做快速控制原型和实时仿真,Speedgoat + Simulink Real-Time 是上手最快的组合。我见过很多高校课题组和一些创新团队用 Speedgoat 搭小型 HiL,因为无需把模型迁移到另外一套工具链,开发效率很高。但要注意,这类模块化平台的缺点也很明显:很多细节需要自己配置,出了问题能找到的现成案例不如传统大厂多,对团队的软件能力和排错能力要求更高。

2.3 新势力和国产方案:CarMaker生态与国内集成商

IPG 的 CarMaker 本来以车辆动力学仿真和场景仿真见长,后来也推出了 HiL 产品线,把 CarMaker 的场景编辑能力、传感器模型和实时机做了深度绑定,对于做自动驾驶算法开发和测试验证的团队来说,CarMaker HiL 的一大优势是场景库丰富,从 OpenScenario 到 OpenDRIVE 的支持都很完善,场景和传感器的仿真精度在行业里口碑不错。

国内这几年也出现了不少 HiL 系统集成商,比如经纬恒润、中汽研下属的技术服务公司等,它们有的基于 NI 或 dSPACE 硬件做集成方案,也有基于自主开发的实时仿真软件做整套系统。国产方案的优势在于现场支持和定制化响应速度,语言沟通顺畅,项目施工和交付节奏通常更快。如果项目周期紧、需要频繁和供应商当面联调,国内集成商往往比海外大厂本地代理更灵活。但也要注意,国产方案背后的软件生态和模型库丰富度,跟老牌厂商还有差距,选之前一定把技术验证做到位。

2.4 主流方案横向对比

方案平台核心优势常用场景软件学习成本预算级别
dSPACE SCALEXIO实时性能强,生态成熟,车型覆盖广整车/底盘/动力域 HiL中等偏高
ETAS LABCAR动力总成和诊断测试强发动机/电机/电池管理系统中等较高
Vector VT + CANoe总线网络测试极强网络管理/诊断刷写/总线测试中等较高
NI PXI + VeriStand模块化、开放、灵活定制化的综合 HiL中等,需要自研能力中高
Speedgoat + Simulink Real-Time与 Simulink 无缝衔接快速原型、小规模 HiL
IPG CarMaker HiL场景库丰富,传感器仿真完整自动驾驶感知与决策测试中等较高
国产集成商方案支持响应快,定制化能力强各类量产项目的快速交付取决于底层软件

这里要提醒一句,上表只是一个方向性的参考,实际价格和项目范围、通道数、软件授权数量强相关,不同配置能差出数倍。预算评估一定要基于你真实需要的通道数量和功能清单,不要只看厂商给的第一版报价。

3. 供应商评估维度与选型心法

3.1 技术指标维度:实时性、通道规模、故障注入

评估供应商时,第一类指标是技术功能,这部分必须用可量化的标准来卡。实时性方面,至少要看最小步长和抖动。自动驾驶域控制器 HiL 通常要求车辆模型以 1ms 或 2ms 步长实时运行,总线仿真和 IO 刷新也要在同样周期下稳定工作。你需要让供应商提供同配置下的实测数据,而不是只看手册上写的理论值。抖动太大可能导致模型运行超时,被测控制器会误判系统无响应,测试结果就失真了。

通道规模要基于被测控制器的接口来定。数一数域控制器上有多少路 CAN/CAN FD、多少路车载以太网、多少路模拟输入输出、多少路数字量、多少路 PWM,再乘以 1.2~1.5 的余量,这就是你需要的 IO 规模。故障注入能力要看能不能覆盖期望的故障类型,比如总线短路、对电源搭接、对地搭接、功耗异常,以及故障注入的切换时间是否足够快,一般要达到毫秒级甚至更快。这些指标不能只看 PPT,要写进验收标准里,验收时用标准报文和标准负载实测。

3.2 软件生态:场景编辑、自动化测试与模型兼容性

第二类指标是软件生态,很多选型翻车就翻在这里。硬件性能再强,如果场景编辑工具难用、自动化测试脚本能力弱、想用的车辆模型导不进去,项目效率会大打折扣。你要重点考察这几个点:场景编辑器的易用性,能不能导入 OpenSCENARIO 和 OpenDRIVE;测试脚本是否支持 Python、.NET 或厂商自有的脚本语言;有没有现成的测试用例库和管理系统;模型接口是否兼容 Simulink、FMU/FMI 等常见格式。

这里有一个经验:让供应商用你项目中的真实场景做一个半天的小型 demo,而不是听他们讲解功能。我们团队在评估时会让供应商用同一个 OpenSCENARIO 文件分别导入两台不同平台的 HiL,看谁导入顺畅、谁跑起来流畅、谁的脚本改起来方便。一轮下来,软件生态的差距会非常直观。

3.3 服务交付与总拥有成本

第三类指标是交付和服务。HiL 不是标准货架产品,每个项目都有定制成分,你要关注供应商是否有本地支持团队、响应时间多长、是否提供培训、是否协助模型调试。合同里一定要明确验收标准、工期、质保期和超期赔偿条款。很多项目延期不是因为硬件没到货,而是联调阶段问题层出不穷,技术支持不给力,一拖就是几个月。

总拥有成本(TCO)也很容易被低估。除了初期的采购和集成费用,还要算上每年的软件授权维护费、硬件维保费、备件费用、线束和适配器更新成本,以及团队的学习成本。很多人做完预算后才发现,三年的总成本接近初期采购价的 1.5 倍。所以在选型时,把供应商给的年度维护费写进对比清单,并且预留后续扩展通道的升级费用。

3.4 一套可复用的选型评测流程

我自己总结了一套比较实用的选型评测流程,分享出来供参考。第一步,先输出一份内部需求规格说明,把被测控制器接口、测试场景、自动化需求、时间同步要求、故障注入要求全部写清楚。第二步,邀请 2~3 家供应商做技术交流和方案报价,要求他们针对你的需求说明给出初步配置单。第三步,让供应商用你的典型场景做一次现场或远程 demo,重点看软件工具链和模型导入能力。第四步,让团队核心工程师花 2~3 天试用系统,感受开发效率,尤其是脚本编写和场景编辑的流畅度。第五步,综合技术评分、价格、服务、交付周期做加权排序,技术评分建议占比 60%,价格 25%,服务与交付 15%。

评测时我会用一张简单的打分表,技术功能占 30%,软件生态占 20%,客户支持占 15%,价格占 20%,售后与培训占 15%。每项按 1~10 打分,最后加权求总分。请注意,这张表的权重可以根据团队实际情况调整,如果你团队软件能力强,可以把软件生态权重降低,如果项目周期紧,服务交付权重就要提高。

4. 仿真技术核心细节解析

4.1 车辆动力学建模:实时性的取舍

车辆动力学模型是 HiL 的“底盘”,它决定了控制器感受到的整车动态响应是否真实。常见的商业模型有 CarSim、CarMaker、veDYNA,dSPACE 也有自己的 ASM(Automotive Simulation Models)系列,MathWorks 里也有 Simscape Vehicle 等选择。HiL 环境下的车辆模型和离线仿真不同,它必须在严格实时约束下运行,比如 1ms 步长,因此模型复杂度要和实时机性能匹配,不能一味追求高保真。

实际项目里,我会根据被测功能选择模型精度。如果做底盘稳定性控制,车辆的侧向动力学和轮胎模型必须要准,建议用 CarSim 或 veDYNA 这类专门做车辆动力学的工具;如果做 L2+ 的 ADAS 功能,车辆模型精度要求稍低一些,但发动机、变速器、制动系统、转向系统等关键执行器接口必须齐全;如果用 CarMaker 做整车级 HiL,它本身集成了车辆动力学和场景,联调起来效率很高。模型调参也是个难点,至少要用真实的车辆测试数据对标一次,确保纵向加速度、横摆角速度、方向盘转角等关键信号的响应特性接近实车。

4.2 传感器仿真:摄像头、毫米波雷达与激光雷达

自动驾驶 HiL 和传统车身/底盘 HiL 最大的区别,就是传感器仿真。传感器仿真有两种实现思路:一种是基于目标的传感器仿真,直接把理想化的目标级信息打包成总线报文送给控制器,比如前方 50 米有一个障碍物、相对速度 10m/s、相对横向位置 0.3m,这种方式实时性好、参数可控,适合算法中后端的测试。另一种是物理级传感器仿真,对摄像头输出图像,对激光雷达输出点云,对毫米波雷达输出射频或中频信号,这种方式更真实,但对实时机性能和场景渲染能力要求会高很多。

摄像头仿真最常见的是通过图形渲染引擎在场景中生成虚拟图像,再通过视频接口(如 GMSL、FPD-Link)注入给域控制器,用来测试视觉感知算法。这里面有几个坑:一是图像帧率和对齐,摄像头帧率通常 25~30fps,必须保证图像流稳定无撕裂;二是光照模型和曝光控制,真实摄像头有自动曝光、自动白平衡,仿真图像如果不做这些处理,感知算法的表现会和实车差异很大。我在实际使用中倾向于在 HiL 阶段用目标级传感器仿真做多数回归测试,只在关键专项测试时才启用物理级图像注入,因为物理级仿真对算力占用太高,自动化执行效率会明显下降。

4.3 场景与交通流仿真:OpenSCENARIO的标准力量

场景仿真是 HiL 测试的“脚本”,场景库的质量直接决定测试覆盖度。目前行业里越来越倾向于使用 OpenSCENARIO 和 OpenDRIVE 这类开放标准来定义场景,好处是场景文件可以在不同工具间迁移,比如你在 Vires VTD、CarMaker 或自研平台里定义的场景,理论上都能通过标准格式导入,降低了被某个厂商绑定的风险。

交通流仿真则更复杂些,既要模拟周边车辆的宏观交通流,又要对关键目标(比如前车切入、行人横穿)做精细化行为控制。我的经验是,交通流里的非目标车辆用简单的智能驾驶模型(IDM 等)跑大流量背景即可,关键测试目标一定要支持脚本化动作序列,比如“前车从右侧车道以 5m/s 切入本车道,相对距离 30m,切入时间 2s”,这样才能精准复现设计好的回归用例。场景切换效率也是实际使用中的痛点,尤其是从高速场景切到城市十字路口,3D 场景和交通流初始化耗时较长,建议把高频场景预加载到内存中,把切换时间控制在秒级。

4.4 时间同步与总线通信:自动驾驶测试的隐形地基

很多刚接触自动驾驶 HiL 的工程师会低估时间同步的重要性。自动驾驶靠多传感器融合确定周围环境,如果摄像头的图像时间戳和激光雷达的点云时间戳差了 50ms,感知融合算法轻则测距不准,重则直接漏检障碍物。在 HiL 测试中,如果传感器数据注入的时间不同步,会引入“假阳性”或“假阴性”,误导算法评估。

解决方法是构建统一的时间同步机制。常见的做法是利用 GPS/B 码时钟或者 PTP(IEEE 1588 / IEEE 802.1AS)协议,让实时机、IO 板卡、程控电源、测试上位机以及被测控制器共享同一个时基。我在项目中会重点验证三件事:第一,各传感器注入信号的关键时间戳是否在同一个时间域内;第二,CAN/CAN FD 和车载以太网上的报文周期是否抖动过大;第三,故障注入动作是否能在指定时间点精确触发。尤其是车载以太网(100BASE-T1 / 1000BASE-T1)和 TSN 技术进入量产车后,HiL 台架对时间同步的精度要求已经从毫秒级提高到微秒级,这块能力在选型时一定不能省。

5. 部署实施中的常见问题与避坑实录

5.1 部署实施的关键步骤

HiL 系统的部署不是把机柜接上电就完事,从我参与过的项目看,至少要经历四个阶段。第一阶段是场地准备,确认供电容量、接地、温湿度、空间尺寸,机柜附近要预留足够的维护通道,散热要提前规划,不然夏天跑大负载测试时实时机会频繁降频。第二阶段是硬件装配和验收,对照配置清单逐一核对板卡、线束、接口,重点检查信号接线的线序和屏蔽层接地,这阶段发现问题成本最低。第三阶段是模型和场景导入,把车辆动力学模型、传感器模型、场景文件迁移到目标机上,通常会经历一轮模型实时性优化。第四阶段是被测控制器联调,从简单报文抓取到闭环驾驶场景测试,逐级增加复杂度和压力。

联调时最容易出问题的是总线信号匹配,比如被测控制器发送某个 CAN 信号的周期是 10ms,而 HiL 端报文审查配置成了 50ms,就会导致控制器报错误或进入降级模式。所以我会要求测试团队准备一份详细的 IO 信号映射表和总线信号矩阵,把每个信号的方向、周期、长度、单位、初始值都写清楚,这个文档在后续维护和扩展时也一样有用。

5.2 高频问题与排查思路

我在 HiL 调试中遇到过很多问题,这里列几个高频的,并附上排查思路供参考。

第一个常见问题是实时性超时,表现为模型偶发卡顿或 step overrun。先看实时机的 CPU 负载是否过高,再看模型中有没有非线性的迭代算法或大内存分配操作。解决办法一般是对模型做降阶、把某些不关心的子系统放大步长、或者升级实时机 CPU 核数。

第二个常见问题是传感器数据时间戳不对齐,感知算法在 HiL 上表现异常,但离线仿真正常。排查方法是先抓原始报文的收包时间,然后再对比各信号的逻辑时间戳,判断是总线调度延迟还是时间同步模块配置问题。多数情况是某个传感器模型的数据生成周期没有对齐整车测试的同步脉冲。

第三个常见问题是故障注入不动作,继电器或电子开关没有在指定时间切换。排查时先确认故障注入模块的通道地址配置是否和控制脚本一致,再确认注入时长和间隔参数是否足够长,有些固态继电器的最小脉冲宽度有限制,想注入 1ms 的短路脉冲往往做不到,需要用更高带宽的注入模块。

第四个问题是自动化测试跑着跑着就中断,一查发现是上位机脚本里的异常处理没写好,某个报文字段比预期多了一个字节,整个脚本就崩溃了。建议在自动化框架里添加严格的异常捕获和日志记录,任何一步失败都留下完整报文和上下文,这会极大提升排查效率。

5.3 选型阶段容易踩的坑

选型阶段有几个坑我见过太多次。第一个坑是只比硬件价格,不比软件授权和生态成本。硬件砍下来几十万,软件授权和每年的维护费却贵得离谱,总账根本不是那么回事。要我把软件授权模式(按节点、按浮点、按功能模块)也纳入比价范围,并且明确后续增加测试项目的扩展费用。

第二个坑是低估线束、适配器和转接器的费用。一辆功能全面的自动驾驶域控制器,线束可能有几十甚至上百根信号线,定制线束的价格非常高,而且供应商报价里常常不包含这些,等施工时再追加就非常被动。选型阶段一定要把被测控制器的接插件型号、针脚定义提前理清楚,要求供应商把线束和适配器的报价单独列出来。

第三个坑是迷信单一供应商的“全家桶”,结果整个台架被某个厂商工具链完全锁定,后续想换一个更好的场景工具都换不了。我一般会建议在满足需求的前提下,优先选择支持开放格式(如 FMU、OpenSCENARIO、Python 脚本)的平台,至少给自己留一条后路。

第四个坑是交付验收标准模糊,验收时凭感觉“差不多能用”。我吃过亏,项目结束后才发现实时性抖动超标,供应商说这是模型原因,来回扯皮很久。建议把实时性、通道精度、故障注入时序、场景加载时间、自动化测试通过率等关键指标写进合同附件,用仪器实测数据说话。

5.4 实测中的避坑心得

如果让我把 HiL 项目实施中最重要的心得浓缩成几条,我会写这样几条。第一,团队里一定要有一个既懂软件又懂硬件的人牵头,HiL 是交叉领域,只会软件的人搞不定总线信号,只会硬件的人写不出自动化脚本。第二,从第一天就把测试用例和场景资产的版本管理做起来,用 Git 或 SVN 管好 OpenSCENARIO 文件、车型模型参数、脚本脚本库,不然一个参数被误改,排查起来非常痛苦。第三,一定要预留独立的调试接口,HiL 台架不仅能跑自动化测试,还要让工程师能随时连上来手动拖一个场景、抓一把信号,方便复现问题。第四,数据记录和回放功能一定要选好,自动驾驶测试日志动辄几十 GB,没有高效的数据管理方案,后续分析会很痛苦。

这类台架的维护也要纳入日常工作,定期检查线缆连接、校准 IO 通道、更新场景库和软件版本。很多台架用了半年后精度下降,多数不是硬件老化,而是没有做定期校准和版本确认。

我个人在实际操作中的体会是,HiL 测试系统的建设更像是一个长期演进的过程,而不是一次性采购。选型阶段多花一个月做充分的评测验证,比后期花三个月处理供应商问题要划算得多。最后再分享一个小技巧:预算允许的话,把传感器级数据注入的接口和通道预留出来,哪怕第一版并不使用,后面当你需要做感知算法的回归测试时,你会发现这个决定能救你很多次。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询