第11章Simulink动态仿真集成环境_第1页
第11章Simulink动态仿真集成环境_第2页
第11章Simulink动态仿真集成环境_第3页
第11章Simulink动态仿真集成环境_第4页
第11章Simulink动态仿真集成环境_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

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

文档简介

1、第10章 simulink动 态 仿 真 集 成 环 境10.1 simulink操作基础10.2 系统仿真模型10.3 系统的仿真10.4 使用命令操作对系统进行仿真10.5 子系统及其封装技术10.6 s函数的设计与应用10.1 simulink操作基础操作基础10.1.1 simulink简介简介 simulink是matlab的重要组成部分,提供建立系统模型、选择仿真参数和数值算法、启动仿真程序对该系统进行仿真、设置不同的输出方式来观察仿真结果等功能。 在simulink环境中,用户将摆脱理论演绎时需做理想化假设的无奈,观察到现实世界中摩擦、风阻、齿隙、饱和、死区等非线性因素和各种随机

2、因素对系统行为的影响。在simulink环境中,用户可以在仿真进程中改变感兴趣的参数,实时地观察系统行为的变化。由于simulink环境使用户摆脱了深奥数学推演的压力和烦琐编程的困扰,因此用户在此环境中会产生浓厚的探索兴趣,引发活跃的思维 。10.1.2 simulink的启动与退出的启动与退出1simulink的启动的启动 在matlab的命令窗口输入simulink或单击matlab主窗口工具栏上的simulink命令按钮即可启动simulink。simulink启动后会显示simulink模块库浏览器(simulink library browser)窗口。 在matlab主窗口file

3、菜单中选择new菜单项下的model命令,在出现simulink模块库浏览器的同时,还会出现一个名字为untitled的模型编辑窗口。在启动simulink模块库浏览器后再单击其工具栏中的create a new model命令按钮,也会弹出模型编辑窗口。利用模型编辑窗口,可以通过鼠标的拖放操作创建一个模型。 模型创建完成后,从模型编辑窗口的file菜单项中选择save或save as命令,可以将模型以模型文件的格式(扩展名为.mdl)存入磁盘。 如果要对一个已经存在的模型文件进行编辑修改,需要打开该模型文件,其方法是,在matlab命令窗口直接输入模型文件名(不要加扩展名.mdl)。在模块库

4、浏览器窗口或模型编辑窗口的file菜单中选择open命令,然后选择或输入欲编辑模型的名字,也能打开已经存在的模型文件。另外,单击模块库浏览器窗口工具栏上的open a model命令按钮或模型编辑窗口工具栏上的open model命令按钮,也能打开已经存在的模型文件。2simulink的退出的退出 为了退出simulink,只要关闭所有模型编辑窗口和simulink模块库浏览器窗口即可。10.2 系统仿真模型系统仿真模型10.2.1 simulink的基本模块的基本模块 simulink的模块库提供了大量模块。单击模块库浏览器中simulink前面的“+”号,将看到simulink模块库中包含

5、的子模块库,单击所需要的子模块库,在右边的窗口中将看到相应的基本模块,选择所需基本模块,可用鼠标将其拖到模型编辑窗口。同样,在模块库浏览器左侧的simulink栏上单击鼠标右键,在弹出的快捷菜单中单击open the simulink libray 命令,将打开simulink基本模块库窗口。单击其中的子模块库图标,打开子模块库,找到仿真所需要的基本模块。10.2.2 模块的编辑模块的编辑1添加模块2选取模块3模块外形的调整 4复制与删除模块5模块名的处理1添加模块 在library browser窗口直接点击需要的模块,拖动到model文件中。2选取模块 只要用鼠标在模块上单击,模块饺上出现

6、黑色小方块。若选择多个模块,则鼠标大框选中即可。3模块外形的调整 (1)改变大小:选定模块,用鼠标左键点住其周围的4个黑方块中的任何一个并拖动。 (2)调整方向。选定模块,选择format菜单中的 rotate block命令使模块按顺时针方向旋转90度,filp block命令使模块旋转180度。(主要是接口变化)(3)给模块加阴影。选定模块,选择format菜单中的show drop shadow命令使模块产生阴影效果。5模块名的处理(1)模块名的显示:选定模块,format菜单中的hide name命令,模块名子被隐藏,同时hide name变为show name。(2)修改模块名:鼠标

