当前位置: 首页 > news >正文

simulink stateflow 状态机

系列文章目录

文章目录

  • 系列文章目录
  • 前言
  • 一、基操
  • 二、stateflow 数据
  • 三、chart动作
  • 四、chart的执行
  • 五、flow chart / junction
  • 六、状态机中的函数 Stateflow Functions
  • 七、chart层次结构
  • 八、案例——吸尘器机器人的驱动模式


前言


一、基操

  1. 在tooltrip中选择DEBUG,通过Animation Speed可更改动画的播放速度。
    示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

  2. 添加状态机的快捷操作
    在这里插入图片描述

  3. transition上的数字代表执行顺序,选中transition后在toolstrip -> Execution Order可更改执行顺序
    在transition上可进行 EventName [Condition] {Action} 的操作
    在这里插入图片描述

  4. 下图的状态机中junction不属于状态,只负责条件的跳转,可用于实现类似if-else的结构
    after(N, sec)为EventName
    – Milliseconds : msec
    – Microseconds: usec
    – Simulation time steps: tick
    在这里插入图片描述

  5. Default transition不能有任何的Event [Conditon]
    在这里插入图片描述

二、stateflow 数据

  1. 打开位置
    请添加图片描述

  2. 数据类型
    在这里插入图片描述逻辑数据:仅在状态机内部使用
    在这里插入图片描述输入:状态机的输入信号
    在这里插入图片描述输出:状态机输出信号
    在这里插入图片描述参数:从MATLAB工作空间中读取的常量or simulink mask parameter

  3. 在Symbols Pane中rename信号后按下shift+enter应用于所有的同名信号,然后按下ctrl+shift+A自动重新调整模型排布
    在这里插入图片描述

  4. 同时在PORT栏下可更改端口顺序

三、chart动作

这里介绍两类动作:

  • 状态动作,当某一状态激活时执行的动作
    请添加图片描述

    • 常用的state actions: entry, during, exit
      请添加图片描述
  • 条件动作,当transition条件为true时执行的动作
    请添加图片描述
    请添加图片描述

  • action language
    除了支持MATLAB外还支持C,可以搜索文档查看:
    Modify the Action Language for a Chart

在default transition处添加condition action
体会during: 的作用
在这里插入图片描述

四、chart的执行

searchchar execution在document中

状态流每个时间步执行一次。执行结果为以下二选一:

  • transition有效,变更为一个新的状态
  • transition无效,维持当前状态

请添加图片描述
案例一中,存在有效的transition,当离开StateA时,x首先设为1;然后,当进入StateB后,x再设为2;
案例二中,因为没有有效的transition所以在此次时间步中,依然停留在StateA中,此时触发during state action, x = x + 1.

五、flow chart / junction

模拟if-else结构:
请添加图片描述

default transition必须有一条不带任何condition的通路
请添加图片描述

利用junction可创建数种模式

请添加图片描述

六、状态机中的函数 Stateflow Functions

重点介绍两类函数:

  1. 图形函数
  2. MATLAB函数

其他函数可搜索 Reusable Functions in Charts
函数可在state actioncondition action中调用,如果函数的返回结果是布尔值,也可当成transition condition

图形函数

  1. 创建
    请添加图片描述
    请添加图片描述
  2. 使用
    请添加图片描述

MATLAB函数

  1. 创建请添加图片描述
    请添加图片描述
    请添加图片描述
  2. 使用
    请添加图片描述

七、chart层次结构

在这里插入图片描述

八、案例——吸尘器机器人的驱动模式

背景
使用层次模型将状态分组。在次例中,你将对吸尘器机器人的驱动逻辑进行层次化建模。机器人有两种驱动模式:docking 或 vacuuming:

  • SeekDock - 移动至充电底座人后停止
  • Vacuum - 驱动至房间的角落然后使用 zig-zag模式

