第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 状态图。而具体到一个状态,它也可...