• Test Squence测试过程中如何按照特定条件暂停或者停止仿真


    在Simulink模型做Test Squence测试时,工程师有时候希望测试用例能按照自己期望的条件来停止或暂停仿真,这个期望的特定条件,可以是时间达到,也可以是任何能达到的特定状态。

    具体实现方法如下:

    1、在Test Harness测试用例中使用 Assertion 模块暂停或者停止仿真

    当模块的输入信号为零时,您可以使用 Assertion 模块暂停仿真。在Assertion 模块中使用 set_param 命令暂停仿真。

    设置如下:

    1、在您的模型中添加一个 Assertion 模块。

    2、将 Assertion 模块连接到在所需的暂停时间变成零值的信号。

    3、在 Assertion 模块对话框中,清除 Stop simulation when assertion fails 复选框。输入以下两行命令作为 Simulation callback when assertion fails 的值:

    set_param(bdroot,‘SimulationCommand’,‘pause’),

    disp(sprintf(‘\nSimulation paused.’))

    例子1:当仿真时间到5s时,暂停仿真。本例只是以时间达到为条件,这个条件也可以是从 Test Sequence 块生成零(false)输出,并将其馈送到"Asserion"模块的输入端。

    在这里插入图片描述

    2、在Test Harness测试用例中使用 Stop Simulation模块停止仿真

    当输入为非零值时,Stop Simulation 模块将使仿真停止。

    例子2:当仿真时间到5s时,停止仿真。本例只是以时间达到为条件,这个条件也可以是从 Test Sequence 块生成非零输出(true),并将其馈送到" Stop Simulation"模块的输入端。

    在这里插入图片描述

    3、在Test Squence中使用coder.extrinsic 结合set_param暂停或停止仿真

    在您希望暂停仿真那一行,插入如下代码,就能达到目的。如果想停止仿真,将pause改为stop就行。

    例子3:

    在这里插入图片描述
    此处注意:由于bdroot是char数组,而Simulink Test仅支持数字或逻辑类型,所以必须先用coder.extrinsic将set_param声明为外部函数才行。

    coder.extrinsic说明(来自matlab help):

    coder.extrinsic(function) 将 function 声明为外部函数。代码生成器不为外部函数体生成代码,而是使用 MATLAB® 引擎来执行调用。在执行期间,仅当 MATLAB 引擎可用时,此功能才可用。

    4、在Test Squence中使用error停止仿真

    您可以在所需的步骤中使用错误函数。 这将停止模拟并输出自定义错误消息。

    例子4:

    在这里插入图片描述
    在simulink的Diagnostic Viewer中显示如下:
    在这里插入图片描述
    第4种不推荐使用。

    5、开发"暂停"或"停止"状态功能

    我现在用的matlab版本是2020b,寄希望于mathworks公司早日在Test Squence中实现"暂停"或"停止"状态功能。让我们一起期待!!!


    资源分享

    下面这份资源,对于想学习【软件测试】的朋友来说应该是最全面最完整的备战仓库,希望也能帮助到你!在这里插入图片描述

  • 相关阅读:
    Session认证机制与JWT认证机制
    华为hcip考试,询问您解答
    数学建模笔记-第九讲-分类模型-逻辑回归
    Docker:docker部署Nginx
    9. 内核、文件系统加载工具
    给一个input元素添加border-radius 但是加完之后 边框变得很粗怎么办
    十大热门骨传导蓝牙耳机排行榜,精选最佳的五款骨传导蓝牙耳机
    JSP 装饰公司网站myeclipse开发mysql数据库MVC模式java编程网页设计系统采用mvc框架
    图像语义分割 pytorch复现U2Net图像分割网络详解
    【附源码】计算机毕业设计SSM石家庄学院跳蚤市场
  • 原文地址:https://blog.csdn.net/weixin_54696666/article/details/128206871