MBD开发模式下的XIL仿真测试

“想了解MBD模式下的MIL、SIL、PIL、HIL吗?”——虹科

汽车从一个发动机加上几个轮子的简单形态发展到如今机械与电子高度融合的复杂整体,经历了巨变。汽车电子控制单元的数量和复杂度也呈几何级数增加,给软硬件测试工程师带来了巨大的挑战。以往常用的测试方法,汽车ECU研发初期利用工具对其进行理论验证和单一的测试便在整车仿真或实际环境中测试,通过这种方式难以发现问题,到最后的整车测试发现问题需要对该模块进行重新设计、重新编写程序、重新测试等,耗费了大量的人力和时间成本。我们更加希望在研发初期对硬件和软件进行高覆盖率的测试,并能够模拟其汽车在不同工况下的各项功能测试以及逻辑验证,以便于在研发初期就能发现问题,降低开发成本,减短开发时间周期。

目前,汽车行业应用得比较广泛的软件开发方式为MBD(Model base design),也就是以模型为基础的软件开发,传统的嵌入式软件开发模式是无法与之比拟的。感兴趣的读者可以查找相关资料,深入学习,在这里笔者就不展开了。今天主要想和大家探讨的是在MBD中我们经常会谈到的MIL、SIL、PIL和HIL,XIL是各种测试环境的专用术语,可能很多人非常熟悉它们之间的区别与联系,当然也会有部分读者容易混淆这些概念,我就是其中之一,今天梳理一下分享给大家,希望能为你们带来一些帮助。

MIL(模型在环测试)

模型在环测试,顾名思义就是指基于模型级别所进行的闭环测试,用得比较多的是在Matlab的Simulink平台下,将被控对象与算法模型连接在一起形成一个闭环,对被测系统预期行为动作的测试,测试套件是由模型生成,而不是由源代码生成,因此,基于模型的测试实质是黑盒测试。在这里举个例子,在汽车上的车窗升降电机,工程师可以给创建的模型设定输入,将实际输出与期望输出进行对比,如果两者结果一致,实现功能需求,则通过测试。可以说MIL是整个测试过程中较为关键的一环,其必须要基于功能需求开展,如果在这个阶段中采用了错误的测试用例,也就是没有对应功能需求,即使其他的所有测试均通过了,这也将成为一个致命的问题。

SIL (软件在环测试)

我们可以将软件在环测试看作是从模型在环测试原有的基础上引申出来的,实际上就是将控制器模型生成C代码,这个过程在Simulink平台上很容易就可以实现,之后对比验证生成的C代码和模型二者的功能一致性(等效性测试),也就是back2back测试(背靠背测试),由于在这个测试中,要用到C代码的运行结果来进行比较,所以要保证模型生成的C代码是可以编译通过的。模型生成的代码会用到已有代码的一些头文件、定义等内容,我们需要把头文件加载到生成的C代码中。那么,是否一定需要创建被控对象模型,我们才能进行软件在环测试?并不是,因为我们的目的是为了验证生成的C代码和模型功能的一致性,那么我们也可以通过手工编写代码,比较手写代码和模型在相同输入下的输出结果是否一致,就能够达到软件在环测试的目的。

PIL(处理器在环测试)

上边提到的SIL测试的目的是为了防止模型生成的C代码出错,最后的输出结果与模型输出结果不一致,除了生成C代码这个过程中可能会出错,在编译的过程中,同样也会出现错误。我们通常情况下,是在Windows的平台下建立模型生成C代码并进行编译,使用的也是Windows平台下的编译器,但是将生成的C代码运行到目标处理器上,由于编译环境不一样,导致编译出来的结果也不是完全一致,因此可能会引入新的问题。结合模型测试、SIL测试、PIL测试的结果,可以帮助我们找到可能出现的缺陷和错误。除此之外,通过PIL测试我们可以获得算法在处理器上运行的总时间,这能够为实时控制开发带来便利。

HIL(硬件在环测试)

HIL是用于测试控制器系统的,其中包括硬件、底层软件和应用层软件。通常情况下,HIL测试将被控对象的模型生成C代码并生成可执行文件导入到工控机上运行,工控机连接到控制器,在该状态下,对于被测试的控制器来说,它并不知道与其连接的是一台工控机,而是认为当下处于真实环境,相当于是在实际控制系统中工作。无论是不是MBD开发模式,一般在以下情形都有必要进行HIL测试:

(1)被控对象昂贵,且控制软硬件技术不成熟,运行不当会危机人身安全或者造成重大财产损失
(2)为了降低开发成本或是控制器开发出来了但是被控对象还未开发出来

HIL测试提供一个平台,让我们能够将复杂的算法导入到动态的控制系统,控制系统的MCU通过各种接口连接到HIL平台,实现被控对象实时仿真运行。

如果记不住上面的一大段文字,可以通过下面这个表格,对比一下MIL、SIL、PIL、HIL它们之间的联系与特点:

