第四章第二部分 simulink工具箱的使用_第1页
第四章第二部分 simulink工具箱的使用_第2页
第四章第二部分 simulink工具箱的使用_第3页
第四章第二部分 simulink工具箱的使用_第4页
第四章第二部分 simulink工具箱的使用_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第四章第四章 工具箱简介与运用工具箱简介与运用 Simulink是MATLAB软件包之一,用于可视化的动态系统仿真,它适用于连续系统和离散系统,也适用于线性系统和非线性系统。它采用系统模块直观地描述系统典型环节,因此可十分方便地建立系统模型而不需要花较多时间编程。正由于这些特点,simulink广泛流行,被认为是最受欢迎的仿真软件。Simulink实际上是面向结构的系统仿真软件。利用Simulink进行系统仿真的步骤是: (1)启动Simulink,打开Simulink模块库和模型窗口; (2)在Simulink模型窗口下,创建系统框图模型并调整模块参数; (3)设置仿真参数,进行仿真; (4

2、)输出仿真结果。4.1 4.1 启动启动SimulinkSimulink 启动Simulink就是进入Simulink的工作环境,并且打开Simulink模块库和一个Simulink模型窗口,为建立系统的Simulink模型作准备。 启动Simulink的方法有三种:(1)在MATLAB COMMAND窗口下,直接键入Simulink;(2)单击MATLAB COMMAND窗口工具条上的Simulink图标;(3)在MATLAB COMMAND窗口菜单上选择FileNewModel运行后,立即弹出Simulink Library Browser(Simulink模块库浏览器),同时,还弹出一个

3、Untitled(未取名的)Simulink模型窗口,。若单击模块库浏览器窗口中新建图标,也可弹出一个Simulink模型窗口。 Simulink包含有10个子模块库:Sources(信号源),Sink(显示输出),Continuous(连续),Discrete(离散),FunctionTables(函数与表格),Math(数学),Nonlinear(非线性),SignalsSystems(信号与系统)以及BlocksetsToolboxes(模块组与工具箱),Demo(演示)。每个子模块库中又包含同类型的标准模型,这些标准模块可直接用于建立系统的Simulink框图模型用于仿真。 打开Sim

4、ulink模块库和子模块库的方法是: (1)用鼠标右键单击Simulink菜单,出现Open the Simulink Library菜单条; (2)鼠标单击上面菜单条后弹出Library:Simulink 3窗口,窗口内显各子模块图标; (3)鼠标单击子模块库图标,弹出该子模块库包含的全部标准模块。如单击图标Continuous,弹出Continuous(连续环节)的全部标准模块。 Simulink模块库各模块功能介绍见附录。 无名模型窗口(Untitled)是一个空白的模型窗口,这是为用户提供新建的系统的Simulink模型窗口。4.2 系统simulink模型的建立 系统Simulink

5、模型是一种以系统环节方块图为基础的方块图模型,十分直观。系统典型环节或常用环节的方块图在Simulink模块库中都可以找到,因此建立系统的Simulink模型十分方便和快捷的。 建立新的系统Simulink模型的主要步骤如下: (1)打开Simulink模型窗口(Untitled); (2)选取模块或模块组 在Simulink模型或模块库窗口内,用鼠标左键单击所需模块图标,则图标四角出现黑色小方点,表明该模块已被选中。 若要一次选取多个模块,则在Simulink模型或模块库窗口内,在这些模块相应的区域的一角按下鼠标左键不放,拖至该区域的另对角,这样一个矩形虚线框包围了听要选取的多个模块,松开鼠

