Matlab仿真设计simulink_第1页
Matlab仿真设计simulink_第2页
Matlab仿真设计simulink_第3页
Matlab仿真设计simulink_第4页
Matlab仿真设计simulink_第5页
已阅读5页,还剩59页未读, 继续免费阅读

下载本文档

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

文档简介

1、Simulink,1 Simulink简介,Simulink是一个用来对动态系统进行建模、仿真和分析的软件包。使用Simulink来建模、分析和仿真各种动态系统(包括连续系统、离散系统和混合系统),将是一件非常轻松的事情。它提供了一种图形化的交互环境,只需用鼠标拖动的方法便能迅速地建立起系统框图模型,甚至不需要编写一行代码。 利用Simulink进行系统的建模仿真,其最大的优点是易学、易用,并能依托MATLAB提供的丰富的仿真资源。,提供了仿真库的扩充和定制机制 Simulink的开放式结构允许用户扩展仿真环境的功能:采用MATLAB、FORTRAN和C代码生成自定义模块库,并拥有自己的图标和

2、界面。 与MATLAB工具箱的集成 由于Simulink可以直接利用MATLAB的诸多资源与功能,因而用户可以直接在 Simulink下完成诸如数据分析、过程自动化、优化参数等工作。,Simulink应用领域,Simulink优点 适应面广:包括线性、非线性系统;离散、连续系统 结构和流程清晰:以方块图形式呈现, 仿真精细、贴近实际,simulink 的模型: simulink模型在视觉上表现为方框图,在文件上则是扩展名为m的ASCII代码(matlab6是扩展名为mdl的ASCII代码);在数学上体现为一组微分方程或差分方程;在行为上模拟了物理器件构成的实际系统的动态特性。 simulink

3、 的一般结构:,输入,系统,输出, 仿真原理 当在框图视窗中进行仿真的同时,matlab 实际上是运行保存于simulink内存中s函数的映象文件,而不是解释运行该m文件。 s函数并不是标准m文件,它m文件的一种特殊形式。 结构图创建方法 一个动态系统的创建过程,就是一个方框图的绘制过程,2 Simulink启动及模型建立,Simulink的启动主要有以下两种方法: 在MATLAB的命令窗口中输入simulink,结果是在桌面上出现一个Simulink Library Browser的窗口。 单击MATLAB主窗口的快捷按钮 ,打开Simulink Library Browser窗口 。,Si

4、mulink模型窗口的建立,在Simulink中打开一个空白的模型窗口的方法: 选中Simulink菜单系统中的File | New | Model菜单项后,会生成一个Simulink窗口; 单击Simulink工具栏中的“新建模型”图标; 在MATLAB的命令窗口中选择File | New | New Model菜单项;,启动Simulink,建立系统模型的基本操作,Simulink的模块库,Simulink的模块库能够对系统模块进行有效的管理与组织可以直接将模块库中的模块拖动或者拷贝到用户的系统模型中以构建动态系统模型。,Simulink公共模块库,Simulink中最为基础、最为通用的模

5、块库,它可以被应用到不同的专业领域中。 连续模块continuous、非连续模块discontinuous 离散模块discrete、查找表模块Look-up Table 数学运算Math Operations 模型验证模块Model Verification 模型扩充工具Model-Wide Utilities 端口和子系统模块Ports 将系统模块插入到系统模型中; 查看系统模块的参数设置; 以及回到系统模块的上一层库。,此外还可以进行以下操作: (1) 使用鼠标左键选择并拖动系统模块,并将其拷贝到系统模型中。 (2) 在模块搜索栏中搜索所需的系统模块。,例:简单系统的输入为一个正弦波信号

6、,输出为此正弦波信号与一个常数的乘积。要求建立系统模型,并以图形方式输出系统运算结果。 已知系统的数学描述为 系统输入: u(t)=sin t , t0 系统输出: y(t)=au(t), a0,相关操作:,模块库 Sine Wave来自sources; Gain来自Math Operations;Scope来自Sinks 连接方法 (1)拖动对应端口进行连接 (2)单击起始模块后,按Ctrl键再单击目标模块 模块复制 传统方式Ctrl+C/Ctrl+V、或Ctrl键再拖动模块 模块插入 对于单输入单输出模块,只需将这个模块移到线上就可以自动连接。,连线操作,连线分支 使用鼠标右键单击需要分支

7、的信号连线(光标变成“+”),然后拖动到目标模块。 使用鼠标左键单击并拖动以改变信号连线的路径。 按下Shift键的同时,在信号连线上单击鼠标左键并拖动,可以生成新的节点。 在节点上使用鼠标左键单击并拖动,可以改变信号连线路径。,信号组合 在利用Simulink进行系统仿真时,在很多情况下,需要将系统中某些模块的输出信号(一般为标量)组合成一个向量信号,并将得到的信号作为另外一个模块的输入。,来自Signal Routing的Bus Creator,3 Simulink模型仿真,系统模块参数设置与系统仿真参数设置 双击系统模块,打开系统模块的参数设置对话框。 在参数设置对话框中设置合适的模块参

8、数。 设置合适的系统仿真参数以进行动态系统的仿真 在Simulation菜单的Simulation parameters.子菜单中进行设置,如仿真时间等 运行仿真 单击系统模型编辑器上的Play图标(黑色三角)或选择Simulation菜单下的Start便可以对系统进行仿真分析。 仿真结束后双击Scope模块以显示系统仿真的输出结果,1、连续模块(Continuous) continuous.mdl Integrator:输入信号积分 Derivative:输入信号微分 State-Space:线性状态空间系统模型 Transfer-Fcn:线性传递函数模型 Zero-Pole:以零极点表示的

9、传递函数模型 Memory:存储上一时刻的状态值 Transport Delay:输入信号延时一个固定时间再输出 Variable Transport Delay:输入信号延时一个可变时间再输出,2、离散模块(Discrete) discrete.mdl Discrete-time Integrator:离散时间积分器 Discrete Filter:IIR与FIR滤波器 Discrete State-Space:离散状态空间系统模型 Discrete Transfer-Fcn:离散传递函数模型 Discrete Zero-Pole:以零极点表示的离散传递函数模型 First-Order Ho

10、ld:一阶采样和保持器 Zero-Order Hold:零阶采样和保持器 Unit Delay:一个采样周期的延时,3、 Function plot(t,y),plot(t,yout),Scope高级使用技术,1) Scope的参数设置 使用Scope模块的参数设置选项卡能够对系统仿真输出结果显示进行更多的控制,而不仅仅是上述的简单控制。图36、图37所示分别为Scope模块参数设置选项卡中的General选项卡与Data History选项卡。,Scope模块的General选项卡,Scope模块的Data history选项卡,下面简单介绍一下各选项卡的功能与使用。 1) 坐标系数目(Nu

11、mber of axes) 功能描述:在一个Scope输出模块中使用多个坐标系窗口同时输出多个信号。在默认设置下,Scope模块仅显示一个坐标系窗口。 2) 悬浮Scope开关(Floating scope) 功能描述:将Scope模块切换为悬浮Scope模块。,3) 显示时间范围(Time range) 功能描述:设置信号显示的时间范围。注意:信号显示的时间范围与系统仿真时间范围并不等同,并且坐标系所示的时间范围并非为绝对时间,而是指相对时间范围,坐标系的左下角的时间偏移(Time offset)给出了时间的起始偏移量(即显示时间范围的起始时刻)。 4) 坐标系标签(Tick labels)

12、 功能描述:确定Scope模块中各坐标系是否带有坐标轴标签。 下方坐标系使用标签(bottom axis only)以及都不使用标签(none)。用户最好使用标签,这有利于对信号的观察理解.,5) 信号显示点数限制(Limit data points to last) 功能描述:限制信号显示的数据点的数目,Scope模块会自动对信号进行截取以显示信号的最后n个点(这里n为设置的数值)。,6) 保存信号至工作空间变量(Save data to workspace) 功能描述:将由Scope模块显示的信号保存到Matlab工作空间变量中,以便于对信号进行更多的定量分析。数据保存类型有三种:带时间变

13、量的结构体(structure with time)、结构体(structure)以及数组变量(Array)。这与前面所介绍的Sinks模块库中的To workspace模块类似。,此外,在Scope模块中的坐标系中单击鼠标右键,选择弹出菜单中坐标系属性设置命令(axes properties),将弹出下图所示的坐标系属性设置对话框。用户可以对Scope模块的坐标系标题与显示信号范围进行合适的设置,以满足仿真输出结果显示的需要。,坐标系属性设置对话框,设置信号显,示幅值范围,坐标系标题:一,般采用信号名称,如何调用MATLAB工作空间中的信号矩阵作为模型输入。本例所需的输入为 。 (1)编写一

