0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于MIL、SIL、PIL和HIL之间的联系和异同分析

MATLAB 来源:djl 作者:董淑成 2019-09-17 11:51 次阅读

我们在使用MBD开发软件的过程中,经常会听到MIL、SIL、PIL和HIL等In-the-Loop测试。

这几种测试之间到底是什么关系?

分别做什么事情?

下面我来简单说说。

M模型在环测试(MIL)

关于MIL、SIL、PIL和HIL之间的联系和异同分析

图一:模型在环测试(MIL)示意图

如图一所示,如果在Simulink模型中,将控制算法模型和被控对象模型连起来形成闭环,就是我们经常说的MIL,顾名思义,在模型层面上实现闭环测试。这种测试通常发生在两种场景之下:

系统工程师为了验证算法,使用控制算法模型控制被控对象模型

软件工程师做模型级别的集成测试

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

M软件在环测试(SIL)

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

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

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

关于MIL、SIL、PIL和HIL之间的联系和异同分析

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

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

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

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

关于MIL、SIL、PIL和HIL之间的联系和异同分析

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

M处理器在环测试(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测试除了可以验证代码和模型是否一致之外,还可以获得算法在实际控制器上的最长运行时间,而这个最长时间的价值,做嵌入式实时软件开发的工程师都懂得。

M硬件在环测试(HIL)

最后再说一下HIL测试,很多人会把HIL和PIL混淆,也有人认为PIL是一种简化的HIL,理由是PIL测试的时候也需要引入硬件。这种理解是错误的。PIL和HIL测试的目的是不同的,PIL用于测试软件和模型是否一致,而HIL是用于测试控制器系统的,控制器系统包括了硬件、底层软件和应用层软件。HIL测试通常将一个被测控制器和工控机相连,工控机上运行着被控对象的模型,并且模拟出被控对象的一些电气特性。在HIL场景下,被测试的控制器并不知道和它相连的是一台工控机,它会认为自己连接的就是真实的实物对象。

MIL、SIL、PIL三种测试都是和MBD开发模式下特有的,而HIL不同,无论你是否使用MBD开发,都可能需要做HIL。不是所有的应用都需要,但是以下两种情况建议做HIL:

在控制器软硬件不成熟的条件下,运行出错可能会导致人身伤害或者重大财产损失的情况;

在开发过程中,被控对象开发滞后于控制器开发的情况。

另外,HIL测试通常比实物测试更节省成本,比如,做汽油机台架测试,需要有大量的汽油消耗,而通过HIL测试汽油机控制器,就没有汽油消耗。但这并不是说HIL可以替代实物测试,HIL测试之后,通常会跟着做实物测试。

如果记不住上面的大段文字

就请记住下面3点——

MIL用于测算法

SIL和PIL用于测代码(和模型的一致性)

HIL用于测控制器系统

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18275

    浏览量

    222146
  • 控制器
    +关注

    关注

    112

    文章

    15223

    浏览量

    171172
  • 编译器
    +关注

    关注

    1

    文章

    1577

    浏览量

    48614
收藏 人收藏

    评论

    相关推荐

    MXsteerLink:助力汽车转向测试 HiLSiL/MiL 之间平滑的切换

    汽车电子
    北汇信息POLELINK
    发布于 :2024年03月14日 11:30:24

    如何实现PIL和OpenCV之间图像数据的转换呢?

    PIL图像数据格式转换成OpenCV图像数据格式
    的头像 发表于 02-25 13:43 494次阅读

    什么是MIL认证电线?MIL认证电线的用途

    MIL 认证电线或 MIL 规格电线是符合为军事应用而开发的严格标准的任何布线解决方案。与任何军用规格一样,MIL 认证的电线专为在恶劣环境中实现高性能和高可靠性而设计,这也使其成为许多非军用恶劣环境应用的有吸引力的选择。
    的头像 发表于 12-04 10:25 317次阅读

    如何通过HIL测试系统做ADAS验证

    本文分享的是一个案例,借助NI开放式、数据驱动型、软件互连的生态系统以及PXI功能,采埃孚能够开发可扩展的ADAS HIL系统,在满足未来需求的同时与测试项目的步伐保持一致。 目前,采埃孚的ADAS HIL测试系统原型已复制至HIL
    的头像 发表于 11-27 09:52 303次阅读
    如何通过<b class='flag-5'>HIL</b>测试系统做ADAS验证

    使用VectorCAST MATLAB Toolbox获取代码覆盖度的基本步骤

    在使用MATLAB Simulink进行可视化仿真设计过程中,软件在环测试(SIL,Software-in-Loop)和处理器在环测试(PIL,Processor-in-Loop)是两种针对模型开发
    的头像 发表于 10-26 11:06 480次阅读
    使用VectorCAST MATLAB Toolbox获取代码覆盖度的基本步骤

    逻辑分析仪和网络分析仪的区别和联系

    逻辑分析仪和网络分析仪的区别和联系  逻辑分析仪与网络分析仪都是非常重要的电子测试仪器,在电路测试、调试、故障排除等方面提供了重要的支持。虽
    的头像 发表于 09-19 16:03 464次阅读

    如何安装Python图像处理PIL

    安装PIL库 要使用PIL库,我们首先需要安装它。有两种方法可以安装PIL库: 方法一:使用pip命令,在终端或命令行中输入以下代码: pip install Pillow 方法二:从官网下
    的头像 发表于 09-12 17:15 1335次阅读
    如何安装Python图像处理<b class='flag-5'>PIL</b>库

    关于阶段(Stage)和关口(Gate)之间的区别与联系

    根据我的知识,关于“阶段(Stage)”和“关口(Gate)”之间的区别与联系,我无法提供维基百科的定义。
    的头像 发表于 08-10 09:02 849次阅读

    经纬恒润ModelBase为智能驾驶仿真全面护航

    仿真、场景仿真、传感器仿真、数据处理等功能,可实现车辆动力域、底盘域、智驾域算法MIL/SIL/HIL/PIL/VIL仿真测试
    的头像 发表于 07-17 17:20 527次阅读
    经纬恒润ModelBase为智能驾驶仿真全面护航

    从TPT看汽车测试术语(上)

    作者|冰糖葡萄皮小编|吃不饱汽车世界在不断发展,“软件定义的汽车”等新术语证明了软件对当今汽车的重要性。无论是MiLSiLPiLHiL、还是单元测试、集成测试,汽车软件测试的世界
    的头像 发表于 06-13 10:45 512次阅读
    从TPT看汽车测试术语(上)

    如何设置PIL模拟的环境以及在哪里包含我的C代码项目?

    我看到 MBDT 用于生成基于 Simulink 模块的 C代码,以减少原型设计过程。就我而言,我想 在 Simulink 中的 PIL(处理器在环)仿真中测试我自己的 C 代码项目。我想
    发表于 06-08 08:47

    自动驾驶测试:MILSILPILHIL

    平台上,允许从需求分析阶段就开始验证,并做到持续不断的验证与测试; 产品的缺陷暴露在产品开发的初级阶段,开发者把主要精力放在算法和测试用例的研究上,嵌入式代码的生成和验证则留给计算机去自动完成; 大大缩短了开发周期与降低开发成本。
    发表于 06-07 10:31 0次下载
    自动驾驶测试:<b class='flag-5'>MIL</b>、<b class='flag-5'>SIL</b>、<b class='flag-5'>PIL</b>、<b class='flag-5'>HIL</b>

    为什么无法为“State_Machine”执行处理器在环 (PIL) 仿真?

    SILPIL 仿真、为目标创建连接配置和处理器在环 (PIL) 仿真。 存在 S32k 配置块并选择了 PIL 选项。 有一个解决方法,从模型中删除 s32k 配置块并将其放回
    发表于 05-22 07:44

    NXPs32k144 evb上的PIL仿真问题如何解决?

    确信所有的设置选项都是正确的(求解器,我配置硬件实现的设置,目标块是正确的......),但我不知道为什么我会遇到这个错误。 奇怪的是,如果我通过嵌入式编码器应用程序构建代码,我在刷新 evb 时不会遇到任何问题。 使用 harnest 和 SIL/PIL 测试应用程
    发表于 05-19 07:50

    TPT19新特性之在虚拟环境中执行PiL测试

    使用TPT 19,您可以获得一些PiL测试(处理器在循环测试)的新特性。在C平台上,您现在可以直接为您的PiL构建目标代码,并在目标板上或仿真环境中执行它。
    的头像 发表于 05-05 15:54 350次阅读
    TPT19新特性之在虚拟环境中执行<b class='flag-5'>PiL</b>测试