44
Simulink 建建建建建

Simulink 建模与仿真

Embed Size (px)

DESCRIPTION

Simulink 建模与仿真. 第 7 讲: Simulink 仿真基础. Simulink 能做什么? Simulink 介绍 简单例子 demo. 1 、 Simulink 是什么?. Simulink 是基于 MATLAB 环境之上的高性能的系统级仿真设计平台。 是实现动态系统建模和仿真的一个集成环境。 它可以非常容易的实现 可视化建模 , 使得用户可以把更多的精力投入到系统模型的构建,而非语言的编程上。从而 把理论研究和工程实践有机的结合在一起。. simulink 模型 : simulink 模型在视觉上表现为方框图,在 - PowerPoint PPT Presentation

Citation preview

Page 1: Simulink 建模与仿真

Simulink 建模与仿真

Page 2: Simulink 建模与仿真

第 7 讲: Simulink 仿真基础 Simulink 能做什么? Simulink 介绍 简单例子 demo

Page 3: Simulink 建模与仿真

1 、 Simulink 是什么? Simulink 是基于 MATLAB 环境之上的高性能的系统级仿真设计平台。 是实现动态系统建模和仿真的一个集成环境。 它可以非常容易的实现可视化建模,使得用户可以把更多的精力投入到系统模型的构建,而非语言的编程上。从而把理论研究和工程实践有机的结合在一起。

Page 4: Simulink 建模与仿真
Page 5: Simulink 建模与仿真

simulink 模型: simulink 模型在视觉上表现为方框图,在文件上则是扩展名为 mdl 的 ASCII 代码;在数学上体现为一组微分方程或差分方程;在行为上模拟了物理器件构成的实际系统的动态特性。 simulink 的一般结构:

源模块 显示模块系统模块

Page 6: Simulink 建模与仿真

在学术界和工业领域, Simulink 已经成为动态系统建模和仿真领域中应用最为广泛的软件之一。由于 Simulink 是采用模块组合方式来建模,从而可以使得用户能够快速、准确地创建动态系统的计算机仿真模型,评估不同地算法和结构,并验证系统的性能。 Simulink 模型可以用来模拟线性和非线性、连续和离散或者两者的混合系统,也就是说它可以用来模拟几乎所有可能遇到动态系统。另外 Simulink 还提供一套图形动画的处理方法,使用户可以方便的观察到仿真的整个过程。 Simulink 没有单独的语言,但是它提供了 S函数规则。所谓的 S函数可以是一个 M函数文件、 FORTRAN 程序、C或 C++ 语言程序等 ,通过特殊的语法规则使之能够被 Simulink 模型或模块调用。 S函数使 Simulink 更加充实、完备,具有更强的处理能力。

Page 7: Simulink 建模与仿真

同 Matlab 一样, Simulink 也不是封闭的 ,他允许用户可以很方便的定制自己的模块和模块库。同时 Simulink 也同样有比较完整的帮助系统,使用户可以随时找到对应模块的说明,便于应用。 目前,随着软件的升级换代,在软硬件的接口方面有了长足的进步,使用 Simulink 可以很方便地进行实时的信号控制和处理、信息通信以及 DSP的处理。

Page 8: Simulink 建模与仿真

2 、 Simulink 介绍 如何进入 新建一个 .mdl 文件 模块库 公共模块库:最基础、最通用的模块库, 它可以被应用到不同的专业领域中。 专业模块库

Page 9: Simulink 建模与仿真

SIMULINK 的模块库介绍 SIMILINK 模块库按功能进行分为以下 9 类子库:

Continuous (连续模块库) Discrete (离散模块库) Function&Tables (通用函数及列表库) Math (数学函数库) Nonlinear (非线性模块库) Signals&Systems (信号处理及系统类模块库) Sinks (输出显示模块库) Sources (输入源模块库) Subsystems ( 子系统模块库 )

Page 10: Simulink 建模与仿真

库的类型 Sources 库

Page 11: Simulink 建模与仿真

Sinks 库 Discrete 库 Continuous 库

Page 12: Simulink 建模与仿真

Math 库 Nonlinear 库

Page 13: Simulink 建模与仿真

Signal & Systems 库

Page 14: Simulink 建模与仿真