7、单击模块名的区域。(3)改变模块名位置:当模块接口在上下侧,模块名只能在左右;接口在左右侧,名只能在上下侧,format中的flip name。4复制与删除模块(1)在不同窗口,用鼠标左键点住要复制的模块,按住左键移动到相应窗口,释放。(2)同一窗口,用鼠标左键点住要复制的模块,按住左键,同时按住ctrl键,到适当位置松开鼠标。(3)删除模块,选中模块,选择cut或clear命令。10.2.3 模块的连接模块的连接1连接两个模块 移动鼠标到输出端,鼠标箭头会变成十字光标,点住鼠标左键,移动鼠标到另一个模块的输入点,当十字光标出现重影时,释放鼠标完成连接。 如果两模块不在同一水平线上,连线是折线

8、。2模块间连线的调整 把鼠标移动到需要移动的线段位置,按住鼠标左键,移动鼠标到达目标位置,释放鼠标。3连线之间插入模块 把该模块用鼠标拖到连线上,然后释放鼠标即可。4连线的分支。连好一条线后,把鼠标移动到分支点的位置,先按下ctrl键,然后按住鼠标拖动到目标模块的输入端,释放鼠标和ctrl键。5删除连线。右键cut命令。6连线信息(1)显示数据类型。format中的port data types。显示前一个模块的数据类型。(2)信号标记。双击要做标记的线段,出现一个小文本编辑器,在里面输入标记的文本。10.2.4 simulink的基本模块的基本模块(1)输入源模块(source)(2)接收模

9、块(sinks)(3)连续系统模块(continuous)(4)离散系统模块(disctrete)(5)信号与系统模块(signals and systems)(6)数学运算模块(math)见课本2602641模块的参数设置模块的参数设置 simulink中几乎所有模块的参数都允许用户进行设置,只要双击要设置的模块或在模块上按鼠标右键并在弹出的快捷菜单中选择相应模块的参数设置命令就会弹出模块参数对话框。该对话框分为两部分,上面一部分是模块功能说明,下面一部分用来进行模块参数设置。或者先选择要设置的模块,再在模型编辑窗口edit菜单下选择相应模块的参数设置命令也可以打开模块参数对话框。10.2.

10、5 模块的参数和属性设置模块的参数和属性设置2模块的属性设置模块的属性设置 选定要设置属性的模块,然后在模块上按鼠标右键并在弹出的快捷菜单中选择block properties,或先选择要设置的模块,再在模型编辑窗口的edit菜单下选择block properties命令,将打开模块属性对话框。该对话框包括general、block annotation和callbacks 3个可以相互切换的选项卡。其中选项卡中可以设置3个基本属性:description(说明)、priority(优先级) 、tag(标记)。例例10-1 已知某系统的传递函数,求其阶跃响应,确已知某系统的传递函数,求其阶跃响

11、应,确定模块,并储存。定模块,并储存。操作过程如下:操作过程如下:(1) 在matlab主菜单中,选择file菜单中new菜单项的model命令,打开一个模型编辑窗口。(2) 将所需模块添加到模型中。(3) 设置模块参数并连接各个模块组成仿真模型。设置模块参数后,用连线将各个模块连接起来组成系统仿真模型。模型建好后,从模型编辑窗口的file菜单中选择save或save as命令将它存盘。10.3 系统的仿真系统的仿真10.3.1 设置仿真参数设置仿真参数 打开系统仿真模型,从模型编辑窗口的simulation菜单中选择simulation parameters命令,打开一个仿真参数对话框,在其

