Simulink 仿真
摘要:simulink 作为 matlab 的衍生模组,具有强大的仿真能力。原则上你可以
将任意具有明确映射关系的物理量进行仿真模拟。对于相互间关系不明确的物理
量,则可以通过输入输出数据的采集,然后通过模糊控制的方案替代明确的映射
关系。本文主要针对的是以电焊机电路为主,其他仿真为辅的教程性质的文章。
关键词:matlab Simulink 仿真 电焊机 教程
第二章
初识软件 ................................................................................................................... 2
第一章
simulink 简介 ........................................................................................................... 2
1.1
1.2 simulink 基础页面 .............................................................................................................. 2
1.3 常用库的介绍 .................................................................................................................... 3
1.3.1 simulink 库 ............................................................................................................ 4
1.3.1.1 常用模块库 ................................................................................................ 4
1.3.1.2 其他常用子库模块 ...................................................................................... 6
1.3.2 电气库 Simscape .................................................................................................... 7
1.3.2.1 Electrical 库 ................................................................................................... 7
1.3.2.2 Specialized Technology 库 ............................................................................. 8
1.4 模块连接............................................................................................................................. 9
简单仿真系统的建立 ............................................................................................. 11
2.1 传递函数 S 信号仿真 ....................................................................................................... 11
2.1.1 运放环节的等效替代 ........................................................................................... 11
2.1.2 等效变换 ............................................................................................................... 12
2.1.3 逻辑仿真 ............................................................................................................... 13
2.2 电气库仿真 ....................................................................................................................... 13
2.3 子系统和模块的建立 ....................................................................................................... 15
2.3.1 子系统的建立 ....................................................................................................... 15
2.3.2 模块的建立 ........................................................................................................... 16
复合仿真 ................................................................................................................. 18
3.1 m 函数模块 ...................................................................................................................... 18
3.1.1 简单编程 ............................................................................................................... 18
3.1.2 部分函数介绍 ....................................................................................................... 19
3.2 整体模型.......................................................................................................................... 21
3.3 仿真注意事项 .................................................................................................................. 22
3.3.1 注意事项 1 ............................................................................................................ 22
3.3.2 注意事项 2 ............................................................................................................ 23
3.3.3 注意事项 3 ............................................................................................................ 24
3.3.4 注意事项 4 ............................................................................................................ 24
结语 ................................................................................................................................................ 25
第三章
1
第一章 初识软件
Matlab 作为一块应用广泛的软件,在许多领域中具有广泛的应用,所以掌握 matlab 的
一些基础运用是一个很有用的技能。Matlab 广泛应用于数字图像处理,程序控制,仿真模
拟等多个领域之中。这款软件的核心基础在于强大的矩阵计算能力,无论是程序处理还是仿
真计算,其本质就是通过矩阵运算的方式得出解。本文将主要介绍的是其用于仿真的 simulink
模块。
1.1 simulink 简介
Simulink 是 matlab 的仿真模组。其内部集成了具有各种映射关系的库。Simulink 的仿真
主要就是熟练的运用各个不同库中的模块。(因为 simulink 的仿真不单单是电气上的仿真,
所以一般不把各个仿真用的“单元”称为器件,而是称为模块,同时将整个仿真图称为仿真
模型)下面介绍 simulnk 的基础页面和库的介绍。
1.2 simulink 基础页面
首先自然要创建 simulink 仿真模型的空白页面。Simulink 的仿真页面无需像其他软件
一样需要也先设置各种参数。在 matlab 主界面的主页选项,选择新建下拉菜单,然后选择
simulink,即可建立空白的 simulink 仿真页面。
在 simulink 页面则可以直接点击
完成新建或者打开的 simulink 的仿真页面。
图 1-1 simulink 仿真页面
2
各个快捷键的介绍,第一栏为菜单栏,所有的软件都具有的一栏,大部分情况下并不会
用到,这里就只针对快捷键进行说明。第一栏快捷键从左往右以此为新建/打开,保存,撤
销界面操作,恢复界面操作,退出当前子模型,库,仿真设置,当前模块列表及搜索,后撤
仿真步数,开始仿真,逐步仿真,暂停,记录,仿真时长,模块指引,仿真模型建立。
左侧竖列分别为隐藏/显示文件名,放大指定区域,最佳视图,没什么用的,插入文字,
插入图片。基本上 simulink 的仿真建立应用上述快捷键就足够了。Simulink 的仿真界面与其
他仿真软件还有点不同的是其仿真界面可以视为无穷大,不需要提前设置图纸大小,其图纸
大小会随着你建立的仿真图形而改变。然后虽然因为 simulink 无法实现跨图纸连接仿真,但
是通过子系统的封装,完全可以将两个大的模型封入子系统然后将必要的接口相互连接,所
以不存在一个界面存在太多器件而导致仿真杂乱不堪。
1.3 常用库的介绍
Simulink 中有数目众多的库,不同的库具有不同的仿真侧重点。所以本节会对一些常用
的库进行简单的介绍。Simulink 的库为层级结构。不断选中自己所需的类别,然后找到自己
所需要的元件。实际上 simulink 的库其实也是模型文件,只不过是不能更改的模型文件,每
一个层级其实就是模型的一个子系统,每一个子系统打开,如果子系统中还包含子系统就继
续可以打开,其他的不可打开的就是可用的模块了,为了库分类而做的子系统一般是没有输
入输出端口的。
3
图 1-2 simulink 库展示
1.3.1 simulink 库
以 simulink 本身命名的库,自然是 simulink 中最重要的库同时也是使用频率最高的库。
当然前面也提到过了,本文主要针对的是焊机电路的仿真为主的教程,所以一些相对这个主
题不重要的库就不在这里介绍了。
将会介绍的库有,commonly Used Blocks(常用模块库),Continuous(连续量模块库),
logic and bit operations(逻辑变换库),Math Operation(数学变换库),signal routing(信号
传递库),sinks(终端库),sources(信号源库),user-defined functions(用户自定义库)。
在本文中主要使用的库就是上述几个库。
1.3.1.1 常用模块库
常用模块库,顾名思义将 simulink 库中除自身外其当子系统库中的常用模块集中到一起
的库,所以这个小库中的模块都是比较有用的模块。选取其中典型的模块进行大致功能的介
绍。
常数模块,很简单双击打开后可以修改参数。这个模块的作用就是输出恒定常数
信号,当然如果采用一些手段也可以做到在仿真过程中进行参数的变化,实际上对于一些仿
真比较慢的模型,你可以直接在仿真过程中进行参数的修改(仅限于部分模块,并不是所有
模块都可以在仿真过程中进行参数的修改,这个在后续章节中会讲述)。可以输出所有参数
类型(注意事项 1)。
gain,比例环节,通过这个环节的信号将会根据设定的参数比例进行缩放。使用
方法与上相同,具有输入端的 gain 环节可以接受所有参数类型信号,同时可以单独设置输
出信号类型,所以这个模块除了用于信号的放大缩小以外还可以用于信号类型转换,这在
simulink 中是一个相当有用的作用。
,out & in 主要用于子系统的输入输出端口建立,当子系统需要添加
输入输出端口时,就是采用这两个模块完成的。
,MUX & Demux 混合和分离模块,混合后的信号存贮方式为,时间数组+信号 1
数组+信号 2 数组,2 个不同的信号将会存在于同一个节点当中,同时又是相互分开独立的
存在。然后通过分离变量可以将其重新分离成两个信号。存贮方式按信号的输入位置从上往
4
下依次排序,同理分离时也按相同的情况处理。输入输出端口是双击打开后,通过参数可调
的,有一种特殊情况就是分离输出端口少于混合输入端口,这时候会按照除法进行等量分配,
多于部分从上往下分配。如 7 个输入,3 个输出,则输出 1 号口分配到 3 个信号,2,3 端口
分配到 2 个信号,且各自的信号为 1 号后输出 1,2,3 信号,2 号输出 4,5 信号,3 号输出 6,
7 信号。基本上输入输出的安排就是这个规律进行的。混合的信号来源必须为同一类型的参
数变量,不同类型的参数变量无法混合,会报错(如 double 无法和 unit8 混合)。
积分模块,最常用的连续变量传递函数模块,常常用作误差积分进行反馈环节的
设计。
and 模块,与与门具有相同的功能,输入信号可以是任意形式的参数变量,但输
出确定为 boolean 逻辑变量。所以如果后续需要参与其他类型变量的变化需要通过 gain 进行
类型转换。同时这个模块双击打开后可以进行输入端口数量的设置,同时可以进行逻辑功能
的选择,有与,或,非,与非,或非,同或,异或 7 个常见逻辑功能的选择。关于逻辑变量,
逻辑变量分类为 0 和非零值,对于输入其识别为 0 为假,非零为真,即无论多小的数甚至负
数对于模块而言都视为真。输出假为 0,真为 1,对于常数模块设定 1 以外的真变量,同时
设定为逻辑变量其输出依旧为 1。
乘法模块,输入端口数目可调,输出为所有的输入的乘积,输入信号可以为任意
参数类型,输出为逻辑变量以外的参数类型。
逻辑判断模块,可以有>, <, >=, <=, ==, isinf, Isnan, isfinite 这几个功能可选,输入
参数类型可以为任意类型,输出参数类型恒为逻辑变量。
限幅模块,所有通过这个模块的信号都会被限制在指定幅值区域内,双击打开后
可以设置上限值和下限值。
示波器模块,可以设置输入端口数(同时改变内部窗口数,不会在同一窗口显示),
想要在同一窗口显示,则需要将两个信号通过混合模块进行混合后输入到示波器当中,这样
就会在同一个窗口显示波形。默认信号颜色为从 1 号到 5 号,黄粉浅蓝红深蓝,往后就是循
环了。
加法(或者减法),通过双击可以选择端口数量和+-符号,可以对多个数值进行加
减运算,最后输出。输入可以为任意信号,输出可以是逻辑变量以外的任意信号。
5
常用器件库中,将会用的模块都在上面进行了介绍。下面则是 simulink 库中其他子库中
一些比较实用的模块介绍。
1.3.1.2 其他常用子库模块
连续量模块库中的模块,零极点模块,通过设定零极点来确定传递函数的模
块。
同一个库中的另一个模块,两者效果其实是一样的,只不过传递函数模块,
直接设定不同阶数的系数设定传递函数。
上面讲过了积分模块,自然这里有相应的
微分模块形式上是导数。
积分模块还有一个衍生模块,有限积分模块,只
能积分到上下限值,不会出现无限积分的情况。
这个库中还有一个更直接的模块,PID
模块,直接就是个 PID 环节,直接设置比例,积分,微分参数即可。
设定一个参数值和判断条件,在输入符合条件时输出逻辑真,否则为否,即 1
和 0 的逻辑变量。
from & go 信号传递库中的模块,其作用相当于电路仿真
的网络标号一样,通过设定想多的标签,可以使两端完成“无线”连接。
电压表
或者电流表异或其他表,用于显示连接信号线数值的模块。
存储模块 to file,将时
间信号和对应信号线的数值记录并存储到.mat 文件当中。与之对应的是
from file,
从对应的.mat 文件中读取数据,双击打开可以设置文件名,同样不允许有中文。与之类似
的有
&
to workspace &from workspace,只不过存储位置变成了工作空间,
即 matlab 的内存空间,这里的数据可以由 matlab 的其他应用调取,但在内存清除后会消失,
而之前的 to file 会确实的保存在硬盘当中。在信号源库中存在着多种信号和信号来源途径,
比较常用的信号源有
依次为周期脉冲,锯齿波,阶
跃,斜坡,时钟,简弦,有限白噪声。具体参数都可以双击打开模块后进行修改。然后是用
户自定义库中的两个个人使用频率较高的模块
&
,s 函数因为涉及到其他
6
方面的知识不在本文讨论。
Fcn 模块是一个比较常用的用户自定义模块,可以通过
内部设置输出对输入的映射关系(1 对 1)想要多输入多输出则需要
模块进行 m 文
件的编写设计,这将在后文提到。
以上的一些模块就是 simulink 库常用库中的一些比较重要的模块。
1.3.2 电气库 Simscape
虽然其他库也有电气相关的模块,但是相对而言这个库中的模块比较直白,就是用来做
电气仿真用的模块库。虽说是这个库,但实际上也只是采用其中部分子库。
1.3.2.1 Electrical 库
库目录为 Simscape/Foundation Library/Electrical。这个库具有 3 个子库,分别为 Electrical
Elements 元件库,Electrical Sensors 传感器库,Electrical Sources 电源库。
图 1-3 元件库
这个库中大部分都是我们所熟悉的那几个常用元器件模块,如电容,电阻,二极管,接
地,理想变压器,电感,运放等。基本上 simulink 的电气仿真库中,只存在这些基础元器件
模块,当然在一些特定的库中,也会有一些特殊的元器件模块,这就需要各位自己去寻找了。
这里还要注意两个特殊点的元器件模块,switch,通过设置导通信号阈值,可以再输入的物
理量信号大于某个值时导通,否则关断。最后一个为可调电阻,根据输入信号变化对应的阻
值大小,这两个是在仿真中进行电路实时变化的重要元器件模块,通过预设的指定信号或者
其他的采样信号,让其在特定时间发生特定的变化。
7
,传感器库主要就是电压传感器和电流传感器,用法与理想电压表和
电流表相同。两个采样端口,一个输出端口。通过将采样端口接入测量位置,然后在输出端
口就会输出对应的物理量信号。
然后就是电源库,电源库中具有比较通用性的电源。常见的交流电流源,交流电压源,
受控电流源,受控电压源,电流控制电流源,电压控制电流源,电压控制电压源,电流控电
压源,直流电压,直流电流。
1-4 电源库
其中受控电源是比较重要的模块,因为通过受控电源和前面一些信号源的搭配我们可以
组合出我们任意希望的输出电源。
1.3.2.2 Specialized Technology 库
库目录为 Simscape/SimPowerSystems/Specialized Technology。这个库中拥有不少的子库,
但主要用到的和上述库一样,传感器,电源,元器件这三个模块库。当然模块上还是有一点
不一样的地方的。
,这边的电阻电容电感模块是整合在一起的,分为并联
RLC 模块和串联 RLC 模块。通过参数设置可以设置成任意 1,2,3 个组成的并联或者串联模块。
,传感器形式上与上一个库差不多,但输出信号上却是不同的,这在下面会
进行分析。同理受控电源的输入信号源也是不一样的。
常用模块的介绍就到这里,作为入门教程,以上模块一般就足够使用,随时软件使用的
不断深入,自然会不断的提升对库的使用熟练度,了解更多的模块和应用方法。
8