状态转换表是表达顺序模态逻辑的另一种方式。不要在Stateflow®图表中以图形方式绘制状态和转换,而是使用状态转换表以表格格式表示模态逻辑。
使用状态转换表的好处包括:
易于对类列车状态机进行建模,其中模态逻辑涉及从一个状态到其邻居的转换
状态机的简洁、紧凑的格式
减少图形对象的维护
在图表中添加或删除状态时,必须重新排列状态、转换和连接。在状态转换表中添加或删除状态时,不必重新排列任何图形对象。
状态转换表支持使用MATLAB®和C作为动作语言。有关这些动作语言之间差异的更多信息,请参阅MATLAB和C作为动作语言语法的差异。
以下状态转换表包含将锅炉温度保持在两个设定点之间的模态逻辑:
此状态流程图表示相同的模态逻辑:
状态转换表的使用规则
如果在转换单元格中指定操作,则该操作必须是条件操作。
状态转换表必须至少有一个状态行和一个转换列。
状态转换表和图表之间的差异
状态转换表支持状态流程图中最常用元素的子集。状态转换表不支持的元素包括:
超级转换
并行(AND)分解
当地活动
流程图
使用图表级函数(图形、真值表、MATLAB和Simulink)
状态转换表的剖析
每个转换列都包含以下状态到状态的转换信息:
条件
条件动作
目的地状态
如何创建新的状态转换表
在MATLAB命令提示下,输入:
sfnew('-STT')
从Simulink®库浏览器:
选择Stateflow库。
将状态转换表拖动到模型中。
状态转换表的属性
要访问属性,请在状态流编辑器中选择Chart > Properties.
这些属性与MATLAB图表相同。
从状态转换表生成图表
Stateflow软件会根据您创建的状态转换表自动生成只读状态转换图。当您向状态转换表输入更改时,Stateflow也会增量更新图表。要查看基础图表的最新版本,请选择Chart > View auto-generated diagram.
以下是我创建的一个table示例,可以实时查看相对应的图表形式。