第7章:动态系统Simulink建模与仿真
第7章 Simulink的基础应用

第2节 Simulink的操作方法
2.1 Simulink的运行操作
1、运行Simulink的方法 在MATLAB的命令窗口直接键入“simulink”; 利用MATLAB工具条上的Simulink快捷键图标; 在MATLAB菜单中,选择“File-New-Model” 2、打开已存在的模型文件 在MATLAB主窗口中直接键入文件名(不加扩展 名); 在MATLAB菜单中,选择“File-Open-Model” 利用MATLAB工具条上的“打开”图标。
9
第3节 仿真模型的搭建方法与步骤
3.1 构建SIMULINK仿真系统模型 1.打开一个SIMULINK仿真模型窗口。
2.构建一个SIMULINK仿真模型。
3.运行SIMULINK仿真模型 构建好一个系统的模型之后,接下来的事情就是运 行模型,得出仿真结果。运行一个仿真的完整过程 分成三个步骤:设置仿真参数,启动仿真和仿真结
11
3.3 启动仿真启动仿真
设置仿真参数和选择解法器后,可以启动仿真运行。 选择菜单下start选项来启动仿真,如果模型中有些 参数没有定义,则会出现错误信息提示框。否则开始 仿真运行,结束时系统会发出一鸣叫声。
12
【例7-1】观察信号发生器输出波形 具体操作步骤如下: (1)进入SIMULINK,打开一个空白的模型窗口。 (2)打开SIMULINK的Sources模块库,选择Signal Generator(信号发生器)。 (3)打开SIMULINK的Sinks模块库,选择Scope(示波器) 。 (4)连接Signal Generator(信号发生器)模块和Scope(示 波器)模块。
7
5、改变模块大小 用鼠标拖曳模块四周的黑点。 6、模块重新命名 用鼠标单击模块名称即可。 7、改变模块及窗口颜色 使用Format菜单的Foreground Color指令或者 Screen Color 指令。 8、设定模块参数 利用鼠标左键双击模块图标。 9、设定模块属性 选中模块→右键点击Block Properties。 10、设定模块输入、输出信号 模块处理的信号包括标量信号和向量信号。
建模与仿真-PPT精品

Simulink没有单独的语言,但是它提供了S函数规则。所谓 的S函数可以是一个M函数文件、FORTRAN程序、C或C++ 语言程序等,通过特殊的语法规则使之能够被Simulink模型 或模块调用。S函数使Simulink更加充实、完备,具有更强 的处理能力。
Matlab具有友好的工作平台和编程环境、简单易学的编程语言、 强大的科学计算和数据处理能力、出色的图形和图像处理功能、 能适应多领域应用的工具葙、适应多种语言的程序接口、模块化 的设计和系统级的仿真功能等,诸多的优点和特点。
支持Matlab仿真是Simulink工具箱,Simulink一般可以附在 Matlab上同时安装,也有独立版本来单独使用。但大多数用户 都是附在Matlab上,以便能更好地发挥Matlab在科学计算上的 优势,进一步扩展Simulink的使用领域和功能。
③ 模型中的模块按更新的次序进行排序。排序算法产生一个列表 以确保具有代数环的模块在产生它的驱动输入的模块被更新后才 更新。当然,这一步要先检测出模型中存在的代数环。
④ 决定模型中有无显示设定的信号属性,例如名称、数据类型、 数值类型以及大小等,并且检查每个模块是否能够接受连接到它 输入端的信号。Simulink使用属性传递的过程来确定未被设定的 属性,这个过程将源信号的属性传递到它所驱动的模块的输入信 号;
目前,随着软件的升级换代,在软硬件的接口方面有了 长足的进步,使用Simulink可以很方便地进行实时的信 号控制和处理、信息通信以及DSP的处理。世界上许多 知名的大公司已经使用Simulink作为他们产品设计和开 发的强有力工具。
simulink基本知识

第七章 Simulink基础7.1 Simulink简介Simulink是一个用来对动态系统进行建模、仿真和分析的软件包,它支持连续、离散及两者混合的线性和非线性系统,也支持具有多种采样频率的系统。
在Simulink环境中,利用鼠标就可以在模型窗口中直观地“画”出系统模型,然后直接进行仿真。
它为用户提供了方框图进行建模的图形接口,采用这种结构画模型就像你用手和纸来画一样容易。
它与传统的仿真软件包微分方程和差分方程建模相比,具有更直观、方便、灵活的优点。
Simulink包含有Sinks(输出方式)、Source(输入源)、Linear(线性环节)、Nonlinear(非线性环节)、Connections(连接与接口)和Extra(其他环节)等子模型库,而且每个子模型库中包含有相应的功能模块,用户也可以定制和创建自己的模块。
用Simulink创建的模型可以具有递阶结构,因此用户可以采用从上到下或从下到上的结构创建模型。
用户可以从最高级开始观看模型,然后用鼠标双击其中的子系统模块,来查看其下一级的内容,以此类推,从而可以看到整个模型的细节,帮助用户理解模型的结构和各模块之间的相互关系。
在定义完一个模型后,用户可以通过Simulink的菜单或MATLAB的命令窗口键入命令来对它进行仿真。
菜单方式对于交互工作非常方便,而命令行方式对于运行一大类仿真非常有用。
采用Scope模块和其他的画图模块,在仿真进行的同时,就可观看到仿真结果。
除此之外,用户还可以在改变参数后迅速观看系统中发生的变化情况。
仿真的结果还可以存放到MATLAB的工作空间里做事后处理。
模型分析工具包括线性化和平衡点分析工具、MATLAB的许多基本工具箱及MATLAB的应用工具箱。
由于MATLAB和Simulink是集成在一起的,因此用户可以在这两种环境下对自己的模型进行仿真、分析和修改。
Simulink具有非常高的开放性,提倡将模型通过框图表示出来,或者将已有的模型添加组合到一起,或者将自己创建的模块添加到模型当中。
matlab教学PPT第7讲MATLAB仿真SIMULINK

第7讲 SIMULINK 图2-18 通过命令启动Simulink仿真
第7讲 SIMULINK
可见,仿真完成之后,工作空间中出现了“ScopeData” 结构变量,其中包含了示波器显示的全部波形数据。通过 “plot”命令可以作出这些数据对应的波形,
组建用户自定义模块库如果建立了许多自定义的子系统并且已经封装好了而这些已经封装的自定义模块又是会反复使用的就像simulink提供的模块库中那些模块一样在这种情况下就有必要对这些自定义的重用性较好的模块进行建库以方便管理和反复使用同时也可以作为新的专业库提供给其他用户使用
第7讲 SIMULINK
第7讲 MATLAB仿真_SIMULINK
第7讲 SIMULINK
• Simulink全方位地支持动态系统的建模仿真,它支持连 续系统、离散系统、连续离散混合系统、线性系统、非 线性系统、时不变系统、时变系统的建模仿真,也支持 具有多采样速率的多速率系统。可以说,在通用系统仿 真领域,Simulink是无所不包的。
• 结合MATLAB编程和Simulink可视化建模仿真各自的特 点,可以构建更为复杂的系统模型,并进行自动化程度 更高的仿真和仿真结果的数据分析,这是MATLAB的高 级应用方面。
第7讲 SIMULINK 图2-15 仿真结果
第7讲 SIMULINK
• 更换信号源为Sources子模块库中的SignalGenerator,并设置 信号源为0.2Hz的方波,幅度为1,如图2-16左边对话框所示。
• 设置示波器显示窗口的属性(Parameters),使之成为双踪 显示,然后将示波器第二输入节点与信号源输出相连,这 样我们就可以同时观察系统的输入输出波形了。系统建模 如图2-16中间窗口所示。
simulink动态系统建模仿真 第7章

