matlab仿真2-4 stateflow



《matlab仿真2-4 stateflow》由会员分享,可在线阅读,更多相关《matlab仿真2-4 stateflow(53页珍藏版)》请在装配图网上搜索。
1、,,单击此处编辑母版标题样式,,单击此处编辑母版文本样式,,第二级,,第三级,,第四级,,第五级,,,*,机电系统设计与仿真,,,Lecture2.4,Stateflow,简介,,2.3 Stateflow,,,Stateflow,,是,一种与,,Simulink,,联合使用的用于控制和管理逻辑的图形设计开发工具。它用,有限状态机,理论,为复杂的系统行为提供清晰的,简明的描述。,,,2.3.1,Stateflow,的特点,,“,Stateflow,is Part of,Simulink,”,,,“,Stateflow,is a Finite State Machine,,,“,Stateflo
2、w,Adds Flow Diagrams to the State Machine”,,,“,Stateflow,Simulates its State Machine”,,,“,Stateflow,Generates Code”,,2.3.2. Build a Stateflow Model,,通过以下步骤可以建立一个,Stateflow,模型,,1),“Create a,,Simulink Model,”,,,2),“Create a,,Stateflow Diagram,”,,,3),“Define Input,Events,and,,Input Data,,4),“Define the
3、,Stateflow Interface,,5),“Define,,Simulink Parameters,”,,,6,),“,Parse,the Stateflow Diagram”,,7,),,“,Run,a Simulation”,,,要求:对加热器进行定时加热并保证被加热物体温度不超过,30,摄氏度。,,,状态,1,:加热,— on ;,,,触发条件:上升沿,—,on_switch,;,,,状态,2,:停止加热,— off;,,,触发条件:下降沿,—,off_switch,;,,,初始状态:停止加热,— off;,,,检测温度:,20,度、,40,度,,— temp,例:温度控制,(,
4、stateflow_tempreture.mdl,),,,,,Stateflow,模块,stateflow_temp_event,,,,stateflow_heat_data,,,,2.3.3,语法说明,1,状态语句说明,State Label Notation,,1,),语句的一般形式,,name,/,,entry:,,entry actions,,during:,,during actions,,bind:,,events,,,data,,exit:,,exit actions,,on,event_name,:,,on event_name actions,,2,) 状态分解,(State
5、 Decomposition),,,OR,状态分解,,,,,,,,,,,图中或是,A,被执行,或是,B,被执行。当,A,被执行时,,A1,或,A2,可以在某一时刻被执行。,,,AND状态分解,,,图中当A被执行后,A1 A2被同时执行。或,B,C,同时被执行,。,,2,动作,Action,,1,)动作类型,,(,1,)状态动作类型,State Action Types,,每个,State Action,后面都跟,(,:),号,以,(;),或者,(,),结束。,Entry Actions,:,进入模块,Entry actions,第一个被执行。,,Exit Actions,:,当出口条件满足时执
6、行,Exit actions,。,,如果进入后不满足出口条件,则执行,During Actions,。,否则不执行,During Actions,,,而直接执行,Exit actions,During Actions,:,当没有到其它的状态的传递时,,During Actions,才能被执行。,,(,2,) 传递动作类型,Transition Action Types,,Event Triggers,,,在传递标号中,,Event triggers,是第一个出现的事件名。不需要用特殊的字符来区分其它部分。它发出一个确定的事件,使传递开始执行,提供执行的条件。如果缺省,表示可以无条件执行。多个事
7、件用或逻辑符,(,|,),来分隔。,,Conditions,,Conditions,的前后用,(,[],),分隔,是布尔形表达。,,必须是布尔型,true(1) or false(0).,,可以包括以下内容,,,-,,布尔操作的比较数值,,,-,,一个能返回布尔值的函数,,condition,表达式不能调用引起,Stateflow,状态或变量改变的函数。,,布尔代数可以用,&,(,与,),,,|,(,或,),组合。,,Condition Actions,,,,跟在,condition,之后,用,(,{},),分隔。条件满足后被执行。如果没有条件,当潜在的条件值满足后也可以执行。,,Transi
8、tion Actions,,,用反斜杠,(,/,),分隔,,Transition,有效后被执行。当有多段条件时,当所有条件都满足才能被执行。,,,3.,传递,Transition,是连接图形之间的代箭头的连线。它从一个原对象出,,发,在一个目的对象终止,箭头代表传递方向。,单向传递,多向传递,,1,)传递语句说明,Transition Label Notation,,,基本结构,,event,[,condition,],{,condition_action,},/,transition_action,,Event.,,定义什么条件会引起传递发生,当,[,off_count,==0],真,从,O
9、N,传递到,OFF,。,,Condition,. [,off_count,==0],,Condition Action.,,当条件,[,off_count,==0],真,执行,,,off_count,++,,Transition Action.,,传递的执行结果,Light_off,,状态之间的传递,,,通过节点的传递,,,高层状态之间的传递,,当,OFF,被执行,且,Switch_on,发生时,,ON,被执行。,,当,ON,被执行,且,Switch_off,发生时,,OFF,被执行。,,这里,ON,状态是高层次。,,自回路传递,,缺省传递,Default Transition,(,1,) 去
10、状态的缺省事件,,当第一次被激活时,必须决定执行,S,还是,B,,因为,S,和,B,是并行的,且没有条件。由於缺省传递指向,S,,以此,S,先被执行。,,(,2,)去节点的缺省事件,,,4,节点,Connective Junctions,有相同条件的情况,,,有一个不确定条件的情况,,满足事件,E,时,且,[,C_one,],真,,A,到,B,被执行。,,满足事件,E,时,且,[,C_two,],真,,A,到,C,被执行。,,满足事件,E,时,且,[,C_one,],和,[,C_two,],都假,,A,到,D,被执行。,,自传递节点,当,A,被执行,事件,e,发生,且满足条件,[c1],时,从
11、,A,到,B,的传递发生,且执行,a1.,,,当,A,被执行,事件,e,发生,且不满足条件,[c1] (,满足,[~c1] ),时,从,A,到,A,的传递发生,且执行,a2.,,自回路,,在状态,A,,当事件,E,发生,从,A,向,B,传递,且执行,{i=0},。然后执行,{i++;func1()},,直到,[i<10],假。,,这里,{i=0},为循环确定了初值。由於到,B,的传递没有条件,最后结束于,B,。,,同一个源到多目标的节点,,到一个共同事件的节点,,节点传递举例,,,8,位,ADC,流程图举例,,8,位,ADC,流程图举例,,当状态,Sensor,被执行,且事件,UPDATE,发
12、生时。从,Sensor,到节点的内部传递有效,下一段的条件动作,{,start_adc,()},被执行,启动,ADC,。,,第二个节点的自循环回路循环检测,ADC,的状态,当,[,adc_busy,()],为假,结束自循环。,,执行下一段的条件动作,{,sensorValue,=,read_adc,()},,读,ADC,结果到变量。如果,[,sensorValue,<100],,执行,Low,。如果,[,sensorValue,>200],,执行,High,。如果,[200>,sensorValue,>100],,执行,Normal.,,5,事件和数据,Events and Data,1,)
13、 定义,Events,,事件 是,Stateflow,的对象,用来触发一个行为,,Adding Events to the Data Dictionary,,,可以使用,Stateflow,对话框编辑器或者,Explorer,添加不多于,254,个 事件。,,从,Tools menu,选,Explore,,,,Using the Stateflow Editor,,从,Add menu,选,Event,,,设置新的,,event’s Properties,,,双击选定的,event,出现,event properties,对话框后设置,properties,。,从,Scope,选择,even
14、t,范围,(,类型,),,包括,Local,,,Input from,Simulink,,,Output to,Simulink,,,Exported,,,Imported,,,Trigger,,,Index,,,Port,,,Description,,,Document Link,等,,,2,) 定义,Data,,Using the Stateflow Editor to Add Data,,,与添加,event,的 方法相同,,Setting Data Properties,,,与设置,event,的 方法相同,,例,试用,Stateflow,编写机械手 作业空间判断程序。
15、,已知极坐标式两自由度机械手的极角范围为-,90°,~+,90°,,极半径范围为,200,~,400mm.,,解:,,command,为程序运行状态:,1--,表示工作在轨迹控制模式,需要作业范围的判断;,,alarm,是报警信号:,1--,表示超出作业空间;,,R,为给定的极半径;,R_min,和,R_max,分别表示最小极半径和最大极半径;,,a,为极角;,a_min,和,a_max,分别表示最小极角和最大极角;,,,,Rmin,=200,,Rmax,=400,,Amin,=-90,,Amax=90,,Rmin,=200,,Rmax,=400,,Amin,=-90,,Amax=90,,有限
16、状态机(,Finite State Machine,,),所谓有限状态机,就是指在系统中有可数的状态,在某些事件发生时,系统从一个状态转换成另一个状态,又称为事件驱动的系统。,,,,在有限状态机的描述中,可以设计出从一个状态到另一个状态转换的条件,在每对相互可转换的状态下都设计出状态迁移的事件,从而构造出状态迁移图。,返回,,“Stateflow is Part of Simulink”,在,,Simulink,中,, Stateflow,作为其中的一个模块,用状态流图来表示。,,返回,,“,Stateflow is a Finite State Machine,,Stateflow,是有限状
17、态机器,,,通过改变状态,有限状态反映为事件,,(Events),。,,返回,,“,Stateflow Adds Flow Diagrams to the,,State,,Machine”,,通过连接,(junction),把状态流图添加到状态机器中。,返回,,“,Stateflow Simulates its State Machine”,,,当完成一个,,Stateflow,图,后,可以对它进行仿真。发生的事件变成红色。,,返回,,“,Stateflow Generates Code”,,在仿真过程中,Stateflow,产生它自己的,,C-code,来仿真状态流图。,,用,Real-Time Workshop(RTW),工具可以从,Simulink,和,Stateflow,得到代码,并可以用于其它环境的控制过程。,,也可以从状态流图产生代码。,,返回,,
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。