Subsystems 库

Page 15: Simulink 建模与仿真

Functions & Tables 库

Page 16: Simulink 建模与仿真

Source 库 模 块 名 说 明Clock 显示或者提供仿真时间Constant 产生一个常数值信号Digital clock 产生数字采样时间信号Digital pulse

generator产生数字脉冲信号

From file 从文件读取数据输入From work space 从工作间定义的矩阵读入数据Pulse generator 产生脉冲信号Ramp 产生“斜坡”信号Random number 产生正态分布的随机信号Repeating sequence 产生周期序列信号Signal generator 信号发生器Sine wave 正弦波信号Step 产生一个阶跃信号Uniform random

number产生均匀分布的随机信号

Page 17: Simulink 建模与仿真

模 块 名 说 明Display 显示输入信号的值Scope 显示信号的波形Stop simulation 当输入信号为 0时结束仿真To file 向文件中写数据To workspace 向工作间定义的变量写数据到XY graph Matlab 图形窗口显示信号的二维图

Sinks 库

Page 18: Simulink 建模与仿真

模 块 名 说 明Discrete filter 实现 IIR 和 FIR滤波器Discrete state-space 实现离散状态空间系统Discrete-time integrator

离散时间积分器Discrete transfer fcn 实现离散传递函数Discrete zero-pol 实现用零极点表达的离散传递函数First-order hold 实现一阶采样保持系统Unit delay 单位采样时间延迟器Zero-order hold 实现采样的零阶保持

Discrete 库

Page 19: Simulink 建模与仿真

模 块 名 说 明Derivative 信号的微分运算Integrator 信号的积分运算Memory 输出前一个时间步的输入值State-space 实现线性状态空间系统Transfer fcn 实现线性传递系统Transport delay 对输入信号进行传输延时Variable transport

delay对输入信号进行可变时间的传输延时

Zero-pole 实现零-极点表达式的传递函数

Continuous 库

Page 20: Simulink 建模与仿真

模 块 名 说 明Abs 信号的绝对值Algebraic constraint 将输入信号强制为零Combinatorial logic 实现一个真值表Complex to magnitude-

angle输出一个复数输入信号的幅角和模

Complex to real-imag 输出一个复数信号的实部和虚部Dot product 向量信号的点积Gain 将模块的输入信号乘上一个增益Logical operator 输入信号的逻辑操作Magnitude-angle to

complex将模和幅角的信号转换成为复数信号

Math 库

Page 21: Simulink 建模与仿真

Math function 实现数学函数Matrix gain 将输入乘上一个矩阵增益Minmax 信号的最小值和最大值Product 信号的乘积或者商Real-imag to complex

将实部虚部的信号转换成为复数信号Relational operator 进行指定的关系运算Rounding function 实现舍入运算Sign 符号函数Slider gain 滑块增益Sum 输入信号的和Trigonometric function

实现三角函数运算

Page 22: Simulink 建模与仿真

模 块 名 说 明Fcn 实现自定义表达式的输入信号Look-up table 实现输入的线性查表Look-up table(2-d) 实现两维信号的线性查表Matlab fcn 实现 Matlab 函数或表达式输入信号S-Function S 函数模块

Function and Tables 函数

Page 23: Simulink 建模与仿真

模 块 名 说 明Backlash 偏移模块Coulomb&viscous

friction模拟原点不连续系统

Dead zone 输出一个零输出的区域Manual switch 在信号间手工切换Multiport switch 多端口的切换(开关)器Quantizer 按指定的间隔离散化输出信号Rate limiter 限制信号的改变速率Relay 实现继电器功能Saturation 限制信号的饱和度Switch 在两个信号间切换

Nonlinear 库

Page 24: Simulink 建模与仿真

模 块 名 说 明Bus selector 有选择的输出信号Configurable

subsystem代表任何一个从指定的库中选择的模块

Data store memory 定义共享数据存储空间Date store read 从共享数据空间读数据并输出Date story write 写数据到共享数据存储空间Date type

conversion将信号转换为其它数据类型

Demux 将一个向量信号分解输出Enable 为子系统增加激活断口From 从一个 Goto 模块接受信号Goto 传递信号到 From 模块Goto tag visibility 定义 Goto 模块标记的可视域Ground 将末连接的输入端接地

