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 、总结
四种测试方法各自的特点如下表所示:

refers:

https://www.auto-testing.net/news/show-107454.html

什么是MIL、SIL、PIL和HIL?相关推荐

  1. MIL/SIL/PIL/HIL定义梳理

    本文主体内容转自以下两篇文章,略有删改. http://www.ind4.net/html/news/newsDetail_7007.html http://www.ind4.net/html/new ...

  2. MIL/SIL/PIL/HIL/VIL

    MIL:Model in the loop 模型在环,对模型在模型的开发环境下(如SIMULINK)进行仿真,通过输入一系列的测试用例,验证模型是否满足设计的功能需求.验证控制算法模型是否准确地实现了 ...

  3. 自动驾驶测试:MIL、SIL、PIL、HIL

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

  4. 自动驾驶虚拟仿真测试介绍(7):MIL、SIL、PIL和HIL是个啥

    |作者版权所有,未经许可谢绝转载,转载请联系adsimtest@163.com. "本篇介绍下什么是MIL.SIL.PIL和HIL." 一.基于模型的设计 基于模型的设计方法(MB ...

  5. 浅谈MIL、SIL、PIL、HIL

    MBD开过过程中,经常会接触到MIL.SIL.PIL.HIL,下文将从定义着手,将他们区别开来. 定义: MIL:Model in loop, 验证控制算法模型是否满足功能需求 SIL: Softwa ...

  6. Matlab代码生成之SIL/PIL测试

    Matlab代码生成之SIL/PIL测试 一.SIL与PIL测试流程 二.Top Model的SIL/PIL仿真 三.基于模型的SIL(PIL)测试 四.基于SIL(PIL)控制模块测试 一.SIL与 ...

  7. CANoe软件使用(四)——CANoe与Simulink联合仿真

    CANoe软件使用(四)--CANoe与Simulink联合仿真 前言 CANoe和Simulink联合仿真 插件安装 simulink设置 CANoe设置 前言 在介绍CANoe和Simulink联 ...

  8. 软件定义汽车产业生态创新白皮书

    1 什么是软件定义汽车 1.1 驱动因素 汽车"新四化"的发展需要软件的加持 据大众汽车公开披露信息,未来平均每辆普通汽车软件代码量超 1 亿行.在电动化.智能化和网联化等的发展推 ...

  9. 如何完成符合ISO 26262要求的基于模型设计(MBD)的测试

    背景介绍 随着汽车行业的迅速发展,汽车的复杂程度不断增加,越来越多的汽车电子控制系统具有与安全相关的功能,因此对ECU的安全要求也越来越高.复杂的软件功能,将会带来大量的软件风险问题,如何保证软件的安 ...

最新文章

  1. “实模式--保护模式--实模式”转换过程
  2. 2.3 残差网络-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  3. iBatis.Net系列(一)-简介
  4. win10系统使用Anaconda安装opencv(python)
  5. 旋转散点图_聚类分析的结果如何用散点图展示出来?
  6. 2016,你最不应该错过的热门技术文章
  7. 爬虫之HTTP基础知识
  8. 搜狗浏览器广告拦截插件_拦截烦人的网页广告,增加上网体验
  9. 如何创建SQL Server日志传送
  10. linux关闭mysql日志记录_linux 下mysql 运行一段时间后自动关闭,日志无异常
  11. pandas小记:pandas索引和选择
  12. 7-12 方阵循环右移 (20 分)
  13. kali Linux 没有ip解决办法
  14. 深度学习-扩展数据集
  15. linux 安装pkg文件,Linux的pkg-config命令
  16. checkio Evenly Spaced Trees
  17. SAP 固定资产主数据
  18. 情人节,让我们一睹数学的浪漫
  19. 计算机打印驱动怎么安装,打印机驱动怎么安装,详细教您打印机驱动怎么安装...
  20. vanta.js的使用(前端网站动态背景)

热门文章

  1. 似是故人来——电影《山河故人》赏析
  2. lattice,flat
  3. win10中ensp路由器启动失败的解决办法
  4. Rigidbody.AddForce 添加力
  5. 基于新版本Gradle上传jitpack开源项目
  6. 音视频SDK封装截图
  7. scanf(),printf()以及fscanf(),fprintf()的返回值
  8. 语音直播源码的发展,语音聊天室APP源码
  9. 用MDA理论分析炉石的职业系统
  10. 导航栏、标签栏、工具栏、状态栏