Main Content

本页采用了机器翻译。点击此处可查看英文原文。

Stateflow 图的模型覆盖率显示

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

  • 突出显示在仿真期间接收模型覆盖率的 Stateflow 元素

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

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

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

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

  1. 将图作为具有局部事件的 Simulink 模块进行仿真 (Stateflow) 打开 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® 作为动作语言的图和转移会出现细粒度的文本着色。