12、中可以设置仿真参数。仿真参数对话框包含5个可以相互切换的选项卡:(1) solver选项卡:用于设置仿真起始和停止时间,选择微分方程求解算法并为其规定参数,以及选择某些输出选项。(2) workspace i/o选项卡:用于管理对matlab工作空间的输入和输出。(3) diagnostics选项卡:用于设置在仿真过程中出现各类错误时发出警告的等级。(4) advanced选项卡:用于设置一些高级仿真属性,更好地控制仿真过程。(5) real-time workshop选项卡:用于设置若干实时工具中的参数。如果没有安装实时工具箱,则将不出现该选项卡。见课本p26610.3.2 启动系统仿真与仿

13、真结果分析启动系统仿真与仿真结果分析 设置完仿真参数之后,从simulation中选择start菜单项或单击模型编辑窗口中的start simulation命令按钮,便可启动对当前模型的仿真。此时,start菜单项变成不可选, 而stop菜单项变成可选, 以供中途停止仿真使用。从simulation菜单中选择stop项停止仿真后,start项又变成可选。为了观察仿真结果的变化轨迹可以采用3种方法:(1) 把输出结果送给scope模块或者xy graph模块。(2) 把仿真结果送到输出端口并作为返回变量,然后使用matlab命令画出该变量的变化曲线。 (3) 把输出结果送到to workspac

14、e模块,从而将结果直接存入工作空间,然后用matlab命令画出该变量的变化曲线。例例10-2 已知某系统的传递函数,求其阶跃响应图形。已知某系统的传递函数,求其阶跃响应图形。操作过程如下:操作过程如下:li(1) 在matlab主菜单中,选择file菜单中new菜单项的model命令,打开一个模型编辑窗口。(2) 将所需模块添加到模型中。(3) 设置模块参数并连接各个模块组成仿真模型。(4)设置simulation parameters中的属性。例例10-3 利用利用simulink仿真求和。仿真求和。仿真过程如下:仿真过程如下:li2(1) 打开一个模型编辑窗口。(2) 将所需模块添加到模型

15、中。(3) 设置模块参数并连接各个模块组成仿真模型。(4) 设置系统仿真参数。(5) 开始系统仿真。(6) 观察仿真结果。10.3.3 系统仿真实例系统仿真实例至此,可以总结出利用simulink进行系统仿真的步骤如下:(1) 建立系统仿真模型,这包括添加模块、设置模块参数以及进行模块连接等操作。(2) 设置仿真参数。(3) 启动仿真并分析仿真结果。例12-4 有初始状态为0的二阶微分方程x+0.2x+0.4x=0.2u (t), 其中u(t)是单位阶跃函数,试建立系统模型并仿真。方法1:用积分器直接构造求解微分方程的模型。方法2:利用传递函数模块建模。用积分器用积分器(1)改写微分方程:x=

16、0.2u(t)-0.2x-0.4x(2)用积分模块构造微分方程求解模型(3)配置:u(t) step time 设为0,模块名改为u(t) gs增益模块设置为0.2 求和模块变为矩形,list of signs设置为+- 积分模块 名字分别改为int1 int2 g1g2增益旋转并改名,设置为0.2,0.4(4)仿真 solver中stop time改为20,打开试波窗,演示用传递函数,假设初始状态是用传递函数,假设初始状态是0(1)拉氏变换: x+0.2x+0.4x=0.2u (t), (2)用积分模块构造微分方程求解模型(3)配置:u(t) step time 设为0,模块名改为u(t)

