批量修改大型 Simulink 模型中模块的属性

  • 一、通过Simulink自带的搜索
  • 二、通过命令行进行搜索替换
  • 三、使用Model Explorer编辑属性

在大型Simulink建模中,需要进行某个模块的属性修改是很麻烦的事情,除非您对整个模型相当了解,并且能够快速定位每一个模块。但是在团队合作中,您不可能对所有模型都很了解。

比如在飞机仿真建模过程中,其中的气动库计算需要使用到大量的查表(Lookup Table)插值模块,如果想一次性修改所有 Lookup Table 的 Index Search Method 参数。关于飞机的东西不能说的太多,你懂的,本文使用 MATLAB 自带的 f14 模型,演示如何修改大型 Simulink 中 Gain 模块的采样时间(Sample Time)。

更多Simlink实用技巧请猛烈点击这里http://www.matlabsky.com/forum.php?mod=forumdisplay&fid=17&filter=typeid&typeid=785。

一、通过Simulink自带的搜索

估计大部分人都是使用这个方法的,也是最容易的。但是有一个致命的缺点,就是必须手动一个一个的修改!

(1)通过菜单Edit→Find…打开查找对话框(当然也可以使用Ctr+F)

(2)Simulink搜索对话框包含很多功能,如果能够灵活使用,效率还是挺不错的。在搜索结果列表中,可以直接双击打开相应的模块,还有右击直接编辑属性。更多功能大家可以自己慢慢摸索!

(3)使用这个查到对话框的时候,很多同学会发现,在搜到列表中没法多选,每次只能编辑一个模块!如果想将某个子系统下所有Gain的采样时间修改为0.1,那您只能手动一个一个愚公移山了!

二、通过命令行进行搜索替换

Simulink 有一个很大特色,就是所有通过鼠标键盘的操作都可以使用命令行完成,这个就便于进行批量建模、修改、仿真,调试等。很多人看到代码就晕,心想使用Simulink 查找对话框就可以完成了,还这么费心的使用那些破命令。但是有时代码在代替人工操作时是具有更高的效率。

在命令行进行 Simulink 搜索主要用到 find_systemhilite_sysytem 函数,而修改参数则使用到 set_param 函数,下面就尝试下这对组合吧:

% 不知道find_system每个参数的意义,请查看帮助文档
blks=find_system(bdroot,'LookUnderMasks','all','FollowLinks','on','blockType','Gain');
for ii=1:length(blks)% 高亮显示指定模块hilite_system(blks{ii});% 不知道模块属性名,请搜索Block-Specific Parametersset_param(blks{ii},'SampleTime',0.1);
end

find_system的帮助文档如下,其实学会搜索和查看帮助是一种品质!

Gain增益模块的对话框参数如下,想了解其他模块,请在帮助文档中搜索Block-Specific Parameters

三、使用Model Explorer编辑属性

Model Explorer具有很强的编辑功能,能够快速、高效、批量的进行变量定义,属性修改,模型调整等。下面的讲解过程,看起来视乎有些繁琐,但真说明了Model Explorer的功能强大。

(1)首先是打开Model Explorer(什么不知道如何打开,那不妨看看这个)

(2)在Model Hierarchy目录树中需要搜索的模型或子系统,在Seach下拉菜单中选择by Block Type,Type下拉菜单选择Gain,然后点击搜索!

(3)中间的面板中列出了搜索到的Gain模块,将Column View切换到Default,然后在Name标题栏右击,选择Insert Path,这样模型的路径就会显示在列表中。点击Path连接就可以直接定位到模块。

(4)很多细心同学可能发现,Model Explorer没有列出系统下所有的Gain模块,而只有指定系统最顶层的Gain。这是因为Model Explorer默认不搜索子系统。只要在列表中空白处右击,选择Show Current System and Below即可。

(5)当您在列表中,选择任意一个模块时,右侧会出现该模块属性面板,您可以根据需要调整。但是当选中选中多个模块时,右边的设置面板就变灰,不能允许修改了(这是一种保护手段,防止意外修改模型)。要想一次性修改全部Gain模块的Sample Time参数,需要如下操作:

●点击Column View右边的Show Details,在Find Properties里面输入sample,选择SampleTime添加到右边的Column Name中

●然后在模块列表中,使用Ctr/Shift + 左击,选择多个模块,直接编辑刚才添加的SampleTime列,所做的修改将应用到所有选中的模块。

Ref: 批量修改大型Simulink模型中模块的属性

带学习: GUI界面实现批量修改Simulink模块参数名称

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

