MATLAB7.0使用详解-第10章SIMULINK高级仿真技术.ppt_第1页
MATLAB7.0使用详解-第10章SIMULINK高级仿真技术.ppt_第2页
MATLAB7.0使用详解-第10章SIMULINK高级仿真技术.ppt_第3页
MATLAB7.0使用详解-第10章SIMULINK高级仿真技术.ppt_第4页
MATLAB7.0使用详解-第10章SIMULINK高级仿真技术.ppt_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

第10章 SIMULINK高级仿真技术 在上面的章节中,对SIMULINK使用的一些基础知 识、动态系统建模方法及仿真的方法做了详细的 介绍,这些对于简单的模型仿真已经足够,但事 实上,SIMULINK在许多领域有着更为广泛的应用 ,如航空、航天、控制、通信等,这就要求用户 了解一些SIMLINK的高级技术,如子系统的创建、 模型调试、S-函数等。 本章主要介绍SIMULINK的高级仿真技术,主要包 括:SIMULINK子系统、SIMULINK高级子系统、 SIMULINK模型调试、仿真分析以及系统代数环形 成与处理、函数的创建与使用等。 10.1 创建SIMULINK子系统 对于简单的系统,可以使用前面介绍的方法建立SIMULINK仿真模 型进行动态系统仿真。然而,对于复杂的系统,直接建立的模型 会显得功能模块繁多、输入输出关系复杂,这将给用户的仿真和 分析带来极大不便。子系统技术就可以很好的解决遇到的这种情 形,通常把复杂的框图进行分解,然后对分解后若干独立功能子 系统进行处理。此外,用户还可以将自己开发的模块做成模块组 ,作为系统的一个子系统。 使用子系统技术,可以使整个模型更加简洁、可读性更强、操作 分析更为便捷。创建子系统有两种方法: 将已经存在的模型的某些部分或全部使用模型窗口菜单栏【Edit /Create Subsystem】子项,将其压缩转换,使之成为子系统。 使用Subsystems模块库中的Subsystem模块直接创建子系统。 通过创建子系统,可以实现以下作用: 减少模型窗中的显示模块的个数,使得模型显得简洁整齐,可读 性提高。 模型层次化增强,便于用户按照层次来设计模型。 子系统可以反复调用,节省建模时间。 10.1.1 压缩已有模块创建子系统 这是一种比较简单的方法,也易于用户操作。压 缩已有模块创建子系统的方法其实也是一种自下 而上的设计方法。这里将通过一个实例来说明通 过压缩来创建子系统的具体方法。 10.1.2 利用子系统模块创建子系统 通过子系统创建模型的方法又称作子上而下的设 计方法。在创建模型的时候,直接使用子系统模 块,然后,再在模块中添加组成该子系统的相应 的模块。下面是利用该方法创建子系统的演示步 骤: 10.2 子系统的封装 使用子系统技术可以很好的优化系统模型得界面,是系统 模型的可读性更强。在对系统进行仿真时,首先要对系统 模块参数进行设置,对子系统也是如此,需要对子系统所 有模块进行合适的参数设置。 在第8章的例子中,子系统中模块的参数是逐一设置的,这 会给用户带来极大的不便。子系统的封装技术则是对子系 统的包装,使其成为一个真正意义上的SIMULINK模块,通 过封装,可以简化模型,用户使用一个动态设置的对话框 代替多个静态对话框,省去了对子系统内部结构的了解, 为用户的直接调用提供了方便。 一个已经创建的子系统的封装方法主要是通过使用下图所 示的封装编辑器来实现的,在封装编辑器中用户可以设置 封装参数设置、图标、初始以及文本。归纳起来,即设定 子系统初始值及特性、生成模块图标以及创建模块帮助文 档和描述信息。 10.2.1 Parameters标签页 子系统封装的目的之一就是提供一个友好的参数设置界面 。用户无需了解子系统内部结构,只需输入参数就可以对 系统进行设计和仿真。只有使用了子系统编辑器中的 Parameters标签页进行了参数设置,才算是真正意义上的 完成可封装,从而使得封装之后,双击模块能够出现与 SIMULINK模块库中模块一样的参数设置界面。 子系统封装编辑器界面Parameters标签页如图所示。 10.2.2 Initialization标签页 初始化设置标签页如图10.10所示。其中的对话变量表是在用户设 置了参数设置页(Parameters)之后自动生成的。初始化命令( Initialization conmmands)一般是MATLAB指令,可以通过 MATLAB命令定义封装后子系统空间中的各种变量,以便这些变量 在被封子系统模块图标绘制指令或其他初始化指令中使用。 10.2.3 Icon标签页 Icon标签页(如图所示)的作用就是让用户能够自定义系统模块 图标,同时给使用者提供一个更为友好的框图,并且使得模块功 能更加明确化。默认状态下封装子系统是不使用图标的。Icon标 签页包括图标选项栏Icon option、绘图命令栏Drawing commands 以及绘图命令举例栏Examples of drawing commands。 10.2.4 Documentation标签页 为了方便用户的理解和使用,Documentation标签 页(如图所示)可以帮助用户建立全面的帮助文 档。 10.2.5 子系统封装举例 【例】对如图10.18所示的模型进行封装。 改变封装子系统参数设置对话框中Gain和 Constant的值,设置Gain为1,Constant为2,即 表示赋值k=1、n=2,将变量值传递给子系统内的模 块。在Display中可以实时看到输出值的变化。图 中Display中显示的值就是上图参数设置的模块输 出值。 10.3 SIMULINK高级子系统技术 在SIMULINK模块库中有这样一类子系统,他只有在满足一 定条件下,才有动作。也就是说,系统的输出受出输入信 号之外的另一个信号控制。这个控制信号是从子系统的一 个单独端口输入的。这类子系统就是SIMULINK中的条件执 行子系统。按照控制方式的不同,可以将控制施行子系统 划分为以下几类。 使能子系统(Enable Subsystem):当子系统为正时,子 系统将被执行。 触发子系统(Triggered Subsystem):当控制信号的符号 发生变化时,即当信号过零时,自系统将被执行。其触发 方式有三种,控制信号上升沿时触发,控制信号下降沿时 触发,控制信号上升或下降沿时触发。 使能触发子系统(Enable and Triggered Subsystem): 在使能状态下被触发时执行子系统。即在控制信号为正的 同时出现触发信号,子系统才被执行。 10.3.1 使能子系统(Enable Subsystem ) 使能子系统(Enable Subsystem)将控制信号分 为允许(enable)和禁止(disenable)两种。当 控制信号为正时,即控制信号为允许状态,系统 可以执行使能子系统中的模块;否则就禁止模块 功能。 10.3.2 触发子系统(Triggered Subsystem) 触发子系统是指当控制信号发生符号变换时(包括信号由负变正 和信号由正变负),子系统才开始执行。当控制信号触发子系统 之后,子系统将保持系统的输出状态,直到下一次触发信号的到 来。按照控制信号符号变化方式的不同,触发子系统可分为三类 :上升沿触发子系统、下降沿触发子系统、以及上升或下降沿( 双边沿)触发子系统。 10.3.3 使能触发子系统 当触发模块和使能模块同时设置在同一个系统中 时,就构成了使能触发子系统。该系统的工作原 理和上两节介绍的使能子系统和触发子系统工作 原理相似。这里不再赘述。 注意: 1、系统在使能的状态下被触发才会执行。即系统 在接受到触发事件后,将监测使能信号,若使能 信号为正,则子系统执行一次,否则不执行。 2、当系统由多个使能或触发信号时,可先将相关 的信号组合,以便接入单一的使能或触发输入端 口。 10.4 SIMULINK的模型调试 如同诸多系统设置平台一样,SIMULINK也具有界 面友好、功能强大的调试功能。SIMULINK提供了 一个图形化的调试界面,简化了调试操作。 simulink调试器是一个定位和诊断模型错误的工 具通过SIMULINK调试工具,用户可以采用多种 方式对模型进行调试,发现其中可能存在的问题 并加以修改,从而使得用户的模型设计、仿真、 分析更加快速、便捷。 10.4.1 SIMULINK调试器的启动 SIMULINK图形调试界面的启动方式有两种: 单击模型窗口工具栏按钮,打开图形调试窗口。 选择菜单栏【Tools/Debugger】子项,打开图形 调试窗口,如图所示。 10.4.2 SIMULINK调试窗口 如上图所示的是SIMULINK调试器窗口,在窗口的 标题栏中显示被调试模型的名称。调试器由三部 分组成:工具栏、断点显示及断点设置条件、仿 真回路窗和信息显示标签页。 10.4.3 设置断点 如果用户知道自己系统执行到某些点或者满足一 定条件就会出错,那么设置断点就将显得很有用 。简单来说,断点就是仿真执行到该处时会暂停 仿真,这时用户可以通过Continue指令跳过这一 断点继续执行到下一断点。SIMULINK调试器允许 用户设置的断点有两类:无条件中断和有条件中 断。 10.4.4 系统调试举例 【例】以例1所建模型说明SIMULINK调试技术,例 1建立的系统仿真模型见图所示。 10.5 对仿真进行分析 10.5.1 使用sim指令运行模型 10.5.2 线性化的方法 10.5.3 平衡点的分析 10.5.4 仿真速度和精度 10.5.1 使用sim指令运行模型 在SIMULINK中进行仿真,用户除了使用模型窗口 菜单栏外,还可以使用MATLAB指令来进行仿真。 这使得模型参数值和输入值得更改更加方便,给 模型仿真和分析带来了方便。在MATLAB中,可以 通过sim、simset、simget指令来实现SIMULINK的 MATLAB指令仿真。 1sim指令 2.simset指令 3.simget指令 10.5.2 线性化的方法 有这样一种通用的解决问题的办法,那就是复杂 问题简单化,未知问题已知化。非线性问题也是 如此,常用的方法是通过一定的方式将其线性化 ,得到线性化模型之后,就利用成熟的线性分析 方法来研究非线性问题。 1.非线性系统的线性化描述 2.连续系统的线性化函数 3.离散系统和混合系统的线性化函数 10.5.3 平衡点的分析 平衡点(Equilibrium points)在数学上描述为 使状态一阶导数为零的点。其对于非线性系统的 系统稳定性的分析和评估是很有用的。 MATLAB中用于求取平衡点的函数是trim。trim函 数的工作原理是先从一个指定的初始值开始,借 助数值运算,搜索最接近初始值的平衡点。事实 上,该指令并不保证搜索到的平衡点就一定是最 接近初始值,当trim指令找不到导数为零的平衡 点时,将返回搜索中使得状态导数最大绝对值最 接近零的点。如果搜索失败,可以改变初始值再 进行尝试。 10.5.4 仿真速度和精度 SIMULINK仿真性能和精度受很多因素的影响,其 中包括模型的设计和仿真参数的选择。在大多数 情况下,用户只需要使用系统默认的算法和仿真 参数值就可以解决问题了。但对于一些特殊的模 型,用户必须选择适当的仿真参数和解法器,才 可以得到更加理想的仿真结果。 10.6 代数环的形成与处理 在介绍代数环(Algebraic Loops)前,先看这样一个简单例子。 (1)建立如图所示的模型(含有代数环)。 (2)设置仿真模块参数。 (3)运行仿真。将在MATLAB命令窗口中看到如下信息。 Found algebraic loop containing: li14/k2 li14/Sum (algebraic variable) 10.6.1 构成代数环的常见模块快及表征 在上面的例子中,我们看到了一个这样的提示: 系统中发现代数环,且代数环包括k2(Gain)模块 和Sun模块。在代数环中包含的模块都具有这样的 特性:当前时刻模块的输出依赖于当前时刻模块 的输入。这种输入输出关系在时间上“无延时” 模块被称为直通模块(Direct feedthrough)。 10.6.2 如何处理代数环问题 计算机在处理代数环计算时,采用的是一种迭代 算法,也就是说每个时间步里,计算机都将进行 这样的计算,这会使得计算机的计算时间增长。 同时,由于这种代数环包含的模块的“无延时” 特性,要求环上所有模块的输出在同一时刻计算 ,这与系统顺序仿真的要求不符。 要解决代数环问题,可以采取以下方式: 设计模型时尽量不采用代数环设计。 在计算速度可以忍受的范围内,可以不必介意代 数环问难。 对代数环采取代数约束。 切断模型中的代数环。 10.7 S-函数(系统函数)的创建和使用 SIMULINK为用户提供了许多内置模块库,诸如连 续模块库(Continous)、离散系统模块库( Discontinous)等,用户通过使用这些系统提供 的模块即可构建模型。但在实际问题中,很多情 况下,这些系统模型对于构建模型显得很有限, 这时就需要一些特殊的模块,他们由基本模块构 成,是基本模块的扩展。 S-函数就是SIMULINK提供的这样一个扩展模型库 的工具,他是由那些系统内置模块组合后封装得 到可以重复使用的模块。S-函数结合了SIMULINK 图形化的特点和MATLAB编程灵活的优点,从而给 用户扩展SIMULINK提供了强大的支持。 10.7.1 S-函数的概述 S-函数是系统函数(System function)的简称,是用计算 机语言描述的功能模块。在MATLAB,用户除了可以用 MATLAB代码编写S-函数外,还可用C言语、FORTRAN、Ada语 言编写S-函数。只是在这种程序便携时,需要用编译器生 成动态链接库(.dll)文件。此外,Mex文件也可以用来编 写S-函数。本结将主要介绍M-文件编写的S-函数。 S-函数采用了一种特殊的调用语法,实现S-函数与 SIMULINK解法器的交互。S-函数可以象其他SIMULINK标准 模块一样,与SIMULINK解法器Solver交互,接受来自 SIMULINK解法器的相关信息,并对解法器的指令做出适当 的响应,以实现其功能。并且,S-函数的这种交互性具有 广泛的适应性,虽与连续、离散和混合系统都适用。 S-函数可以利用MATLAB的丰富资源,其不仅仅局限于 SIMULINK提供的模块,而且可用c或c+等语言写S-函数, 此外还可以实现对硬件端口的操作,如操作Windows

温馨提示

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

评论

0/150

提交评论