因此,机器人需要两种驱动行为:移动到某处然后使用zig-zag模式。这可以通过层次结构的顶层状态实现。每个的子状态是每种特定行为的专用状态。例如,当移动到指定位置后,机器然的移动可以分为旋转、移动和停止
请添加图片描述
项目
在此项目中,你将要装配dock 和 RandomDrive模式。并且他们为父状态。然后还有个TaskComple状态,意指没有进一步的命令发送。
请添加图片描述
假设机器人的动力学模型已经内建。
请添加图片描述
bumpCount
在这里插入图片描述


相关文章:

simulink stateflow 状态机

系列文章目录 文章目录系列文章目录前言一、基操二、stateflow 数据三、chart动作四、chart的执行五、flow chart / junction六、状态机中的函数 Stateflow Functions七、chart层次结构八、案例——吸尘器机器人的驱动模式前言 一、基操 在tooltrip中选择DEBUG,通过…...

水库大坝安全监测的主要坝体类型介绍

水电站和水库大坝安全的分类中有重力坝、土石坝等不同的大坝形式。就在这里详细水库大坝安全监测按照建造形式,基本上可以分为三类:重力坝、土石坝和拱坝。 (1)重力坝 重力坝,顾名思义就是利用自身重力来维持坝体稳定…...

物理层概述(二)重点

目录前言编码与调制(1)基带信号与宽带信号编码与调制编码与调制(2)数字数据编码为数字信号非归零编码【NRZ】曼斯特编码差分曼彻斯特编码数字数据调制为模拟信号模拟数据如何编码为数字信号模拟数据调制为模拟信号物理层传输介质导…...

成都待慕电商:抖音极速版商品卡免佣扶持政策规则

新规,抖音极速版推出商品卡免佣扶持政策规则,本次抖音规则如何规定?具体往下看:一、政策简介1.1政策介绍为了更好地满足用户消费需求,丰富商家经营模式,降低商家经营成本,现平台针对商品卡场景推…...

青岛双软认定标准

软件企业的认定是有一定的标准的,需要满足以下这些条件:1、在我国境内依法设立了企业法人的企业;2、以计算机软件开发生产、系统集成、应用服务和其他相应技术服务为经营业务和主要经营收入;3、具有一种以上由本企业开发或由本企业…...

【00后卷王秘籍】python自动化测试—Python自动化框架及工具

1 、概述 手续的关于测试的方法论,都是建立在之前的文章里面提到的观点: 功能测试不建议做自动化 接口测试性价比最高 接口测试可以做自动化 后面所谈到的 测试自动化 也将围绕着 接口自动化 来介绍。 本系列选择的测试语言是 python 脚本语言。由于其…...

MySQL数据库基本操作

DDL 1、DDL解释 DDL(Data Definition Language),数据定义语言,该语言部分包括以下内容: 对数据库的常用操作 对表结构的常用操作 修改表结构1、对数据库的常用操作 2、对表结构的常用操作-创建表 创建表格式 3、对表结构的常用操作-创建表…...

2023年最新的站内SEO指南:如何通过关键词优化提高网站排名

SEO或搜索引擎优化是指通过改善网站的内部和外部元素,以获得更好的自然搜索引擎排名和更多的网站流量。 链接建设和外链是SEO的重要组成部分,因为它们可以提高网站的权威性和可信度,从而使其在搜索引擎中排名更高。 在此指南中,…...

【Java】Java环开发环境安装

Java环开发环境安装 简介: 如果要从事Java编程,则需要安装JDK,如果仅仅是运行一款Java程序则JRE就满足要求。 Java的安装包分为两类 一类是JRE其就是一个独立的Java运行环境; 一类是JDK其是Java的开发环境,不过在JDK…...

[蓝桥杯] 枚举、模拟和排列问题

文章目录 一、连号区间数 1、1 题目描述 1、2 题解关键思路与解答 二、递增三元组 2、1 题目描述 2、2 题解关键思路与解答 三、错误票据 3、1 题目描述 3、2 题解关键思路与解答 四、回文日期 4、1 题目描述 4、2 题解关键思路与解答 五、归并排序 标题:蓝桥杯——…...

