Saturday, February 21, 2009

Simulink库文件的建立

Simulink仿真平台可以建立用户自定义的库文件,并将它们显示在Library Browser窗口下,方便用户进行模块的操作。用户可以将一些平时使用比较频繁,或者自己建立的一些封装子模块集中在一块,方便使用。要建立Simulink库文件,首先启动Simulink工作窗口,单击菜单栏【File】下的【New】选项,选择【library】选项,打开一个新的Library窗口界面,此时,用户可以将自己需要添加的一些模块加入到新的窗口中。然后保存为所需要定义的库文件名称。这样,就建立了一个自定义的库文件。

虽然按照上述的方法,将一些用户常用的模块集中在一块,可以方便使用,但是,每次使用都需要打开自定义模块的窗口,而无法象Simulink仿真模块一样显示在Library Browser窗口下。按照以下步骤可以实现该功能:
•首先建立一个库文件,将自定义的封装模块加入库文件中,保存文件,在这里,命名为:own_definition.lib。

•在MATLAB路径下创建存放库文件的路径,也即自定义的模块库在Library Browser下的显示位置。注意在MATLAB中,每一个模块库文件所在的路径必须不同。创建的Maltab路径是:D:\MATLAB\R2006a\toolbox\Simulink\myLibrary(根据自己的MATLAB安装路径来确定),其中myLibrary为自定义的文件夹。

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

• 要显示自定义的模块库,还需要拷贝slblocks.m函数到新建的路径下。在MATLAB的命令窗口中输入:
>> which('slblocks.m', '-all')
>> open('D:\MATLAB\R2006a\toolbox\Simulink\blocks\slblocks.m')

这样就可以打开slbocks.m文件模板,为了将自定义的模块库显示在Library Browser窗口下,需要对该程序进行修改。在本演示中,模块库的名称为own_definition.lib,因此对应的slbocks.m文件为:
function blkStruct = slblocks  

%SLBLOCKS Defines a block library.

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

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

% The function that will be called when the user double-clicks on
% the library's name. ;

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

% 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

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

•重新启动MATLAB环境,启动Simulink仿真平台,可以发现在Simulink Library Browser窗口下增加了一个新的模块库,名称是own Definition Library,展开后,可以看到内部的自定义模块。那么用户可以方便地进行拖放模块,就可以使用自定义的封装模块了。


More details could be found in my published book:
MATLAB编程基础与典型应用
北京人民邮电出版社,2008
ISBN:978-7-115-17932-6/TP

Pls contact me with Email:lhd06@mails.tsinghua.edu.cn

更多MATLAB交流资源,欢迎访问:
  • MATLAB工具箱BP神经网络应用介绍(3)

  • MATLAB工具箱BP神经网络应用介绍(2)

  • MATLAB工具箱BP神经网络应用介绍(1)

  • Solve nonlinear least-squares (nonlinear data-fitt...

  • 非线性最小二乘曲线拟和问题

  • Visual C++中创建MAT文件

  • Visual C++中使用MATLAB语言C,C++数学函数库

  • Visual C++中调用MATLAB引擎配置

  • MATLAB引擎技术介绍

  • MATLAB里关于集合运算和二进制数的运算的函数

  • 在Matlab图形中怎样输入特殊符号

  • 怎么把Matlab中数组元素写入到文本文档中

  • 在同一个M文件中,怎样实现参数的传递
  • No comments: