《【教学课件】第7章Simulink的应用.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第7章Simulink的应用.ppt(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第 7 章 Simulink的应用 第第7 7章章 Simulink的应用的应用 7.1 Simulink工作平台的启动工作平台的启动 7.2 Simulink仿真原理仿真原理7.3 Simulink模块库模块库7.4 仿真模型的建立和模块参数及属性的设置仿真模型的建立和模块参数及属性的设置7.5 其他应用模块集及其他应用模块集及Simulink扩展库扩展库第 7 章 Simulink的应用 7.1 Simulink工作平台工作平台启动Simulink,通常有两种方法:(1)在MATLAB命令窗口中直接输入Simulink命令;(2)在MATLAB工具栏上单击Simulink按钮,如图7.1所
2、示。图7.1 启动Simulink 这样就可打开了Simulink的Simulink Library Brower(库模块浏览器),如图7.2所示。在菜单栏中执行File/New/Model命令,就建立了一个名为untitled的模型窗口,如图7.3所示。在建立了空的模块窗口后,用户可以在此窗口中创建自己需要的Simulink模型。第 7 章 Simulink的应用 图7.2库模块浏览器 图7.3 新建的空白模块窗口 第 7 章 Simulink的应用 7.2Simulink的仿真原理的仿真原理7.2.1 Simulink7.2.1 Simulink仿真模块仿真模块通常,Simulink仿真系
3、统包括输入(Input)、状态(states)和输出(Output)三个部分。输入模块输入模块:即信号源模块,包括常数字信号源和用户自定义信号;状态模块状态模块:即被模拟的系统模块,是系统建模的核心和主要部分;输出模块输出模块:即信号显示模块,它能够以图形方式、文件格式进行显示。注注意意:在设计一个模型时,必须先确定这三个部分的意,以及它们之间的联系;Simulink的仿真模型并非一定要完全包括这三个部分,它可以缺少其中一个或者两个;Simulink的状态模块可以是连续的、离散的,或者它们二者的结合。第 7 章 Simulink的应用 7.2.2 Simulink7.2.2 Simulink仿
4、真过程仿真过程1初始化阶段初始化阶段 对模型的参数进行估计,得到它们实际计算的值。展开模型的各个层次;按照更新的次序对模型进行排序;确定那些显式化的信号属性,并检查每个模块是否能够接受连接它们输入端的信号;确定所有非显式的信号采样时间模块的采样时间;分配和初始化存储空间,以便存储每个模块的状态和当前值的输出。2模型执行阶段模型仿真是通过数值积分来进行完成的,计算数值积分可以采用以下两步来进行:按照秩序计算每个模块的积分;根据当前输入和状态来决定状态的微分,得到微分矢量,然后把它返回给解法器,以计算下一个采样点的状态矢量。在每一个时间步中,Simulink依次解决下列问题:按照秩序更新模块的输出
5、;按照秩序更新模块的状态;检查模块连续状态的不连续点;计算下一个仿真时间步的时间。第 7 章 Simulink的应用 7.3.1 7.3.1 连续模块库连续模块库(Continuous)(Continuous)在连续模块(Continuous)库中包括了常见的连续模块,这些模块如图所示。7.3 Simulink模块库 在库模块浏览器中单击Simulink前面的“+”号,就能够看到Simulink的模块库,如图7.2所示。第 7 章 Simulink的应用 4.传递函数模块传递函数模块(Transfer Fcn)功能:功能:用执行一个线性传递函数。5.零极点传递函数模块零极点传递函数模块(Zer
6、o-Pole)功能:功能:用于建立一个预先指定的零点、极点,并用延迟算子s表示的连续。6存储器模块存储器模块(Memory)功能:功能:保持输出前一步的输入值。7传输延迟模块传输延迟模块(Transport Delay)功能:功能:用于将输入端的信号延迟指定的时间后再传输给输出信号。8可变传输延迟模块可变传输延迟模块(Variable Transport Delay)功能:功能:用于将输入端的信号进行可变时间的延迟。1.积分模块积分模块(Integrator):功功能能:对输入变量进行积分。说明:模块的输入可以是标量,也可以是矢量;输入信号的维数必须与输入信号保持一致。2.微分模块微分模块(D
7、erivative)功能:功能:通过计算差分u/t近似计算输入变量的微分。3.线性状态空间模块线性状态空间模块(State-Space)功能:功能:用于实现以下数学方程描述的系统:第 7 章 Simulink的应用 7.3.2 7.3.2 离散模块库离散模块库(Discrete)(Discrete)离散模块库(Discrete)主要用于建立离散采样的系统模型,包括的主要模块,如图所示。1零阶保持器模块零阶保持器模块(Zero-Order-Hold)功能:功能:在一个步长内将输出的值保持在同一个值上。第 7 章 Simulink的应用 2单位延迟模块单位延迟模块(Unit Delay)功能:功能
8、:将输入信号作单位延迟,并且保持一个采样周期相当于时间算子z-1。3离散时间积分模块离散时间积分模块(Discrete Time Integrator)功功能能:在构造完全离散的系统时,代替连续积分的功能。使用的积分方法有:向前欧拉法、向后欧拉法、梯形法。4离散状态空间模块离散状态空间模块(Discrete State Space)功能:功能:用于实现如下数学方程描述的系统:5离散滤波器模块离散滤波器模块(Discrete Filter)功能:功能:用于实现无限脉冲响应(IIR)和有限脉冲响应(FIR)的数字滤波器。6离散传递函数模块离散传递函数模块(Discrete Transfer Fcn
9、)功能:功能:用于执行一个离散传递函数。7离散零极点传递函数模块离散零极点传递函数模块(Discrete Zero-Pole)功能:功能:用于建立一个预先指定的零点、极点,并用延迟算子z-1表示的离散系统。8一阶保持器模块一阶保持器模块(First Order Hold)功能:功能:在一定时间间隔内保持一阶采样。第 7 章 Simulink的应用 7.3.3 7.3.3 函数与表格模块库函数与表格模块库(Function&Table)(Function&Table)函数与表格模块库(Function&Table)主要实现各种一维、二维或者更高维函数的查表,另外用户还可以根据自己需要创建更复杂的
10、函数。该模块库包括多个主要模块、如图7.7所示。第 7 章 Simulink的应用 1.一维查表模块一维查表模块(Look-Up Table)一维查表模块(Look-Up Table)实现对单路输入信号的查表和线性插值。2二维查表模块二维查表模块(Look-Up Table 2-D)功功能能:根据给定的二维平面网格上的高度值,把输入的两个变量经过查表、插值,计算出模块的输出值,并返回这个值。说明:对二维输入信号进行分段线性变换。3自定义函数模块自定义函数模块(Fcn)功能:功能:用于将输入信号进行指定的函数运算,最后计算出模块的输出值。说明:输入的数学表达式应符合C语言编程规范;与MATLAB
11、中的表达式有所不同,不能完成矩阵运算。4MATLAB函数模块函数模块(MATLAB Fcn)功能:功能:对输入信号进行MATLAB函数及表达式的处理。说明:模块为单输入模块;能够完成矩阵运算。注意:从运算速度角度,Math function模块要比Fcn模块慢。当需要提高速度时,可以考虑采用Fcn 或者S函数模块。5S-函数模块函数模块(S-Function)功功能能:按照Simulink标准,编写用户自己的Simulink函数。它能够将MATLAB语句、C语言等编写的函数放在Simulink模块中运行,最后计算模块的输出值。第 7 章 Simulink的应用 7.3.4 7.3.4 数学模块
12、库数学模块库(Math)(Math)数学模块库(Math)包括多个数学运算模块,如图7.8所示。第 7 章 Simulink的应用 3.矢量的点乘模块矢量的点乘模块(Dot Product)功能:功能:矢量的点乘模块(Dot Product)用于实现输入信号的点积运算。4.增益模块增益模块(Gain)功功能能:增益模块(Gain)的作用是把输入信号乘以一个指定的增益因子,使输入产生增益。1.求和模块求和模块(Sum)功能:功能:求和模块(Sum)用于对多路输入信号进行求和运算,并输出结果。2.乘法模块乘法模块(Product)功功能能:乘法模块(Product)用于实现对多路输入的乘积、商、矩
13、阵乘法或者模块的转置等。5.常用数学函数模块常用数学函数模块(Math Function)功能:功能:用于执行多个通用数学函数,其中包含exp、log、log10、square、sqrt、pow、reciprocal、hypot、rem、mod等。第 7 章 Simulink的应用 6.三角函数模块三角函数模块(Trigonometric Function)功能:功能:用于对输入信号进行三角函数运算,共有10种三角函数供选择。7.特殊数学模块特殊数学模块 特殊数学模块中包括求最大最小值模块(MinMax)、取绝对值模块(Abs)、符号函数模块(Sign)、取整数函数模块(Rounding Fu
14、nction)等。8.数字逻辑函数模块数字逻辑函数模块 数字逻辑函数模块包括复合逻辑模块(Combinational Logic)、逻辑运算符模块(Logical Operator)、位逻辑运算符模块(Bitwise Logical Operator)等。9.关系运算模块关系运算模块(Relational Operator)关系符号包括:=(等于)、(不等于)、(小于)、(大于)、=(大于等于)等。10.复数运算模块复数运算模块 复数运算模块包括计算复数的模与幅角(Complex to Magnitude-Angle)、由模和幅角计算复数(Magnitude-Angle to Complex)
15、、提取复数实部与虚部模块(Complex to Real and Image)、由复数实部和虚部计算复数(Real and Image to Complex)。第 7 章 Simulink的应用 非线性模块非线性模块(Nonlinear)(Nonlinear)非线性模块(Nonlinear)中包括一些常用的非线性模块,如图7.9所示。第 7 章 Simulink的应用 1.比率限幅模块比率限幅模块(Rate Limiter)功能:功能:用于限制输入信号的一阶导数,使得信号的变化率不超过规定的限制值。2饱和度模块饱和度模块(Saturation)功能:功能:用于设置输入信号的上下饱和度,即上下限
16、的值,来约束输出值。3量化模块量化模块(Quantizer)功能:功能:用于把输入信号由平滑状态变成台阶状态。4死区输出模块死区输出模块(Dead Zone)功能:功能:在规定的区内没有输出值。5继电模块继电模块(Relay)功能:功能:继电模块(Relay)用于实现在两个不同常数值之间进行切换。6选择开关模块选择开关模块(Switch)功能:功能:根据设置的门限来确定系统的输出。第 7 章 Simulink的应用 7.3.6 7.3.6 信号与系统模块库信号与系统模块库(signals&Systems)(signals&Systems)信号与系统模块库(signals&Systems)包括的
17、主要模块如图7.11所示。第 7 章 Simulink的应用 1.Bus 信号选择模块信号选择模块(Bus Selector)功能:功能:用于得到从Mux模块或其它模块引入的Bus信号。2.混路器模块混路器模块(Mux)功能:功能:把多路信号组成一个矢量信号或者Bus信号。3.分路器模块分路器模块(Demux)功能:功能:把混路器组成的信号按照原来的构成方法分解成多路信号。4.信号合成模块信号合成模块(Merge)功能:把多路信号进行合成一个单一的信号。5.接收接收/传输信号模块传输信号模块(From/Goto)功功能能:接收/传输信号模块(From/Goto)常常配合使用,From模块用于从
18、一个Goto模块中接收一个输入信号,Goto模块用于把输入信号传递给From模块。6初始值设定模块初始值设定模块(IC)功能:功能:初始值设定模块(IC)用于设定与输出端口连接的模块的初始值。第 7 章 Simulink的应用 7.3.7 7.3.7 信号输出模块信号输出模块(Sinks)(Sinks)信号输出模块(Sinks)包括的主要模块如图7.12所示。图7.12 输出显示模块库第 7 章 Simulink的应用 1.示波器模块示波器模块(Scope)功功能能:显示在仿真过程中产生的输出信号,用于在示波器中显示输入信号与仿真时间的关系曲线,仿真时间为x轴。2.二维信号显示模块二维信号显示
19、模块(XY Graph)功功能能:在MATLAB的图形窗口中显示一个二维信号图,并将两路信号分别作为示波器坐标的x轴与y 轴,同时把它们之间的关系图形显示出来。3.显示模块显示模块(Display)功功能能:按照一定的格式显示输入信号的值。可供选择的输出格式包括:short、long、short_e、long_e、bank等。4.输出到文件模块输出到文件模块(To File)功功能能:按照矩阵的形式把输入信号保存到一个指定的MAT文件。第一行为仿真时间,余下的行则是输入数据,一个数据点是输入矢量的一个分量。5.输出到工作空间模块输出到工作空间模块(To Workspace)功能:功能:把信号保
20、存到MATLAB的当前工作空间,是另一种输出方式。6.终止信号模块终止信号模块(Terminator)功能:功能:中断一个未连接的信号输出端口。7.结束仿真模块结束仿真模块(Stop simulation)功能:功能:停止仿真过程。当输入为非零时,停止系统仿真。第 7 章 Simulink的应用 信号源模块库信号源模块库(Sources)信号源模块库(Sources)包括的主要模块如图7.13所示。图7.13 信号源模块库第 7 章 Simulink的应用 1输入常数模块输入常数模块(Constant)功能:功能:产生一个常数。该常数可以是实数,也可以是复数。2信号源发生器模块信号源发生器模块
21、(Signal Generator)功能:功能:产生不同的信号,其中包括:正弦波、方波、锯齿波信号。3从文件读取信号模块从文件读取信号模块(From File)功功能能:从一个MAT文件中读取信号,读取的信号为一个矩阵,其矩阵的格式与To File模块中介绍的矩阵格式相同。如果矩阵在同一采样时间有两个或者更多的列,则数据点的输出应该是首次出现的列。4从工作空间读取信号模块从工作空间读取信号模块(From Workspace)功能:功能:从MATLAB工作空间读取信号作为当前的输入信号。5随机数模块随机数模块(Random Number)功能:功能:产生正态分布的随机数,默认的随机数是期望为0,
22、方差为1的标准正态分布量。6带宽限制白噪声模块带宽限制白噪声模块(Band Limited White Noise)功能:功能:实现对连续或者混杂系统的白噪声输入。7其它模块其它模块 除以上介绍的常用模块外,还包括其模块。各各模模块块功功能能可可通通过过以以下下方方法法查查看看:先进入Simulink工作窗口,在菜单中执行Help/Simulink Help命令,这时就会弹出Help界面。然后用鼠标展开Using SimulinkBlock ReferenceSimulink BlockLibraries就可以看到Simulink的所有模块。查看相应的模块的使用方法和说明信息即可。第 7 章
23、Simulink的应用 第 7 章 Simulink的应用 7.4 仿真模型的建立与模块参数与属性的设置1.1.仿真模块的建立仿真模块的建立 首先启动Simulink命令,建立 一 个 空 的 模 块 窗 口“untitled”,然 后 利 用Simulink提供的模块库,在此窗口中创建自己需要的Simulink模型。具具体体方方法法:在模块库浏览器中找到所需模块,选中该模块后右击鼠标,把它加入到一个模型窗口中即可完成模块的建立。图图7.14添加模块添加模块 第 7 章 Simulink的应用 2.2.模块参数与属性的设置模块参数与属性的设置 方方法法:在所建立的模型窗口中,选中相应的模块,单
24、击右击鼠标,在弹出的 快 捷 菜 单 中 单 击“Block parameters”选项(如图7.15所示),即可打开该模块的参数设置对话框,如图7.16(a)所示。右击鼠标,在弹出的快捷菜单中单击“Block Properties”选项,即可打开该模块的属性设置对话框,如图7.16(b)所示。图图7.15 Block paramenters选项选项 第 7 章 Simulink的应用 3.3.模块的连接模块的连接 一般情况下,每个模块都有一个或者多个输入口或者输出口。输入口通常是模块的左边的“”符号;输出口是右边的“”符号。模模块块的的连连接接方方法法:把鼠标指针放到模块的输出口,这时,鼠标
25、指针将变为“+”十字形;然后,拖运鼠标至其它模块的输入口,这时信号线就变成了带有方向箭头的线段。此时,说明这两个模块的连接成功,否则需要重新进行连接。4.4.运行仿真运行仿真 在运行仿真之前,首先保存已设置和连接的模型,然后就可以运行仿真。第 7 章 Simulink的应用 1.Simulink仿真注意仿真注意(1)Simulink的数据类型的数据类型 由于Simulink在仿真过程中,始终都要检查模型的类型安全性。模型的类型安全性是指从该模型产生的代码不出现上溢或者下溢现象,当产生溢出现象时,系统将出错误。查看模块的数据类型的方法是:在模型窗口的菜单中执行Format/Port Data T
26、ypes命令,这样每个模块支持的数据类型就显示出来了。要取消数据类型的查看方式,单击Port Data Types去掉其前面的勾号即可。7.4.3 Simulink7.4.3 Simulink仿真注意与技巧仿真注意与技巧图7.23 查看模块支持的数据类型第 7 章 Simulink的应用(2)数据的传输数据的传输 在仿真过程中,Simulink首先查看有没有特别设置的信号的数据类型,以及检验信号的输入和输出端口的数据类型是否产生冲突。如果有冲突,Simulink将停止仿真,并给出一个出错提示对话框,在此对话框中将显示出错的信号以及端口,并把信号的路径以高亮显示。遇到该情形,必须改变数据类型以适
27、应模块的需要。(3)提高仿真速度提高仿真速度 Simulink仿真过程,仿真的性能受诸多因素的影响,包括模型的设计和仿真参数的选择等。对于大多数问题,使用Simulink系统默认的解法和仿真参数值就能够比较好地解决。因素及解决方法:因素及解决方法:(1)仿真的时间步长太小。针对这种情况可以把最大仿真步长参数设置为默认值auto。(2)仿真的时间过长。可酌情减小仿真的时间。(3)选择了错误的解法。针对这种情况可以通过改变解法器来解决。(4)仿真的精度要求过高。仿真时,如果绝对误差限度太小,则会使仿真在接近零的状态附近耗费过多时间。通常,相对误差限为0.1%就已经足够了。(5)模型包含一个外部存储
28、块。尽量使用内置存储模块。第 7 章 Simulink的应用(4)改善仿真精度改善仿真精度 检验仿真精度的方法是:通过修改仿真的相对误差限和绝对误差限,并在一个合适的时间跨度反复运行仿真,对比仿真结果有无大的变化,如果变化不大,表示解是收敛的。说明仿真的精度是有效的,结果是稳定的。如果仿真结果不稳定,其原因可参是系统本身不稳定或仿真解法不适合。如果仿真的结果不精确,其原因很可能是:(1)模型有取值接近零的状态。如果绝对误差过大,会使仿真在接近零区域运行的仿真时间太小。解决的办法是修改绝对误差参数或者修改初始的状态。(2)如果改变绝对误差限还不能达到预期的误差限,则修改相对误差限,使可接受的误差
29、降低,并减小仿真的步长。第 7 章 Simulink的应用 2.Simulink2.Simulink仿真技巧仿真技巧连接分支信号线连接分支信号线 先连接好单根信号线,然后将鼠标指针放在已经连接好的信号线上,同时按住“Ctrl”键,拖动鼠标,连接到另一个模块。这样就可以根据需由一个信号源模块,引出多条信号线。如图7.28所示。图7.28 引出多条信号线示例 模块的编辑技巧模块的编辑技巧(1)调整模块大小(2)在同一窗口复制模块(3)删除模块(4)编辑模块标签第 7 章 Simulink的应用 7.5 其它应用模块集和Simulink扩展库1.通信模块集通信模块集(Communications B
30、lockset)图7.31 通信模块集中的模块库第 7 章 Simulink的应用 2数字信号处理模块集数字信号处理模块集(DSP Blockset)3.电力系统模块集电力系统模块集(Power System Blockset)第 7 章 Simulink的应用 4.Simulink扩展库扩展库 扩展信号输出模块库扩展信号输出模块库(Additional Sinks)图7.35 扩展信号输出模块库第 7 章 Simulink的应用 扩展离散库扩展离散库(Additional Discrete)扩展线性库扩展线性库(Additional Linear)图7.36 扩展离散库图7.37 扩展线性库第 7 章 Simulink的应用 转换库转换库(Transformations)图7.38 转换模块库触发模块库触发模块库(Flip Flops)图7.39 触发模块库第 7 章 Simulink的应用 线性化库线性化库(Linearization)图7.40 线性化库宇航模块库宇航模块库(Airspace Blocks)图7.41 宇航模块库