Introduction
硬件在环(Hardware-in-the-Loop ,HIL )是一种用于复杂设备控制器的开发与测试技术。通过
hil测试,机器或系统的物理部分被仿真器所代替,并被广泛运用于汽车控制器开发过程中。
在ECU开发过程中,系统软件和机械硬件结构通常是并行设计的。只有在集成后才能开展测试工作。如果在集成后发现了一些严重风险的安全Bug,就有可能造成人身伤害、损坏设备和项目延误。为了减少这些bug的发生,HIL测试得到了广泛的关注。
Benefit
通过HIL,我们可以测试一些可能会对驾驶员或者被控对象造成损伤的极端工况。这就是为什么HIL测试可以大大提高机器的安全运行。
Increase Safety
一些对人员安全最为重要的系统功能如ESP漂移,飞机的空中姿态调整等是非常必要在HIL上进行测试的。因为直接在被控对象上进行这些测试是有潜在威胁的。使用HIL测试,可以安全地在所有阶段下进行这些测试。
HIL通常还允许一些破坏或损坏真实机器的测试。超出正常操作范围的传感器数值可以测试在极端工况下,系统是否依然可以安全操作机器,这使得HIL成为提高机器和系统安全性的有效手段。
Enhance Quality
如果将HIL仿真嵌入到基于模型的设计过程中,它就可以在设计的早期阶段使用。控制工程师可以使用它来持续测试他们的控制系统,这些测试可以帮助发现系统缺陷和软件Bug。
通过测试自动化,HIL仿真可以深入地嵌入到设计过程中,使用脚本来自动触发回归测试。该过程可以其包含在软件编译中以实现完全自动化。每次触发软件变更便会使用HIL对其进行自动测试。这些测试可以验证软件变更后是否仍然满足规范要求。如此一来,软件工程师就可以对所做的更改做出立即响应,并在需要时进行错误纠正。许多研究项目已经证实,及早发现问题和错误并采取相应的行动将显著提高机器和系统的质量。
Save time and money
测试一个真正的被控对象可能非常昂贵(比如国防军工,航天航空)。实际运行它们一次就需要巨大的人力物力,有时候还可能需要很高的安全防护措施,此时HIL的优势就凸显无疑。
除此之外,与汽车行业相类似的航空航天和国防军工相关的开发计划,往往时间计划尤为紧张,是不允许嵌入式系统测试等待原型可用后再进行测试。例如当新的汽车发动机原型可用于系统测试时,已经使用HIL仿真完成了95%的发动机控制器测试。
Technology
HIL测试系统由三个主要部分组成:实时处理器、I/O接口和操作界面,其中实时处理器是HIL测试系统的核心。
实时处理器主要提供车辆被控对象的模拟,主要用于运行仿真模型以及信号处理。在实时硬件上需要运行实时操作系统,以保证模拟的实时性;被控对象的行为模型运行在实时操作系统之上;另外根据各执行机构、传感器的特性,需要建立接口模型以达到逼真的仿真效果。
操作界面与实时处理器通信,提供测试命令和可视化。在大多数情况下,这个部件也提供配置管理、测试自动化、分析和报告任务。
■ 上位机通过高速局域网、工业串口、总线等接口与实时仿真机柜进行连接,用于监控实时仿真机柜。
■ 上位机通过CAN总线、K线等接口与ECU进行连接,用于诊断、标定等操作。
I/O接口是与被测部件交互的模拟,数字和总线信号。您可以用它们来产生激励信号,获取用于记录和分析的数据,并提供被测的电子控制单元 (ECU)与模型仿真的虚拟环境之间的传感器/执行器交互。
■ I/O板卡:用于信号输入和输出。包括AD卡、DA卡、DIO卡、定时计数卡等板卡。
■ 信号调理&仿真负载板卡:通过板卡模拟生成的传感器信号需要经过调理后才能供给ECU;同样,ECU的输出信号必须经过调理后,才能供给I/O板卡采集,否则可能会损坏被测ECU。仿真负载板卡实现对ECU外部执行器负载的模拟,如电机、车灯、喷油器等。
■ 故障注入板卡:用于产生各种电气故障 (例如断路、与电源或接地短路等),以便对ECU的诊断功能进行测试。
HIL测试按照测试的类型,可以划分为以下几种:
■ 故障诊断测试:通过手工、自动的故障故障注入(包括电气故障、信号不合理等),实现对诊断功能(比如OBD II)的测试,诊断功能包括像失火诊断,催化剂诊断,氧传感器诊断,电子节气门诊断等。
■ 总线功能测试:通过信号激励等手段,让ECU运转总线功能,并利用总线节点仿真、总线监测等手段测试其总线功能。
■ 控制功能测试:通过驾驶行为输入,并利用ECU被控对象(比如发动机、变速箱等)的仿真,进行ECU完整控制策略的验证。
■ 性能测试:通过测试案例的自动化运行,进行ECU各种功能的稳定性、可靠性、实时性等性能测试。
参考资料:
(1)HIL测试系统架构分析以及如何去实现,电子发烧友
(2)HIL仿真测试系统叙述,smartsar