stateflow教程
Stateflow概述:
Stateflow 是集成于 Simulink 中的图形化设计与开发工具,主要
用于针对控制系统中的复杂控制逻辑进行建模与仿真,Stateflow 适用于
针对事件响应系统(Reactive System)进行建模和仿真。与事件响应系统
相对应的就是动态变换系统(Dynamic Transformational System)。动态
变换系统通常可以利用数学表达式、 方程等组成的输入/输出关系进行
描述,像这样的系统利用 Simulink 进行建模是最为方便的。而事件响
应系统通常利用一些自然语言或者逻辑表达式进行描述,这样的系统
就需要利用 Stateflow 来进行建模。Stateflow 与Simulink 结合起来,
可以创建确定性监管控制系统。 利用 Stateflow 可视化的模型和直观的
仿真能力,可以清晰、 简洁地反映出复杂动态逻辑关系。 Stateflow
的基础是有限状态机理论,它通过对状态图、 流程图的创建, 对事件
驱动系统进行建模和仿真。
第一章 创建状态图
ØStateflow编辑器
Ø创建和编辑状态图
Stateflow编辑器
创建 Simulink 模型
1. 直接在 MATLAB 命令行窗体中键入指令 sfnew
2. 打开 Simulink 库浏览器,
在库浏览器中找到 Stateflow 的模块库
双击模型文件或者库文件中的 Stateflow 图块打开 Stateflow 编辑器
执行 Stateflow 编辑器 File 菜单下
的 Chart Properties 命令,打开属性框
创建和编辑状态图
插入图形对象
1 . 创建状态
在图 形对象面板的状态图标上按下鼠标左键并保持,将状态
Stateflow 编辑器的空白区域中
Keyword : State Actions 就是状态动作。
为数据对象进行赋值或者进行数据对象的运算
也可以通过状态动作进行事件广播以触发其他
系统的变化
状态动作的关键字主要有三种:
entry:当状态被激活时执行相应的动作。
exit:当状态退出活动状态时执行相应的动作
during:当状态保持其活动状态时执行相应的
动作
在状态上单击鼠标右键,在快捷菜单中选择 Properties 命令, 可以
通过状态的属性对话框进一步定义状态
2 . 创建连接节点
连接节点作为转移通路的判决点或汇合点,也是在状态图中常用的图形元素之一,
特别是在流程图中, 由于流程图不能包含任何状态, 因此只有依靠连接节点完成通路的连
接和判断分支,连接节点不是记忆元件。
在图形对象面板的连接节点图标 上按下鼠标左键并保持, 将状态拖
放到Stateflow 编辑器的空白区域中。
节点上单击鼠标右键,通过弹出的快捷菜单
执行 Properties 命令,进入属性框
3. 创建转移
转移是 Stateflow 框图中最常见的图形元素之一,无论是包含状态的状态图中还是没
有状态的流程图中,几乎都存在转移。转移描述的是有限状态系统内的逻辑流。转移管理
了当系统从当前状态改变时,这个系统可能发生的模式改变。当转移发生时,源状态变为
非活动的状态, 目标状态变为活动的状态。转移是带有箭头的线,这就使整个状态图或者
流程图成为了“有向图”,状态或者流程之间的转换, 将直接受到转移方向的约束。