Download presentation
Presentation is loading. Please wait.
1
Simulink建模与仿真
2
第7讲:Simulink仿真基础 Simulink能做什么? Simulink介绍 简单例子 demo
3
1、Simulink是什么? Simulink是基于MATLAB环境之上的高性能的系统级仿真设计平台。 是实现动态系统建模和仿真的一个集成环境。 它可以非常容易的实现可视化建模,使得用户可以把更多的精力投入到系统模型的构建,而非语言的编程上。从而把理论研究和工程实践有机的结合在一起。
5
文件上则是扩展名为mdl的ASCII代码;在数学 上体现为一组微分方程或差分方程;在行为上 模拟了物理器件构成的实际系统的动态特性。
simulink 模型: simulink模型在视觉上表现为方框图,在 文件上则是扩展名为mdl的ASCII代码;在数学 上体现为一组微分方程或差分方程;在行为上 模拟了物理器件构成的实际系统的动态特性。 simulink 的一般结构:
6
在学术界和工业领域,Simulink已经成为动态系统建模和仿真领域中应用最为广泛的软件之一。由于Simulink是采用模块组合方式来建模,从而可以使得用户能够快速、准确地创建动态系统的计算机仿真模型,评估不同地算法和结构,并验证系统的性能。 Simulink模型可以用来模拟线性和非线性、连续和离散或者两者的混合系统,也就是说它可以用来模拟几乎所有可能遇到动态系统。另外Simulink还提供一套图形动画的处理方法,使用户可以方便的观察到仿真的整个过程。 Simulink没有单独的语言,但是它提供了S函数规则。所谓的S函数可以是一个M函数文件、FORTRAN程序、C或C++语言程序等,通过特殊的语法规则使之能够被Simulink模型或模块调用。S函数使Simulink更加充实、完备,具有更强的处理能力。
7
同Matlab一样,Simulink也不是封闭的,他允许用户可以很方便的定制自己的模块和模块库。同时Simulink也同样有比较完整的帮助系统,使用户可以随时找到对应模块的说明,便于应用。
目前,随着软件的升级换代,在软硬件的接口方面有了长足的进步,使用Simulink可以很方便地进行实时的信号控制和处理、信息通信以及DSP的处理。
8
2、Simulink介绍 如何进入 新建一个.mdl文件 模块库 公共模块库:最基础、最通用的模块库, 它可以被应用到不同的专业领域中。
专业模块库
9
SIMULINK的模块库介绍 SIMILINK模块库按功能进行分为以下9类子库: Continuous(连续模块库)
Discrete(离散模块库) Function&Tables(通用函数及列表库) Math(数学函数库) Nonlinear(非线性模块库) Signals&Systems(信号处理及系统类模块库) Sinks(输出显示模块库) Sources(输入源模块库) Subsystems (子系统模块库)
10
库的类型 Sources库
11
Sinks库 Discrete库 Continuous库
12
Math库 Nonlinear库
13
Signal & Systems库
14
Subsystems库
15
Functions & Tables库
16
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 产生均匀分布的随机信号
17
Sinks库 模 块 名 说 明 Display 显示输入信号的值 Scope 显示信号的波形 Stop simulation
模 块 名 说 明 Display 显示输入信号的值 Scope 显示信号的波形 Stop simulation 当输入信号为0时结束仿真 To file 向文件中写数据 To workspace 向工作间定义的变量写数据到 XY graph Matlab图形窗口显示信号的二维图
18
Discrete库 模 块 名 说 明 Discrete filter 实现IIR和FIR滤波器 Discrete state-space
模 块 名 说 明 Discrete filter 实现IIR和FIR滤波器 Discrete state-space 实现离散状态空间系统 Discrete-time integrator 离散时间积分器 Discrete transfer fcn 实现离散传递函数 Discrete zero-pol 实现用零极点表达的离散传递函数 First-order hold 实现一阶采样保持系统 Unit delay 单位采样时间延迟器 Zero-order hold 实现采样的零阶保持
19
Continuous库 模 块 名 说 明 Derivative 信号的微分运算 Integrator 信号的积分运算 Memory
模 块 名 说 明 Derivative 信号的微分运算 Integrator 信号的积分运算 Memory 输出前一个时间步的输入值 State-space 实现线性状态空间系统 Transfer fcn 实现线性传递系统 Transport delay 对输入信号进行传输延时 Variable transport delay 对输入信号进行可变时间的传输延时 Zero-pole 实现零-极点表达式的传递函数
20
Math库 模 块 名 说 明 Abs 信号的绝对值 Algebraic constraint 将输入信号强制为零
模 块 名 说 明 Abs 信号的绝对值 Algebraic constraint 将输入信号强制为零 Combinatorial logic 实现一个真值表 Complex to magnitude-angle 输出一个复数输入信号的幅角和模 Complex to real-imag 输出一个复数信号的实部和虚部 Dot product 向量信号的点积 Gain 将模块的输入信号乘上一个增益 Logical operator 输入信号的逻辑操作 Magnitude-angle to complex 将模和幅角的信号转换成为复数信号
21
Math function 实现数学函数 Matrix gain 将输入乘上一个矩阵增益 Minmax 信号的最小值和最大值 Product 信号的乘积或者商 Real-imag to complex 将实部虚部的信号转换成为复数信号 Relational operator 进行指定的关系运算 Rounding function 实现舍入运算 Sign 符号函数 Slider gain 滑块增益 Sum 输入信号的和 Trigonometric function 实现三角函数运算
22
Function and Tables函数 模 块 名 说 明 Fcn 实现自定义表达式的输入信号 Look-up table
模 块 名 说 明 Fcn 实现自定义表达式的输入信号 Look-up table 实现输入的线性查表 Look-up table(2-d) 实现两维信号的线性查表 Matlab fcn 实现Matlab函数或表达式输入信号 S-Function S函数模块
23
Nonlinear 库 模 块 名 说 明 Backlash 偏移模块 Coulomb&viscous friction 模拟原点不连续系统
模 块 名 说 明 Backlash 偏移模块 Coulomb&viscous friction 模拟原点不连续系统 Dead zone 输出一个零输出的区域 Manual switch 在信号间手工切换 Multiport switch 多端口的切换(开关)器 Quantizer 按指定的间隔离散化输出信号 Rate limiter 限制信号的改变速率 Relay 实现继电器功能 Saturation 限制信号的饱和度 Switch 在两个信号间切换
24
Signal and Systems库 模 块 名 说 明 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 将末连接的输入端接地
25
模 块 名 说 明 Hit crossing 检测过零点 IC 设置一个信号的初始值 Inpl 为子系统建立一个输入端口或建立一个外部入口 Merge 将几个输入量合并为一个标量的输出串 Modelinfo 显示模型信息 Mux 将几个输入信号合成一个向量信号 Out 1 为子系统建立一个输出端口或建立一个外部出口 Probe 信号的宽度,采样时间及信号类型 Subsystem 子系统模块 Terminator 结束一个未连接的输出端口 Trigger 为子系统增加触发端口 Width 输入向量的输出宽度 Selector 在输入信号中选择并输出
26
3、几个简单例子 1、输入为一个正弦波信号,输出为此正弦波信号与一个常数的乘积。 系统输入: ,t≥0 系统输出:
27
图 选择系统所需模块
28
图 系统模块之间的连线
29
图 子系统建立:选择模块生成子系统
30
假设从实际自然界(力学、电学、生态等)或
社会中,抽象出有初始状态为0的二阶微分方程 1)改写微分方程 2)利用SIMULINK库中的标准模块构作模型 3)仿真操作
31
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)
32
数学模型:
35
3、典型PID控制系统 R(s) Y(t)
37
设置系统模块参数与仿真参数 在建立比例微分控制系统模型之后,需要设置 各模块参数与系统仿真参数。系统模型中模块参数 设置如下:
(1)Transfer Fcn模块设置: 设置分子num [ ], 设置分母den为[ ] (2)Step信号模块设置:使用系统的默认取值,即单位阶跃信号。 (3)其它各模块的参数设置
38
在设置系统模块参数之后,接下来使用 Simulation Parameters仿真参数对话框中的Solver
选项卡设置系统仿真参数,如下所述: (1)仿真时间范围为0至20s。 (2)使用变步长连续求解器(variable-step),仿真算法为ode45。 (3)最大仿真步长(Max step size)为0.01。 (4)绝对误差(Absolute tolerance)为1e-6。 (5)其余仿真参数使用默认取值。
39
线性离散系统 z变换 线性连续系统 拉氏变换s 混合系统 非线性环节 模块修改参数 子系统 封装 S函数
42
电机模型(控制) Tank Inverted pendulum
43
Simulink优点 适应面广:包括线性、非线性系统;离 散、连续系统 结构和流程清晰:以方块图形式呈现, 仿真精细、贴近实际
44
thank you!
Similar presentations