作者:empty 出版社:empty |
两个chart的并行状态的设置:在Stateflow的空白处, 布击鼠标, 选择Decomposition-parallel(AND) 此时两个状态的边框将变成虚线, 并出现边框状态(state) ; 双击它就可以在其中写一些命令、格式如下(%后面的是我自加的, 方便解释) :name/%此状态的名称entry:entry action%刚转换到此状态时执行entry actionduring:during action%在此状态之中时执行during actionexit:exit action%退出此状态时执行exit action(可以是事件触发)Stateflow中的动作; 触发时间[迁移条件关系式] 条件动作; /迁移动作。注意StateFlow同层次的图执行顺序是从上到下, 从左到右的优先级原则, du rng和on事件的执行顺序由他们在状态图中的位置决定,先写的先执行oneventname:oneventnameaction%当某事件发生时执行onevent_nameaction历史节点(History Junction) :旦个状态框中有这个历史节点, 在退出这个状态吋会将这个状态的一些信息保存下来,当下次再进入此状态时,此状态的初始状态就会是前面保存过的那些信息。默认转换(default transition) :把他拖到个状态的旁边, 它就会指向个状态, 表示系统
启动后将首先进入这个状态,节点(Junction) :它是方便面状态图的, 当各个状态之间的转换很复杂时, 可以设立中间节点,将一些相同的转换指向它,然后再由它指向各个状态(或另个中间节点)转换线(transition) :将鼠标放在一个状态的旁边, 当它变成+形状的时候, 按下左键不动,就会拉出一条线来,当拉到另一个状态旁边时松开左键,这样就画出了一条由一个状态指向另一个状态的转换线,选中这条线,将鼠标停留在上面,鼠标会变成一个Ⅰ的样子,这时按下鼠标, 就可以在上面写语句, 例:switch(switch事件使状态转换) 或[output max time] (当此条件满足时进行状态的转变),交汇连接点:主要用于处理状态迁移过程中的迁移信号的分离和汇合,合理的使用可以实现ifelse的功能图形函数工具;格式:返回形参=函数名(形参)状态流的图形函数是使用交汇连接工具和状态转移工具绘制状态流图形,在调用函数时,函数必须执行完全,所以图形函数中不能含有状态。一个最小的图形函数至少要包含一个缺省的迁移和一个终止的交汇连接工具可以在状态流的状态动作好状态迁移中反复调用它,调用的格式与函数的格式完全相同,知识需要将形参换成实际使用的参数变量,历史交汇工具的使用:Stateflow图进入上层状态时, 缺省状态迁移线连接的了系统首先被激活,单在某些情况下,希望在进入上层状态时首先激活以前的最后的状态,这样就要求在上层状态中引入历史交汇工具完成。嵌入式MATLAB函数:格式:函数名(形参)内嵌函数的调用类似于图形函数的调用方法,用户可以在状态的动作和迁移过程中对内嵌函数进行反复的调用,
真值表的决策和使用:Stateflow使用函数在处理Stateflow图中反复处理的动作和判断。在真值表中,用户可以使用条件、决策和动作来做逻辑判断,并执行相应的动作,对于纯粹的逻辑来讲,真值表还可以告诉用户是否对于指定的条件做出足够的或过多的决策。Stateflow使用真值表函数实现逻辑决策及相应动作的执行, Stateflow真值表含有条件、决策和动作.Stateflow还允许真值表函数添加初始和终止动作。始动作指仁和决策判断前的动作, 终止动作指顶真值表函数即将退出最后执行的动作。在动作编辑表中使用IN IT和FINAL来为真值表函数指定初始和终止动作为什么初始动作和结束动作不能用决策列隐含着各个条件的 与 操作, 最后一个决策称为缺省策略。可以很好的实现if_else的功能。缺省策略怎么实现Box工具整理状态流图:状态图右击Type Box, 也可以直接创建Box, 在里边创建其他的对象, 创建好之后可以打包MakeContent-Group:Box中的对象就变成了子图, 对Box添加数据, 可以是Box中的所有原始共享该数据。多数情况下Boxes不改变Stateflow图的逻辑判断功能, 但是存在并行状态时, 她却影响着StateFlow图中的激活顺序, 在个Box中, 顺序是从上到下, Box之间是左到右以上的共同点:创建的时候参数需要在model中创建输入参数和输出的参数。Stateflow中的动作:触发时间[迁移条件关系式] 条件动作/迁移动作。任何Stateflow事件都(包括enter事件、exit事件、或change事件等隐含事件) 都可以作为瞬时动作的基事件。可以使用simulink的输入, 也可以使用隐含时间wakeup或(tick)来唤醒Stateflow图(不能用在缺省的途中.
State l low中的动作:触发时间[迁移条件关系式] 条件动作} /迁移动作、触发事件表示只要迁移关系式是真,该触发事件可以引发状态的迁移,缺省触发事件条件关系式一般为布尔关系式,写在方括号中,使得对于特定的信号有效,本例巾,条件动作是指当条件关系式一旦成立(即为真时),就执行的动作,通常发生在迁移终迁移动作是指当迁移终点已经确定有效才执行的动作,如果迁移包含很多阶段,迁移有限元状态机是具有有限个状态的系统的理论表述。它以某些缺省的状态为起点,根据时,任何事件均可以在条件关系式为真的情况下引发状态的迁移,在图12.7中,只有条们[off_count==0] 为真, 事件off_switch可以引发状态On致状态Off的迁移。只有off_count--0为真时, 发生事件off_switch才可以引发状态的迁移。点被确认有效之前,如果没有规定条件关系式,则认为条件关系式为真,即刻执行条件动作,条件动作必须写在花括号中, 在图12.7中, 只要条件[off count==0] 为真, 即刻执行条件动作只有在整个迁移通道到终点确认为有效厚方可执行。迁移动作写在斜线*之后,在图12.7中的实例中, 当条件[off_count--0] 为真, 发生了off_switch事件, 迁移终点状态O If确认为有效, 此时执行迁移动作LED off.