作者:郭阳宽 王正林 联系邮箱:wa_2003@126.com 《过程控制系统仿真》 电子工业出版社 出版 2009.3 作者:郭阳宽 王正林 联系邮箱:wa_2003@126.com
第 2章 Simulink仿真基础 2.1 Simulink仿真概述 2.2 Simulink仿真模型及仿真过程 2.6 本章小结 习题与思考
内容提要 Simulink的出现给控制系统分析与设计带来了福音。它有两个主要功能:Simu(仿真)和Link(连接),即该软件可以利用鼠标在模型窗口上搭建出所需要的控制系统模型,然后对系统进行仿真和分析。 在实际工程中,控制系统的结构往往很复杂,如果不借助专用的系统建模软件,很难准确地把一个控制系统的复杂模型输入计算机,对其进行进一步的分析与仿真,可见,熟练掌握Simulink是从事过程控制方面的工作所必须的。 通过本章,读者能对Simulink的基本模块和功能有一个全面了解,并能熟悉Simulink的基本操作,为使用Simulink进行过程控制系统仿真打下基础。
2.1 Simulink仿真概述 2.1.1 Simulink的启动与退出 ,一种是启动MATLAB后,单击MATLAB主窗口的快捷按钮 来打开“Simulink Library Browser”窗口 另一种是在MATLAB命令窗口中输入“Simulink”,在桌面上会出现一个名为“Simulink Library Browser”的窗口,在这个窗口中列出了按功能分类的各种模块的名称。然后在MATLAB命令窗口中输入“simulink3”,将在桌面上出现一个用图标形式显示的“Library :simulink3”的Simulink模块库窗口。
2.1.2 Simulink模块库 Simulink模块库按功能分为以下16类子模块库: (1)Commonly Used Blocks:仿真常用模块库 (2)Continuous:连续系统模块库 (3)Discontinuities:非线性系统模块库 (4)Discrete:离散系统模块库 (5)Logic and Bit Operations:逻辑运算和位运算模块库 (6)Lookup Tables:查找表模块库 (7)Math Operations:数学运算模块库 (8)Model Verification:模型验证模块库 (9)Model-Wide Utilities:进行模型扩充的实用模块库 (10)Ports & Subsystems:端口和子系统模块库 (11)Signals Attributes:信号属性模块库 (12)Signals Routing:提供用于输入、输出和控制的相关信号及相关处理的模块库 (13)Sinks:仿真接收模块库 (14)Sources:仿真输入源模块库 (15)User-defined Functions:用户自定义函数模块库 (16)Additional Math &Discrete:附加的数学和离散模块库
过程控制系统仿真中常用的模块 (1)信号源部分模块 (2)连续系统模块 (3)数学运算模块 (4)非线性系统模块 (5)离散系统模块 (6)输出显示部分模块
2.2 Simulink仿真模型及仿真过程 一个典型的Simulink仿真模型由以下三种类型的模块构成: 1.信号源模块:信号源为系统的输入,它包括常数信号源、函数信号发生器(如正弦波和阶跃函数等)和用户自己在MATLAB中创建的自定义信号。 2.被模拟的系统模块:系统模块作为仿真的中心模块,它是Simulink仿真建模所要解决的主要问题。 3.输出显示模块:系统的输出由显示模块接收。输出显示的形式包括图形显示、示波器显示和输出到文件或MATLAB工作空间中三种,输出模块主要在Sinks 库中。 Simulink仿真模型的基本特点可归纳如下: Simulink里提供了许多如Scope(示波器)的接收模块,这使得用Simulink进行仿真具有像做实验一般的图形化显示效果。 Simulink的模型具有层次性,通过底层子系统可以构建上层母系统。 Simulink提供了对子系统进行封装的功能,用户可以自定义子系统的图标和设置参数对话框。
2.2.2 Simulink仿真的基本过程 1.打开一个空白的Simulink模型窗口。 3.按照给定的框图修改编辑窗口中模块的参数。 4.将各个模块按给定的框图连接起来,搭建所需要的系统模型。 5.用菜单或在命令窗口键入命令进行仿真分析,在仿真的同时,可以观察仿真结果,如果发现有不正确的地方,可以停止仿真,对参数进行修正。 6.如果对结果满意,可以保存模型。
举例:将一正弦信号输出到示波器中
2.3 Simulink模块的处理 2.3.1 Simulink模块参数设置 图2.10 示波器属性对话框 图2.8 功能模块参数设置对话框
2.3.2 Simulink模块基本操作 1.模块选取 (1)选取单个模块; (2)选取多个模块; 2.模块复制 (1)在同一窗口内复制 (2)在不同的窗口之间复制 3.模块删除 选中模块,按Delete键即可。 删除多个模块,可以同时按住Shift键,再用鼠标选中多个模块,再按Delete键; 4.模块外形的调整 (1)改变大小 (2)转向 (3)给模块加阴影 5.模块名的处理 (1)是否显示模块名 (2)修改模块名 (3)改变模块名的位置 6.模块颜色设定 【Format】菜单中的【Foreground Color】可以改变模块的前景颜色,【Background Color】可以改变模块的背景颜色,而模型窗口的颜色可以通过【Screen Color】来改变。 7.模块属性设定 选中模块,打开【Edit】>【Block Properties】可以对模块进行属性设定,包括对Description、Priority、Tag、Open function、Attributes format string等属性的设定。
2.3.3 Simulink模块连接 1.模块间连线 在模块间连线,有以下几种情况: (1)连接两个模块 (2)模块间连线的调整 (3)在连线之间插入模块 (4)连线的分支 2.在连线上标示信息 在连线上标示的信息包括表示向量、显示数据类型和标记等。 (1)标示向量 (2)显示数据类型 (3)信号标记
2.4 Simulink仿真设置 单击【Simulation】菜单下面的【Configuration Parameters】项或者直接按快捷键“Ctrl+E”,便弹出设置界面 包括仿真器参数设置、工作空间数据导入/导出(Data Import/Export)设置等。下面对控制系统仿真中常用的仿真设置进行介绍。 图2.11 Simulink设置窗口
2.4.1 仿真器参数设置 仿真器参数设置可用于选择仿真开始时间、仿真结束时间、解法器及输出项等。对于一般的仿真,使用默认设置即可。 2.4.1 仿真器参数设置 仿真器参数设置可用于选择仿真开始时间、仿真结束时间、解法器及输出项等。对于一般的仿真,使用默认设置即可。 1.仿真时间(Simulation time)设置 需要设置的有仿真开始时间(Start time)和仿真结束时间(Stop time)。 2.仿真步长模式设置 可供选择的有“Variable-step”(变步长)和“Fixed-step”(固定步长)方式。 3.解法器设置 用户在“Solver”后面的下拉选项中可以选择变步长模式解法器或固定步长模式解法器。变步长模式解法器有:discrete、ode45、ode23、ode113、ode15s、ode23s、ode23t和ode23tb。 4.变步长的参数设置 对于变步长模式,用户常用的设置有:最大和最小步长参数、相对误差和绝对误差、初始步长以及过零控制。默认情况下,步长自动确定,用auto值表示。 5.固定步长的参数设置 对于固定步长模式,用户常用的设置有:(1)Multitasking模式;(2)Singletasking模式;(3)Auto模式
2.4.2 工作空间数据导入/导出设置 工作空间数据导入/导出(Data Import/Export)设置主要在Simulink与MATLAB工作空间交换数值时进行有关选项设置,可以设置以下三个选择项。 (1)Load from workspace:选中前面的复选框即可从MATLAB工作空间获取时间和输入变量,一般时间变量定义为t,输入变量定义为u。 (2)Save to workspace:用来设置保存在MATLAB工作空间的变量类型和变量名。 (3)Save options:用来设置存往工作空间的有关选项。
2.5 Simulink仿真举例 使用Simulink仿真的基本过程如下: (1)启动Simulink并打开模型编辑窗口; (2)将所需模块添加到模型中; (3)设置模块参数,并连接各个模块组成仿真模型; (4)设置系统仿真参数; (5)开始系统仿真; (6)观察仿真结果。
Simulink仿真举例(续)
2.6 本章小结 Simulink是一个非常友好的仿真工具,入门简单、使用方便。了解Simulink的构成,掌握Simulink的基本操作,是使用Simulink进行过程控制系统仿真的基础。 本章只介绍了Simulink最常用、最具有代表性基本内容,对于其他内容,读者可在掌握这些基本内容的基础上,通过Help文档和反复练习,触类旁通,达到熟练掌握、运用自如的境界。
习题与思考