新能源车研发中的HiL测试:从续航到辅助驾驶的“虚拟长测”

发布时间:2026/10/25 1:02:05
新能源车研发中的HiL测试:从续航到辅助驾驶的“虚拟长测”

国庆长假跑了一趟长途自驾,高速公路服务区里排队充电的时候,我职业病犯了——作为长期做整车电子电气测试的人,我看着前面那台车上跳动的续航数字、忽快忽慢的充电功率、偶尔介入的辅助驾驶,脑子里想的不是“这车好不好开”,而是“这些场景,研发阶段到底为它做了多少测试”。答案比大多数人想象的多得多。今天我准备聊聊其中一个非常硬核、也非常容易被普通车主忽略的环节:HiL测试(硬件在环测试)。如果你在车企做研发、在供应商做零部件验证,或者是个刚入行想做汽车测试的学生,这篇文章会让你看清新能源车在上市之前,是如何在实验室里被成千上万次“长途自驾”折磨过的。

1. 长途自驾体验背后的“HiL测试阅兵”

你可能会问:一辆车从图纸到量产,不是跑过路试、做过各种耐久试验就好了吗?为什么还要在实验室里做HiL?因为真实道路测试永远无法覆盖所有场景,更无法把同一个场景精确地重复一万次。而你的长途自驾体验,恰恰是研发阶段在机柜里反复“阅兵”的缩影。

1.1 续航数字比导航还魔幻,测试里却被反复算过

国庆堵在路上,最折磨人的不是方向盘,是续航里程。标称CLTC续航600公里的车,满载开空调跑高速,实际可能只有360公里。你以为这只是“打折”,但在研发视角里,这背后是一个非常复杂的估算链路:动力电池SOC(荷电状态)估算、剩余续驶里程估算、热管理耗电预判、驾驶风格识别。任何一个环节算错,仪表上那个数字就会给你表演“过山车”。

这个数字在HiL台架上是被反复检验的。我们会在实时仿真机里搭建整车模型,模拟风阻、滚阻、坡度、载重、温度,然后把真实电池管理控制器接上去,让它在虚拟路况上跑各种驾驶循环。你遇到的“高速续航腰斩”“最后一百公里掉电加速”,本质上都是SOC估算算法对电压、电流、温度的非线性修正做得不够细致。有一次我在台架上复现一个客户投诉:电量剩余20%后续航开始“跳崖式”下降。查下来是估算算法里对低SOC区间内阻增大的修正表参数不合适,导致计算值比实际可用能量更悲观。这种问题在大规模实车路试里很难定位,因为你不可能让路试车在相同电池状态、相同环境温度下反复跑出一条一模一样的衰减曲线。但HiL可以,它能把场景百分之百复现,让你一遍遍对比修正前后的算法差异。

1.2 充电功率忽高忽低,是三电控制器被反复“拷问”后的结果

长途自驾里另一个让车主崩溃的体验:快充功率曲线像股票走势。刚插上枪能到90kW,充了十分钟就掉到40kW,再充一会只有20kW。很多车主第一反应是“桩不行”,但很多时候桩很无辜,是车上电池管理系统在执行保护策略——电芯温度、温差、SOC、充电桩电压跌落,每一项都会限制充电功率。

这些限制策略是怎么被验证的?在HiL台架上,我们会用电池模拟器代替真实电池,可以瞬间把电芯温度从25度抬到45度,也可以让某一节电芯温度比其他电芯高10度,然后看电池管理控制器如何响应、如何请求降流、如何上报故障码。连续多轮快充的场景也可以压缩成几小时的自动化测试,让电池控制器反复经历“满充—满放—再满充”的虚拟循环,监控其热估算模型的漂移。我见过一个案例:某项目在台架上用模拟电池跑连续十轮快充,发现第六轮以后充电功率被拉得很低,但实测电池温度并不高。最后定位为估算模型在持续快充场景下累积了温度偏差,让控制器误以为电池已经过热。这种问题只会在超出单次充电测试的多循环场景里暴露,而HiL正好擅长做这种“时间压缩”。

1.3 辅助驾驶在高速上的“小动作”,台架上用代码造了无数个“假车”

国庆高速上,你大概率见识过辅助驾驶的“小脾气”:前车急刹时它突然给你来一脚重刹;隔壁车道大车稍微压线,它立刻方向盘抖动;雨雾天气下时不时提示“功能退出”。这些体验背后是感知、决策、执行三层控制器的协同,而协同出错的极端场景千奇百怪。

