Matlab仿真设计simulink

上传人:汽*** 文档编号:578335268 上传时间:2024-08-24 格式:PPT 页数:64 大小:1.35MB
返回 下载 相关 举报
Matlab仿真设计simulink_第1页
第1页 / 共64页
Matlab仿真设计simulink_第2页
第2页 / 共64页
Matlab仿真设计simulink_第3页
第3页 / 共64页
Matlab仿真设计simulink_第4页
第4页 / 共64页
Matlab仿真设计simulink_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《Matlab仿真设计simulink》由会员分享,可在线阅读,更多相关《Matlab仿真设计simulink(64页珍藏版)》请在金锄头文库上搜索。

1、 Simulink1 Simulink简介Simulink是一个用来对动态系统进行建模、仿真是一个用来对动态系统进行建模、仿真和分析的软件包。和分析的软件包。使用使用Simulink来建模、分析和来建模、分析和仿真各种动态系统仿真各种动态系统(包括包括连续系统连续系统、离散系统离散系统和和混混合系统合系统),将是一件非常轻松的事情。它提供了一,将是一件非常轻松的事情。它提供了一种图形化的交互环境,只需用鼠标拖动的方法便种图形化的交互环境,只需用鼠标拖动的方法便能迅速地建立起系统框图模型,甚至不需要编写能迅速地建立起系统框图模型,甚至不需要编写一行代码。一行代码。利用利用Simulink进行系统

2、的建模仿真,其最大的优进行系统的建模仿真,其最大的优点是易学、易用,并能依托点是易学、易用,并能依托MATLAB提供的丰富提供的丰富的仿真资源。的仿真资源。提供了仿真库的扩充和定制机制提供了仿真库的扩充和定制机制Simulink的开放式结构允许用户扩展仿真环境的开放式结构允许用户扩展仿真环境的功能:采用的功能:采用MATLAB、FORTRAN和和C代码代码生成自定义模块库,并拥有自己的图标和界面。生成自定义模块库,并拥有自己的图标和界面。与与MATLAB工具箱的集成工具箱的集成由于由于Simulink可以直接利用可以直接利用MATLAB的诸多资的诸多资源与功能,因而用户可以直接在源与功能,因而

3、用户可以直接在 Simulink下完下完成诸如数据分析、过程自动化、优化参数等工成诸如数据分析、过程自动化、优化参数等工作。作。Simulink应用领域应用领域Simulink优点优点适应面广:包括线性、非线性系适应面广:包括线性、非线性系统;离散、连续系统统;离散、连续系统结构和流程清晰:以方块图形式结构和流程清晰:以方块图形式呈现,呈现,仿真精细、贴近实际仿真精细、贴近实际simulink 的模型: simulink模型在视觉上表现为方框图,在模型在视觉上表现为方框图,在文件上则是扩展名为文件上则是扩展名为m的的ASCII代码代码(matlab6是扩展名为是扩展名为mdl的的ASCII代码

4、代码););在数学上体现为一组微分方程或差分方程;在数学上体现为一组微分方程或差分方程;在行为上模拟了物理器件构成的实际系统的在行为上模拟了物理器件构成的实际系统的动态特性。动态特性。simulink 的一般结构:的一般结构:输入系统输出 仿真原理仿真原理当在框图视窗中进行仿真的同时,当在框图视窗中进行仿真的同时,matlab 实际上是运行保存于实际上是运行保存于simulink内存中内存中s函函数的映象文件,而不是解释运行该数的映象文件,而不是解释运行该m文件。文件。s函数并不是标准函数并不是标准m文件,它文件,它m文件的一种文件的一种特殊形式。特殊形式。 结构图创建方法结构图创建方法一个动

5、态系统的创建过程,就是一个方框一个动态系统的创建过程,就是一个方框图的绘制过程图的绘制过程2 Simulink启动及模型建立启动及模型建立 Simulink的启动主要有以下两种方法:的启动主要有以下两种方法:在在MATLAB的命令窗口中输入的命令窗口中输入simulink,结果是结果是在桌面上出现一个在桌面上出现一个Simulink Library Browser的窗口。的窗口。单击单击MATLAB主窗口的快捷按钮主窗口的快捷按钮 ,打开,打开Simulink Library Browser窗口窗口 。Simulink模型窗口的建立模型窗口的建立 在在Simulink中打开一个空白的模型窗口的

6、方法:中打开一个空白的模型窗口的方法:选中选中Simulink菜单系统中的菜单系统中的File | New | Model菜单项后,菜单项后,会生成一个会生成一个Simulink窗口;窗口;单击单击Simulink工具栏中的工具栏中的“新建模型新建模型”图标;图标;在在MATLAB的命令窗口中选择的命令窗口中选择File | New | New Model菜菜单项;单项; 启动启动Simulink,建立系统模型的基本操作建立系统模型的基本操作依次表示新建、打开依次表示新建、打开系统模型文件系统模型文件依次表示新建、打开与依次表示新建、打开与保存系统模型文件保存系统模型文件Simulink的模块

7、库的模块库Simulink的模块库能够对系统模块进行有效的管理与组织的模块库能够对系统模块进行有效的管理与组织可以直接将模块库中的模块拖动或者拷贝到用户的系统模可以直接将模块库中的模块拖动或者拷贝到用户的系统模型中以构建动态系统模型。型中以构建动态系统模型。 模块搜索模块搜索 模块描述模块描述 系统模块系统模块 系统模块库系统模块库 Simulink公共模块库公共模块库Simulink中最为基础、最为通用的模块库,它可以被应用中最为基础、最为通用的模块库,它可以被应用到不同的专业领域中。到不同的专业领域中。 连续模块连续模块continuous、非连续模块、非连续模块discontinuous

8、离散模块离散模块discrete、查找表模块、查找表模块Look-up Table数学运算数学运算Math Operations模型验证模块模型验证模块Model Verification模型扩充工具模型扩充工具Model-Wide Utilities端口和子系统模块端口和子系统模块Ports & Subsystems、信号属性模块信号属性模块Signal Attributes信号路由模块信号路由模块Signal Routing、接收模块、接收模块Sinks输入模块输入模块Sources用户自定义函数模块用户自定义函数模块User-Defined FunctionsSimulink的部分专业模

9、块库的部分专业模块库DSP Blockset数字信号处理工具包数字信号处理工具包Fixed-Point Blockset定点运算控制系统仿真工具包定点运算控制系统仿真工具包Power System Blockset电力电动系统工具包电力电动系统工具包Dials & Gauges Blockset交互图形和控制面板设计工具包交互图形和控制面板设计工具包Communications Blockset通讯系统工具包通讯系统工具包CDMA Reference Blockset CDMACDMA通讯系统设计和分析工具包通讯系统设计和分析工具包Nonlinear Control Design Blocks

10、et非线性控制设计工具箱非线性控制设计工具箱Motorola DSP Developers KitMotorola DSP开发工具箱开发工具箱TI DSP Developers KitTI DSP开发工具箱开发工具箱对对Simulink库浏览器的基本操作有:库浏览器的基本操作有:(1) 使使用用鼠鼠标标左左键键单单击击系系统统模模块块库库,如如果果模模块块库库为为多多层层结结构构,则单击则单击“+”号载入库。号载入库。(2) 使用鼠标右键单击系统模块库,使用鼠标右键单击系统模块库,可在单独的窗口可在单独的窗口打开库。打开库。(3) 使使用用鼠鼠标标左左键键单单击击系系统统模模块块,在在模模块块

11、描描述述栏栏中中显显示示此此模模块块的描述的描述。(4) 使使用用鼠鼠标标右右键键单单击击系系统统模模块块,可可以以得得到到:系系统统模模块块的的帮帮助助信信息息; 将将系系统统模模块块插插入入到到系系统统模模型型中中; 查查看看系系统统模模块块的的参参数数设置设置; 以及以及回到系统模块的上一层库回到系统模块的上一层库。 此外还可以进行以下操作此外还可以进行以下操作: (1) 使使用用鼠鼠标标左左键键选选择择并并拖拖动动系系统统模模块块,并并将将其其拷拷贝贝到到系统模型中。系统模型中。 (2) 在模块搜索栏中搜索所需的系统模块。在模块搜索栏中搜索所需的系统模块。 例例:简简单单系系统统的的输

