概述
随着模型越来越大、越来越复杂,人们很难轻易的读懂它们。在这种情况下,子系统通过把大的模型分割成几个小的模型系统以使得整个系统模型更简捷、可读性更高,而且这种操作并不复杂。举一个简单的例子,考虑在例1中提到的汽车模型,其Simulink模型图见图7.5.1。
创建Simulink子系统共有两种方法:
·一种办法是对已存在的模型的某些部分或全部使用菜单命令【Edit/Create Subsystem】进行压缩转化,使之成为子系统;
·另一种方法是使用Connections模块库中的Subsystem模块直接创建子系统。
一、压缩子系统
把已经存在的Simulink模型中的某个部分或全部压缩成子系统的操作如下:
步骤一:
首先使用范围框将要压缩成子系统的部分选中,包括模块和信号线,如图7.5.4所示。
注意:在这种情况下只能用范围框,而不能用Shift逐个选定。
为了能使范围框框住所有需要的模块,重新安排模块的位置常常似乎是必要的。
步骤二:
在模块窗口菜单选项中选择【Edit>Creat Subsystem】,Simulink将会用一个子系统模块代替被选中的模块组,如图7.5.5所示。
步骤三:
二、子系统模块
要使用子系统模块创建新的子系统,先从Signals & Systems模块库中拖一个子系统模块到模型窗口中。双击子系统模块,就会出现一个子系统编辑窗口。
子系统创建完毕后,关闭子系统窗口。关闭子系统窗口之前不需要做任何保存操作。子系统作为模型的一部分,当模型被保存时,子系统会自动保存。
例7.5.1 模拟如图7.5.7所示的弹簧-质量系统的运动状态。
单个小车系统的运动方程如下:
先建立如图7.5.8所示的单个小车系统的子系统。
子系统完成之后,关闭 子系统窗口。复制两次此子系统模块,并如图7.5.10所示链接起来。
为了可以对每个小车的参数进行赋值,要做以下设置:
⑴ 对小车1,将标签为LeftSpring的增益模块的增益系数设置为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的增益模块的增益系数设置为1/m3。设置速度积分模块的初始值为0,位置积分模块的初始值为1。
此时就可以很方便地 使用Matlab变量对弹簧常数k1,k2,k3和小车质量m1,m2,m3进行赋值。这里使用了一个名为set_k_m 的M文件对它进行赋值,如下所示:
&set the spring constants and block mass values
k1=1;
k2=2;
k3=4;
m1=1;
m2=3;
m3=2;
仿真开始之前在Matlab命令窗口中运行此M文件。
然后,指定示波器模块把显示数据保存到工作间中,并设置仿真的起始时间(StartTime)为0,终止时间(StopTime)为100。
仿真结束后,在Matlab窗口中把所得到的小车3的显示数据绘制成图。
7.5.2 子系统的封装
创建一个封装模块的主要步骤分为三步:
⑴ 创建一个子系统;
⑵ 选中子系统,选择模型窗口菜单中的【Edit>Mask subsystem】选项生成封装模块;
⑶ 使用封装编辑器设置封装文本、对话框和图标。
一、子系统到封装模块的转换
(1) 文本页 Documentation
图7.5.13是编辑器的文本页。它也包括三个区域,每个区域都为一个自由区,既可填写也可以不填写。
◆
◆Block description:此区中的内容将显示在封装模块对话框的上部,它的位置在后面的图中可能看得更清楚。其内容脑壳描述模块的功用的简短语句或其它关于使用此模块的注意事项等。
◆Block help:当对话框中的【help】按钮按下时,MATLAB的帮助系统将显示此区中的内容,其内容应当包括使用此模块的详细说明。
(2) 初始化页 Initialization
初始化页是用来设置封装模块参数项的,如图7.5.14所示。此页也包括三个区域。
◆上区为Mask type区。此封装类型区与文本页中的封装类型区是等同的,可以在任意一页中定义或改变封装类型。
◆中区是用来设置封装模块对话框中的输入变量项目,如输入变量或操作选择等等。此区包括一个滚动项目列表、一套“加入”、“删除”和“移动”按钮,以及5个设置项目属性的编辑区。
◆ 底区为Initialization commands,在此区中可以输入MATLAB语句,如定义变量、初始变量值等等。
(3) 图标页
◆Icon fram: 第一个属性为图标框选项,他由一个下拉菜单组成,分别有可见、不可见选项。所谓的图标框即图标的边界线。
◆ Icon transparency:第二个属性为图标的透明度选项,也是由一个下拉菜单组成,有两个选项,透明和不透明。
◆ Icon rotation:第三个选项为图标旋转选项,其下拉菜单选项为固定和旋转。这个选项决定了当执行【Format>Flip block】或【Formal>Rotate Block】指令时的图标形状。
◆ Drawing cooedenates:最后一个区是图形坐标区,用来设置绘图的比例。它有三个选项:
→Pixed:用来设置绘图系为绝对坐标系,其效果为当模块图调整大小时,图标不随其大小的改变而改变。此参数下的坐标系应为象素点坐标,图标的左下角为坐标系的原点。
→ Autoscale:该选项使得图标图形恰好充满整个模块。
→ Normalized:该选项是设置绘图比例在0河1之间的选项。图标的左下角的坐标定义为(0,0),模块的右上角坐标定义为(1,1)。当模块调整大小的时候,坐标系同样被调整。
二、查看封装和解封装
最后
以上就是眼睛大纸飞机为你收集整理的simulinkz构建及封装子系统的全部内容,希望文章能够帮你解决simulinkz构建及封装子系统所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复