如何在Matlab中建立属于自己的库

电子说

1.2w人已加入

描述


本期讲解如何在Matlab中建立属于自己的库,针对于公司设计相关MBD产品。
步骤如下:

 

将库添加到库浏览器中

此示例说明如何创建模块库,并将其添加到 Simulink 库浏览器中。此示例还显示如何添加子库。

要指定与您的库相关的信息,您可以创建名为 slblocks 的函数。

将库添加到库浏览器

在 Simulink 起始页上,选择 Blank Library 并点击 Create Library。

注意

库浏览器仅支持库。您无法在库浏览器中显示模型的内容。

向该库添加一个 Gain 模块。

在 MATLAB 命令行窗口中,输入以下命令将 EnableLBRepository 库属性设置为 'on'。当您保存库时,只有此属性设置为 on,您的库才会出现在库浏览器中。

 

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

 

将库保存到 MATLAB 路径上的文件夹中。对于本示例,将库命名为 mylib。

在 MATLAB 当前文件夹浏览器中,打开包含 mylib 的文件夹,然后在 MATLAB 工具条中点击 New Script。

在打开的 MATLAB 编辑器中,添加以下函数,该函数指定库 mylib 应出现在名为 My Library 的库浏览器中。

 

function blkStruct = slblocks
% This function specifies that the library 'mylib'
% should appear in the Library Browser with the 
% name 'My Library'

    Browser.Library = 'mylib';
    % 'mylib' is the name of the library

    Browser.Name = 'My Library';
    % 'My Library' is the library name that appears
    % in the Library Browser

    blkStruct.Browser = Browser;

 

将函数另存为 slblocks.m。

注意

您可以将该函数保存为 .m 或 .mlx 文件。但不能另存为 P 代码文件。

通过点击 Simulink 工具条中的 Library Browser 打开库浏览器。

要在库浏览器中查看新库,请右键点击库列表并选择 Refresh Library Browser。

matlab

下图显示了示例库 mylib,它在库浏览器中的名称为 My Library。

注意

如果您保存库时没有将 'EnableLBRepository' 设置为 'on',库浏览器的顶部将显示一条消息。

matlab

请点击 Fix 并根据提示进行操作。

将子库添加到库浏览器

按照以下步骤将名为 mylib2 的子库添加到您的 mylib 库中。

创建名为 mylib2 的库。将几个模块添加到该库。

在 MATLAB 命令行窗口中,为新库将 EnableLBRepository 库属性设置为 'on'。

 

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

 

将 mylib2 保存到包含 mylib 的文件夹中。

向该 mylib 库添加一个 Subsystem 模块。

通过删除子系统中的 Inport 和 Outport 模块,从子系统中删除输入和输出端口。

将 Subsystem 模块命名为 My Sublibrary。

要将 Subsystem 模块链接到子库,请使用属性检查器将 OpenFcn 回调设置为 mylib2。

matlab

保存 mylib。

要在库浏览器中查看新子库,请右键点击库列表并选择 Refresh Library Browser。

matlab

下图显示了示例子库 mylib2,它在库浏览器中的名称为 My Sublibrary。

由于您创建的回调,点击 My Sublibrary 将显示 mylib2 库的内容。

指定库列表中的库顺序

您可以通过向 MATLAB 路径中添加一个 sl_customization.m 文件并为您的库设置排序优先级,从而指定您的库相对于列表中其他库的顺序。例如,要让您的库出现在列表的顶部,可以将排序优先级设置为 -2。默认情况下,Simulink 库的排序优先级为 -1。其他库的排序优先级默认为 0,这些库显示在 Simulink 库的下面。排序优先级相同的库按字母顺序显示。

以下示例文件 sl_customization.m 的内容将新库放置在库列表的顶部。

 

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

 

要使自定义立即生效,请在 MATLAB 命令行窗口中输入:

 

sl_refresh_customizations

 

matlab

        责任编辑:彭菁

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分