164第十二章 利用状态流Stateflow 进行控制系统状态转换 Statefolw是一种图形化的设计开发工具,是有限状态机的图形实现工具,有人称之为状态流
主要用于simulink 中控制和检测逻辑关系的
用户可以在进行Simulink 仿真时,使用这种图形化的工具实现各个状态之间的转换,解决复杂的监控逻辑问题
它和Simulink 同时使用使得Simulink 更具有事件驱动控制能力
利用状态流可以做以下事情: 1) 基于有限状态机理论的相对复杂系统进行图形化建模和仿真; 2) 设计开发确定的、检测的控制系统; 3) 更容易在设计的不同阶段修改设计、评估结果和验证系统的性能; 4) 自动直接地从设计中产生整数、浮点和定点代码(需要状态流编码器); 5) 更好地结合利用Matlab 和Simulink 的环境对系统进行建模、仿真和分析
在状态流图中利用状态机原理、流图概念和状态转化图,状态流能够对复杂系统的行为进行清晰、简洁的描述
Stateflow 生成的监控逻辑可以直接嵌入到Simulink 模型下,两者之间能够实现无缝连接
仿真初始化时,Simulink 会自动启动编译程序,将 Stateflow 绘 制的逻辑框 图转换成C 格 式 的S- 函 数(Mex- 文件),产生的代码就 是仿真目 标 ,且 在状态流内 称作Sfun 目 标 ,这样 在仿真过 程中直接调 用相应 的动态连接库 文 件,将 二者组 成一个仿真整体
Sfun 目 标 只 能与 Simulink 一起 使用
在产生代码前 ,如 果还 没 有建立 名 为sfprj 子 目 录 ,状态流会在Matlab 的当 前 目 录 下产生一个sfprj 子 目 录
状态流在产生代码的过程中使用sfprj 子 目 录 存 贮 产生的文 件
1 有限状态机简介 Stateflow的仿真原理是有限状