我是
靠谱客的博主
典雅航空,最近开发中收集的这篇文章主要介绍
Stateflow#0:基于模型设计的思想以及stateflow的简介,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
概述
1、简介
2、基本概念
Stateflow是一个交互式设计工具,用来对复杂的事件驱动模型系统进行建模与仿真。通过紧密地与Simulink和MATLAB集成,Stateflow将复杂的控制和监督逻辑有效地结合到Simulink模型中,为Simulink用户提供了一个设计嵌入式系统的完美解决方案。
Statefolw 是一种图形化的设计开发工具,是有限状态机的图形实现工具,也被称为状态流。主要用于simulink 中控制和检测逻辑关系,主要针对控制系统中复杂控制逻辑建模与仿真。它和Simulink 同时使用使得Simulink 更具有事件驱动控制能力。
有限状态机是指系统中存在可数的状态,在某些事件发生时,系统从一个状态转换成另一个状态,故又称为事件驱动的系统。在有限状态机的描述中,可以设计出由一种状态转换至另一种状态的条件,并将每对可转换的状态均设计出状态迁移的事件,从而构造出状态迁移图。
Stateflow能够做:
•基于有限状态机理论对复杂的响应型系统进行可视化建模与仿真
•设计和开发复杂的监控逻辑
•在同一个Stateflow框图中同时使用流程图和状态转移图表示法
•自动地从模型中生成整数或浮点数代码
•可随时方便修改设计,评估结果,验证系统性能
stateflow基本概念—状态机
•有限元状态机是具有有限个状态的系统的理论表述。它以某些缺省的状态为起点,根据所定义的事件和转移进行操作。转移表示状态机如何对事件进行响应。它有明确的输入和输出个数,可以明确地配置所有的模式或状态。它定义了导致系统从一个状态转换到另一个状态的逻辑或事件
•直观理解:模型中包含的所有stateflow块的集合
stateflow基本概念—状态
•在有限元状态机里,状态描述的是系统的一种模式。状态具有布尔行为,也就是说在任何给定的时刻它或者是活动的或者是非活动的。•状态在系统中被看作为记忆元件。它保持系统的当前模式,一旦被激活,状态就保持活动的模式,直到系统改变模式,状态才变为非活动的。
•在层次的同一级里,所有的状态要么是互斥(OR)的要么并行(AND)的。如果状态之间是互斥的,那么在任何给定的时刻只有一个状态是活动的,如果状态之间是并行的,在同一时刻所有的状态都是活动的。在同一级里面不可能有既是互斥的又是并行的状态存在。它们必须是或者互斥或者并行。
stateflow基本概念—转移
转移描述的是有限状态系统内的逻辑流。转移管理了当系统从当前状态改变时,这个系统可能发生的模式改变。当转移发生时,源状态变为非活动的,目标状态变为活动的。
stateflow基本概念—事件
•事件控制有限状态系统的执行。只有某个事件发生后系统才能从一个状态改变到另一个状态。事件是非图形对象——每个事件都被定义成一个独立的名字。如果一个转移用一个事件名做为标签,仅当那个事件发生时,转移才有效。如果转移没用事件名作为标签,只要有事件发生转移就有效。
stateflow基本概念—条件
•条件是有限状态系统中的有效流,条件必须定义在[]括号中。当一个事件发生时,只有当[]括号中的语句为真或非零时,带有条件标签的转移才有效。转移可以同时拥有事件和条件;条件要放在事件名之后。当转移标签既有事件又有条件时,只有当指定的事件发生并且条件为真时转移才有效
stateflow基本概念—动作
•转移动作是当一个转移发生时要执行的命令。转移动作定义在“/”之后,动作能影响系统本身,并且(或者)影响到与有限状态系统相关的一些外部元素。动作能够处理数据,调用函数,发生触发事件。
•如果把动作和转移相关联,动作语句要放在事件标签和条件语句的后面。
stateflow基本概念—数据对象
•数据对象存储了关于条件和动作的一些必要的信息。数据对象是非图形对象– 每一个数据对象都被指定成一个独立的名字。
stateflow基本概念—连接节点
•连接节点作为转移通路的判决点或汇合点。它不是记忆元件。因此,转移的执行不能停留在节点上,必须到达某个状态时,转移才能停止。
•连接节点可以作为一个决策点。由于连接节点不是记忆元件,转移必须到达某个状态时,执行才能结束。因此,可以利用这个特点来简化模型。
stateflow基本概念—缺省转移
•缺省转移确定当有限状态机或者父状态处于活动状态的时候,在所有的子状态中第一个被激活的状态。图中当有限状态机变为活动的时候,它首先尝试激活带有缺省转移的子状态,同时可以在缺省转移的标签上加上事件和条件来进行限制,也可以将动作和缺省转移相关联。
Stateflow允许用户:
(1)建立有限的状态。
(2)用图形的形式绘制出状态迁移的条件。
(3)使用规定的命令设计状态迁移执行的任务。完成以上操作即构造出整个有限状态机系统。
状态
状态是指系统运行的模态。在Stateflow 下,状态有两种行为:活动的(active)和非活动的(inactive)。状态有互斥和并行两种。
互斥状态的矩形框边缘都是实线,只能有一种状态被激活。当状态A被激活时,其子状态A1和A2也只能有一个被激活。
并行状态的矩形框边缘都是虚线,同一级的并行状态可在同一时间被激活。状态A和B并行可同时被激活,状态A1和A2也可同时被激活,但B1和B2则不能
状态迁移关系设置:
把鼠标放在一个状态块的边界,当出现十字光标时按下鼠标键并拖动至另一个状态的边界释放,可以绘制出从一个状态到另一个状态的连线。单击此连线,在该连线上会出现一个问号,我们可以在该问号处添加状态迁移标记。
状态迁移标记可以含有触发事件、迁移条件、条件动作及迁移动作,或他们中的任意组合。
状态迁移标记的一般形式是:
触发事件[迁移条件关系式]{条件动作}/迁移动作
触发事件:表示只要迁移关系式是真,该触发事件可以引发状态的迁移。
缺省触发事件时,任何事件均可在条件关系式为真的情况下引
引发状态的迁移。
迁移条件关系式:写在方括号中,该关系式为真时,触发事件可以引发状
态的迁移。
条件动作:是指当迁移条件关系式一旦成立(即为真),就执行的动作,
条件动作必须写在花括号中。
迁移动作:是指当迁移终点已经确定有效,才执行的动作。
最后
以上就是典雅航空为你收集整理的Stateflow#0:基于模型设计的思想以及stateflow的简介的全部内容,希望文章能够帮你解决Stateflow#0:基于模型设计的思想以及stateflow的简介所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复