自定义模块的处理

上传人:kms****20 文档编号:37682733 上传时间:2018-04-20 格式:DOCX 页数:31 大小:518.87KB
返回 下载 相关 举报
自定义模块的处理_第1页
第1页 / 共31页
自定义模块的处理_第2页
第2页 / 共31页
自定义模块的处理_第3页
第3页 / 共31页
自定义模块的处理_第4页
第4页 / 共31页
自定义模块的处理_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《自定义模块的处理》由会员分享,可在线阅读,更多相关《自定义模块的处理(31页珍藏版)》请在金锄头文库上搜索。

1、1.自定义模块库简介自定义模块库简介下述方法通过回调函数建立模块库 1 创建模块库:Library1 2 创建模块库:Library2 3 在 Library1 中创建子系统,删除里面的输入和输出,将改子系统通过回调函数指向 Library2,则 Library2 成为了 Library1 的字库。若要创建多个字库,在 Library1 中创建多个子系统即可,每个子系统 连接其引用库。 上述即是自定义模块库的常用方法。Simulink 本身自有模块组织模块库的方法和其类似,但又不同, 有待于进一步研究。2.自定义模块并添加入库列表自定义模块并添加入库列表两种创建库模块的方法: 1.创建子系统并

2、封装为一个模块的形式。 2.创建 S 函数,封装为模块形式。 仅叙述方法一:利用子系统创建 通过子系统创建模块的形式比较简单。详解如下 也可以利用下述方法将常用模块集中在一起,将创建的库文件添加入 Matlab 的 Simulink 库列表。 1、创建库文件:打开 Simulink Library Browser 窗口。要建立 Simulink 库文件,首先启动 Simulink 工作窗口,单击菜单栏【File】下的【New】选项,选择【library】选项, 打开一个新的 Library 窗口界面,此时,用户可以将自己需要添加的一些模块加入到新的窗口中。然后保存为 Own_efinition

3、.mdl(所需要定义的库文件名称)。这样,就建立了一个 自定义的库文件。 2、在 Matlab 路径下创建存放库文件的路径,也即自定义的模块库在 Library Browser 下的显示位置。注意 在 Matlab 中,每一个模块库文件所在的路径必须不同。创建的 Maltab 路径是: D:MATLABR2011atoolboxSimulinkMyLibrary(根据自己的 Matlab 安装路径来确定),其中 MyLibrary 为自定义的文件夹。 3. 将第一步中建立的库文件拷贝到新建的 Matlab 路径下。在 Matlab 主窗口的【File】菜单栏下选择【Set Path】选项,然后

