资讯动态

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

发布时间:2026/10/25 1:02:01 来源:尧图企业网站定制
国庆长假跑了一趟长途自驾高速公路服务区里排队充电的时候我职业病犯了——作为长期做整车电子电气测试的人我看着前面那台车上跳动的续航数字、忽快忽慢的充电功率、偶尔介入的辅助驾驶脑子里想的不是“这车好不好开”而是“这些场景研发阶段到底为它做了多少测试”。答案比大多数人想象的多得多。今天我准备聊聊其中一个非常硬核、也非常容易被普通车主忽略的环节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的逻辑和工程边界想明白比急着学某一款商业工具重要得多。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