有时候,在搭建模型过程中,有很多通过基础模块搭建的模型需要复用,整理到自己的库文件中会比较方便,本文基于该思想完成该功能。
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自带)的集合。