Matlab编程技巧:通过脚本获取/修改Simulink模块参数 | 您所在的位置:网站首页 › simulink提取某个时刻的值 › 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模块 例如,获取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,可以在左边的列表框中看到该模块的所有属性,找到相应的即可。 只想搜索出顶层系统的输入端,不想搜索子系统,可以通过find_system的’SearchDepth’参数来控制。 例如,把前文的demo创建子系统,如下图: [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 >>返回个人博客总目录 |
CopyRight 2018-2019 实验室设备网 版权所有 |