主要内容

在图表中多次重用一个状态

此示例展示了如何使用链接原子子图在Stateflow®图表中多次重复相同的状态和转换配置。在MATLAB®的独立状态流图中不支持原子子图。金宝app有关更多信息,请参见使用原子子图创建可重用的子组件

没有原子子图的原始模型

这个模型包含两个正弦波(金宝app模型)块:一个频率为每秒1弧度,另一个频率为每秒2弧度。

在图表中,每种状态都使用饱和器逻辑将输入正弦波转换为相同频率的输出方波。这些状态执行相同的操作,仅在输入和输出数据的名称上有所不同。

对模型的模拟产生了这些结果。

因为本例没有使用原子子图,所以必须手动维护每个子组件。例如,如果您更改状态中的逻辑一个,那么你必须在状态上做出相同的改变B

相反,如果用原子子图替换此示例中的状态,则可以在模型中重用相同的对象并保留相同的模拟结果。你可以保存状态一个作为库模型中的原子子图,然后在图表中使用该子图的多个链接实例。库模型中的更改将传播到子图的所有链接实例。

编辑模型以使用原子子图

步骤1:将状态转换为原子子图

右键单击状态一个并选择组和子图>原子子图.状态一个更改为原子子图并显示标签原子在左上角。

步骤2:为原子子图创建一个库

  1. 创建一个新的库模型。

  2. 复制原子子图并将其粘贴到库模型中。

  3. 保存您的库模型。

在库模型中,原子子图显示为具有输入端口和输出端口的独立图。

步骤3:用链接原子子图替换状态

  1. 删除图表中的两个状态。

  2. 复制库中的原子子图,并将其粘贴到图表中两次。

  3. 将第二个原子子图的名称更改为B

每个链接的原子子图都是不透明的,并且包含标签链接在左上角。

步骤4:编辑输入和输出变量的映射

如果现在模拟模型,则输出为y2是零。您还会看到关于未使用数据的警告。这些警告的出现是因为原子子图B使用u1而且日元而不是u2而且y2

要修复这些警告,必须编辑输入和输出变量的映射。

  1. 右击子图表B并选择子图表映射

  2. 输入映射,指定的主图表符号u1u2

  3. 输出映射,指定的主图表符号日元y2

  4. 点击好吧

运行新模型

当你模拟新模型,结果与原设计相符。

传播库图中的更改

假设在库图中编辑从的转换Pos负的

此更改将传播到主图中的所有链接原子子图。您不必逐个更新每个状态。

另请参阅

(金宝app模型)

相关的话题