EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
MATLAB 添加自定义的模块到simulink库浏览器
; M& N7 z) w+ N& }4 l& G
/ n. ]& u H+ a6 |1 F& x A在MATLAB开发环境中,Simulink仿真平 台可以建立用户自定义的库文件,并将它们显示在Library Browser窗口下,方便用户进行模块的操作。用户可以将一些平时使用比较频繁,或者自己建立的一些封装子模块集中在一块,方便使用。要建立 Simulink库文件,首先启动Simulink工作窗口,单击菜单栏【File】下的【New】选项,选择【library】选项,打开一个新的 Library窗口界面,此时,用户可以将自己需要添加的一些模块加入到新的窗口中。然后保存为所需要定义的库文件名称。这样,就建立了一个自定义的库文 件。
- _# R1 n9 W6 n/ M& q3 F
' `3 J( \2 n5 N7 Q) S虽然按照上述的方法,将一些用户常用的模块集中在一块,可以方便使用,但是,每次使用都需要打开自定义模块的窗口,而无法象Simulink仿真模块一样显示在Library Browser窗口下。按照以下步骤可以实现该功能:
" I* S O# X6 _/ \3 f9 v( o9 T6 o•首先建立一个库文件,将自定义的封装模块加入库文件中,保存文件,在这里,命名为: Converters.mdl。3 O/ p0 Z$ h* D; F2 A! ?
5 v, u0 ~9 c! k4 `
•在Matlab路径下创建存放库文件的路径,也即自定义的模块库在Library Browser下的显示位置。注意在Matlab中,每一个模块库文件所在的路径必须不同。创建的Maltab路径是E:\MATLAB2010\toolbox\simulink\simulink\myLibrary(根据自己的Matlab安装路径来确定),其中myLibrary为自定义的文件夹。
3 [) j, W5 w3 |+ p8 M
' q! _. X: N3 @) R* e•将第一步中建立的库文件拷贝到新建的Matlab路径下。在Matlab主窗口的【File】菜单栏下选择【Set Path】选项,然后单击【Add Folder】按钮,将新建的路径添加进来,然后保存(Save),退出(Close)。
7 ^% y) J& I; g# _2 D$ J# L% W2 ~0 z
: b+ A7 F% f, G" k4 z$ N" ~" m8 [! I• 要显示自定义的模块库,还需要拷贝slblocks.m函数到新建的路径下。在本演示中,模块库的名称为Converters.mdl,因此对应的slbocks.m文件为:
9 K& t' W; j0 ?" E1 c& f3 d; Rfunction blkStruct = slblocks9 t( b. s; h' j7 c" r S4 s( D) H
3 ]0 W# P0 H$ W% j- I, V9 ?%SLBLOCKS Defines a block library.: K7 {) c; z2 Z {
$ C9 p" J/ o- b% X2 v5 y
% Library's name. The name appears in the Library Browser's2 ~* b6 Z/ {" ~, j& h5 Q$ B( o3 F
% contents pane.+ r- b6 q4 y, |& i6 S h" K% U8 C
9 D& O/ z! h$ q/ K J4 ublkStruct.Name = ['Own Definition' sprintf('\n') 'Library']; % 模块库的显示名称 * ~4 ]2 y- H2 u. t
. P% W: a% _5 T1 q% E
% The function that will be called when the user double-clicks on# s/ @( [3 y, s3 U7 p
% the library's name. ;& @+ O, A* L1 b8 S
1 R& W( K( x7 D; rblkStruct.OpeNFCn = 'Converters'; %自定义的模块库名称 ! Q9 e4 C: t& C3 V4 \
& i' Y" c5 e9 M% M
% The argument to be set as the Mask Display for the subsystem. You5 S$ p* @: v7 w" j7 m
% may comment this line out if no specific mask is desired.+ c U! e, b# O2 n" I# p f2 _
% Example: blkStruct.MaskDisplay =( A2 S1 s: B3 f! b9 }8 k4 K
'plot([0:2*pi],sin([0:2*pi]));';
0 n" g3 {$ C/ {8 M' E9 O0 L% No display for now.) I/ r/ ` P3 T% {" g* q; l) f
) K) G6 R2 I. K4 s4 J% blkStruct.MaskDisplay = '';
' M+ N! f1 a( I) o; `
0 o! H" F; ?- D- S% End of blocks 8 ?" `6 q" [; u0 n- U, Q
# \9 i1 [+ g6 K+ p8 e6 b9 X按照以上的代码修改文件后,将其拷贝到自定义的路径下,这样在原来自定义的路径下就包含有两个文件,一个是自定义模块库文件,另一个则是slbocks.m文件。
& c9 x0 `& W7 }& X. K4 B" [: R( @$ P X7 p/ \" i" Q9 n
•重新启动Matlab环境,启动Simulink仿真平台,可以发现在Simulink Library Browser窗口下增加了一个新的模块库,名称是Own Definition Library,展开后,可以看到内部的自定义模块。那么用户可以方便地进行拖放模块,就可以使用自定义的封装模块了。! l$ Q( M0 _4 a& ^: m8 _5 v
|