图7-6
当选择变步长算法仿真模型时,Solver options选项区 中的Zero crossing control选项可以控制是否启动过零检测, 如图7-7所示。对于大多数模型来说,当选择较大步长仿真 模型时,启动过零检测会加速仿真过程。但是,如果模型有 极大的动态变化,则关闭过零检测会加速仿真过程,但会降 低仿真结果的精确度。
表7-1列出了Simulink中具有过零的模块,每个模块的过 零类型是不同的,有的过零只是用来通知求解器的模式是否 发生了改变,另外一些过零类型则与信号有关,用来驱动其 他模块。
模块 Abs Backlash De adZo ne From Workspace Hit Crossing If
Inte gra to r
图7-7
对于模型中的某些模块,用户可以在模块的参数对话框 中不选择Enable zero crossing detection选项来关闭模块的过 零检测,并设置Zero crossing control选项为Use local settings,表示只对模型进行局部过零检测。局部过零检测 可以减少Simulink频繁地对模型进行过零检测,而模型中的 其他模块同样可以获得使用过零检测带来的高精度。
这里将Sine Wave模块中的Frequency(rad/sec)值设置为2,把 模型中的输出数据传送到MATLAB工作区,在工作区中利用 plot(tout,yout)命令绘制输出结果曲线,可得到如图7-9所示的结 果。从图中可以看到,实线是Function模块的输出,该模块未检 测到过零事件,因此输出曲线在拐点处漏掉了一些点,正弦波的 绝对值输出不完全正确;虚线是Abs模块的输出,该模块检测到 了过零事件,在MATLAB工作区中输入下列命令:
MatlabSimulink系统建模和仿真

