有时候,在搭建模型过程中,有很多通过基础模块搭建的模型需要复用,整理到自己的库文件中会比较方便,本文基于该思想完成该功能。

01--封装子系统

本文基于一阶滤波器来完成自己的库浏览器的创建,首先搭建一个一阶滤波器模型,如下:

 

 输入信号,输出信号,滤波系数。

将该模型进行创建子系统:

 

 按如下设置进行子系统封装:

①主要进行模块的外观设置,plot是绘画命令,如果想用自己自定义的图片,可以在封装选项处上传自己的图片即可。

 ②这一步主要是该模块内部的参数设置,把滤波系数设置为K

由于K的范围为0~1,故需要在右边的限制选项中设置他的范围

 ③设置该系数的初始化值

 

 ④设置帮助及描述信息等

 封装完成后的子系统如下:

 02--将模型添加进simulink库中

新建一个库浏览器,选择空白浏览器

 把上述搭建好的模型拖进该库浏览器中

 

将该库浏览器保存并命名LIB

 

 

 运行MATLAB命令窗口运行如下指令:

该指令的作用是将模块的库属性开关置位,这样在库浏览器中将会找到我们自己创建的库模型

set_param(gcs,'EnableLBRepository','on');

在刚刚保存模型LIB文件的地方创建一个.m脚本文件(命名为slblocks),输入如下命令:

function blkStruct = slblocks

    Browser.Library = 'LIB';
    % 'EMI' 为库文件名,不需要带扩展名

    Browser.Name = 'LIB';
    % 'EMI' 是出现在库浏览器中的名词

    blkStruct.Browser = Browser;

 将该模型及脚本文件所在的路径放入到放入到MATLAB设置路径内:

 

 若电脑没有权限,则选择把pathdef文件放入到上面同一个文件夹内。

路径内:

 直接打开simulink库浏览器,按F5刷新,LIB已经在下拉菜单内了,

 可以看到,在常用的选项中比较靠后的位置,在模型的文件夹内再创建如下命令的脚本并命名为sl_customization,注意代码内LIB为模型名字

function sl_customization(cm)
	% Change the order of libraries in the Simulink Library Browser. 
	cm.LibraryBrowserCustomizer.applyOrder({'LIB',-2});
end

在MATLAB窗口位置输入指令:sl_refresh_customizations,再在simulink库浏览器按F5刷新

 有时候需要更多不同层次的模块,可以做一个类似于simulink自带的常用模块库类似的功能。

 

 总结:建模过程中,创建属于自己库浏览器能够提高建模效率,因为很多模块复用性较强,后续准备做一个比较常用模块(非simulink自带)的集合。

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