主要内容

Stateflow 图的模型覆盖率显示

Simulink® Coverage™ 直接在 Stateflow® 图中显示各个模块的模型覆盖率结果。当您在启用覆盖率的情况下对模型进行仿真时,模型会显示:

  • 在仿真过程中接收模型覆盖率的 Stateflow 元素的突出显示

  • 每个对象的模型覆盖率摘要信息的上下文相关显示

有关启用覆盖率突出显示的详细信息,请参阅启用覆盖率突出显示

使用模型着色显示模型覆盖率

当您启用覆盖率并使用运行按钮对模型进行仿真时,模型会突出显示接收覆盖率的各个 Stateflow 元素。如果您使用 sim 来运行模型,则默认情况下,模型不会显示覆盖率结果。在这种情况下,您可以使用 cvmodelview 查看模型突出显示。

  1. 要访问模型,请在 MATLAB® 命令行窗口中输入 openExample("sf_car")

  2. 建模选项卡中,点击模型设置

  3. 在“配置参数”对话框的覆盖率窗格中,选择启用覆盖率分析

  4. 覆盖率度量部分中,将结构覆盖率等级设置为修正条件决策覆盖率(MCDC)

  5. 点击确定

  6. 首先,通过点击运行(覆盖率) 按钮对模型进行仿真。

  7. 打开 shift_logic Stateflow 图。

    仿真结束后,模型会突出显示那些已进行覆盖率分析的图对象。

    各种颜色用于表示覆盖率分析的完整性:

    • 绿色边框表示全覆盖

    • 红色边框表示覆盖率不完整或缺失

    • 浅灰色表示未进行覆盖率分析的元素

包含可执行代码和条件转移的状态会根据哪些结果得到满足来显示细粒度的文本着色。绿色表示已满足的结果,红色表示未满足的结果。例如,以下图为例:

The chart is named State 1. The entry condition is [if (a > 0) && (b > 0)]. The condition b>0 is colored red and the rest of the expression is colored green. The state itself is outlined red.

在此示例中,if 语句既被计算为 true,也被计算为 false,因此具有完整的决策覆盖率。在该语句中,条件 a > 0 被计算为 true 和 false,因此具有完整的条件覆盖率。然而,条件 b > 0 只被计算为 true 而未被计算为 false,因此只有部分条件覆盖率。

细粒度的文本着色会出现在使用 C 或 MATLAB 作为动作语言的状态图和转移中。

另请参阅

主题