![44bc8f136c72951b43a849ffc44c8785.png](https://img-blog.csdnimg.cn/img_convert/44bc8f136c72951b43a849ffc44c8785.png)
创建自定义库:matlab2019a检索创建自定义库/使用注释描述模型/将库添加到 Library Browser 中
创建库
您可以创建自己的库,(可选)并将其添加到 Simulink® Library Browser 中。您可以像对待模型一样将库另存为 .SLX 文件。但是,您不能在库中进行仿真,而且每次您关闭库之后,库将被锁定而无法进行编辑。要对库进行更改,必须先解锁库。
- 请参阅锁定和解锁库
当您关闭库时,它将被锁定,无法进行编辑。当您下一次打开它时,如果要进行更改,则需要解锁库。点击库左下角的锁标记以解锁库。此外,如果您尝试修改锁定的库,将显示一条消息,提示您解锁。
您可以通过编程方式解锁库。在 MATLAB 命令提示符下,输入:
set_param('library_name','Lock','off');
要以编程方式锁定库,请输入:
set_param('library_name','Lock','on');
二
1.在 Simulink Start Page 上,选择 Blank Library 并点击 Create Library。
2将模型或库中的模块添加到新库中。对模块进行所需的更改,如更改模块参数、添加封装或将模块添加到子系统中。
库层次结构中的子系统名称必须唯一。例如,不要创建Subsystem_Name1/Subsystem_Name2/Subsystem_Name1 这样的层次结构。
3添加注释或图像。右键点击您希望出现在 Library Browser 的库中的模块,然后选择 Show in Library Browser。
4如果您打算将库添加到 Library Browser 中,您可以在库模型中为模块和注释排序。默认情况下,它们按字母顺序显示在 Library Browser 中,先显示子系统,然后显示模块,最后显示注释。您的库用户可以使用 Library Browser 上下文菜单选择是按字母顺序还是您指定的顺序进行查看。如果用户选择此选项,则它们在库模型中的显示顺序将决定它们在 Library Browser 中的库网格上的显示顺序。
5如果您希望库出现在 Library Browser 中,请在保存库之前启用模型属性 EnableLBRepository。
set_param(gcs,'EnableLBRepository','on');
6保存库。
库的保存位置取决于您打算如何使用它。如果您要将库添加到 Library Browser 中,请将它保存到 MATLAB® 路径中的文件夹中,或者将保存位置添加到 MATLAB 路径中。否则,请将它保存到使用模块的模型能够访问的位置。
如果您希望库出现在 Library Browser 中,还必须在您的 MATLAB 路径中创建函数 slblocks,以便将库添加到浏览器中。要查看向 Library Browser 中添加库的完整步骤的示例,请参阅将库添加到 Library Browser 中。
三.将库添加到 Library Browser 中
此示例说明如何创建模块库,并将其添加到 Simulink® Library Browser 中。您还可以向库中添加出现在 Library Browser 中的注释。
您可以创建函数 slblocks,以指定与您的库相关的信息。您可以将此函数另存为 .m 或 .mlx 文件。但不能另存为 P 代码文件。
1.在 Simulink Start Page 上,选择 Blank Library 并点击 Create Library。
2.向库中添加一个 Gain 模块和两个 Subsystem 模块。将两个 Subsystem 模块分别命名为 Subsystem1 和 Subsystem2。在 Subsystem2 属性中,将 OpenFcn 回调设置为 mylib2。
![ab01de5600beb930d946a5446bbb6f97.png](https://img-blog.csdnimg.cn/img_convert/ab01de5600beb930d946a5446bbb6f97.png)
3.在 MATLAB® 命令提示符下,输入以下命令以启用模型属性 EnableLBRepository。当您保存库时,只有此属性设置为 on,您的库才会出现在浏览器中。
set_param(gcs,'EnableLBRepository','on');
4.将库保存到 MATLAB 路径上的文件夹中。对于本示例,将库命名为 mylib。
5.再创建一个库 mylib2,然后添加一些模块以及包含文本 My annotation 的注释。右键点击该注释并选择 Show in Library Browser。
6.为注释添加说明。当您将鼠标指针悬停在注释上时,说明将显示在 Library Browser 中。您可以使用 set_param 以编程方式实现此目的。使用 find_system 获取注释句柄。将部分注释文本作为 'Name' 参数的值进行查找。'RegExp' 参数用于启用部分匹配。
ann = find_system('mylib2','findall','on','RegExp',...
'on','Type','annotation','Name','annotation');
set_param(ann,'Description',...
'Use this annotation to label the model.');
7.将 mylib2 保存到与 mylib 相同的文件夹中。
如果需要,您可以关闭这两个库。
8.在 MATLAB 中,右键点击您保存库的文件夹,并选择 New File > Script。将文件命名为 slblocks.m。
9.打开 slblocks.m。将此函数添加到其中并保存。
function blkStruct = slblocks
% This function specifies that the library should appear
% in the Library Browser
% and be cached in the browser repository
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;
10在 Library Browser 中,执行刷新操作以查看新库。右键点击库列表并选择 Refresh Library Browser。
下图显示了示例库 mylib,它在 Library Browser 中的名称为 My Library。
![25657b5e64b39b549e414bbbdf56f225.png](https://img-blog.csdnimg.cn/img_convert/25657b5e64b39b549e414bbbdf56f225.png)
11.由于您创建的回调,点击 Subsystem2 将显示 mylib2 库的内容。将鼠标指针悬停在 Library Browser 中的注释上将会显示说明。
注意
如果您保存库时没有将 'EnableLBRepository' 设置为 'on',Library Browser 的顶部将显示一条消息。
请点击 Fix 并根据提示进行操作。
12指定库列表中的库顺序
您可以通过向 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
要使自定义设置立即生效,请在命令提示符下输入:
sl_refresh_customizations