Simulink自定义功能模块
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Simulink自定义功能模块
前面讲述了使用Simulink中现有的模块进行仿真,但在实际中,可能有些需要用到的模块在Simulink中没有,因此需要Simulink的模块进行扩展,以适应特殊的仿真应用。
3.7.1自定义功能模块的创建
Simulink提供了自定义功能模块,用户只要按照其规定要求定义一些模块,便可在Simulink仿真中调用和加以使用。
自定义功能模块的创建有以下两种方法。
(1)一种方法是采用Signal&Systems模块库中的Subsystem功能模块,利用其编辑区设计组合新的功能模块。
基本操作:首先将Signal&Systems模块库中的Subsystem功能模块复制到打开的模型窗口中,然后双击Subsystem功能模块,进入自定义功能模块窗口,即可利用已有的基本功能模块设计出新的功能模块。
(2)另一种方法是将现有的多个功能模块组合起来,形成新的功能模块。
基本操作:在模型窗口中建立所定义功能模块的子模块。
用鼠标将这些需要组合的功能模块选中,然后选择Edit菜单下的Create Subsystem即可。
对于很大的Simulink模型,通过自定义功能模块可以简化图形,减少功能模块的个数,有利于模型的分层构建。
3.7.2自定义功能模块的封装
上面提到的两种方法都只是创建一个功能模块而已,如果要命名该自定义功能模块、对功能模块进行说明、选定模块外观、设定输入数据窗口,则需要对其进行封装处理。
首先选中Subsystem功能模块,再打开Edit菜单中的Mask Subsystem进入mask的编辑窗口,可以看出有3个标签页。
1. Icon标签页
它用于设定功能模块外观,最重要的部分是Drawing Commands,在该区域内可以用disp指令设定功能模块的文字名称,用plot指令画线,用dpoly指令画转换函数。
注意:
尽管这些命令在名字上和以前讲的MATLAB函数相同,但它们在功能上却不完全相同,因此不能随便套用以前所讲的格式。
disp('text'):在功能模块上显示设定的文字内容。
disp('text1\ntext2'):分行显示文字text1和text2。
plot([x1 x2 … xn], [y1 y2 … yn]):在功能模块上画出由[x1 y1]经[x2 y2]经[x3 y3]…直到[xn, yn]为止的直线。
功能模块的左下角会根据目前的坐标刻度被正规化为[0, 0],右上角则会依据目前的坐标刻度被正规化为[1, 1]。
dpoly(num, den):按s次数的降幂排序,在功能模块上显示连续的传递函数。
dpoly(num, den, 'z'):按z次数的降幂排序,在功能模块上显示离散的传递函数。
用户还可以设置一些参数来控制图标的属性,这些属性在Icon页右下端的下拉式列表中进行选择。
Icon frame:选择Visible则显示外框线;选择Invisible则隐藏外框线。
Icon Transparency:选择Opaque则隐藏输入/输出的标签;选择Transparent则显示输入/输出的标签。
Icon Rotation:旋转模块。
Drawing coordinate:画图时的坐标系。
2. Initialization标签页
它用于设定输入数据窗口(Prompt List),它主要用来设计输入提示(prompt)以及对应的变量名称(variable)。
在prompt栏上输入变量的含义,其内容会显示在输入提示中。
variable是仿真要用到的变量,该变量的值一直存于mask workspace中,因此可以与其他程序相互传递。
如果配合在initialization commands内编辑程序,则可以发挥功能模块的功能来执行特定的操作。
(1)在prompt编辑框中输入文字,这些文字就会出现在prompt列表中;在variable列表中输入变量名称,则prompt中的文字对应该变量
的说明。
如果要增加新的项目,则可以单击边上的Add按钮。
Up和Down按钮用于执行项目间的位置调整。
(2)Control type列表给用户提供选择设计的编辑区,选择Edit会出现供输入的空白区域,所输入的值代表对应的variable;Popup则为用户提供可选择的列表框,所选的值代表variable,此时在下面会出现Popup strings输入框,用来设计选择的内容,各值之间用逻辑或符号“|”隔开;若选择Checkbox则用于on与off的选择设定。
(3)Assignment属性用于配合Control type的不同选择来提供不同的变量值,变量值分为Evaluate和Literal两种,其含义如表3.1所示。
表3.1Assignment属性的含义
3. Documentation标签页
它用于设计该功能模块的文字说明,主要针对完成的功能模块来编写相应的说明文字和Help。
(1)在Block description中输入的文字,会出现在参数窗口的说明部分。
(2)在Block help中输入的文字会显示在单击参数窗口中的“Help”按钮后浏览器所加载的HTML文件中。
(3)在Mask type中输入的文字作为封装模块的标注性说明,在模型窗口下,将鼠标指向模块则会显示该文字。
当然必须先在View菜单中选择Block Data Tips——Show Block Data Tips。