虚拟仿真测试介绍:MIL、SIL、PIL和HIL是个啥

01 基于模型的设计

基于模型的设计方法(MBD,Model Based Design)采用图形化设计和自动化代码生成,不同于基于手工编程和纸上规范的传统编程方法,具有如下优点:

(1)在统一的开发测试平台上,允许从需求分析阶段就开始验证,并做到持续不断的验证与测试;

(2)产品的缺陷暴露在产品开发的初级阶段,开发者把主要精力放在算法和测试用例的研究上,嵌入式代码的生成和验证则留给计算机去自动完成;

(3)大大缩短了开发周期与降低开发成本。

基于模型的设计方法的不同阶段,分别采用MIL/SIL/PIL/HIL等测试方法,有效的对嵌入式代码进行测试和验证。其中:

MIL,Model in the Loop:模型在环测试;

SIL,Software in the Loop:软件在环测试;

PIL,Processor in the Loop:处理器在环测试;

HIL,Hardware in the Loop:硬件在环测试。

02 MIL、SIL、PIL和HIL介绍

假设我们现在要开发一款AEB控制器:

(1)MIL

假设我们已经在支持MBD的工具(如Simulink)中,使用图形化的方法开发出了AEB的算法,现在想要验证该算法是否满足要求,那么我们需要开发一个(或是有现成的其他工具)被控对象模型,在这里例子里是一个车辆模型。将控制算法和车辆模型连接起来,形成闭环,并变换输入和车辆模型状态,来对控制算法的功能进行测试。如下图所示:

(2)SIL

现在我们将Simulink中开发的算法自动生成为c代码。但是由于代码自动生成工具本身的原因或者代码生成工具没有正确设置或者其他未知原因,自动生成代码过程可能会引入一些错误。所以我们需要验证自动生成的代码与算法模型的一致性,这就是SIL测试。SIL测试使用与MIL相同的测试用例,查看对于相同的测试用例,查看其输出是否与MIL阶段一致。为了测试的高效性,有时甚至不接入被控对象模型,而是对算法模型和生成代码进行相同的输入,查看输出是否一致。如下图所示:

(3)PIL

将自动生成的代码编译为目标处理器需要的形式,并下载到目标处理运行,为了防止编译过程引入新的错误,此时需要进行PIL测试。PIL测试也是等效性测试,其方式与SIL类似,不同之处是编译好的算法运行在目标处理器上,SIL测试是在算法开发环境进行的(如windows)。

(4)HIL

在开发出完整的控制器后,有时被控对象(整车)还未完成开发;有时使用真实被控对象进行测试太危险或成本高:出于这些不同的原因,采用真实控制控制器和虚拟被控对象的HIL测试常常被使用。如下图所示:

03 总结

四种测试方法各自的特点如下表所示:

相关推荐
qq_白羊座2 天前
测试资产复用维护方法
测试·测试资产
HuskyYellow4 天前
第 1 篇:没有专职测试的小团队,为什么需要 ai-phone?
人工智能·开源·测试
康谋自动驾驶4 天前
智驾仿真测试团队必看:ADAS HiL测试引入3DGS的ROI测算与结论!
自动驾驶·测试·3dgs·hil测试·场景生成·智驾仿真
wangruofeng5 天前
Playwright 深度调研:为什么它成了浏览器自动化的新底座
前端·测试
祁白_6 天前
[HCTF 2018]WarmUp1
安全·渗透·测试·ctf·writeup
祁白_7 天前
无字母数字 Webshell 绕过
笔记·web安全·测试·ctf
AdCj37 天前
放弃第三方框架,用系统自带工具玩转 Shell 测试
shell·测试
技术落地手记8 天前
把AI塞进测试环节,我踩出了一条能用的路
人工智能·测试
大飞记Python9 天前
从“驱动地狱”到一行代码:WebDriverManager使用手记(附模板)
python·测试
甜甜圈圈子10 天前
JMeter开启TLSv1.3进行性能测试
测试