虚拟仿真测试介绍: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 总结

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

相关推荐
ice___Cpu1 小时前
测试 - 1 ( 9000 字详解 )
测试
永恒,怎么可能2 天前
关于博客系统的自动化功能测试报告
自动化·测试
Chasing Aurora7 天前
2024最新vmware环境下安装win7并且使用QTP
自动化·软件工程·测试·软件生命周期·qtp
恩爸编程15 天前
Selenium WebDriver:自动化网页交互的利器
selenium·测试
大话性能17 天前
用python写一个自动化部署工具
测试
软件架构师笔记19 天前
深入浅出:Gin框架中的测试与Mock
go·mock·测试·gin
Pandaconda1 个月前
【新人系列】Python 入门(十四):文件操作
开发语言·笔记·后端·python·面试·操作系统·测试
网络研究院1 个月前
微软正在测试 Windows 11 对第三方密钥的支持
microsoft·微软·系统·测试·密钥·功能·第三方
安冬的码畜日常1 个月前
【玩转 Postman 接口测试与开发2_007】第六章:Postman 测试脚本的创建(下):预请求脚本及环境变量在多个请求自动运行中的应用
测试工具·postman·测试·runner·api测试·自动测试
北京_宏哥1 个月前
《最新出炉》系列入门篇-Python+Playwright自动化测试-50-滚动条操作
python·前端框架·测试