EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
MATLAB 添加自定义的模块到simulink库浏览器' X) d- E" x' b; y" Y% z- g" V. d7 L
3 N2 p- o9 V* ^: x% M6 L' ]在MATLAB开发环境中,Simulink仿真平 台可以建立用户自定义的库文件,并将它们显示在Library Browser窗口下,方便用户进行模块的操作。用户可以将一些平时使用比较频繁,或者自己建立的一些封装子模块集中在一块,方便使用。要建立 Simulink库文件,首先启动Simulink工作窗口,单击菜单栏【File】下的【New】选项,选择【library】选项,打开一个新的 Library窗口界面,此时,用户可以将自己需要添加的一些模块加入到新的窗口中。然后保存为所需要定义的库文件名称。这样,就建立了一个自定义的库文 件。* D! n3 c/ L$ k: n2 F# r% U8 ^- W
" C+ a$ c5 K" u( d虽然按照上述的方法,将一些用户常用的模块集中在一块,可以方便使用,但是,每次使用都需要打开自定义模块的窗口,而无法象Simulink仿真模块一样显示在Library Browser窗口下。按照以下步骤可以实现该功能:
/ h- i" U) p! H, Y$ c•首先建立一个库文件,将自定义的封装模块加入库文件中,保存文件,在这里,命名为: Converters.mdl。6 H) h- K0 j5 G* B) s
) o6 m/ R* M1 j+ s: l•在Matlab路径下创建存放库文件的路径,也即自定义的模块库在Library Browser下的显示位置。注意在Matlab中,每一个模块库文件所在的路径必须不同。创建的Maltab路径是E:\MATLAB\toolbox\simulink\simulink\myLibrary(根据自己的Matlab安装路径来确定),其中myLibrary为自定义的文件夹。. I0 K; z0 }% \6 a# J; q) F" Y
! U' e/ d* t0 L+ c4 S•将第一步中建立的库文件拷贝到新建的Matlab路径下。在Matlab主窗口的【File】菜单栏下选择【Set Path】选项,然后单击【Add Folder】按钮,将新建的路径添加进来,然后保存(Save),退出(Close)。- m2 m+ q$ s# Q/ n# l. r% ^
) B: ^6 d" ^) s
• 要显示自定义的模块库,还需要拷贝slblocks.m函数到新建的路径下。在本演示中,模块库的名称为Converters.mdl,因此对应的slbocks.m文件为:
1 w% C: |0 jgfunction blkStruct = slblocks
9 p+ {. m4 I0 r0 T9 r9 j& f
" k7 W- ~1 _: W8 g* Z: n%SLBLOCKS Defines a block library.
4 {/ M6 k5 {- l0 k/ [( K) Y# i
5 WbF/ G' U4 J% Library's name. The name appears in the Library Browser's
7 U, u6 ?, ?/ s% contents pane.
, M6 e6 X0 O: t& c1 Z% {' [
+ t( B: G1 A5 o# `- y* ablkStruct.Name = ['Own Definition' sprintf('\n') 'Library']; % 模块库的显示名称
9 y2 h- R# g- u& |E' y+ C
; m% W2 g$ ^+ G1 \( J( V) Y% The function that will be called when the user double-clicks on
9 Y" Y9 ]9 H- r# _! k1 w8 P. U% the library's name. ;
+ B: ^8 _' k2 G( `7 ~7 zEd, `4 q. t3 g% J" N5 g5 [: s( {( y
blkStruct.OpeNFCn = 'Converters'; %自定义的模块库名称
0 M% w" J+ A. W% s( v( W2 d8 J* t, I/ j" T0 S
% The argument to be set as the Mask Display for the subsystem. You9 Z4 O4 v8 n4 y# [6 c* m
% may comment this line out if no specific mask is desired.8 N8 Y! ]( VM' k* t3 X4 }' \
% Example: blkStruct.MaskDisplay =
! Z/ }9 p5 W. s" b+ o+ }. m/ A'plot([0:2*pi],sin([0:2*pi]));';
1 J0 A7 D% u. C. D% No display for now.
2 _9 A3 n! V' z6 `4 }$ ~7 o$ g: Y2 U4 r7 R3 f$ J2 v2 c
% blkStruct.MaskDisplay = '';5 K6 l) z0 |* s& i, P7 q$ qHw
1 |- y1 O; M1 i8 r: f( K% End of blocks# m% |! l& C8 G
* w% t' T7 y2 [
按照以上的代码修改文件后,将其拷贝到自定义的路径下,这样在原来自定义的路径下就包含有两个文件,一个是自定义模块库文件,另一个则是slbocks.m文件。
. M- A+ i. l5 ?% D+ E5 r* \( x. A* {8 e- Q. o2 e
•重新启动Matlab环境,启动Simulink仿真平台,可以发现在Simulink Library Browser窗口下增加了一个新的模块库,名称是Own Definition Library,展开后,可以看到内部的自定义模块。那么用户可以方便地进行拖放模块,就可以使用自定义的封装模块了。
2 z- t* j& y2 m