17、g(s)模块设置系数(4)slover中stop time设置为20,初始状态设为(0,0))(2 . 0)(4 . 0)(2 . 0)(2susxssxsxs4 . 02 . 02 . 0)(2sssg10.4 使用命令操作对系统进行仿真使用命令操作对系统进行仿真 从命令窗口运行仿真的函数有4个,即sim、simset、simget和set_param。1sim函数 sim函数的作用是运行一个由simulink建立的模型,其调用格式为: t, x, y =sim(modname,timespan,options,data);t:仿真时间向量x:状态模块的状态矩阵y:仿真输出矩阵,每一列对应一

18、个输出端口的输出数据。modname:指定模型名字timespan:仿真时间区域options:仿真参数这些参数中,只有modname是必须的。仿真模型simul x有三列表示模型中含有3个状态向量,其中integrator中有一个,transferfcn中有两个。 输出y有两列,对应与out1和out2时间范围为2s到8s只在4个指定时刻有值2simset函数 simset 函数用来为sim函数建立或编辑仿真参数或规定算法,并把设置结果保存在一个结构变量中。它有如下4种用法:(1) options=simset(property,value,):把property代表的参数赋值为value,

19、结果保存在结构options中。(2) options=simset(old_opstruct,property,value,):把已有的结构old_opstruct(由simset产生)中的参数property重新赋值为value,结果保存在新结构options中。(3) options=simset(old_opstruct,new_opstruct):用结构new_opstruct的值替代已经存在的结构old_opstruct的值。(4) simset:显示所有的参数名和它们可能的值。3simget函数函数 simget函数用来获得模型的参数设置值。如果参数值是用一个变量名定义的,sim

20、get返回的也是该变量的值而不是变量名。如果该变量在工作空间中不存在(即变量未被赋值),则simulink给出一个出错信息。该函数有如下3种用法:(1) struct=simget(modname):返回指定模型model的参数设置的options结构。(2) value=simget(modname,property):返回指定模型model的参数property的值。(3) value=simget(options,property):获取options结构中的参数property的值。如果在该结构中未指定该参数,则返回一个空阵。 用户只需输入能够唯一识别它的那个参数名称的前几个字符即可,

21、对参数名称中字母的大小写不作区别。 4set_param函数函数 set_param函数的功能很多,这里只介绍如何用set_param函数设置simulink仿真参数以及如何开始、暂停、终止仿真进程或者更新显示一个仿真模型。(1) 设置仿真参数调用格式为: set_param(modname,property,value,) 其中modname为设置的模型名,property为要设置的参数,value是设置值。这里设置的参数可以有很多种,而且和用simset设置的内容不尽相同,相关参数的设置可以参考有关资料。(2) 控制仿真进程调用格式为: set_param(modname,simulati

22、oncommand,cmd) 其中mode为仿真模型名称,而cmd是控制仿真进程的各个命令,包括start、stop、pause、comtinue或update。在使用这两个函数的时候,需要注意必须先把模型打开10.5 子系统及其封装技术子系统及其封装技术10.5.1 子系统的建立子系统的建立 建立子系统有两种方法:通过subsystem模块建立子系统和通过已有的模块建立子系统。两者的区别是:前者先建立子系统,再为其添加功能模块;后者先选择模块,再建立子系统。1通过subsystem模块建立子系统操作步骤为:(1) 先打开simulink模块库浏览器,新建一个仿真模型。(2) 打开simuli

23、nk模块库中的ports & subsystems模块库,将subsystem模块添加到模型编辑窗口中。(3) 双击subsystem模块打开一个空白的subsystem窗口,将要组合的模块添加到该窗口中,另外还要根据需要添加输入模块和输出模块,表示子系统的输入端口和输出端口。这样,一个子系统就建好了li42通过已有的模块建立子系统通过已有的模块建立子系统操作步骤为:(1) 先选择要建立子系统的模块,不包括输入端口和输出端口。(2) 选择模型编辑窗口edit菜单中的create subsystem 命令,这样,子系统就建好了。在这种情况下,系统会自动把输入模块和输出模块添加到子系统中,并把原来

24、的模块变为子系统的图标。10.5.2 子系统的条件执行子系统的条件执行1使能子系统使能子系统 建立使能子系统的方法是:打开simulink模块库中的ports & subsystems模块库,将enable模块复制到子系统模型中,则系统的图标发生了变化。 使能子系统是指,控制信号由负变正时,子系统开始执行,直到控制信号再次变为负时结束。例例10-6 利用使能子系统构成一个正弦半波整流器。利用使能子系统构成一个正弦半波整流器。操作步骤如下:操作步骤如下:(1) 打开simulink模块库浏览器并新建一个仿真模型。(2) 将sine wave、enabled subsystem、scope 3个模

25、块拖至新打开的模型编辑窗口,连接各模块并存盘。其中使能信号端接sine wave模块。为了便于比较,除显示半波整流波形外,还显示正弦波,故在示波器属性窗口将number of axes设置为2。 (3)双击空子系统,将in模块,out模块,以及enable模块拖入子系统的结构模型窗。使能子系统建立好后,可对enable模块进行参数设置。(4) 选择simulink菜单中的start命令,就可看到半波整流波形和正弦波形。(4) 按图连接各模块并存盘2触发子系统触发子系统 触发子系统是指当触发事件发生时开始执行子系统。与使能子系统相类似,触发子系统的建立要把ports & subsystems模块

26、库中的trigger模块添加到子系统中或直接选择triggered subsystem模块来建立触发子系统。例例10-7 利用触发子系统将一锯齿波转换成方波。利用触发子系统将一锯齿波转换成方波。操作步骤如下:操作步骤如下:(1)用signal generator、triggered subsystem和scope模块构成子系统。 同上例设置属性sawtooth 锯齿波属性子系统either 上跳沿或下跳沿(2)start命令,示波器看结果3使能加触发子系统使能加触发子系统 所谓使能加触发子系统就是把enable和tirgger模块都加到子系统中,使能控制信号和触发控制信号共同作用子系统的执行,

27、也就是前两种子系统的综合。该系统的行为方式与触发子系统相似,但只有当使能信号为正时,触发事件才起作用。10.5.3 子系统的封装子系统的封装 所谓子系统的封装(masking),就是为子系统定制对话框和图标,使子系统本身有一个独立的操作界面。封装优点:1、将子系统内众多的模块参数对话框集成为一个单独对话框。2、将个别模块的描述或者帮助集成在一起,能有效的帮助用户了解该定制的模块(子系统)3、可以制作该系统的icon图标,表示系统用途4、使用定制的参数对话框,避免由于不小心修改了不可改变的参数子系统的封装过程: 先选中所要封装的子系统,再选择模型编辑窗口edit菜单中的mask subsyste

28、m命令,这时将出现封装编辑器(mask editor)对话框,把这个对话框参数设置好,模块的封装就成功了。 mask editor对话框中共包括4个选项卡:icon、parameters、initialization和documentation。子系统的封装主要就是对这4页参数进行设置。 下面进行说明建立simulink模型 选中子系统,然后选择editmask subsystem 菜单,弹出mask editor对话框改变子系统标识:改变子系统标识:双击子系统:双击子系统:simulink仿真实例:弹跳的皮球(help/demos/simulink中的一个例子):数学模型: .8 . 0,

29、0,)(10)(,81. 9,15)(00vvhwhendttvthggdttvtt结果如下:上图为v(t), 下图为h(t).电源模块仿真一个直流无刷电机得仿真一、工具箱简介一、工具箱简介l功能型工具箱 通用型 功能型工具箱主要用来扩充matlab的数值计算、符号运算功能、图形建模仿真功能、文字处理功能以及与硬件实时交互功能,能够用于多种学科。matlab工具箱介绍工具箱介绍l领域型工具箱 专用型 领域型工具箱是学科专用工具箱,其专业性很强,比如控制系统工具箱( control system toolbox);信号处理工具箱(signal processing toolbox);财政金融工具

30、箱( financial toolbox)等等。只适用于本专业。lmatlab main toolboxmatlab主工具箱lcontrol system toolbox控制系统工具箱lcommunication toolbox通讯工具箱lfinancial toolbox财政金融工具箱lsystem identification toolbox系统辨识工具箱lfuzzy logic toolbox模糊逻辑工具箱lhigher-order spectral analysis toolbox高阶谱分析工具箱limage processing toolbox图象处理工具箱llmi control

31、toolbox线性矩阵不等式工具箱lmodel predictive control toolbox模型预测控制工具箱l-analysis and synthesis toolbox分析工具箱matlab常用工具箱常用工具箱lneural network toolbox神经网络工具箱loptimization toolbox优化工具箱lpartial differential toolbox偏微分方程工具箱lrobust control toolbox鲁棒控制工具箱lsignal processing toolbox信号处理工具箱lspline toolbox样条工具箱lstatistics

32、toolbox统计工具箱lsymbolic math toolbox符号数学工具箱lsimulink toolbox动态仿真工具箱lsystem identification toolbox系统辨识工具箱lwavele toolbox小波工具箱 等等l连续系统设计和离散系统设计l状态空间和传递函数以及模型转换l时域响应(脉冲响应、阶跃响应、斜坡响应)l频域响应(bode图、nyquist图)l根轨迹、极点配置例如:控制系统工具箱例如:控制系统工具箱优化工具箱优化工具箱l线型规划和二次规划l求函数的最大值和最小值l多目标优化l约束条件下的优化l非线型方程求解信号处理工具箱l数字和模拟滤波器设计、

33、应用及仿真l谱分析和估计lfft、dct等变换l参数化模型学科前沿最新的工具箱学科前沿最新的工具箱 模糊控制逻辑工具箱 友好的交互设计界面,自适应神经-模糊学习、聚类以及sugeno推理 神经网络工具箱 神经网络系统具有集体运算的能力和自适应的学习能力。具有很强的容错性和鲁棒性,善于联想、综合和推广。 用户可以修改工具箱中的函数,更为重要的是用户可以通过编制 m文件来任意地添加工具箱中原来没有的工具函数。此功能充分体现了matlab语言的开发性。matlab6以后,一些工具箱新增了工具箱的扩充功能:以后,一些工具箱新增了工具箱的扩充功能:1.matlab主工具箱l前面课程所介绍的数值计算、符号

34、运算、绘图以及句柄绘图都是matlab主工具箱的内容,是matlab的基本部分,也是我们课程的重点。lmatlab主工具箱位于: c:matlabtoolboxmatlabl matlab主工具箱是任何版本的matlab都不可缺少的。l除toolboxmatlab之外的工具箱,在比较完整的专业版matlab语言中有20多个工具箱。这些工具箱是需要单独选择购买的。二、通用工具箱二、通用工具箱matlab主工具箱共有主工具箱共有21个函数库个函数库datafun 数据分析函数库sonnds 声音处理函数库dde 动态数据交换函数库elfun 初等数学函数库specmat 特殊矩阵函数库elmat

35、初等矩阵和时间函数库funfun 函数功能和数学分析函数库general 通用命令函数库graphics 通用图形函数库iofun 底层输入输出函数库lang 语言结构函数库matfun 矩阵线性代数函数库ops 运算符和逻辑函数库plotxy 二维绘图函数库plotxyz 三维绘图函数库color 颜色和光照函数库polyfun 多项式函数库sparfun 稀疏矩阵函数库strfun 字符串函数库demos matlab演示函数库uitools 图形界面函数库datatypes 数据类型函数库graphics 句柄绘图函数库graph3d 三维绘图 各函数库中的函数可用help 函数库名查询

36、,或type 函数名方法查询例:help plotxytwo dimensional graphics.elementary x-y graphs.基本绘图 plot - linear plot. loglog - log-log scale plot. semilogx - semi-log scale plot. semilogy - semi-log scale plot. fill - draw filled 2-d polygons.specialized x-y graphs.特殊绘图函数 polar - polar coordinate plot. bar - bar graph

37、. stem - discrete sequence or stem plot. stairs - stairstep plot. errorbar - error bar plot. hist - histogram plot. rose - angle histogram plot. compass - compass plot. feather - feather plot. fplot - plot function. comet - comet-like trajectory. graph annotation. 图像相关函数 title - graph title. xlabel

38、- x-axis label. ylabel - y-axis label. text - text annotation. gtext - mouse placement of text. grid - grid lines. see also plotxyz, graphics.三、装入三、装入matlab工具箱工具箱1、下载完毕该工具箱2、复制到toolbox目录然后在set path里面添加这个目录就可以用了。 1.matlab的目录结构l目录树c:matlabbinc:matlabexternc:matlabsimulinkc:matlabtoolboxcommc:matlabtoolbo

温馨提示

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

评论

0/150

提交评论