12、输入入为为一一个个正正弦弦波波信信号号,输输出出为为此此正正弦弦波波信信号号与与一一个个常常数数的的乘乘积积。要要求求建建立立系系统统模型,并以图形方式输出系统运算结果。模型,并以图形方式输出系统运算结果。已知系统的数学描述为已知系统的数学描述为 系统输入:系统输入: u(t)=sin t , t0 系统输出:系统输出: y(t)=au(t), a0相关操作:相关操作:模块库模块库Sine Wave来自来自sources; Gain来自来自Math Operations;Scope来自来自Sinks连接方法连接方法(1)拖动对应端口进行连接拖动对应端口进行连接(2)单击起始模块后,按单击起始模

13、块后,按Ctrl键再单击目标模块键再单击目标模块模块复制模块复制传统方式传统方式Ctrl+C/Ctrl+V、或、或Ctrl键再拖动模块键再拖动模块模块插入模块插入 对于单输入单输出模块,只需将这个模块移到线上就对于单输入单输出模块,只需将这个模块移到线上就可以自动连接。可以自动连接。连线操作连线操作连线分支连线分支使用鼠标右键单击需要分支的信号连线(光标使用鼠标右键单击需要分支的信号连线(光标变成变成“+”),然后拖动到目标模块。),然后拖动到目标模块。使用鼠标左键单击并拖动以改变信号连线使用鼠标左键单击并拖动以改变信号连线的路径。的路径。按下按下Shift键的同时,在信号连线上单击鼠键的同时

14、,在信号连线上单击鼠标左键并拖动,可以生成新的节点。标左键并拖动,可以生成新的节点。在节点上使用鼠标左键单击并拖动,可以在节点上使用鼠标左键单击并拖动,可以改变信号连线路径。改变信号连线路径。信号组合信号组合 在利用在利用Simulink进行系统仿真时,在很多进行系统仿真时,在很多情况下,需要将系统中某些模块的输出信号(一情况下,需要将系统中某些模块的输出信号(一般为标量)组合成一个向量信号,并将得到的信般为标量)组合成一个向量信号,并将得到的信号作为另外一个模块的输入。号作为另外一个模块的输入。 来自来自Signal Routing的的Bus Creator3 Simulink模型仿真模型仿

15、真系统模块参数设置与系统仿真参数设置系统模块参数设置与系统仿真参数设置双击系统模块,打开系统模块的参数设置对话框。双击系统模块,打开系统模块的参数设置对话框。在参数设置对话框中设置合适的模块参数。在参数设置对话框中设置合适的模块参数。设置合适的系统仿真参数以进行动态系统的仿真设置合适的系统仿真参数以进行动态系统的仿真在在Simulation菜单的菜单的Simulation parameters.子菜单子菜单中进行设置,如仿真时间等中进行设置,如仿真时间等运行仿真运行仿真单击系统模型编辑器上的单击系统模型编辑器上的Play图标图标(黑色三角黑色三角)或选择或选择Simulation菜单下的菜单下

16、的Start便可以对系统进行仿真分析。便可以对系统进行仿真分析。仿真结束后双击仿真结束后双击Scope模块以显示系统仿真的输出结模块以显示系统仿真的输出结果果1、连续模块(Continuous) continuous.mdlIntegrator:输入信号积分Derivative:输入信号微分State-Space:线性状态空间系统模型Transfer-Fcn:线性传递函数模型Zero-Pole:以零极点表示的传递函数模型Memory:存储上一时刻的状态值Transport Delay:输入信号延时一个固定时间再输出Variable Transport Delay:输入信号延时一个可变时间再输出

17、2、离散模块(Discrete) discrete.mdlDiscrete-time Integrator:离散时间积分器Discrete Filter:IIR与FIR滤波器Discrete State-Space:离散状态空间系统模型Discrete Transfer-Fcn:离散传递函数模型Discrete Zero-Pole:以零极点表示的离散传递函数模型First-Order Hold:一阶采样和保持器Zero-Order Hold:零阶采样和保持器Unit Delay:一个采样周期的延时3、 Function&Tables(函数和平台模块) function.mdlFcn:用自定义的

18、函数(表达式)进行运算MATLAB Fcn:利用matlab的现有函数进行运算S-Function:调用自编的S函数的程序进行运算Look-Up Table:建立输入信号的查询表(线性峰值匹配)Look-Up Table(2-D):建立两个输入信号的查询表(线性峰值匹配)4、 Math(数学模块) math.mdlSum:加减运算Product:乘运算Dot Product:点乘运算Gain:比例运算Math Function:包括指数函数、对数函数、求平方、开根号等常用数学函数Trigonometric Function:三角函数,包括正弦、余弦、正切等MinMax:最值运算Abs:取绝对值

