matlab Simulink建模与仿真.ppt [兼容模式]
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五章Simulink建模与仿真
Ø系统仿真的基本概念
Ø动态系统数学模型及其描述
Ø动态系统的Simulink仿真
Ø系统过零和代数环
Ø子系统和S-函数
Ø示例分析
系统仿真的基本概念
(一)系统(仿真的对象)
•系统是指具有某些特定功能、按照某些规律结合起来、互相作用、互相依存的所有物体的集合或总和。
它具有整体性和相关性两个基本特征。
•研究系统通常从以下三方面考虑:
实体:组成系统的元素、对象
属性:实体的特征。
活动:系统由一个状态到另一个状态的变化过程
系统仿真的基本概念
(二)系统模型
•系统模型是对实际系统的一种抽象,是系统本质的表述。
或者说模型是对真实世界中物体或过程的信息进行形式化的结果。
•系统仿真中所用的模型可分为实体模型和数学模型。
•实体模型,又称物理效应模型,是根据系统之间的相似性而建立起来的物理模型。
静态的实体模型最常见的是比例模型,如用于水洞实验以及实验水槽中的鱼雷比例模型。
模型类
型静态系统
模型
动态系统模型
连续系统模型
离散事件系
统集中参数分布参数时间离散
数学描
代数方程微分方程
传递函数
偏微分方
差分方程、Z变
换离散状态
概率分布排
系统仿真的基本概念
述
状态方程程
方程
队论
应用举
例
系统稳态
解
工程动力
学
系统动力
学
热传导场
计算机数据采样
系统
交通系统
市场系统
电话系统
计算机分时
系统
Petri
网
状态机UML……
系统仿真的基本概念
(三)系统仿真的定义
•系统仿真是以相似原理、系统技术、信息技术及其应用领域有关专业技术为基础,以计算机和各种专用物理效应设备为工具,利用
系统仿真的特殊功效•安全性
•经济性
系统仿真的作用
•优化系统设计。
在复杂的系统建立以前,能够通过改变仿真模型结构和调整参数来优化系统设计。
•对系统或系统的某一部分进行性能评价。
•节省经费。
仿真试验只需在可重复使用的模型上进行,所花费的成本比在实际产品上作试验低。
•重现系统故障,以便判断故障产生的原因。
•可以避免试验的危险性。
•进行系统抗干扰性能的分析研究。
•训练系统操作人员。
•系统仿真能为管理决策和技术决策提供依据。
系统仿真的基本概念
(四)系统仿真的分类
•按实现方式分:实物仿真、数学仿真、半实物仿真
•按仿真时钟与实际时钟的比例关系分类:实时仿真、欠实时仿真、超实时仿真
计算机仿真的基本概念
(五)仿真算法和仿真软件
•在建立了系统的数学模型后,需要将其转变为能够在计算机上运行(或试验)的仿真模型。
由于数字计算机只能进行离散点的数值计算,所以就必须将连续系统的数学模型离散化,推导出相应的递推计算公式,这一步骤通常称为仿真算法设计。
这实际上属于数值计算的内容,其发展已经相当完善了。
系统仿真的基本概念
•仿真软件是一类面向仿真用途的专用软件,它可能是面向通用的仿真,也可能是面向
某个领域的仿真。
它的功能可概括为:1)为仿真提供算法支持;2)模型描述的规范及处理;3)仿真试验的执行与控制;4)
仿真数据的显示、记录及分析;4)对模型、试验程序、资料、图形或知识的存储、检
索与管理。
系统仿真的基本概念
建立简单动态系统的仿真模型21/2u ,t [0,1]y u ,t 1 ∈ = > 例5.1
编写下列系统的仿真程序u 其
中为系统的输入变量
为时间变量
为系统的输出变量t y
建立简单动态系统的仿真模型•(1)离散系统的仿真模型
2
()()2()()y n =u n u n -1+3y n -1+例5.2 对于如下的离散系统其中系统的初始状态为y(0)3
=()2,0,1,2,u n n n ==L
系统输入为则系统在时刻0,1,2,…..的输出分别为22(0)3
(1)(1)2(0)3(0)40913
(2)(202(1)3(1)1643959
y y u u Y y u u y ==++=++==++=++=L
建立简单动态系统的仿真模型•(2)连续系统的仿真模型
例5.3 仿真下列系统
积分算法??
0 ),
sin(
)(
),
(
)(
)(≥
=
+
=t
t
t
u
t
u
t
u
t
y&
欧拉法:
)
,(1n n n n t y hf y y +=+对于微分方程:),(t y f y
=&0
0)(y t y =求解?
例2-8,5-4
动态系统的Simulink仿真
•What is Simulink?
•Working with Simulink
•How Simulink works
What is Simulink?•Simulink 是一个建模和仿真工具软件。
它采用图形化方法建立系统的模型,用户无需输入编程,通过Simulink环境即可启动系统的仿真过程,并将结果以图形等形式输出。
你只需要
描述系统
(建模)Simulink采
用Matlab计
算引擎对系
统进行求解。
Working with Simulink
动态系统的Simulink仿真
构建Simulink框图(Modeling)
•模块选择
•模块操作(复制、插入、连线、信号组合等)
•运行仿真
•模块名称
•框图注释
•信号标签与标签传递
鼠标和键盘的操作
建模操作鼠标和键盘操作
选择对象鼠标左键
选择一个以上的对象Shift+鼠标左键
从另一个窗口拷贝对象选中对象并拖动鼠标指针
移动对象选中对象并拖动鼠标指针
复制对象Ctrl+鼠标左键,然后拖动鼠标或鼠标右键,然后拖动鼠标模块间连线鼠标左键
断开模块间连线Shift+拖动模块
在模块周围布线Shift+画线
从其他线引线Ctrl+拖动连线
移动线段选中线段并拖动鼠标指针
移动顶点选中顶点并拖动鼠标指针
把连线分割成线段Shift+拖动线段
动态系统的Simulink仿真•例5-5 建立下面的系统的Simulink模型,并以图形方式输出系统运算结果:
=≥
u t t t
()sin,0
=≠
()(),0
y t au t a
动态系统的Simulink仿真仿真参数的设置
动态系统的Simulink仿真
仿真步长的设置
•不管采用何种求解器,Simulink总是在仿真过程中选用最大的仿真步长,Simulink的仿真步长由下式得到:
Simulink求解器
•离散求解器:离散系统的动态行为一般用差分方程描述,Simulink对离散系统的仿真核心是对离散系统差分方程的求解。
因此,Simulink可以做到对离散系统仿真的绝对精确(除去有限的数据截断误差)。
Simulink求解器
连续求解器:其核心是对系统微分或偏微分方程进行求解。
•变步长求解器:ode45、ode23、ode113等•定步长求解器:ode5、ode4、ode3等
•采用不同的连续求解器会对连续系统的仿真结果与仿真速度产生不同的影响,但一般不会对系统的性能分析产生较大的影响,因为用户可以设置具有一定的误差范围的连续求解器进行相应的控制。
动态系统的Simulink仿真
•Simulink与Matlab的接口设计
–由Matlab工作空间变量设置系统模块参数–将信号输出到Matlab工作空间中
–使用工作空间变量作为系统输入信号
–向量与矩阵
–Matlab Function与Function模块
动态系统的Simulink仿真
•由Matlab工作空间变量设置系统模块参数有两种形式:
(1)直接使用MATLAB工作空间中的变量设置模块参数;
(2)使用变量的表达式设置模块参数。
例如a是工作空间的变量,则a、a^2+5、exp(a)等均可作为系统模块的参数。
(此功能不推荐使用)
动态系统的Simulink仿真
将信号输出到Matlab工作空间中:
•使用Sinks模块库中的To Workspace模块,可以轻易地将信号输出到MATLAB工作空间中。
•参数设置包括:变量名、输出数据的点数、输出的间隔以及输出数据的类型等。
•类型包括:数组、结构以及带有时间变量的结构。
动态系统的Simulink仿真
•使用工作空间变量作为系统输入信号:•使用Sources模块库中的From Workspace 模块可以将MATLAB工作空间中的变量作为系统模型的输入信号。
动态系统的Simulink仿真•(6)Simulink的调试技术
执行至下一模块
执行至下一时刻开始调试或执行至下一断点
停止调试
在指定模块前设置断点
执行时显示指定输入输出
显示指定模块当前输入输出
条件断点设置
断点显示
动态系统的Simulink仿真
•例5-6 连续系统的仿真:蹦极跳系统
•例5-7 离散系统的仿真:人口变化系统的仿真
注意事项
系统过零和代数环
•在动态系统仿真过程中,所谓过零是指系统模型中的信号或系统模块特征的某种改变。
可以是以下两种情况:
(1)A信号在上一个仿真时间步长之内改变了符号。
(2)B系统模块在上一个仿真时间步长改变了模式(如积分器进入了饱和区段)。
系统过零和代数环
•过零一般用来表征动态系统中的某种不连续性,例如系统响应中的跳变、输入信号的脉冲与阶跃等。
•
当过零事件发生时,变步长求解器就会缩小仿真步长,即使求解误差满足绝对误差和相对误差的上限要求,这样做会使系统仿真的速度变慢。
•支持过零的模块:abs,DeadZone,Hit Crossing,Intergrator,Step,Switch,Saturation,Sign,Relay,MinMax,RelationalOperator等。
过零检测•例:guoling.mdl
系统过零和代数环+
-输入输出
所谓模块的直接馈通是指如果在这些模块的输入端口中没有输入信号,
则无法计算此模块的输
出信号。
标量代数环
系统模型中产生代数环的条件如下:
(1)具有直接馈通特性的系统模块的输入,直接由此模块的输出来驱动。
(2)具有直接馈通特性的系统模块的输入,由其它直接馈通模块所构成的反馈回路间接来驱动。
系统过零和代数环
•由于代数环的输入输出之间是相互依赖的,组成代数环的所有模块都要求在同一个时刻计算输出,这与系统仿真的顺序概念不符,因此要用其它方法求解。
(手工求解,代数约束、切断环)
系统过零和代数环
•手工求解:人工求出方程的解;
•代数约束:Simulink采用牛顿迭代法求解代数环,或用Math模块库中的代数约束Algebraic Constraint模块求解;
•切断环:加延迟环节(但改变了系统动态性能,可能导致系统不稳定);重写方程,写成一个标准的一阶微分方程组。
系统过零和代数环
2
x y x y =++&&
21(2)
1x y x y =++−&
Simulink高级仿真技术
子系统技术
创建Simulink子系统共有两种方法:
•一种办法是对已存在的模型的某些部分或全部使用菜单命令【Edit/Create Subsystem】进行压缩转化,使之成为子系统;
•另一种方法是使用Connections模块库中的Subsystem模块直接创建子系统。
Simulink高级仿真技术
•封装技术是将Simulink子系统“包装”成一个模块,并可以如同使用Simulink内部模块一样使用的技术。
每个封装模块都可以有一个自定义的图标下一个用来设定参数的对话框。
参数设定方法也与Simulink模块库中的内部模块完全相同。
Simulink高级仿真技术
•创建一个封装模块的主要步骤分为三步:•⑴创建一个子系统;
•⑵选中子系统,选择模型窗口菜单中的【Edit>Mask subsystem】选项生成封装模块;
•⑶使用封装编辑器设置封装文本、对话框和图标。
Simulink高级仿真技术
•S函数
S-函数是系统函数(System Function)的简称,是指采用非图形化的方式(即计算机语言,区别于Simulink的系统模块)描述的一个功能块。
用户可以采用MATLAB代码、C、C++、FORTRAN或Ada等语言编写S-函数。
Simulink高级仿真技术
ØS-函数为Simulink的“系统”函数。
Ø能够响应Simulink求解器命令的函数。
Ø采用非图形化的方法实现一个动态系统
Ø可以开发新的Simulink模块
Ø可以与已有的代码相结合进行仿真
Ø采用文本方式输入复杂的系统方程
Ø扩展Simulink功能,M文件S-函数可以扩展图形能力,C MEX S-函数可以提供操作系统的接口。