6、标后,这些模块的四角上同时出现小方点,表明这些模块被一次选中。 (3)模块拷贝及删除 复制模块并移动至自己的模型窗口内,有两种操作方法: 鼠标拖动法如下: 打开模块库窗口或模型窗口。 将鼠标移至要拷贝的模块图标上,按下鼠标左键选定模块并保持。 移动鼠标将该模块图标拖至目标模型窗口一定位置。 松开鼠标左键,模块图标保留在目标模型窗口内,模块拷贝完成。 菜单命令复制方法如下: 打开模块库窗口或模型窗口,选定要复制的模块。 从Edit菜单中选取Copy命令。 用鼠标单击目标模型适当位置。 从Edit菜单中选取Paste命令,要拷贝的模块出现在目标模型窗口里。模块复制完成。 模块的删除有两种方法: 选

7、取要删除的模型,从Edit菜单中选取Clear和Cut命令,用Cut命令删除的模块允许使用Paste粘贴在另一个地方。 选定要删除的模块,并按Del键。 (4)模块调整 模块位置改变 用鼠标选取要移动的模块,按下左键并保持,拖动模块至期望位置,然后松开鼠标。 模块大小改变 用鼠标选取模块,并对其中任一四角的小方块出现斜双向箭头,拖动鼠标即可改变模块大小。 模块方向改变 首先选中某模块,然后选取菜单FormatRotate Block,使模块旋转90。若选择Flip Block,使该模块旋转180。应该注意,模块方向改变只是模块输入输出端口改变。 模块名显示与修改: 选定模块,选取菜单Forma

8、tHide Name,隐藏模型名;选择Show Name,显示模型名。 用鼠标左键单击模块名,则模块名区域呈编辑状态,通过文字光标可对模块名进行修改。 用户还可以通过菜单FormatFont对模型名的字体进行更改,通过菜单FormatFlip Name对模型名的位置进行更改。用户还可以对模块的字体、背景、屏幕颜色进行设置。(5)模块参数设置 用鼠标双击待设置参数的模块图标,打开模块对话框,按对话框栏目中提供的信息,输入或改变模块参数。 按Close,模块参数设置或修改完成。 各模块对话框需设置参数不同。(6)模块的连接 模块之间的连接线是信号线,每根连接线都表示标量或向量信号的传输,连接线的箭

9、头表示信号流向。连接线把一个模块的输出端口和另一个模块的输入端口连接起来,也可以利用分支线把一个模块的输出端口和几个模块的输入端口连接起来。 模块间连接线生成方法如下: 将鼠标置于某模块的输出端口上,立即呈现一个十字形光标; 拖动十字光标至另一模块的输入端口,在两模块之间生成一条带箭头的连线,模块连线完成。 分支线的生成方法如下: 用鼠标右键对准信号线分支点处按下并保持,信号线上显示十字形光标,拖动它会生成信号线的一条分支线。按此法,可生成多条分支线。(7) 模块文件的取名和保存 一旦把模块窗口的各模块连接起来,一个系统的Simulink模型的建立工作就已完成。 选择模块窗口菜单FileSav

10、e As后弹出一个Save As对话框,填入模型文件名,如hexam,按保存(s),模型以文件名hexam.mdl保存在用户选择的子目录内。 按上面方法建立一个简单系统的Simulink模型如图2.37所示(P92),文件名为hexam.mdl,模型窗口名为:hexam。4.3 系统仿真运行 在建立系统的Simulink框图模型后,就可以进行系统动态仿真。系统仿真运行有两种方式进行,一种是利用Simulink模型窗口的菜单Simulation下的选项; 二是在MATLAB COMMAND窗口下输入命令。这两种方法以第一种使用更方便、简单、直观,应用较普遍,第二种方法也有优点。下面分别介绍这两种

11、方法。一、Simulink模型窗口下仿真Simulink模型窗口下仿真的具体步骤如下: (1)打开系统的Simulink模型窗口,窗口内有已建立的系统框图模型。 (2)和模型窗口选取菜单SimulationParameters,弹出Simulation Parameters对活框,设置仿真参数。然后按对话框中Apply,再按Close关闭对话框。仿真参数设置上作完成。 (3)在对话框模型窗口内选取SimulationStart,仿真开始,在设置的仿真终止时间仿真结束。仿真开始后Start变为Pause,选择Pause,仿真暂停。终止仿真则选择SimulationStop菜单。 由上可知,在系统

