主要内容

一个引用模型的多个实例的模型覆盖

关于模型块的覆盖

模型区块不直接接收覆盖;的仿真模式模型正常的,或公益诉讼,万博1manbetx®覆盖™软件记录覆盖的模型引用模型块。如果为仿真模式模型Block就是别的什么正常的,或公益诉讼时,软件不会记录引用模型的覆盖率。

您的Sim万博1manbetxulink模型可以包含多个模型具有引用相同模型的相同模拟模式的块。当软件记录覆盖率时,引用模型的每个实例都可以使用不同的输入或参数来执行,可能会为引用模型产生额外的覆盖率数据。

万博1manbetx仿真软件覆盖软件用相同的模拟模式记录引用模型的所有实例的覆盖率,并在最终结果中结合该引用模型的覆盖率数据。

记录一个引用模型的多个实例的覆盖范围

要了解这是如何工作的,请对模型进行两次模拟。第一次,你记录一个人的覆盖率模型块在正常的模拟模式。第二次,你录两个模型正常的模拟模式。这两个模型块引用相同的模型。

被引用模型的第一个实例的记录覆盖率

记录一个Model块的覆盖范围。

  1. 打开顶层模型。对于本例,使用sldemo_mdlref_datamngt模型中的使用模型参考管理数据介绍的例子。

    openExample (“sldemo_mdlref_datamngt”

  2. 此模型包含三个model块,它们引用sldemo_mdlref_counter_datamngt模型的例子。每个Model块的角表示它们的值模拟模式参数:

    • Counter1 -模拟模式:正常的

    • Counter2 -模拟模式:加速器

    • Counter3 -模拟模式:加速器

  3. 配置您的模型以记录模拟期间的覆盖率:

    1. 在Simuli万博1manbetxnk编辑器中,选择模型设置建模选项卡。

    2. 报道在“配置参数”对话框的窗格中选择:

      • 启用覆盖率分析

      • 引用模型

    3. 点击选择模型.在“Select Models for Coverage Analysis”对话框中,您只能选择仿真模式为的引用模型正常的,或公益诉讼.在本例中,只引用了第一个Model块sldemo_mdlref_counter_datamngt可用于记录覆盖范围。

      模型引用选择对话框显示了由顶级模型引用的三个模型。其中一个引用模型有一个复选框可供选择,而其他两个则没有。

    4. 点击好吧,退出“Select Models for Coverage Analysis”对话框。

  4. 点击好吧保存覆盖率设置并退出“配置参数”对话框。

  5. 模拟你的模型。

    模拟完成后,HTML覆盖率报告将打开。在这个例子中,引用模型的覆盖率数据,sldemo_mdlref_counter_datamngt,表明该模型实现了69%的覆盖率。

  6. 单击报告中引用模型的超链接。

    引用模型的详细覆盖率报告将打开,引用模型将突出显示以显示覆盖率结果。

    在本例中,关于Range Check子系统的覆盖率,请注意以下内容:

    • 饱和计数块执行了100次。这个块有四个布尔决策。决策覆盖率为50%,因为四个决策中有两个从未被记录:

      • 这个决定输入>下限从来没有

      • 这个决定输入>=上限从来没有真正的

      饱和计数块的覆盖结果报告该块获得了50%的决策覆盖率(4个决策结果中有2个满足)。

    • DetectOverflow函数执行了50次。这个脚本有五个决定。的DetectOverflow脚本实现了60%的覆盖率,因为五个决策中有两个从未被记录:

      • 表达式count >=反参数。UpperLimit从来没有真正的

      • 表达式计数>反参数。LowerLimit从来没有

      MATLAB函数DetectOverflow的覆盖率结果报告该函数获得60%的决策覆盖率(5个决策结果中有3个满意)。

引用模型的第二个实例的记录覆盖范围

记录两个Model块的覆盖范围。将第二个Model块的模拟模式设置为正常的并对模型进行仿真。在这个例子中,Counter2块增加了从两个model块引用的模型的覆盖范围。

  1. 在顶层模型的S万博1manbetximulink Editor中,右键单击第二个model块并选择块参数(ModelReference)

    打开“功能块参数”对话框。

  2. 设置模拟模式参数正常的

  3. 点击好吧,保存修改并退出“功能块参数”对话框。

    Model块的角会发生变化,以指示该块的模拟模式为正常的,如下例所示。

  4. 为了确保软件记录了这个模型的两个实例的覆盖率:

    1. 在Simuli万博1manbetxnk编辑器中,选择模型设置建模选项卡。

    2. 报道窗格中,选择启用覆盖率分析

    3. 选择引用模型并点击选择模型

      为覆盖率分析选择模型对话框中,验证所引用模型的两个实例都被选中。在本例中,列表现在看起来如下所示。

      模型引用选择对话框显示了由顶级模型引用的三个模型。两个引用模型有一个复选框可供选择,而另一个则没有。

      如果您有一个引用模型的多个实例正常的模式下,您可以选择记录所有的覆盖范围或一个都不记录。

    4. 点击好吧关闭“选择覆盖率分析模型”对话框。

  5. 再次模拟您的模型。

  6. 模拟完成后,打开HTML覆盖率报告。

    在这个例子中,引用的模型达到了85%的覆盖率。Range Check子系统的覆盖数据需要注意以下几点:

    • 饱和计数块执行了179次。在Counter2区块的模拟中,饱和计数区块被额外执行了79次,总共执行了179次。

      这个决定输入>=上限真正的在这次模拟中有21次,而在第一次模拟中为0次。第四个决定输入>下限还是从来没有.在模拟过程中记录了四分之三的决策,因此该块达到了75%的覆盖率。

      饱和计数块的覆盖结果报告该块获得75%的决策覆盖率(4个决策结果中有3个满足)。

    • DetectOverflow函数执行了100次。对Counter2块的模拟执行DetectOverflow再运行50次。

      DetectOverflow函数有五个决定。表达式count >=反参数。UpperLimit真正的在这次模拟中有21次,而在第一次模拟中为0次。表达式计数>反参数。LowerLimit从来没有.5个决策中有4个是在模拟过程中被记录下来的,所以DetectOverflow功能覆盖率达到80%。

      DetectOverflow函数的覆盖结果报告该函数获得了80%的决策覆盖率(5个决策结果中有4个满足)。