您现在的位置是:首页 > 正文

浅谈MIL、SIL、PIL、HIL

2024-02-01 05:49:07阅读 2

MBD开过过程中,经常会接触到MIL、SIL、PIL、HIL,下文将从定义着手,将他们区别开来。


定义:

MIL:Model in loop, 验证控制算法模型是否满足功能需求

SIL: Software in loop, 在PC上验证模型是否与代码功能一致

PIL:Processor in loop, 在目标处理器上验证模型是否与代码功能一致

HIL:Hardware in loop, 在ECU/EPP/整套系统上验证代码是否与需求功能一致


MIL:

MIL就是模型在环,通俗一点理解就是对模型在模型的开发环境下(如SIMULINK)进行仿真,通过输入一系列的测试用例,验证模型是否满足了设计的功能需求。MIL是所有测试中最关键的,因为MIL的test accept criterion必须源于功能需求,没有其它的东西可以参考。而SIL/PIL的测试用例往往都是借用MIL的测试用例,一旦在MIL这个阶段的使用了错误测试用例,这个Bug很有可能会最终流出去,即便所有的测试都通过了。


SIL:

SIL是一种等效性测试,测试的目的是验证代码与控制模型在所有功能上是否完全一致。其基本原则一般是使用与MIL完全相同的测试用例输入,将MIL的测试输出与SIL的测试输出进行对比,考察二者的偏差是否在可接受的范围之内。

因此这个测试的目的就决定了带不带被控对象模型并不是那么重要。SIL测试一般都在PC上完成,对代码的编译器一般都是LCC,SDK,MSC等这些。


PIL:

PIL测试与SIL测试的不同在于软件是使用的目标MCU的编译器(Tasking)进行编译链接,也需要运行在目标板上,其基本工作原理如下。

其测试通过准则是,使用与SIL相同的测试用例输入进行测试时,比较PIL和SIL的输出,如果两者之差在容许范围之内,则测试通过。


HIL:

通过实时处理器运行仿真模型来模拟受控对象的运行状态,通过I/O接口与被测的ECU连接,对被测ECU进行全方面的、系统的测试。从安全性、可行性和合理的成本上考虑,硬件在环测试已经成为ECU开发流程中非常重要的一环,减少了实车路试的次数,缩短开发时间和降低成本的同时提高ECU的软件质量,降低汽车厂的风险。

网站文章

  • Python(三)微信公众号开发

    Python(三)微信公众号开发

    ps:暂未完善,先做记录。本文核心讲外网穿透及微信Token验证 阅读 基本开发流程 申请个人公众号-订阅号 微信公众平台https://mp.weixin.qq.com 自定义菜单 微信公众平台当然...

    2024-02-01 05:49:01
  • 数据结构 | 交换排序

    数据结构 | 交换排序

    交换排序(包括冒泡排序、快速排序)的C语言实现

    2024-02-01 05:48:32
  • stanford corenlp命名实体识别(基于python)

    stanford corenlp命名实体识别(基于python)

    很多童鞋在用stanford-core-nlp进行命名实体识别时遇到了各种问题,在此本人根据已有经验讲述如何成功利用stanford工具进行命名实体识别处理。 1. 环境安装 需要用到的有java_j...

    2024-02-01 05:48:27
  • Count and Say --leetcode

    Count and Say --leetcode题目如下The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 111221, ...1 is read off as "one 1" or 11.11 is rea

    2024-02-01 05:48:19
  • paddle-serving docker部署,dockerfile一键打镜像,一键启动容器

    一、服务端dockfile编写 节省镜像空间,此处在python的镜像基础上构建,最终镜像2.38G FROM python:3.7.4 COPY . /deploy WORKDIR /deploy ...

    2024-02-01 05:48:13
  • 2D空间求一点是否在多边形内

    2D空间求一点是否在多边形内

    转自:https://www.cnblogs.com/hont/p/6105997.html大致流程:1.随便选取多边形上任意一条边,以比较点和边的中心点做一条射线(这里用的伪射线)。2.用这条射线与...

    2024-02-01 05:47:43
  • docker化笔记二、镜像应用服务日志输出到宿主机器

    本章以日志为例进行说明,仅作抛砖引玉,实际项目不应该以这种方式去搜集日志(常用Syslog日志驱动类型,再用日志分析工具,比如ELK,进行获取搜集)。如果容器重新启动,使用docker logs看到的...

    2024-02-01 05:47:38
  • Java 限制前端重复请求

    Java 限制前端重复请求

    2024-02-01 05:47:33
  • Java:常用类解析5(正则表达式)

    正则表达式不仅仅是Java的技术,在任何一门编程语言中都会存在,是一种通用的IT技术。除了有一些由于语言不同而导致的一些语法不同,其理念和用法在任何编程语言中基本一致。正则表达式,主要用于匹配(查找 ...

    2024-02-01 05:47:00
  • 现在.net的web框架有哪些?

    https://www.zhihu.com/question/366937369

    2024-02-01 05:46:53