12、Simulink模型窗口下仿真,主要工作是利用Simulation Parameters对话框设置仿真参数,仿真参数设置包括:solver(数值积分算法),Workspace I/O(工作空间输入/输出),Diagnostics(诊断)和Real-Time Workspace(实时工作空间)。下面介绍solver和Workspace I/O的有关仿真参数设置方法和内容。1Solver页设置内容如下: (1)Simulation time(仿真时间) Start time(仿真开始时间)和Stop time(仿真终止时间)可通过页内编辑框内输入相应数值,单位“秒“。 (2)solver opti

13、ons(仿真解法选择项) Type(类型):Variable-step(变步距)和Fixed-step(定步距)两种: (3)变步距解法选择项仿真算法 算法有discrete(no continuous state),ode45,ode23,ode113,odel5s,ode23s,ode23t,ode23tb。根据仿真系统特点不同,选择合适的仿真解法。仿真解法的选择通过相应的下拉列表框的选项很容易实现。 步距:Max step size(最大步距);Initial step size(初始步距)。 仿真计算精度:Relative tolerance(相对允差);Absolute tolera

14、nce(绝对允差)。(4)定步距解法选择项 仿真算法:discrete,ode5,ode4,ode3,ode2,ode1; 步距:Fixed step Size,可在编辑框内设置,缺省值:auto(自动); 模式:Auto(自动);Single Tasking(单一任务);Multi-Tasking(多任务)。 单一任务模式指模型模块采样速率相同。多任务模式制模型中多模块的采样速率不全相同。 (5)输出选择项(Output Options) 输出选择项有:Refine output(细化输出)、Produce additional output(产生附加输出)、Produce specifie

15、d output only(只产生指定输出)。 细化输出是指可以增加输出数据的点数,使输出数据更加平滑。而数据点数增加的数量由Refine factor(细化系数)来控制,它可由用户在编辑框内设置。如设置Refine factor为2,则在每个步长中间插入一个点使输出数据细化等。产生附加输出是允许在个附近时刻产生输出,附加时刻可通过Output time编辑框由用户没置,没置时可采用附加时刻表达式或附加时刻向量。产生指定输出是只有在指定的时刻产生仿真输出,指定时刻可通过Output time编辑框由用户设置。 后两种方式会改变仿真步长来和用户设置的时刻相适应。2Workspace I/O页设置

16、内容如下: (1)Load from workspace (从工作空间调入数据) 在仿真过程中,从MATLAB工作空间调入数据到Simulink框图模型的输入端口,因此这个设置要求Simulink框图模型中有相应的输入端口,即应有信号与系统模块库中的In1模块。设置时,首先选中复选框input,然后在其右边的编辑框中键入输入数据的变量名。 输入数据有以下几种格式供选择:矩阵、结构、包含时间数据的结构。 若输入数据采用矩阵形式,且采用缺省方式t,u和t为一维列向量,输入矩阵u具有和输入端口相同数量的列数,行数和t向量相同。在系统仿真之前,该数据已在MATLAB工作空间中。 (P94 例2.10)

17、(2) Save to workspace(保存数据到工作空间) 仿真结果的数据可以保存到MATLAB工作空间,这些数据包括:Time(时间)、States(状态)、Output(系统输出)和Final state(最终状态)。这些选项可在Workspace I/O页的 Save to workspace框内的复选框内选择,右边的编辑框内可键入相应的变量名。应该注意的是若选择Output,模型框图中必须有相应的输出端口。例如,图2.40所示系统simulink框图模型没有输出端口,仿真运行后,没有yout变量数据保留在MATLAB工作空间内。若将其改为图2.42所示的框图模型,模型中有一个输出

