版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,第三章 仿真工具simulink,simulink是用来进行动态系统建模、仿真和分析的软件包,3.1 simulink 概述,simulink为用户提供了用方框图进行系统建模的窗口。它有着丰富的模块库,在做仿真时,用户只需利用鼠标的点击与拖曳功能,将模块库中的各种标准模块复制到simulink的模型窗口中,就可以轻而易举在完成模型的创建。 在 simulink 环境中,用户可以在仿真进程中改变感兴趣的参数,实时地观察系统行为的变化。它还有scop模块与其它的画图模块,在进行仿真的同时,就可以观看到仿真结果。 与传统的仿真软件采用微分方程或者差分方程建模相比,它具有更直观形象、更简单方便与更
2、灵活的优点,2,启动与退出,在matlab命令窗口中输入“simulink”命令然后回车; 选择工具栏中的 选项即可进入simulink模块库浏览器; 直接从matlab命令窗口中选取“file edit model”也可进入simulink仿真环境,模型完成后,利用save或save as命令将模型文件存盘(扩展名为.mdl)后即可。 退出simulink,只要关闭所有模型编辑窗口和模块浏览器即可,3,6.2 simulink模块库浏览器,一、模块库浏览器界面,simulink模块库浏览器界面可分为5部分: 菜单栏区:其主菜单有文件(file)、编辑(edit)、查看(view)、帮助(he
3、lp)等4项。 file:含new(新建模型或者库)、open(打开)、close(关闭)和preferences(属性设置)4项; edit:含add to the current model(添加到当前模型)、find(查找)和find next(查找下一个)3项; view:由toolbar(工具栏),status bar(状态栏),description(文字说明栏) ,stay on top(将浏览器放在桌面最上层) view:collapse entire browser(模块库压缩显示), expand entire browser(模块库展开显示),large icons(大图
4、标) ,small icons(小图标),show parameters for selection(显示所选模块的参数) ; help(帮助,4,工具栏区:含4个按钮: 是新建与打开按钮, 是将模块放在桌面最上层按钮,find是用来查找模块库中的模块按钮。 文字说明区:对所选模块的文字说明; 模块库区:含模块库及其相应的模块组; 状态栏区:即最下方显示ready区,用来显示浏览器状态,5,二、基本模块库的分类及其用途,simulink 有13类基本模块库,分别为: continuous(连续模块组)、 discontinuities(非连续模块组)、 discrete(离散模块组)、 loo
5、k-up tables(表格模块组)、 math operations(数学运算模块组)、 model verification(模型检验模块组)、 model-wide utilities(公用模块组)、 ports communications blockset:通信系统仿真模块; dsp blockset:数字信号处理工具箱; fuzzy logic toolbox:模糊逻辑控制工具箱; neural network blockset:神经网络工具箱; simulink extras:补充simulink公共模块库; stateflow:用来对复杂的事件驱动系统进行建模和仿真; real
6、-time workshop (简称rtw):可以直接将simulink模型框图和stateflow的状态图转换成高效优化的程序代码,21,6.3 用simulink建立系统模型,建立简单模型的步骤: 建立模型窗口; 将功能模块从模块库中复制到模型窗口; 对模块进行连接,构成所需要的系统模型。 simulink模型在视觉上表现为直观的方框图,在文件上则是扩展名为mdl的ascii代码,在数学上表现为微分方程或差分方程,在行为上则模拟了实际系统的动态特性,22,一、模块的复制、移动与删除,模块的复制包括两种:一是从模块库中将标准模块复制到模型窗口中,另一种是在模型窗口中将模型再复制,1、模块的复
7、制,从模块库中复制标准模块:从模块库中选中所需模块,按住鼠标左键不放,将模块拖至模型窗口再松开鼠标左键则完成了复制; 在模型窗口中再复制有3种方法: 选中待复制模块,运行“edit copy”,然后将光标移至将要粘贴的地方,再运行“edit paste”,就完成复制;或者选中待复制模块,直接用ctrl +c然后再ctrl +v也可以; 用鼠标选取待复制模块后,按住“ctrl”键不放,把该模块拖至目标位置后,松开左键即完成复制; 用鼠标选取待复制模块后,按住鼠标右键不放,把该模块拖至目标位置后,松开右键即完成复制,23,将光标置于待移动的模块图标上,按住鼠标左键不放,把该模块拖至目标位置后,松开
8、左键就完成了移动,2、模块的移动,选中模块,按delete键就可删除或点击鼠标右键,选择cut也可对模块进行剪切,3、模块的删除,用鼠标选择模块图标,再将鼠标移到模块对象四周的控制小块处,当鼠标指针变成指向四周的小箭头时,按住鼠标左键不放,拖至合适大小即可,四、模块外形调整,1、改变模块对象大小,24,在simulink中,模块输入端口位于模块左侧,输出端口位于模块右侧,但有时需要对其方向进行改变。方法是:用鼠标选中模块对象,利用“format flip block”(快捷键ctrl +i)可将模块顺时针旋转180;或者利用“format rotate block”(快捷键ctrl +r)或将
9、模块顺时针旋转90,2、改变模块对象的方向,format菜单中的“foreground color”命令可以改变模块的前景颜色,“background color”命令可以改变模块的背景颜色;而模型窗口的颜色可以通过“screen color”命令来改变。此外,还可以选择“format show drop shadow”为模块生成阴影等,3、颜色设定,25,将构成一个系统的所有环节模块复制到模型窗口后,还必须将所有的模块图标用信号线连接起来才能够描述一个控制系统的系统模型,五、模块的连接,信号线具有连接功能模块的作用。连接两个模块时,用鼠标左键选取模块,点击该输入或输出端口,看到光标变成十字形
10、后,拖曳十字图形符号到另个一个端口,鼠标指针将变成双十字形,然后松开鼠标左键。一根最简单的信号线就将两模块连接起来了,连线的箭头表示信号的流向,26,为了对动态系统进行正确的仿真与分析,必须设置正确的系统模块参数与系统仿真参数。模块的内部参数设置时只需在模型窗口中,双击待修改参数模块的图标,就可以打开标准功能模块内部参数设置对话框,然后改变对话框中相关栏目的数据便可,六、模块内部参数修改,当系统中各模块的参数设置完毕后,可设置合适的系统仿真参数以进行动态系统的仿真,27,欲建立此简单系统的模型,需要如下的系统模块: 信号源模块组sources中的sine wave模块:产生一个正弦波信号; 数
11、学运算模块组math operations中的gain模块:将信号乘上一个常数(即信号增益); 输出模块组sinks中的scope模块:图形方式显示结果,28,对系统中各模块参数以及系统仿真参数进行正确设置之后,单击系统模型编辑器上的play图标(黑色三角)或选择simulation菜单下的start便可以对系统进行仿真分析。仿真结束后双击scope模块以显示系统仿真的输出结果,运行仿真,29,30,创建一个新的模型窗口; 从信号源模块组、数学运算模块组、连续模块组和输出模块组库中分别找出所需要的阶跃信号模块、求和器模块、线性传递函数模块和示波器模块,分别复制到模型窗口中; 将各模块按要所需构
12、建的模型连接起来; 修改模块名称、加上信号线标注、模型标注等; 按要求重新设置各模块内部参数; 存盘,31,阶跃信号模块的参数对话框设置中有4个项:“step time”为阶跃信号产生的时间;“initial value”为阶跃信号初始值; ;“final value”为阶跃信号终了值;“sample time”为采样时间。 传递函数模块参数设置对话框中,“numerator”栏是传递函数分子多项式系数向量,“denominator”栏是传递函数分母多项式系数向量。注意:当多项式缺项时,必须将对应系数的“0”输入,不能遗漏,32,图6-28 二阶系统单位阶跃响应仿真结果,33,例6-3,34,
13、6.4 仿真参数设置,在对系统模型中各个模块进行合适的参数设置之后,需要对系统仿真参数进行必要的设置以开始仿真。 在模型窗口中选择“simulation”菜单下的“simulation parameters”,就会出现一个对话框。仿真参数设置共有5个选项,分别是solver、workspace i/o、diagnostics、advanced和rtw,35,solver中包含3部分设置:simulation time(仿真时间)、solver options(仿真器选项)和output options(输出选项设置,1、solver选项及其设置,simulation time(仿真时间):包括
14、仿真起始时间和停止时间,它们的差即代表仿真时间;在缺省情况下,simulink默认的仿真起始时间为0 s,仿真结束时间为10 s。 solver options(仿真器选项) :type项用来选择变步长或固定步长仿真器。右栏用于选择仿真器的算法。固定步长仿真器在仿真过程中,其步长是不变的。变步长解法可以在仿真过程中根据要求调整运算步长。在采用变步长解法时,应先指定一个容许误差限(在relative tolerance和absolute tolerance中设置 ),使得当误差超过误差限时自动修正仿真步长,36,relative tolerance (相对误差限)是规定了每个状态相对于步长的误差
15、大小,用百分比来表示一个状态值。默认值是1e-3,即状态的计算值要精确到0.1%;absolute tolerance(绝对误差限)是一个阈误差值,当测量的状态值接近零时,代表可接受误差。如果将其设定为auto,则将每个状态的初始绝对误差限设置在1e-6。 max step size用于设置最大步长。在默认情况下为“auto”,并按下式计算步长:最大步长=(终止时间-起始时间)/50。但这样的取法对于仿真时间较长的系统则可能带来取样点过于稀疏,而使仿真结果失真。一般建议对于仿真时间不超过15s的采用默认值即可,对于超过15s的每秒至少保证5个采样点,对于超过100s的,每秒至少保证3个采样点。
16、最大步长的选取直接关系到系统仿真结果的准确性,37,output options(输出选项设置):包括refine output(细化输出)、produce additional output(产生附加输出)和produce specified output only(只产生指定输出)3项。 refine output(细化输出):可以根据仿真的步长除了在采样点输出值外,在曲线稀疏处自动增加输出点,以细化曲线,使曲线更加平滑,从而保证系统不失真。如果细化系数定为2,则在每段时间步长的中间插入一个平滑数据,如果是3,则会在每段时间步长的1/3,2/3位置上各插入一个数据。细化因子越大,细化程度越
17、高,曲线越平滑,从而曲线的失真度越小。用户可以在refine factor设置仿真时间区间插入的输出点数,产生更光滑的输出曲线。改变精细因子比减小仿真步长更有效。细化输出只能在变步长模式中才能使用,并且在ode45效果最好,38,produce additional output(产生附加输出):允许用户直接指定产生输出的点。一旦选择了该项,它的右边会出现一个输出时间编辑框,用户可以指定额外的仿真输出点,既可以是一个时间向量也可以是表达式。这个选项会改变仿真的步长以使其和指定的附加输出时间一致。 produce specified output only(只产生指定输出):只在指定的时间点上产
18、生输出。这种方式改变仿真步长经使时间步长与指定输出时刻一致。在比较不同的仿真时,要确保在同一个时刻产生输出,就要采用这种方式,39,主要设置simulink与matlab工作空间交换数据的有关选项,2、workspace i/o选项及其设置,load from workspace(从工作空间读取数据):用来设置从matlab工作空间获取变量的性质,可以从工作空间获取时间和输入变量。虽然simulink提供了多种系统输入信号,但并不能完全满足需要。simulink允许使用用户自定义的信号作为系统输入信号。一般地,时间变量定义为t,输入变量定义为u;在load form workspace框中,用
19、户可以设置matlab中的变量作为系统输入信号或系统状态初始值,如下所述: (1)input:用来设置系统输入信号。其格式为t,u,其中t、u均为列向量,t为输入信号的时间向量,u为相应时刻的信号取值,可以使用多个信号输入,如t,u1,u2。输入信号与simulink的接口由inport模块(in1模块)实现,40,save to workspace(将数据写入工作空间):用来设置往matlab工作空间写入的变量类型和变量名,选中变量类型前的复选框使相应的变量有效,包括输出时间变量(time)、输出系统模型中所有的状态变量(states)、输出系统模型中所有由outport模块(即out1模块
20、)表示的信号(output)和输出系统模型中的最终状态变量取值,即最后仿真时刻处的状态值( final state); save option(存储选项):用来设置载入的保存状态的有关选项:limit data points to last-用来设定存往matlab工作空间变量的规模,对于向量而言即其维数,对于矩阵而言即其秩;decimation用来设置存往matlab工作空间的变量的频度,1为默认值,表示每点都传送,建议一般不要改动此项设置。format用来选择数据格式,2)xinitial state:用来设置系统状态变量初始值。初始值xinitial可为行向量。注意:使用xinitial
21、 state所设置状态变量初始值会自动覆盖系统模块中的设置。另外,输入信号与状态变量需要按照系统模型中inport模块(即in1模块)的顺序进行正确设置,41,主要用于设置仿真过程中对编译与调试异常的错误处理方式,相当于c语言中的编译设置,3、diagnostics选项及其设置,simulation option:consistency checking(一致性检验):是个调试工具,用于设置一致性检验错误的处理方法。该错误主要和s函数有关,会导致系统性能严重降低(降到40%),因此通常都关闭该项。以免影响仿真速度,即选择“none”。 bound checking(边界检验):用来检验在仿真过
22、程中模块是否把数据写出了分配的内存。如果激活了该项,在每次仿真模块时对每个模块都执行该检验,会大大降低执行性能。因此,为了避免不必要的性能降低,最好在用户确定模型中包含有编写错误的s函数时才激活该检验。 configuration options :simulink提供了几类异常事件,仅对这几类异常事件进行处理,42,6.5 仿真结果的观察,控制系统仿真后,观察输出信号的方法大致有3种,将仿真结果输入到输出模块组sinks中的“scope示波器”、“display”数学显示器中查看图形或者数据。 将仿真结果信息返回到matlab命令窗口里,再利用绘图命令绘制出图形; 将仿真结果信息输入到“to workspace”模块中,再用绘图命令在matlab窗口里绘制出图形,43,scope模块是观察仿真结果的主要工具。scope模块可以有多个显示坐标(每个端口一个),所有坐标有共同的时间坐标和各自独立的y坐标。 当用户启动仿真时,simulink虽然把数据写入连接的scope模块,但并不打开scope窗口。要想显示,则必须在仿真结束后双击scope模块才能打开。 若输入信号是连续
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论