在HiL测试里,我们会把真实摄像头或以太网摄像头注入的视频流、毫米波雷达的目标列表、超声波雷达的障碍物信息统统替换成仿真信号,然后在虚拟道路上安排“演员”——前车急刹、旁车加塞、锥桶横在车道中间、雨天水滴糊住镜头。辅助驾驶控制器看到这些信号后做出的每一次转向、加速、制动,都会被记录下来跟预期行为比对。我曾经在测试中发现,当前车制动减速和自车同时发生大角度转向时,某个版本的ACC控制器会给出一个突兀的扭矩叠加,车内感觉像被猛拽了一把方向盘。这个场景在实车路试中极难稳定复现,但在台架上只需要在场景编辑器中拖拽四个关键节点的运动轨迹,就能让问题连续暴露三分钟五次。这也是HiL在智能驾驶领域越来越不可或缺的原因——它造不出真实物理环境,却能精确地制造“感知输入”。

2. 一个台架就是一间“缩小版整车实验室”

聊完体验,说点硬核的。HiL为什么能让真实控制器在实验室里“以为自己在开车”?拆开看,其实核心思路和飞行模拟器完全一样:你把真实的大脑(ECU)接上,其余部分(整车、道路、司机、环境)全部用数学模型和硬件接口来骗它。

2.1 为什么不能全靠实车路试,非要搬回实验室

很多人不理解:车不就是用来开的吗?多跑路试不就行了?问题在于三点。第一,重复性差。实车测试时风速、温度、路面附着系数都在变,同一段刹车距离每次测出来都不一样,算法A和算法B的优劣很难一比就出结论。第二,边界工况太危险。比如把电池管理系统逼到热失控保护边缘、让电子稳定系统在冰雪路面反复介入、让辅助驾驶在高速上遭遇前车突然切入——这些场景在实车上试,轻则损坏设备,重则出事故。第三,时间不等人。一个整车项目从定义到量产可能只有两三年时间,而测试矩阵动辄上千条用例。靠路试一个个跑,黄花菜都凉了。HiL的价值就是:把危险场景拿到桌面上跑,把长周期场景压缩着跑,把复杂场景可控地重复跑。

2.2 一套典型HiL台架的五个核心构成

一套常规的三电HiL台架大概长这样:实时仿真机、I/O与通信接口、故障注入单元、被测控制器、上位机与自动化软件。我拆开讲。

实时仿真机是整个系统的“虚拟马路”。它运行整车动力学模型、道路模型、环境模型,在微秒级的时间步长里不断计算电机转速、轮速、电压、温度等物理量。比较关键的是实时性要求:仿真必须在规定时间节拍内完成计算,晚一毫秒都会被当作事故。常见的实时系统有基于Linux扩展的,也有商业实时操作系统的,选型时主要看CPU性能和任务调度的确定性。I/O板卡负责把仿真得到的物理量变成真实的电压、电阻、PWM信号,喂给控制器。比如你要模拟电机旋变信号,就得用专门的信号板卡产生精确到角分的旋变正余弦波形,否则电机控制器一读转角不对,整套电机控制逻辑都乱了。通信接口则负责CAN、CAN FD、LIN、车载以太网总线的收发,让控制器能“听到”其他虚拟节点的报文。

然后是被测控制器。这台架一次可以接一个或多个真实的ECU:整车控制器、电池管理控制器、电机控制器、热管理控制器、车身控制器,甚至加上智能驾驶域控制器。被测控制器必须是量产或即将量产的硬件版本,这是HiL和纯软件仿真最大的区别——软件模型可以伪装一切,但硬件本身的ADC精度、时序响应、故障诊断行为是装不出来的。故障注入单元则负责“使坏”,可以切断控制器某个引脚、注入短路、对地开路、把传感器信号偏离标称值,用来验证控制器面对电气故障时的诊断和降级逻辑。上位机和自动化软件则是测试工程师的“导演台”,用来编辑场景、跑测试序列、收集数据、生成报告。

2.3 传感器、执行器和故障:三个容易被忽略的细节点

很多人第一次接触HiL时,都会低估传感器信号仿真的复杂程度。同样是“给控制器一个温度信号”,你可以直接给一个线性电压,也可以给它一路PWM,还可以通过单边半双工响应协议回传数字量。用错了方式,控制器可能根本识别不到温度,或者识别出来的数值有偏置。尤其是新一代电子电气架构下,传感器大量数字化,传统模拟信号仿真已经不够了,你得用残余总线仿真去模拟智能传感器的报文。

