主要内容

状态转换表Stateflow

状态转换表是表示顺序模态逻辑的另一种方法。而不是在statflow中图形化地绘制状态和转换®图表,使用状态转换表以表格形式表达模态逻辑。在Simulink中,状态转换表只支持作为块金宝app金宝app®模型。

使用状态转换表的好处包括:

  • 易于建模类似于火车的状态机,其中模态逻辑涉及从一个状态到相邻状态的转换

  • 状态机的一种简洁、紧凑的格式

  • 减少图形对象的维护

  • 当您从图表中添加或删除状态时,您必须重新安排状态、转换和连接。当您从状态转换表中添加或删除状态时,您不需要重新排列任何图形对象。

使用MATLAB的状态转换表支持金宝app®C语言作为行动语言。有关这些操作语言之间差异的更多信息,请参见作为动作语言语法的MATLAB与C的区别

创建状态转换表

在MATLAB命令提示符处,输入:

  • 创建一个国家过渡表在新的Simuli金宝appnk模型中,输入:

    sfnewstt
  • 添加一个新的国家过渡表对于现有模型,使用该函数add_block(金宝app模型).例如:

    add_block(“sflib /状态转换表”“myModel /状态转换表”

来自Simulin金宝appk库浏览器:

  1. 选择statflow库。

  2. 将状态转换表拖入模型中。

状态转换表的解剖

状态转换表包含以下组件:

每个转换列包含以下状态到状态的转换信息:

  • 条件

  • 条件作用

  • 目的地国家

用状态转换图对锅炉进行建模

下面的状态转换表包含了保持锅炉温度在两个设定值之间的模态逻辑:

这个状态流程图表示相同的模态逻辑:

状态转换表和图表之间的差异

状态转换表支持状态流图中最常用元素的一个子集。金宝app状态转换表不支持的元素包括:金宝app

  • Supertransitions

  • 并行(和)分解

  • 当地的活动

  • 流程图

  • 使用图表级函数(图形、真值表、MATLAB和Simulink)金宝app

使用状态转换表的指南

  • 如果在过渡单元中指定操作,则必须是一个条件操作。

  • 状态转换表必须至少有一个状态行和一个转换列。

指定状态转换表的属性

要打开状态转换表属性对话框,请在建模选项卡上,单击表属性

状态转换表的属性与使用MATLAB作为操作语言的图表相同。有关每个属性的描述,请参见为状态流图指定属性

您还可以使用Stateflow。StateTransitionTableChart对象。有关Stateflow编程接口的更多信息,请参见Stateflow API概述

从状态转换表生成关系图

StateFlow软件从您创建的状态转换表自动生成只读状态转换图。当您输入状态转换表的更改时,equendflow逐步更新图表。要查看底层图表的最新版本,在调试选项卡上,单击汽车展示图

另请参阅

相关话题