- MATLAB计算机视觉实战
- 赵小川 何灏 唐弘毅
- 2445字
- 2021-03-30 17:55:22
1.3 基于Simulink的仿真
1.3.1 什么是Simulink
MATLAB中的Simulink是专门用于仿真的软件包,它的名称是Simulation(模拟仿真)和Link(连接)的组合词。Simulink可以提供研究对象的建模、仿真和分析,它使用图形化的系统模块对研究对象进行描述,每个模块像实验室中的一台仪器一样,可以根据需要进行不同的组合以达到不同的研究目的。
在Simulink中,模块是仿真的基石,将这些模块相连接构成系统,可以进行仿真,运行结果可以用图形的形式显示出来,整个仿真过程非常简洁、方便、直观。
1.3.2 Simulink模块库介绍
Simulink模块库是建立模型的基础,其中囊括了大量的基本功能模块,只有用户熟练地掌握了模块库,才能快速、高效地建立模型。
在Simulink模块库中包含有以下子模块库,如表1.3.1所示。
表1.3.1 模块库(首字母大写)
1.常用模块库
常用模块库中的模块是Simulink所有模块库中使用频率最高的模块合集,主要是为了方便用户以最快的速度建立模型。常用模块库包含如图1.3.1所示的成员,模块功能如表1.3.2所示。
图1.3.1 常用模块库
表1.3.2 常用模块库
2.连续模块库
连续模块库中的模块如图1.3.2所示,它包含了搭建连续系统所需的绝大部分模块,这些模块的功能如表1.3.3所示。
图1.3.2 连续模块库
表1.3.3 连续模块库
3.离散模块库
离散模块库中的模块如图1.3.3所示。其功能如表1.3.4所示。
图1.3.3 离散模块库
表1.3.4 离散模块库
4.数学运算模块库
数学运算模块将很多数学运算封装成模块的形式,使数学运算操作大大简化,减少了很多程序设计上的烦琐过程。此模块库所包含的模块如图1.3.4所示。其功能如表1.3.5所示。
图1.3.4 数学运算模块库
表1.3.5 数学运算模块库
5.信号源模块库
信号源模块库如图1.3.5所示。其功能如表1.3.6所示。
图1.3.5 信号源模块库
表1.3.6 信号源模块库
6.信号接收模块库
信号接收模块库如图1.3.6所示。其功能如表1.3.7所示。
图1.3.6 信号接收模块库
表1.3.7 信号接收模块库
7.用户自定义模块库
用户自定义模块库如图1.3.7所示。其功能如表1.3.8所示。
图1.3.7 用户自定义模块库
表1.3.8 用户自定义模块库
1.3.3 创建一个简单的Simulink示例
本节通过一个简单的示例来向读者展示如何创建Simulink仿真模型、运行仿真模型、显示仿真结果及保存仿真模型。
例1.3.1 创建一个产生正弦信号并对其进行观察的仿真模型。
步骤如下:
步骤1:在MATLAB的命令行窗口运行simulink命令(注意:指令的首字母应小写),或单击工具栏中的图标,就可以打开Simulink模块库浏览器(Simulink Library Browser)窗口,如图1.3.8所示。
图1.3.8 Simulink模块库浏览器
步骤2(a):通过菜单File→New→Model新建一个名为untitled的空白模型窗口,如图1.3.9所示。
图1.3.9 步骤2(a)的实现过程
步骤2(b):也可以通过选择“主页”→“新建”→Simulink Model建立,如图1.3.10所示。
图1.3.10 步骤2(b)的实现过程
通过步骤2所建立的模型窗口如图1.3.11所示,它由菜单、工具栏、模型浏览器窗口、模型框图窗口以及状态栏组成。
图1.3.11 模型窗口组成示意图
步骤3:从右侧子模块窗口中,直接单击Simulink下的Sources子模块库,便可看到各种输入源模块,如图1.3.12所示。
图1.3.12 步骤3的实现过程
步骤4:单击所需要的输入信号源模块Sine Wave(如图1.3.13所示),将其拖放到空白模型窗口untitled,Sine Wave模块就被添加到untitled窗口;也可以用鼠标选中Sine Wave模块并右击,在快捷菜单中选择add to'untitled'命令,就可以将Sine Wave模块添加到untitled窗口,如图1.3.14所示。
图1.3.13 单击所需要的输入信号源模块Sine Wave
图1.3.14 将Sine Wave模块添加到untitled窗口
步骤5:用同样的方法打开接收模块库Sinks,选择其中的Scope模块(示波器)拖放到untitled窗口中,如图1.3.15和图1.3.16所示。
图1.3.15 步骤5的实现过程
图1.3.16 步骤5的实现效果
步骤6:在untitled窗口中,用鼠标指向Sine Wave右侧的输出端,当光标变为十字符时,按住鼠标拖向Scope模块的输入端,再松开鼠标按键,就完成了两个模块间的信号线连接,一个简单模型已经建成,如图1.3.17所示。
图1.3.17 步骤6的实现过程
步骤7:开始仿真,单击untitled模型窗口中“开始仿真”图标,或者选择菜单Simuliation→Run,仿真开始。双击Scope模块出现示波器显示屏,可以看到黄色的正弦波形,如图1.3.18所示。
图1.3.18 步骤7的实现效果
步骤8:保存模型,单击工具栏的图标,将该模型保存为Ex0901.mdl文件。
通过例1.3.1可以了解如何建立、运行、观察、运行Simulink的仿真模型。
1.3.4 对模块进行基本操作
1.对象的选定
要选定对象只要在对象上单击,被选定的对象的四角处会出现小块编辑框,如图1.3.19所示。
图1.3.19 选定单个对象
如果选定多个对象,可以按下Shift键,然后再单击所需选定的模块;或者用鼠标拉出矩形虚线框,将所有待选模块框在其中,则矩形框中所有的对象均被选中,如图1.3.20所示。
图1.3.20 选定多个图像
如果要选定所有对象,可以选择菜单Edit→SelectAll,如图1.3.21所示;也可以右击选择SelectAll,如图1.3.22所示;还可以通过快捷键Ctrl+A来实现。所有对象被选中后如图1.3.23所示。
图1.3.21 选择菜单Edit→SelectAll
图1.3.22 右击选择SelectAll
图1.3.23 所有对象被选择后的效果
2.模块的复制
不同模型窗口(包括模型库窗口)之间的模块复制方法如下:
方法1:选定模块,用鼠标将其拖到另一模型窗口。
方法2:使用Edit菜单中的Copy和Paste命令。
方法3:通过快捷键Ctrl+V、Ctrl+C来实现。
在同一模型窗口内复制模块的方法如下:
方法1:选定模块,按下鼠标右键,拖动模块到合适的地方,释放鼠标。
方法2:选定模块,按住Ctrl键,再用鼠标拖动对象到合适的地方,释放鼠标。
方法3:使用Edit菜单中的Copy和Paste按钮。
方法4:通过快捷键Ctrl+V、Ctrl+C来实现。
3.模块的移动
选定需要移动的模块,用鼠标将模块拖到合适的地方。
4.模块的删除
要删除模块,应选定待删除模块,按Delete键。
5.改变模块大小
选定需要改变大小的模块,出现编辑框后,用鼠标拖动编辑框,可以实现放大或缩小。
6.模块名的编辑
1)修改模块名
单击模块下面或旁边的模块名,可对模块名进行修改。
2)模块名字体设置
选定模块,选择Diagram→Format→Font Style,打开字体对话框设置字体。
3)模块名的显示和隐藏
选定模块,选择Diagram→Format,勾选Show Block Name,可以显示模块名,否则为隐藏。
1.3.5 信号线的操作
1.模块间的连线
先将光标指向一个模块的输出端,待光标变为十字符后,按下鼠标左键并拖动,直到另一模块的输入端。
2.信号线的分支
按住Ctrl键,同时按下鼠标左键拖动鼠标到分支线的终点,如图1.3.24所示。
图1.3.24 信号线分支操作示意图
3.信号线文本注释
1)添加文本注释
双击需要添加文本注释的信号线,则出现一个空的文字填写框,在其中输入文本。
2)修改文本注释
单击需要修改的文本注释,出现虚线编辑框即可修改文本。