执行器负载仿真也很讲究。你想让电池管理控制器以为自己真的控制了一个冷却水泵,但不能真的给它接一台水泵——毕竟实验室里没有那么多体积。于是要用电子负载模拟水泵的电流特性、堵转特性。麻烦的是,水泵在不同转速下电流波形差异很大,负载模型建得不好,控制器看到的电流是“假的”,它内部的诊断逻辑就会误报故障。另一个被低估的环节是故障注入的时序。一次开路故障,是发生在控制器点火瞬间还是运行一小时后?是瞬时开路还是间歇性抖动?不同时序下控制器的处理路径完全不同。这些细节测试越早做,后期实车电气问题就越少。

3. 围绕“长途自驾场景”的测试用例,到底是怎么设计的

既然标题里是“国庆长途自驾”,我就以这个场景为例来拆解测试用例库的设计思路。测试工程师不会凭空拍脑袋写用例,而是先做人、车、路、环境四个维度的场景分析。比如“长途自驾”包含哪些典型片段——高速巡航、连续快充、山区上下坡、拥堵蠕动、雨夜行驶、高温暴晒、低温冷启动。每个片段继续拆解成数百个具体的功能测试需求。

3.1 高速巡航与连续快充:动力电池和热管理的“压力测试”

高速巡航这个场景,在HiL上对应的不仅仅是“电机功率够不够”,还有电池的持续放电能力、SOC估算一致性、热管理系统能否把电芯温差控制在合理范围。我们会把虚拟车速稳定在120km/h,载重、坡度按实际自驾配置,持续运行几小时后观察电池模型仿真出的最高温度、温升速率,以及电池管理控制器是否触发功率限制。比较典型的测试数据是:环境35度、满电出发、行驶200公里后在服务区快充30分钟再继续行驶——这一条用例下来,BMS和热管理控制器的每一个请求都要被记录、标注、比对。

连续快充场景更变态。不是充一次就完,而是连续进行“充电—行驶—充电—行驶”循环,让电池控制器在虚拟环境中积累估算误差、累积热状态。我在一个项目中做过十轮快充循环测试,到第七轮的时候发现热管理控制器请求的电子水泵转速明显偏高,但仿真电池温度并没有拐点,说明控制器里的热模型对自己预报过高了。后来在模型里增加了一个老化工况修正因子,问题在凌晨的自动回归测试中被验证解决。这种问题在实车上至少要跑大半个月才能暴露,而在台架上一天就能复现。

3.2 SOC估算误差、能量回收到增程介入:能量流里的细节魔鬼

长途自驾里面最让驾驶者迷惑的还有能量回收标定。下长坡时松油门,回收扭矩太大,车内人会觉得“被拽了一下”;回收扭矩太小,刹车片负担又重,制动距离感人。在HiL上,我们会构建一个总长几十公里的虚拟下山路,包含不同的坡度、路况附着系数、电池SOC状态,然后观察能量回收扭矩命令和液压制动压力之间的配合曲线。如果哪段出现扭矩阶跃,或者是ABS介入时回收扭矩未及时退出,测试记录里会直接标红。

对于插电混动或增程式车型,还有更复杂的“模式切换”问题:高速巡航时,增程器介入发电的转速是突然拉高还是平滑爬升;亏电状态下动力响应是否会明显变差;发动机启动瞬间的扭矩冲击会不会传递到座椅。这些都属于能量管理策略的范畴,在HiL台架上用发电机模拟器或发动机模型去驱动整车控制器,可以精确观察每一个扭矩请求的斜率、延时时长和切换路径。我的经验是,模式切换类用例不能只看最终功能是否正确,还要盯细节波形:请求扭矩、实际输出扭矩、转速爬升斜率、噪声相关的转速区段停留时间,每一个都可能变成用户投诉点。

3.3 从“闯红灯”场景到自动化回归:一台Windows电脑能看一整夜

光有单个场景用例还不够,厉害的地方在于把这些场景组合成自动化测试序列,晚上下班后挂机跑一整夜。比如“高速巡航”组里可以串行执行:120km/h巡航—前车减速—并线超车—进入隧道—雨水模式—服务区快充—重新上高速—下长坡—拥堵蠕行。每个子场景结束后,系统自动清空故障码、复位状态、记录截图和波形。第二天工程师来看报表,哪些用例过了,哪些挂了,挂在哪一步,都是清清楚楚的。这样一晚上的自动化回归,相当于一辆车在虚拟世界里完成了好几百公里的复杂路况行驶,这也让HiL在整车研发的时间表里有了不可替代的地位。