19、Sign:符号函数Logical Operator:逻辑运算Relational Operator:关系运算Complex to Magnitude-Angle:由复数输入转为幅值和相角输出Magnitude-Angle to Complex:由幅值和相角输入合成复数输出Complex to Real-Imag:由复数输入转为实部和虚部输出Real-Imag to Complex:由实部和虚部输入合成复数输出5、 Nonlinear(非线性模块) nonlinear.mdlSaturation:饱和输出,让输出超过某一值时能够饱和。Relay:滞环比较器,限制输出值在某一范围内变化。Switc

20、h:开关选择,当第二个输入端大于临界值时,输出由第一个输入端而来,否则输出由第三个输入端而来。Manual Switch:手动选择开关6、Signal&Systems(信号和系统模块) sigsys.mdlIn1:输入端。Out1:输出端。Mux:将多个单一输入转化为一个复合输出。Demux:将一个复合输入转化为多个单一输出。Ground:连接到没有连接到的输入端。Terminator:连接到没有连接到的输出端。SubSystem:建立新的封装(Mask)功能模块7、Sinks(接收器模块) sinks.mdlScope:示波器。XY Graph:显示二维图形。To Workspace:将输出

21、写入MATLAB的工作空间。To File(.mat):将输出写入数据文件。8、Sources(输入源模块) sources.mdlConstant:常数信号。Clock:时钟信号。From Workspace:来自MATLAB的工作空间。From File(.mat):来自数据文件。Pulse Generator:脉冲发生器。Repeating Sequence:重复信号。Signal Generator:信号发生器,可以产生正弦、方波、锯齿波及随意波。Sine Wave:正弦波信号。Step:阶跃波信号。例:模拟一个微分方程 x = -2x + uu xx-2x.方框图绘制完毕,一个动态系

22、统模型也就创建好了。选择File菜单Save保存图形,就自动生成一个可在matlab命令窗口运行的m文件。然后就可用simulation菜单中start开始仿真了。一、设置仿真参数和选择解法器q设置仿真参数和选择解法器,选择Simulation菜单下的Parameters命令,就会弹出一个仿真参数对话框,它主要用三个页面来管理仿真的参数。I.Solver页,它允许用户设置仿真的开始和结束时间,选择解法器,说明解法器参数及选择一些输出选项。II.Workspace I/O页,作用是管理模型从MATLAB工作空间的输入和对它的输出。III.Diagnostics页,允许用户选择Simulink在仿

23、真中显示的警告信息的等级。构建好一个系统的模型之后,接下来的事情就是运行模型,得出仿真结果。运行一个仿真的完整过程分成三个步骤:设置仿真参数,启动仿真和仿真结果分析。1、Solver页q此页可以进行的设置有:选择仿真开始和结束的时间;选择解法器,并设定它的参数;选择输出项。1)仿真时间:注意这里的时间概念与真实的时间并不一样,只是计算机仿真中对时间的一种表示,比如10秒的仿真时间,如果采样步长定为0.1,则需要执行100步,若把步长减小,则采样点数增加,那么实际的执行时间就会增加。一般仿真开始时间设为0,而结束时间视不同的因素而选择。总的说来,执行一次仿真要耗费的时间依赖于很多因素,包括模型的

24、复杂程度、解法器及其步长的选择、计算机时钟的速度等等。2)仿真步长模式:用户在Type后面的第一个下拉选项框中指定仿真的步长选取方式,可供选择的有Variable-step(变步长)和Fixed-step(固定步长)方式。变步长模式可以在仿真的过程中改变步长,提供误差控制和过零检测。固定步长模式在仿真过程中提供固定的步长,不提供误差控制和过零检测。用户还可以在第二个下拉选项框中选择对应模式下仿真所采用的算法。q变步长模式解法器有:ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb和discrete。a)ode45:缺省值,四/五阶龙格库塔法,适用于大

25、多数连续或离散系统,但不适用于刚性(stiff)系统。它是单步解法器,也就是,在计算y(tn)时,它仅需要最近处理时刻的结果y(tn-1)。一般来说,面对一个仿真问题最好是首先试试ode45。b)ode23:二/三阶龙格库塔法,它在误差限要求不高和求解的问题不太难的情况下,可能会比ode45更有效。也是一个单步解法器。c)ode113:是一种阶数可变的解法器,它在误差容许要求严格的情况下通常比ode45有效。ode113是一种多步解法器,也就是在计算当前时刻输出时,它需要以前多个时刻的解。q固定步长模式解法器有:ode5,ode4,ode3,ode2,ode1和discrete。a)ode5:

