第五日:Stateflow的并行状态和复杂逻辑判断

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介:
< 2018年1月 >
31 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 1 2 3
4 5 6 7 8 9 10

统计

  • 随笔 - 116
  • 文章 - 38
  • 评论 - 254
  • 引用 - 0

公告

Flag Counter since July 10, 2013
昵称: 五岳
园龄: 7年1个月
粉丝: 605
关注: 15
+加关注

随笔分类(266)

随笔档案(116)

相册(31)

常用资料

友链

第五日:Stateflow的并行状态和复杂逻辑判断

外出游玩了几天,早上6点多回到了成都,在租的房子里稍微整理洗漱了下继续去教研室自学。

上午一直在看并行状态的创建。由于MATLAB2008的Stateflow工具箱创建并行进程后并不是根据拖动即时调整状态的序号,而是需要取消并行再次选择使用并行,额外耗费了点时间。这个序号可以在仿真的时候直观地看到它的作用:两个并行状态,确认先进入哪一个。

p.s.所用的资料(基于MATLAB7.x+SIMULINK_STATEFLOW系统仿真、分析及设计)有点小问题,12.8例子里面双风扇打开后,当temp调节至28以下时,Fan2的关闭会导致speed=0,算是个bug了。如果要解决,Fan2的操作改成speed=speed-1就行了。

这样便开始学习资料里最后一小节:利用Stateflow的完成复杂的状态逻辑判断,在此梳理一下相关知识以便备忘(大部分摘自《基于MATLAB7.x+SIMULINK_STATEFLOW系统仿真、分析及设计》)。

1.Stateflow的动作

⑴条件动作和迁移动作

一般形式

触发事件[迁移条件关系式]{条件动作}/迁移动作

⑵状态动作

一般格式如下,第一行规定状态名称,其余各行规定状态的动作,每个状态的动作必须单独另起一行。

?
name/
 
entry:entry actions
 
during:during actions
 
exit:exit actions
 
bind:data and events
 
on event_name: on event_name actions

关键词

输入内容

描述

name

在name处输入状态名,随后紧跟“/”

entry或en

entry actions

状态进入动作,表示发生状态迁移,激活了该状态时需要执行的动作。

during或du

during actions

状态仍然激活动作,表示原处于激活的状态受到一个事件的触发,不存在从这个状态发出的状态迁移时,此状态仍处于激活状态需要执行的动作。

exit or ex

exit actions

状态退出动作。表示存在由此状态发出的有效状态迁移时,该状态退出时执行的动作。

bind

data and events

数据事件绑定动作。将数据data和事件events绑定在此状态上。绑定的数据只能在此状态或其子状态内被改写,其他状态只能读取此数据。绑定的事件由此状态或其子状态广播。

on

event_name;

on event_name atcions

特定事件发生动作。 event_name规定一个特定的事件;on event_name actions表示当该状态是激活状态且event_name规定的事件发生时需要执行的动作。

2.Stateflow的隐含事件

  当Stateflow图被唤醒时或进入到某个状态或从某个状态退出或某个内部数据(非输入数据)赋值时,Stateflow会定义并触发某种事件。这些事件是Stateflow自动定义触发的,非用户定义、添加的,故称为隐含事件。

隐含事件

含义

change(data_name)

chg(data_name)

当变量data_name的数值发生变化时,定义或产生一个局部事件

enter(state_name)

en(state_name)

进入状态state_name时,定义或产生一个局部事件

exit(state_name)

ex(state_name)

退出状态state_name时,定义或产生一个局部事件

wakeup

动作图刚刚唤醒时,定义或产生一个局部事件

tick

同wakeup

隐含事件是瞬时逻辑操作的内容之一。

3.动作中的瞬时逻辑操作

⑴after瞬时逻辑操作

一般格式   after(n,E)

其中n是正整数或结果为正整数的表达式,E是基事件(可以是隐含事件),E发生n次后逻辑操作为真,反之为假。对于没有输入的stateflow图,表示当该图被唤醒n次后,瞬时逻辑操作为真。

需要指出的是after瞬时逻辑操作的项链状态每次激活时,基事件E的计数器都被复位为0。

⑵before瞬时逻辑操作

一般格式   before(n,E)

类似于after,当E发生小于n次时,逻辑操作为真,反之为假。同样在相连事件每次激活时,基事件E的计数器被复位为0。

⑶at瞬时逻辑操作

一般格式   at(n,E)

类似于after,当E事件第n次发生时,逻辑操作为真,反之为假。对于没有输入的stateflow图,表示当该图第n次被唤醒时,瞬时逻辑操作为真。同样在相连事件每次激活时,基事件E的计数器被复位为0。

⑷every瞬时逻辑操作

一般格式   every(n,E)

类似于after,当E事件每发生n次时,逻辑操作为真,反之为假。对于没有输入的stateflow图,表示当该图被唤醒次数小于n时,瞬时逻辑操作为真。同样在相连事件每次激活时,基事件E的计数器被复位为0。

4.事件广播

广播是一个非常有效的同步并行状态的方法。

⑴通过迁移动作进行直接事件广播。

直接广播的格式

    send(事件名,状态名)

利用有效事件名直接进行事件广播的格式

    状态名.事件名

⑵通过条件动作进行事件广播。

⑶通过状态动作进行事件广播。

 

至此,对Stateflow的简单学习就结束了,以后需要在实例的接触和具体应用中提高自己的实战能力。





本文转自五岳博客园博客,原文链接:www.cnblogs.com/wuyuegb2312/archive/2011/07/12/2104010.html,如需转载请自行联系原作者

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
20
分享
相关文章
|
18天前
多个异步操作按顺序执行和并行执行,哪种方式效率更高?
多个异步操作按顺序执行和并行执行,哪种方式效率更高?
17 1
使用 prange 实现 for 循环的并行
使用 prange 实现 for 循环的并行
167 1
使用 prange 实现 for 循环的并行
线程操纵术并行策略问题之任务执行器(Executor)问题如何解决
线程操纵术并行策略问题之任务执行器(Executor)问题如何解决
线程死锁检测组件逻辑与源码
线程死锁检测组件逻辑与源码
95 2
线程执行顺序怎么控制?
线程执行顺序怎么控制?
79 0
同步模式之顺序控制线程执行
同步模式是指在多线程编程中,为了保证线程之间的协作和正确性,需要对线程的执行顺序进行控制。顺序控制线程执行是一种同步模式,它通过控制线程的等待和唤醒来实现线程的有序执行。
160 0
同步模式之顺序控制线程执行
我打破了 React Hook 必须按顺序、不能在条件语句中调用的枷锁!
不要在循环,条件或嵌套函数中调用 Hook, 确保总是在你的 React 函数的最顶层以及任何 return 之前调用他们。遵守这条规则,你就能确保 Hook 在每一次渲染中都按照同样的顺序被调用。这让 React 能够在多次的 useState 和 useEffect 调用之间保持 hook 状态的正确。(如果你对此感到好奇,我们在下面会有更深入的解释。)
状态机设计举例
⭐本专栏针对FPGA进行入门学习,从数电中常见的逻辑代数讲起,结合Verilog HDL语言学习与仿真,主要对组合逻辑电路与时序逻辑电路进行分析与设计,对状态机FSM进行剖析与建模。
202 0
状态机设计举例
用有限状态机去理解这个逻辑过程
用有限状态机去理解这个逻辑过程
103 0
用有限状态机去理解这个逻辑过程
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等