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

2024-09-03 11:38

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

在MBD(基于模型的设计)开发中,可能需要反复修改simulink模型。传统的方式是通过在模型中找到相应的模块,然后点进去修改参数。本文介绍一种通过Matlab脚本批量获取Simulink模块参数,并修改参数的方法。

文章目录

  • 1 相关函数
    • 1.1 搜索出符合条件的模块、信号线、端口等
    • 1.2 获取模块指定参数的值
    • 1.3 设置模块指定参数的值
  • 2 常见问题
    • 2.1 参数名称在脚本中对应的字符串是什么
    • 2.2 只想搜索模型顶层的模块怎么办
  • 3 参考资料

1 相关函数

1.1 搜索出符合条件的模块、信号线、端口等

函数Objects = find_system(System,Name,Value)
输入参数1)System——模型名称;2)Name,Value——搜索条件的名称、值,可以输入多组名称、值
返回值1)Objects——符合搜索条件的模块路径的元胞数组

例如,搜索出demo.slx模型中所有的Gain模块
在这里插入图片描述

>> GainCell = find_system('demo','BlockType','Gain') %搜索出demo.slx模型中所有的Gain模块GainCell =2×1 cell 数组{'demo/Gain' }{'demo/Gain1'}

1.2 获取模块指定参数的值

函数ParamValue = get_param(Object,Parameter)
输入参数1)Object——模块路径,即find_system输出参数;2)Parameter——模块参数
返回值1)ParamValue——模块参数的值

例如,获取demo/Gain模块的输出数据类型

>> OutDataTypeStr = get_param('demo/Gain','OutDataTypeStr')  %获取demo/Gain模块的输出数据类型OutDataTypeStr ='Inherit: Inherit via internal rule'

1.3 设置模块指定参数的值

函数set_param(Object,ParameterName,Value)
输入参数1)Object——模块路径,即find_system输出参数;2)Parameter——模块参数;3)参数值
返回值

例如,设置demo/Gain模块的输出数据类型为single

>> set_param('demo/Gain','OutDataTypeStr','single') %设置demo/Gain模块的输出数据类型为single
>> OutDataTypeStr = get_param('demo/Gain','OutDataTypeStr')OutDataTypeStr ='single'

2 常见问题

2.1 参数名称在脚本中对应的字符串是什么

章节1.2的示例中,Gain模块的输出数据类型是’OutDataTypeStr’,这个字符串是从哪里知道的呢?有以下两种途径获得。
1)右键模块Gain——Properties——Block Annotation,可以在左边的列表框中看到该模块的所有属性,找到相应的即可。
模块属性列表
2)双击模块——找到填写相应参数的地方——右键What’s This?——弹出的帮助窗口拉到最下面——Block Parameter右边写的就是了
在这里插入图片描述

2.2 只想搜索模型顶层的模块怎么办

只想搜索出顶层系统的输入端,不想搜索子系统,可以通过find_system的’SearchDepth’参数来控制。
例如,把前文的demo创建子系统,如下图:
在这里插入图片描述
通过给find_system传入’SearchDepth’为1的参数,即可只搜索顶层模块:

>> InportCell = find_system('demo','BlockType','Inport') %搜索所有Inport模块InportCell =4×1 cell 数组{'demo/In1'          }{'demo/In2'          }{'demo/Subsystem/In1'}{'demo/Subsystem/In2'}>> InportCell = find_system('demo','SearchDepth',1,'BlockType','Inport') %只搜索顶层Inport模块InportCell =2×1 cell 数组{'demo/In1'}{'demo/In2'}

3 参考资料

[1]https://ww2.mathworks.cn/help/simulink/slref/find_system.html?s_tid=doc_ta
[2]https://ww2.mathworks.cn/help/simulink/slref/get_param.html?s_tid=doc_ta

>>返回个人博客总目录

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



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

相关文章

Java AOP面向切面编程的概念和实现方式

《JavaAOP面向切面编程的概念和实现方式》AOP是面向切面编程,通过动态代理将横切关注点(如日志、事务)与核心业务逻辑分离,提升代码复用性和可维护性,本文给大家介绍JavaAOP面向切面编程的概... 目录一、AOP 是什么?二、AOP 的核心概念与实现方式核心概念实现方式三、Spring AOP 的关

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

Python sys模块的使用及说明

《Pythonsys模块的使用及说明》Pythonsys模块是核心工具,用于解释器交互与运行时控制,涵盖命令行参数处理、路径修改、强制退出、I/O重定向、系统信息获取等功能,适用于脚本开发与调试,需... 目录python sys 模块详解常用功能与代码示例获取命令行参数修改模块搜索路径强制退出程序标准输入

Python pickle模块的使用指南

《Pythonpickle模块的使用指南》Pythonpickle模块用于对象序列化与反序列化,支持dump/load方法及自定义类,需注意安全风险,建议在受控环境中使用,适用于模型持久化、缓存及跨... 目录python pickle 模块详解基本序列化与反序列化直接序列化为字节流自定义对象的序列化安全注

Java发送SNMP至交换机获取交换机状态实现方式

《Java发送SNMP至交换机获取交换机状态实现方式》文章介绍使用SNMP4J库(2.7.0)通过RCF1213-MIB协议获取交换机单/多路状态,需开启SNMP支持,重点对比SNMPv1、v2c、v... 目录交换机协议SNMP库获取交换机单路状态获取交换机多路状态总结交换机协议这里使用的交换机协议为常

C#中通过Response.Headers设置自定义参数的代码示例

《C#中通过Response.Headers设置自定义参数的代码示例》:本文主要介绍C#中通过Response.Headers设置自定义响应头的方法,涵盖基础添加、安全校验、生产实践及调试技巧,强... 目录一、基础设置方法1. 直接添加自定义头2. 批量设置模式二、高级配置技巧1. 安全校验机制2. 类型

MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决

《MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决》MyBatis默认开启一级缓存,同一事务中循环调用查询方法时会重复使用缓存数据,导致获取的序列主键值均为1,... 目录问题原因解决办法如果是存储过程总结问题myBATis有如下代码获取序列作为主键IdMappe

C#使用iText获取PDF的trailer数据的代码示例

《C#使用iText获取PDF的trailer数据的代码示例》开发程序debug的时候,看到了PDF有个trailer数据,挺有意思,于是考虑用代码把它读出来,那么就用到我们常用的iText框架了,所... 目录引言iText 核心概念C# 代码示例步骤 1: 确保已安装 iText步骤 2: C# 代码程

90%的人第一步就错了! 顺利登录wifi路由器后台的技巧

《90%的人第一步就错了!顺利登录wifi路由器后台的技巧》登录Wi-Fi路由器,其实就是进入它的后台管理页面,很多朋友不知道该怎么进入路由器后台设置,感兴趣的朋友可以花3分钟了解一下... 你是不是也遇到过这种情况:家里网速突然变慢、想改WiFi密码却不知道从哪进路由器、新装宽带后完全不知道怎么设置?别慌

python pymodbus模块的具体使用

《pythonpymodbus模块的具体使用》pymodbus是一个Python实现的Modbus协议库,支持TCP和RTU通信模式,支持读写线圈、离散输入、保持寄存器等数据类型,具有一定的参考价值... 目录一、详解1、 基础概念2、核心功能3、安装与设置4、使用示例5、 高级特性6、注意事项二、代码示例