创建自定义库

当模型比较大时,经常会用到一些二次开发的模型作为库来使用,和之前讲的模型引用和子系统引用有异曲同工之妙,这期学习一下如何创建和使用自定义库。点击启动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;
%刷新使上述设置生效

 

 

刷新下库浏览器,就可以看到我们创建的自定义库到最前面了:

 

 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