Stateflow基础知识笔记

server/2024/9/25 2:05:57/

01--Simulink/Stateflow概述

Stateflow是集成于Simulink中的图形化设计与开发工具,主要 用于针对控制系统中的复杂控制逻辑进行建模与仿真,或者说, Stateflow适用于针对事件响应系统进行建模与仿真。 Stateflow必须与Simulink联合使用!

Stateflow可以完成MATLAB/Simulink绝大多数工作,主要应用:

1.控制对象建模

2.状态逻辑切换

3.复杂逻辑的可视化开发(流程图)

4.嵌入式系统应用

5.复杂系统

02--基本的Stateflow创建和编辑介绍

Stateflow模型的创建就是包含了Stateflow模块的Simulink模型。 Stateflow模型的创建有三种方式:

1.状态的标签组成:状态名称、注释和状态动作

2.转移标签组成:事件、条件、条件动作和转移动作

3.节点

4.各种函数:Simulink函数,流程图函数,matlab函数

03--状态图的仿真

状态图又被称为“状态转移图”,一旦处于活动状态,则会一直维持这 个状态,直到状态转移或者仿真结束。

例:声控灯的状态一般就是开闭两种,状态图对声控灯二元状态进行仿 真。

1.基于条件输入的模型 状态动作:entry:当事件发生时,状态被激活时执行的动作 exit:当事件发生时,状态退出时执行的动作 during:当事件发生时,状态保持时执行的动作

2.基于事件触发的模型 状态图从非活动状态到活动状态以及状态之间的切换,都要由事件 触发。即,在事件的驱动下状态图才能仿真进行。 当在某个步长内完成了必要的工作后,状态图简单地进入到一种暂 时挂起的状态,等待下一次触发事件的到来。在两次触发事件之间,状 态图实际上一直处于活动状态。两个连续触发之间将保持之前的状态。

例:白炽灯的状态一般就是开闭两种,也是生活中比较常见的事件响应 事物。搭建状态图对声控灯二元状态进行仿真。

04--流程图

在Stateflow中,流程图是一种比较特殊的应用。流程图中不包含任何状态, 它仅由连接节点和转移组成。

由于流程图中没有任何状态,因此不具备任何记忆元件(状态是记忆元 件)。

在一次更新中,流程图从检测其默认转移开始,到检测完每一条有效的 通路且到达不具备有效出口的转移为止,在连接的两次触发之间,一直处于非 活动的状态。

1.选择结构

①if(条件){动作}

②if(条件){动作A}else{动作B}

③if(条件1){动作A}elseif (条件2){动作B}else{动作C}

④if(条件1){动作A if(条件2){动作B}}

2.循环结构

①for循环

②while(condition)do(Action)结构

③do – while结构

05--层次化建模

动作执行的顺序 在转移过程中动作执行顺序如下: 1、可转移时的条件动作; 2、状态1的退出动作; 3、转移标签上的转移动作; 4、状态2的进入动作。 在一个程序中,会有很多状态动作和转移动作,那么对于复杂程序而言,先要执 行什么动作,后执行什么动作呢

在转移过程中动作执行顺序如下:

1、可转移时的条件动作; 2、状态1的退出动作; 3、转移标签上的转移动作; 4、状态2的进入动作。

某些应用场景中,可能会重复使用某一程序模块。为了简化程序,通 常将这种被重复使用的模块作为函数进行调用。

MATLAB软件自带了很多应用工具的demo,其中包括了大量的 Stateflow的应用案例。 在MATLAB命令窗口输入“demo”进去案例库,找到Stateflow,点击 进去,选择适合的案例研究

06--Tips:

1.状态的外部自迁移和内部自迁移的区别

外部自转移

内部自转移

V_flag作为输出观测

发现:

内部自转移会判断du条件n=n+1

外部自转移会判断en条件n=n-1

2.事件event和Simulink的条件触发的区别

可以通过在状态内添加自增或自检去判断以上的区别


http://www.ppmy.cn/server/36452.html

相关文章

搜维尔科技:xsens案例,客户制作的一只可爱的鳄鱼短片

搜维尔科技:xsens案例,客户制作的一只可爱的鳄鱼短片 搜维尔科技:xsens案例,客户制作的一只可爱的鳄鱼短片

基于CLAHE算法的图像增强及评价

摘要: 本研究旨在探讨对比度限制自适应直方图均衡化(CLAHE)算法在数字图像处理中的应用。CLAHE算法通过在局部区域内进行直方图均衡化,有效地增强了图像的对比度,并在保持图像细节的同时避免了过度增强的问题。本文通过…

融知财经:期货交易所每天公布信息包括哪些?

期货交易所是一个非营利机构,它为交易者提供一个公开、公平、公正的交易场所。虽然它不以盈利为目的,但作为一个财务独立的组织,它会通过会员会费、交易手续费和信息服务等方式实现经济利益。期货交易所每天公布的信息主要包括每日行情、交易…

Baidu Comate:你的智能编码助手,编程效率倍增的秘密武器

Baidu Comate智能编码助手 Baidu Comate 智能编码助手简单介绍安装使用查看Comate插件功能智能代码提示使用飞浆和百度智能小程序进行智能问答使用AutoWork插件实现二次函数图像的生成引用Comate知识库存在的问题结束语 Baidu Comate 智能编码助手简单介绍 Baidu Comate&#x…

使用Three.js开发一个3D案例Demo

使用Three.js开发一个3D案例 最近在找工作,发现好多招聘要求都需要会Three.js,以前接触比较多的是2D开发,也就是平面开发,用到的做多的技术就是d3.js,现在3D开发已经成为了大势所趋,所以就学习下Three.js。…

MATLAB绘制蒸汽压力和温度曲线

蒸汽压力与温度之间的具体关系公式一般采用安托因方程(Antoine Equation),用于描述纯物质的蒸汽压与温度之间的关系。安托因方程的一般形式如下: [\log_{10} P A - \frac{B}{C T}] 其中, (P) 是蒸汽压&#xff08…

Qt6常用类QStandardItemModel的使用

QStandardItemModel用于实现基于项的数据模型,QAbstractItemModel的子类,用于提供数据给Qt的视图类(QTreeView、QListView、QTableView等)进行显示和编辑,可以根据需要设置和获取项的文本、图标、状态和其他属性。它还提供了一些方…

UNRAID手动备份引导盘方法

主要讲解UNRAID如何在线备份引导U盘数据,防止优盘损坏 切换到主界面然后点闪存 点FLASH 备份 点击后如图 等等几分钟就会弹出下载的对话框 自动下载备份的zip格式文件 得到的ZIP文件使用方法 通过官方的写盘工具写回去