Matlab编程技巧:通过脚本获取/修改Stateflow参数

2024-09-03 11:38

本文主要是介绍Matlab编程技巧:通过脚本获取/修改Stateflow参数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在Simulink模型中,经常会用Stateflow做一些状态转移或者流程图的建模。除了状态转移的逻辑以外,也经常需要关注Stateflow的参数,包括Data和Event等。

本文会介绍通过Matlab脚本调用API来获取和修改Stateflow参数的方法。本文例程基于Matlab2018a版本。

文章目录

  • 1 手动获取/修改Stateflow参数
  • 2 通过Matlab脚本获取/修改Stateflow参数
    • 2.1 获取Stateflow操作句柄
    • 2.2 获取Data对象
    • 2.3 修改Data对象
  • 3 关于

1 手动获取/修改Stateflow参数

1.首先在Matlab命令行中输入open sf_security.slx,打开Matlab自带的一个Stateflow例程。模型中包含了一个Chart模块,以及若干输入输出。
在这里插入图片描述
2.点击Simulink上方工具栏中的Model Explorer,再选中左边的Security System,就可以看到该Chart中的所有内容信息。
在这里插入图片描述
3.选中Chart中的某个参数,就会显示出该参数的具体配置。在配置界面中可以手动修改。后文会说明如何通过脚本修改这些参数。
在这里插入图片描述

2 通过Matlab脚本获取/修改Stateflow参数

Stateflow的API和一般的Simulink模块有所不同,接下来会一步一步研究如何用脚本找到例子中的Stateflow参数。

2.1 获取Stateflow操作句柄

由于Stateflow的策略都是在Chart模块中体现的,所以第一步是获取Simulink里面的Chart的句柄。

在Matlab中输入以下命令行:

>>rt = sfroot;
>>myState = rt.find('-isa','Stateflow.Chart');

然后,在Matlab工作区就会返回名为myState的Chart对象,这个Chart对象就是模型中的Security System。注意,如果模型中有多个Chart,就会返回一个包含所有Chart对象的数组。
在这里插入图片描述
获取了Stateflow句柄后,可以通过脚本修改这个Chart属性。例如下面的命令,可以将Stateflow语言设置为C语言:

>> myState.ActionLanguage = 'C'

属性就改成了如下所示:
在这里插入图片描述

2.2 获取Data对象

在Matlab命令行中输入以下代码,就可以返回所有该Chart中包含的所有Data。

>>StateData = myState.find('-isa','Stateflow.Data');

Matlab右侧的工作区:
在这里插入图片描述
对应的Model Explorer中的8个Data:
在这里插入图片描述
当然,在find函数中也可以加入查找的条件。譬如,查找Name为D_mode的Data,代码为:

>>StateData = myState.find('-isa','Stateflow.Data','Name','D_mode');

或者查找Scope为Input的Data,就会返回七个相应的Data:

>> StateData = myState.find('-isa','Stateflow.Data','Scope','Input');

2.3 修改Data对象

假如想要修改D_mode的Type为single,可以通过以下代码:

>>StateData = myState.find('-isa','Stateflow.Data','Name','D_mode');
>>StateData.DataType = 'single';

这样的话,Model Explorer中的Type就被改为了single,如图:
在这里插入图片描述
对于Stateflow中的Event和Message等其他类型的参数,也可以通过类似的方式用脚本调用API去修改,这里不再赘述。

3 关于<Matlab技巧>的总结

< Matlab编程技巧 >详细阐述了如何通过Matlab调用一些API接口修改模型。

实际上,通过Matlab可以调用的接口远不止于此,但这几个类型的脚本是最为实用的,能解决实际工作中遇到的大部分问题,因为在MBD开发中,模型无非就是由模块、信号线、数据字典和状态转移组成的。

在不同的公司,面对不同项目的过程中,经常会总结出一些适用于自己团队的模型建模规范。譬如,要求在某种情况下,需要指定模块的输出类型等等。如果将这一系列自定义的规范写成脚本,集成到Simulink的Model Advisor中,可以减少策略工程师开发脚本的时间,将会大大提高模型检查效率。后续将会以这几篇文章为基础,研究Model Advisor的应用。

>>返回个人博客总目录

这篇关于Matlab编程技巧:通过脚本获取/修改Stateflow参数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1132872

相关文章

Nginx屏蔽服务器名称与版本信息方式(源码级修改)

《Nginx屏蔽服务器名称与版本信息方式(源码级修改)》本文详解如何通过源码修改Nginx1.25.4,移除Server响应头中的服务类型和版本信息,以增强安全性,需重新配置、编译、安装,升级时需重复... 目录一、背景与目的二、适用版本三、操作步骤修改源码文件四、后续操作提示五、注意事项六、总结一、背景与

MySQL的JDBC编程详解

《MySQL的JDBC编程详解》:本文主要介绍MySQL的JDBC编程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、前置知识1. 引入依赖2. 认识 url二、JDBC 操作流程1. JDBC 的写操作2. JDBC 的读操作总结前言本文介绍了mysq

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

Java实现复杂查询优化的7个技巧小结

《Java实现复杂查询优化的7个技巧小结》在Java项目中,复杂查询是开发者面临的“硬骨头”,本文将通过7个实战技巧,结合代码示例和性能对比,手把手教你如何让复杂查询变得优雅,大家可以根据需求进行选择... 目录一、复杂查询的痛点:为何你的代码“又臭又长”1.1冗余变量与中间状态1.2重复查询与性能陷阱1.

Python内存优化的实战技巧分享

《Python内存优化的实战技巧分享》Python作为一门解释型语言,虽然在开发效率上有着显著优势,但在执行效率方面往往被诟病,然而,通过合理的内存优化策略,我们可以让Python程序的运行速度提升3... 目录前言python内存管理机制引用计数机制垃圾回收机制内存泄漏的常见原因1. 循环引用2. 全局变

Python异步编程之await与asyncio基本用法详解

《Python异步编程之await与asyncio基本用法详解》在Python中,await和asyncio是异步编程的核心工具,用于高效处理I/O密集型任务(如网络请求、文件读写、数据库操作等),接... 目录一、核心概念二、使用场景三、基本用法1. 定义协程2. 运行协程3. 并发执行多个任务四、关键

python中的显式声明类型参数使用方式

《python中的显式声明类型参数使用方式》文章探讨了Python3.10+版本中类型注解的使用,指出FastAPI官方示例强调显式声明参数类型,通过|操作符替代Union/Optional,可提升代... 目录背景python函数显式声明的类型汇总基本类型集合类型Optional and Union(py