参考视频:simulink1.1simulink简介_哔哩哔哩_bilibili
一、simulink简介
1、simulink与MATLAB的关系
(1)MATLAB是一种以矩阵为来处理数据的的计算软件,其应用范围十分广泛,该产品由若干模块组成,simulink是其中一个,它可利用图形化的工具来进行建模与仿真。
(2)simulink是基于MATLAB的框图设计环境,可以用来对各种动态系统进行建模、分析和仿真,它的应用领域十分广泛,任何能用数学模型来描述的系统都可以在simulink中进行仿真分析,如空气动力学、导航制导通讯、电子、机械、热力学等诸多领域,这些系统从数学角度来描述多涉及连续、离散、非线性、时变、条件执行、多速率混合等用解析方法难以求解的系统,它们都可以通过simulink进行建模与仿真,从而指导系统的分析与设计。
2、simulink的特点
(1)交互式建模:提供大量功能模块便于用户快速建立模型,建模仅需利用鼠标拖放功能块并将其连接起来。
(2)交互式仿真:仿真结果可以动态显示,并可以在仿真过程中随时修改参数。
(3)扩展与定制:提供了一个开放式的环境,允许用户扩充功能,可以将C、fortran编写的算法集成到框图中。
(4)专业的模型库:针对不同行业和领域提供了专业模型库。

3、simulink窗口的打开
(1)打开MATLAB,在命令行中输入"simulink",然后按下回车即可。

(2)MATLAB的菜单栏中也有打开simulink的快捷图标,不同版本的图标显示方式和位置可能略有不同,下面都以R2017b版本进行介绍。

(3)按照下图所示,可以打开已有的模型文件,或者新建空白模型文件。

二、建模与仿真的流程示例
1、一个典例------求解二阶振荡电路



2、数学模型的建立示例
(1)要解决一个实际的问题,首先要建立数学模型,对于动态系统而言,其数学模型往往都是微分方程或者微分方程组,得到它的数学模型以后就可以在simulink中建立相应的方块图并进行求解与仿真。
(2)在上面的例子中,求解过程中得出一个微分方程

对这个微分方程进行变形,把最高阶的导数项挪到左侧,其余项挪到右侧,即

根据此式可画出如下方块图。


(3)在simulink中搭建上面的方块图,最终成品如下图所示。

3、在simulink中搭建数学模型示例
(1)继续使用上面的例子,打开simulink,然后新建或者打开已有的文件,按照下图所示打开模块库浏览器。
①simulink栏下将一些模块分为几种类别,分别有常用的模块、连续模块、不连续模块、离散模块、逻辑与位操作模块、查找表格模块、数学操作模块、模型校验模块、端口和子系统模块、用户自定义模块等。
②除了simulink栏以外,其它栏基本都是一些专业的工具箱,在某些专业领域会频繁使用,当然,它们也隶属于simulink。


(2)通过拖拽的方式可以将模块浏览器中的模块添加到编辑区中,另外编辑区中支持移动、缩放、同时框选多个模块、Ctrl+C/Ctrl+V快捷键复制粘贴、backspace/delete键删除、Ctrl+R/Ctrl+Shift+R快捷键旋转、Ctrl+I快捷键翻转等基本操作。

(3)对于已添加模块,双击它,按照下图所示可以修改其形状。

(4)双击模块可以修改模块的属性:
①针对求和模块,其输入端口数目可通过双击模块,更改属性"List of signs"的内容来改变,两个"+"对应两个输入,四个"+"对应四个输入,以此类推。

②针对增益模块,其增益系数可通过双击模块,更改属性"Gain"的值来改变,这个值就是增益系数(可以是负数)。

③针对阶跃信号产生模块,可通过更改属性"Step time"的值以更改信号产生阶跃的时间。

(5)每个模块都会与其它模块产生关联,也就是一个模块往往都具有输入端和输出端(当然,本例中的Step和Scope并不是这样,它们只有输入端或者输出端),在编辑区中,模块的输入端表示为一个指向模块内部的"无身箭头",模块的输出端表示为一个指向模块外部的"无身箭头"。

(6)各模块的位置摆好后,可以进行连线。
①鼠标选定模块的端口,直接进行拖拽,可以将其与其它模块的端口进行连线,以此表示信号的传递(违规连接不会被允许)。
②按住Ctrl键点击信号线的某个位置,可以在上面引出一条分支,或者在模块的端口出直接拉出一条信号线连接到其它信号线上,也可以达成同样的效果。
③如果连接的信号线不是黑色实线,说明信号线没能将两端连接,需要重新进行连线。

(7)框选所有模块,右键选择"Format"→"Show Block Name"→"On",可以让模块的注释保持显示,点击注释可对其进行更改,不过模块的注释对工程而言不起实际作用。

(8)选中模块,右键选择"Format"→"Foreground Color"可以设置模块本身的颜色,右键选择"Format"→"Background Color"可以设置模块填充颜色,设置填充颜色可对不同功能/种类的模块进行更好的区分。


(9)模型搭建完成后,可以点击下图所示图标或者使用快捷键Ctrl+S保存,文件格式为.mdl。

4、仿真示例
(1)使用之前搭建的模型,按照下图所示打开仿真参数设置窗口,一般需要配置的参数有起止时间和求解器选项,这里暂时不作深入介绍。


(2)仿真参数设置完成后,将已知的初始条件、
代入模型。


(3)完成以上工作后,可以直接开始仿真。

(4)仿真结束后,双击scope模块,可以查看仿真结果,也就是的图象。