图:电容的充电、放电过程的仿真结果。在充电仿真中,输出信号 为系统的零状态响应。在放电过程仿真中,输出信号为系统的零输 入响应。 如果要仿真系统输入信号为任意函数的情况,只需要修改仿 真程序中的输入信号设臵即可。
“实例2.3”单摆运动过程的建模和仿真。 (1)单摆的数学模型 设单摆摆线的固定长度为l ,摆线的质量忽略不计,摆锤质 量为m ,重力加速度为g ,设系统的初始时刻为t=0 ,在任 意 t 0 时刻摆锤的线速度为v(t) ,角速度为 w(t ) ,角位移 为 (t ) 。以单摆的固定位臵为坐标原点建立直角坐标系, 水平方向为x 轴方向。如下图所示。
图:电容的充电电路以及等价系统
(1)数学分析
首先根据网络拓扑和元件伏安特性建立该电路方程组
dy (t ) i (t ) C dt
dy (t ) 1 1 x(t ) y (t ) dt RC RC
y(t ) x(t ) Ri (t )
并化简得
该方程也称为系统的状态方程。在方程中,变量y 代表电 容两端的电压,是电容储能的函数。本例中它既是系统的 状态变量,又是系统的输出变量。
7.1 Matlab编程仿真的方法
7.1.1 概述 通过编程的形式建立计算机仿真模型是最基本的 计算机建模方法。Matlab编程仿真过程就是用编 写脚本文件或函数文件来描述数学模型,并实现 计算机数值求解的过程。 我们把外界对系统产生作用的物理量称为输入 信号或激励,把由于系统内部储存的能量称为系 统的状态,而将系统对外界的作用物理量称为系 统的输出信号或响应。
图:模拟真实示波器显示的调幅仿真波形,仿真中考虑了输 入信号与示波器扫描不同步,载波相位噪声以及加性信道噪 声的影响
7.1.3 连续动态系统的Matlab编程仿真 7.1.3.1 几个实例
07-交互式仿真工具Simulink [MATLAB与控制系统仿真][张磊,任旭颖]
![07-交互式仿真工具Simulink [MATLAB与控制系统仿真][张磊,任旭颖]](https://img.taocdn.com/s3/m/6be148a5c8d376eeafaa3129.png)
例7-2-2:Random Number-生成标准分布的随机数,双击该图标后设置其参数。Mean:设置平 均值,默认值是0;Variance:方差,默认值是1(随机数与平均值之间偏差的评价值);Seed: 随机数种子,默认值是0(0-MAX),MATLAB通过种子值确定产生随机数值的算法,固定的 种子产生固定的随机数;Sample time:指定随机数样本之间的时间间隔。默认值是0.1。
Font style Foreground Color backround Color Block Shadow Show Block Name
设置模块字体 设置模块前景颜色 设置模块背景颜色 设置模板阴影 显示模块名称
转向操作(Rotate&Flip)
模块基本操作
MATLAB与控制系统仿真
7.3 Simulink建模与仿真
显示及输出 模块
(1)打开一个空白Simulink模型窗口; (2)进入Simulink浏览库界面,将功能模块由模块库窗口拖拽到模型窗口中;
Hale Waihona Puke (3)按照给定的框图修改编辑窗口中模块的参数;
(4)连接功能模块,构成所需的系统仿真模型;
(5)对仿真模型进行仿真,随时观察仿真结果,如果发现有不正确的地方,可以停止仿真,对参数进行修订;
MATLAB与控制系统仿真
7.3 Simulink建模与仿真
3.Simulink仿真参数的设置
例7-3-2.已知单位负反馈二阶系统的开环传递函数G(s),绘制单位阶跃响应的实验结构,并使用
simulink完成仿真实验。
(1)点击【New Model】,新建一个模型窗口;
G(s)
10 s2 3s
MATLAB与控制系统仿真
第7章SIMULINK仿真操作

Direct Lookup Table (n-D) x
2-D T(u)
Lookup Table (n-D)
xdat y ydat Lookup Table Dynamic
图7-16 查表模块库(Lookup Tables)及其功能说明
(6)User-Defined Functions模块库
u
fcn
In1 Out1 In1 Out1 In1 Out1 In1 Out1
Atomic Subsystem
CodeReuseSubsystem
Enabled and Triggered Subsystem
Enabled Subsystem
if (u1 > 0) Action Out1
f unction() In1
up u lo
Set bit 0 Bit Set U <= 0 & NOT U/z <= 0
Bitwise AND <= 3 0xD9 Bitwise Combinatorial Compare Logic To Constant Operator U > U/z Detect Increase U >= 0 & NOT U/z >= 0 Detect Rise Nonnegative Vy = Vu * 2^-8 Qy = Qu >> 8 Ey = Eu Shift Arithmetic
Bus Bus := signal1 Bus Assignment
Sim Out RTW
A Data Store Memory
A Data Store Read
A Data Store Write
[A] From
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用于设定死区区间。动态死 性模块(Saturation Danymic )可以根据 区非线性模块(Dead Zone 输入端口Up和Lo的设定值动态设置输出 非连续系统模块库(DisContinity )在以前版本中也称为非 Danymic)可以根据输入端 的上限和下限。 口Up和Lo的设定值动态设置 用于设置信号输出变化率 线性模块库,包含一些常用的非线性运算模块,主要包括: 死区区间。 限幅,即:上升变化率限幅 (Rising slew rate)和下降 变化率限幅(Falling slew rate)。 饱和非线性模块(Saturation)
离散状态空间模型(Discrete State-Space):离散状态空间模型实现 下面系统模型 一阶离散传递函数功能模块(Transfer Fcn First Order):用于建立 一阶的离散传递函数模型。 传递函数引导或终止模块(Transfer Fcn Lead or Lag):用于实现输 入信号的离散时间引导或终止补偿。 实数零点传递函数功能模块(Transfer Fcn Real Zero):用于实现具 有一个实数零点而无极点的传递函数模型。 加权滑动平均模块(Weighted Moving Average):模块采样并保持 最近N个输入信号,并根据设定的权重参数值(weights)计算它们的 平均值。该模块适用于SISO系统或SIMO系统模型。 记忆模块(Memory):输出前一时刻的输入信号值。 一阶保持器(First-Order Hold):实现离散采样系统的一阶采样保持 功能。 零阶保持器(Zero-Order Hold):实现离散采样系统的零阶采样保持 功能。
在零值为不连续点,在其它值 为连续线性增益。
(3)离散系统模块库 离散系统模块库主要包括用于建立离散采样系统的模块 ,包括:
单位延迟模块(Unit Delay):延迟一个采样周期 整数延迟模块(Integer Delay):延迟输入N个采样周期,N为自然数。 触发延迟模块(Tapped Delay):延迟N个采样周期后并输出全部的 输入信息。 离散时间积分器(Discrete-Time Integrator):离散积分器模块可以 代替积分器用来建立纯离散采样系统。在离散积分器模块参数对话框 里,可以设定初始状态值、增益值、输出饱和值。 离散传递函数功能模块(Discrete Transfer Fcn):可以建立离散传 递函数模型。 离散滤波器模块(Discrete Filter):用于建立离散系统滤波器仿真模 型。 离散零极点增益模型(Discrete Zero-Pole):使用零点、极点、增益 图7-4 值建立离散系统的零极点增益模型。 离散微分模块(Difference):输出当前输入信号值与前一个采样值 之差。派生离散微分模块(Discrete Derivative):模块的输出值按下 式计算:
建立上图所示系统框图的Simulink仿真模型的基本方法如下; 1.启动MATLAB/Simulink工具箱 2.建立Simulink空白模型
3.根据系统框图选择模块 4.模块的复制与删除操作 在模块库选中模块后,按住鼠标左键不放并拖动到Simulink 模型窗口指定位置,释放鼠标左键,完成模块的复制操作。 在模块库选中模块后,单击鼠标右键,在弹出的快捷菜单中, 单击“Add to Example_Model”命令将模块添加到指定模型 窗口,完成模块的复制操作。 在模块库选中模块后,在库浏览器窗口的Edit菜单中选择 Copy命令,用鼠标单击目标模型窗口中指定位置,再从模 型窗口的Edit菜单中选择Paste,完成模块的复制操作。 当模型窗口已有所需模块时,也可以直接从该处复制模块, 操作方是单击鼠标右键,在弹出的快捷菜单中单击“Copy” 命令,然后用鼠标右键单击模型窗口空白处,在弹出的快进 诶菜单中单击“Paste”命令来完成粘贴任务。此外,也可以 使用编辑菜单进行复制、粘贴操作。当然还可以用鼠标右键 按住所需复制的模块不放,并拖动到指定位置完成复制操作, 这可大大加快建模速度。
(1)在MATLAB命令窗口输入“simulink”命令。 (2)单击MATLAB主窗口左下角的“Start”按钮,在弹出的快 捷菜单中单击【Simulink】→【Library Browser】命令。 (3)单击MATLAB主窗口工具栏里的工具。
图7-1 Simulink窗口界面
2 Simulink模块库组件
继电模块输出值可以在两个设定值之间切换。当 继电器吸合时,它保持吸合状态输出直到输入信 号值小于继电断开值(Switch off point)。当继 电器分离时,它保持分离状态输出直到输入信号 可按设定的穿越检测方向 (Hit crossing direction) 值大于继电吸合值(Switch on point)。 检测信号达到设定值的时 磁滞回环模块(Backlash):建立间隙模型。 间。此时输出一个正脉冲。 继电模块(Relay)
第7章:动态系统Simulink建模与仿真
本章内容: Simulink工具箱简介 Simulink建模与仿真基本方法 动态系统Simulink仿真模型的建立 Simulink子系统技术 S-函数与Simulink仿真 *模糊逻辑工具箱简介
7.1 Simulink工具箱简介
7.1.1 Simulink工具箱简介
其它模块请参考MATLAB软件!
7.2 Simulink建模与仿真基本方法
7.2.1
简单系统仿真模型的建立
Simulink空白模型的建立可方法如下: 在MATLAB主窗口中选择菜单File/New/Model。 选择Simulink模块库浏览器窗口的菜单 File/New/Model。 单击Simulink模块库浏览器工具栏的新建图标 “”。
将各子模块连接起来后,构成如图所示的系统模型
7.2.2 Simulink仿真模型参数设置
1.基本模块参数设置 在完成模块的信号线连接并建立起系统的Simulink仿真模型 后,需要设置模块的参数。在Simulink模型里,双击需要修 改参数的模块,弹出参数设置对话框。
2. 仿真参数设置 单击模型窗口的“Simulation”菜单,在弹出的下拉菜单中单 击“Configuration Parameters”命令,打开“Configuration Parameters”对话框如图所示。
仿真参数配置完毕后,可运行仿真,方法有三种: ①单击模型窗口工具栏 工具 ②单击“Simulation”菜单,在弹出的下拉菜单中单击“Start”命令 ③同时按下快捷键“Ctrl+T”。 双击“Scope”模块,弹出如图所示仿真输出结果
3. 运行仿真与仿真输出
7.3动态系统Simulink仿真模型的建立
(用于设置饱和输出上下限。动态饱和非线 3) 非连续系统模块库
死区非线性模块(Dead Zone) 变化率限幅模块(Rate Limiter) 变化率动态限幅模块(Rate Limiter Dynamic)
可以根据输入端口Up和Lo的 设定值动态设置信号上升变 化率限幅参数R和下降变化 率限幅参数L。
逻辑操作(Logic Operator)模块, 信号合成器(Mux)模块, 输出接口(Out1)模块, 乘法(Product)模块, 关系操作(Relational Operator)模块, 饱和(Saturation)模块, 示波器(Scope)模块, 子系统(Subsystem)模块, 求和模块(Sum), 开关转换模块(Switch), 信号终端(Terminator)模块, 单位延迟(Unit Delay)模块。
Model-Wide Utility, Ports & Subsystems(接口与子系统模块库), Signal Attributes(信号属性模块库) Signal Routing(信号路由模块库) Sinks(输出模块库) Sources(信号源模块库) User-Defined Functions(用户自定义模块库) Additional Math & Discrete (附加数学和离散系统模块库)
量化模块(Quantizer):用于输入信号的量化处理。 穿越值检测模块(Hit Crossing): 库仑与黏性摩擦(Coulomb & Viscous Friction): 返回零模块(Wrap to Zero)
当输入信号值超过设定的极限值 (Threshold),输出信号返回到 零值。
由系统框图建立Simulink仿真模型
由传递函数建立Simulink仿真模型 由状态方程建立Simulink仿真模型 由微分方程建立Simulink仿真模型
7.1.1 由系统框图建立Simulink仿真模型
(2) 连续系统模块库 连续系统(Continuous)模块库提供了连续系统Simulink建 模与仿真的基本模块,有: 微分环节模块(Derivative), 积分环节模块(Integrator), 状态空间模型(State-space), 传递函数功能模块(Transfer Fun), 传输延迟模块(Transport Delay), 可变时间延迟模块(Veriable Transport Delay), 可变传输延迟模块(Veriable Transport Delay) 零极点增益模块(Zero-Pole) 图7-3
5.模块的连接
将鼠标移动到模块的输出端子上,当鼠标出现“十字”符号 后,按下鼠标左键并拖动到下级模块的输入端子上,完成模 块信号的连接。如上图所示。 选中信号输出模块,按下键盘“Ctrl”键并单击下级模块完成 模块信号的连接。 在已存在的信号线上引出新的信号线时,可用鼠标右键单击 源信号线,并按住不放拖动到指定位置,完成信号线的分支 连接。如图所示,在模块没有完成连接时,以红色虚线显示, 当连接完成后以黑色实线显示。