主要内容

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

Stateflow 原子子图的模型覆盖率

在 Stateflow® 图中,原子子图是一个图形对象,允许您在多个图和模型中重复使用相同的状态或子图。

当您指定在仿真期间记录模型的覆盖率数据时,Simulink® Coverage™ 会记录模型中任何原子子图的覆盖率。覆盖率数据记录图本身的执行情况,以及原子子图中状态、转移决策和组成每个决策的单独条件的执行情况。

仿真 sf_atomic_iodata_fixed 示例模型并记录决策覆盖率:

  1. 打开 Stateflow 示例为原子子图映射输入和输出数据

    openExample('stateflow/AtomicSubchartInOutDataExample');

    打开 sf_atomic_iodata_fixed 模型。

    open_system('sf_atomic_iodata_fixed')

    该模型包含两个 Sine Wave 模块,为 Stateflow 图提供输入信号。该图包含两个原子子图 - A 和 B - 它们链接自同一个库图(也称为 A)。库图包含以下对象:

  2. 在 Simulink 编辑器中,选择建模选项卡上的模型设置。选择配置参数对话框的覆盖率窗格。

  3. 选择启用覆盖率分析,然后选择整个系统

  4. 点击确定关闭配置参数对话框。

  5. 通过点击运行按钮来仿真 sf_atomic_iodata_fixed 模型。

    仿真完成后,覆盖率报告打开。

该报告以以下形式提供原子子图 A 和 B 的覆盖率数据:

  • 对于原子子图实例及其内容。决策覆盖率不适用(NA),因为此图没有明确的触发器。

  • 对于库图 A 及其内容。图本身对输入 u1 实现了 100% 的覆盖率,对库图内的状态和转移实现了 88% 的覆盖率。

    原子子图 B 是同一个库图 A 的副本。子图 B 的内容覆盖率与子图 A 的内容覆盖率完全相同。