EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册  
 
x
 
MATLAB 添加自定义的模块到simulink库浏览器 8 q/ j2 y2 {  r! |* I' E 
 
9 G* u. T6 x* R在MATLAB开发环境中,Simulink仿真平 台可以建立用户自定义的库文件,并将它们显示在Library Browser窗口下,方便用户进行模块的操作。用户可以将一些平时使用比较频繁,或者自己建立的一些封装子模块集中在一块,方便使用。要建立 Simulink库文件,首先启动Simulink工作窗口,单击菜单栏【File】下的【New】选项,选择【library】选项,打开一个新的 Library窗口界面,此时,用户可以将自己需要添加的一些模块加入到新的窗口中。然后保存为所需要定义的库文件名称。这样,就建立了一个自定义的库文 件。: z8 n& h3 v; L6 P+ \8 t7 U; _. O6 } 
 
. i0 L; @4 D1 l, ^! ^虽然按照上述的方法,将一些用户常用的模块集中在一块,可以方便使用,但是,每次使用都需要打开自定义模块的窗口,而无法象Simulink仿真模块一样显示在Library Browser窗口下。按照以下步骤可以实现该功能:& X$ J3 o1 {, R# y+ O% v; [) Y 
•首先建立一个库文件,将自定义的封装模块加入库文件中,保存文件,在这里,命名为: Converters.mdl。 
4 B; {. e7 ]! ]2 M0 r0 I" [& Y' s) H  d' x$ V+ | 
•在Matlab路径下创建存放库文件的路径,也即自定义的模块库在Library Browser下的显示位置。注意在Matlab中,每一个模块库文件所在的路径必须不同。创建的Maltab路径是E:\MATLAB2010\toolbox\simulink\simulink\myLibrary(根据自己的Matlab安装路径来确定),其中myLibrary为自定义的文件夹。 
  [$ p6 U! [6 |8 |/ `3 |+ e! Y3 z4 y% u6 A 
•将第一步中建立的库文件拷贝到新建的Matlab路径下。在Matlab主窗口的【File】菜单栏下选择【Set Path】选项,然后单击【Add Folder】按钮,将新建的路径添加进来,然后保存(Save),退出(Close)。, g* {; X; L4 q0 O" e3 I 
4 Y9 u+ \7 Q2 f0 C7 @ 
• 要显示自定义的模块库,还需要拷贝slblocks.m函数到新建的路径下。在本演示中,模块库的名称为Converters.mdl,因此对应的slbocks.m文件为:8 Z0 y3 S" \4 } 
function blkStruct = slblocks 
- R$ ]! n# A! h2 z- O    n8 a! i, p  u( k) T! e; n7 U: o 
%SLBLOCKS Defines a block library. 
4 u2 f# Z0 c2 P( k- R   
8 t) d+ [: _2 G8 P5 ?9 Z3 U% Library's name. The name appears in the Library Browser's; i! f% P; s- J7 @ 
% contents pane. 
# q' U+ T# g% R% F# @' k! b) D! S0 x5 h! l3 @ 
blkStruct.Name = ['Own Definition' sprintf('\n') 'Library'];   % 模块库的显示名称   
2 m& I" k7 q0 e) c6 C: F( \, E 
2 k# i6 X2 l! y% The function that will be called when the user double-clicks on 
3 H$ T8 F7 K6 F. X( f: _% the library's name. ;" G5 B; J) f$ S  r8 [ 
5 g/ Q7 |+ h1 M) C 
blkStruct.OpeNFCn = 'Converters';   %自定义的模块库名称  " P8 d2 f0 g2 b; s 
( }) O6 B; z* H# U; [ 
% The argument to be set as the Mask Display for the subsystem. You0 p$ ^1 S' I$ b- I! U9 i4 S7 ~0 m 
% may comment this line out if no specific mask is desired. 
! m4 \& C  t% Z+ L7 S. u% w( i# V% Example: blkStruct.MaskDisplay = 
# T5 D7 O. I( ~# l/ n4 ~7 q'plot([0:2*pi],sin([0:2*pi]));'; 
) Y" Q) J; I, Q- y% No display for now.% r- W3 ^0 s7 W9 G6 z7 T( l! ? 
& {5 m. f6 p) [; Q' ~; w: r0 T 
% blkStruct.MaskDisplay = ''; 
/ R8 d3 O9 o! ~- P5 F% W% Q8 ^7 E; z& Z+ A 
% End of blocks   
5 E# X9 d0 V  }( [$ G1 R+ a 
/ k4 a1 o4 A" g# i; R% {  t$ I按照以上的代码修改文件后,将其拷贝到自定义的路径下,这样在原来自定义的路径下就包含有两个文件,一个是自定义模块库文件,另一个则是slbocks.m文件。 
% V$ c- A) [2 C6 w1 F! u9 D; A. v' |$ k% v7 O5 E+ r4 ~; N 
•重新启动Matlab环境,启动Simulink仿真平台,可以发现在Simulink Library Browser窗口下增加了一个新的模块库,名称是Own Definition Library,展开后,可以看到内部的自定义模块。那么用户可以方便地进行拖放模块,就可以使用自定义的封装模块了。 
9 j+ s0 P5 q6 } |