您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 国内外标准规范 > matlab控制系统仿真课件.ppt
第六章基于Simulink的建模与仿真6.1SIMULINK概述6.2SIMULINK快速入门6.3功能模块的处理6.4线的处理6.5仿真参数的设定6.6仿真结果分析6.7创建子系统(Subsystem)6.8Simulink模块库介绍6.9s-function的设计如果控制系统的结构很复杂,若不借助专用的控制系统建模软件,在过去很难准确地把一个控制系统的复杂模型输入给计算机,然后对之进行进一步的分析与仿真。1990年MathWorks软件公司为MATLAB提供了新的控制系统模型图形输入与仿真工具,并定名为SIMULAB,该工具很快在控制界就有了广泛的应用,但因其名字与著名的SIMULA软件类似,所以1992年以来正式改名为SIMULINK。6.1SIMULINK概述该名字的含义是相当直观的,因为它较明显地表明此软件的两个显著功能:SIMU(仿真)与LINK(连接)。即可以利用鼠标在模型窗口上“画”特点:1.SIMULINK为用户提供了很方便的图形化功能模块,以便连接成一个模拟系统,简化设计的流程,减轻设计负担。2.扩充性很强。SIMULINK能够用MATLAB自身的语言或C、FORTRAN语言,根据S函数的标准格式,写成用户自定义的功能模块。如果学会了S函数,就能充分发挥SIMULINK的功能。否则只能用模块库中的模块去拼出系统。出所需的控制系统模型,然后利用SIMULINK提供的功能来对系统进行仿真。6.2SIMULINK快速入门一、启动SIMULINK二、窗口介绍1.库浏览窗口(SimulinkLibraryBrowser)2.模型窗口3.图形输出窗口三、SIMULINK模型设计示例步骤:1.将功能模块放入空白设计区域内组合完成系统。2.执行Simulation菜单中的Start命令。示例一:以建立一个简单的PID控制器为例,说明Simulink从建模到仿真的步骤:(1)在Simulink窗口下的File菜单中选择New命令创建一个Untitled空白窗。(2)双击信号源Source子库打开信号源模块库,将信号发生器SignalGenerator模块从子库窗口拷贝到Untitled窗口中。具体方法:先把鼠标的光标移到信号发生器的方框图中,按住鼠标的左键,将它拖到新的窗口中,然后松开,完成复制;并选择Sine函数作为信号源。(3)采取同样方法,可以将其它模块拷贝到Untitled窗口各模块所在的位置。说明如下:加法器Sum:在Simulink/Math/子库中。PID控制器:在/Simulinkextras/AdditionalLinear子模型库中,双击打开该控制器可分别设定P,I,D参数值。传递函数TransferFcn:在Simulink/continuous/模型库中,双击打开该函数,并设定:Numerator:[13],Denominator:[123]。示波器Scope:在Sinks模型库中。(4)将各个拷贝到的模块按上图所示的方式连接起来、构成一个闭环PID控制器。程序名:mex3_5_f1.mdl示例二:程序名:mex3_5_f2.mdl示例三:6.3功能模块的处理1.移动将光标置于待移动的模块图标上,然后按住鼠标左键将模块拖到合适的地方即可。模块移动时,它与其它模块的连线也随之移动。2.选定选定一个环节,单击待选模块,模块四个角便出现小黑块,表示模块被选定。如果要选择一组模块,首先按住鼠标左键拉出一个矩形虚线框,将所有待选模块包在其中,然后松开,则矩形框里的所有模块同时被选中。3.模块的删除、剪切和拷贝选定一个模块,可以作如下操作。删除:按Delete键,可以将选定的模块删除。剪切:选择Edit菜单中的Cut命令,可以将被选定模块移到Windows的剪切板上。可供Paste命令重新粘贴。拷贝:选择Edit菜单中的Copy命令,然后将光标移到要粘贴的地方,再运行Edit菜单中的Paste命令,就会在选定的位置上复制出相应的模块。Simulink本身带有一种更简单的复制操作:●用鼠标右键把待拷贝的模块拖到希望位置后松开,便完成拷贝工作。●或者按住Ctrl键和鼠标左键把待拷贝的模块拖到希望位置后松开,便完成拷贝工作。4.模块的翻转为了能够顺序连接模块的输出与输入端,有时需要将模块转向。在菜单Format中选择FlipBlock命令则旋转180°;选择RotateBlock命令则顺时旋转90°。5.改变大小6.模块的命名先单击需要更改的名称,然后直接更改即可。可以采用Format下的FlipName命令使名称在功能模块上的位置翻转180°。若要隐藏模块名称则用Format下的HideName命令。7.颜色设定用Format→ForegroundColor命令改变前景颜色;用Format→Background命令改变背景颜色;空白区域的颜色可以用Format→ScreenColor命令设定。8.参数设定(BlockParameters)设置每一个模块的特定参数。例如:双击一个模块,可直接打开该模块的BlockParameters对话框。在菜单Edit中选择BlockParameters,可打开该模块的BlockParameters对话框。参数设定窗口包含了该模块的基本功能帮助,为获得更详尽的帮助,可以点击其上的help按钮。通过对模块的参数设定,就可以获得需要的功能模块。9.属性设定(BlockProperties)包括Description属性、Priority优先级属性、Tag属性、Openfunction属性、Attributesformatstring属性。其中Openfunction属性是一个很有用的属性,通过它指定一个函数名,则当该模块被双击之后,Simulink就会调用该函数执行,这种函数在MATLAB中称为回调函数。属性设定(BlockProperties)Description(描述):简要描述模块的作用;Priority(优先次序):在模型中相对其它模块的执行优先次序;Tag(标记):一个随模块一起保存的普通文本字段;Openfunction(打开函数):当用户打开该模块要调用的MATLAB(m-)函数。Attributesformatstring(属性格式串):该参数指定哪些属性显示在模块图标下。例如:Priority=%priority\nSampleTime=%sampletime6.4线的处理在Simulink中,线具有连接功能模块的功能。用鼠标可以在功能模块的输入与输出之间连线,所画的线可以达到以下功能:1.改变粗细选中Format→WideVectorLines命令,则线的粗细会根据在线上传输的信号特性而变化。如果传输的为数值,则为细线;如果传输的为向量,则为粗线。2.设定标签在线上双击,即可输入该线的说明标签。4.线的分支(按住ctrl键)有三种方法:其一是按住Ctrl键,在要建立分支的地方用鼠标拉出即可;另一种方式是在要建立分支的地方用鼠标右键拉出;第三种方式是由输入端拉线到分支点。3.线的折弯(按住shift键)按住shift键,再用鼠标在要折弯的地方单击一下,就会出现圆圈。该圆圈表示折点,利用该折点就可以改变线的形状。6.5仿真参数的设定(SimulationParameters)一、解题器(Solver)参数的设定为了求解不同的模型,Simulink提供了几种微分方程数值解的算法以供选择。在给定的时间和初始条件下,通过数值积分算法,可以计算每一步的解,并验证该解是否满足给定的容许误差。如果满足,则该解就是一个正确的解,否则就继续进行直到得出的解满足要求为止。一、解题器(Solver)参数的设定(1)在仿真时间(simulationtime)中选择:●starttime——开始时间;●stoptime——停止时间;(2)在解题选项(solveroptions)中选择:●变步长(variable-step)或固定步长(fixed-step);●Maxstepsize——最大步长;●initialstepsize——初始步长。Runge-Kutta仿真方法包括变步长算法和固定步长算法两种。一般在仿真初始阶段,响应量变化快,需要小步长。随着仿真进入稳态,响应量变化很小。为了减少运算积累误差,一般采用大步长。在Runge-Kutta算法中,采用了自动调整步长的方法,可以设置auto由算法自动选择步长。只有当需要以某个步长仿真时,才选择固定步长。最大步长与起始步长由白己给定;如果选择了可变步长,最大步长和起始步长变为“自动调整”(auto);如果选择了固定步长,最大步长与初始步长都等于固定步长。●仿真算法—8种仿真方法;●Relativetolerance—相对容许误差;它是指误差相对于状态的值,是一个百分比,缺省值为1e-3,表示状态的计算值要精确到0.1%。●absolutetolerance—绝对容许误差;表示误差值的门限,或者是说在状态值为零的情况下,可以接受的误差。如果它被设成了auto,那么simulink为每一个状态设置初始绝对误差为1e-6。在每一步的积分运算中,程序都会把解出的值与预期值相减得到误差e,且必须满足e<=max(Reltol*abs(y(i)),AbsTol(i))时,才算是一个成功的运算步骤。(3)在输出选项(Outputoptions)中选择:●refineoutput——平滑输出。其意义是在仿真输出太稀松时,simulink会产生额外的精细输出,这一点就像插值处理一样。如果选择了该项,可以选择后面的refinefactor(平滑参数)的数值。该数值越大,输出越平滑。●produceadditionaloutput——产生附加输出。它允许用户直接指定产生输出的时间点。一旦选择了该项,则在它的右边出现一个outputtimes编辑框,在这里用户指定额外的仿真输出点,它既可以是一个时间向量,也可以是表达式。与精细因子相比,这个选项会改变仿真的步长。●producespecialoutputonly——只产生特殊输出。它的意思是让simulink只在指定的时间点上产生输出。为此解法器要调整仿真步长以使之和指定的时间点重合。这个选项在比较不同的仿真时可以确保它们在相同的时间输出。仿真参数的设定(SimulationParameters)二、工作空间输入/输出(WorkspaceI/O)参数的设定此页主要用来设置SIMULINK与MATLAB工作空间交换数值的有关选项。1)Loadfromworkspace:选中前面的复选框即可从MATLAB工作空间获取时间和输入变量,一般时间变量定义为t,输入变量定义为u。Initialstate用来定义从MATLAB工作空间获得的状态初始值的变量名。2)Savetoworkspace:用来设置存往MATLAB工作空间的变量类型和变量名,选中变量类型前的复选框使相应的变量有效。一般存往工作空间的变量包括输出时间向量(Time)、状态向量(States)和输出变量(Output)。Finalstate用来定义将系统稳态值存往工作空间所使用的变量名。3)Saveoption:用来设置存往工作空间的有关选项。●Limitrowstolast用来设定SIMULINK仿真结果最终可存往MATLAB工作空间的变量的规模,对于向量而言即其维数,对于矩阵而言即秩;●Decimation设定了一个亚采样因子,它的缺省值为1,也就是对每一个仿真时间点产生值都保存;若为2,则是每隔一个仿真时刻才保存一个值。●Format用来说明返回数据的格式,包括矩阵matrix、结构struct及带时间的结构structwithtime。仿真参数的设定(SimulationParameters)三、诊断页参数设定此页分成两个部分:仿真选项和配置选项。配置选项下的列表框主要列举了一些常见的事件类型,以及当SIMULINK检查到这些事件时给予的处理。仿真选项options主要包括是否进行一致性检验、是否禁用过零检测。◆使用
本文标题:matlab控制系统仿真课件.ppt
链接地址:https://www.777doc.com/doc-3656335 .html