Simulink模型的MIL单元测试

这篇具有很好参考价值的文章主要介绍了Simulink模型的MIL单元测试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

01 --模型

首先要有一个供测试的模型,这里我以一个子系统和状态机的模型为例。

Simulink模型的MIL单元测试

 02 --创建测试框架(test harness)

在进行测试之前,首先要把模型内的测试框架(test harness)创立好,不然的话Simulink test只能对一个总的模型的输入输出编写测试用例。当你的模型太大的时候,这非常不友好,还是想一个个的子系统进行测试。

按如下方式进行创建测试框架:

右击需要创建的子系统

Simulink模型的MIL单元测试

 把名称和路径填好,最好就放在该模型的路径下

Simulink模型的MIL单元测试

 单独打开的测试框架模型如下

Simulink模型的MIL单元测试

利用相同的方式为状态机也创建好测试框架 

Simulink模型的MIL单元测试

 03 --使用simulink test 创建一个测试用例表格

通过生成的表格,该表格上面有输入输出信号,及采样时间。输入信号是你要给的测试用例,而输出信号则填写你预期的结果。这个预期的结果会和模型运行之后的实际结果进行比较,这样一来就完成了单元模型的测试。

按如下方式创立表格,当然你也可以自己导入已经做好了的表格。

Simulink模型的MIL单元测试

 Simulink模型的MIL单元测试

 Simulink模型的MIL单元测试

 Simulink模型的MIL单元测试

接下来下图中,第一个空白行选择你要测试的模型,第二个空白行如果选择None,则是测试整个模型的输出,如果选择测试框架,则是测试我们最开始创建好的测试框架模型,这里我们先选其中一个测试框架模型进行测试,确保将所有的最小子系统都能够测试完成。 

Simulink模型的MIL单元测试

 下图中勾选Comparison signals很重要,如果不选,将没有预期信号的输出,模型运行完成后,只能通过表格和模型生成的实际信号进行肉眼比对,非常不方便。

Simulink模型的MIL单元测试

 所生成的表格页数及其命名,默认即可

Simulink模型的MIL单元测试

 以下两行是为该模型或测试框架模型生成的两个文件,分别是.mldatx(该文件用于记录测试中的设置)和.xlsx,空白的地方是需要为他们寻找一个路径并命名文件。这里我们都放在模型的路径下。

Simulink模型的MIL单元测试

Simulink模型的MIL单元测试 

 打开生成的表格后,发现采集信号有1000个点,实在是太多了,不方便内容讲解,我们先把采集点取少一点,这个采集点跟求解器有很大关系,打开求解器后发现采样时间是0.01s,而仿真时间10s,刚好1000个点

Simulink模型的MIL单元测试

 Simulink模型的MIL单元测试

 我们把停止时间改为0.1s,只采集10个点,再重新配置生成一下表格,我们看到只有10个采集点了

04 --单元测试

Simulink模型的MIL单元测试

 把excel表格在外部用excel格式打开并按如下去编辑采样时间,输入输出信号值,即测试用例,由于信号太多,表格生成的信号及采样时间顺序有点乱,对照模型可以知道我们有5个输入信号,6个输出信号。

Simulink模型的MIL单元测试

 该子系统的内部模型如下

Simulink模型的MIL单元测试

封装模型如下,即U>U/Z是个脉冲信号,输入置1后输出只在一个采样时间置1后便回到0

Simulink模型的MIL单元测试

回到test manager内并点击run运行模型

Simulink模型的MIL单元测试

 文章来源地址https://www.toymoban.com/news/detail-464237.html

 Simulink模型的MIL单元测试

 从上图中

Test Browser(白色边框)内容是修改表格内的测试用例之后,可运行该模型进行仿真

而Results and Artifacts则是输入输出结果进行比较,其中蓝色线Baseline是你表格内填写的输出信号即预期信号,而Sim Output 则是模型仿真运行后的实际信号。

如果将excel表格中的ell_eol_ena输出信号全部改为1,那么该单元测试将会失败。原因是前面提到过的模型U>U/Z是个脉冲信号

 Simulink模型的MIL单元测试

 Simulink模型的MIL单元测试

 可以看到预期信号和实际信号不相符

测试框架状态机和总的模型配置及测试与上述子系统的测试相似,这里不再进行讲解。

05 --补充