26、缺省值,是ode45的固定步长版本,适用于大多数连续或离散系统,不适用于刚性系统。b)ode4:四阶龙格库塔法,具有一定的计算精度。c)ode3:固定步长的二/三阶龙格库塔法。d)ode2:改进的欧拉法。e)ode1:欧拉法。f)discrete:是一个实现积分的固定步长解法器,它适合于离散无连续状态的系统。2、Workspace I/O页q此页主要用来设置SIMULINK与MATLAB工作空间交换数值的有关选项。1)Load from workspace:选中前面的复选框即可从MATLAB工作空间获取时间和输入变量,一般时间变量定义为t,输入变量定义为u。 Initial state用来定义

27、从MATLAB工作空间获得的状态初始值的变量名。2)Save to workspace:用来设置存往MATLAB工作空间的变量类型和变量名,选中变量类型前的复选框使相应的变量有效。一般存往工作空间的变量包括输出时间向量(Time)、状态向量(States)和输出变量(Output)。 Final state用来定义将系统稳态值存往工作空间所使用的变量名。3)Save option:用来设置存往工作空间的有关选项。Limit rows to last用来设定SIMULINK仿真结果最终可存往MATLAB工作空间的变量的规模,对于向量而言即其维数,对于矩阵而言即其秩;Decimation设定了一个

28、亚采样因子,它的缺省值为1,也就是对每一个仿真时间点产生值都保存,而若为2,则是每隔一个仿真时刻才保存一个值。Format用来说明返回数据的格式,包括矩阵matrix、结构struct及带时间的结构struct with time。3、Diagnostics页q此页分成两个部分:仿真选项和配置选项。配置选项下的列表框主要列举了一些常见的事件类型,以及当SIMULINK检查到这些事件时给予的处理。仿真选项options主要包括是否进行一致性检验、是否禁用过零检测、是否禁止复用缓存、是否进行不同版本的SIMULINK的检验等几项。q除了上述3个主要的页外,仿真参数设置窗口还包括real-time

29、workshop页,主要用于与C语言编辑器的交换,通过它可以直接从SIMULINK模型生成代码并且自动建立可以在不同环境下运行的程序,这些环境包括实时系统和单机仿真。t,x,y=sim(sim5,20);plot(t,y)plot(t,yout) Scope高级使用技术高级使用技术打印输出打印输出 参数设置参数设置 视图整体缩放视图整体缩放 Y轴缩放轴缩放 视图自动缩放视图自动缩放 X轴缩放轴缩放 保存当前坐标轴设置保存当前坐标轴设置 恢复坐标轴设置恢复坐标轴设置 悬浮悬浮Scope开关开关 悬浮时信号选择悬浮时信号选择 去除坐标轴选择去除坐标轴选择 1) Scope的参数设置的参数设置 使使

30、用用Scope模模块块的的参参数数设设置置选选项项卡卡能能够够对对系系统统仿仿真真输输出出结结果果显显示示进进行行更更多多的的控控制制,而而不不仅仅仅仅是是上上述述的的简简单单控控制制。图图36、图图37所所示示分分别别为为Scope模模块块参参数数设设置置选选项项卡卡中中的的General选选项卡与项卡与Data History选项卡。选项卡。Scope模块的模块的General选项卡选项卡坐标系标签坐标系标签 坐标系数目坐标系数目 显示时间范围显示时间范围 悬浮悬浮Scope 开关开关 Scope模块的模块的Data history选项卡选项卡信号显示点数限制信号显示点数限制 保存信号至工

31、作空保存信号至工作空间变量间变量 下面简单介绍一下各选项卡的功能与使用。下面简单介绍一下各选项卡的功能与使用。 1) 坐标系数目坐标系数目(Number of axes) 功功能能描描述述:在在一一个个Scope输输出出模模块块中中使使用用多多个个坐坐标标系系窗窗口口同同时时输输出出多多个个信信号号。在在默默认认设设置置下,下,Scope模块仅显示一个坐标系窗口。模块仅显示一个坐标系窗口。 2) 悬浮悬浮Scope开关开关(Floating scope) 功功能能描描述述:将将Scope模模块块切切换换为为悬悬浮浮Scope模块。模块。 3) 显示时间范围显示时间范围(Time range)

