EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
MATLAB 添加自定义的模块到simulink库浏览器 # x- L2 Y, D- U) a
$ K5 M, V. B, J# N# H7 \% D
在MATLAB开发环境中,Simulink仿真平 台可以建立用户自定义的库文件,并将它们显示在Library Browser窗口下,方便用户进行模块的操作。用户可以将一些平时使用比较频繁,或者自己建立的一些封装子模块集中在一块,方便使用。要建立 Simulink库文件,首先启动Simulink工作窗口,单击菜单栏【File】下的【New】选项,选择【library】选项,打开一个新的 Library窗口界面,此时,用户可以将自己需要添加的一些模块加入到新的窗口中。然后保存为所需要定义的库文件名称。这样,就建立了一个自定义的库文 件。
3 ?) X, R0 c2 ^4 Q M$ Q! i- N1 l; E/ Z, g% E
虽然按照上述的方法,将一些用户常用的模块集中在一块,可以方便使用,但是,每次使用都需要打开自定义模块的窗口,而无法象Simulink仿真模块一样显示在Library Browser窗口下。按照以下步骤可以实现该功能:3 h# ^- H, ^' f8 j" a& }+ [, n3 y
•首先建立一个库文件,将自定义的封装模块加入库文件中,保存文件,在这里,命名为: Converters.mdl。
t8 e8 g2 h3 |4 i( e
% U7 C0 N1 x! b& W, o•在Matlab路径下创建存放库文件的路径,也即自定义的模块库在Library Browser下的显示位置。注意在Matlab中,每一个模块库文件所在的路径必须不同。创建的Maltab路径是E:\MATLAB2010\toolbox\simulink\simulink\myLibrary(根据自己的Matlab安装路径来确定),其中myLibrary为自定义的文件夹。7 r. D0 U. P! V" ?; t
2 b0 C0 l$ w1 m% I; C0 ~•将第一步中建立的库文件拷贝到新建的Matlab路径下。在Matlab主窗口的【File】菜单栏下选择【Set Path】选项,然后单击【Add Folder】按钮,将新建的路径添加进来,然后保存(Save),退出(Close)。
* Z6 B" |1 |5 c2 V4 J$ E
" [2 h. n. T& U3 }7 `' l• 要显示自定义的模块库,还需要拷贝slblocks.m函数到新建的路径下。在本演示中,模块库的名称为Converters.mdl,因此对应的slbocks.m文件为:
P7 S$ z- D. cfunction blkStruct = slblocks
) j; x; d2 P: W. d
. n( X) n1 z* s: b0 m8 p$ R4 {%SLBLOCKS Defines a block library.
9 M% ^( |/ |& |1 \4 C3 m) Q4 w
& H9 i3 M; @2 w4 l- ^% Library's name. The name appears in the Library Browser's
9 T4 m; ?" m6 ^9 S3 A" \% contents pane.
/ L4 T: p* G# Z+ L$ M+ d- {# V! I# Q( \$ `' E
blkStruct.Name = ['Own Definition' sprintf('\n') 'Library']; % 模块库的显示名称 1 u5 @/ \) |; g! y- G2 z
6 W- i0 r% r2 x- o$ |% The function that will be called when the user double-clicks on
, Q6 E+ \" v" Q: c0 v( X8 A% the library's name. ;
# X4 `! z1 u3 T1 {5 [ y7 K8 E% x6 U0 x! y1 a! d+ C$ _9 k
blkStruct.OpeNFCn = 'Converters'; %自定义的模块库名称
" z* x. f3 V1 a8 {8 W% z+ H4 l7 F
% The argument to be set as the Mask Display for the subsystem. You7 {. b% t8 f9 T, a% F
% may comment this line out if no specific mask is desired.
7 p0 X8 d& |% [9 X% Example: blkStruct.MaskDisplay =
5 N, D* O' q, D9 e; y2 ^% K. z- J* `'plot([0:2*pi],sin([0:2*pi]));';
& x/ N# t5 C. q& i P% No display for now.
/ r, D/ c8 N* I, G" d7 ~
6 f) p) ]: m0 ~ G1 V. Y% blkStruct.MaskDisplay = '';) |9 `% m7 @ o- ? B
$ B& o" ~$ H6 d, E9 h- d0 P% End of blocks ! U4 n \( X8 {# }
5 o; [9 M, J5 k f
按照以上的代码修改文件后,将其拷贝到自定义的路径下,这样在原来自定义的路径下就包含有两个文件,一个是自定义模块库文件,另一个则是slbocks.m文件。
! N( @9 B0 L1 ~/ H4 X: Y7 [* L. |; B% [0 X H n
•重新启动Matlab环境,启动Simulink仿真平台,可以发现在Simulink Library Browser窗口下增加了一个新的模块库,名称是Own Definition Library,展开后,可以看到内部的自定义模块。那么用户可以方便地进行拖放模块,就可以使用自定义的封装模块了。# S* N! w: [/ z1 N
|