安装了matlab2014b后,突然发现Simulink Library Browser窗口中没有内容,找了一种方法添加进去,希望对有需要的朋友有所帮助! 4 c$ I5 O' L, B5 |1、创建库文件:打开Simulink Library Browser窗口。要建立Simulink库文件,首先启动Simulink工作窗口,单击菜单栏【File】下的【New】选项,选择【library】选项, 打开一个新的Library窗口界面,此时,用户可以将自己需要添加的一些模块加入到新的窗口中。然后保存为Own_efinition.mdl(所需要定义的库文件名称)。这样,就建立了一个 自定义的库文件。 6 j) z: `- E5 Z0 L" I) W& B; Z, Z
2、在Matlab路径下创建存放库文件的路径,也即自定义的模块库在Library Browser下的显示位置。注意在Matlab中,每一个模块库文件所在的路径必须不同。 & t5 \, h( u0 `创建的Maltab路径是:Drogram FilesMATLABR2011btoolboxSimulinkSimulinkMyLibrary(根据自己的Matlab安装路径来确定),其中MyLibrary为自定义的文件夹。 4 |. f U( ~8 \, q! @
3、将第一步中建立的库文件拷贝到新建的Matlab路径下。在Matlab主窗口的【File】菜单栏下选择【Set Path】选项,然后单击【Add Folder】按钮,将新建的 路径添加进来,然后保存(Save),退出(Close)。 & S& _+ Q! h; l/ j0 f' I4 U# i" _4、要显示自定义的模块库,还需要拷贝slblocks.m函数到新建的路径下。在Matlab的命令窗口中输入: ! Q4 d% h, b- {6 f7 G0 n& X* @
>> which('slblocks.m', '-all') F& X# O" W8 z7 x>> open('Drogram FilesMATLABR2011btoolboxSimulinkSimulinkblocksslblocks.m') # r! C8 G1 s& d4 D4 Q 8 {5 [" P: O& X1 `/ l这样就可以打开slbocks.m文件模板,为了将自定义的模块库显示在Library Browser窗口下,需要对该程序进行修改。首先把slbocks.m文件拷贝到自定义库文件 1 c1 u0 _$ m: C* B: J
同一目录下(即刚才创建的路径),然后打开该文件进行如下修改(红色为所作修改),并保存: $ n e& T) H! a; ~3 H9 ^2 v; @3 Qfunction blkStruct = slblocks * K; e3 g3 @5 L6 _! Z5 D9 g. ~+ C%SLBLOCKS Defines the block library for a specific Toolbox or Blockset. % SLBLOCKS returns information about a Blockset to Simulink. The % information returned is in the form of a BlocksetStruct with the % following fields: % ; ? S4 \( x% s6 }& j b; H% Name Name of the Blockset in the Simulink block library % Blocksets & Toolboxes subsystem. . J3 n& R3 D9 [# I9 i+ f5 c8 [& U% OpenFcn MATLAB expression_r(function) to call when you % double-click on the block in the Blocksets & Toolboxes % subsystem. 9 L, [/ t6 W8 P) W+ V! h
% MaskDisplay Optional field that specifies the Mask Display commands % to use for the block in the Blocksets & Toolboxes % subsystem. * E# F* V! P) U( C5 N7 B$ X' M4 Z% Browser Array of Simulink Library Browser structures, described % below. * y, w: ^/ F% A) o" ?/ r
8 F# R$ @" I+ [2 T7 S/ C+ L0 W* h
' X- j& ?$ N; x a5 {# g3 s
8 _$ V* w' g7 D+ z C4 h
- _- H1 E% K; ` H2 T* m8 v , V/ x4 K! ]7 g' Y3 x- A, A& I- k# J2 F: R* [2 Y( j1 c
0 X* U7 d9 z0 |3 l
; F7 P/ Z7 h7 A/ X* I* ~ s
% 9 s U M1 |/ l' k- V% The Simulink Library Browser needs to know which libraries in your % Blockset it should show, and what names to give them. To provide % this information, define an array of Browser data structures with one % array element for each library to display in the Simulink Library % Browser. Each array element has two fields: % , z2 ]; E& u) J% j( _% A7 O* D+ Z% Library File name of the library (mdl-file) to include in the % Library Browser. 6 i( B/ v/ v& Y! M u- z
% Name Name displayed for the library in the Library Browser % window. Note that the Name is not required to be the % same as the mdl-file name. % ; J& i+ Z5 {! ?+ F1 w& C% Example: % % % " Z0 l2 G# X6 _
% % Define the BlocksetStruct for the Simulink block libraries % % Only simulink_extras shows up in Blocksets & Toolboxes % % , E* K: L; P8 Q0 Y8 X
% blkStruct.Name = ['Simulink' sprintf('n') 'Extras']; % blkStruct.OpenFcn = 'simulink_extras'; 5 ]# ~7 T5 z0 s- v% blkStruct.MaskDisplay = sprintf('SimulinknExtras'); % % % - i e& s" s: t% R3 S1 z& V
% % Both simulink and simulink_extras show up in the Library Browser. % % 9 _4 k5 m y! c7 ^4 M! w% U6 \% blkStruct.Browser(1).Library = 'simulink'; % blkStruct.Browser(1).Name = 'Simulink'; % blkStruct.Browser(2).Library = 'simulink_extras'; % blkStruct.Browser(2).Name = 'Simulink Extras'; % + g1 ^' d4 r# e. r3 A/ K% n8 w% Copyright 1990-2006 The MathWorks, Inc. % $Revision: 1.20.2.10 $ % $ d% E! o& i, `$ h
% Name of the subsystem which will show up in the Simulink Blocksets / b7 V9 O9 r$ X- X0 Y
/ ]& n8 K2 s& H% ?9 O8 H- S( }! R! B- a! l8 U( g. h, Q
! z$ P. \3 y2 [7 J: a
% and Toolboxes subsystem. % 4 u( q, `# X* W9 R5 ~( j6 NblkStruct.Name = ['Simulink' sprintf('n') 'Extras']; % 5 I* [! s4 W6 p+ v. m5 U
% The function that will be called when the user double-clicks on % this icon. % $ A! U, V- R9 e) ~blkStruct.OpenFcn = 'simulink_extras'; % ) D d, [7 L' T' B5 t% The argument to be set as the Mask Display for the subsystem. You % may comment this line out if no specific mask is desired. % Example: blkStruct.MaskDisplay = 'plot([0:2*pi],sin([0:2*pi]));'; % No display for Simulink Extras. % + z% f, u2 W/ |3 g0 b# ablkStruct.MaskDisplay = ''; % 8 \# G. M2 W8 M3 W& _
% Define the Browser structure array, the first element contains the % information for the Simulink block library and the second for the % Simulink Extras block library. % + V# {/ e! H, X& M
Browser(1).Library = 'Own_efinition'; %这个是库文件名 ! e t8 L! |$ K$ ^# I% ?7 C0 F0 M
Browser(1).Name = 'MyLibrary'; %这个是需要在库浏览器中显示的名称 Browser(1).IsFlat = 0;% Is this library "flat" (i.e. no subsystems)? Browser(2).Library = 'simulink_extras'; Browser(2).Name = 'Simulink Extras'; 5 s2 i9 B3 c8 S/ G
Browser(2).IsFlat = 0;% Is this library "flat" (i.e. no subsystems)? blkStruct.Browser = Browser; clear Browser; % $ k% d6 f( [; K' p. }; z u% Define information about Signal Viewers % 2 X( S! C' D+ Z! r9 e- c+ ?; Z2 L; b
Viewer(1).Library = 'simviewers'; Viewer(1).Name = 'Simulink'; blkStruct.Viewer = Viewer; clear Viewer; : ~$ ]% ?, e+ Q
! a, _9 `' |4 E) b- z6 C 1 D" k6 q% f) H& B
% ' Y7 x( j `8 d8 ?
% Define information about Signal Generators % ) e4 @! C" j4 Z. F4 gGenerator(1).Library = 'simgens'; Generator(1).Name = 'Simulink'; blkStruct.Generator = Generator; clear Generator; ' X! n3 C8 m8 }3 u8 T
% Define information for model updater # @# S' g9 z8 ^" O
%blkStruct.ModelUpdaterMethods.fhDetermineBrokenLinks = @UpdateSimulinkBrokenLinksMappingHelper; ( Q8 k) w* c Y/ `% M) a
blkStruct.ModelUpdaterMethods.fhSeparatedChecks = @UpdateSimulinkBlocksHelper; % End of slblocks , v6 |. H0 l* I) p, Q5、再打开Simulink Library Browser,按F5刷新,即可看到自定义的模块库,展开后可以看到内部的自定义模块。那么用户可以方便地进行拖放模块,就可以使用 自定义的封装模块了。 # I) M! @* N' g2 u$ w
如果还要在新建的模块库下面创建子模块库,需要把Subsystem模块加入到模块库中,打开Subsystem模块,删除所有内容(ports等元件),添加自己创建的模块 0 J4 ^: X3 z% H) A4 D保存即可,然后重新打开Simulink Library Browser,按F5刷新,即可看到自定义的模块库和字模块库。 " ^5 Q( M4 O- c; a7 D; `" T8 n |1 r