14、个产生信号矩阵的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】,示波器呈现右图信号。,积分模块直接构造微分方程求解模型,假

15、设从实际自然界(力学、电学、生态等)或社会中,抽象出有初始状态为0的二阶微分方程 是单位阶跃函数。本例演示如何用积分器直接构搭求解该微分方程的模型。,仿真操作后,保存在MATLAB工作空间中的数据 clf tt=ScopeData.time;%为书写简单,把构架域的时间数据另赋给tt xx=ScopeData.signals.values;%目的同上。 xm,km=max(xx); plot(tt,xx,r,LineWidth,4),hold on plot(tt(km),xm,b.,MarkerSize,36),hold off strmax=char(最大值,t = ,num2str(tt

16、(km),x = ,num2str(xm); text(6.5,xm,strmax),xlabel(t),ylabel(x),利用存放在MATLAB工作空间中的仿真数据所绘制的曲线,4 Simulink子系统介绍,Simulink提供的子系统功能可以大大地增强Simulink系统模型框图的可读性。 子系统可以理解为一种“容器”,此容器能够将一组相关的模块封装到一个单独的模块中,并且与原来系统模块组的功能一致。,子系统建立方法(2种),在已有的系统模型中建立子系统: 首先框选待封装的区域,即在模型编辑器背景中单击鼠标左键并拖动,选中需要放置到子系统中的模块与信号(或在按下Shift键的同时,用鼠

17、标左键单击所需模块);然后选择Edit菜单下的Create Subsystem,即可建立子系统。 建立空的子系统: Subsystems模块库中的模块建立子系统。这样建立的子系统内容为空,然后双击子系统对其进行编辑。,子系统操作 在生成子系统之后,用户可以对子系统进行各种与系统模块相类似的操作,这时子系统相当于具有一定功能的系统模块。例如,子系统的命名、子系统视图的修改、子系统的显示颜色等等。当然子系统也有其特有的操作,如子系统的显示(用鼠标左键双击子系统模块即可打开子系统)、子系统的封装等等。,Inport输入模块与Outport输出模块 在系统模型中建立子系统时,Simulink会自动生成

18、Inport模块(Sources模块库中的In1模块)与Outport模块(Sinks模块库中的Out1模块)。Inport模块作为子系统的输入端口,Outport作为子系统的输出端口,它们被用来完成子系统和主系统之间的通讯。 Inport和Outport用来对信号进行传递,不改变信号的任何属性;另外,信号标签可以越过它们进行传递。如果需要建立多输入多输出的子系统,则需要使用多个Inport模块与Outport模块,而且最好使用合适的名称对Inport模块与Outport模块进行命名。,5 Simulink与Matlab的接口设计,由MATLAB工作空间变量设置系统模块参数 模块参数可以是常量

19、也可以工作空间变量 直接使用MATLAB工作空间中的变量设置模块参数。 使用变量的表达式设置模块参数。 例如,如果a是定义在MATLAB中的变量,则表达式a、a2+5、exp(a)等均可以作为系统模块的参数,将信号输出到MATLAB工作空间中 使用示波器模块Scope的输出信号,可以使用户对输出的信号进行简单的定性分析。 使用Sinks模块库中的To Workspace 模块,可以轻易地将信号输出到MATLAB工作空间中。信号输出的名称在To Workspace模块的对话框中设置,此对话框还可以设置输出数据的点数、输出的间隔,以及输出数据的类型等。其中输出类型有三种形式:数组、结构以及带有时间

20、变量的结构。仿真结束或暂停时信号被输出到工作空间中。,使用工作空间变量作为系统输入信号 Simulink与MATLAB的数据交互是相互的,除了可以将信号输出到MATLAB工作空间中之外,用户还可以使用MATLAB工作空间中的变量作为系统模型的输入信号。使用Sources模块库中的From Workspace模块可以将MATLAB工作空间中的变量作为系统模型的输入信号。此变量的格式如下所示: t=0:0.1:10; x=sin(t); input=t,x; 系统输入信号input的作用相当于Sources模块中的Sine Wave模块,向量与矩阵 Simulink所使用的信号可以是标量也能够传递和使用向量信号。例如,向量增益可以作用在一个标

温馨提示

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

评论

0/150

提交评论