自动控制系统基本概念自动控制系统分类控制系统仿真基本概念MATLAB/Simulink下的控制系统仿真MATLAB中控制相关的工具箱上节提要MATLAB概述MATLAB桌面操作环境MATLAB数值计算关系运算和逻辑运算符号运算复数和复变函数运算MATLAB常用绘图命令MATLAB程序设计上节提要3.1引言3.2SIMULINK仿真概述3.3SIMULINK的模块库简介3.4SIMULINK功能模块的处理3.5SIMULINK仿真设置3.6SIMULINK仿真举例3.7SIMULINK自定义功能模块3.8S函数设计与应用第3章SIMULINK仿真内容提要Simulink的出现给控制系统分析与设计带来了福音。它有两个主要功能:Simu(仿真)和Link(连接),即该软件可以利用鼠标在模型窗口上绘制出所需要的控制系统模型,然后利用Simulink提供的功能来对系统进行仿真和分析。通过本章,对Simulink的基本模块和功能有一个全面了解,并能熟练Simulink的基本操作,为使用Simulink进行控制系统仿真打下基础。3.2Simulink仿真概述Simulink是MATLAB软件的扩展,它是实现动态系统建模和仿真的一个软件包,它与MATLAB语言的主要区别在于它与用户交互接口是基于Windows的模型化图形输入的,从而使得用户可以把更多的精力投入到系统模型的构建而非语言的编程上。所谓模型化图形输入是指Simulink提供了一些按功能分类的基本系统模块,用户只需要知道这些模块的输入、输出及模块的功能,而不必考察模块内部是如何实现的。通过对这些基本模块的调用,再将它们连接起来就可以构成所需要的系统模型(以.mdl文件进行存取),进而进行仿真与分析。3.2.1Simulink的启动与退出Simulink的启动有两种方式:一种是启动MATLAB后,单击MATLAB主窗口的快捷按钮来打开SimulinkLibraryBrowser窗口;另一种是在MATLAB命令窗口中输入“Simulink”,3.2.2Simulink建模仿真一个典型的Simulink模型由以下三种类型的模块构成:信号源模块信号源为系统的输入,它包括常数信号源、函数信号发生器(如正弦波和阶跃函数等)以及用户自己在MATLAB中创建的自定义信号。被模拟的系统模块系统模块作为仿真的中心模块,它是Simulink仿真建模所要解决的主要部分。输出显示模块3.3.1Simulink模块库分类Simulink模块库按功能分为16类子模块库3.4Simulink功能模块的处理图3.8“功能模块参数设置”对话框图3.10“示波器属性”对话窗框3.4.2Simulink模块的基本操作(1)移动:选中模块,按住鼠标左键将其拖曳到所需的位置即可。若要脱离线而移动,可按住Shift键再进行拖曳。(2)复制:选中模块,按住鼠标右键进行拖曳即可复制同样的一个功能模块。(3)删除:选中模块,按Delete键即可。若要删除多个模块,可以同时按住Shift键,再用鼠标选中多个模块,按Delete键即可;也可以用鼠标选取某区域,再按Delete键就可以把该区域中的所有模块和线等全部删除。(4)转向:为了能够顺序连接功能模块的输入和输出端,功能模块有时需要转向。在菜单Format中选择FlipBlock旋转180°,选择RotateBlock顺时针旋转90°;或者直接按Ctrl+F组合键执行FlipBlock,按Ctrl+R组合键执行RotateBlock。(5)改变大小:选中模块,对模块出现的4个黑色标记进行拖曳即可。(6)模块命名:先用鼠标在需要更改的名称上单击一下,然后直接更改即可。名称在功能模块上的位置也可以变换180°,可以用Format菜单中的FlipName来实现,也可以直接通过鼠标进行拖曳。HideName可以隐藏模块名称。(7)颜色设定:Format菜单中的ForegroundColor可以改变模块的前景颜色,BackgroundColor可以改变模块的背景颜色,而模型窗口的颜色可以通过ScreenColor来改变。(8)参数设定:用鼠标双击模块就可以进入模块的参数设定窗口,从而对模块进行参数设定。参数设定窗口包含了该模块的基本功能帮助,为获得更详尽的帮助,可以单击其上的“Help”按钮。通过对模块的参数设定,就可以获得需要的功能模块。(9)属性设定:选中模块,打开Edit菜单的BlockProperties可以对模块进行属性设定,包括对Description、Priority、Tag、Openfunction、Attributesformatstring等属性的设定。其中Openfunction属性是一个很有用的属性,通过它指定一个函数名,当模块被双击之后,Simulink就会调用该函数并执行,这种函数在MATLAB中称为回调函数。(10)模块的输入/输出信号:模块处理的信号包括标量信号和向量信号。标量信号是一种单一信号,而向量信号为一种复合信号,是多个信号的集合,它对应着系统中几条连线的合成。默认情况下,大多数模块的输出都为标量信号,对于输入信号,模块都具有一种“智能”的识别功能,能自动进行匹配。某些模块通过对参数的设定,可以使模块输出向量信号。3.4.3Simulink模块间的连线处理(1)改变粗细:线所以有粗细是因为线引出的信号可以是标量信号或向量信号,当选中Format菜单下的WideVectorLines时,线的粗细会根据线所引出的信号是标量还是向量而改变,如果信号为标量则为细线,若为向量则为粗线。选中VectorLineWidths则可以显示出向量引出线的宽度,即向量信号由多少个单一信号合成。(2)设定标签:只要在线上双击鼠标,即可输入该线的说明标签。也可以通过选中线,然后打开Edit菜单下的SignalProperties进行设定,其中Signalname属性的作用是标明信号的名称,设置这个名称反映在模型上的直接效果就是与该信号有关的端口相连的所有直线附近都会出现写有信号名称的标签。(3)线的折弯:按住Shift键,再用鼠标在要折弯的线处单击一下,就会出现圆圈,表示折点,利用折点就可以改变线的形状。(4)线的分支:按住鼠标右键,在需要分支的地方拉出即可,或者按住Ctrl键并在要建立分支的地方用鼠标拉出即可。3.5Simulink仿真设置图3.11Simulink设置窗口3.5.2工作空间数据导入/导出设置(1)Loadfromworkspace:选中前面的复选框即可从MATLAB工作空间获取时间和输入变量,一般时间变量定义为t,输入变量定义为u。Initialstate用来定义从MATLAB工作空间获得的状态初始值的变量名。(2)Savetoworkspace:用来设置存在MATLAB工作空间的变量类型和变量名,可以选择保存的选项有:时间、端口输出、状态和最终状态。选中选项前面的复选框并在选项后面的编辑框输入变量名,就会把相应数据保存到指定的变量中。常用的输出模块为信号与系统模块库(Signals&Systems)中的Out1模块和输出方式库(Sink)中的ToWorkspace模块。(3)Saveoptions:用来设置存往工作空间的有关选项3.6Simulink仿真举例求解微分方程的Simulink模型信号叠加的Simulink模型3.7Simulink自定义功能模块自定义功能模块的创建有以下两种方法。(1)一种方法是采用Signal&Systems模块库中的Subsystem功能模块,利用其编辑区设计组合新的功能模块。(2)另一种方法是将现有的多个功能模块组合起来,形成新的功能模块。自定义功能模块的封装首先选中Subsystem功能模块,再打开Edit菜单中的MaskSubsystem进入mask的编辑窗口,可以看出有3个标签页。1.Icon标签页它用于设定功能模块外观,最重要的部分是DrawingCommands,在该区域内可以用disp指令设定功能模块的文字名称,用plot指令画线,用dpoly指令画转换函数。2.Initialization标签页它用于设定输入数据窗口(PromptList),它主要用来设计输入提示(prompt)以及对应的变量名称(variable)。在prompt栏上输入变量的含义,其内容会显示在输入提示中。variable是仿真要用到的变量,该变量的值一直存于maskworkspace中,因此可以与其他程序相互传递。3.Documentation标签页它用于设计该功能模块的文字说明,主要针对完成的功能模块来编写相应的说明文字和Help。3.8S函数设计与应用S-Function是系统函数(SystemFunction)的简称,是一个动态系统的计算机语言描述。在MATLAB中,用户可以选择用M文件编写,也可以用C或mex文件编写,在这里只给大家介绍如何用M文件编写S-Function,使用C语言或mex文件编写的方法与M文件编写的方法基本类似。S-Function提供了扩展Simulink模块库的有力工具,它采用一种特定的调用语法,实现函数和Simulink解法器之间的交互。S-Function最广泛的用途是定制用户自己的Simulink模块。它的形式十分通用,能够支持连续系统、离散系统和混合系统。