18、端口,在Simulink Parameters对话框Workspace I/O页内点击Output复选框并在右边编辑框内填入相应变量名y1,然后在Save options框内,选择FormatArray。仿真运行后,在MATLAB工作空间内出现了变量y1并可直接查看y1的数据。当然,也可以选择Structure(结构)、Structure with Time(带时间的结构)输出数据格式。二、在MATLAB COMMAND窗口下的仿真运行在MATLABCOMMAND窗口下直接运行一个已存在的系统Simulink框图模型的方法是调用函数SIM,调用格式为 t,x,y=sim(model,times

19、pan,option,ut) 其中,t为返回的仿真时间向量;x为返回的状态矩阵;y为返回的输出矩阵,每一列对应一个输出端口(Output)的输出数据,若模型中无输出端口,则该项为空矩阵;model为系统Simulink模型文件名;timespan为仿真时间,有三种形式:Tfinal:仿真终止时间,隐含仿真开始时间为0,Tstart,Tfinal:仿真开始、终止时间,Tstart,Ouputtime,Tfinal:仿真开始时间、返回时间t向量的时间点,仿真终止时间;option为仿真参数选择项,由函数SIMSET设置;ut为选择外部产生输入,ut=T, u1, un 上述参数中timespan,

20、option,ut通常缺省,这时仿真参数由框图模型的对话水Simulation Parameters设置,仿真时仍以设置的参数运行。 这种方式不如在Simulink模型窗口的运行仿真直观,且参数设置要用函数引SIMSET,较麻烦。4.4 仿真结果的输出和保存 Simulink允许用户通过下面三种方式快捷地获得仿真参数的动态轨迹,观察仿真结果。1. 利用Scope模块 Scope模块是Simulink中用来显示信号动态过程的主要模块,可以自动以不同颜色来区分不同信号:黄色,紫色,cyan(灰色),red,green,darkblue(深蓝色)。双击Scope模块,弹出一个Scope窗口,该窗口显

21、示动态信号时间曲线。 Scope窗口是一个图形窗口,上方有一排功能按钮包括:整体缩放,x轴缩放,Y轴缩放,自动尺度调整,存储轴设置,属性,打印。通过这些按钮的操作可实现对图形属性的修改。这些操作按钮的主要功能如下:以下介绍对图形主要属性的设置和修改。(1) y轴刻度范围及图形标题 鼠标右键点击图形显示区或轴上,弹出一个菜单条,选择Axes properties,弹出一个对话框,在编辑框内键入轴最小值和最大值及图形标题(Title)。 (2) Scope属性设置 鼠标点击功能按钮Properties(属性),弹出Scope properties对话框。用户可在General页内设置轴数量,时间范

22、围及轴标注方式。 通过Number of axes编辑框设置y轴的数量。但值得注意的是:y轴数量和Scope图形窗口内显示区数量及Scope模块输入端口数量是一致的。通过Time range编辑框设置X轴显示时间范围,输入auto,则X轴时间范围和仿真时间相同。通过Tick labels下拉框选择轴标注方法。选中floating scope会使Simulink模型中的Scope模块输入端口“悬挂”起来。 通过SamplingDecimation可选择数据显示系数,如输入2表示每隔一个点的数据被调用绘制曲线。选择SampleSample time并输入一个数如0.01,则按0.01秒取一个数据绘

23、制曲线。值得注意的是当采用定步距仿真时,应将Simulation Parameters对话框Solver页中Mode项选为Single Tasking(单一任务),避免仿真运行出错。 用户还可以在Data history页对显示的数据段进行设置和对数据存放进行选择和设置。2利用Out模块利用SignalsSystems模块库中的Out1模块可实现将仿真数据保存在MATLAB工作空间中,供调用和分析。例如,要使变量u和变量y的仿真数据保存在MATLAB工作空间,并用图形显示其动态过程。方法是:(1)建立系统模型,变量u和变量y分别连接Out1模块和Out2模块。(2)打开Simulation P

