EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
MATLAB 添加自定义的模块到simulink库浏览器 9 a- o9 f/ V+ b x# L
9 I1 c( T1 D1 S在MATLAB开发环境中,Simulink仿真平 台可以建立用户自定义的库文件,并将它们显示在Library Browser窗口下,方便用户进行模块的操作。用户可以将一些平时使用比较频繁,或者自己建立的一些封装子模块集中在一块,方便使用。要建立 Simulink库文件,首先启动Simulink工作窗口,单击菜单栏【File】下的【New】选项,选择【library】选项,打开一个新的 Library窗口界面,此时,用户可以将自己需要添加的一些模块加入到新的窗口中。然后保存为所需要定义的库文件名称。这样,就建立了一个自定义的库文 件。" @8 \" i) T' M6 M, O( l
5 ^- b( }4 P; t6 A3 `7 |
虽然按照上述的方法,将一些用户常用的模块集中在一块,可以方便使用,但是,每次使用都需要打开自定义模块的窗口,而无法象Simulink仿真模块一样显示在Library Browser窗口下。按照以下步骤可以实现该功能:
q5 D; G, H' Y4 n `•首先建立一个库文件,将自定义的封装模块加入库文件中,保存文件,在这里,命名为: Converters.mdl。
. q5 x2 x; a2 \7 e( W
7 K* n1 P) p4 @ E1 H( A•在Matlab路径下创建存放库文件的路径,也即自定义的模块库在Library Browser下的显示位置。注意在Matlab中,每一个模块库文件所在的路径必须不同。创建的Maltab路径是E:\MATLAB2010\toolbox\simulink\simulink\myLibrary(根据自己的Matlab安装路径来确定),其中myLibrary为自定义的文件夹。
6 n$ `! d* e0 y( g, S
" i2 }% c) h6 k& c•将第一步中建立的库文件拷贝到新建的Matlab路径下。在Matlab主窗口的【File】菜单栏下选择【Set Path】选项,然后单击【Add Folder】按钮,将新建的路径添加进来,然后保存(Save),退出(Close)。( `* N; T& x- A7 B# c% e u
8 P6 G! }. k. u" g: y" ]
• 要显示自定义的模块库,还需要拷贝slblocks.m函数到新建的路径下。在本演示中,模块库的名称为Converters.mdl,因此对应的slbocks.m文件为:
1 d% ]( f0 ^1 ]: x6 R0 k0 rfunction blkStruct = slblocks
' ^) N. n0 v. S; ]; b # m5 i+ }" c5 N* c6 p
%SLBLOCKS Defines a block library.3 q% q8 ^# s0 \ e2 F
6 k- _; c9 k: o/ h7 a# m& m1 ]% Library's name. The name appears in the Library Browser's
9 [5 a; I, n5 s# T- S$ V* W" J0 S& h* A% contents pane.6 V8 |7 T, {1 |0 F/ c4 {
9 `# Q g2 a2 j/ U# y9 `
blkStruct.Name = ['Own Definition' sprintf('\n') 'Library']; % 模块库的显示名称 & J; H; C0 h. S
$ x$ c0 a2 a% b" G J o) m
% The function that will be called when the user double-clicks on; l( _. {% y5 _4 S/ I: C7 f$ D
% the library's name. ;
- f: C3 j3 N: q7 ~6 ~% e6 |- ?8 e
blkStruct.OpeNFCn = 'Converters'; %自定义的模块库名称 , `# Z' V/ l6 C5 \
) t3 r0 A+ m' z" S3 T" u- c$ q* z
% The argument to be set as the Mask Display for the subsystem. You
0 y0 s6 H+ H$ T: u+ k- [/ q9 @% may comment this line out if no specific mask is desired.1 |+ B3 q$ H6 f2 o- v
% Example: blkStruct.MaskDisplay =
$ y( R; S5 l7 H2 f) N5 U' V, n'plot([0:2*pi],sin([0:2*pi]));';4 s% {1 j" h1 i6 j9 {, S$ R# H
% No display for now.- S9 H2 _% Y! |, ?' {3 f
$ P2 S! `, Y) I- ]
% blkStruct.MaskDisplay = '';' A* q. u1 d6 W3 _
% n$ v( K9 J S K8 I% End of blocks ) v) U6 Z5 S- X6 j/ G+ E% X
. F( {& _7 y. Y8 w1 y+ S按照以上的代码修改文件后,将其拷贝到自定义的路径下,这样在原来自定义的路径下就包含有两个文件,一个是自定义模块库文件,另一个则是slbocks.m文件。8 U3 i* }# x. P* G& p
& E' i3 X) P3 y( M1 f. @8 q•重新启动Matlab环境,启动Simulink仿真平台,可以发现在Simulink Library Browser窗口下增加了一个新的模块库,名称是Own Definition Library,展开后,可以看到内部的自定义模块。那么用户可以方便地进行拖放模块,就可以使用自定义的封装模块了。* O5 d0 e* Y' H7 m
|