绑定Simulink需求与测试——模型逃不过验证

Simulink 需求关联与模型测试

模型的开发往往是根据需求进行,Simulink Requirements与Simulink Test集成了需求与测试功能,以验证在需求给定的要求下,模型的性能。

这是一个简单的PI控制器模型,且PI参数都已经调整完毕。我拥有测试输入数据(error)与测试输出数据(out),接下来的操作类似于对训练好的神经网络进行验证。

首先,要确定是对整个模型进行测试还是仅对一个模块(子系统)进行测试。接下来主要讲对一个模块(子系统)进行测试。对于整个模型的测试,可以不需要Harness,直接引入输入端,调用测试用例即可。

1 单个子系统的测试

这里我要测试我的控制器能否在测试输入下产生测试输出。

1.1 Test Harness的产生

首先要把子系统从模型中隔离出来,我们右击controller这个模块,然后点击Test Harness、 Create for 'controller’。弹出的界面,可以不进行更改,点击 ok 即可,得到以下测试模型。

接着,点击模型工具栏的Analysis、Test Manager,弹出测试管家窗口,点击左上角 New 、 Test File 来新建测试文件,这里我们取名为demo

在右侧窗口的SYSTEM UNDER TEST部分,我们选择我们要测试的模型为 demo.slx,进一步,点击下方的 TEST HARNESS 刷新后选择我们新建的Harness(由于我这边多次创建,我的harness已经编号为6)

1.2 载入测试数据

前面完毕后,定义测试输入与测试输出的数据集合。在Test Manager的demo树中,选中New Test Case 1,右侧窗口的右下角会有INPUTS栏与BASELINE栏(两栏默认展开),前者是输入数据文件的调用,后者是输出数据文件的调用,且看下图,注意数据文件格式

数据采用EXCEL表格制作,为节省,我将输入与输出放在了一个文件下,即两个sheet,每个sheet至少需要两列,默认第一列是采样时间列,这个必须有。此外,需要给每个sheet的第一行起标签,标签名需要对应于测试模块的输入输出端口名,时间列的标签可随意。展开INPUT栏,点击下方Add,选择数据集(test_data.xlsx),仅勾选输入测试数据(Error),然后点击 Map Inputs,若STATUS显示绿色,最后点击Add即可,若为红色叉叉,请检查数据文件是否满足格式要求。

之后,同样的操作,展开BASELINE CRITERIA,对测试输出进行数据导入操作。

1.3 需求的产生

需求一般以文字的形式出现,仿真结果却是数据的形式出现,Simulink如何测试模型是否满足需求?难道Simulink内部自带语义识别,可以将文字转化为数字?不是的,Simulink的需求有如下两种方式

l代码

l测试数据集

这里,我们仅就测试数据集进行讨论,我们可以通过文字描述需求,进而将需求与测试数据相关联,若模型的测试结果符合测试数据,则认为该需求能够被满足。

首先,我们要创建需求,即Simulink Requirements。回到我们的顶层模型(demo0.slx),右下角鼠标找到虚化的图标,可显示如下

点击中间的大图标,可以调出需求编辑器

点击绿色的新建按钮,创建新的需求集。

点击创建需求,编辑Summary(可修改为输出误差)

右键点击demo0slreqx可以设置该需求集,例如显示需求的部署情况与测试通过情况。左击controller模块,再右击第一条需求任意位置后,选择Link From 'controller’以及Link From Selected Test Case,使需求与模块、测试管家相关联,更新部署状态与验证状态后,如下图,蓝色满进度表示完全部署,黄色满进度表示完全未测试

1.4 测试与结果分析

前面都做完之后,回到测试管家,点击demo树下的New Test Case 1,然后点击工具栏的Run,见下图。发现一堆叉叉,说明模型未通过,这是理所当然的(测试数据的输出原先就设定了高度不匹配)。

我们回到simulink顶层模型,更新需求状态,得到

红色表示需求完全不满足。

回到测试管家,点击结果中的Baseline Criteria Results下的out,可视化结果如下。发现误差不小。

