Stateflow状态图

news2024/12/25 10:39:11

目录

1.Stateflow简介

2.Stateflow编辑

2.1 打开方式

2.2 状态

 2.3 状态名称

2.4 迁移

2.4.1 迁移

2.4.2 默认迁移

2.4.3 迁移有效条件

3 数据与事件

3.1 数据

 3.2 事件

 4 示例


1.Stateflow简介

Stateflow对象可分为图形对象和非图形对象。

图形对象包括:状态、历史节点、迁移、默认迁移、连接节点、真值表、图形函数、Embedded Matlab函数、盒函数、Simulink函数;

非图形对象包括:事件、数据、目标。

Stateflow状态机使用一种基于容器的层次结构管理Stateflow对象,也就是说,一个Stateflow对象可以包含其他的Stateflow对象。

最高级的对象时Stateflow状态机,它包含了所有的Stateflow对象,因此也就包含了Simulink中的所有的Stateflow状态图及数据、事件、目标对象。

同样的,状态图包含了状态、盒函数、函数、数据、事件、迁移、节点与注释事件。我们可以使用这一系列对象建立一个Stateflow状态图。具体到一个状态,也可以包含上述的对象。

2.Stateflow编辑

2.1 打开方式

1.可直接通过SImulink库找到Stateflow;

2.Matlab行命令窗口输入sfnew,直接创建一个新的带有chart的模型;

3.Simulink模型中双击鼠标左键搜索chart;

2.2 状态

上述图形从上到下分别代表:

状态、节点、转移、框、simulink状态、simulink函数、图形函数、matlab函数、真值表、历史、退出、进入、注释、图像。

在Stateflow状态图的顶层或某一父状态下,可以并存有多个状态,它们之间的关系可分为互斥和并行。

互斥状态的矩形边框显示为实线,同一级的互斥状态,至多允许激活一个状态。如下图,状态A和B是互斥的,二者只能有一个状态处于激活状态;当状态A被激活,同样的其子状态A1和A2也只能有一个处于激活状态。 

并行状态的矩形边框是虚线,同一级的并行状态,可在同一时刻被激活,如下图,状态A和B是并行关系,二者可以同时处于激活状态;子状态A1和A2也同时处于激活状态,而子状态B1和B2只能有一个被激活。

 

 2.3 状态名称

如下表

特别注意:状态名是由字母、数字、下划线组成,若状态名后面跟随的是回车符,斜线是可有可无的。根据State的分层结构,同级的各个子状态不允许同名,但不同级的状态则不受限制。

可指定多个动作,每个动作之间以回车、分号、逗号区隔,动作类型关键词后必须跟随一个半角冒号。

2.4 迁移

2.4.1 迁移

Stateflow状态图使用一条单向箭头曲线表示迁移,将两个图形对象连接起来,大多数情况下,迁移是指系统从源状态向目标状态的转移。在迁移曲线上加上标签,可以指定系统在何种条件下从源状态向目标状态转移。

2.4.2 默认迁移

默认迁移是一种特殊的迁移形式,它没有源对象。用于指定同一级有多个互斥状态并存时,需要首先激活的状态。某些情况下,默认迁移也可以加入标签,限制其所指向目标状态的激活。

 代表含义:

1.事件

指定迁移的触发事件。若另行指定触发条件,条件为真时,且发生该触发事件时,即发生迁移,是可选项,如果用户不指定触发事件,则任何事件都能够引发该事件。多个触发事件之间使用逻辑或运算符‘|’分隔。

2.条件

条件用布尔表达式,为真,一旦发生指定的触发事件,则发生迁移。条件表达式的前后必须使用方括号“[]”包围。

3.条件动作

当条件表达式为真时,立刻执行条件动作。若事先未指定条件,系统则假设条件为真,并执行该条件动作。

4.迁移动作

当迁移目标有效时,执行迁移动作。若迁移标签由多个字段组成,则当整个标签有效时,执行迁移动作。

2.4.3 迁移有效条件

对于非默认的迁移,当源对象处于激活状态的且迁移标签有效时,发生迁移;对于默认迁移,当其父状态被激活时,发生迁移。

下表列出了迁移标签的有效条件,用户可以根据需要,选择性地输入迁移标签的部分或全部字段。

3 数据与事件

3.1 数据

数据是非图形的对象,有一个很重要的特性:作用阈,用户在使用数据时必须明确定义该特性,根据作用域的不同,数据可分为以下几种:

