Matlab之Simulink子系统及模块封装

在Simulink中,子系统及模块封装是一种美化操作的技术。

  1. 为什么要封装成子系统?
    因为在系统建模和仿真中,经常遇到很复杂的系统结构,难以用一个单个的模型框图进行描述。Simulink支持可以将这样的复杂系统分解成若干个具有独立功能的子系统,使得系统模型更加结构化,增强模型的可读性,也更易于系统的维护
  2. 为什么要封装?
    为了更加便捷的修改子系统内各模块的参数,Simulink提供了模块封装(masking)技术,即通过对子系统进行封装,将其内部的结构隐含起来,在访问该子系统模块时只出现一个参数设置对话框,将模块中所需要的参数用这个对话框进行输入。

以下介绍一些简单的操作:
3. 子系统的创建
.Matlab之Simulink子系统及模块封装_第1张图片

选择需要封装的对象后,右键选择“Create Subsystem from Selecion" 即可完成封装
封装后,点击该模块,即可弹出原来的界面,这样简答的操作能让我们的仿真文件看起来简练,功能易于区分

4.学会mask封装技术
Matlab之Simulink子系统及模块封装_第2张图片
如果,希望对封装好的子系统进一步做细节上的操作,那么就需要用mask封装技术了,选择“Create Mask” 弹出以下界面
Matlab之Simulink子系统及模块封装_第3张图片
进入封装编辑器界面后,共有四个选项页—Icon & Ports、Parameters & Dialog、Initialization和Documentation,这四个选项页的功能下:
Icon & Ports选项卡:创建包含描述性文本、状态方程、图像以及图形等的模块图标。
Parameters & Dialog选项卡:设计封装对话框,主要用来定义和描述封装对话框中参数提示和与参数相关联的变量名称。
Initialization选项卡:用来指定初始化命令;
Documentation选项卡:用来定义封装类型,并指定模块的明和帮助文本。

先来说说这个 Icon & Ports选项 ——类似于界面的设计Matlab之Simulink子系统及模块封装_第4张图片
Block Frame可以使原灰色图标变为白色图标
对于Icon drawing commands ,有以下可以选择:

Command usage
disp Display text centered on a mask icon.
dpoly Display a transfer function on a mask icon.
fprintf Display variable text on a mask con.
image Display an image on a mask icon.
patch Draws a color patch of a specified shape on a mask icon.
plot Display graphics on a mask icon.
port_labe Display a port label on a maskicon.
text Display text at a specified location on a mask icon.

例如:如果要在子模块上显示文本“DG”
即可输入如下代码

disp('DG')

如果要在子模块设置输入输出口名称“in” ,“out”
即可输入代码:

port_label('input',1,'in')
port_label('output',1,'out')

其中“1”表示第一个输入/输出端口

绘图指令是;

image(imread('Gpi.jpg'))

其中,Gpi.jpg表示在当前路径下的图片Gpi.jpg

dpoly可以撰写传递函数

dpoly([Td*Ti Kp*Td 1],[Ti 1],'s')

这样写的前提是:所有参数都已经定义好了,要么在initialization中定义,要么就在Parameters & Dialog选项卡中进行参数设置,如此,界面也会随参数的变化而发生改变

接着,介绍一下Parameters & Dialog
Matlab之Simulink子系统及模块封装_第5张图片
这个界面的设计有点类似于matlab的GUI界面设计
常用的操作是:
Matlab之Simulink子系统及模块封装_第6张图片
通过edit添加一些参数,这些参数就可以直接用在子系统中。而我们只需要在参数设置界面中对参数进行修改,而不用通过under mask打开封装前的界面去修改参数

Matlab之Simulink子系统及模块封装_第7张图片

Matlab之Simulink子系统及模块封装_第8张图片

Matlab之Simulink子系统及模块封装_第9张图片
以上这些与GUI的控件属性基本一致
一个常用的控件是 promote
这个控件允许用户有选择地将模块参数从底层模块提升到封装层。点击 Type options 字段可打开 Promoted
Parameter Selector 对话框。即对封装内的模块的各个属性进行修改,省去了自定义参数的环节

现在考虑动态封装
Simulink允许用户为被封装模块创建动态对话框,也就是被封装模块的外观可以根据用户输入的变化而变化。可以改变的模块外观特性如下:

  1. 参数的可见性控制。改变参数可以控制其他参数的可见性,
    当控制参数可见或不可见时,对话框分别为展开或缩小状
    态。
  2. 使能参数状态控制。改变参数可以控制其他参数的使能和
    关闭,Simulink会使关闭的参数呈灰色显示。
  3. 参数值。改变参数可以使相关参数设置为适当的值

通过callback回调函数可以实现以上操作

num=get_param(gcb,'A')
set(gcb,'B',num)

其中,A和B为控件的Name

你可能感兴趣的:(子模块封装)