我们可以通过调整容许的误差,产生误差带,以使需求通过(根据实际而定),这里我选择了20的绝对误差,这时候,我们的需求就满足了

(0)

相关推荐

  • 基于MATLAB的传感器融合算法实现自动紧急制动(AEB)算法仿真

    本例展示了如何使用自动驾驶工具箱,通过传感器融合算法实现自动紧急制动(AEB)算法仿真开发. 在本例中,将: 1 整合一个基于Simulink和Stateflow的AEB控制器,一个传感器融合算法,被 ...

  • SIMULINK在虚拟车辆开发方面的应用

    Vehicle Dynamics Blockset™提供了完全组装的参考应用模型,可在3D环境中仿真驾驶动作.可以使用预建的场景来可视化道路.交通标志.树木.建筑物和车辆周围的其他物体.可以通过使用自 ...

  • Odoo测试用例

    准备工作: 模块目录下新建文件夹"tests"和"demo". tests存放python文件,不用导入:demo存放数据,需要导入__manifest__. ...

  • 如何简化Simulink的建模与模型重构

    模型重构 Simulink作为汽车和自动化领域中经典的模型工程必备工具,不管是专业的汽车控制器的开发还是自动化控制的专业应用编程,都会使用到Simulink进行图形化编程.代码生成等等.为了实现这些, ...

  • Simulink 中的SOA 模型.ppt

    /电子电气架构技术创新交流群 / 添加微信15021948198,申请会员下载ppt & 加入汽车电子电气架构技术创新交流群,与专业人士交流探讨行业发展动态 相关文章 SOA:使用汽车Linu ...

  • 从招聘需求看测试职业发展

    又要到"金三银四"换工作高峰期,最近的招聘需求不少,正好这两天看到一则年薪50w+的高端测试岗招聘需求,趁此机会芒果来跟大家一起根据这些招聘需求来讨论测试的职业规划. PS:为了各 ...

  • 生物3D打印龙头CELLINK花6800万美元收购MatTek,开发体外药物测试模型

    2021年3月22日,南极熊获悉,瑞典3D生物打印机制造商CELLINK 同意以6800万美元(4.4亿人民币)收购体外技术专家MatTek公司. 这笔交易预计将在下周完成,CELLINK将以股份形式 ...

  • 使用MATLAB和Simulink开发嵌入式软件之模型质量目标

    模型质量目标(Model Quality Objectives,以下简称 MQO)的标准是由一流的汽车厂商和 MathWorks 公司共同制定,目的是当在嵌入式软件开发中 OEM 和供应商进行 Sim ...

  • 疫情下,日本爆发两种截然不同情感需求:相亲和逃婚......

    鲁晓芙,财经作家,旅居欧洲,以荷比卢为基地,从事全欧洲投资并购业务. 中国经济已经国际化了,不了解欧洲,有时候,你就不了解中国. 欢迎关注:鲁晓芙看欧洲. 合作请联系微信:Xiaofu_Lu 疫情之下 ...

  • 零基础入门语义分割-Task5 模型训练与验证

    一个成熟合格的深度学习训练流程至少具备以下功能: 在训练集上进行训练,并在验证集上进行验证: 模型可以保存最优的权重,并读取权重: 记录下训练集和验证集的精度,便于调参. 5 模型训练与验证 为此本章 ...

  • 基于MATLAB&SIMULINK进行自动驾驶系统开发与验证

    MATLAB&SIMULINK 自动驾驶工具-用于设计.仿真和测试ADAS和自动驾驶系统: 自动驾驶工具提供了用于设计.仿真和测试ADAS和自动驾驶系统的算法和工具.可以设计和测试视觉和激光雷 ...

  • 低配也能轻松“吃鸡”!《绝地求生:大逃杀》CPU及内存需求测试

    在上期MC为大家奉上了<绝地求生:大逃杀>正式版显卡性能测试,我们简单回顾一下上期的测试结论: 1.<绝地求生:大逃杀>正式版的游戏平均帧率确有提升,其中高端显卡提升较明显,而 ...