Stateflow系统建模要求与方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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