ImageVerifierCode 换一换
格式:DOCX , 页数:80 ,大小:2.18MB ,
资源ID:15807974      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/15807974.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(详解Stateflow建模与的综述实例Word下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

详解Stateflow建模与的综述实例Word下载.docx

1、Stateflow使用自然、可读和易理解的形式,可使复杂的逻辑问题变得清晰与简单,并且还与MATLABSimulink紧密集成,为包含控制、优先级管理、工作模式逻辑的嵌入式系统设计提供了有效的开发手段,是本书的核心内容之一。读者在58章将看到Stateflow应用于MCU器件的嵌入式开发,尤其显得得心应手,一些采用传统方法难于实现的算法,如果利用Stateflow建模却非常容易。大到导弹、航空航天器的控制,小到点亮一个发光二极管,Stateflow都非常称职。Stateflow状态图模型,还可利用Stateflow Coder代码生成工具,直接生成C代码。Stateflow的主要功能包括: 使

2、用层次化、可并行的、有明确执行语义的元素,来描述复杂的逻辑系统。 采用流程图定义图形化函数。 利用真值表实现表格形式的功能。 使用临时逻辑处理状态转移与事件。 支持Mealy和Moore有限状态机。 可集成用户自定义的C代码。 可用动画的形式显示状态图的仿真运行过程,并可记录数据。 调试器使用图形化断点进行单步调试,并可观察其中的数据。本章主要内容: Stateflow工作原理与基本概念 建立Stateflow状态图与流程图 Stateflow的层次结构与并行机制 Stateflow应用3.1Stateflow基本概念Stateflow对象可分为图形对象与非图形对象。图形对象有状态、历史节点、

3、迁移、默认迁移、连接节点、真值表、图形函数、Embedded MATLAB函数、盒函数、Simulink函数;非图形对象有事件、数据、目标。本节首先介绍常用的对象:状态、迁移、数据、事件的概念和使用,连接节点留待3.3节、历史节点留待3.4节,其余对象留待3.5节说明。Stateflow状态机使用一种基于容器的层次结构管理Stateflow对象,也就是说,一个Stateflow对象可以包含其他Stateflow对象。最高级的对象是Stateflow状态机,它包含了所有的Stateflow对象,因此也就包含了Simulink中的所有Stateflow状态图,以及数据、事件、目标对象。同样地,状态

4、图包含了状态、盒函数、函数、数据、事件、迁移、节点与注释事件(note events)。用户可以使用这一系列对象,建立一个Stateflow状态图。而具体到一个状态,它也可以包含上述的对象。图3.1.1抽象地说明了这样的关系,而图3.1.2则具体地说明了Stateflow状态机的组成。图3.1.1Stateflow层次机构(数据字典)图3.1.2 Stateflow状态机的组成3.1.1状态图编辑器在Simulink模块库浏览器,找到Stateflow模块,如图3.1.3所示,添加入模型窗口,如图3.1.4所示。图3.1.3 Stateflow模块用户也可以使用以下命令,建立带有Statefl

5、ow状态图的Simulink模型,如图3.1.4所示,同时打开Stateflow模块库,如图3.1.5所示。sf图3.1.4 带有Stateflow状态图的Simulink模型图3.1.5 Stateflow模块库用户还可以直接使用以下命令,快速建立带有Stateflow状态图的Simulink模型。sfnew双击Chart模块,打开Stateflow编辑器窗口,如图3.1.6所示,左侧工具栏列出了Stateflow图形对象的按钮。图3.1.6 Stateflow编辑器窗口3.1.2状态状态可以理解为事件驱动系统中的模式,可分为激活与非激活状态,而状态是否激活则是由状态图中的事件与条件决定的,

6、若没有预先定义的事件或条件发生,状态将一直保持其原先的激活或非激活状态。1. 状态的层次结构状态可以包含除了目标(详见第3.6.6节)以外的所有Stateflow对象,所以状态内部可以有其他状态,如图3.1.7所示,处于外层的A称作超状态(或父状态),处于内部的B称作子状态。每一个状态都有其父状态,图3.1.7中,状态A的父状态就是Stateflow状态图本身。图3.1.7 超状态与子状态2. 状态的横向结构在Stateflow状态图的顶层或某一超状态下,通常并存有多个状态,它们之间的关系可分为互斥与并行。(1) 互斥状态(OR)互斥状态的矩形框边缘显示为实线,同一级的互斥状态,至多允许激活一

7、个状态。如图3.1.8所示的状态图,状态A与状态B是互斥的,它们只能有一个处于激活状态;当状态A被激活时,同样其子状态A1与A2也只能有一个处于激活状态。图3.1.8互斥状态(2) 并行状态(AND)并行状态的矩形框边缘显示为虚线,同一级的并行状态,可在同一时刻被激活。如图3.1.9所示的状态图。状态A与状态B是并行的,它们可同时处于激活状态;子状态A1与A2也同时处于激活状态,而子状态B1与B2只能有一个处于激活状态。图3.1.9并行状态状态层次结构与并行机制的详细概念与应用,见3.4与3.5节。3. 状态标签状态名仅是状态标签的一部分,完整的标签格式如下,第一行是状态名,以下若干行是各类动

8、作,用户可以设置全部或部分的状态动作,当然也可以不设置任何动作。name/ 状态名entry: entry actions 进入该状态时的动作during: during actions 处于该状态时的动作exit: exit actions 退出该状态时的动作on event_name: on event_name actions 某事件发生时的动作bind: events, data 指定需要限制作用范围的事件与数据状态名状态名可由字母、数字、下划线组成,如果状态名后跟随的是回车符,则斜线是可有可无的。根据Stateflow的分层结构,同级的各个子状态不允许重名,但不同级的状态则不受限制。

9、图3.1.10所示的Stateflow状态图是有效的,尽管看上去状态C1、C2有重名现象,但在Stateflow分层结构中,它们的全名分别是:A.OnA.OffB.OnB.Off图3.1.10状态名状态动作状态动作如表3.1.1所列。表3.1.1状态动作类型动作类型缩写说明entryen进入当前状态时的动作duringdu处于当前状态,并且某事件发生时的动作Executes when the state isactive and a specific eventoccursexitex离开当前状态时的动作bind无约束一个事件或数据,使得仅当前状态及其子状态有权限广播该事件或修改该数据on e

10、vent_name当前状态接收1次广播事件时的动作on after(n,event_name)当前状态完整接收n次广播事件后的动作on before(n,event_name)当前状态完整接收n次广播事件前的动作on at(n, event_name)当前状态完整接收n次广播事件时的动作on every(n,event_name)当前状态每接收n次广播事件时的动作每个动作类型,用户可指定多个具体动作,每个动作之间以回车、分号、逗号区隔,动作类型关键词后必须跟随一个半角冒号。(1) entry动作关键词为entry(或缩写为en)。如果用户在状态名后加入斜线,并直接跟随具体动作,则该动作默认为进

11、入动作。如图3.1.11所示,进入状态A时,y=3,同时又执行y+,最终的结果y=4。图3.1.11 entry动作(2) during动作关键词为during(或缩写为du)。如图3.1.12所示,进入状态A时,y=3,同时不断执行y+。若求解器的定点步长取0.2,仿真时长取2,则最终的结果y=13。图3.1.12 during动作(3) exit动作关键词为exit(或缩写为ex)。如图3.1.13所示,系统处于状态A,当A的激活时间达到5个仿真步长,退出状态A,进入状态B,最终的结果y=4,如图3.1.14所示。图3.1.13 exit动作图3.1.14 输出结果(4) 广播事件动作表3

12、.1.1所列的广播事件动作,能实现各种的事件触发。以单次广播事件动作为例,关键词为on event_name,其中event_name表示某一广播事件名,事件名应是唯一的。如图3.1.15所示,系统处于状态A,当检测到事件stop,立即执行c()。图3.1.15广播事件动作(5) bind动作关键词为bind。如图3.1.16所示,变量y、事件start被绑定在状态A,这表示仅有A状态及其子状态有权限修改变量y并广播事件start,其他状态B能够读取变量y、监听到事件start,但无权修改变量y、广播事件start。图3.1.16 bind动作若运行该状态图,系统提示变量y仅能由状态A及其内部

13、的状态迁移修改,事件start仅能在状态A。图3.1.17 错误提示与其他动作不同,bind动作不需要判断当前状态是否已激活,也就是说它在整个Stateflow状态图范围内都是有效的,因此不同状态不允许约束同一个变量与事件。如图3.1.18所示,状态A、B同时约束了变量y,系统提示这是不允许的。图3.1.18 无效的bind动作图3.1.19 错误提示3.1.3迁移1.迁移Stateflow状态图使用一条单向箭头曲线表示迁移,它将两个图形对象连接起来,多数情况下,迁移是指系统从源状态向目标状态的转移。在迁移曲线上加上标签,可以指定系统在何种条件下从源状态向目标状态转移。如图3.1.20所示,当

14、系统处于状态A1时间达到1秒,即向状态A2迁移。图3.1.20 状态迁移2. 默认迁移默认迁移是一种特殊的迁移形式,它没有源对象。用于指定同一级有多个互斥状态并存时,首先激活的状态。某些情况下,默认迁移也可以加入标签,限制其所指向目标状态的激活。如图3.1.21所示,状态A1与A2是互斥的,当它们的父状态A激活时,状态A1也同时激活。图3.1.21 默认迁移3. 迁移标签迁移标签的完整格式如下,它可用于一般迁移与默认迁移,如图3.1.22所示。 eventconditioncondition_action/transition_action图3.1.22 完整的迁移标签各字段的意义如表3.1.2所示:表3.1.2迁移标签字段标签字段event引发迁移的事件condition条件动作与迁移的发生条件condition_action当条件为

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1