1《自动控制原理》Simulink仿真实验指导书FeedbackControlSystemSimulationswithSimulink电气自动化专业适用2016.3山东科技大学泰山科技学院机电系自动化教研室武超sjh2100@sohu.com山东科技大学自动控制原理实验指导书[Simulink仿真]1Matlab/Simulink仿真首先点击桌面MATLAB图标(或者WIN系统开始图标中的MATLAB程序组的MATLAB),进入MATLAB桌面系统。MATLAB的桌面系统由桌面平台以及桌面组件共同构成,如图所示。图MATLAB工作环境平台在运行MATLAB后,当命令窗口为活动窗口时,将出现一个光标,光标的左侧还出现提示符“”,标志“”为命令提示符,表示MATLAB正在等待执行命令。注意:每个命令行键入完后,都必须按回车键↲!MATLAB会立即对其进行处理,并在命令窗口显示处理结果。点击工具栏中的Simulink选项、或者在编辑区命令行后键入simulink↲,就能够进入仿真环境,如图所示。图启动SIMULINK模块库浏览器展示了在你的系统中已经安装的Simulink模块库。你需要从模块库中复制模块到模型窗口。CommandWindow命令窗口--即时计算器CommandHistory历史命令窗口WorkspaceBrowser工作空间浏览器变量区Editor-DebuggerM文件编辑调试器编程区Simulink山东科技大学自动控制原理实验指导书[Simulink仿真]2图元件库第一步,新建文件;点击Simulink环境File/New/Model新建一个仿真平台。图untitled模型窗口(该模型无内容)第二步,选择元件;这时我们可以在上一步Simulink环境中选择我们所需的元件并拖放到Model平台中,具体做法是:点击左边的器件分类,在右侧找到我们所需的器件,用鼠标左键直接拉到Model平台中,或右键选择加入已经建立的文档,或者双击加入新的平台。可选元件连续模块库离散模块库数学运算库信号路由库接收器模块库输入源模块库山东科技大学自动控制原理实验指导书[Simulink仿真]3第三步,元件连接。仿真模型先根据要求加入全部模块,然后进行信号连接,设置模块参数,设置仿真参数。元件连接具体做法是移动鼠标到一个器件的连接点上,会出现一个十字形的光标,按住鼠标左键不放,一直到你所要连接另一个器件的连接点上,放开左键,这样线就连好了。如果想要引出分支线,可以要在需要分支的地方按住Ctrl键,然后按住鼠标左键就可以拉出一根分支线了。调整元件位置---Ctrl+R来做90度旋转。双击模块旁的文字可以改变模块名。在选中模块后,点击右键,在backgroundcolor中选择自己喜欢的模块的颜色。第四步,模块的参数设置。双击模块图标弹出参数设置对话框,然后按框中提示输入,若有不清楚的地方可以借助帮助(Help)来看相关功能,或者到FileExchange-MATLABCentral网站寻找答案。使用simulink建立系统模型举例首先从模块库中选取必须的模块并放置在一个模型文件中,然后调整参数,最后连接模块构成一个完成的系统,这样就可以仿真系统验证结果了。Ø选取模块:创建一个新模型文件(菜单file--new,或者使用ctrl-N),你会得到一个空白模型窗口。在simulink模型库浏览窗口(以下简称为simulink主窗口)点击source。山东科技大学自动控制原理实验指导书[Simulink仿真]4模型库浏览窗口会显示source模块库,source用于产生信号。把step模块拖到你的模型窗口的左边。山东科技大学自动控制原理实验指导书[Simulink仿真]5点击simulink主窗口的mathoperations,拖拽sum和gain模块到你的模型窗口并按顺序放在step模块的右侧。点击simulink主窗口的continuous,把pidcontroller模块放入你的模型窗口并放在gain模块的右侧。在同一个模块库中,把transferfunction模块拖入你的模型窗口并放在pidcontroller模块的右侧。点击simulink主窗口的sinks,把scope模块放在模型窗口的右侧。Ø修改模块参数山东科技大学自动控制原理实验指导书[Simulink仿真]6双击sum模块,因为需要一个反馈信号与输入相减,所以你需要在信号区域输入|+-,确认后关闭对话框。双击gain模块,增益gain修改为2.5,确认后关闭对话框。双击pidcontroller模块,比例系数proportiongain修改为1,积分系数integralgain修改为2,确认后关闭对话框。双击TransferFunction模块,修改分母多项式系数denominator为[124],确认后关闭对话框。现在模型的外观应该是下面这样子。双击文字PIDController修改名称为PIController。同样修改TransferFunction模块文字为Plant。现在所有的模块已经修改完毕了。模块应该如下图所示。山东科技大学自动控制原理实验指导书[Simulink仿真]7Ø连接模块从step模块输出端拖拽鼠标到sum的输入端,或者先点击step模块,然后在sum模块上使用ctrl和点击。连线应该是实线,如果是红色的虚线表示没有连接任何端子。如果划线错误,先鼠标左键选中连线,然后点击delete键。划线连接sum和gain模块。同样划线连接gain到picontroller,picontroller到plant,plant到scope。现在完成的连线如图所示。剩余的线是反馈信号的连接,需要连接plant到sum。这条线不同的是:首先因为这条线,并不一定简单地按照最短(直角)的路线,所以它需要在几个不同的地方绘制。其次,没有一个模块具有多余的输出端,所以这一行必须从现有的线中引出。山东科技大学自动控制原理实验指导书[Simulink仿真]8若要从一条已经存在的连线上引出另一条连线,首先把鼠标指针移到这个连线上,按下右键,拖动鼠标到目标端口,再松开右键。也可按住ctrl键并利用鼠标左键从已有连线中引出另一个连线。从sum模块直接拖拽一条线下来并释放鼠标,该行是不完整的。从该行的终点,单击并拖动到plant和scope之间的线上,然后松开鼠标。该模型现在应该出现如下。可在模型中的任何地方放置一个标签用于标示信号或信息。双击你想要标记的地方,或者双击上面的线,将获得一个空白文本框,编辑光标如下所示。输入字母r表示输入,在文本框外点击即可结束输入。同样标记偏差信号e,控制信号u,输出信号y。模型应该入图所示。山东科技大学自动控制原理实验指导书[Simulink仿真]9保存模型文件,选择file菜单中的SaveAs,输入你想保存的合法文件名后确认。.Ø仿真模型已经搭建完毕,可以进行模型仿真了,从simulation菜单中选择start启动运行仿真。稍后双击scope模块观察输出曲线。点击望远镜或者适合观察你可以看到如下图形。图用SIMULINK建立的惯性环节模型⑥若需要选择对象或删除对象,用鼠标左键在所选对象上单击一下,被选对象就会出现相应标记。若要删除模块或连线,首先要选中该模块过连线,然后再按Delete或Clear键。⑦仿真与显示若要开始仿真,单击起动仿真的按钮或选择Simulation→Start就可以了。山东科技大学自动控制原理实验指导书[Simulink仿真]10双击Scope模块就打开示波器,示波器上就显示出变量随时间变化的曲线。Scope模块多条曲线的颜色依次是黄、粉红、青、红、绿、深蓝。点击参数对话框,可以修改numberofaxes设置输入坐标系的数目。如果是2014版本,则可以根据参数对话框设置图例和颜色,如下图所示。图示波器窗口打开参数对话框坐标的自动刻度X-Y坐标变焦X坐标变焦把当前的坐标设置保存浮动示波器恢复保存过的坐标设置Y坐标变焦山东科技大学自动控制原理实验指导书[Simulink仿真]11Ø从MATLAB获取变量MATLAB命令行中的运行结果和workspace的结果可以用于simulink模型中。例如在MATLAB命令行中输入k=2.5。现在变量k可以用在gain模块中了。在你的simulink模型中,双击gain模块,在gain区域驶入k。MATLAB的语法规则类似于C语言,变量名、函数名都与大小写有关,即变量A和a是两个完全不同的变量。变量名可以由英语字母、数字和下划线组成,变量名应以英文字母开头,长度不大于31个。应该注意所有的函数名均由小写字母构成。命令或者代码的输入要在纯英文的输入法下进行。关闭对话框,注意现在simulink模型的gain模块显示的是变量k而不是数字了。山东科技大学自动控制原理实验指导书[Simulink仿真]12现在你可以再次运行仿真,观察scope输出去下,你发现结果是和刚才一样的。如果MATLAB中任何计算修改了变量,下一次运行simulink模型仿真的时候会使用新的变量值。例如在MATLAB命令行提示符后输入k=5。再次运行仿真,观察scope窗口,单击sutoscale按钮,你会发现输出变大了。包括变量和信号,整个系统的结果都可以在MATLAB和simulink之间进行交换和传递。山东科技大学自动控制原理实验指导书[Simulink仿真]13自动控制原理Simulink仿真系统常用模块一、Continuous(连续模块库):它包括以下7个功能模块:(1)Derivative:输入信号微分模块;★(无参数,用以代替纯微分环节s)(2)Integrator:输入信号积分模块;★(无参数,纯积分环节)(3)State-Space:线性状态空间系统模型;(4)Transfer-Fcn:线性传递函数模型;★(多项式形式)(5)TransportDelay:输入信号延时一个固定时间再输出;(6)VariableTransportDelay:输入信号延时一个可变时间再输出;(7)Zero-Pole:以零极点表示的传递函数模型。★二、Discrete(离散模块库)它包括以下9个功能模块:(1)DiscreteTransfer-Fcn:离散传递函数模型;★(2)DiscreteZero-Pole:以零极点表示的离散传递函数模型;★★★★★★★★山东科技大学自动控制原理实验指导书[Simulink仿真]14(3)DiscreteFilter:实现无限脉冲响应(IIR)与有限脉冲响应(FIR)滤波器;(4)DiscreteState-Space:离散状态空间系统模型;(5)First-OrderHold:实现一阶采样和保持器;(6)Memory:存储上一个时刻的状态值;(7)UnitDelay:一个采样周期的延时;(8)Discrete-timeIntegrator:离散时间积分器;(9)Zero-OrderHold:实现零阶采样和保持器。★三、Sinks(接收器模块库)Scope:示波器;★用于观察输出波形四、Sources(输入源模块库)它包括以下4个重要功能模块:(1)PulseGenerator:脉冲发生器;(2)Ramp:生成以常值增加或者减小的信号即斜坡函数信号;★系统的输入信号(matlab没有加速度信号,加速度信号需要使用ramp和积分环节二者串联合成)(3)SineWave:正弦波信号;★系统的输入信号(4)Step:阶跃波信号;★系统的输入信号五、SignalRouting(信号路由模块库)它包括以下2个重要功能模块:(1)Demux:将向量信号分离为输出信号;山东科技大学自动控制原理实验指导书[Simulink仿真]15(2)Mux:将几个输入信号组合为向量或总线输出信号;★信号合成可输出至示波器,这样一个示波器就可以显示多个信号波形。注意与创建总线信号区别开。Mux不是sum,不执行运算功能,像捆线的夹子。六、MathOperations(数学运算模块库)它包括以下2个