Stateflow 原子子图的模型覆盖率
在 Stateflow® 图中,原子子图是一个图形对象,允许您在多个图和模型中重复使用相同的状态或子图。
当您指定在仿真期间记录模型的覆盖率数据时,Simulink® Coverage™ 会记录模型中任何原子子图的覆盖率。覆盖率数据记录图本身的执行情况,以及原子子图中状态、转移决策和组成每个决策的单独条件的执行情况。
仿真 sf_atomic_iodata_fixed
示例模型并记录决策覆盖率:
打开 Stateflow 示例为原子子图映射输入和输出数据。
openExample('stateflow/AtomicSubchartInOutDataExample');
打开
sf_atomic_iodata_fixed
模型。open_system('sf_atomic_iodata_fixed')
该模型包含两个 Sine Wave 模块,为 Stateflow 图提供输入信号。该图包含两个原子子图 - A 和 B - 它们链接自同一个库图(也称为 A)。库图包含以下对象:
在 Simulink 编辑器中,选择建模选项卡上的模型设置。选择配置参数对话框的覆盖率窗格。
选择启用覆盖率分析,然后选择整个系统。
点击确定关闭配置参数对话框。
通过点击运行按钮来仿真
sf_atomic_iodata_fixed
模型。仿真完成后,覆盖率报告打开。
该报告以以下形式提供原子子图 A 和 B 的覆盖率数据:
对于原子子图实例及其内容。决策覆盖率不适用(
NA
),因为此图没有明确的触发器。对于库图 A 及其内容。图本身对输入
u1
实现了 100% 的覆盖率,对库图内的状态和转移实现了 88% 的覆盖率。原子子图 B 是同一个库图 A 的副本。子图 B 的内容覆盖率与子图 A 的内容覆盖率完全相同。