首页 > 其他分享 >车载测试系列:MIL、SIL、PIL、HIL测试到底做什么?

车载测试系列:MIL、SIL、PIL、HIL测试到底做什么?

时间:2022-12-02 12:13:37浏览次数:74  
标签:PIL MIL 模型 测试 HIL SIL

测试工程师需要搞懂的测试类型:

  • MIL用于测算法
  • SIL和PIL用于测代码(和模型的一致性)
  • HIL用于测控制器系统

MIL:模型在环测试

 

如图一所示,在Simulink模型中,将控制算法模型和被控对象模型连起来形成闭环,即在模型层面上实现闭环测试。这种测试通常发生在两种场景下:

  1. 验证算法,使用控制算法模型控制被控对象模型
  2. 做模型级别的集成测试

MIL测试的前提是要有被控对象模型,搭建被控对象模型或者采购现成的被控对象模型。

SIL:软件在环测试

图二:软件在环测试(SIL)示意图

SIL测试,这里的Software是指控制策略模型转换成的C代码编译之后的软件。

对于图一,如果把控制策略模型替换成由控制策略模型转换得到的C代码编译后的DLL文件,如果使用了和MIL测试时相同的测试用例,如果测试用例足够多,得到了和MIL测试相同的结果,那么是不是可以认为生成的C代码就和用于代码生成的模型是一致的呢?

SIL测试的目的就是为了验证自动生成的代码和用于代码生成的模型中行为上是一致的。

也就是说SIL测试是一种等效性测试,既然是等效性测试,就没必要搭建图一那样的闭环模型,而可以用图二实现等效性测试。

其实Simulink提供了SIL仿真模式,可以用更方便的方式实现SIL测试,使用:

set_param(model_name,’SimulationMode’,’Software-in-the-loop(SIL)’)

设置算法模型的仿真模式为SIL,然后对比Normal模式下的输出结果即可,并且这样做有助于过程自动化。如图三所示:

图三:选择SIL仿真模式测试

PIL:处理器在环测试

SIL测试是验证代码和模型的一致性,代码运行在Windows平台上,某种程度上说,这并不能保证代码到目标处理器上的运行结果也能够和模型保持一致。所以,就有了PIL测试。

PIL和SIL的不同之处在于,SIL将生成的代码通过DLL的方式运行在Windows平台上,而PIL,是将生成的代码运行到目标处理器上,两种模式使用的编译器也是不同的,SIL使用的就是Windows下的编译器,比如Visual Studio C++或者LCC编译器,而PIL使用的是目标编译器。

等效性测试的目的是为了防止代码生成过程出错。同样,编译过程也可能出错,编译器也可能有bug,综合模型测试、SIL测试和PIL测试的结果,帮助发现编译器出错可能引入的bug。

SIL和PIL是等效性测试,测试的目的是为了验证自动生成的代码和模型具有相同的行为,对于SIL和PIL的测试用例就没有功能意义上的要求,只要要求代码和模型输入的测试数据相同即可,当然希望数据量足够大,能够覆盖各种路径以及各种信号范围。

另外,因为PIL测试中代码运行在实际的控制器上,所以PIL测试除了可以验证代码和模型是否一致之外,还可以获得算法在实际控制器上的最长运行时间。

HIL:硬件在环测试

有人会把HIL和PIL混淆,也有人认为PIL是一种简化的HIL,理由是PIL测试的时候也需要引入硬件。这种理解是错误的。PIL和HIL测试的目的是不同的,PIL用于测试软件和模型是否一致,而HIL是用于测试控制器系统的,控制器系统包括了硬件、底层软件和应用层软件。

HIL测试通常将一个被测控制器和工控机相连,工控机上运行着被控对象的模型,并且模拟出被控对象的一些电气特性。在HIL场景下,被测试的控制器并不知道和它相连的是一台工控机,它会认为自己连接的就是真实的实物对象。

HIL测试通常比实物测试更节省成本,比如,做汽油机台架测试,需要有大量的汽油消耗,而通过HIL测试汽油机控制器,就没有汽油消耗。HIL测试之后,通常会跟着做实车测试。

标签:PIL,MIL,模型,测试,HIL,SIL
From: https://www.cnblogs.com/laoluoits/p/16944050.html

相关文章

  • 车载测试系列:基于CANoe CAPL代码的诊断测试
    Canoe有独立的编译开发软件CAPL,CAPL是一个编译器,在CAPL里面编写代码,编译后可以在Canoe中运行。测试工程师可以在CAPL编写自动化测试脚本,在Canoe中自动发送Can报文,以及判断......
  • 车载测试系列:SOA接口测试(二)
    SOA服务测试内容及环境搭建SOME/IP协议底层通过以太网实现,基于service的控制器之间对服务的调用流程,以及基于service的控制器和基于信号(signal)的控制器之间对信息的传输......
  • 车载测试系列:SOA接口测试(一)
    SOA是什么?SOA(ServiceOrientedArchitecture)是一种面向服务的架构,最早应用于IT行业,SOA把功能定义成为服务,服务带有明确的可调用接口,并可以通过网络调用。在汽车领域,对于......
  • 车载测试系列:CANoe中如何创建dbc文件
    用CANoe读取信号时,需要加载DBC文件。信号是报文的主要组成部分,通过DBC数据库,可以在测试过程中进行信号解析。CANoe的Tools菜单下打开CANdb++: 一、CANdb++左侧网络拓......
  • 几个不错的领导力测试
              ......
  • 车载测试系列:车载测试流程
    车载测试流程是保证软件质量的重要支撑,优秀的团队都必须拥有规范的流程体系支撑,它能够约束测试人员的测试行为,约束测试环境的测试精度,提升测试的覆盖度,保证团队成员工作的......
  • 车载测试系列:入行车载测试分享
    车载测试前景如何?软件定义汽车时代的发展趋势,随着控制器自主开发力度的加强,作为V流程中必备环节,车载测试工程师岗位需求会越来越多;控制器集成化,功能集成程度越来越高,对......
  • 车载测试系列:UDS诊断服务(一)
    UDS诊断服务介绍UDS(UnifiedDiagnosticServices,统一诊断服务)诊断协议诊断测试仪和ECU之间一种通信协议,在ISO14229中规定。UDS被用在几乎所有由OEM一级供应商所制造的新EC......
  • 车载测试系列:CAN故障诊断测试
    几乎所有的ECU,都要做CAN方面的测试,BCM、EMS、VCU、BSG、BMS、TCU、EPS、ADAS等,只要带CAN端口,都需要做这样的测试,几乎所有OEM都要求供应商CAN测试。诊断通信定义对于绝大......
  • 车载测试系列:UDS诊断服务(三)
    ECU在进行诊断系统设计时,并不要求ECU要开发所有的诊断服务,只需根据各公司ECU的系统功能需求选择性开发即可。UDS诊断服务是根据特有的诊断CAN报文实现的。以下根据实际项目......