24、arameters对话框。(3)激活Workspace I/O页,选中复选框Output,在右边的编辑框内键入输出变量名yout,关闭对话框。同时选中复选框Time,在编辑框内键入tout。(4)在模型窗口内,点击菜单SimulationStart,运行仿真模型。这样,仿真时间向量tout和输出yout均存放在MATLAB工作空间内。(5)查阅数据yout:可在MATLAB COMMAND窗口的工作空间内,键入变量名yout,它是两列的矩阵,第一列为变量u,第二列为变量y。 (6)观察u和y的仿真曲线,可键入: plot(tout,yout) 3用To Workspace模块 建一系统的Sim

25、ulink框图,如图,系统的参数不是利用Simulation Parameters对话框存放在MATLAB工作空间,而是利用Sink模块库里的To Workspace模块。采用这种方式可以输出系统中任意一个信号。仿真运行后,输出数据outdata已存放在MATLAB工作空间内。 应该注意,送入To Workspace模块的变量依次为t,u,y,因此outdata是一个三列矩阵,第一列变量为t,第二列和第三列分别是变量u和变量y。 为了观察变量u和y的动态变化过程,可绘制仿真曲线。在MATLAB COMMAND窗口下,键入一批简单命令: toutdata(:,1); uoutdata(:,2);

26、 youtdata(:,3); plot(t,u,t,y) grid模块Clock的功能是在仿真的每一步输出仿真时间,仿真结果还可以.mat以文件的形式保存下来供以后调用,一般采用两种方法: (1)利用MATLAB命令函数SAVE,如在MATLAB COMMAND窗口的工作空间内,已存放仿真数据outdata,则在MATLAB工作空间内键入: save datafile outdata 则仿真数据outdata存放在datafile.mat文件中。 (2)利用Sink模块库中的To File模块,连接方法同To Workspace。4.3 系统的创建和封装 对于一些复杂的系统Simulink框

27、图模型,我们可以把模型中完成特定功能的某些模块组合起来创建一新的模块,这新的模块称为子系统(SubSystem)。子系统减少了系统Simulink框图中模块数量,使模型的层次、结构及功能更加清晰,一目了然。子系统形成的新的模块,也可以被其他Simulink模型调用,具有可移植性。子系统有两种:未封装的子系统和封装的子系统,后者带有对话框交互式地设置子系统参数。前者没有对话框,用户可以打开子系统相关模块直接设置参数。这两种子系统在Simulink框图模型中均有应用。一、子系统的创建 用户通过下面方式创建一个不带对话框(未封装)的子系统。1通过Subsystem模块创建子系统 子系统是完成一定功能

