概述
Stateflow系统建模(全)解读
Stateflow系统建模
同济大学 电子与信息工程学院
戴毅茹
内容提要
Stateflow入门介绍及基本概念
创建状态图
状态图仿真
流程图建模
Stateflow的基本简介:
Statefolw 是一种图形化的设计开发工具,是有限状态机的图
形实现工具,也称之为状态流。
主要用于simulink 中控制和检测逻辑关系。
使用这种图形化的工具可以实现各个状态之间的转换,解决复
杂的监控逻辑问题。
它和Simulink 同时使用,使得Simulink 更具有事件驱动控制能力。
有限状态机简介:
Stateflow 的仿真原理是有限状态机(finite state machine,简
称FSM)理论。
所谓有限状态机是指系统中存在可数的状态,在某些事件发生
时,系统从一个状态转换成另一个状态,故又称为事件驱动的系统。
在有限状态机的描述中,可以设计出由一种状态转换至另一种
状态的条件,并将每对可转换的状态均设计出状态迁移的事件,从
而构造出状态迁移图。
有限状态机示意图:
Stateflow允许用户:
(1)建立有限的状态。
(2)用图形的形式绘制出状态
迁移的条件。
(3)使用规定的命令设计状
态迁移执行的任务。
完成以上操作即构造出整
个有限状态机系统。
注:Stateflow 模型一般是嵌在Simulink 模型下运行的,Stateflow 是由事件
驱动的,这些事件可以来自某一个Stateflow 图中,也可以来自Simulink。
实例:DVD播放机
8缺省转移
1状态
2转移
3事件
4条件
5动作
7连接节点
6Counter数据对象
一个状态机(可以包含多个Chart)
用户可以利用Stateflow 编辑界面左侧的编辑工具绘制Stateflow图形,下面介绍常用的编辑工具。
1.状态工具
2.历史交汇工具
3.默认转移
4.连接节点
5.真值表
6.图形函数工具
7.内嵌Matlab函数
8.模型整理工具
10放大缩小工具
9.函数调用
创建状态图—插入图块Chart
在MATLAB命令窗口输入 >> sfnew
直接从stateflow库中拖Chart块到模型中
拖
创建状态图—几个术语
每个Chart被称作一个stateflow图块,每个图块都有对应的stateflow框图,模型中所有的图块的集合叫做stateflow状态机,且一个模型中只有一个状态机。
状态机
图块
框图
双击
图块包含的内容
创建状态图的几个重要图形对象
状态
连接节点
转移
转移标签
默认转移
添加注释
状态(Chart)
状态具有层次性
父状态
子状态
状态(Chart)
状态(Chart)
状态(Chart)
连接节点
转移
转移标签
事件
条件
条件动作
转移动作
如果在转移上没有定义事件和条件,则意味着该转移在任何事件发生时都会执行。
状态转移—使用条件
条件表达式包括 :
逻辑运算或关系运算
以布尔变量作为返回值的函数
条件表达式不能通过调用函数而更改数据对象或影响状态
赋值表达式不能作为条件表达式
使用“与”操作符“&&”完成条件表达式的与操作
使用“或”操作符“| |”完成条件表达式的或操作
转移标签
事件
条件
条件动作
转移动作
转移标签
状态转移—动作语言
动作语言的功能:
执行数学计算:操作数据对象
调用函数:使用MATLAB或C语言的函数
触发事件:影响内部或外部的状态
状态转移—支持的数学运算
二元操作:* / %% + - ^ > < >= <= == ~= != <> & | && ||
一元操作: ~ ! - ++ --
赋值运算:= += -+ *= /=
位操作:>> <
状态转移—调用MATLAB函数
调用MATLAB 函数,需要在函数的名字前使用MATLAB命名空间运算符,如 y = ml.abs(x)
在使用ml运算符调用MATLAB函数时需要注意以下几点:
使用ml关键字调用的MATLAB函数,仅能使用标量或者字符串作为函数的输入参量
调用函数时的圆括号是必须,无论被调用的函数是否具有参量
如果调用的函数具有返回参数,则返回数值的类型必须为double型
如果具有多个返回变量,仅有第一个返回变量被赋值
状态转移—C语言数学函数
调用C语言数学函数:如y=abs(x)
下表中所列的数学函数可以被调用
状态转移—调用
最后
以上就是生动项链为你收集整理的戴毅茹同济matlab,Stateflow系统建模(全)解读.pptx的全部内容,希望文章能够帮你解决戴毅茹同济matlab,Stateflow系统建模(全)解读.pptx所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复