安装了matlab2014b后,突然发现Simulink Library Browser窗口中没有内容,找了一种方法添加进去,希望对有需要的朋友有所帮助!3 ?) ~6 S2 J% i* ^9 X' y
1、创建库文件:打开Simulink Library Browser窗口。要建立Simulink库文件,首先启动Simulink工作窗口,单击菜单栏【File】下的【New】选项,选择【library】选项, 打开一个新的Library窗口界面,此时,用户可以将自己需要添加的一些模块加入到新的窗口中。然后保存为Own_efinition.mdl(所需要定义的库文件名称)。这样,就建立了一个 自定义的库文件。 : _/ z+ e8 @) h
2、在Matlab路径下创建存放库文件的路径,也即自定义的模块库在Library Browser下的显示位置。注意在Matlab中,每一个模块库文件所在的路径必须不同。 1 ?0 ]' F) a: q* `* {, C5 `创建的Maltab路径是:Drogram FilesMATLABR2011btoolboxSimulinkSimulinkMyLibrary(根据自己的Matlab安装路径来确定),其中MyLibrary为自定义的文件夹。 / ?) y+ T; e, p5 e
3、将第一步中建立的库文件拷贝到新建的Matlab路径下。在Matlab主窗口的【File】菜单栏下选择【Set Path】选项,然后单击【Add Folder】按钮,将新建的 路径添加进来,然后保存(Save),退出(Close)。 1 S' T0 O' b) r: z; e' j
4、要显示自定义的模块库,还需要拷贝slblocks.m函数到新建的路径下。在Matlab的命令窗口中输入: ! A5 J( q. a6 E1 P3 K7 B
>> which('slblocks.m', '-all') 0 Z3 L1 M( V6 f4 p, Q! K
>> open('Drogram FilesMATLABR2011btoolboxSimulinkSimulinkblocksslblocks.m') * g+ l1 O' x0 @8 W6 i( ^* V
4 @6 P K& F* y& J- v$ ?
这样就可以打开slbocks.m文件模板,为了将自定义的模块库显示在Library Browser窗口下,需要对该程序进行修改。首先把slbocks.m文件拷贝到自定义库文件 ' u7 p) p% C5 D8 E2 z
同一目录下(即刚才创建的路径),然后打开该文件进行如下修改(红色为所作修改),并保存: . L, j) H9 p: vfunction blkStruct = slblocks 8 v4 `, s L) }' c; q @
%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: % 3 D i, ^/ i, t% Name Name of the Blockset in the Simulink block library % Blocksets & Toolboxes subsystem. m% |9 M2 d; m2 k5 q: D% OpenFcn MATLAB expression_r(function) to call when you % double-click on the block in the Blocksets & Toolboxes % subsystem. 7 P* |' S* w, ^5 ?# r* ]
% MaskDisplay Optional field that specifies the Mask Display commands % to use for the block in the Blocksets & Toolboxes % subsystem. 4 B* ~4 R* j/ q0 W5 g% Browser Array of Simulink Library Browser structures, described % below. 4 J. M( u5 l+ B8 N' N9 X2 j; U: p& T" w C
! j* u1 i ?7 C* y% i
' ~ v' u5 R7 S+ Q6 L ; d) D. ]4 `" Z \) e* Z. S- w* h& M2 S
) X4 l- G2 x% _' S# i+ B* X% I 6 u1 i1 [' K4 P + A3 E9 h3 g2 K6 c* C2 U% 1 B9 m6 w4 n5 \8 i9 v0 y$ C
% 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: % 6 A: b; Y. q* b) h9 Q* i# Q
% Library File name of the library (mdl-file) to include in the % Library Browser. * ~. N3 H' W# N# V7 {% 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. % 2 y3 o$ m9 q5 r/ w. v R- w
% Example: % % % 8 b1 ]8 @& w" P* x
% % Define the BlocksetStruct for the Simulink block libraries % % Only simulink_extras shows up in Blocksets & Toolboxes % % % W) M! l! [" f8 I( e. r% blkStruct.Name = ['Simulink' sprintf('n') 'Extras']; % blkStruct.OpenFcn = 'simulink_extras'; {/ m: V" O* [, X# V9 W5 W% blkStruct.MaskDisplay = sprintf('SimulinknExtras'); % % % 6 M" P' X }7 ?2 O* y x: b% % Both simulink and simulink_extras show up in the Library Browser. % % ! N/ e: w* o( [% blkStruct.Browser(1).Library = 'simulink'; % blkStruct.Browser(1).Name = 'Simulink'; % blkStruct.Browser(2).Library = 'simulink_extras'; % blkStruct.Browser(2).Name = 'Simulink Extras'; % / T; w( X I5 K- N
% Copyright 1990-2006 The MathWorks, Inc. % $Revision: 1.20.2.10 $ % " t8 E F5 d$ A
% Name of the subsystem which will show up in the Simulink Blocksets 0 S( U9 [, R; l2 ^, L* U/ K* G+ a$ L6 Y) C. R: S8 q5 z6 x
* W, _4 ?8 R5 ~6 Z2 }
6 Z/ }7 s1 w# s' V8 x+ G9 ?
% and Toolboxes subsystem. % : o. T9 K e% e- `! L/ XblkStruct.Name = ['Simulink' sprintf('n') 'Extras']; % 9 D# }7 v& f& ]+ P9 V
% The function that will be called when the user double-clicks on % this icon. % " ]$ K* y) x0 r7 R1 _1 R
blkStruct.OpenFcn = 'simulink_extras'; % / M6 g0 L d4 n8 C0 }$ b3 U$ c
% 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. % ) W# n0 @/ d/ A7 A4 N4 a. QblkStruct.MaskDisplay = ''; % * q2 }8 V0 s3 M2 u( n& Z% 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. % # a8 H7 L( e4 N+ \- N5 j$ ^Browser(1).Library = 'Own_efinition'; %这个是库文件名 ; ]4 t' a( B- H# q5 D
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'; * p5 `8 e; W- w
Browser(2).IsFlat = 0;% Is this library "flat" (i.e. no subsystems)? blkStruct.Browser = Browser; clear Browser; % 2 ?; n- A7 R0 ~! Y) q% Define information about Signal Viewers % 2 o7 |( u6 U9 t2 [: AViewer(1).Library = 'simviewers'; Viewer(1).Name = 'Simulink'; blkStruct.Viewer = Viewer; clear Viewer; 1 ^7 \( q5 V; K# ~" ]( B * `+ P }: p$ U# c$ ^ 1 {$ Z4 R3 @' {6 |6 B' C8 l% 9 h- |1 s- L- B) `2 f" T. e% Define information about Signal Generators % . y% t" ^# N. _3 n+ \2 W: Y& A
Generator(1).Library = 'simgens'; Generator(1).Name = 'Simulink'; blkStruct.Generator = Generator; clear Generator; N. }2 o- a) c, ]
% Define information for model updater % c+ P! q3 o; `8 m8 ]%blkStruct.ModelUpdaterMethods.fhDetermineBrokenLinks = @UpdateSimulinkBrokenLinksMappingHelper; 9 q3 C G% @5 r
blkStruct.ModelUpdaterMethods.fhSeparatedChecks = @UpdateSimulinkBlocksHelper; % End of slblocks * }2 L1 ]9 ~7 G0 @5、再打开Simulink Library Browser,按F5刷新,即可看到自定义的模块库,展开后可以看到内部的自定义模块。那么用户可以方便地进行拖放模块,就可以使用 自定义的封装模块了。 5 V# ?& e* X( U K) `* u" L5 p如果还要在新建的模块库下面创建子模块库,需要把Subsystem模块加入到模块库中,打开Subsystem模块,删除所有内容(ports等元件),添加自己创建的模块 5 }! W' d: E, `8 q& C9 B) t% W
保存即可,然后重新打开Simulink Library Browser,按F5刷新,即可看到自定义的模块库和字模块库。6 D5 `; y5 `6 T# q3 Z* g$ n' n
( b$ D) R2 m; g9 V% r2 i. _