4. 在台架上跑“车感”:制动、转向和底盘的拉扯博弈

很多工程师以为HiL主要管三电,其实底盘和智能驾驶控制器也是HiL的重头戏。尤其是长途自驾这种长时间连续行驶的场景,底盘系统一直处于中高强度负荷。如果制动能量回收和传统液压制动协调不好,你会在山路上踩出“前半段海绵后半段撞墙”的割裂感。

4.1 制动能量回收与ESP的优先级博弈,直接关系山路安全

举个例子:下坡时驾驶员轻踩刹车,正常情况下电机回收扭矩优先介入,液压制动只做补充。但如果路面刚好有一小段湿滑,车轮出现抱死趋势,ABS/ESP会立刻请求接管。这时候如果回收扭矩没有及时退出,制动力分配就会混乱——一边电机反拖,一边ABS在减压,车内就能感觉到踏板弹脚和车辆闯动。这个场景在实路测试里相当随机,但在HiL上,我们可以用故障注入制造单轮轮速信号跳变,再叠加低附着系数路面模型,强制让ESP激活,然后观察能量回收扭矩退出指令的延迟。我们曾经测出某版本的车辆稳定控制器在ESP介入后,回收扭矩残留了约200毫秒才降到零,这两个路口之间刚好够让你感觉到一次“顶脚”。在台架上一轮一轮地试,就是为了把这个残留时间压缩掉。

4.2 转向手感、AEB误触发和“假故障”信号

长途自驾另一个高频感知点是转向。车道保持辅助在你打方向盘要变道时,如果给了相反的小幅纠偏力,哪怕只有1牛米,人会非常难受。HiL台架可以给转向控制器注入虚拟的转角、转矩、车速信号,再配合车道线信息制造“车辆压线—驾驶员主动转向—系统退出”的交叠窗口,反复测试退出策略是否释放得够快、够柔。

智能驾驶相关测试则更热闹。AEB(自动紧急制动)误触发是最让人头疼的。为什么会误触发?感知算法在极端视角下看错了——比如阳光直射摄像头造成眩光,或者前方卡车底部的阴影被识别成了障碍物。在HiL里,我们通过仿真视频注入工具把各种光影下的场景直接喂给感知控制器,然后观察决策结果。有一次,某项目在雨夜场景中前车尾部尾灯反射被识别成一个“静止障碍物”,AEB在时速80公里时触发了全制动力,驾驶员措手不及。我们把场景里的尾灯亮度曲线做成参数,反复扫描不同亮度阈值,最终找到误识别边界,再反馈给感知团队修改模型。这类问题,单靠路试几乎不可能定位,因为每次雨滴、车距、车速都不一样,所以HiL的价值在这里真的是“显微镜级别的可复现性”。

5. 在一个整车项目的研发时间表里,HiL测试到底站在哪个位置

聊了这么多技术细节,很多人会问:这些测试在项目开发流程里到底排在哪一步?简单说,整车研发遵循一条从模型到部件到系统到整车的逐级集成路线,HiL属于“部件/系统级验证”这一层,正好夹在纯软件仿真和实车标定之间。

5.1 从MIL到SIL再到HIL和实车标定:一条层层递进的接力流程

先说MIL(模型在环)。这一步里控制算法还是纯模型,在PC上跑,主要快速验证算法逻辑,比如SOC估算、扭矩分配的数学正确性。它的问题也很明显:控制器代码还没跟硬件结合,很多硬件行为(死区、延迟、ADC量化误差)根本仿真不了。接着是SIL(软件在环),把编译后的控制器代码放进仿真环境运行,能验证部分软件逻辑,但跑不了真实硬件特性。再往后才轮到HiL,把真实控制器硬件接上来,用仿真环境包围它。这时候你测的已经是“硬件+底层软件+应用层软件”的集成体,发现问题才最接近实车。

再往下一层就是实车标定和耐久路试。实车标定阶段,测试工程师拿着标定工具在测试场反复调参数,把动力性、经济性、平顺性调到理想值。实车路试则解决“真实世界可靠性”问题——连接器会不会松、线束会不会磨破、密封会不会漏水,这些HiL永远测不了。所以正确的认知是:HiL不是替代路试,而是把路试的试错成本提前消耗掉。软件逻辑层面的问题,在台架上每解决一个,实车阶段就少一个需要陪试的夜晚。

5.2 自动化测试和持续集成:白天开会,夜里台架替你监工

