此上下文中不允许函数定义 matlab_simulink创建自定义库

44bc8f136c72951b43a849ffc44c8785.png

创建自定义库:matlab2019a检索创建自定义库/使用注释描述模型/将库添加到 Library Browser 中

创建库

您可以创建自己的库,(可选)并将其添加到 Simulink® Library Browser 中。您可以像对待模型一样将库另存为 .SLX 文件。但是,您不能在库中进行仿真,而且每次您关闭库之后,库将被锁定而无法进行编辑。要对库进行更改,必须先解锁库。

  1. 请参阅锁定和解锁库

当您关闭库时,它将被锁定,无法进行编辑。当您下一次打开它时,如果要进行更改,则需要解锁库。点击库左下角的锁标记以解锁库。此外,如果您尝试修改锁定的库,将显示一条消息,提示您解锁。

您可以通过编程方式解锁库。在 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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值