【研发日记】Matlab/Simulink技能解锁(三)——在Stateflow编辑窗口Debug

文章目录

前言

State断点

Transition断点

条件断点

按State步进

Watch Data Value

Sequence Viewer

分析和应用

总结


前言

        见《【研发日记】Matlab/Simulink技能解锁(一)——在Simulink编辑窗口Debug》

        见《【研发日记】Matlab/Simulink技能解锁(二)——在Function编辑窗口Debug》

State断点

        当Stateflow出现异常时,如果能确定大致的State位置,就可以在相应的State上设置一个断点(Breakpoint),软件仿真运行到该断点时就会停下来,然后就方便分析问题了,示例如下:

Transition断点

        有些情况下,还需要在状态转换连线上设置断点,使软件仿真运行时在转换线上暂停,示例如下:

条件断点

        有些情况下,软件异常只与某个Data的值相关,如果还按照位置和时间设置断点就不行了。这时候还可以用Data阈值来设置条件断点,软件仿真运行过程中一旦该Data满足阈值条件,就会触发暂停,示例如下:

按State步进

        有些软件问题往往不能在一个状态内就分析出来,需要对比多个相邻周期运行的结果,这时候就可以使用State步进功能,让软件仿真每次只运行一个State就暂停下来,示例如下:

Watch Data Value

        上述几种方法使仿真运行暂停下来时,用鼠标点击信号线就会出现一个黄色标签,显示信号的当前值,示例如下:

Sequence Viewer

        上述几种方法都是让Stateflow暂停在某一个State,或步进的方式逐个查看State里边的Data。但是当Stateflow的逻辑比较复杂,State的转换关系成为关注的重点时,这时候使用Sequence Viewer模块可以方便地查看State的转换路径,看清各个时刻是什么State,从哪个State转换过来,去向哪个State,停留了多长时间等等。示例如下:

分析和应用

        Stateflow的Debug在Simulink模型仿真调试方面的应用非常频繁,尤其是应用于复杂的状态机开发时作用非常明显,例如一些上下电休眠唤醒策略、网络管理策略、热管理策略、故障处理策略等等。项目中把这些Debug功能用起来后,能够有利于软件异常问题的分析和定位,大大提高Bug查找速度,有效减少开发人员在人脑逻辑分析上面投入的精力和时间。

        这些Debug方法主要适用于软件开发工程中,早期模型搭建和原型机调试验证时Bug较多的阶段。当软件开发进入后期升级迭代阶段时,也可用于新功能或子模块的分析验证。不适用于在装车阶段出现问题的分析排查。

总结

        以上就是本人在Debug Stateflow时,一些个人理解和分析的总结,首先介绍了它的几种基本用法,然后展示它的使用示例,最后分析了该模块的特点和适用场景。

        后续还会分享另外几个最近解锁的Matlab/Simulink新技能,欢迎评论区留言、点赞、收藏和关注,这些鼓励和支持都将成文本人持续分享的动力。

        另外,上述例程使用的Demo工程,可以到笔者的主页查找和下载。


        版权声明,原创文章,转载和引用请注明出处和链接,侵权必究!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode3. 无重复字符的最长子串 -hot100