C++基础了解-02-C++ 数据类型

C 数据类型 一、C 数据类型 使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的是它所存储的值的内存位置。这意味着,当创建一个变量时,就会在内存中保留一些空间。 可能需要存储各种数据类型(比如字符型、宽…...

关于MSVCR100.dll、MSVCR100d.dll、Msvcp100.dll、abort()R6010等故障模块排查及解决方法

一、常见故障介绍  最近在开发相机项目(项目细节由于公司保密就不介绍了),程序运行5个来月以来首次出现msvcr100.dll故障等问题,于是乎开始了分析之路,按照度娘上的一顿操作,期间也是出现了各种不一样的问…...

【蓝桥杯集训·每日一题】AcWing 3305. 作物杂交

文章目录一、题目1、原题链接2、题目描述二、解题报告1、思路分析2、时间复杂度3、代码详解三、知识风暴Spfa算法一、题目 1、原题链接 3305. 作物杂交 2、题目描述 作物杂交是作物栽培中重要的一步。 已知有 N 种作物 (编号 1 至 N),第 i 种作物从播种到成熟的时间…...

深入浅出PaddlePaddle函数——paddle.to_tensor

分类目录:《深入浅出PaddlePaddle函数》总目录 相关文章: 深入浅出PaddlePaddle函数——paddle.Tensor 深入浅出PaddlePaddle函数——paddle.to_tensor 通过已知的data来创建一个Tensor,Tensor类型为paddle.Tensor。data可以是scalar、tupl…...

JavaScript高级程序设计读书分享之10章——函数

JavaScript高级程序设计(第4版)读书分享笔记记录 适用于刚入门前端的同志 定义函数 定义函数有两种方式:函数声明和函数表达式大致看这两种方式没有什么区别,事实上,JavaScript 引擎在加载数据时对它们是区别对待的。JavaScript 引擎在任何代…...

第八章 使用 ^%ZSTART 和 ^%ZSTOP 例程自定义启动和停止行为 - 设计注意事项

文章目录第八章 使用 ^%ZSTART 和 ^%ZSTOP 例程自定义启动和停止行为 - 设计注意事项设计注意事项第八章 使用 ^%ZSTART 和 ^%ZSTOP 例程自定义启动和停止行为 - 设计注意事项 IRIS 可以在特定事件发生时执行自定义代码。需要两个步骤: 定义 ^%ZSTART 例程、^%ZSTO…...

工作实战之拦截器模式

目录 前言 一、结构中包含的角色 二、拦截器使用 1.拦截器角色 a.自定义拦截器UserValidateInterceptor,UserUpdateInterceptor,UserEditNameInterceptor b.拦截器配置者UserInterceptorChainConfigure,任意组装拦截器顺序 c.拦截器管理者…...

某美颜app sig参数分析

之前转载过该app的文章,今天翻版重新整理下,版本号:576O5Zu56eA56eAYXBwIHY5MDgw (base64 解码)。 上来先抓个包: jadx搜索关键词 "sigTime",然后定位到这里 看这行代码 cVar.addForm(INoCaptchaComponent.sig, genera…...

Linux - Linux系统优化思路

文章目录影响Linux性能的因素CPU内存磁盘I/O性能网络宽带操作系统相关资源系统安装优化内核参数优化文件系统优化应用程序软件资源系统性能分析工具vmstat命令iostat命令sar命令系统性能分析标准小结影响Linux性能的因素 CPU CPU是操作系统稳定运行的根本,CPU的速…...

2.Elasticsearch入门

2.Elasticsearch入门[toc]1.Elasticsearch简介Elasticsearch是用Java开发并且是当前最流行的开源的企业级搜索引擎。 能够达到实时搜索,稳定,可靠,快速,安装使用方便。客户端支持Java、.NET(C#)、PHP、Pyth…...

Notero终极指南:打通Zotero与Notion的学术工作流桥梁

Notero终极指南:打通Zotero与Notion的学术工作流桥梁 【免费下载链接】notero A Zotero plugin for syncing items and notes into Notion 项目地址: https://gitcode.com/gh_mirrors/no/notero 当你在Zotero中积累了数百篇文献,却发现整理和引用它…...

别再只盯着应力云图了!用ANSYS Workbench的‘圣维南原理’和模型简化,把你的计算效率提升200%

别再只盯着应力云图了!用ANSYS Workbench的‘圣维南原理’和模型简化,把你的计算效率提升200% 有限元分析工程师常常陷入一个误区:认为模型越精细,结果越准确。但现实情况是,一个未经合理简化的复杂模型不仅会消耗大量…...

从一次内部渗透测试说起:我是如何利用SSRF漏洞,通过Gopher协议拿下Redis的

渗透测试实战:SSRF漏洞到Redis未授权访问的完整攻击链剖析 在一次常规的企业内部渗透测试中,我发现了一个看似普通的SSRF漏洞,却意外打开了通往内网核心系统的大门。这个故事不是教科书式的漏洞复现,而是一个真实攻击者视角下的完…...

微信消息自动转发终极指南:5分钟实现跨群智能消息同步

微信消息自动转发终极指南:5分钟实现跨群智能消息同步 【免费下载链接】wechat-forwarding 在微信群之间转发消息 项目地址: https://gitcode.com/gh_mirrors/we/wechat-forwarding 在微信群管理和协作场景中,消息的自动转发与同步是提升效率的关…...

别再乱打包了!手把手教你用Kali Linux和Metasploit生成免杀后门(附实战演示)

Kali Linux高级免杀技术实战:从原理到绕过Windows Defender 在渗透测试和红队演练中,后门程序的免杀能力直接决定了行动的成败。许多初学者在使用Metasploit生成基础payload后,常常发现它们被主流杀毒软件轻易拦截。本文将深入探讨免杀技术的…...

从YOLOv1到YOLOv5:一个算法工程师的实战避坑与版本选择指南

从YOLOv1到YOLOv5:算法工程师的版本选择与实战调优指南 在计算机视觉领域,目标检测算法的发展日新月异,而YOLO(You Only Look Once)系列作为其中的佼佼者,凭借其出色的实时性和准确性,已成为工业界和学术界广泛采用的核…...

工业控制系统安全实践:基于ISA-62443-3-3标准的OT/IT融合指南

1. 项目概述:当工业安全遇上新标准在工业自动化领域摸爬滚打了十几年,我见过太多因为安全标准“两张皮”而引发的头疼事。一边是负责生产线的工控工程师,他们的核心信条是“稳定压倒一切”,任何可能影响PLC运行周期、导致电机意外…...

91160-cli:健康160平台终极挂号神器,5分钟上手解决抢号难题

91160-cli:健康160平台终极挂号神器,5分钟上手解决抢号难题 【免费下载链接】91160-cli 健康160全自动挂号脚本,捡漏神器 项目地址: https://gitcode.com/gh_mirrors/91/91160-cli 你是否还在为抢不到专家号而烦恼?面对健康…...

如何解决QQ音乐下载的歌曲在其他设备上无法播放的问题

如何解决QQ音乐下载的歌曲在其他设备上无法播放的问题 【免费下载链接】qmcflac2mp3 直接将qmcflac文件转换成mp3文件,突破QQ音乐的格式限制 项目地址: https://gitcode.com/gh_mirrors/qm/qmcflac2mp3 你是否曾经在QQ音乐下载了喜欢的歌曲,却发现…...

计算机视觉入门:从OpenCV到PyTorch的实践指南

1. 项目概述:从“萌芽”到“入行”的视觉之旅 “对计算机视觉的萌芽迷恋”——这个标题精准地捕捉了无数技术爱好者,包括我自己,最初踏入这个领域时的心路历程。它描述的是一种状态:你或许被一张AI生成的艺术图片所震撼&#xff…...