Simulink学习——stateflow快速入门之层次结构、互斥及并行
层级结构
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快速入门之层次结构、互斥及并行相关推荐
- 深度学习工程应用快速入门
课程介绍 伴随人工智能时代的到来,深度学习技术也发挥着越来越重要作用,越来越多的技术人才开始投身入这一行业中,并希望发展成为一名深度学习算法工程师.然而,在实际的工程设计中,深度学习研发者总会面临着各 ...
- HTML5+app开发学习之快速入门篇
HTML5+app开发学习之快速入门篇 5+app开发概念理解相关 开发环境与支持 快速入门实战 5+app开发概念理解相关 见博文:学习跨平台移动应用开发必须理解的一些概念 开发环境与支持 开发环境 ...
- Spring学习(1)——快速入门
Spring学习(1)--快速入门 认识 Spring 框架 Spring 框架是 Java 应用最广的框架,它的成功来源于理念,而不是技术本身,它的理念包括 IoC (Inversion of Co ...
- Java学习的快速入门:10行代码学JQuery
生活在快速发展时代的我们,如果不提速可能稍不留神就被时代淘汰了.快节奏的时代成就了快餐,亦成就了速成教育.尤其是身处互联网行业的我们,更新换代的速度更是迅速,快速掌握一门技术已经成为潮流趋势.怎样才能 ...
- Python学习之快速入门
1. 前言 最近玩服务器,需要服务器和本地的一个端口进行互交,查了一些资料,发现用 Python实现很简单,刚好我也想学学一些Python语法.我之前编程语言已经学习了C/C++,Java语言,所以就 ...
- UVM学习笔记—快速入门篇
UVM指的是验证方法学,是学习数字验证的入门课程.它是至关重要的,有不少人往IC验证方向发展的,多多少少都会去了解UVM.但UVM并不是简单的翻个书就可以学会的,还是要掌握学习方法或者跟着老师学习的. ...
- 少样本学习原理快速入门,并翻译《Free Lunch for Few-Shot Learning: Distribution Calibration》
ICLR2021 Oral<Free Lunch for Few-Shot Learning: Distribution Calibration> 利用一个样本估计类别数据分布 9行代码提 ...
- Redis学习笔记——快速入门
@ NoSQL数据库简介 技术发展 技术的分类 1.解决功能性的问题:Java.Jsp.RDBMS.Tomcat.HTML.Linux.JDBC.SVN 2.解决扩展性的问题:Struts.Sprin ...
- 大数据存储技术之KUDU学习总结/快速入门
KUDU学习总结 1 基础概念 官方:https://kudu.apache.org/ 在 KUDU 之前,大数据主要以两种方式存储: • 静态数据:以 HDFS 引擎作为存储引擎,适用于高吞吐量的离 ...
最新文章
- Tokyo Cabinet 安装
- 最小费用最大流 ---- 2017icpc青岛现场赛 K Our Journey of Xian Ends (拆点控制原图点度 + 中间必经过的点设置成源点 + 起点设成汇点)
- mqtt 获取所有topic_MQTT协议解析
- InstallShield 2011新功能试用(3)- Script Editor Intellisense
- python中不具备np_Python中np.random.multivariate_normal问题?
- oppo计算机打不开怎么回事,一体机电脑突然关机了?然后就打不开了怎么回事啊?...
- 采用EntityFramework.Extended 对EF进行扩展(Entity Framework 延伸系列2)
- Java线程面试题 Top 50 (转载)
- 五个部署Hyper-v的常见错误.
- 巧用 SSH 打通外网限制
- 基于opencv的重叠图像的凹点分割(C++)
- 谷歌浏览器如何截取整个网页保存为图片截取整个网页长图
- web前端入门到实战:img中alt和title属性的区别
- Riverbed助世界最大集装箱航运公司马士基实现数字化转型
- 第35讲:Xposed+模拟器的详细使用
- 【报告分享】2021中国品牌消费趋势报告-京东大数据研究院(附下载)
- Mysql学习笔记(一)学完就出师系列哈哈哈
- 对docker一些认知
- mysql中的临时表怎么用的?
- 从国企到阿里的面试经历(一)