MBD开发模式下的XIL仿真测试相关推荐

  1. 4.4 开发模式下的测试:简化我们对链码的测试过程

    4.4 开发模式下的测试:简化我们对链码的测试过程 原创kevin-hf(ID不是微信) 最后发布于2019-02-26 16:48:19 阅读数 180  收藏 展开 目标 熟练掌握链码的 dev ...

  2. 敏捷开发模式下如何更好的进行测试

    最近CTO组建了一个敏捷开发团队,团队人员包括  PM.设计.开发.测试角色,主要由PM来主导团队走向,因为以前并没有参加过敏捷开发的经验,对敏捷开发做了简单理解后,参考了前人的一些意见,总结出在 敏 ...

  3. 前后端分离开发模式下后端质量的保证 —— 单元测试

    概述 在今天, 前后端分离已经是首选的一个开发模式.这对于后端团队来说其实是一个好消息,减轻任务并且更专注.在测试方面,就更加依赖于单元测试对于API以及后端业务逻辑的较验.当然单元测试并非在前后端分 ...

  4. ultraedit 运行的是试用模式_单元测试 —— 前后端分离开发模式下后端质量的保证...

    概述 在今天, 前后端分离已经是首选的一个开发模式.这对于后端团队来说其实是一个好消息,减轻任务并且更专注.在测试方面,就更加依赖于单元测试对于API以及后端业务逻辑的较验.当然单元测试并非在前后端分 ...

  5. Nodejs搭建前后端分离开发模式下的微信网页项目

    原文链接:<Nodejs搭建前后端分离开发模式下的微信网页项目>- 陈帅华 本文涉及对前后端分离及微信网页项目中的前端如何在本地环境中开发与调试的思考. 主要问题 1.如何配置微信公众平台 ...

  6. Fabric-samples开发模式下chaincode操作流程及错误锦集

    首先简单介绍一下此次流程步骤,在go build阶段出现问题,然后说明一下如何解决的问题. 出现的问题的提示代码为: 问题1.go: github.com/hyperledger/fabric-cha ...

  7. SAP MM 初阶之供应商寄售采购模式下ERS功能的测试

    SAP MM 初阶之供应商寄售采购模式下ERS功能的测试 1, BP 191 Vendor 100065, 激活了ERS功能. 2, 寄售类型采购信息记录. Tax code :N1. 3, 寄售采购 ...

  8. Vue - 去除控制台“你正在开发模式下运行Vue”的警告

    目录 1. 警告内容 2. 解决方案 1. 警告内容 调试 Vue 代码时,Console 控制台老是有警告,警告内容 文字信息如下: You are running Vue in developme ...

  9. 如何在微信公众帐号开发模式下,通过程序代码向用户发送符号表情。

    本文重点介绍如何在微信公众帐号开发模式下,通过程序代码向用户发送符号表情.部分代码来自:FreeEIM 至于如何识别用户发送的是符号表情,就不在此讲解了,留给大家一点学习思考的空间.我只是给大家一个提 ...

最新文章

  1. 什么是Python蛋?
  2. word域变成正常文本_word文档中打钩的8种方法!(全网最全)
  3. 【剑指offer】面试题60:n个骰子的点数(Java)
  4. c语言dll创建线程,教大家写一个远程线程的DLL注入,其实还是蛮简单的……………………...
  5. MongoDB基本用法
  6. 气体管道管径及流量对照表_建筑用管道产品常见技术质量问答汇总
  7. 【第7篇】Python爬虫实战-收集gitee中的issue问题
  8. 第九周项目3-输出星号图
  9. 进程控制(PCB,进程ID,进程状态,fork函数,文件共享)
  10. AIX添加ASM的裸盘
  11. 航空运输行业:优质民营航司的黄金期才刚刚开始-20210106.PDF
  12. c语言程序ppt课件,c语言ppt课件
  13. 3D MAX 中的 vary 参数建议。测试图以及中等质量和高等质量参数设置.
  14. 360路由器的虚拟服务器设置,360路由器手机设置方法 | 192路由网
  15. TweenMax之一些方法
  16. 一类能产生无限种可能的随机算法--无限随机算法
  17. android 检测屏幕方向,在android中检测屏幕方向
  18. Eclipse插件集合
  19. Android Webrtc使用Wifi Direct无法建立P2P连接
  20. 实际工作开发中C语言工程的目录结构分析

热门文章

  1. 用于广告机,闸机设备,自助售货机,工控主机等的rk3288开发板
  2. vue结合饿了么_vue高仿饿了么APP(一)
  3. 终止模式之两阶段终止模式
  4. 关于中颖SH79F3283的时钟问题
  5. ScrollView的上下联动事件 触摸事件传递机制
  6. 全网最详细中英文ChatGPT接口文档(六)30分钟快速入门ChatGPT——使用策略和API数据使用策略
  7. win11系统点开图片几秒后就显示“此处没有任何要显示的内容
  8. Linux文件编程_相关函数
  9. 会计中级职称计算机考试报名时间2015年,2021年中级会计职称考试时间是几天?...
  10. 为什么建议胖友使用 Linux 开发?爽(外加七个感叹号)