Stateflow 建模与应用.pdf
文本预览下载声明
第3 章Stateflow 建模与应用
Stateflow 是有限状态机 (finite state machine )的图形工具,它通过开发有限
状态机和流程图扩展了Simulink 的功能。Stateflow 使用自然、可读和易理解的形式,
可使复杂的逻辑问题变得清晰与简单,并且还与MATLAB\Simulink 紧密集成,为包
含控制、优先级管理、工作模式逻辑的嵌入式系统设计提供了有效的开发手段,是
本书的核心内容之一。读者在5~8 章将看到Stateflow 应用于MCU 器件的嵌入式开
发,尤其显得得心应手,一些采用传统方法难于实现的算法,如果利用Stateflow 建
模却非常容易。大到导弹、航空航天器的控制,小到点亮一个发光二极管,Stateflow
都非常称职。Stateflow 状态图模型,还可利用Stateflow Coder 代码生成工具,直
接生成C 代码。
Stateflow 的主要功能包括:
使用层次化、可并行的、有明确执行语义的元素,来描述复杂的逻辑系统。
采用流程图定义图形化函数。
利用真值表实现表格形式的功能。
使用临时逻辑处理状态转移与事件。
支持Mealy 和Moore 有限状态机。
可集成用户自定义的C 代码。
可用动画的形式显示状态图的仿真运行过程,并可记录数据。
调试器使用图形化断点进行单步调试,并可观察其中的数据。
本章主要内容:
Stateflow 工作原理与基本概念
建立Stateflow 状态图与流程图
Stateflow 的层次结构与并行机制
Stateflow 应用
3.1Stateflow 基本概念
Stateflow 对象可分为图形对象与非图形对象。
图形对象有状态、历史节点、迁移、默认迁移、连接节点、真值表、图形函数、
Embedded MATLAB 函数、盒函数、Simulink 函数;非图形对象有事件、数据、目
标。本节首先介绍常用的对象:状态、迁移、数据、事件的概念和使用,连接节点
留待3.3 节、历史节点留待3.4 节,其余对象留待3.5 节说明。
Stateflow 状态机使用一种基于容器的层次结构管理Stateflow 对象,也就是说,
一个Stateflow 对象可以包含其他Stateflow 对象。
最高级的对象是Stateflow 状态机,它包含了所有的Stateflow 对象,因此也就
包含了Simulink 中的所有Stateflow 状态图,以及数据、事件、目标对象。
同样地,状态图包含了状态、盒函数、函数、数据、事件、迁移、节点与注释
事件(note events)。用户可以使用这一系列对象,建立一个Stateflow 状态图。而
具体到一个状态,它也可以包含上述的对象。
图3.1.1 抽象地说明了这样的关系,而图3.1.2 则具体地说明了Stateflow 状态
机的组成。
状态机
数据/
数据/
目标
目标
事件
事件
状态图
迁移 节点
迁移 节点
数据/
数据/
标注
标注
事件
事件
状态/盒函数
显示全部