①上述测试过程中,默认只有输出信号的仿真,按如下设置可显示输入信号

Simulink模型的MIL单元测试

 ②测试报告生成

Simulink模型的MIL单元测试

 

到了这里,关于Simulink模型的MIL单元测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MIL自动化单元测试

    之前学习MIL, 一直想对模型的进行自动化测试,最近正好做了,把心得写下来。 MIL测试就是模型在环测试,通过纯软件仿真的形式,验证模型能否满足功能需求,尽早发现问题。 MIL分为单元测试与集成测试 看图很好理解,集成测试闭环,单元测试开环。 确定被测模型的 输入

    2023年04月09日
    浏览(47)
  • 使用Simulink Test进行单元测试

    本文摘要:主要介绍如何利用Simulink Test工具箱,对模型进行单元测试。内容包括,如何创建Test Harness模型,如何自动生成excel格式的测试用例模板来创建测试用例,如何手动填写excel格式的测试用例模板来手动创建测试用例。 单元测试的目的 创建完模型后,我们需要验证模型

    2024年02月16日
    浏览(40)
  • Simulink模型自动化测试

    本文介绍如何使用Simulink Test Manager构建一个测试工程,实现对模型的自动测试。 Test Manager是Matlab Simulink建模功能的子模块,用于检测逻辑流程图的功能。其在生成Test项目时会根据所选模型生成两个文件,一为mldatx文件,用于记录测试中的设置;二为xls(xlsx)表格文档文件,

    2024年02月02日
    浏览(35)
  • 【发电厂】发电厂模型验证应用于电网事件在线性能监测【相量测量单元 (PMU) 数据对电网事件的在线性能监控】研究(Matlab&Simulink实现)

    💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码、数据、运行

    2024年02月09日
    浏览(45)
  • 单元测试之 - Review一个微服务的单元测试

    这里以github上一个microservice的demo代码为例,来看看如何为一个完整的服务编写单元测试。具体代码如下所示,我们重点查看一下catalog和customer,order中的单元测试有哪些。 首先来看catalog服务的单元测试,这个服务下面主要编写了CatalogWebIntegrationTest.java和RepositoryTest.java。下图是

    2024年02月14日
    浏览(41)
  • “一个测试用例是否为单元测试”的争议

    “一个测试用例是否为单元测试”的争议 Google看到测试领域中这种“百家争鸣”的现象后,创立了自己的命名方式,将测试分为 小型测试、中型测试和大型测试 ,而单元测试是小型或中型测试的具体实现形式。具体如下表: 小型测试 中型测试 大型测试 单元测试 单元测试

    2024年02月12日
    浏览(37)
  • 【单元测试】测还是不测,这是一个问题

    这篇文章也可以在我的博客中查看 相信大家从小就被千叮万嘱要做单元测试。然后秉承这一信念,成为了一个测试狂魔。凡有代码,测!覆盖!最终,一波操作猛如虎:467测试,0错误, 0自信 。 第二天。 你为了优化,颤抖着手更改了一行代码。果不其然发现牵连了 1e9 个测

    2024年02月03日
    浏览(47)
  • 请给 SpringBoot 写一个优雅的单元测试吧?

    当一个测试满足下面任意一点时,测试就不是单元测试 (by Michael Feathers in 2005): 与数据库交流 与网络交流 与文件系统交流 不能与其他单元测试在同一时间运行 不得不为运行它而作一些特别的事 如果一个测试做了上面的任何一条,那么它就是一个集成测试。 这是一个单元测

    2024年02月17日
    浏览(39)
  • linux环境编程(1): 实现一个单元测试框架-2

    在之前的文章中, 介绍了如何实现一个类似gtest的单元测试框架, 完整的项目代码可以参考这里: https://github.com/kfggww/cutest . 近期对cutest的实现做了一些修改, 包括: Test Suite的声明宏, 修改为TEST_SUITE 增加Test Suite的声明宏TEST_SUITE_WITH. 可传递Suite的init和cleanup函数, 在Suite中每个Cas

    2024年02月12日
    浏览(32)
  • 一个简单好用的C语言单元测试框架-Unity

    Unity是一个用于C语言的轻量级单元测试框架。它由Throw The Switch团队开发,旨在简化嵌入式系统的单元测试。单元测试中单元的含义,单元就是人为规定的最小的被测功能模块,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。在

    2024年01月21日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包