版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Stateflow系统建模技术2010年7月5日1精选2021版课件内容提要Stateflow入门介绍及基本概念创建状态图状态转移流程图建模状态图的层次并行机制2精选2021版课件
Stateflow入门介绍Stateflow是一个交互式设计工具,用来对复杂的事件驱动模型系统进行建模与仿真。通过紧密地与Simulink和MATLAB集成,Stateflow将复杂的控制和监督逻辑有效地结合到Simulink模型中,为Simulink用户提供了一个设计嵌入式系统的完美解决方案。3精选2021版课件Stateflow入门介绍Stateflow能够做:基于有限状态机理论对复杂的响应型系统进行可视化建模与仿真设计和开发复杂的监控逻辑在同一个Stateflow框图中同时使用流程图和状态转移图表示法自动地从模型中生成整数或浮点数代码可随时方便修改设计,评估结果,验证系统性能4精选2021版课件stateflow基本概念动作数据对象连接节点缺省转移状态转移事件条件有限元状态机5精选2021版课件实例:DVD播放机8缺省转移1状态2转移3事件4条件5动作7连接节点6Counter数据对象一个状态机(也可以包含多个Chart)6精选2021版课件内容提要Stateflow入门介绍及基本概念创建状态图状态转移流程图建模状态图的层次并行机制7精选2021版课件创建状态图—插入图块Chart在MATLAB命令窗口输入>>sfnew直接从stateflow库中拖Chart块到模型中拖8精选2021版课件创建状态图—几个术语每个Chart被称作一个stateflow图块,每个图块都有对应的stateflow框图,模型中所有的图块的集合叫做stateflow状态机,且一个模型中只有一个状态机图块框图双击图块包含的内容9精选2021版课件创建状态图—编辑器可以用编辑器开发stateflow框图仿真过程中可以用编辑器来显示状态图的执行过程10精选2021版课件创建状态图—编辑器将框图锁定的方法:File→ChartProperties→Locked选项11精选2021版课件创建状态图—插入状态和节点先左键单击选中对象按钮,然后在编辑区左键单击放下对象要插入一个对象的多个拷贝,双击对象按钮,然后再编辑区左键单击添加,右键单击停止添加要删除某个对象,选中后按Delete键删除12精选2021版课件创建状态图—框图的缩放缩放范围20%至500%左键单击zoom按钮上部放大,下部缩小左键单击两个zoom按钮的中间调用下拉菜单来选择缩放的比例移动鼠标到两个zoom按钮的中间空白处,左键保持在该处直到出现双箭头,向上向下拖拉进行缩放2个zoom按钮13精选2021版课件创建状态图—改变状态尺寸左键保持状态的一个圆角拖拉即可,当移动鼠标到状态的圆角时,会出现一个双箭头,这是就可以左键保持这个圆角,然后拖拉直到满意的尺寸大小14精选2021版课件创建状态图—改变节点尺寸右键单击节点,弹出一个快捷菜单,然后选择JunctionSize选项选择需要的大小尺寸15精选2021版课件创建状态图—移动和复制对象左键保持并且拖拉对象,移动一个状态或节点右键保持拖动对象,拷贝一个对象如果想移动或拷贝一组对象,首先要框选所感兴趣的对象,然后按上面的方法操作注:单击时必须点到对象的边缘里面16精选2021版课件创建状态图—状态的标签每个状态都必须要有一个名字。标签一个状态时,左键单击问号,在光标处输入文本。注意鼠标点接近问号时它所发生的变化。状态名要以字符串开始,中间不能有空格,但可以写成多行。编辑状态标签时,左键单击标签进入文本编辑模式。17精选2021版课件创建状态图—创建转移从源对象的边缘左键保持并且拖拉到目标对象边缘。转移只能开始或终止于状态的直线的边缘(不能是状态的圆角)。当鼠标点接近状态的直线边缘时光标变为十字花。默认情况下,转移的精确行为是有效的,要想使他无效,可以在转移上右键单击,在快捷菜单上清掉Smart选项。18精选2021版课件创建状态图—创建缺省转移左键单击图形编辑器左边的一列工具条上的第三个按钮,然后左键单击缺省状态的直线边缘。如果转移从状态或节点的边缘分离出来,它就会变成缺省转移。19精选2021版课件创建状态图—转移的变更从一个状态的边缘到另一个状态的边缘,可以改变转移的任何一个末端(带箭头或不带箭头的):左键保持在想改变的转移的末端,然后拖拉它离开原来的边缘到达想要的目标的边缘时释放转移的末端,重新连接转移要想改变转移的线路而不影响它的两端的连接时,左键保持在转移的两个末端之间的线上,拖拉即可改变20精选2021版课件创建状态图—转移标签及移动给转移加标签:左键单击转移选中它,左键单击出现的问号,在光标处插入文本。左键单击文本进入文本编辑模式进行编辑转移的标签移动转移标签:左键保持在标签位置,拖拉到想安放的位置,可以把转移标签移到框图内的任何位置21精选2021版课件创建状态图——添加注释在框图中指定位置添加注释:右键单击框图中要加注释的位置,弹出快捷菜单选择快捷菜单中的AddNote选项在光标处插入文本左键单击文本进入到编辑模式编辑文本注释22精选2021版课件创建状态图—定制对象属性右键单击某一对象,弹出快捷菜单,选择Properties选项,就会出现关于这个对象的属性对话框。不同对象,属性对话框有所差异转移属性对话框状态属性对话框23精选2021版课件创建状态图—设置字体大小设置状态和转移的标签及注释信息的字体大小:左键单击选中对象选取Edit菜单下的SetFontSize选项选择合适的字体也可以通过对象的快捷菜单进行设置:右键单击对象弹快捷菜单选取FontSize选项选择合适的尺寸24精选2021版课件创建状态图—设置箭头尺寸修改转移箭头尺寸的方法:右键单击转移弹出快捷菜单,从ArrowheadSize子菜单中选取合适的尺寸。从状态的快捷菜单下对该选项进行设置,所有指向该状态的边缘的箭头尺寸都将改变25精选2021版课件创建状态图—图形显示配置可以配置一个框图的图形风格。包括定制状态、转移、节点、标签和背景的颜色,状态和转移标签的字体。通过选取Edit菜单下的Style选项打开图形风格对话框来进行编辑。对话框中:左键单击对象或标签,设置颜色右键单击标签,设置字体26精选2021版课件内容提要Stateflow入门介绍及基本概念创建状态图状态转移流程图建模状态图的层次并行机制27精选2021版课件状态转移—概念Stateflow状态图被称为“状态转移图”,这些状态图中包含了所谓的状态、状态转移管理和维护当前内存中活动的状态一旦包含了状态转移的状态图处于活动的状态,则状态图将一直处于这种活动状态,直到整个模型仿真计算结束。当在某一个制定的时间步长内完成了必要的工作后,状态图简单地进入到一种暂时挂起的状态,而不是非活动状态。也就是说,在连续两次触发事件之间,状态图是一直处于活动状态的。28精选2021版课件状态转移—概念(续)具有状态转移的Stateflow状态图相当于一种包含了离散系统模块的触发子系统。这种子系统在内存中保持自己的状态,在有触发时更新自己的输出,而在两个连续的触发之间保持自己的状态。29精选2021版课件状态转移—概念(续)当一个状态转移图处于活动状态时,这个状态转移图首先尝试激活相应的状态,以及邻近的状态。如果,状态机处于第一层,则执行的第一个元素是系统的默认转移。由于状态机在模型运行结束之前一直处于活动状态,默认转移仅仅有效一次,即在状态机被激活的首次有效,这一点必须注意。如果状态的第一层仅有一个状态,则可以不使用默认的转移。一旦进入一个状态,这个状态就一直处于活动状态,直到退出为止。与状态机类似,状态也在连续两次触发之间挂起而不会成为不活动状态。30精选2021版课件状态转移—事件驱动所谓事件是指触发的发生。一个触发可以是隐含存在的,按照预先的配置自动的发生。同样,触发也可以显性的定义,在一个具有过零特性的信号发生,或者被函数调用时,触发发生,也就是发出了事件。由于这种触发而引起的相应的动作执行,被称之为事件驱动在Stateflow中,所有的状态图的运行都是依靠事件驱动。换句话说,状态图是依赖于事件而活动的。事件同样驱动状态的变化。每次触发一次,状态图就重新进行判断一次。31精选2021版课件状态转移—过零触发过零触发事件具有三种形式:1上升沿触发:当过零信号由负值变为正值,或者由负值变为0,或者由0变为正2下降沿触发:当过零信号由正值变为负值,或者由正值变为0,或者由0变为负值3双边沿触发:上述两种触发机制的结合下降沿上升沿32精选2021版课件状态转移—产生事件利用下列的模块可以在Simulink中产生相应的过零信号:震荡函数脉冲发生器阶跃信号(每个阶跃信号仅能产生一个事件)双端输入开关静态模块33精选2021版课件状态转移—输入事件定义事件类型34精选2021版课件状态转移—定义多个输入事件35精选2021版课件状态转移—默认转移注意事项当其父状态被激活的时候,默认转移仅仅执行一次。那么当父状态再次从非活动状态进入到活动状态,默认转移将再次执行当默认转移在状态图的第一层的时候,需要小心。如果第一次触发事件发生时默认转移无效,系统将发出一个二义性警告,这个警告错误一般在父状态被激活,而父状态下的子状态不能确认具体哪一个被激活时发出。这时候,状态图被激活了,但是没有一个确定的状态被激活。注:如果在Stateflow调试器中从错误检测选项字段中去除StateInconsistency,则上述的二义性错误警告不会发出。36精选2021版课件状态转移—默认转移注意事项(续)一定要牢记一点,一旦Stateflow状态图被激活,则状态图会一直处于激活状态直到系统仿真的结束。由于默认转移的执行需要依赖父状态的再次激活,则这里的默认转移将不再有机会执行了。若需要通过事件来控制状态的执行,则可以建立一个哑元状态,或者将状态图置于使能子系统中,将相应的触发事件设置为Reset
例子:exp01_1和exp01_237精选2021版课件状态转移—使用数据对象数据对象主要是用在条件和动作语句中。可以根据需要在Stateflow图表中限制数据对象的使用,也可以使用数据对象作为chart和外部环境的接口,这里所说的外部环境即Simulink模型中的其他模块。用在条件中用在动作中38精选2021版课件状态转移—定义数据对象添加数据数据名称数据对象范围数据类型39精选2021版课件状态转移—活动状态输出可以将状态的活动状态作为Stateflow块的输出,在状态属性对话框中选中OutputStateActivity选项,stateflow块就创建了一个数据对象输出到模型,而数据对象名称和状态的名称一致,数值只能是1或0例子exp0240精选2021版课件状态转移—浏览器使用浏览器可以观察所定义的数据和事件运行浏览器:使用Tool菜单下的Explorer命令浏览器左边列显示了状态机包含的所有层次结构事件数据层次结构41精选2021版课件状态转移—浏览器(续)在浏览器中可以定义事件和数据对象属性用鼠标右键拖放事件或数据对象,可以完成复制操作浏览器中的Add菜单可以对在层次树中选择的stateflow图表完成添加/定义数据和事件对象的操作42精选2021版课件状态转移—使用条件条件表达式包括:使用布尔运算符比较两个数据对象以布尔变量作为返回值的函数条件表达式不能通过调用函数而更改数据对象或影响改变图表中的状态赋值表达式不能作为条件表达式使用“与”操作符“&&”完成条件表达式的与操作使用“或”操作符“||”完成条件表达式的或操作43精选2021版课件状态转移—转移动作转移动作标签主要由四个部分组成在转移动作标签中不一定需要包含所有的上述部分,但是必须按照图中所示的顺序书写转移动作标签。条件动作和转移动作运行有所区别,条件动作在条件满足的时候就运行了,而转移动作需要在整个转移通路有效时才运行。见例子exp03事件条件条件动作转移动作44精选2021版课件状态转移—状态动作在下列情况时,发生状态动作:初始为非活动状态,事件驱动使其激活—entry动作初始为活动状态,事件驱动使其进入非活动状态—exit动作初始为活动状态,事件没有改变其活动的状态—during动作或on动作状态动作一般作为状态名称标签的一部分,可以紧跟在标签名称后面可以使用一些关键字来标识动作的作用类型
45精选2021版课件状态转移—状态动作(续)有四种类型状态动作:
entry/en在事件触发状态进入活动状态时执行exit/ex在事件触发状态退出活动状态时执行during/du在事件触发发生,状态保持原来活动状态时执行onevent_name当以event_name命名的事件发生时,状态保持原有的活动状态而执行相应的动作系统默认的状态动作为entry
46精选2021版课件状态转移—动作执行顺序在有事件驱动且条件满足的时候,执行相应的条件动作整条通路都有效,系统才执行转移动作原状态的退出动作在转移动作执行之前被执行接着是组含义动作,然后是目标状态的进入动作47精选2021版课件状态转移—动作语言Stateflow的动作语言是图表内部进行交互,以及图表和外部环境进行交互的接口动作语言的功能:执行数学计算:操作数据对象调用函数:使用MATLAB或C语言的函数触发事件:影响内部或外部的状态48精选2021版课件状态转移—支持的数学运算二元操作:*/%%+-^><>=<===~=!=<>&|&&||一元操作:~!- ++--赋值运算:= +=-+*=/=位操作:>><< &^|&=^=|=49精选2021版课件状态转移—调用MATLAB函数调用MATLAB函数,需要在函数的名字前使用MATLAB命名空间运算符,如mly=ml.abs(x)在使用ml运算符调用MATLAB函数时需要注意以下几点:使用ml关键字调用的MATLAB函数,仅能使用标量或者字符串作为函数的输入参量调用函数时的圆括号是必须,无论被调用的函数是否具有参量如果调用的函数具有返回参数,则返回数值的类型必须为double型如果具有多个返回变量,仅有第一个返回变量被赋值如果返回的参数不是标量,仅向量中的第一个元素被赋值50精选2021版课件状态转移—C语言数学函数调用C语言数学函数:如y=abs(x)仿真目标代码生成器提供了min和max函数的宏定义下表中所列的数学函数可以被调用51精选2021版课件状态转移—调用函数调用MATLAB函数时需要使用ml操作符,而调用C语言函数的时候则比较简单,例exp04调用C语言函数调用MATLAB函数52精选2021版课件状态转移—图表更新图表更新也是可以配置的,更新主要有三种形式:Triggered或Inherited——状态或者被外部输入的事件触发,或者按照输入信号的采样频率进行触发Sampled——按照一个固定的频率触发状态转换Continuous——每个仿真步长触发状态转换执行File菜单下的ChartProperties命令,在弹出的对话框中,设置Updatemethod字段中的内容系统默认的更新方式是TriggeredorInherited53精选2021版课件状态转移—触发与继承通过触发事件更新状态图需要在stateflow块输入具有过零特性的信号如果具有输入的事件,必须使用TriggeredInherited更新方法如果没有输入的事件,则状态图按照输入信号的采样频率自动更新使用继承更新方法,状态图依赖输入信号的更新而更新exp05采样周期设为0.254精选2021版课件状态转移—采样更新如果使用采样更新,则stateflow块类似于离散块具有固定的执行频率采样更新方法按照固定的时间步长触发状态图的更新使用该方法必须指定一个采样时间采样更新方法等同于状态图具有固定周期的驱动事件exp06离散采样周期0.255精选2021版课件状态转移—连续更新使用连续更新方法时,状态图的运行类似于连续系统模块连续更新方法在每一个仿真步长触发状态图的转换连续更新方法等同于状态图具有最小时间步长的触发事件exp0756精选2021版课件状态转移—调试器使用stateflow调试器解决状态图中的错误在调试器中运行模型,可以完全控制模型运行的过程执行调试器:使用Tool菜单下的Debug命令执行状态全局断点调试动作错误检测动画控制控制信息运行信息57精选2021版课件状态转移—设置断点可以将转移或状态作为本地断点来控制状态图的运行右键单击对象在快捷菜单中选择Properties选项在breakpoints设置相应的属性设置也可以将断点设置为数据对象的修改或者事件的触发,而这些设置在Stateflow浏览器中完成。断点控制58精选2021版课件状态转移—查询器从Tool菜单栏中选择find选项,你也可以使用按钮访问finder你可以限制搜寻的范围,要么查找Stateflow组件,要么既查找Stateflow组件,同时也查找Simulink对象。59精选2021版课件内容提要Stateflow入门介绍及基本概念创建状态图状态转移流程图建模状态图的层次并行机制60精选2021版课件流程图建模—转移检测优先权如果有多个有效的转移,检测规则决定执行哪个转移限制越多的转移,优先级越高:既有事件又有条件的转移第一个被检测仅具有事件的转移则被第二个检测仅具有条件的转移第三个被检测不加任何限制的转移最后被检测exp08低高61精选2021版课件流程图建模—转移冲突如果在同一个优先级中,具有两个合法的转移,在这种情况会触发一个转移冲突错误的警告信息。Stateflow通过几何的方法解决这样的问题:对于来自于一个节点的转移,按顺时针方向检测转移对于来自于一个状态的转移,从状态的左上角开始,检测转移新版本的stateflow可以自己设置转移执行的顺序62精选2021版课件流程图建模—流程图Stateflow图如果不包含任何状态就构成了一个流程图流程图主要是由转移和连接节点组成流程图并不包含任何存储器流程图一旦被触发,就会一直执行到退出为止在两个连续的触发之间,这个流程图是不活动的流程图在没有合法的转移分支的连接节点处执行结束63精选2021版课件流程图建模—终止节点终止节点就是连接节点,只不过该连接节点聚集了所有转移路径终止节点类似函数中的return声明在一个流程图中,必须要有一个无条件路径来终止连接,防止无穷递归在一个流程图中,以{}表示的条件动作仅仅是一个可执行的动作64精选2021版课件流程图建模—Ifelse结构Ifelse结构Ifelseifelse结构65精选2021版课件流程图建模—迭代循环结构for循环结构
While循环结构66精选2021版课件流程图建模—临时数据vs局部数据状态图中的局部数据就相当于函数的全局变量:只有在状态图中,数据才可见当状态图第一次被激活时,局部数据为初值。随后在状态图被激活时,局部数据为前一次数值重新赋初值时,它的值必须要重置状态图中的临时数据对象就相当于函数中的一个局部变量它的值仅在状态图中可见永远从初值开始在状态图的以后激活的情况下,自动重置只有在无状态的状态图中临时数据才是有效的2009a版本中已没有临时数据类型???67精选2021版课件流程图建模—密码检测逻辑密码检测逻辑的要求:密码是具有四个数字的输入信号流程图应分别检测每个数字是否与预设的密码匹配把正确的密码数字声明为常量如果密码正确,则输出为1,否则为0见例exp1068精选2021版课件内容提要Stateflow入门介绍及基本概念创建状态图状态转移流程图建模状态图的层次并行机制69精选2021版课件状态图层次—概念当一个状态图具有第二层状态时就构成了层次高层次的状态就被称为父状态,而低层次的状态就被称为子状态状态图中允许拥有的状态层次的数目是没有任何限制的Stateflow允许在不同层次状态之间存在转移如果转移穿越了父状态的边界直接到达了低层次的子状态,则转移被称之为超转移子状态的各种对象仅仅父状态活动时,才有可能执行或者有效直接从父状态发出的转移,可以不用考虑具体哪一个子状态处于活动状态70精选2021版课件状态图层次—层次化转移在具有层次的状态之间转移时,一般转移路径的源头是从最内部的子状态出发,而终止于目标状态的最内部的子状态。例exp1171精选2021版课件状态图层次—使用层次的目的在状态图中使用层次有如下几个目的:使用层次,可以将相关的对象组合在一起,构成族群可以将一些通用的转移路径或者动作组合成为一个转移动作或路径,简化模型适当地使用层次,可以有效地缩减生成代码的大小,也能够提高程序执行的效率和可读性72精选2021版课件状态图层次—生成组合父状态需要将父状态组合起来,这样就可以作为一个整体对状态图进行移动、拷贝或者重新定义尺寸操作方法:右键单击父状态弹出快捷菜单,选择MakeContents子菜单下的Grouped命令或者左键双击父状态73精选2021版课件状态图层次—低层次默认转移第二个层次状态的默认转移决定了当父状态被激活时,具体哪一个子状态被激活思考下图?例exp11和exp1274精选2021版课件状态图层次—历史节点历史节点记录了在父状态退出活动状态时,具体哪一个子状态处于活动状态当父状态再次被激活时,如果子状态没有定义显性直接转移,则历史节点将使其记录的子状态处于活动状态。例exp13
历史节点75精选2021版课件状态图层次—内部转移内部转移是指从父状态边缘内部出发,终止于子状态外边缘的转移,转移始终处于父状态的内部。例exp1476精选2021版课件状态图层次—层次转移测试优先权转移的测试从活动的父状态开始
向外的转移首先被测试(level1)接着是内部转移(level2)然后从活动的子状态开始检测转移穿越父状态边缘的转移首先被检测(level3)然后是父状态内部子状态之间的转移被检测(level4)在同等层次的转移之间,具有最严格限制的转移首先被检测
77精选2021版课件状态图层次—内部转移规则状态的外部转移优先于内部转移被首先测试内部转移仅在没有有效的外部转移使父状态退出活动状态时被执行内部转移优先于子状态之间的转移被首先测试78精选2021版课件状态图层次—状态动作vs转移测试状态入口动作在默认转移之前被执行状态的during或on-event动作在内部转移之前被执行例exp1579精选2021版课件状态图层次—子状态图子状态图是从父状态图中创建的它在功能上有别于父状态子状态利用灰色图块隐藏内部细节简化了状态图的复杂程度子状态图更类似与Simulink的子系统创建子状态图:右键单击父状态弹出快捷菜单,使用MakeContents子菜单,选择Subcharted命令80精选2021版课件状态图层次—子状态图之间超转移从源状态出发,左键拖放转移将转移拖过目标状态的边界,这时在子状态图中心将出现一个虫孔继续拖放转移到虫孔中心,编辑窗体将自动切换到子状态图的内部,显示子图的细节继续拖放转移,到最终的子状态的边界,这样完成了超转移的设置虫孔81精选2021版课件状态图层次—状态转移流程图状态之间的转移可以使用流程图来完成复杂的逻辑控制一旦发生了触发,状态转移中的流程图就会被执行,直到其中的一个分支到达了某个状态如果存在终点是连接节点的转移分支,这个转移被认为无效例exp1682精选2021版课件状态图层次—状态中的流程图包含于状态中,而没有状态终点的流程图能够控制动作的执行每次状态被激活,则流程图被执行一次流程图的运行直到流程图到达终点的节点,或者没有有效的转移路径为止当流程图运行结束后,父状态保持活动状态83精选2021版课件状态图层次—定义状态本地数据可以将数据对象的作用范围定义成为Local或者静态,这样数据对象的有效范围就可以在某个状态内部了通过浏览器的状态列表,执行浏览器的Tool菜单下的命令,可以为状态添加本地数据对象利用浏览器的状态列表,可以右键拖放本地数据对象到其他的状态中状态添加数据按钮84精选2021版课件状态图层次—访问数据对象在其他状态中访问其他状态的数据对象,需使用下面的语法结构:state_name.data_name如果父状态中存在与本地数据对象名称一致的数据对象,访问这个数据对象时也要使用下列语法结构:parent_name.data_name85精选2021版课件状态图层次—图形函数图形函数是指在状态图中以图形方式存在的函数主要结构形式是状态图的流程图函数一旦被创建,就可以重复使用允许包含输入输出接口来调用相应的动作或者条件86精选2021版课件状态图层次—创建图形函数87精选2021版课件内容提要Stateflow入门介绍及基本概念创建状态图状态转移流程图建模状态图的层次并行机制88精选2021版课件并行机制—概念边框为虚线的状态表示为并行状态当父状态处于活动状态时,并行状态也处于活动状态将默认转移终止到并行的状态时非法的89精选2021版课件并行机制—设置状态解析关系设置状态的并行关系需要将状态默认的解析关系从互斥变为并行用鼠标右键单击状态的父状态,注意不是每个状态,然后在Decomposition子菜单下选择Parallel命令对于顶层的状态,直接在图形编辑器背景右键单击,然后在Decomposition子菜单下选择Parallel命令90精选2021版课件并行机制—使用层次的并行状态可以在任意的层次上设置并行状态在同一个层次上的不同状态的解析关系必须保持一致即在某个层次上,所有的状态要么是互斥的,要么就是并行的,两种解析状态是不可能同时存在于同一个父中
91精选2021版课件并行机制—并行状态的激活顺序并行状态的激活是有一定顺序的并行状态的激活顺序在每一个状态的右上角标明激活次序一般按照“从上至下,从左至右”的规则激活次序标注92精选2021版课件并行机制—并行状态执行顺序在并行状态中的所有有效的状态(包含子状态)执行到下一个有效的状态被执行为止exp19执行一次的结果:out=1out=4out=8out=1193精选2021版课件并行机制—本地事件广播使用事件广播,可以在某个状态内部触发其他并行状态的执行被广播的事件在数据字典中定义为Local。例exp20事件广播94精选2021版课件并行机制—本地事件优先级本地事件广播的优先级相当于函数调用当出现事件广播时,原有的执行顺序被打断,直到所有与事件广播有关的动作执行完毕PLAY广播事件时,先执行与其有关的动作见例exp2195精选2021版课件并行机制—直接事件广播使用直接事件广播可以限制广播的事件触发指定的状态可以防止事件广播无意识的改变整个状态图的状态使用直接事件广播的命令格式:send(event_name,state_name)例exp2296精选2021版课件并行机制—定义状态的本地事件可以限制事件的作用范围在状态的内部:在浏览器种选择某个状态使用浏览器的Add菜单添加事件到数据字典也可以通过浏览器修改事件的可见范围也可以修改事件到不同的状态中
97精选2021版课件并行机制—受限事件广播状态之外触发状态的本地事件需要指定状态名,命令格式为:state_name.data_name使用受限的事件广播可以将事件限制在具体的状态内例exp2398精选2021版课件并行机制—隐含事件和条件有助于简化并行状态之间的依赖关系减少数据字典中定义的事件数量,降低状态图的复杂程度隐含事件:entry(state_name)或en(state_name)exit(state_name)或ex(state_name)change(data_name)或chg(data_name)wakeup或tick隐含条件:[in(state_name)]99精选2021版课件并行机制—使用隐含事件和条件例exp24100精选2021版课件并行机制—时间逻辑事件使用时间逻辑事件,可以根据事件发生的次数决定事件的逻辑转换时间逻辑操作符(at,every,after和before)分别完成相应的Boolean运算,处理Stateflow事件的发生次数
时间逻辑可以:监测转移控制on-event状态动作语法:temporal_operator(number,event_name)Stateflow中有四种时间逻辑:at(n,event):当事件第n次触发时every(n,event):当事件每触发n次时after(n,event):当事件触发n次后before(n,event):当事件第n次触发前例exp25101精选2021版课件并行机制—时间逻辑事件(续)下列情况下,事件计数器清零:具有时间逻辑转移的源状态进入活动状态具有on-event状态动作使用时间逻辑运算符的父状态被激活时102精选2021版课件Thankyou103精选2021版课件stateflow基本概念—状态机有限元状态机是具有有限个状态的系统的理论表述。它以某些缺省的状态为起点,根据所定义的事件和转移进行操作。转移表示状态机如何对事件进行响应。它有明确的输入和输出个数,可以明确地配置所有的模式或状态。它定义了导致系统从一个状态转换到另一个状态的逻辑或事件直观理解:模型中包含的所有stateflow块的集合104精选2021版课件stateflow基本概念—状态在有限元状态机里,状态描述的是系统的一种模式。状态具有布尔行为,也就是说在任何给定的时刻它或者是活动的或者是非活动的。状态在系统中被看作为记忆元件。它保持系统的当前模式,一旦被激活,状态就保持活动的模式,直到系统改变模式,状态才变为非活动的。在层次的同一级里,所有的状态要么是互斥(OR)的要么并行(AND)的。如果状态之间是互斥的,那么在任何给定的时刻只有一个状态是活动的,如果状态之间是并行的,在同一时刻所有的状态都是活动的。在同一级里面不可能有既是互斥的又是并行的状态存在。它们必须是或者互斥或者并行。105精选2021版课件stateflow基本概念—转移转移描述的是有限状态系统内的逻辑流。转移管理了当系
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖南省浏阳市2027届九年级化学第一学期期末学业质量监测模拟试题含解析
- 2027届甘肃泾川县九上化学期末调研试题含解析
- 2027届北京朝阳人大附朝阳分校九上物理期末联考试题含解析
- 2027届湖南省汨罗市沙溪中学九上化学期末联考试题含解析
- 2027届江苏省句容市华阳片区九上物理期末质量跟踪监视模拟试题含解析
- 2026中国运动毛巾市场竞争格局与品牌溢价能力分析报告
- 天津市河北区2027届九上物理期末调研模拟试题含解析
- 2027届河北省沧州孟村县联考物理九上期末综合测试模拟试题含解析
- 2026中国叶黄素酯下游应用市场拓展与商业机会分析报告
- 2026汽车轻量化技术深度研究及材料创新应用价值评估
- 2026年杭州青少年活动中心招聘游艺项目操作员5人考试备考试题及答案详解
- 租房合同协议书(2026版)
- 2026年新(高级)政工师理论考试题库及答案
- 养老院消防安全评估要点
- 小学五年级数学《分数与小数的互化》深度教学教案
- 2026年专利代理师高频面试题包含详细解答
- 2026年云南国企招聘考试(公共基础知识、综合知识)历年参考题库
- 第04讲 勾股定理 折叠问题专练(解析版)
- 2026年心理咨询师(初级)职业技能鉴定考试试卷(含答案)
- 2026年新版应急处置卡共31项含管理和操作岗位
- 上海市2025上海同济大学生命科学与技术学院本科生教学秘书招聘1人笔试历年参考题库典型考点附带答案详解
评论
0/150
提交评论