安装了matlab2014b后,突然发现Simulink Library Browser窗口中没有内容,找了一种方法添加进去,希望对有需要的朋友有所帮助!0 Q0 f2 i0 W, P9 {5 i
1、创建库文件:打开Simulink Library Browser窗口。要建立Simulink库文件,首先启动Simulink工作窗口,单击菜单栏【File】下的【New】选项,选择【library】选项, 打开一个新的Library窗口界面,此时,用户可以将自己需要添加的一些模块加入到新的窗口中。然后保存为Own_efinition.mdl(所需要定义的库文件名称)。这样,就建立了一个 自定义的库文件。 0 i4 V- Y" \; M+ \2、在Matlab路径下创建存放库文件的路径,也即自定义的模块库在Library Browser下的显示位置。注意在Matlab中,每一个模块库文件所在的路径必须不同。 / q9 G- M. ?) @" S
创建的Maltab路径是:Drogram FilesMATLABR2011btoolboxSimulinkSimulinkMyLibrary(根据自己的Matlab安装路径来确定),其中MyLibrary为自定义的文件夹。 $ e( ?8 Z( Q) v
3、将第一步中建立的库文件拷贝到新建的Matlab路径下。在Matlab主窗口的【File】菜单栏下选择【Set Path】选项,然后单击【Add Folder】按钮,将新建的 路径添加进来,然后保存(Save),退出(Close)。 / e3 D( {$ @9 _/ Y% E. J1 n" S4、要显示自定义的模块库,还需要拷贝slblocks.m函数到新建的路径下。在Matlab的命令窗口中输入: 3 |, u' G& i4 M* B
>> which('slblocks.m', '-all') ( S* x$ m2 S9 v; c>> open('Drogram FilesMATLABR2011btoolboxSimulinkSimulinkblocksslblocks.m') * |) q. U0 ~# n% @( u0 K" D. E! j* V
这样就可以打开slbocks.m文件模板,为了将自定义的模块库显示在Library Browser窗口下,需要对该程序进行修改。首先把slbocks.m文件拷贝到自定义库文件 8 a% a. h9 |% A3 ~8 u8 F
同一目录下(即刚才创建的路径),然后打开该文件进行如下修改(红色为所作修改),并保存: + B# I1 A. ^4 Efunction blkStruct = slblocks 3 d1 t) t% N2 M& K! Q7 d4 }+ Y! S
%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: % : A& B) a9 V( Z9 A' u( I% Name Name of the Blockset in the Simulink block library % Blocksets & Toolboxes subsystem. + s3 \, P8 o% A1 T9 Y% OpenFcn MATLAB expression_r(function) to call when you % double-click on the block in the Blocksets & Toolboxes % subsystem. 0 Q5 ^8 E3 h; P8 Y/ X) ]' r
% MaskDisplay Optional field that specifies the Mask Display commands % to use for the block in the Blocksets & Toolboxes % subsystem. 2 j& N N; X, W1 H
% Browser Array of Simulink Library Browser structures, described % below. / J3 y; W" T* r3 @
6 r. r- A5 M, q- I / V! ^. K' p& N$ u: L `3 [4 q- L4 N, E$ p7 c3 }/ v% K6 m/ Y3 @& T% G A
3 ^4 _ q- g8 J! q2 X
! S! q% \; a" ^/ I* S; e
% 0 `% R6 J6 r% W/ [3 \9 Z# e0 {
% 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: % & `# E" W$ U5 f! p7 p4 p) r \ W
% Library File name of the library (mdl-file) to include in the % Library Browser. / n# ?! M: H, e0 A | R% 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. % - { p& ]) @( O3 P% Example: % % % , W A* u6 \2 V% % Define the BlocksetStruct for the Simulink block libraries % % Only simulink_extras shows up in Blocksets & Toolboxes % % 5 ^, q! n: H9 @& h( x( {" B8 L% blkStruct.Name = ['Simulink' sprintf('n') 'Extras']; % blkStruct.OpenFcn = 'simulink_extras'; / b7 A% L' `( A1 Y% blkStruct.MaskDisplay = sprintf('SimulinknExtras'); % % % 6 k" V/ E! ^2 |8 G+ A% % Both simulink and simulink_extras show up in the Library Browser. % % # z% A: h3 @. _& c" r. V% blkStruct.Browser(1).Library = 'simulink'; % blkStruct.Browser(1).Name = 'Simulink'; % blkStruct.Browser(2).Library = 'simulink_extras'; % blkStruct.Browser(2).Name = 'Simulink Extras'; % 6 W! W h- I2 v/ x2 |9 d
% Copyright 1990-2006 The MathWorks, Inc. % $Revision: 1.20.2.10 $ % 3 E2 i& p* ?& w F1 x
% Name of the subsystem which will show up in the Simulink Blocksets ( G& S V6 w8 M 9 W- b4 ?1 [+ r% [$ [, z2 D & T- F5 O, N4 n4 b: D! R0 g( K9 h$ H5 a3 }) J$ y) k, f
% and Toolboxes subsystem. % , N6 P% p7 ~, W6 G. w6 [* T- u' O* h# L
blkStruct.Name = ['Simulink' sprintf('n') 'Extras']; % 1 _1 M8 P: X) T. @5 x' d/ T. O% The function that will be called when the user double-clicks on % this icon. % & z. c7 G& U" l" {) |0 ] tblkStruct.OpenFcn = 'simulink_extras'; % - [7 Y/ V8 q4 m9 f' ^% 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. % 3 D0 p# K8 i4 j P$ v4 r4 C
blkStruct.MaskDisplay = ''; % ! K9 \7 L: Q1 x! q; ]% 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. % 3 ?" U* l3 d7 p" a# ~) u9 `
Browser(1).Library = 'Own_efinition'; %这个是库文件名 2 h6 M+ n" k3 K( M3 xBrowser(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'; / Q: D6 Z3 Y8 bBrowser(2).IsFlat = 0;% Is this library "flat" (i.e. no subsystems)? blkStruct.Browser = Browser; clear Browser; % 1 S" }: m# o* [9 n4 T, [. `% Define information about Signal Viewers % 6 v% C. E% Q' P; n( g3 m
Viewer(1).Library = 'simviewers'; Viewer(1).Name = 'Simulink'; blkStruct.Viewer = Viewer; clear Viewer; 8 n ]8 L1 l2 w( X# z : a& u( J" S. S; [0 Z, ^3 A2 z1 s1 m 2 W9 ]/ P2 m, n- U, H% 8 P. h2 x7 t. B' Y O% Define information about Signal Generators % # f( W# B9 Z* w, K; |0 S, x- hGenerator(1).Library = 'simgens'; Generator(1).Name = 'Simulink'; blkStruct.Generator = Generator; clear Generator; + P* K+ Q3 {9 U0 N& |, s5 [
% Define information for model updater 8 B' b9 ^: x9 C, i$ O7 v6 M- {
%blkStruct.ModelUpdaterMethods.fhDetermineBrokenLinks = @UpdateSimulinkBrokenLinksMappingHelper; 2 b7 d, O1 N$ c( L% [; q! v
blkStruct.ModelUpdaterMethods.fhSeparatedChecks = @UpdateSimulinkBlocksHelper; % End of slblocks 6 Z- T$ J& h, m6 s4 E5、再打开Simulink Library Browser,按F5刷新,即可看到自定义的模块库,展开后可以看到内部的自定义模块。那么用户可以方便地进行拖放模块,就可以使用 自定义的封装模块了。 ( U, U, x# F7 E- i+ X: G+ _- f
如果还要在新建的模块库下面创建子模块库,需要把Subsystem模块加入到模块库中,打开Subsystem模块,删除所有内容(ports等元件),添加自己创建的模块 7 `8 \; S* i$ L- v9 E# Q3 T6 Q
保存即可,然后重新打开Simulink Library Browser,按F5刷新,即可看到自定义的模块库和字模块库。 5 l" x3 p, f; X3 P / B3 z# G* J" D1 p$ {/ U! H ! f6 s4 p, x" W5 u