32、功功能能描描述述:设设置置信信号号显显示示的的时时间间范范围围。注注意意:信信号号显显示示的的时时间间范范围围与与系系统统仿仿真真时时间间范范围围并并不不等等同同,并并且且坐坐标标系系所所示示的的时时间间范范围围并并非非为为绝绝对对时时间间,而而是是指指相相对对时时间间范范围围,坐坐标标系系的的左左下下角角的的时时间间偏偏移移(Time offset)给给出出了了时时间间的的起起始始偏偏移移量量(即即显显示时间范围的起始时刻)。示时间范围的起始时刻)。 4) 坐标系标签坐标系标签(Tick labels) 功功能能描描述述:确确定定Scope模模块块中中各各坐坐标标系系是是否否带带有有坐标轴标

33、签。坐标轴标签。 下方坐标系使用标签(下方坐标系使用标签(bottom axis only)以及)以及都不使用标签(都不使用标签(none)。用户最好使用标签,这)。用户最好使用标签,这有利于对信号的观察理解有利于对信号的观察理解. 5) 信号显示点数限制信号显示点数限制(Limit data points to last) 功功能能描描述述:限限制制信信号号显显示示的的数数据据点点的的数数目目,Scope模模块块会会自自动动对对信信号号进进行行截截取取以以显显示示信信号号的的最最后后n个个点点(这里(这里n为设置的数值)。为设置的数值)。 6) 保存信号至工作空间变量保存信号至工作空间变量(

34、Save data to workspace) 功功能能描描述述:将将由由Scope模模块块显显示示的的信信号号保保存存到到Matlab工工作作空空间间变变量量中中,以以便便于于对对信信号号进进行行更更多多的的定定量量分分析析。数数据据保保存存类类型型有有三三种种:带带时时间间变变量量的的结结构构体体(structure with time)、结结构构体体(structure)以以及及数数组组变变量量(Array)。这这与与前前面面所所介介绍绍的的Sinks模块库中的模块库中的To workspace模块类似。模块类似。此此外外,在在Scope模模块块中中的的坐坐标标系系中中单单击击鼠鼠标标右

35、右键键,选选择择弹弹出出菜菜单单中中坐坐标标系系属属性性设设置置命命令令(axes properties),将将弹弹出出下下图图所所示示的的坐坐标标系系属属性性设设置置对对话话框框。用用户户可可以以对对Scope模模块块的的坐坐标标系系标标题题与与显显示示信信号号范范围围进进行行合合适适的的设设置置,以满足仿真输出结果显示的需要。以满足仿真输出结果显示的需要。坐标系属性设置对话框坐标系属性设置对话框 设置信号显设置信号显示幅值范围示幅值范围坐标系标题:一坐标系标题:一般采用信号名称般采用信号名称如何调用MATLAB工作空间中的信号矩阵作为模型输入。本例所需的输入为 。(1)编写一个产生信号矩阵

