Stateflow

逻辑设计

Stateflow 提供图形和表格接口,以使用状态机来进行系统逻辑建模。在状态机中,可以将系统运作模式构建为状态模型,通过转移和结点来表达模式间的切换逻辑。系统中的不同组件可以构建为状态模型,能够单独执行或并行执行。Stateflow 通过分层组织状态图对象、函数和组件来管理设计的复杂程度。

在 Stateflow 中,既可以使用流程图以图形方式,也可以使用真值表以表格格式,表达组合逻辑。

逻辑设计包括定义待检查的条件以及所要执行的后续操作。Stateflow 可以使用 C 或 MATLAB® 定义条件和操作。您可以通过 Simulink® 模型浏览器来管理条件和操作中所用的数据。您可以在执行设计前借助 Stateflow 得知可能存在的状态不一致现象、未使用的数据和事件以及无效的转移。

Stateflow diagram defining the logic for a boiler temperature control system.
这是一个定义锅炉温度控制系统逻辑的 Stateflow 图。该图使用图形函数(右侧)实现加热器系统(左侧)所调用的公用程序算法。

以图形方式设计逻辑

Stateflow 提供一个编辑器和一些用于绘制状态机和流程图的图形对象。通过从图形调色板中选择状态、转移和结点,然后将其拖入 Stateflow 编辑器,即可构建状态机。您也可以使用流程图批注、Simulink 子系统、MATLAB 和真值表创建函数。Stateflow 图可以指定为具有扩展功能的 Mealy 和 Moore 混合状态机、Mealy 状态机或 Moore 状态机。

通过绘制由结点连接的转移,可以创建流程图,并根据条件逻辑予以执行。使用“ Pattern 模式向导”,可以创建常用的逻辑流模式。流程图可以放在图形函数中,既能用在该状态图的许多位置上,也可以用于同一模型的其他状态图中。使用流程图可以设计逻辑,由此在各状态间进行转移。

Stateflow diagram that uses a graphical function generated by the pattern wizard.
Stateflow 图(左)使用通过“模式向导”(中)生成的图形函数(右)。

Stateflow 编辑器可提供编辑时检查,以识别对象的非法位置以及无效转移。

Stateflow Editor with a model of a cooling system.
Stateflow 编辑器正在处理一个冷却系统的模型。边界发生交叠的状态以红色突出显示。

以表格方式设计逻辑

Stateflow 中的状态转移表为状态机建模提供了一个结构化环境。通过添加状态行和状态间转移列,可以构建状态机。状态转移表通过提供状态名称下拉菜单、自动完成有限状态机语法和其他编辑时检查,可以帮助您创建状态机。您可以在执行模型前运行静态诊断测试,以检测语法错误、未完成的转移和无法达到的状态。

从状态转移表生成的状态转移矩阵视图有助于快速识别来自特定状态的条件和可能的目标状态。

Stateflow 中的真值表可用于对不需要通过连续运行来维护状态的逻辑建模。输入要检查的条件,然后合并这些条件产生的结果,即可构建真值表。之后,可输入关于对不同的结果组合的操作。构建真值表后,可以运行静态诊断检查,以识别过度指定的条件和指定不足的条件。

Truth table implementing the logic for selecting a valid sensor reading in a fault-detection algorithm, and an automatically generated graphical representation of the truth table.
左:用于实施在故障检测算法中选择有效传感器读数的逻辑的真值表。右:自动生成的真值表图形表示形式。
下一页: 组件集成与算法调度

试用 Stateflow

获取试用版软件

移动机器人防撞的Simulink仿真

观看网上技术交流会录像