Simulink仿真教程3---子系统的创建与封装
我们既然要使用Simulink,就不是针对于一些简单的仿真去的。所以仿真模型一般都比较复杂,规模很大,包含了数量众多的各种模块。如果把这些模块都放在一个模型编辑窗口中,会显得臃肿、杂乱不堪,不利于编辑和分析。所以我们要把完成某些功能的模块单独封装成一个个子系统,最后再用一个模型文件调用这些子系统,类似于编程中的函数封装再调用。这样可以使模型变得简洁。
一、从空白模型创建子系统
1、新建一个空白模型
2、添加“Simulink”-“Ports & Subsystems”-“Subsystem”模块
3、双击Subsystem模块进入子模块编辑窗口,该窗口已自带了一个子模块的输入和输出端子,名为In1、Out1,输入和输出端子是子模块与外界联系的端口。
4、使用模块和信号线实现子模块的功能。
5、完成子模块功能的编辑后,点返回上级按钮,进行剩下功能的搭建
6、添加信号源和示波器,仿真即可。
二、从已有模型创建子系统
如果模型已经建立完毕,但是比较混乱,需要把部分模块封装成子系统。
1、选中要组合成子系统的所有对象,包括模块和连线。
2、右键“Create Subsystem from Selection”,选中的部分就会自动生成子系统。
三、子系统的封装
所谓封装(Mask),就是将SIMULINK的子系统“包装”成一个模块,并隐藏全部的内部结构。访问该模块时只出现了一个参数设置对话框,模块中所有需要设置的参数都可通过该对话框来统一设置。
1、选中目标子系统,右键“Mask”-“Create Mask”
之后会弹出子系统封装的属性设置:
利用此窗口对封装的图标、参数、初始化和文本进行设置。下面介绍4个标签页的功能。
2、Icon & Ports(图标和端口)标签页
用来给封装模块设计自定义图标。“Icon drawing commands”命令窗口以MATLAB语句来绘制图标的编辑区,通过在“Icon drawing commands”命令窗口中填写函数设置封装模块的图标。图标标签页的常用绘制命令如下:
3、Parameters & Dialog(参数)标签页
最关键的标签页,可增加或删除子系统参数对话框中的变量以及属性。
在上图的框1中选择要添加变量的类型:Edit(可编辑型,即该变量可由用户自定义输入数据,这是最普遍的一种类型);Checkbox(复选框型,指定输入数据为复选框类型,即用户只能进行选中与否的设置);Popup(下拉菜单型,指定输入数据为下拉菜单类型,即输入数据不可编辑,只能在下拉菜单提供的选项中选择)等。
框2中显示当前子系统的变量信息,包括Type(变量类型)、Prompt(变量说明,封装后根据这个来分辨不同的变量)、Name(变量名,与子系统中的变量名相同,且一一对应)。
框3中显示当前变量的属性。
4、Initialization(初始)标签页
通过命令函数,允许用户在调用子系统前通过MATLAB命令窗口进行子系统参数值的初始设定,还可以对图标绘制函数初始的值进行设置。
5、Documentation(文本)标签页
可设定封装子系统的类型、描述和帮助等文字说明。其中,“封装类型”( type)文本框中的内容将作为模块的类型显示在封装模块的参数对话框中;“封装模块描述”(description)多行文本框中的内容将显示在封装模块参数对话框的上部,对封装模块的功用和其它注意事项进行描述;“封装模块帮助”(help)多行文本框中输入关于该模块的帮助,在参数对话框中的“help”按键按下时,MATLAB的帮助系统将显示此封装模块帮助多行文本框中的内容。
四、一个子系统封装的例子
要求:创建一个子系统,功能为:y=m*sin(x) +n ,并进行封装。
1、建立模型:
可以看到模型中有两个变量:m和n,分别位于Gain模块和Constant模块。
2、封装子系统,设置标签页。我们想把子系统的图标设计成下面这样:
表示对波形的放大和偏移。一般Icon & Ports(图标和端口)标签页中只放绘图的命令,可是绘图需要的数据从哪来呢?从
Initialization(初始)标签页中来。于是我们先在Initialization(初始)标签页中生成绘图需要的数据。
然后在Icon & Ports(图标和端口)标签页中使用前面的绘图数据来绘图:
点击确定,就可以看到刚刚的设置已经生效了:
3、设置变量
添加两个Edit类型的变量,可以在变量属性中对变量初值就行设置。点击确定后,再双击子系统的图标,就会出现:
设置变量m和n的值,提示框中只会出现Prompt,因此prompt要命名好,不然变量太多,不好分辨。
4、在Documentation(文本)标签页中,把子系统的说明信息填完整。
5、4个标签页设置完成,子系统就封装完成。接下来直接使用即可。如果要修改放大值和偏移值,不用像没有封装那样,点开子系统去修改里面的模块,直接双击图标,修改变量即可,方便不少。
Simulink仿真教程3---子系统的创建与封装相关推荐
- 永磁同步电机模型预测控制(PMSM-MPC)Simulink仿真教程
本篇文章为永磁同步电机模型预测控制(PMSM-MPC)Simulink仿真教程 包含了控制原理和simulink仿真搭建. 详细的描述了模型预测的研究.个人花费了很久的时间整理和完善!希望对大家有用喔 ...
- 永磁同步电机谐波电流注入策略——(多旋转PI控制)Simulink仿真教程
本篇文章为永磁同步电机谐波电流注入控制策略原理解析及仿真教程 目前关于此方向的资源教程较少,我个人对其进行了原理总结,仿真实验分析 希望大家有所收获,喜欢本篇文章的话点个关注收藏赞吧!!!!!! 永磁 ...
- 脉冲宽度调制(SPWM)Simulink仿真教程
本篇文章的仿真分享,需要simulink仿真文件的评论区留下邮箱吧!!!!! SPWM的基本原理 SPWM的重要理论基础 单相SPWM仿真 通过比较产生控制信号 . 输出结果 三相SPWM仿真 比较产 ...
- 【Simulink模块】低通/高通滤波器模块介绍及其Simulink仿真教程
simulink自带模块 Analog Filter Design 描述: 模拟滤波器设计模块以高通,低通,带通或带阻配置设计和实现Butterworth,I型Chebyshev,II型Cheby ...
- Simulink仿真教程4---模块库介绍
Simulink拥有非常多的模块,利用这些模块进行组合可以完成很复杂的各种功能的模型.众多的模块也是Simulink强大功能的基础.现在我们来简单认识一下他们,在以后设计模型时,也好有个印象.(这些库 ...
- Simulink仿真教程1---一个简单的仿真例子
学习一门语言一般从"Hello World"开始,学习Simulink,先进行一个最简单的仿真:使用示波器显示正弦波信号源波形.通过这个例子来熟悉Simulink的功能和仿真操作流 ...
- Simulink仿真教程6---对控制系统的阶跃响应进行仿真
要求,对如下的控制系统进行建模仿真,并求其阶跃响应特性. 1.从"Simulink"-"Sources"-"Step"处,添加输入阶跃信号源 ...
- Simulink仿真教程5---仿真参数设置和示波器的使用
一.仿真参数的设置 在"Simulation"-"Model Configuration Parameters"中调用仿真参数设置窗口 1.Solver 1). ...
- Simulink仿真教程2---一些基本操作
一.库模块的操作 1.放大缩小模块:鼠标放在模块上,模块4角出现小方块,拖动小方块即可. 2.旋转模块:选中模块后,右键"Rotate&Flip".也可快捷键"C ...
- 专题九Simulink仿真基础
文章目录 一.Simulink仿真基础 1.Simulink的启动 2.系统仿真模型的创建 3.仿真参数的设置 二.子系统的创建与封装 1.子系统的创建 2.子系统的封装 3.子系统的条件执行 三.S ...
最新文章
- AngularJS 服务(Service)
- count() * ,1,字段 三兄弟
- Linux 命令之 echo -- 输出指定的字符串或者变量的值
- mybatis11--多对多关联查询
- 在10000以内判断一个整数,它加上100和加上268后都是一个完全平方数 3 提问:请问该数是多少?...
- 银行存款都有哪些误区,你都有踩坑吗?
- 这次国足想不出线都难
- 计算机无法检测更新失败怎么办,Win10电脑更新失败提示你的设备中缺少重要的安全和质量修复如何解决...
- Python繁体中文和简体中文互转
- Cocos Create 3.3 打包安卓apk
- easyui分页查询为什么会有下拉框_Easyui 添加分页组件_EasyUI 教程
- 翻斗式雨量传感器VS压电式雨量传感器
- 【T3】win10系统成功注册加密锁后,登录软件依然提示“产品未找到合法的license授权”
- win10子系统ubuntu18安装到其他盘
- FPS游戏开发(3)
- oa系统服务器地址怎么查,如何查询oa服务器地址
- 锐龙r5 6600u和r5 5600u区别 r56600u和r55600u对比
- Ubuntu16.04LTS学习笔记
- 将VMware 虚拟磁盘文件vmdk直接挂到win系统下的方法
- pytorch深度学习简介(包括cnn,rnn等我只挑我感觉有必要记录)
热门文章
- 修改Swagger接口文档网络请求返回状态码
- Jmeter原件的作用域
- 如何正确看待ALEXA(转)
- 美国“高考”(SAT)满分作文选登(续)
- 5.3黄金原油新气象——5.4最新白银TD纸白银走势分析
- NFS的at-most-once语义实现操作的幂等性
- ThreeJs使用教程
- Caused by: java.lang.ClassNotFoundException: org.jboss.logging.BasicLogger
- 云安全的基本术语和概念
- css隐藏溢出滚动条