关于Stateflow状态图的探讨_第1页
关于Stateflow状态图的探讨_第2页
关于Stateflow状态图的探讨_第3页
关于Stateflow状态图的探讨_第4页
关于Stateflow状态图的探讨_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

===word原格式可编辑===状态机的关键概念State状态图初始化关于开始运行时的初始化问题,首先和状态图的设置有关系,是否需要在初始化时进入第一个状态。蓝色表示状态,黑色目前无特殊意义〔仅保证整体拖动〕。图表的活动开始时,图表处于非活动状态。〔某一个状态处于活动状态〕。图表只有在进行状态迁移的时候才会发生激活,迁移完毕,处于睡眠状态之中。图表中的某一个状态处于活动中。连接节点的迁移,具有相同的级别时〔具有的事件和条件类似〕,其优先级取决于他们的位置。进入和退出时的过程执行Exit,将该状态标记为非活动状态。将事件标记为活动状态,执行En动作。迁移和动作执行完毕,图表又处于睡眠状态。同一事件的源状态至目标状态的迁移这里的关键在于,图表处于非活动状态时,哪一个状态处于活动。那么开始由哪一个进行迁移。首先进行的动作:迁移检测当事件发生,且条件成立时,确认可以执行迁移。然后执行ex,en等过程。循环结构:优先级的应用条件和条件动作设计For循环。此处的问题:条件循环何时执行?同样,先进行迁移检测的判断:执行循环结构,确认迁移可以执行后,才进行en和ex动作。自循环流程图的考前须知:不保存任何信息。状态的层次子状态和父状态〔超状态〕状态机是集合。状态图是图表对象。历史节点关于子状态的考前须知,一个父状体有子状态时,假设父状态为激活状态,那么状态机必定处于其中一个子状态。如果父状态中还含有,历史节点,那么父状态中,子状态的默认迁移不再起作用。即:在一个程序运行循环内〔含义同驾驶循环〕默认迁移永久性的只运行一次,假设无历史节点,那么在迁移过程中每次激活父状态时,都会激活默认迁移。历史状态的优先级高于默认迁移迁移的层次性迁移在两个父状态的子状态之间进行迁移时。核心问题:父状态Du,en,ex的执行顺序,子状态的执行顺序。当迁移的条件检测成功时,首先执行所属父状态得到du动作,并执行该子状态的ex动作,将子状态标记为非活动。然后执行父状态的ex动作。由此可见,父状态的du动作差不多有一次〔一个循环步长〕的执行时机。接着,执行下一个子状态所属父状态的en,但是不执行du,就进入了子状态的en,然后睡眠。显式的说明退出A1,进入B1,阴式的说明其父状态的退出和进入。内部迁移〔内部和外部自循环〕内部自迁移:事件成立,但是条件不成立时,先执行该状态的du,然后进行内部迁移的执行,该状态仍然活动,故ex和en都不会执行。另一个关键:只有在执行du后〔即第二个仿真步长内未发生迁移,且已经执行过了en〕,才会进行内部迁移的检测和子状态的du或者ex动作。先执行迁移后状态的en,然后就睡眠了,外部自循环并没有执行。进入该状态后,只有事件再次发生,且有迁出该状态的意图时,外部自循环才会有执行的时机。此时会顺次执行该外部自循环状态的ex,en。从初始话开始的执行顺序搭建模型如下所示:内部状态如下所示:将调试时间改为IINF后,输出结果为1,由此可见:初始化后,仅仅输出en值。此时命令行窗口输出值为:将事件UlckA触发,如下:那么状态迁移如下:同时输出值为0,即,执行了解锁事件的进入动作。观察命令行窗口,发现在迁移过程中还执行了迁出状态的ex动作,但是du动作自始至终都未执行。当锁定事件发生时,也只会执行解锁事件的ex动作和锁定事件的en动作,du动作自始至终也未执行。连接至节点的执行事件的内部迁移迁移的检测顺序:先进行父状态外部的迁移检测,无迁移,那么执行du,然后检测自己内部的有效迁移。仍然是其中一个子状态处于活动。先进行父状态的检测。A的du事件在A仍为活动的时候执行。——问题的关键!过程:退出子状态,至父状态,然后再迁移。至历史节点的迁移层次化图表中,父状态的du执行时刻为,处于子状态时而且有事件发生时。并行机制播送播送用于触发并行状态。播送状态动作检测的时候先检测父状态,检测不到那么执行du:实质上du的执行顺序应当如下:这和状态图的刷新频率有关系,有事件触发的时候,无论是否有条件等数据定义,一律按照事件触发的频率进行刷新,因为事件刷新的频率并不是很快,所以会出现du不执行的情况。在没有事件的定义下,仅有数据时,状态图的刷新速度比拟高,检测不到迁移,又到了刷新时刻,就必须执行du〔因为在这个状态图内〕。On事件发生时,图表的执行顺序,仅在该层次中执行一次而已。每一次事件发生时,都首先从包含该子事件的父事件开始执行。当因为on执行的事件执行完毕后,再接着执行原来事件引发的执行顺序。播送迁移动作同样,开始的时候,状态必然处于某一子状态内部,事件触发时,先从父状态开始检测,一直到子状态,在父状态内开始检测并执行迁移。执行完A1的du后才执行迁移。播送条件动作所谓的播送条件动作,指事件在条件中出现,和前面的叫法类似。直接事件播送隐含事件时间逻辑时间逻辑事件可以根据事件发生的次数决定事件的转换逻辑。时间操作符〔at,every,after,before〕分别完成相应的布尔运算,处理Stateflow事件的发生次数。

Stateflow中的真值表真值表Stateflow中定义真值表首先进行命名。下列图为已命名和未命名的真值表的外观:内部编辑和外部真值表一样。在stateflow中调用真值表,需要定义输入输出对象。如下列图:图形盒图形函数建模考前须知模型中:在信号流,GOTO和FROM中支持下划线,却不支持横杠。模型中的开关量的优先级:越靠后,优先级越高。故障的情况在后,将会优先触发。建模过程中,考虑子系统的原子化,便于代码生成。尺寸和数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论