Bootstrap

MATLAB/Simulink如何创建自己的库

0. 前言

        本文以Matlab R2022a为实验平台,介绍在Simulink库浏览器中添加库的方法、库浏览器的库里添加子库方法、设置库在库浏览器中的位置的方法。

1. 在库浏览器中添加库

        (1)创建一个库文件。在Simulink的起始页面,点击空白库,点击创建库

(2)在新建的库文件中搭建需要的模型;以Clark变换为例,在库文件中创建模型:

(3)框选该模型,右键,点击创建子系统,得到一个模型:

 (4)模型搭建完成后,回到Matlab工作区,在工作区输入以下代码:

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

只有将EnableLBRepository库属性设置为on,我们创建的库才能够被库浏览器找到。

 (5)Ctrl + S 保存库文件,命名为Math.slx

(6) 在Math.slx所在文件夹下,创建脚本文件slblocks.m,在该脚本文件中添加以下内容,并保存:

function blkStruct = slblocks

    Browser.Library = 'Math';
    % 'Math' 为库文件名,不需要带扩展名

    Browser.Name = 'Math';
    % 'Math' 是出现在库浏览器中的名词

    blkStruct.Browser = Browser;

 (7)将模型Math.slxslblocks.m文件所在的文件夹路径添加到Matlab的搜索路径中:

(8)打开Simulink库浏览器,按F5刷新,此时可以看到在库浏览器中出现了Math库与对应的模型。

2. 库浏览器的库里添加子库方法

        如果说需要将Math库作为子库,添加到另一个库(My FOC Library)中,需要按照如下操作:

(1)创建My FOC Library库文件;在Simulink的起始页面,点击空白库,点击创建库

(2)Ctrl + S 保存库文件到Math的同一个文件夹下面,命名为MyFOCLibrary.slx。 

(3)模型搭建完成后,回到Matlab工作区,在工作区输入以下代码: 

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

(4)在MyFOCLibrary.slx中放入subsystem模块,在库文件中搜索subsystem模块,添加到MyFOCLibrary.slx中,并删除subsystem的输入输出,将其命名为Math。

 (5)右键单击命名为Math的Subsystem模块,选择属性,选择回调,选择OpenFcn,输入Math

 (6)在Matlab工作区输入以下代码后保存MyFOCLibrary.slx文件。

(7)将文件夹下的slblocks.m脚本文件进行修改以下内容并保存:

function blkStruct = slblocks
    Browser.Library = 'MyFOCLibrary';
    % 'MyFOCLibrary' is the name of the library

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

    blkStruct.Browser = Browser;

(8)打开Simulink库浏览器,按F5刷新,即可看到My FOC Library库中包含了Math库。

3. 设置库在库浏览器中的位置

 (1)在需要调整位置的库的文件夹下添加sl_customization.m脚本文件,进行修改并保存:

function sl_customization(cm)
	% Change the order of libraries in the Simulink Library Browser. 
	cm.LibraryBrowserCustomizer.applyOrder({'My FOC Library',-2});
    %'My FOC Library'是要设置的库的名称,-2是库所在位置的优先级,越小排序越靠前
end

        Simulink Library Browser中各个工具箱的排列顺序是内置的,由优先级和名称2个因素决定。优先级数字越小工具箱排位越靠前;对于同一优先级的工具箱按照字母顺序排列。默认情况下Simulink库优先级为-1,其他工具箱优先级为0。

(2)在Matlab工作区输入以下代码:

sl_refresh_customizations

(3)重新打开库浏览器,可以看见My FOC Library被提到了最上面。

;