(1)Stateflow状态图本地数据(Local)

(2)从外部simulink模块输入的数据(Input from Simulink)

(3)向外部simulink模块输入的数据(Output to Simulink)

(4)临时数据)

(5)定义在matlab工作空间的数据

(6)常数

(7)向simulink模型与stateflow状态图外部的目标(代码)导出的数据

(8)自simulink模型与stateflow状态图外部的源代码导入的数据

 3.2 事件

事件也是非图形的对象,它驱动着整个stateflow状态图的运行。和数据一样,事件同样有它的作用域,根据作用域的不同,可分为以下几种:

(1)stateflow状态图本地事件

(2)自外部simulink模块输入的事件

(3)向外部simulink模块输出的事件

添加数据或事件的方法很简单,像创建变量一样,只需要改一下作用域就行。

或者使用菜单项Add和使用Model Explorer,建议使用后者。

matlab版本为2022a

事件的添加同样

路径:simulink-建模-

 

也可以对添加的变量在符号窗格进行更改其作用域

 4 示例

光说不练假把戏

下面通过一个实例来加深理解。

汽车换挡实例

 原理很简单,当车速达到某一值时,对应的档位发生变化,将车速信息返回到dispalce。

完整的模型图如下。

 

运行结果

当车速给25时,

D2出现高亮,说明逻辑等正确。

其他的可自行实验,可结合实际驾驶情况进行改变输入条件,例如进行R倒车,D的输入就为0等等。

 

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/683004.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LangChain 介绍及相关组件使用总结

一、langChain LangChain 是一个由语言模型LLMs驱动的应用程序框架,它允许用户围绕大型语言模型快速构建应用程序和管道。 可以直接与 OpenAI 的 ChatGPT 模型以及 Hugging Face 集成。通过 langChain 可快速构建聊天机器人、生成式问答(GQA)、本文摘要等应用场景。…

Nginx做图片服务器

前言: Nginx是一个高性能的HTTP和反向代理web服务器,以及负载均衡器。根据nginx是高性能的http服务器,因此可以用作图片服务器使用。 本案例是在docker安装nginx来操作的。 Nginx安装 1、首先是docker的安装 详情参考:docker安装 2、拉取ng…

倒计时2天,解锁亚马逊云科技中国峰会 Dev Lounge 玩法

2023 亚马逊云科技中国峰会即将重磅登陆上海 主会场与分论坛云集百余位重磅嘉宾 开发者会客厅也已集齐全球优秀开源社区 倒计时2天,赶快报名参与这场顶级盛会! 开发者大讲堂,圆桌讨论给你精彩 数据对于企业和个人来说都至关重要&#xff0…

【kubernetes系列】Kubernetes中的重要概念

​ 在学习k8s之前,必须先了解 Kubernetes 的几个重要概念,它们是组成 Kubernetes 集群的基石。(参考Kubernetes权威指南) 一、Master Kubernetes 里的Master指的是集群的控制节点, 每个Kubernetes 集群里至少需要有一…

大数据应用——hive实验

任务一:完成Hive内嵌模式部署 1.1 Hive部署 官网下载Hive安装包 (1)官网地址:Apache Hive (2)文档查看地址: https://cwili.apache.org/confluence/display/Hive/GettingStarted (2&…

年轻人存款难吗?探讨现实挑战与如何应对

年轻人存款难吗?探讨现实挑战与如何应对 近日,一项调查显示“大概五分之一的年轻人存款在一万元以内。10万元存款是一个“坎”,存款超过10万就会超过53.7%的人。”这个数据引发了关于“年轻人”和“存款”的广泛关注和讨论。作为社会的未来&…

使用 Maya、ZBrush 和 XGen 创建极其逼真的美女肖像

今天云渲染小编给大家带来的是CG艺术家Hadi Karimi 的朋友 Clara 肖像模型背后的工作流程,展示了头发是如何使用 XGen 完成的,并解释了为什么历史人物很难进行逼真的渲染。 介绍 大家伙,我是 Hadi Karimi,是一名来自伊朗的自由 C…

.net点选验证码实现思路分享

哈哈好久没冒泡了,最进看见点选验证码有点意思,所以想自己写一个。 先上效果图 如果你被这个效果吸引了就请继续看下去。 贴代码前先说点思路: 1.要有一个汉字库,并按字形分类。(我在数据库里是安部首分类的) 2.获…

力扣题库刷题笔记13--罗马数字转整数