题目: 代码(首刷看解析 2024年3月2日): 没能自解的原因是Alpahash.insert(s[right]); 放在for循环开头了,没能处理边界条件。 class Solution { public:int lengthOfLongestSubstring(string s) {// 滑动窗口int left…

overleaf上传到arxiv 参考文献无法引用(?)

记一下overleaf上传到arxiv的bug 参考文献无法引用(?) 因为需要上传bbl文件而不是bib 用overleaf生成bbl 另外需要将bbl和txt的文件名设置成一样的

Linux线程【互斥与同步】

目录 1.资源共享问题 1.1多线程并发访问 1.2临界区和临界资源 1.3互斥锁 2.多线程抢票 2.1并发抢票 2.2 引发问题 3.线程互斥 3.1互斥锁相关操作 3.1.1互斥锁创建与销毁 3.1.2、加锁操作 3.1.3 解锁操作 3.2.解决抢票问题 3.2.1互斥锁细节 3.3互斥…

C 嵌入式系统设计模式 18:临界区模式

本书的原著为:《Design Patterns for Embedded Systems in C ——An Embedded Software Engineering Toolkit 》,讲解的是嵌入式系统设计模式,是一本不可多得的好书。 本系列描述我对书中内容的理解。本文章描述嵌入式并发和资源管理模式之四…

Java读取文件

读取文件为String 、访问链接直接跳转html 环境:SpringMVC 、前端jsp InputStreamReader FileInputStream fileInputStream new FileInputStream(formatFile.getHtmlpath());InputStreamReader reader new InputStreamReader(fileInputStream, StandardCharsets…

5GC SBA架构

协议标准:Directory Listing /ftp/Specs/archive/23_series/23.501/ (3gpp.org) NF描述说明NSSFNetwork Slice Selection Function网络切片选择,根据UE的切片选择辅助信息、签约信息等确定UE允许接入的网络切片实例。NEF Network Exposure Function网络开…

gif闪图如何在线生成?仅需三步在线制作gif闪图

Gif动态图片是一种通过连续播放的一系列图片来展示的。Gif动图的优势是体积小、传播速度快且不受限制。当我们想要将多张图片变成带有闪动效果的gif动图时应该怎么操作呢?这时候,只需要使用在线闪图制作(https://www.gif.cn/)网站…

查找算法——java

顺序查找(顺序表查找) 顺序查找也称为线形查找,属于无序查找算法。从数据结构线形表的一端开始,顺序扫描,依次将扫描到的结 点关键字与给定值k相比较,若相等则表示查找成功;若扫描结束仍没…

web自动化笔记十:UnitTest基本使用

一、UnitTest框架 ①、什么是框架? 1、框架英文单词framework 2、为解决一类事情的功能集合 ②、为什么使用UnitTest框架 1、批量执行用例 2、提供丰富的断言知识 3、可以…

应用稳定性优化2:Crash/Tombstone问题分析及定位

1. Crash/Tombstone问题原因分析 2. Tombstone问题定位方法 本节主要讲解Tombstone问题的分析定位方法。 2.1 信号量分析法 信号机制是进程之间相互传递消息的一种方法,下表展示的是一些常见的信号种类。 SIGBUS与SIGSEGV的区别 SIGBUS(Bus error)意味着指针所…

Javaweb之SpringBootWeb案例之自动配置的两种常见方案的详细解析

3.2.2.2 方案一 ComponentScan组件扫描 SpringBootApplication ComponentScan({"com.itheima","com.example"}) //指定要扫描的包 public class SpringbootWebConfig2Application {public static void main(String[] args) {SpringApplication.run(Sprin…

【贪心算法】121. 买卖股票的最佳时机 I Leetcode 122. 买卖股票的最佳时机 II

【贪心算法】121. 买卖股票的最佳时机 I Leetcode 122. 买卖股票的最佳时机 II 121. 买卖股票的最佳时机 I贪心算法:遍历每一天卖出金额,一边计算卖出金额减之前的最小值,一边更新该卖出day前的最小金额 122. 买卖股票的最佳时机 II贪心算法…

Springboot+vue的商业辅助决策系统的设计与实现(有报告)。Javaee项目,springboot vue前后端分离项目

演示视频: Springbootvue的商业辅助决策系统的设计与实现(有报告)。Javaee项目,springboot vue前后端分离项目 项目介绍: 本文设计了一个基于Springbootvue的前后端分离的商业辅助决策系统的设计与实现,采…

C++ //练习 10.17 重写10.3.1节练习10.12(第345页)的程序,在对sort的调用中使用lambda来代替函数compareIsbn。

C Primer(第5版) 练习 10.17 练习 10.17 重写10.3.1节练习10.12(第345页)的程序,在对sort的调用中使用lambda来代替函数compareIsbn。 环境:Linux Ubuntu(云服务器) 工具&#xf…

数据库原理(一)

1、基本概念 学号姓名性别出生年月籍贯220101张三男2003江苏220102李四男2003山东220103王五女2003河北220104赵六女2003天津220105张四男2003北京220106李五女2003江苏220107王六女2003山东220108张七男2003河北220109张九男2003天津220110李十女2003北京 1.1数据&#xff0…

《系统架构设计师教程(第2版)》第5章-软件工程基础知识-05-净室软件工程(CSE)

文章目录 1. 概述2. 理论基础2.1 函数理论2.2 抽样理论 3. 技术手段3.1 增量式开发3.2 基于函数的规范与设计3.3 正确性验证3.4 统计测试 (Statistically Based Testing) 和软件认证 4. 应用与缺点1)太理论化2)缺少传统模块测试3)带有传统软件…

频率域采样

1. 频率域采样 (1) 采样的过程:DFT的X(k)是对周期且连续的频谱X()在[0,2pi)上的等间隔采样,采N个点得到的,采样间隔是;频域采样要求时域有限,即假设x(n)的长度是有限值M,x(n)的SFT是X()。 (2) X(k) 做IDF…

YOLOv9有效提点|加入BiFormer、SEA、EMA、Efficient se等几十种注意力机制(三)

专栏介绍:YOLOv9改进系列 | 包含深度学习最新创新,主力高效涨点!!! 一、本文介绍 本文只有代码及注意力模块简介,YOLOv9中的添加教程:可以看这篇文章。 YOLOv9有效提点|加入SE、CBAM、ECA、SimA…

svn介绍 4.0

一、svn介绍(版本控制工具) 1、svn的定义: svn是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式个管…

全球十大正规伦敦金交易平台app软件最新排名(综合版)

伦敦金作为当前国际市场中较为成熟、灵活的投资产品自然备受青睐,但投资者在选择交易软件时,应该尽量选择在行业内排名较高,口碑较好的平台,这样才能获得可靠的投资服务。刚开始不太懂得如何选择伦敦金软件的时候,投资…