matlab之Stateflow入门基础

一、状态

1.状态的层次结构

分为父状态和子状态

  1. 每一个状态都有父状态,最外围的状态其父状态是它本身
  2. 外部的state叫父状态,内部的状态叫子状态

2.状态的横向结构

状态图的顶层或某一父状态下,通常并存多个状态,他们之间的关系分为互斥和并行

  1. 互斥状态
    互斥状态的矩形框边缘显示为实线,同一级的互斥状态,至多允许激活一个状态。
  2. 并行状态
    并行状态的举行框边缘显示为虚线,同一级的并行状态可在同一时刻被激活

3.状态标签

1)状态名

同级的各个子状态不允许重名,不同级的状态不受限制。

2)状态动作

(1)entry(或缩写成en)动作(进入时执行动作)
如果用户在状态名后加入斜线,并直接跟随具体动作,则该动作默认为进入动作。如下

A/y=3
y++

进入A状态时,立刻执行y=3,之后又执行y++,最终结果为y=4。
(2)during或du动作(保持动作)

A
en : y = 3;
du : y++;

在进入状态A时,执行动作y=3,之后不断执行y++。若求解器的定点步长取0.2,仿真时长取2,则最终的结果y=13。
(3)exit或ex动作(退出时执行动作)

A
en : y = 3;
du : y++;
ex : y = y - 1;

在五个仿真步长之后,退出状态A,进入状态B时,最终结果应为7。即退出时要执行减一这个动作。
(4)广播时间动作on event_name
event_name代表某一广播事件名,事件名应该是唯一的。

A
en : y = 1;
du : y++;
on stop : c();

系统处于A状态,当检测到事件stop,立即执行c()。
(5)bind动作

A
en : y = 1;
du : y++;
bind : y; start;

B
en : y = 1;start

变量y和start被绑定在状态A,这表示仅有A状态及其子状态有权限修改变量y并广播时间start,其他状态B仅能够读取变量y,监听到事件start,无权修改变量y和广播时间start。
bind动作在整个Stateflow状态图范围内都是有效的。
若运行这个代码,会报错。

A
en : y = 1;
du : y++;
bind : y; start;

B
bind : y;

两个状态同时约束变量y,这是不被允许的。

4.迁移

(1)迁移
Stateflow状态图使用一条单向箭头曲线表示迁移,它将两个图形对象连接起来,多数情况下,迁移是指系统从原状态向目标状态的转移。
在迁移曲线上加标签,可以指定系统在何种条件下从源状态向目标状态转移。
(2)默认迁移
是一种特殊的迁移方式,它没有源对象。用于指定同一级有多个互斥状态并存,首先激活的状态
(3)迁移标签
迁移标签的完整格式
Event[Condition]{Condition_Action}/Transition_Action
1)event:引发迁移的时间
2)[condition]:条件动作与迁移的发生条件
3){condition_action}:当条件为真时,执行的动作
4)/transition_action发生迁移,进入目标状态前所执行的动作
condition_action和transition_action的区别是当condition为真时condition_action立刻执行,而transition_action是当condition为真,并且迁移状态(下个激活状态)有效时,执行transition_action这个动作。

