层级结构

Stateflow中,可以在状态中创建状态,再创建状态,无限套娃。。。如下如图,我在一个状态框里面又画了两个状态框。这里面,外面的框被称为父级,里面的状态被称为子级。其运行顺序如红线所示,里外两个框都有一个大圆点和箭头,这个大黑点与箭头就是stateflow运行的起始位置。

如下图,可以进行不断地套娃:

那么层级结构有何作用?这个很难简单讲清楚,这个我感觉各个使用者的体会可能会有所不同,我这里讲一下我的感受,用Demo举例说明可能更好理解。

如上,一个CD机有多重功能,就像我们电CD机菜单的时候,一个菜单下面会有子菜单。假如把所有的功能都全部平铺出来,放到一个级别中来演示,那么用户就很难找到自己想要的功能。这些菜单内的功能,体现在模型中,那就是非常多的子子模型,在stateflow中就是非常多的子状态。因此在Stateflow里面,也需要有这种“子菜单”的概念,这样开发的时候才能够更加高效。如下为Simulink demo Model Media Player by Using Enumerated Data中的Stateflow chart,结合前面的说明,相信应该很容易体会到层级结构的作用。

互斥与并行

有些时候,我们会希望在某些时刻,多个状态能够同时运行,这个时候就涉及到状态之间的运行关系了。Stateflow中存在两种运行机制:互斥与并行。

如下图的chart,Child_state1与Child_state2为互斥状态OR,在同一时刻,这两个状态只能执行其中一个:

如下图的chart,这里面Child_state1与Child_state2为并行状态AND,在同一时刻,两个状态同时执行:

可以发现,互斥和并行的区别,在chart中反映在框框的虚实。实现框为互斥,虚线框为并行。我们一般默认创建的都是互斥框,那么如何创建并行的呢?

选择父级后点击菜单中decomposition菜单中的or\and可以进行互斥与并行的切换,右键父级也可以进行切换:

点击转换完,就可以看到框框变成虚线了:

并行状态的执行顺序

虽然说是并行状态,状态也确实会同时被激活,但是在执行的时候,这些状态在刚进入的时候也还是有执行顺序的,而执行的顺序顺序就是按框框上的的数字来的。可以看到,设置好并行后,框框的右上角会出现数字。这些数字就是在这个父级中,这些并行子级的执行顺序。如果对执行顺序有修改的需要,点击execution order进行更改即可。

Simulink学习——stateflow快速入门之层次结构、互斥及并行相关推荐

  1. 深度学习工程应用快速入门

    课程介绍 伴随人工智能时代的到来,深度学习技术也发挥着越来越重要作用,越来越多的技术人才开始投身入这一行业中,并希望发展成为一名深度学习算法工程师.然而,在实际的工程设计中,深度学习研发者总会面临着各 ...

  2. HTML5+app开发学习之快速入门篇

    HTML5+app开发学习之快速入门篇 5+app开发概念理解相关 开发环境与支持 快速入门实战 5+app开发概念理解相关 见博文:学习跨平台移动应用开发必须理解的一些概念 开发环境与支持 开发环境 ...

  3. Spring学习(1)——快速入门

    Spring学习(1)--快速入门 认识 Spring 框架 Spring 框架是 Java 应用最广的框架,它的成功来源于理念,而不是技术本身,它的理念包括 IoC (Inversion of Co ...

  4. Java学习的快速入门:10行代码学JQuery

    生活在快速发展时代的我们,如果不提速可能稍不留神就被时代淘汰了.快节奏的时代成就了快餐,亦成就了速成教育.尤其是身处互联网行业的我们,更新换代的速度更是迅速,快速掌握一门技术已经成为潮流趋势.怎样才能 ...

  5. Python学习之快速入门

    1. 前言 最近玩服务器,需要服务器和本地的一个端口进行互交,查了一些资料,发现用 Python实现很简单,刚好我也想学学一些Python语法.我之前编程语言已经学习了C/C++,Java语言,所以就 ...

  6. UVM学习笔记—快速入门篇

    UVM指的是验证方法学,是学习数字验证的入门课程.它是至关重要的,有不少人往IC验证方向发展的,多多少少都会去了解UVM.但UVM并不是简单的翻个书就可以学会的,还是要掌握学习方法或者跟着老师学习的. ...

  7. 少样本学习原理快速入门,并翻译《Free Lunch for Few-Shot Learning: Distribution Calibration》

    ICLR2021 Oral<Free Lunch for Few-Shot Learning: Distribution Calibration> 利用一个样本估计类别数据分布 9行代码提 ...

  8. Redis学习笔记——快速入门

    @ NoSQL数据库简介 技术发展 技术的分类 1.解决功能性的问题:Java.Jsp.RDBMS.Tomcat.HTML.Linux.JDBC.SVN 2.解决扩展性的问题:Struts.Sprin ...

  9. 大数据存储技术之KUDU学习总结/快速入门

    KUDU学习总结 1 基础概念 官方:https://kudu.apache.org/ 在 KUDU 之前,大数据主要以两种方式存储: • 静态数据:以 HDFS 引擎作为存储引擎,适用于高吞吐量的离 ...

最新文章

  1. Tokyo Cabinet 安装
  2. 最小费用最大流 ---- 2017icpc青岛现场赛 K Our Journey of Xian Ends (拆点控制原图点度 + 中间必经过的点设置成源点 + 起点设成汇点)
  3. mqtt 获取所有topic_MQTT协议解析
  4. InstallShield 2011新功能试用(3)- Script Editor Intellisense
  5. python中不具备np_Python中np.random.multivariate_normal问题?
  6. oppo计算机打不开怎么回事,一体机电脑突然关机了?然后就打不开了怎么回事啊?...
  7. 采用EntityFramework.Extended 对EF进行扩展(Entity Framework 延伸系列2)
  8. Java线程面试题 Top 50 (转载)
  9. 五个部署Hyper-v的常见错误.
  10. 巧用 SSH 打通外网限制
  11. 基于opencv的重叠图像的凹点分割(C++)
  12. 谷歌浏览器如何截取整个网页保存为图片截取整个网页长图
  13. web前端入门到实战:img中alt和title属性的区别
  14. Riverbed助世界最大集装箱航运公司马士基实现数字化转型
  15. 第35讲:Xposed+模拟器的详细使用
  16. 【报告分享】2021中国品牌消费趋势报告-京东大数据研究院(附下载)
  17. Mysql学习笔记(一)学完就出师系列哈哈哈
  18. 对docker一些认知
  19. mysql中的临时表怎么用的?
  20. 从国企到阿里的面试经历(一)

热门文章

  1. 【小样本分割 2020 TPAMI 】PFENet
  2. 虚拟服务器怎么导入ova,华为虚拟化平台导入ova包
  3. rtsp推流桌面,vlc拉流
  4. c++大小写字母转换
  5. ESP8266-Arduino编程实例-PWM
  6. Linux实验 输出6之内的数字金字塔
  7. usb root hub的启用和设备的识别(1)
  8. echarts饼状图环形中间动态文字
  9. ecmall 如何新增挂件
  10. mysql 占用cpu过高