28、或运算的若干个模块的组合,创建一个子系统必须首先明确子系统的功能、输入和输出参数,然后按下列步骤创建子系统。 下面以PID控制器子系统模块为例。(1)确定子系统的功能、输入和输出参数 PID控制器的数学描述为e(t)为误差信号;u(t)为控制信号;KP为比例系数;Ti为积分时间常数;Td为微分时间常数;子系统以e(t)为输入,u(t)为输出。)()(1)()(0dttdeTdeTteKtudtip(2)从Sinmlink Library Browser中打开Simulink模块库窗口:Library:Simulink3;双击Signals&Systems图标,弹出SignalsSyst

29、ems模块库窗口,将SubSystem模块拷贝至一个未定名的Simulink模型窗口,将模块名改为PID Controller。选择菜单FileSave(或Save As)。(3)在模型窗口内双击SubSystem模块,弹出一个子系统窗口PID Controller。(4)在于系统窗口PID Controller内编辑PID控制器的Simulink模型如图所示,并选择菜单FileSave。(5)子系统PID Controller的创建工作完成,PID Controller子系统模块,子系统模块有一个输入和一个输出端口,该模块可以在任一Simulink框图模型中使用。(6)子系统参数设置和调整:

30、打开PID Controller子系统框图模型,双击KP,1/Ti和Td图标,通过各自对话框输入参数。2. 在存在的系统Simulink模型上将多个模块组合起来生成子系统(1)在系统模型图上,将鼠标同时选择要组合的模块;(2)选择菜单EditCreate subsystem,执行后所选择的模块全部消失,代替它们的是一个SubSystem模块图标;(3)修改子系统名,用鼠标选中图标SubSystem下面的文字,键入子系统名即可;(4)选择菜单FileSave后,带有子系统的系统模型保存下来。如例子: 原系统框图模型生成子系统框图模型子系统模型二、子系统的封装 以上所建立的子系统,设置参数时,需要

31、打开每个模块,通过每个模块对话框设置子系统的参数。Simulink提供了完整的子系统封装工具。所谓子系统的封装就是给已建立的子系统定制模块图标和对话框,用户通过对话框和图标一目了然地了解子系统功能和设置参数等,而不必了解子系统的具体结构。 下面介绍子系统的封装的方法和步骤: (1)在MATLAB COMMAND窗口下,打开包含子系统的模型窗口。 (2)在模型窗口中,用鼠标单击子系统模块图标,选中子系统模块(四周出现小方块)。 (3)在模型窗口,选择菜单EditMask subsystem,弹出Mask Editor对话框。Mask Editor对话框共有3项:Icon,Initializati

32、on和Documentation。子系统封装就是填写这三项。1Initialization页这一页主要对子系统模块对话框主要内容进行定义和制作,包括用户设置的参数变量名Variable及提示符号Prompt等。 例PID控制器的三个参数需通过对话框由用户设置:KP,Ti,Td。 在Prompt编辑框内键入“Proportional”,在Variable编辑框内键入KP,Control Type项:Edit Assignment项:Evaluate,然后按Add按钮; 在Prompt编辑框内键入Integnal Time Coeff,在Variable编辑框内键入“Ti”,然后按Add按钮; 在

33、Prompt编辑框内键人“Derivative Time Coeff”,在Variable编辑框内键入“Td”; 按对话框中的OK按钮结束Initialization页的设置; 在框图模型窗口,双击子系统模块图标即可弹出一个对话框。 Initialization页内有两个选项:Control Type和Assignment。Control Type(控制类型)有三种:Edit(编辑框),CheckBox(复选框)和Popup(弹出式菜单)。通常选择Edit,同时Assignment选择Evaluate。 Initialization页内还有Initialization Commands编辑框,

34、用以填入初始化命令,初学者可以不填写。2. Icon页 本页功能是对子系统模块的图标进行装饰,如图形,图像或文字,使子系统外观上具有明显特征。它包含两个编辑框Mask Type和Drawing Commands,还有几个设置模型图标特征的下拉列表菜单框。 在Drawing Commands编辑框内可用plot命令绘制图标上图形,用disk和text等命令显示文字等。 如在编辑框内填入: plot(0 1 21,0 0 1) 画出一条折线 disp(KP*(1+1/(Ti*s)+Td*s)*e) 文字表示PID公式3Documentation页 在Documentation内有三个编辑框:Mas

35、k type,Block description和Block help。 Mask Type编辑框用来设置于系统模块的封装类型,可输入字符串,输入的字符串加上mask字符串显示在封装子系统对话框顶部。 Block description编辑框用来输入显示在封装子系统对话框顶部的文本内容。 Block help编辑框用来输入子系统模块的帮助文本的内容。 至此,子系统的封装工作全部完成。为了检验封装结果,再回到原来的模型窗口,子系统模块PID Controller的图标已改变,如图所示。双击该图标弹出一个对话框。用户可以通过该对话框交互式地设置PID控制器参数KP,Ti,Td。该模块可以在任何Simulink框图中使用。封装后子系统模块对话框三、子系统模块属性 封装后的子系统(Subsystem)模块有一个参数对话框,双击子系统模块图标会立即弹出模块参数对话框(Block Paramete

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论