自定义模块的处理

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.自定义模块库简介

下述方法通过回调函数建立模块库

1.创建模块库:Library1

2.创建模块库:Library2

3.在Library1中创建子系统,删除里面的输入和输出,将改子系统通过回调函数指向Library2,则Library2成为了Library1的字库。若要创建多个字库,在Library1中创建多个子系统即可,每个子系统连接其引用库。

上述即是自定义模块库的常用方法。Simulink本身自有模块组织模块库的方法和其类似,但又不同,有待于进一步研究。

2.自定义模块并添加入库列表

两种创建库模块的方法:

1.创建子系统并封装为一个模块的形式。

2.创建S函数,封装为模块形式。

仅叙述方法一:利用子系统创建

通过子系统创建模块的形式比较简单。详解如下

也可以利用下述方法将常用模块集中在一起,将创建的库文件添加入Matlab的Simulink库列表。

1、创建库文件:打开Simulink Library Browser窗口。要建立Simulink库文件,首先启动Simulink

工作窗口,单击菜单栏【File】下的【New】选项,选择【library】选项,打开一个新的Library

窗口界面,此时,用户可以将自己需要添加的一些模块加入到新的窗口中。然后保存为

Own_efinition.mdl(所需要定义的库文件名称)。这样,就建立了一个自定义的库文件。

2、在Matlab路径下创建存放库文件的路径,也即自定义的模块库在Library Browser下的显示位置。注意在Matlab中,每一个模块库文件所在的路径必须不同。创建的Maltab路径是:

D:\MATLAB\R2011a\toolbox\Simulink\MyLibrary(根据自己的Matlab安装路径来确定),其中

MyLibrary为自定义的文件夹。

3.将第一步中建立的库文件拷贝到新建的Matlab路径下。在Matlab主窗口的【File】菜单栏下选择【Set Path】选项,然后单击【Add Folder】按钮,将新建的路径添加进来,然后保存(Save),退出(Close)。

4、要显示自定义的模块库,还需要拷贝slblocks.m函数到新建的路径下。在Matlab的命令窗口中输入:>> which('slblocks.m', '-all')

>> pen('D:\MATLAB\R2006a\toolbox\Simulink\blocks\slblocks.m') 这样就可以打开slbocks.m文件模板,为了将自定义的模块库显示在Library Browser窗口下,需要对该程序进行修改。先把slbocks.m文件拷贝到自定义库文件(打开该模板文件)

同一目录下(即刚才创建的路径),然后打开该文件进行如下修改(红色为所作修改),并保存:

略。

5、再打开Simulink Library Browser,按F5刷新,即可看到自定义的模块库,展开后可以看内部的自定义模块。那么用户可以方便地进行拖放模块,就可以使用自定义的封装模块了。

如果还要在新建的模块库下面创建子模块库,需要把Subsystem模块加入到模块库中,打开Subsystem模块,

删除所有内容(ports等元件),添加自己创建的模块保存即可,然后重新打开Simulink Library Browser,按F5刷新,即可看到自定义的模块库和字模块库。

3.自定义模块库(同2,详述)

在MATLAB开发环境中,Simulink仿真平台可以建立用户自定义的库文件,并将它们显示在Library Browser 窗口下,方便用户进行模块的操作。用户可以将一些平时使用比较频繁,或者自己建立的一些封装子模块集中在一块,方便使用。

要建立Simulink库文件,首先启动Simulink工作窗口,单击菜单栏【File】下的【New】选项,选择【library】选项,打开一个新的Library窗口界面,此时,用户可以将自己需要添加的一些模块加入到新的窗口中。然后保存为所需要定义的库文件名称。这样,就建立了一个自定义的库文件。

虽然按照上述的方法,将一些用户常用的模块集中在一块,可以方便使用,但是,每次使用都需要打开自定义模块的窗口,而无法象Simulink仿真模块一样显示在Library Browser窗口下。按照以下步骤可以实现该功能:

•首先建立一个库文件,将自定义的封装模块加入库文件中,保存文件,在这里,命名为:Converters.mdl。•在Matlab路径下创建存放库文件的路径,也即自定义的模块库在Library Browser下的显示位置。注意在Matlab中,每一个模块库文件所在的路径必须不同。创建的Maltab路径是

E:\MATLAB2010\toolbox\simulink\simulink\myLibrary(根据自己的Matlab安装路径来确定),其中myLibrary 为自定义的文件夹。

•将第一步中建立的库文件拷贝到新建的Matlab路径下。在Matlab主窗口的【File】菜单栏下选择【Set Path】选项,然后单击【Add Folder】按钮,将新建的路径添加进来,然后保存(Save),退出(Close)。

• 要显示自定义的模块库,还需要拷贝slblocks.m函数到新建的路径下。在本演示中,模块库的名称为Converters.mdl,因此对应的slbocks.m文件为:

function blkStruct = slblocks

%SLBLOCKS Defines a block library.

% Library's name. The name appears in the Library Browser's

% contents pane.

= ['Own Definition' sprintf('\n') 'Library']; % 模块库的显示名称

% The function that will be called when the user double-clicks on

% the library's name. ;

blkStruct.OpenFcn = 'Converters'; %自定义的模块库名称

% The argument to be set as the Mask Display for the subsystem. You

% may comment this line out if no specific mask is desired.

% Example: blkStruct.MaskDisplay =

'plot([0:2*pi],sin([0:2*pi]));';

% No display for now.

% blkStruct.MaskDisplay = '';

% End of blocks

上述方法理论可以成功,采用和blkStruct.OpenFcn的方式创建。

按照以上的代码修改文件后,将其拷贝到自定义的路径下,这样在原来自定义的路径下就包含有两个文件,一个是自定义模块库文件,另一个则是slbocks.m文件。

•重新启动Matlab环境,启动Simulink仿真平台,可以发现在Simulink Library Browser窗口下增加了一个新

相关文档
最新文档