Signal and Systems 库

Page 25: Simulink 建模与仿真

模 块 名 说 明Hit crossing 检测过零点IC 设置一个信号的初始值Inpl 为子系统建立一个输入端口或建立一个外部入口Merge 将几个输入量合并为一个标量的输出串Modelinfo 显示模型信息Mux 将几个输入信号合成一个向量信号Out 1 为子系统建立一个输出端口或建立一个外部出口Probe 信号的宽度,采样时间及信号类型Subsystem 子系统模块Terminator 结束一个未连接的输出端口Trigger 为子系统增加触发端口Width 输入向量的输出宽度Selector 在输入信号中选择并输出

Page 26: Simulink 建模与仿真

3 、几个简单例子 1 、输入为一个正弦波信号,输出为此正弦波信号与一个常数的乘积。 系统输入: ,t≥0

系统输出: ttu sin)(

0),()( atauty

Page 27: Simulink 建模与仿真

图 选择系统所需模块

Page 28: Simulink 建模与仿真

图 系统模块之间的连线

Page 29: Simulink 建模与仿真

框选模块,选择 Edit 菜单中的 Create Subsystem

左键双击子系统显示其内容

图 子系统建立:选择模块生成子系统

Page 30: Simulink 建模与仿真

假设从实际自然界(力学、电学、生态等)或社会中,抽象出有初始状态为 0的二阶微分方程1 )改写微分方程2 )利用 SIMULINK库中的标准模块构作模型3 )仿真操作

)(2.04.02.0 tuxxx

Page 31: Simulink 建模与仿真

2 、系统 Bouncing Ball Model : A rubber ball is thrown into the air with a velocity of 15 meters per second from a height of 10 m. position ~ h (t) velocity ~ v (t)

Page 32: Simulink 建模与仿真

数学模型:

.8.0,0

,)(10)(

,81.9,15)(

0

0

vvhwhen

dttvth

ggdttvt

t

Page 33: Simulink 建模与仿真

Note the use of Zero Crossings to keep the ball above the ground

Bouncing Ball Model

1s

xo

Velocity

Terminator

1s

xo

PositionXo = 10

?

[15]

Initial Velocity [10]

Initial PositionGround

-9.81

Gravity

<= 0

-0.8

BallElasticity

V

Z

Page 34: Simulink 建模与仿真
Page 35: Simulink 建模与仿真

3 、典型 PID 控制系统

2450351024247

234

23

ssss

ssssKsKK di

p R(s) Y(t)

Page 36: Simulink 建模与仿真
Page 37: Simulink 建模与仿真

设置系统模块参数与仿真参数 在建立比例微分控制系统模型之后,需要设置各模块参数与系统仿真参数。系统模型中模块参数设置如下: ( 1) Transfer Fcn 模块设置: 设置分子 num [1 7 24 24], 设置分母 den 为 [1 10 35 50 24] ( 2) Step信号模块设置:使用系统的默认取值,即单位阶跃信号。 ( 3)其它各模块的参数设置

Page 38: Simulink 建模与仿真

在设置系统模块参数之后,接下来使用Simulation Parameters 仿真参数对话框中的 Solver选项卡设置系统仿真参数,如下所述: ( 1)仿真时间范围为 0 至 20s 。 ( 2 )使用变步长连续求解器( variable-step ),仿真算法为 ode45。 ( 3 )最大仿真步长( Max step size)为 0.01。 ( 4 )绝对误差( Absolute tolerance)为 1e-6。 ( 5)其余仿真参数使用默认取值。

Page 39: Simulink 建模与仿真

线性离散系统 z 变换 线性连续系统 拉氏变换 s 混合系统 非线性环节

模块修改参数 子系统 封装 S 函数

Page 40: Simulink 建模与仿真
Page 41: Simulink 建模与仿真
Page 42: Simulink 建模与仿真

电机模型(控制) Tank Inverted pendulum

Page 43: Simulink 建模与仿真

Simulink 优点 适应面广:包括线性、非线性系统;离 散、连续系统 结构和流程清晰:以方块图形式呈现, 仿真精细、贴近实际

Page 44: Simulink 建模与仿真