《计算机仿真技术》实验指导书电气与信息工程学院实验中心1前言计算机仿真技术是利用计算机科学和技术的成果建立被仿真对象的模型,并在某些实验条件下对模型进行动态实验的一门综合性技术。它具有高效、安全、受环境条件的约束较少、可改变时间比例尺等优点,已成为分析、设计、运行、评价、培训系统(尤其是复杂系统)的重要工具,是自动化、电气工程及其自动化本科专业的专业必选课。计算机仿真离不开基本的专业理论知识和计算机编程,因此学习本门课程可以使同学们巩固相关专业领域的基本知识、原理和方法,训练编程能力,掌握仿真的基本概念,并将仿真技术应用在专业领域分析、问题的解决上面,为今后进一步的学习、科研打下基础。本实验课程注重实践和理论结合,在实验室上机完成全部课程。结合课程和专业特点,实验指导书选取了:熟悉MATLAB环境及基本运算、Matlab程序设计基本方法、MATLAB的图形绘制、Simulink建模与仿真、控制系统的分析(1)—时域分析、控制系统的分析(2)—根轨迹分析、控制系统的频率特性分析这几部分内容,作为学习仿真技术的主要内容。希望同学们在实验课前要做好预习工作,掌握基本方法和原理,实验课堂上做好每个实验,对实验结果要做好必要的记录和保存,课后认真完成实验报告。只要认真对待每一次实验练习,相信同学们在专业理论知识和编程仿真实践上真正会有所收获。2目录实验一Simulink建模与仿真(设计性实验).............................................................3实验二控制系统的分析(1)...................................................................................10实验三控制系统的分析(2)(设计性实验).........................................................13实验四控制系统的频率特性分析(设计性实验)...................................................173实验四Simulink建模与仿真(设计性实验)一、实验目的1、学习SIMULINK软件工具的使用方法;2、用SIMULINK仿真线性系统。二实验原理1、SIMULINK简介SIMULINK是MATLAB软件的扩展,它是实现动态系统建模和仿真的一个软件包,它与MATLAB语言的主要区别在于,其与用户交互接口是基于Windows的模型化图形输入,其结果是使得用户可以把更多的精力投入到系统模型的构建,而非语言的编程上。所谓模型化图形输入是指SIMULINK提供了一些按功能分类的基本的系统模块,用户只需要知道这些模块的输入输出及模块的功能,而不必考察模块内部是如何实现的,通过对这些基本模块的调用,再将它们连接起来就可以构成所需要的系统模型(以.mdl文件进行存取),进而进行仿真与分析。2、SIMULINK的启动进入SIMULINK界面,只要你在MATLAB命令窗口提示符下键入‘SIMULINK’,按回车键即可启动SIMULINK软件。在启动SIMULINK软件之后,SIMULINK的主要方块图库将显示在一个新的Windows中。如图4-1所示:►在MATLAB命令窗口中输入simulink:结果是在桌面上出现一个称为SimulinkLibraryBrowser的窗口,在这个窗口中列出了按功能分类的各种模块的名称。图4-1SIMULINK的主要方块图库43、SIMULINK的模块库介绍►SIMILINK模块库按功能进行分为以下8类子库:Continuous(连续模块)Discrete(离散模块)Function&Tables(函数和平台模块)Math(数学模块)Nonlinear(非线性模块)Signals&Systems(信号和系统模块)Sinks(接收器模块)Sources(输入源模块)4、SIMULINK简单模型的建立(1)建立模型窗口(2)将功能模块由模块库窗口复制到模型窗口(3)对模块进行连接,从而构成需要的系统模型5、SIMULINK功能模块的处理(1)模块库中的模块可以直接用鼠标进行拖曳(选中模块,按住鼠标左键不放)而放到模型窗口中进行处理。(2)在模型窗口中,选中模块,则其4个角会出现黑色标记。此时可以对模块进行以下的基本操作:移动:选中模块,按住鼠标左键将其拖曳到所需的位置即可。若要脱离线而移动,可按住shift键,再进行拖曳;复制:选中模块,然后按住鼠标右键进行拖曳即可复制同样的一个功能模块;删除:选中模块,按Delete键即可。若要删除多个模块,可以同时按住Shift键,再用鼠标选中多个模块,按Delete键即可。也可以用鼠标选取某区域,再按Delete键就可以把该区域中的所有模块和线等全部删除;转向:为了能够顺序连接功能模块的输入和输出端,功能模块有时需要转向。在菜单Format中选择FlipBlock旋转180度,选择RotateBlock顺时针旋转90度。或者直接按Ctrl+F键执行FlipBlock,按Ctrl+R键执行RotateBlock。改变大小:选中模块,对模块出现的4个黑色标记进行拖曳即可。模块命名:先用鼠标在需要更改的名称上单击一下,然后直接更改即可。名称在功能模块上的位置也可以变换180度,可以用Format菜单中的FlipName来实现,也可以直接通过鼠标进行拖曳。HideName可以隐藏模块名称。颜色设定:Format菜单中的ForegroundColor可以改变模块的前景颜色,BackgroundColor可以改变模块的背景颜色;而模型窗口的颜色可以通过ScreenColor来改变。5参数设定:用鼠标双击模块,就可以进入模块的参数设定窗口,从而对模块进行参数设定。参数设定窗口包含了该模块的基本功能帮助,为获得更详尽的帮助,可以点击其上的help按钮。通过对模块的参数设定,就可以获得需要的功能模块。属性设定:选中模块,打开Edit菜单的BlockProperties可以对模块进行属性设定。包括Description属性、Priority优先级属性、Tag属性、Openfunction属性、Attributesformatstring属性。其中Openfunction属性是一个很有用的属性,通过它指定一个函数名,则当该模块被双击之后,Simulink就会调用该函数执行,这种函数在MATLAB中称为回调函数。模块的输入输出信号:模块处理的信号包括标量信号和向量信号;标量信号是一种单一信号,而向量信号为一种复合信号,是多个信号的集合,它对应着系统中几条连线的合成。缺省情况下,大多数模块的输出都为标量信号,对于输入信号,模块都具有一种“智能”的识别功能,能自动进行匹配。某些模块通过对参数的设定,可以使模块输出向量信号。6、SIMULINK应用举例以具有双积分环节的系统G(S)为例,该系统的开环是不稳定的,为了使系统稳定,使用超前校正环节K(S)进行串联校正,见图4-2。图4-2系统结构框图在建模之前,你需要创建一个工作区域。创建一个工作区域的方法为,选择File项,然后再选择New,这将开始一个新的窗口,其窗口名为“Untiledl”,可以在该窗口内构造系统模型,并称这个窗口为工作窗口。为了得到这个系统的阶跃响应,可以由两个传递函数、一个求和点、一个输入源及两个输出观测点等6个部分组成这个系统。输入源的元件位于Sources库;传递函数与综合点方块都位于线性部分(Linear)库中。用同样方法,可将该库中的TransferFcn与Sum图形拖曳到工作空间,然后关闭Linear库;如何得到其仿真的输出结果。在Sinks库中有三个功能方块可用于显示或存储输出结果。Scope功能块可以像一台示波器,实时地显示任何信号的仿真结果。ToWorkspace功能块可以把输出值以矢量的形式存储在MATLAB工作空间中,这样可以在MATLAB环境下分析与绘制其输出结果。ToFile功能块可以把数据存储到一个给定名字的文件中。用同样方法,将)5()10(10)(1)(2SSSKSSG)(SK)(SG-+6Scope拖曳到工作空间,并关闭Sinks库窗口。打开Sum功能块,在ListofSigns处输入“+”、“—”符号。如果综合点超过了两个输入点,只要简单地输入其正、负号,即可自动地增加其相应地输入点。打开StepFcn功能块,有三个空白框可以填入参数。Steptime是阶跃响应的初始时间。此项可填0,即零时刻开始阶跃响应。另外两项为初始值(Initialvalue)和终值(Finalvalue)。这两项可分别输入0和1。打开工作空间功能块。输入y作为变量名(Variablename),对应最大行数项(Maximumnumberofrows),输入100。每一行对应一个时间间隔。在系统仿真过程中,可以输入0到9.9,间隔为0.1,生成100个点。最后,要将这些方块连接起来。除Sources与Sinks功能块外,所有其他方块中至少有一个输出点,即在方块旁有一个符号﹥指向外面,也至少有一个输入点,即在方块旁有一个符号﹥指向里面,Sources功能块没有输入点,只有输出点,而Sinks功能块没有输出点,因此它仅有一个输入点。系统的仿真方块图见图4-3。图4-3系统的仿真方块图7、SIMULINK仿真的运行构建好一个系统的模型之后,接下来的事情就是运行模型,得出仿真结果。运行一个仿真的完整过程分成三个步骤:设置仿真参数、启动仿真和仿真结果分析。(1)设置仿真参数和选择解法器设置仿真参数和选择解法器,选择Simulation菜单下的Parameters命令,就会弹出一个仿真参数对话框,它主要用三个页面来管理仿真的参数。I.Solver页,它允许用户设置仿真的开始和结束时间,选择解法器,说明解法器参数及选择一些输出选项。★仿真时间:注意这里的时间概念与真实的时间并不一样,只是计算机仿真中对时间的一种表示,比如10秒的仿真时间,如果采样步长定为0.1,则需要执行100步,若把步长7减小,则采样点数增加,那么实际的执行时间就会增加。一般仿真开始时间设为0,而结束时间视不同的因素而选择。总的说来,执行一次仿真要耗费的时间依赖于很多因素,包括模型的复杂程度、解法器及其步长的选择、计算机时钟的速度等等。★仿真步长模式:用户在Type后面的第一个下拉选项框中指定仿真的步长选取方式,可供选择的有Variable-step(变步长)和Fixed-step(固定步长)方式。变步长模式可以在仿真的过程中改变步长,提供误差控制和过零检测。固定步长模式在仿真过程中提供固定的步长,不提供误差控制和过零检测。用户还可以在第二个下拉选项框中选择对应模式下仿真所采用II.WorkspaceI/O页,作用是管理模型从MATLAB工作空间的输入和对它的输出。III.Diagnostics页,允许用户选择Simulink在仿真中显示的警告信息的等级。(2)、启动仿真I.设置仿真参数和选择解法器之后,就可以启动仿真而运行。选择Simulink菜单下的start选项来启动仿真,如果模型中有些参数没有定义,则会出现错误信息提示框。如果一切设置无误,则开始仿真运行,结束时系统会发出一鸣叫声。II.除了直接在SIMULINK环境下启动仿真外,还可以在MATLAB命令窗口中通过函数进行,格式如下:[t,x,y]=sim(‘模型文件名’,[totf],simset(‘参数1’,参数值1,‘参数2’,参数值2,…))其中to为仿真起始时间,tf为仿真终止时间。[t,x,y]为返回值,t为返回的时间向量值,x为返回的状态值,y为返回的输出向量值。simset定义了仿真参数,包括以下一些主要参数:AbsTol:默认值为1e-6设定绝对误差范围。Decimation:默认值为1,决定隔多少个点返回状态和输出值。Solver:解法器的选择。最后一步是