【Matlab 控制】批量修改大型 Simulink 模型中模块的属性相关推荐

  1. shell 批量修改多个文件中的内容

    文章目录 前言 场景 ==备注== 最新脚本 操作如下 思路: 第一个版本: 第二版本: 参考文献 小结 前言 现在会议很多都是双盲评,然而又需要上传材料/实验结果,这时候需要把材料中和自己名字相关的 ...

  2. Matlab编程技巧:通过Matlab脚本批量修改Simulink模块的大小,背景颜色

    Matlab编程技巧:通过M脚本修改Simulink模块的大小,背景颜色 M脚本修改Simulink模块的大小,背景颜色 选取一个Simulink模型,获取模块参数,在命令行输入代码: sysBolc ...

  3. matlab 图像尺寸 批量,matlab 图像批量修改图像大小

    网上上传图像的时候经常要修改图像的大小,这就用matlab写了一个小程序,能够批量修改图像的大小,顺便转换一下格式,挺好用的.先放在这里,有空的时候编译成exe. function [ ] = pho ...

  4. 在Matlab R2019版本上分析simulink模型的BODE图、阶跃响应、单位脉冲响应

    1.根据实际系统物理关系,搭建系统的simulink模型,注意,系统的输入端口和输出端口不能用实际的源,而要采用In1 block和Out1 block,可以命名输入输出的信号线. 2.选择分析工具, ...

  5. linux 批量修改文件名中间,Linux中批量修改文件名

    Linux中批量修改文件名 有时候我们有一个目录下面的文件名都需要重新命令 如: 以下有十个学生完成的脚本,现在需要将finish改为ing [root@slave test]# touch stud ...

  6. 玩点不一样的,如何使用MATLAB实现批量修改文件后缀名,文件名,批量复制文件

    1.  自动批量修改文件后缀名,有时非常有用. 对于文件名没有要求,不用是序列文件名.比如需要将abaqus的inp文件修改成txt文件,便于使用 textscan和 textread等函数操作. c ...

  7. java 反射修改final变量_Java中final的属性值怎么利用反射机制进行修改

    Java中final的属性值怎么利用反射机制进行修改 发布时间:2020-12-02 17:31:07 来源:亿速云 阅读:96 作者:Leah 今天就跟大家聊聊有关Java中final的属性值怎么利 ...

  8. simulink模型中的仿真时间和仿真步长的区别

    一.仿真时间 图中的stop Time处所指的就是仿真时间的设置. 但需要注意的一点就是:这里所指的时间概念与真实的时间是不一样的,只是计算机仿真中对时间的一种表示. 二.仿真步长 快捷键 ctrl+ ...

  9. Python批量修改Word文档中特定关键字的颜色

    关于Word文件的大致结构请参考使用Python写入docx文件并控制字体颜色 代码功能:读取docx文档中的文字,在尽量不影响原来字体样式的情况下,只把特定的文字都修改为红色. 表格中的文字请参考P ...

最新文章

  1. Action4D:人群和杂物中的在线动作识别:CVPR209论文阅读
  2. 来阿里前 vs 来阿里后
  3. Eclipse常用功能键
  4. 在RHEL上实现OpeenSSH
  5. SANS研究所:7大最危险的攻击技术介绍
  6. 日均万亿条数据如何处理?爱奇艺实时计算平台这样做
  7. 河北微型计算机原理专接本,河北省专接本(微机原理与接口技术知识点总结)
  8. [HDOJ1823] Luck and Love(线段树,树套树)
  9. C语言程序设计的七个准备步骤
  10. 【剑指offer中等部分4】二进制中1的个数(java)
  11. 无线路由器实现网络接入
  12. 由四位央行官员为你制作的“数字货币”说明书
  13. 电脑热点和虚拟机网卡冲突
  14. bzoj1236 KPSUM bzoj2900 好玩的数字游戏
  15. 你若安好便是晴天——林徽因传
  16. 15版计算机应用基础知识整理,[电脑基础知识]计算机应用基础.ppt
  17. linux断电并重启命令,Linux基本操作:关机 重启
  18. 基于海量微博数据的仓库构建与舆情热点挖掘项目总结
  19. 自动更新word题注
  20. Could not load driver class org.neo4j.ogm.drivers.http.driver.HttpDriver(Neo4j连接用bolt还是http)

热门文章

  1. 网络安装Centos x64 6.10
  2. PHP基础1--环境搭建
  3. 该怎么写Angular JS
  4. struts2处理请求流程详解
  5. 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to
  6. js 解析 url参数中文的情况
  7. 2012年CS毕业生
  8. Normal-Inverse Gamma Mixture简介
  9. UA PHYS515 电磁理论I 麦克斯韦方程组基础5 电动力学的四类问题与对应的麦克斯韦方程
  10. UA SIE545 优化理论基础0 优化建模6 罐头的尺寸设计