1、题目如下: 2、个人Python代码实现: 虽然前面刚刷了整数转罗马数字,而且本题难度为简单,实际上做出来还是花了很多时间,不亚于前面整数转罗马数字。 以上的思路,主要是声明一个列表temp,然后遍…

【MYSQL】—— MySQL 在 Centos 7环境安装

本期,我将给大家介绍的是如何在【Linux】上安装相应的 mysql。 目录 1. 卸载不要的环境 2. 检查系统安装包 3. 获取mysql官⽅yum源 4. 安装mysql yum 源,对⽐前后yum源 5. 看看能不能正常⼯作 6. 安装mysql服务 7. 启动服务 8. 查看启动服务 9.…

从“特种兵旅游”到“citywalk”,渡远户外还能热下去么?

过去风靡一时的“户外露营热”,有些企业赶上了,有些没有。去年坐上“末班车”的渡远户外也想尝些甜头。 套上“户外”概念的渡远户外,或许正在被质疑“血统”并不“纯正”,主营房车游艇配套产品和水上休闲运动产品,说…

【新星计划Linux】——学习工具VMware介绍

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​ 前言 本章将会讲解Linux学习工具VMware介绍。 一.VMware介绍 1.前期准备 官方网站&#…

【资料分享】全志科技T507-H评估板规格书(4核ARM Cortex-A53,主频1.416GHz)

1 评估板简介 创龙科技TLT507-EVM是一款基于全志科技T507-H处理器设计的4核ARM Cortex-A53国产工业评估板,主频高达1.416GHz,由核心板和评估底板组成。核心板CPU、ROM、RAM、电源、晶振等所有器件均采用国产工业级方案,国产化率100%。同时&a…

实战:win10安装docker并用docker-compose构建运行容器

文章目录 前言Docker DesktopHyper-V安装 Docker Desktop for Windows下载docker desktopDocker安装目录软连接运行Docker Desktop安装文件Docker Desktop验证 docker-compose构建运行管理容器创建文件目录及配置文件构建并启动容器查看启动的容器并验证 写在最后 前言 Docker…

数字IC前端学习笔记:仲裁轮询(四)

相关文章 数字IC前端学习笔记:LSFR(线性反馈移位寄存器) 数字IC前端学习笔记:跨时钟域信号同步 数字IC前端学习笔记:信号同步和边沿检测 数字IC前端学习笔记:锁存器Latch的综合 数字IC前端学习笔记&am…

网络安全|渗透测试入门学习,从零基础入门到精通—动态分析技术工具OllyDbg界面介绍

目录 动态分析技术调试器 什么是OllyDbg OllyDbg能干什么 OllyDbg窗口介绍 1、反汇编面板窗口 2、信息面板窗口 3、数据面板窗口 4、寄存器面板窗口 5、栈面板窗口 动态分析技术调试器 动态分析技术中最重要的工具是调试器,分为用户模式和内核模式两种类型…

【c++11】万能引用和完美转发

c11 万能引用完美转发 这一节是对上一篇右值引用的补充。 链接: 右值引用 万能引用 看如下代码 void Fun(int &x){ cout << "左值引用" << endl; } void Fun(const int &x){ cout << "const 左值引用" << endl; }void …

推荐四款常用在档案室温湿度记录的传感器记录仪

A.数字信号485信号输出的温湿度传感器/变送器 主要参数 液晶显示、485信号输出、9-24/VDC供电、壁挂式安装/吸顶式安装、走线/连接方式485总线、标准modbus RTU通讯协议 B。数字信号RJ45信号输出的温湿度传感器/变送器 ​主要参数 液晶显示、RJ45信号输出、9-24/VDC供电/标…

Zabbix Timeout 设置不当导致的问题

哈喽大家好&#xff0c;我是咸鱼 今天跟大家分享一个关于 zabbix Timeout 值设置不当导致的问题&#xff0c;这个问题不知道大家有没有碰到过 问题 事情经过是这样的&#xff1a; 把某一台 zabbix agent 的模板由原来的 Template OS Windows by Zabbix agent 换成了 Templa…

第一章:项目整体介绍【基于Servlet+JSP的图书管理系统】

一、项目介绍 1.项目说明 本项目是一个完全从0带领大家实现的一个非常基础的WEB项目&#xff0c;非常适合零基础和在校的大学生来动手实现。既能提升技术熟练度了解软件开发的具体过程。同时也能帮助大家搞定毕业设计的需求。之前在B站也分享了一个图书管理系统的视频。但是实…