当用户自定义了一系列模块之后,可以自定义模块库将同类自定义模块显示到Simulink Browser中,作为库模块方便地拖曳到新建模型中。
建立这样的自定义库需要3个条件:
- 建立library的mdl或slx文件,将自定义模块添加到文件中保存;
- 建立名字为slblocks的M函数,定义模块库显示到Simulink Browser中的规格;
- slblock.m与library模型库文件需要存放到同一路径下,并将路径添加到MATLAB的Set Path中。
添加路径到Set Path。
addpath('C:\Users\lenovo\Desktop')
将希望保存的模块拖到库文件中保存。
Library与普通mdl或slx的区别为:
- Library中的模块不能随意拖动,打开时默认为被锁定的状态;
- Library的工具栏上没有仿真时间和仿真模式的设定;
- Library的菜单栏比一般模型文件的菜单栏缺少几个选项:Simulation、Code和Tools。
将该库文件存为Lib_entertainment.slx,并将存储路径添加到MATLAB的搜索路径中。
编写slblock.m文件。
function blkStruct = slblocks % Information for "Blocksets and Toolboxes" subsystem blkStruct.Name = sprintf('Just for fun!'); blkStruct.OpenFcn = 'disp(''Open Lib_entertainment Toolbox.'')'; blkStruct.MaskDisplay = 'plot([0:2*pi],sin([0:2*pi]));'; % Information for Simulink Library Browser Browser(1).Library = 'Lib_entertainment'; % no extension name Browser(1).Name = 'Lib_entertainment Toolbox'; Browser(1).IsFlat = 1; % no subsystems blkStruct.Browser = Browser;
刷新Simulink Browser,即可看到该库及其中的模块。
此时模块在库文件中将不能移动,试图移动会看到以下信息。
通过菜单栏Diagram→Unlock Library解锁,即可进行模块的拖动,增加新模块,更改既有模块封装等。