36、的)编写一个产生信号矩阵的M函数文件函数文件function TU=source925_1(T0,N0,K)t=linspace(0,K*T0,K*N0+1);N=length(t);u1=t(1:(N0+1).2;u2=(t(N0+2):(2*N0+1)-2*T0).2;u3(1:(N-(2*N0+2)+1)=0;u=u1,u2,u3;TU=t,u;在指令窗中,运行以下指令,在在指令窗中,运行以下指令,在MATLAB工作空间中产生工作空间中产生TU信号矩阵信号矩阵。TU=source925_1(1,100,4); 选中选中exm925_1模型窗菜单模型窗菜单【Simulation:Start

37、】,示波,示波器呈现右图信号。器呈现右图信号。积分模块直接构造微分方程求解模型积分模块直接构造微分方程求解模型假设从实际自然界(力学、电学、生态等)或社会中,抽象出有初始状态为0的二阶微分方程 是单位阶跃函数。本例演示如何用积分器直接构搭求解该微分方程的模型。仿真操作后,保存在仿真操作后,保存在MATLAB工作空间中的数据工作空间中的数据clftt=ScopeData.time;%为书写简单,把为书写简单,把构架域的时间数据另赋给构架域的时间数据另赋给ttxx=ScopeData.signals.values;%目的同上。目的同上。xm,km=max(xx);plot(tt,xx,r,Line

38、Width,4),hold onplot(tt(km),xm,b.,MarkerSize,36),hold offstrmax=char(最大值最大值,t = ,num2str(tt(km),x = ,num2str(xm);text(6.5,xm,strmax),xlabel(t),ylabel(x) 利用存放在利用存放在MATLAB工作空间中的仿真数据所绘制的曲线工作空间中的仿真数据所绘制的曲线 4 Simulink子系统介绍子系统介绍Simulink提供的子系统功能可以大大地增强提供的子系统功能可以大大地增强Simulink系统模型框图的可读性。系统模型框图的可读性。子系统可以理解为一种

39、子系统可以理解为一种“容器容器”,此容器能够将,此容器能够将一组相关的模块封装到一个单独的模块中,并且一组相关的模块封装到一个单独的模块中,并且与原来系统模块组的功能一致。与原来系统模块组的功能一致。子系统建立方法子系统建立方法(2种种)在已有的系统模型中建立子系统:在已有的系统模型中建立子系统:首先框选待封装的区域,即在模型编辑器背景首先框选待封装的区域,即在模型编辑器背景中单击鼠标左键并拖动,选中需要放置到子系中单击鼠标左键并拖动,选中需要放置到子系统中的模块与信号(或在按下统中的模块与信号(或在按下Shift键的同时,键的同时,用鼠标左键单击所需模块);然后选择用鼠标左键单击所需模块);

40、然后选择Edit菜菜单下的单下的Create Subsystem,即可建立子系统。,即可建立子系统。建立空的子系统:建立空的子系统:Subsystems模块库中的模块建立子系统。这模块库中的模块建立子系统。这样建立的子系统内容为空,然后双击子系统对样建立的子系统内容为空,然后双击子系统对其进行编辑。其进行编辑。子系统操作子系统操作 在在生生成成子子系系统统之之后后,用用户户可可以以对对子子系系统统进进行行各各种种与与系系统统模模块块相相类类似似的的操操作作,这这时时子子系系统统相相当当于于具具有有一一定定功功能能的的系系统统模模块块。例例如如,子子系系统统的的命命名名、子子系系统统视视图图的的

41、修修改改、子子系系统统的的显显示示颜颜色色等等等等。当当然然子子系系统统也也有有其其特特有有的的操操作作,如如子子系系统统的的显显示示(用用鼠鼠标标左左键键双双击击子子系系统统模模块块即即可打开子系统)、子系统的封装等等。可打开子系统)、子系统的封装等等。Inport输入模块与输入模块与Outport输出模块输出模块 在在系系统统模模型型中中建建立立子子系系统统时时,Simulink会会自自动动生生成成Inport模模块块(Sources模模块块库库中中的的In1模模块块)与与Outport模模块块(Sinks模模块块库库中中的的Out1模模块块)。Inport模模块块作作为为子子系系统统的的

42、输输入入端端口口,Outport作作为为子子系系统统的的输输出出端端口口,它它们们被被用用来来完完成成子子系系统统和和主主系统之间的通讯。系统之间的通讯。 Inport和和Outport用用来来对对信信号号进进行行传传递递,不不改改变变信信号号的的任任何何属属性性;另另外外,信信号号标标签签可可以以越越过过它它们们进进行行传传递递。如如果果需需要要建建立立多多输输入入多多输输出出的的子子系系统统,则则需需要要使使用用多多个个Inport模模块块与与Outport模模块块,而而且且最最好好使使用用合合适适的的名名称称对对Inport模模块块与与Outport模块进行命名。模块进行命名。5 Sim

43、ulink与与Matlab的接口设计的接口设计由由MATLAB工作空间变量设置系统模块参工作空间变量设置系统模块参数数模块参数可以是常量也可以工作空间变量模块参数可以是常量也可以工作空间变量直直接接使使用用MATLAB工工作作空空间间中中的的变变量量设设置置模模块块参数。参数。使用变量的表达式设置模块参数。使用变量的表达式设置模块参数。例例如如,如如果果a是是定定义义在在MATLAB中中的的变变量量,则则表表达达式式a、a2+5、exp(a)等等均均可可以以作作为为系系统统模模块块的的参参数数将信号输出到将信号输出到MATLAB工作空间中工作空间中 使使用用示示波波器器模模块块Scope的的输

44、输出出信信号号,可可以以使用户对输出的信号进行简单的定性分析。使用户对输出的信号进行简单的定性分析。 使使用用Sinks模模块块库库中中的的To Workspace 模模块块,可可以以轻轻易易地地将将信信号号输输出出到到MATLAB工工作作空空间间中中。信信号号输输出出的的名名称称在在To Workspace模模块块的的对对话话框框中中设设置置,此此对对话话框框还还可可以以设设置置输输出出数数据据的的点点数数、输输出出的的间间隔隔,以以及及输输出出数数据据的的类类型型等等。其其中中输输出出类类型型有有三三种种形形式式:数数组组、结结构构以以及及带带有有时时间间变变量量的的结结构构。仿仿真真结结

45、束束或或暂暂停停时时信信号号被被输输出到工作空间中。出到工作空间中。使用工作空间变量作为系统输入信号使用工作空间变量作为系统输入信号 Simulink与与MATLAB的的数数据据交交互互是是相相互互的的,除除了了可可以以将将信信号号输输出出到到MATLAB工工作作空空间间中中之之外外,用用户户还还可可以以使使用用MATLAB工工作作空空间间中中的的变变量量作作为为系系统统模模型型的的输输入入信信号号。使使用用Sources模模块块库库中中的的From Workspace模模块块可可以以将将MATLAB工工作作空空间间中中的的变变量量作为系统模型的输入信号。此变量的格式如下所示:作为系统模型的输

46、入信号。此变量的格式如下所示: t=0:0.1:10; x=sin(t); input=t,x; 系系统统输输入入信信号号input的的作作用用相相当当于于Sources模模块块中中的的Sine Wave模块模块向量与矩阵向量与矩阵Simulink所所使使用用的的信信号号可可以以是是标标量量也也能能够够传传递递和和使使用用向向量量信信号号。例例如如,向向量量增增益益可可以以作作用在一个标量信号上,产生一个向量输出。用在一个标量信号上,产生一个向量输出。Simulink 最最重重要要的的特特性性就就是是支支持持矩矩阵阵形形式式的的信信号号,它它可可以以区区分分行行和和列列向向量量并并传传递递矩矩

47、阵阵。通通过过对对模模块块做做适适当当的的配配置置,可可以以使使模模块块能能够够接受矩阵作为模块参数。接受矩阵作为模块参数。MATLAB Function与与Function模块模块 除除了了使使用用上上述述的的方方式式进进行行Simulink与与MATLAB之之间间的的数数据据交交互互,用用户户还还可可以以使使用用Functions and Tables 模模块块库库中中的的 Function模模块块(简简称称为为Fcn模模块块)或或Functions and Tables 模模块块库库中中的的MATLAB Function模模块块(简简称称为为MATLAB Fcn模块)进行彼此间的数据交互

48、。模块)进行彼此间的数据交互。 Fcn模块一般用来实现简单的函数关系,在模块一般用来实现简单的函数关系,在Fcn模块中:模块中: (1) 输入总是表示成输入总是表示成u,u可以是一个向量。可以是一个向量。 (2)可以使用可以使用 C 语言表达式,例如语言表达式,例如sin(u1)+cos(u2)。 (3) 输出永远为一个标量。输出永远为一个标量。 (2) 可以使用可以使用 C 语言表达式,例如语言表达式,例如sin(u1)+cos(u2)。 (3) 输出永远为一个标量。输出永远为一个标量。 MATLAB Fcn一一般般用用来来调调用用MATLAB函函数数来来实实现现一一定的功能,在定的功能,在

49、MATLAB Fcn模块中:模块中: (1) 所所要要调调用用的的函函数数只只能能有有一一个个输输出出(可可以以是是一一个个向向量)。量)。 (2) 单单输输入入函函数数只只需需使使用用函函数数名名,多多输输入入函函数数输输入入需需要引用相应的元素,如要引用相应的元素,如mean、sqrt、myfunc(u(1),u(2)。 (3) 在每个仿真步长内都需要调用在每个仿真步长内都需要调用MATLAB解释器。解释器。 使使用用Fcn模模块块与与MATLAB Fcn模模块块进进行行Simulink与与MATLAB之间的数据交互。之间的数据交互。使用使用Fcn与与MATLAB Fcn模块进行数据交互模块进行数据交互 函数表达式函数表达式 Matlab函数 MATLAB函数

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号