新能源车的软件开发节奏越来越像互联网行业,强调持续集成和持续测试。软件版本每周甚至每天更新一遍。如果每次更新都要全职测试工程师手动点开场景跑用例,人力根本不够。所以HiL实验室往往建了自动化测试流水线:开发提交新版本固件后,流水线自动把固件刷进被测控制器,自动执行冒烟测试和回归测试,再把测试报告发到工作群。我在项目里只需要每天早上看一眼报告,如果前一夜新增用例跑挂,就去翻失败日志。这种“无人驾驶”的测试模式对时间表紧张的项目特别实用。

这里面有个容易踩的坑:自动化测试用例写得太脆。比如某个用例强依赖一个毫秒级的时序窗,一天跑下来可能偶发失败,浪费大量时间查问题。最后发现是虚拟机时序抖动造成的假失败,不是真实缺陷。所以自动化用例设计时要把时序容差放宽,同时保留关键波形的检查点,避免“显示通过但实际上没测到位”和“显示失败但实际上是测试环境本身抖动”这两种情况同时出现。

6. 这些年做HiL测试踩过的坑,和实打实的经验总结

最后分享一些不一定写在教科书里、但只有真正摸过台架才会懂的经验。HiL系统本身也是一种软件硬件混合体,它会不会出错?当然会。而且它出错的时候,跟被测控制器出错长得很像,排查起来尤其费劲。

6.1 模型可信度是HiL的生死线,千万别拿“想当然的模型”当真

HiL测试结论的可信度,完全取决于环模型(被控对象模型)的精度。如果你的电池模型把内阻、容量、温升特性简化太多,那么电池控制器在台架上看到的“电量”和“温度”跟实车差别很大,测试结论就可能是错的。我见过一个项目,用了一个没有标定过的简化电机模型做HiL,结果整车控制器要求80%扭矩时,电机模型输出的转速响应偏快30%,导致控制器被误判为性能超标,白白浪费了两天查“故障”。所以每次模型更新都有配套的模型标定文档,对比实车测试数据,确保模型中各物理量的响应趋势和实测一致。这个环节不能省。

6.2 实时性、同步抖动和故障注入里全是“细节魔鬼”

HiL台架不是插上电就能跑。实时仿真机的CPU占用率一旦超过阈值,任务调度就可能抖动,一个时间步长没算完,下一个就来了,整个仿真实时性被破坏。碰到这种情况,你在示波器上看到的转速波形会出现毛刺,控制器还可能因此误报超速故障。排查时先看CPU负载和调度统计,别一上来就去怀疑控制器软件。

故障注入是最容易被玩坏的环节。手动注入一次开路故障很简单,但你要做的往往是“间歇性开路、任意相位开路、多个传感器同时失效”的组合。这些需要专门的故障注入板卡和软件脚本配合,如果靠手工拨码开关切换,不仅慢而且很容易接错线,轻则烧板卡,重则伤控制器。我的习惯是:把常用的故障注入序列写成可复用的测试库,比如“传感器供电开路”“CAN线短路到地”“轮速信号丢失”三件套,既能保证一致性,也能让不同项目的测试工程师快速上手。

6.3 样件版本管理混乱,会让所有测试结果失去意义

最后一个坑看起来简单,杀伤力却最大:样件版本管理。被测控制器的硬件版本、软件版本、标定数据版本,任何一个不匹配,测试结果都不能作为问题定位依据。我曾经在一个项目中查到某个偶发故障,折腾了两天定位到是DSP固件版本跟测试报告记录的不一致——采样时刻差了几微秒,导致故障诊断逻辑走了另一条分支。从此我们给每块控制器做二维码标识,测试开始时自动扫码记录硬件版本、PCB版本、Bootloader版本,并在最终报告中随附上去。这个做法听着繁琐,但它能救很多次“为什么结果跟上次不一样”的追查。

实事求是地说,HiL测试不是万能的。它测不了真实的EMC干扰、测不了装配公差累积、测不了线束老化之后的高阻故障。但凡是电信号层面、逻辑层面、软件策略层面的问题,它几乎是最高效的捕手。每一台你假期开出去的新能源车,在它还是一堆待集成硬件的时候,可能已经在某个不起眼的实验室机柜里跑过了上万公里的虚拟长途。那些你能感受到的平顺、惊艳和安全感,都经过了一遍又一遍台架上的“路考”。如果你准备踏入汽车测试这个方向,早点把HiL的逻辑和工程边界想明白,比急着学某一款商业工具重要得多。