我是靠谱客的博主 糟糕眼睛,最近开发中收集的这篇文章主要介绍修改参数_Simulink中怎么批量修改模块参数名称?任务一任务二,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在做比较复杂的系统建模时,某一个参数可能会被用很多功能模块使用。突然有一天,大家觉得这个参数的名称不太合适,需要换一个名字。如果一个模块一个模块改,会浪费很多时间,而且也容易漏掉。如果这个工作交给代码来解决,就会事半功倍。

今天,谈一谈如何批量修改模块参数名称?

假如有下面这样一个模型,名称叫Subsystem。

30af89b4be7dade676fb565141f3700b.png

其子系统内部结构内部如下图。

a8751c99410f91bf04d3a76099a059a8.png

这里我们重点关注模块参数部分,其他的可以忽略,总共有4个Constant、4个Gain模块。两个Constant模块的参数名称叫ConstPara1,另外两个Constant模块的参数名称叫ConstPara2。两个Gain模块的参数名称叫GainPara1,另外两个Gain模块的参数名称叫GainPara2。

任务一

如果有一天,你的同事评审模型时,发现参数ConstPara1名称有歧义,建议改为NewConstPara1。那么就需要批量修改该参数名称。

这里的工作任务可以分为两步:

1)把参数名为ConstPara1的Constant模块找到;

2)将新的参数名称NewConstPara1赋给上面的模块。

这个任务的代码如下:

constant=find_system('newModel/Subsystem','BlockType','Constant','Value','ConstPara1');for i=1:length(constant);set_param(constant{i},'Value','NewConstPara1');end

这里主要用到find_system、set_param函数。前者是用于寻找待替换参数名的模块,后者用于设置新的参数名。set_param函数之前的文章已介绍过。

find_system(sys, 'c1', cv1, 'c2', cv2,...'p1', v1, 'p2', v2,...),sys定义寻找范围,c1/cv1等成对出现,定义搜寻模块的属性为c1,属性值为cv1。

运行上面代码后,模型变为下图。

02e909f57aa9968ed56e44f662d9f5b6.png

两个模块的参数名称从ConstPara1成功变为NewConstPara1(图中红框),且其他模块参数名称保持不变(图中蓝框),实现了我们的任务。

任务二

又过了几天,你的同事继续评审模型时,发现参数GainPara1名称需要修改,建议改为NewGainPara1。

这里的工作任务仍然可以分为两步:

1)把参数名为GainPara1的Gain模块找到;

2)将新的参数名称NewGainPara1赋给上面找到的模块。

这个任务的代码如下:

gain=find_system('newModel/Subsystem','BlockType','Gain','Gain','GainPara1');for i=1:length(gain);set_param(gain{i},'Gain','NewGainPara1');end

运行上面代码后,模型变为下图。

8f07d87a273ba07e41cbf7a865f574fe.png

两个模块的参数名称从GainPara1成功变为New GainPara1(图中红框),且其他模块参数名称保持不变(图中蓝框),也实现了我们的任务。

做完两个任务之后,发现Simulink模块的参数名称很奇怪,有的叫Value,有的叫Gain,还有的叫Initial condition,等等。所以,当我们知道需要修改哪些类型模块的参数名称时,可以直接选用对应的参数名称来使用find_system来寻找;当我们不知道有哪个模块用了待修改的参数时,我们可能就需要所有模块类型都使用find_system找一遍。

以上,以Constant、Gain模块参数名称修改为例,简要介绍了批量修改参数名称的方法。每一次批量修改其他的模块参数名称时,都需要手动修改代码,交互方式不太友好,下一篇我们尝试用GUI界面来完成批量修改的任务。

最后

以上就是糟糕眼睛为你收集整理的修改参数_Simulink中怎么批量修改模块参数名称?任务一任务二的全部内容,希望文章能够帮你解决修改参数_Simulink中怎么批量修改模块参数名称?任务一任务二所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(68)

评论列表共有 0 条评论

立即
投稿
返回
顶部