二、数据与事件

  1. 数据是非图形的对象
    用户在使用数据时必须明确定义作用域。
  2. 事件也是非图形的对象
  • 0
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
StateflowStateflowStateflow StateflowStateflowStateflowStateflow 是有限状态机 有限状态机 有限状态机 (finite state machinefinite state machinefinite state machine finite state machinefinite state machine finite state machine finite state machine finite state machine finite state machinefinite state machine finite state machinefinite state machinefinite state machine)的图形工具, )的图形工具, )的图形工具, )的图形工具, 它通过开发有限 通过开发有限 通过开发有限 状态机和流程图扩展 状态机和流程图扩展 状态机和流程图扩展 状态机和流程图扩展 了 SimulinkSimulinkSimulinkSimulinkSimulinkSimulinkSimulinkSimulink的功能。 的功能。 StateflowStateflowStateflow StateflowStateflowStateflowStateflow 使用自然、可读和易理解的形式 使用自然、可读和易理解的形式 使用自然、可读和易理解的形式 使用自然、可读和易理解的形式 使用自然、可读和易理解的形式 使用自然、可读和易理解的形式 , 可使复杂的逻辑问题 复杂的逻辑问题 复杂的逻辑问题 复杂的逻辑问题 变得清晰与简单,并且还 变得清晰与简单,并且还 变得清晰与简单,并且还 变得清晰与简单,并且还 变得清晰与简单,并且还 变得清晰与简单,并且还 与 MATLABMATLABMATLAB MATLABMATLAB\SimulinkSimulinkSimulinkSimulinkSimulinkSimulinkSimulinkSimulink紧密集成,为包 紧密集成,为包 紧密集成,为包 紧密集成,为包 含控制、优先级管理工作模式逻辑的嵌 含控制、优先级管理工作模式逻辑的嵌 入式系统 设计提供了有效的 开发手段,是 开发手段,是 本书的核心内容之一。读者在 本书的核心内容之一。读者在 本书的核心内容之一。读者在 本书的核心内容之一。读者在 本书的核心内容之一。读者在 本书的核心内容之一。读者在 5~8 5~8章将看到 章将看到 StateflowStateflowStateflow Stateflow StateflowStateflowStateflow应用 于 MCUMCUMCU器件的嵌入式开 器件的嵌入式开 器件的嵌入式开 器件的嵌入式开 发, 尤其 显得心应手,一些采用 传统方法难于实现的算如果利显得心应手,一些采用 传统方法难于实现的算如果利显得心应手,一些采用 传统方法难于实现的算如果利显得心应手,一些采用 传统方法难于实现的算如果利显得心应手,一些采用 传统方法难于实现的算如果利显得心应手,一些采用 传统方法难于实现的算如果利显得心应手,一些采用 传统方法难于实现的算如果利显得心应手,一些采用 传统方法难于实现的算如果利显得心应手,一些采用 传统方法难于实现的算如果利显得心应手,一些采用 传统方法难于实现的算如果利显得心应手,一些采用 传统方法难于实现的算如果利显得心应手,一些采用 传统方法难于实现的算如果利显得心应手,一些采用 传统方法难于实现的算如果利显得心应手,一些采用 传统方法难于实现的算如果利StateflowStateflowStateflow Stateflow StateflowStateflow 建 模却非常容易。大到导弹、航空天器的控制,小点亮一个发光二极管 模却非常容易。大到导弹、航空天器的控制,小点亮一个发光二极管 模却非常容易。大到导弹、航空天器的控制,小点亮一个发光二极管 模却非常容易。大到导弹、航空天器的控制,小点亮一个发光二极管 模却非常容易。大到导弹、航空天器的控制,小点亮一个发光二极管 模却非常容易。大到导弹、航空天器的控制,小点亮一个发光二极管 模却非常容易。大到导弹、航空天器的控制,小点亮一个发光二极管 模却非常容易。大到导弹、航空天器的控制,小点亮一个发光二极管 模却非常容易。大到导弹、航空天器的控制,小点亮一个发光二极管 模却非常容易。大到导弹、航空天器的控制,小点亮一个发光二极管 模却非常容易。大到导弹、航空天器的控制,小点亮一个发光二极管 模却非常容易。大到导弹、航空天器的控制,小点亮一个发光二极管 模却非常容易。大到导弹、航空天器的控制,小点亮一个发光二极管 模却非常容易。大到导弹、航空天器的控制,小点亮一个发光二极管 模却非常容易。大到导弹、航空天器的控制,小点亮一个发光二极管 模却非常容易。大到导弹、航空天器的控制,小点亮一个发光二极管 模却非常容易。大到导弹、航空天器的控制,小点亮一个发光二极管 模却非常容易。大到导弹、航空天器的控制,小点亮一个发光二极管 ,StateflowStateflowStateflow Stateflow StateflowStateflow 都非常称职。 都非常称职。 都非常称职。 StateflowStateflowStateflow StateflowStateflowStateflowStateflow 状态图模型 状态图模型 状态图模型 ,还可利用 ,还可利用 ,还可利用 ,还可利用 StateStateState Stateflow Coderlow Coder low Coderlow Coderlow Coder low Coder代码生成工具, 代码生成工具, 代码生成工具, 代码生成工具, 直 接生成 C代码。 代

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值