4、单击【Add Folder】按钮,将新建的 路径添加进来,然后保存(Save),退出(Close)。 4、要显示自定义的模块库,还需要拷贝 slblocks.m 函数到新建的路径下。在 Matlab 的命令窗口中输入: which(slblocks.m, -all) pen(D:MATLABR2006atoolboxSimulinkblocksslblocks.m) 这样就可以打开 slbocks.m 文件模板,为了 将自定义的模块库显示在 Library Browser 窗口下,需要对该程序进行修改。先把 slbocks.m 文件拷贝到自定 义库文件(打开该模板文件) 同一目录下(即刚才创建

5、的路径) ,然后打开该文件进行如下修改(红色为所作修改),并保存: 略。5、再打开 Simulink Library Browser,按 F5 刷新,即可看到自定义的模块库,展开后可以看内部的自定义模 块。那么用户可以方便地进行拖放模块,就可以使用 自定义的封装模块了。 如果还要在新建的模块库下面创建子模块库,需要把 Subsystem 模块加入到模块库中,打开 Subsystem 模块,删除所有内容(ports 等元件) ,添加自己创建的模块 保存即可,然后重新打开 Simulink Library Browser,按 F5 刷新,即可看到自定义的模块库和字模块库。3.自定义模块库(同自定义

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

7、照上述的方法,将一些用户常用的模块集中在一块,可以方便使用,但是,每次使用都需要打开自 定义模块的窗口,而无法象 Simulink 仿真模块一样显示在 Library Browser 窗口下。按照以下步骤可以实现 该功能: 首先建立一个库文件,将自定义的封装模块加入库文件中,保存文件,在这里,命名为: Converters.mdl。 在 Matlab 路径下创建存放库文件的路径,也即自定义的模块库在 Library Browser 下的显示位置。注意在 Matlab 中,每一个模块库文件所在的路径必须不同。创建的 Maltab 路径是 E:MATLAB2010toolboxsimulinksi

8、mulinkmyLibrary(根据自己的 Matlab 安装路径来确定),其中 myLibrary 为自定义的文件夹。 将第一步中建立的库文件拷贝到新建的 Matlab 路径下。在 Matlab 主窗口的【File】菜单栏下选择【Set Path】选项,然后单击【Add Folder】按钮,将新建的路径添加进来,然后保存(Save),退出(Close)。 要显示自定义的模块库,还需要拷贝 slblocks.m 函数到新建的路径下。在本演示中,模块库的名称为 Converters.mdl,因此对应的 slbocks.m 文件为: function blkStruct = slblocks %S

9、LBLOCKS Defines a block library. % Librarys name. The name appears in the Library Browsers % contents pane. blkStruct.Name = Own Definition sprintf(n) Library; % 模块库的显示名称 % The function that will be called when the user double-clicks on % the librarys name. ; blkStruct.OpenFcn = Converters; %自定义的模块库

10、名称 % 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 上述方法理论可以成功,采用 blk.Struct.Name 和 blkStruct.O

11、penFcn 的方式创建。 按照以上的代码修改文件后,将其拷贝到自定义的路径下,这样在原来自定义的路径下就包含有两个文件, 一个是自定义模块库文件,另一个则是 slbocks.m 文件。重新启动 Matlab 环境,启动 Simulink 仿真平台,可以发现在 Simulink Library Browser 窗口下增加了一个 新的模块库,名称是 Own Definition Library,展开后,可以看到内部的自定义模块。4.自定义模块库(同自定义模块库(同 2,详述),详述)1.在 Maltab 安装路径某个地方创建一个文件夹。比如说在 E:MATLABR2009atoolbox 路径下

12、面创建了一 个文件夹 MyLib, 也就是 E:MATLABR2009atoolboxMyLib 2.把你的库文件( .mdl )文件 放到这个文件夹下面 3.在这个文件夹下面创建一个 slblocks.m 文件,基本内容如下 function blkStruct = slblocks% Specify that the product should appear in the library browser% and be cached in its repositoryBrowser.Library = MyLibTest; % 你的库文件的名字 MyLibTest.mdlBrowser.

13、Name= My Library; % 在 Simulink 库中显示的名字 blkStruct.Browser = Browser;4.把这个文件夹及它的子文件夹添加的 Matlab 路径当中去理论可以成功,通过 Browser.Name 和 Browser.Library 创建。5.这个时候,当你打开 Simulink 的时候,就会发现自己的库文件已经添加进去了5.自定义模块库(同自定义模块库(同 2,详述),详述)常常需要将自定义的模块算法加入自定义的 Library 里,然后在 Simulink Library Browser 里显示,这需求很 多人提过,网上也有一些资料,但是我都试过

14、,不灵,然后本人通过 help 和探索,总结出了解决方案: 1、首先新建一个 Library,注意后缀名一定要是 mdl,很多资料里都讹传将后缀名改成 lib,这是错的, 不知道大家伙为什么还要将错的东西传来传去。姑且将这个 Library 命名为 jet.mdl。2、然后在 jet.mdl 里加入一个自定义的模块算法(以 subsystem 封装,两边露出 input 和 output) ,自定 义这个 subsystem 为 jet_func。3、从您的 Matlab 目录下找到 slblocks.m 这个文件,将其修改,修改内容如下(首先将它模板上原有的 内容全删了): function

15、 blkStruct = slblocksblkStruct.Name=jetchang sprintf(n) Library;/这是命名这个 Library 在 Browser 上显示的名字,叫 jetchang LibraryblkStruct.OpenFcn=jet;/这里将 jet.mdl 加入到 jetchang 的目录下 4、之后新建一个文件夹叫 jetchang,将 jet.mdl 和 slblocks.m 这俩文件放在这个文件夹里,最后将该文 件夹的路径放到 matlab 的 set path 里。5、关闭 matlab,重新打开,之后打开 simulink library b

16、rowser,您的 jetchang Library 就赫然在目了。完毕。至于想添加其他功能或选项,参见 help 上述方法理论可以成功,通过 blkStruct.Name 和 BlkStruct.OpenFfcn 创建。6.自定义模块库(同自定义模块库(同 1,详述),详述)6.1.模块库的建立与修改模块库的建立与修改模块库的建立与模型 model 的建立类似,都是在 File 菜单栏中,只不过要选择 Library 而非 Model,如下图:然后再该 Library 中添加了两个模块,并存为名为 Interpolation.mdl 文件。如下图:注意:注意:当模块库被保存后,模块库就自动被锁定,模块库中的模块都无法修改,所以修改时需要 Edit-Unlock Library 来解锁方能修改。6.2.模块库中建子模块库模块库中建子模块库此处的目的是在 HiNOC 模块库

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号