Simulink学习——自定义库的创建和使用
创建自定义库当模型比较大时,经常会用到一些二次开发的模型作为库来使用,和之前讲的模型引用和子系统引用有异曲同工之妙,这期学习一下如何创建和使用自定义库。点击启动Simulink,选择Blank Library创建自定义库:这里我打包一个CAN信息的发送模块,作为测试库的第一个部件。创建完,目录里会多出一个灰色的slx文件。这时候打开库浏览器,我们刚刚创建的库还显示不出来,这里我们还需要做一些配置。
创建自定义库
当模型比较大时,经常会用到一些二次开发的模型作为库来使用,和之前讲的模型引用和子系统引用有异曲同工之妙,这期学习一下如何创建和使用自定义库。点击启动Simulink,选择Blank Library创建自定义库:
这里我打包一个CAN信息的发送模块,作为测试库的第一个部件。创建完,目录里会多出一个灰色的slx文件。
这时候打开库浏览器,我们刚刚创建的库还显示不出来,这里我们还需要做一些配置。
首先是让这个库在库浏览器中显示出来。根据如下注释所示,创建一个叫slblock的.m文件。我觉得这个,可以理解为这个文件可以将创建的库在环境中初始化。
function blkStruct = slblocks
%应该是初始化一个自定义库函数?
Browser.Library = 'testlib';
% 将需要添加的库名称输入到''中
Browser.Name = 'test';
%将在库浏览器里显示的名称添到''中
blkStruct.Browser = Browser
在使用库前,自定义库被启用,输入以下代码运行:
set_param(gcs,'EnableLBRepository','on');
%启用自定义库
然后创建一个新模型,点开库浏览器,就能够看到我们刚刚自定义的这个库啦:
在库中创建多个零部件
自定义库中通常需要包含许多自定义部件,那么如何在一个库中创建呢?如下,我们点开刚刚创建的库文件,在原来的模块旁边再创建一个模型,这里我们再打包创建一个CAN接受解包模块:
创建子系统封装好这个模块后,可以看到原来的库模型中就包含了两个子系统模型了:
这时候再去新建的模型里,打开库浏览器,刷新一下库浏览器。
就可以看到刚刚库文件中新创建的子模块:
将新建的库排到浏览器最前面
使用时我们发现,新建的模块因为命名原因,库排到很后,用起来很不方便。而通常自定义库是常用库,因此这里我们再设置一下我们的自定义库排序,把它排到库浏览器的最前面去。
首先创建一个叫st_customizatin.m的脚本,输入如下代码:
function sl_customization(cm)
% 更改自定义库在库浏览器中的排序
cm.LibraryBrowserCustomizer.applyOrder({'test',-2});
%''中写入需要改排序的库
end
首先创建一个叫InitiateLib.m的脚本(这个脚本名称随便命名),输入如下代码:
set_param(gcs,'EnableLBRepository','on');
%启用自定义库
sl_refresh_customizations;
%刷新使上述设置生效
刷新下库浏览器,就可以看到我们创建的自定义库到最前面了:
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)