创建matlab子模块(6页).doc
《创建matlab子模块(6页).doc》由会员分享,可在线阅读,更多相关《创建matlab子模块(6页).doc(6页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、-创建matlab子模块-第 6 页把你想要封装的部分用鼠标框选,选中后点右键里面有create subsystem,就可以建立子模块了另一种方法simulink如何构建及封装子系统今天在用DSP-Builder做FIR滤波器的时候遇到一些难题。下图所示的是在simulink中设计的一个个位阶数FIR模型 这里可以看到一个问题,如果设计的滤波器的阶数比较大的时候,就不好全部方便的显示所有部分。其实只要把相关部分打包一下就可以了。以下是网上搜到的一篇很有指导意义的文章。 绝大多数的程序设计语言都有使用子程序的功能。在FORTRAN里有subroutine子程序和function子程序;C语言中的
2、子程序被称为“函数”;Matlab的子程序称为函数式M文件。Sinlulilnk也提供了类似的功能子程序。 随着模型越来越大、越来越复杂,人们很难轻易的读懂它们。在这种情况下,子系统通过把大的模型分割成几个小的模型系统以使得整个系统模型更简捷、可读性更高,而且这种操作并不复杂。举一个简单的例子,考虑在例1中提到的汽车模型,其Simulink模型图见图。 图 比例速度控制的汽车模型 整个模型包括两个主要部分:发动机动力系统和控制系统。但是在模型图中哪些模块代表发动机动力系统,那些模块代表控制系统并不明确。在图中,将模型的这两个部分转化为子系统。经过转化后,主模型图中的结构就变得很明了了,只是两个
3、子系统的具体结构被隐藏起来了,双击子系统模块,则会在一个新的窗口中显示子系统的模块图。如图7.5.3所示。 图 子模块化了的汽车模型 子系统的另外一个重要的功能是把反复使用的模块组压缩成子系统后重复使用。在本例中,如果要比较在同一控制系统控制下不同发动机的工作效率,只需要替换新的发动机子系统而不是重建一个新的系统。这样的控制系统就可以反复利用。 注意:这种做法不仅节省了建模时间,而且可以保证在多次建模中不会因失误而在控制子系统中出现差错,这在大型的复杂系统建模中是非常重要的。创建Simulink子系统共有两种方法:一种办法是对已存在的模型的某些部分或全部使用菜单命令【Edit/Create S
4、ubsystem】进行压缩转化,使之成为子系统;另一种方法是使用Connections模块库中的Subsystem模块直接创建子系统。下面分别介绍这两种方法。 (a) 控制子系统 (b) 发动机动力子系统 图 子系统分解一、压缩子系统把已经存在的Simulink模型中的某个部分或全部压缩成子系统的操作如下:步骤一:首先使用范围框将要压缩成子系统的部分选中,包括模块和信号线,如图所示。 图 选中要压缩的模块注意:在这种情况下只能用范围框,而不能用Shift逐个选定。为了能使范围框框住所有需要的模块,重新安排模块的位置常常似乎是必要的。步骤二:在模块窗口菜单选项中选择【EditCreat Subs
5、ystem】,Simulink将会用一个子系统模块代替被选中的模块组,如图所示。 图 压缩后的模型图步骤三: 子系统模块将有一个默认输入端口和输出端口。输入端口和输出端口的默认名分别为In1和Out1。调整子系统和模型窗口的大小使之美观,如图所示。 图 压缩后的模型图 若想查看子系统内容或对子系统进行再编辑,可以双击子系统模块,则会出现一个显示子系统内容的新窗口。在窗口内,除了原始的模块外,Simulink自动添加了输入模块和输出模块,分别代表子系统的输入端口和输出端口。改变它们的标签会使子系统的输入输出端口的标签也随着变化。 特别注意:菜单命令【Edit/Creat Subsystem】没有
6、相反的操作命令。也就是说一旦将一组模块压缩成子系统,就没有直接还原的处理方法了(UNDO除外)。因此一个理想的处理方法是在压缩子系统之前先把模型保存一下,作为备份。二、子系统模块 在创建模型的时候,如果需要一个子系统,也可以直接在子系统窗口中创建。这样就省去了上面的压缩子系统和重新安排窗口的步骤。要使用子系统模块创建新的子系统,先从Signals & Systems模块库中拖一个子系统模块到模型窗口中。双击子系统模块,就会出现一个子系统编辑窗口。 注意:在信号输入端口要使用一个输入模块,在信号输出端口要使用一个输出模块。子系统创建完毕后,关闭子系统窗口。关闭子系统窗口之前不需要做任何保存操作。
7、子系统作为模型的一部分,当模型被保存时,子系统会自动保存。例 模拟如图7.5.7所示的弹簧质量系统的运动状态。单个小车系统的运动方程如下: 图 弹簧质量系统先建立如图所示的单个小车系统的子系统。 图 单个小车系统 使用子系统模块创建如图所示的子系统,此子系统用来模拟一个小车的运动。子系统的输入为小车的左距x(n-1)和右距x(n+1),输出为小车的当前位置x(n).子系统完成之后,关闭 子系统窗口。复制两次此子系统模块,并如图所示链接起来。 图 小车1的子系统模型 图7.5.10 使用子系统的三小车模型为了可以对每个小车的参数进行赋值,要做以下设置: 对小车1,将标签为LeftSpring的增
8、益模块的增益系数设置为k1,标签为RightSpring 的增益模块的增益系数设置为k2,标签为1/mass的增益模块的增益系数设置为1/m1。设置速度积分模块的初始值为0,位置积分模块的初始值为1。 对小车2,将标签为LeftSpring 的增益模块的增益系数设置为k2,标签为RightSpring 的增益模块的增益系数设置为k3,标签为1/mass的增益模块的增益系数设置为1/m2。设置速度积分模块的初始值为0,位置积分模块的初始值为1。 对小车3,将标签为LeftSpring的增益模块的增益系数设置为k3,标签为RightSpring 的增益模块的增益系数设置为k4,标签为1/mass的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 创建 matlab 子模
限制150内