经典的连续系统仿真建模方法学
第六讲 连续系统仿真概述祥解
26
今希望用直角坐标输出,故还引入两个定义变量 x y(21),y)* cos[ y(2)] y(22) y(1)* sin[ y(2)]
根据卫星的发射速度,可以建立起方程组的初始条件: y(1)0=6400km(卫星到地心的距离,即为地球之半径),
任务失败。
计算机仿真技术
6
Xb=Vb*t
Yb=100
Xf’=Vf*cosθ
Yf’=Vf*sinθ
tanθ=(100-Yf)/(Xb-Xf) 描述方程-》龙格库塔法求解位置-》求解我机角度
及位置-》判断距离时间-》end
计算机仿真技术
7
二阶系统:汽车轮子悬置系统
y’’(t)+p1y’(t)+y(t)=1.0
Y ( y1 , y2 , yn ) P ( p1, p2 , pk )
U (u1, u2 ,um )
G ( g1 , g2 , gn )
是 n 维状态向量 是 k 维参数向量 是 m 维控制向量 是n 维函数向量 计算机仿真技术
24
Y (0) [ y1 (0), y2 (0), yn (0)] 是给定的初始状态
计算机仿真技术
4
微分方程数学模型
一般形式
dny d n1 y dy d n1u d n2 u a1 n1 a n1 a n y c1 n1 c2 n1 cn u n dt dt dt dt dt
n为系统的阶次,ai为系统的结构参数,ci为输入函数的
16
连续系统数字仿真中离散化最基本的算法是数值积分 f ( y ,u ,t ) 的系统,已知系统变量 算法。对于形如 y 的初始条件 y (t 0 ) y 0 ,现在要求y随时间变化的过 程y(t)。计算过程可以这样考虑:首先求出初始点 y(t 0 ) y0 的 f (t 0 ,y0 ) ,微分方程可以写作:
仿真课件 4 经典的连续系统仿真建模方法学2
x
k
可得前后两步误差之间的关系为
k 1 k (1 h
1 h
h 2 2 2
h 2 2 2
h 33 6
h 4 4 24
)
所以,RK-4法计算稳定的条件是
h 33 6
h 4 4 24
1
(3-26)
3.3
稳定性分析
算欧拉法最大允许步长,将步长从0.1逐渐增大,比较三种
4 x x
function derX=w_SysStateEqu(curt,curx,curu) % function derX=w_stateEqu(curt,curx,curu) % 函数功能:在此函数里写系统的状态方程 % 输入参数:curt当前时间,curx和curu是当前状态和控制 % 输出参数:derX是状态的X的导数值 derX(1)=-4*curx(1);
x
k
3.3
稳定性分析
2 2 3 h h h2 2( ) 2 h 2 2 4 xk 1 xk 6 ( 2 h h 2 3 h3 4 ) 2 4 h 2 2 h3 3 h 4 4 xk 1 h 2 6 24
xk 1 k 1 xk k h ( xk k )
2. 欧拉法计算稳定性分析
欧拉法:
设xk步的误差为εk ,则有
与前式相减,得
k 1 k (1 h )
1 h 1
(3-25)
很显然,要使误差是逐渐减小得,就要求
即
1 1 h 1 2 h 0 h
仿真建模中的离散事件仿真与连续系统模拟技术
仿真建模中的离散事件仿真与连续系统模拟技术在仿真建模领域中,离散事件仿真(Discrete Event Simulation, DES)与连续系统模拟技术是两种常用的方法。
离散事件仿真通过模拟系统组成部分之间的事件交互,以离散的时间步长进行模拟,适用于涉及离散事件和事件交互的系统。
而连续系统模拟技术则基于连续时间模型,将系统的状态从一个时间点演化到下一个时间点,适用于涉及连续变量和连续过程的系统。
本文将对离散事件仿真与连续系统模拟技术进行详细介绍和对比。
离散事件仿真是一种在离散事件驱动的基础上进行系统模拟的方法。
离散事件驱动指的是系统的状态变化是由离散事件的发生所触发的。
这些事件可以是任何可能影响系统行为的事物,如任务到达、资源请求和完成等。
离散事件仿真将系统中的所有活动建模为一系列事件,并通过事件的发生和处理来模拟系统的行为。
在仿真过程中,建模者需要明确定义系统中的各个事件及其发生的条件,以及事件发生后系统状态的变化规则。
离散事件仿真的优点是能够精确地模拟系统中的时间和事件交互,使得仿真结果具有较高的精确度。
它常用于模拟涉及排队、流程调度、供应链管理等问题的系统,如银行业务、交通系统和制造业生产线。
在离散事件仿真中,时间步长是指仿真模型中的事件触发机制。
不同的仿真模型可以选择不同的时间步长,以确保仿真结果的准确性和效率。
时间步长的选择应考虑系统中事件的发生频率和对结果的精确度要求。
当事件发生频率较高时,适合选择较小的时间步长,以提高仿真的精确度。
而当事件发生频率较低时,可以选择较大的时间步长以提高模拟效率。
常用的时间步长选择策略包括固定时间步长和自适应时间步长。
固定时间步长是指在整个仿真过程中使用相同的时间间隔,适用于事件发生频率稳定的仿真模型。
自适应时间步长则根据事件发生的频率动态调整时间间隔,以保持较高的仿真精确度和效率。
相比之下,连续系统模拟技术则更适用于描述连续变量和连续过程的系统。
在连续系统模拟中,系统的状态是以连续的时间点为基准进行演化的。
系统建模与仿真及其方法
系统建模与仿真及其方法1 什么是建模与仿真模型(model):对系统、实体、现象、过程的数学、物理或逻辑的描述。
建模(modeling):建立概念关系、数学或计算机模型的过程,又称模型化,就是为了理解事物而对事物做出的一种抽象,是对事物的一种描述系统的因果关系或相互关系的过程都属于建模,所以实现这一过程的手段和方法也是多种多样的。
仿真(simulation):通过研究一个能代表所研究对象的模型来代替对实际对象的研究。
计算机仿真就是在计算机上用数字形式表达实际系统的运动规律。
2十种建模与仿真的方法:2.1智能仿真是以知识为核心和人类思维行为做背景的智能技术,引入整个建模与仿真过程,构造各处基本知识的仿真系统,即智能仿真平台。
智能仿真技术的开发途径是人工智能(如专家系统、知识工程、模式识别、神经网络等)与仿真技术(仿真模型、仿真算法、仿真软件等)的集成化。
2.2多媒体仿真[1]它是在可视化仿真的基础上再加入声音,从而得到视觉和听觉媒体组合的多媒体仿真。
多媒体仿真是对传统意义上数字仿真概念内涵的扩展,它利用系统分析的原理与信息技术,以更加接近自然的多媒体形式建立描述系统内在变化规律的模型,并在计算机上以多媒体的形式再现系统动态演变过程,从而获得有关系统的感性和理性认识。
2.3频域建模方法频域建模方法就是从s域的传递函数G(s),根据相似原理得到与它匹配的z域传递函数G(z),从而导出其差分模型。
2.4模糊仿真方法[2]基于模糊数学,在建立模型框架的基础上,对于观测数据的不确定性,采用模糊数学的方法进行处理。
2.5蒙特卡罗仿真方法当系统中各个单元的可靠性特征量已知,但系统的可靠性过于复杂,难以建立可靠性预计的精确数学模型,或者模型太复杂而不便应用则可用随机模拟法近似计算出出系统可靠性的预计值。
基本思想:当所求解问题是某种随机事件出现的概率,或者是某个随机变量的期望值时,通过某种“实验”的方法,以这种事件出现的频率估计这一随机事件的概率,或者得到这个随机变量的某些数字特征,并将其作为问题的解。
连续系统模型表示方法
连续系统模型表示方法
连续系统模型表示方法是指利用数学方法将连续系统的动态行
为进行建模、分析和控制。
在现实生活中,很多系统都是连续的,例如机械系统、电气系统、化学反应系统等。
因此,连续系统模型表示方法在工程控制和科学研究中具有重要的应用价值。
一般来说,连续系统模型表示方法可以分为两类:微分方程模型和传递函数模型。
微分方程模型是根据物理原理推导出来的,通常采用微分方程组来描述系统的动态行为。
而传递函数模型则是经验公式,通过试验数据拟合得到的一个数学表达式,可以快速地掌握系统的动态特性。
微分方程模型常用于描述动态系统,例如机械振动系统、电路系统和热传输系统等。
传递函数模型则常用于描述线性系统的频率响应特性,例如滤波器、控制系统等。
除了以上两种常用的模型表示方法,还有其他一些方法,例如状态空间模型和拉普拉斯变换模型等。
状态空间模型是一种描述系统动态行为的方法,它能够描述系统的状态和控制输入之间的关系,并且能在此基础上进行系统分析和控制设计。
拉普拉斯变换模型则是一种将微分方程转化为代数方程的方法,可以方便地进行系统分析和控制设计。
总之,连续系统模型表示方法是掌握和应用连续系统动态行为的重要工具,不同的模型表示方法适用于不同的系统类型和应用场景,工程师和科学家需要根据具体情况选择适合的模型表示方法来进行分析和设计。
连续系统仿真的方法.
第3章 连续系统仿真的方法3.1 数值积分法连续系统数值积分法,就是利用数值积分方法对广微分方程建立离散化形式的数学模型——差分方程,并求其数值解。
可以想象在数学计算机上构造若干个数字积分器,利用这些数字积分器进行积分运算。
在数字计算机上构造数字积分器的方法就是数值积分法,因而数字机的硬件特点决定了这种积分运算必须是离散和串行的。
把被仿真系统表示成一阶微分方程组或状态方程的形式。
一阶向量微分方程及初值为()(),00t Y Y t Y ⎧⎫⎪⎪⎨⎬⎪⎪⎩⎭Y =F =(3-1)其中,Y 为n 维状态向量,F (t ,Y )为n 维向量函数。
设方程(3-1)在011,,,,n n t t t t t +=…处的形式上的连续解为()()()()n+1n+1t t n+10t t t =Y t +,(),n Y F t Y dt Y t F t Y dt=+⎰⎰(3-2)设 n =()n Y Y t ,令1n n n Y Y Q +=+(3-3)则有:()1n+1t n Y Y +=也就是说,1(,)n nt n t Q F t Y dt +≈⎰(3-4)如果n Y 准确解()n Y t 为近似值,n Q 是准确积分值的近似值,则式(3-4)就是式(3-2)的近似公式。
换句话说,连续系统的数值解就转化为相邻两个时间点上的数值积分问题。
因此,所谓数值解法,就是寻求初值问题(3-1)的真解在一系列离散点12n t t t <…<…上的近似解12,,,n Y Y Y ……,相邻两个时间离散点的间隔1n n n t t +=-h ,称为计算步距或步长,通常取n =h h 为定值。
可见,数值积分法的主要问题归结为对函数(,)F t y 的数值积分问题,即如何求出该函数定积分的近似解。
为此,首先要把连续变量问题用数值积分方法转化成离散的差分方程的初值问题,然后根据已知的初值条件0y ,逐步地递推计算后续时刻的数值解(1,2,)i y i =…。
控制系统仿真实验报告
控制系统仿真实验报告班级:测控1402班姓名:王玮学号:072018年01月实验一经典的连续系统仿真建模方法一实验目的:1 了解和掌握利用仿真技术对控制系统进行分析的原理和步骤。
2 掌握机理分析建模方法。
3 深入理解阶常微分方程组数值积分解法的原理和程序结构,学习用Matlab编写数值积分法仿真程序。
4 掌握和理解四阶Runge-Kutta法,加深理解仿真步长与算法稳定性的关系。
二实验内容:1. 编写四阶 Runge_Kutta 公式的计算程序,对非线性模型(3)式进行仿真。
(1)将阀位u 增大10%和减小10%,观察响应曲线的形状;(2)研究仿真步长对稳定性的影响,仿真步长取多大时RK4 算法变得不稳定(3)利用 MATLAB 中的ode45()函数进行求解,比较与(1)中的仿真结果有何区别。
2. 编写四阶 Runge_Kutta 公式的计算程序,对线性状态方程(18)式进行仿真(1)将阀位增大10%和减小10%,观察响应曲线的形状;(2)研究仿真步长对稳定性的影响,仿真步长取多大时RK4 算法变得不稳定(4)阀位增大10%和减小10%,利用MATLAB 中的ode45()函数进行求解阶跃响应,比较与(1)中的仿真结果有何区别。
三程序代码:龙格库塔:%RK4文件clccloseH=[,]';u=; h=1;TT=[];XX=[];for i=1:h:200k1=f(H,u);k2=f(H+h*k1/2,u);k3=f(H+h*k2/2,u);k4=f(H+h*k3,u);H=H+h*(k1+2*k2+2*k3+k4)/6;TT=[TT i];XX=[XX H];end;hold onplot(TT,XX(1,:),'--',TT,XX(2,:)); xlabel('time')ylabel('H')gtext('H1')gtext('H2')hold on水箱模型:function dH=f(H,u)k=;u=;Qd=;A=2;a1=;a2=;dH=zeros(2,1);dH(1)=1/A*(k*u+Qd-a1*sqrt(H(1)));dH(2)=1/A*(a1*sqrt(H(1))-a2*sqrt(H(2)));2编写四阶 Runge_Kutta 公式的计算程序,对线性状态方程(18)式进行仿真:1 阀值u对仿真结果的影响U=;h=1; U=;h=1;U=;h=1;2 步长h对仿真结果的影响:U=;h=5; U=;h=20;U=;h=39 U=;h=50由以上结果知,仿真步长越大,仿真结果越不稳定。
仿真模型与建模方法论
例:环形罗宾服务(Round Robin Service)
USR1 USR5 CPU USR2
USR4
USR3
某计算机系统有一台主 机与5个终端用户组成, 主机依次顺时针为每一 个用户服务。轮到某用 户时,传递数据给主机 CPU并等待回答,接收 到回答后准备下一轮数 据。建模研究用户如何 迅速的完成其程序编制
可信性的检验应贯穿在整个建模阶段,并且与建 模方法相互结合 演绎中的可信性:前提的正确性,前提的其他 结果的检验 归纳中的可信性:偏差估计,统计方法 目的方面的可信性:是否满足目标
三、模型的分类
常用分类
根据模型的时间集合:连续时间模型、离散 时间模型 根据模型的状态变量:连续变化模型、离散 变化模型
非存储系统 存储系统
输出仅与同时刻的输入有关 某时刻输出依赖于到该时刻为止的某区 间上的输入
代数方程 非代数方程
第二节 建模方法学
为方便理解和交流,对建模与仿真的研 究报告内容也有规范,一般包括
模型和针对模型构造的假设的非形式描述 模型结构的形式描述 执行仿真的程序设计 仿真试验,仿真结果分析 模型应用的范围与有效性 现在的模型与过去的和将来的模型的关系
第二章 仿真模型与建模方法论
本章主要内容
建模基本原理 模型的非形式化描述 模型的形式化表示 基于计算机的建模方法学* 解释结构建模* 仿真模型的确认
第一节 建模原理
一、模型与建模
建模:通过观测和检测,在忽略次要因素及 不可检测变量的基础上,用数学的方法对实 际系统进行描述,从而获得简化近似模型的 过程 在系统研究中,模型用来收集系统有关信息 和描述系统有关实体 模型是用以产生行为数据的一组指令
第2章 经典的连续系统仿真建模方法学
5> 舍入误差 在计算过程中,由计算机字长引起 的误差。 同步长h成反比,h越小,计算次数 越多,舍入误差越大。
6> 初始误差 给定的初始值与真值之间的差异。
本章教学内容
2.1 离散化原理与基本的数值积分方法 2.2 Runge-Kutta数值积分方法 2.3 2.4 线性多步数值积分方法 数值积分法的稳定性分析
两式中的k1,k3,k4相同,是一个4阶精度,3阶估 计误差的公式,每次需要计算5次f,计算量较大。
b RKF4-5法(F——E.Fehlberg,1969) 五阶四级公式与四阶三级公式对:
6 y k 1 y k h ci K i i 1 , (i 1,2, ,6) i 1 K i f (t k ai h, y k bij K i ) j 1
本章教学内容
2.1 2.2 2.3 2.4 离散化原理与基本的数值积分方法 Runge-Kutta数值积分方法 线性多步数值积分方法 数值积分法的稳定性分析
一、离散化原理
1 在数字计算机上对连续系统进行仿真时必须对
原连续模型进行离散化,原因在于
(1)数字计算机中的时间具有离散性,因为计
算机是按离散的指令一步一步进行的。 (2)数字计算机中的函数值具有离散性,因为 它们的精度受到计算机字长的限制。 对连续模型进行离散化会引入舍入误差,因此 离散模型是原连续模型的近似。
2 数值积分算法的基本思想
对于形如 y f ( y, u, t ) 或 y f (t, y) 的系统, 求其输出y(t)可以这样来考虑
y (t )
t t0
第二章 经典的连续系统仿真建模方法学-8-3
(3)在步长h比较小情况下,用直边梯形面积代替曲边梯形面积, 得到差分方程:
h 1 y n1 y n [ f (t n , y n ) f (t n1 , y n1 )], 即y n1 y n ( f n f n1 ) 2 2
(4)计算中的预估和校正 原因:差分方程中右边含有待求量yn+1,公式无法起步计算。 解决方法: A 每次计算时先用Euler法计算出y(tn+1)的近似值ypn+1作为初值;
解及其导数f(tn,yn)求得的。
(2) 方法简单、计算量小 (3) 精度低
例
对于线性微分方程
Y 3Y 4Y 0, Y (0) 1, Y (0) 0
试采用Euler法进行计算,取步长h=0.2。
y z , y ( 0) 1 解:令 z 3 z 4 y , z ( 0 ) 0 采用Euler法可得到: yn 1 yn hzn yn 1 yn 0.2 z n , 代入初值可得到 z n 1 z n h(3z n 4 yn ) zn 1 0.4 z n 0.8 yn y1 1 y2 1.16 y3 1.384 y4 1.6592 y5 1.9907 计算结果 , , , , z1 0.8 z2 1.12 z3 1.376 z4 1.6576 z5 1.9904
ˆ 相对误差准则:e y (t n ) y (t n ) y (t n ) ˆ y (t n )
其中 规定精度的误差量。
3 数值方法的基本数学描述
将仿真系统表示成1阶微分方程组或状态方程的形式 若1阶微分方程及其初值为:
Y F (t , Y ) Y (t 0 ) Y0
连续系统仿真方法
连续系统仿真方法连续系统仿真是指通过对系统进行建模和模拟计算,来分析和预测系统的行为和性能。
它是现代工程领域中一种重要的设计和分析工具,可以帮助工程师们快速而准确地了解和评估系统的行为,并在设计过程中进行优化。
连续系统仿真方法主要由系统建模、模型求解和结果分析三个步骤组成。
首先是系统建模。
在连续系统仿真中,系统被描述为一组微分方程或差分方程,这些方程描述了系统的动态行为。
系统的建模可以使用多种方法,包括物理模型、数学模型、状态空间模型等。
物理模型是通过对系统的物理特性进行建模,将系统的动态行为转化为物理参数和方程。
数学模型则是将系统的行为转化为数学方程来描述。
状态空间模型则是通过引入状态变量来描述系统的行为。
根据具体的系统特性和实际需求,可以选择不同的建模方法。
其次是模型求解。
求解模型通常使用数值计算方法,如欧拉法、Runge-Kutta法等。
这些方法将系统的微分方程或差分方程转化为一系列离散时间点上的数值。
通过迭代计算,在每个时间点上更新系统的状态变量,并计算系统的输出。
数值计算方法的选择要考虑到系统动态特性、求解精度和计算效率等因素。
最后是结果分析。
仿真结果可以用来分析系统的动态行为、输出响应和性能指标。
可以通过绘制时间域图、频率域图和相图等,来直观地展示系统的响应和特性。
根据仿真结果,可以对系统的工作状态和性能进行评价,并进行灵敏度分析、优化设计等进一步分析。
连续系统仿真方法在工程领域中有广泛的应用。
例如,在电子电路设计中,可以使用连续系统仿真方法来分析电路的动态响应和稳定性。
在机械系统设计中,可以使用仿真方法来分析结构的强度和振动特性。
在控制系统设计中,可以使用仿真方法来评估控制系统的闭环性能和稳定性。
在通信系统设计中,可以使用仿真方法来分析信号传输的效果和误码率。
与传统的试验方法相比,连续系统仿真方法具有时间和成本的优势。
仿真可以在计算机上进行,不需要进行实际的试验和测试。
通过对系统的各种参数和条件进行调整和变化,可以快速地评估系统的性能和响应,为系统的设计和优化提供便利。
20-经典的连续系统仿真建模方法学
计算yn 1并输出
计算k1
tn
tn h 2
计算 k 2
计算下一个 k1
t n h t n1
t n 1 h 2
t n1 h t n2
图2.4 RK-2的计算流程
y n 1 y n hk2
• 实时2阶龙格-库塔法:
k1 f (t n , u n , y n ) k 2 f (t n 1 / 2 , u n 1 / 2 , y n h k1 ) 2
第二章 经典的连续系统仿真 建模方法学
包括:连续系统数字仿真的基本概 念、经典的数值积分法、经典的线 性多步法等。
2.1 离散化原理及要求
• 问题:数字计算机在数值及时间上的离散性----被 仿真系统数值及时间上的连续性 连续系统仿真,从本质上:
– 对原连续系统从时间、数值两个方面对原系统进行离 散化并选择合适的数值计算方法来近似积分运算 离散模型≈原连续模型?
2
• 其中 k1 f (tn , yn ),k2 f (tn h, yn k1h) • 截断误差正比于h3,称为二阶龙格-库塔法(简称RK-2)。 • 截断误差正比于h5的四阶龙格--库塔法(简称RK-4)公式: 1 • y (t n 1 ) yn 1 yn (k1 2k 2 2k3 k 4 ) 6 其中: • k1 f (tn , yn ) k 2 f (t n h ,y n h k1 ) k 3 f (t n h ,y n h k 2 ) k4 f (t n h,yn hk3 )
a1 0 i 1 ai bij j 1 s C 1 i i 1
i 1
h h k 2 f (t n ,y n k1 ) 2 2
5连续系统的建模设计与仿真
例5-1 图5-2
图5-2 (5-1)
例5-2 机械平移系统。
设有一个弹簧一质量一阻尼器系统, 如图5—3所示。阻尼器是一种产生黏性 摩擦或阻尼的装置。它由活塞和充满油 液的缸体组成,活塞杆与缸体之间的任 何相对运动都将受到油液的阻滞,因为 这时油液必须从活塞的一端经过活塞周 围的间隙(或通过活塞上的专用小孔)而 流到活塞的另一端。阻尼器主要用来吸 收系统的能量,被阻尼器吸收的能量转 变为热量而散失掉,而阻尼器本身不储 藏任何动能或热能。
5.3.1典型环节的选择
利用系统模型结构图,选择积分环节 作为典型模块在程序实现上固然十分简便, 但是当系数比较复杂时,要将系统的各个 环节都变成由积分模块组成的仿真模型需 要一定的时间和技巧。所以,目前许多面 向结构图的线性系统都采用更复杂一些的 环节,如一阶超前、滞后环节(图5-8)来作 为典型模块,这一典型模块可以十分方便 地表示上述一些常用的典型环节。
第五章 连续系统的建模设计 与仿真
基于微分方程的建模方法 状态空间模型的建模方法 面向结构图的模型 数值积分法 离散相似法 转移矩阵法
按系统模型的特征分类,可以有连续 系统仿真及离散事件系统仿真两大类。 过程控制系统、调速系统、随动系统等 这类系统称作连续系统,它们共同之处 是系统状态变化在时间上是连续的,可 以用方程式或结构图来描述系统模型。
(4)对于统一元件或系统,由于所取的输出量不同,其运 动方程式的形式也就不同。
(5-4)
5.2 状态空间模型的建模方法
5.2.1根据物理学定律直接建立状态空 间模型
基于物理学定律的系统状态空间模型的建模步骤如下。
经典的连续系统仿真建模方法(实验报告)
实验一经典 的连续系统仿真建模方法一 实验目的:1 了解和掌握利用仿真技术对控制系统进行分析的原理和步骤。
2 掌握机理分析建模方法。
3 深入理解阶常微分方程组数值积分解法的原理和程序结构,学习用Matlab 编写 数值积分法仿真程序。
4 掌握和理解四阶Runge -Kutta 法,加深理解仿真步长与算法稳定性的关系。
二 实验原理:1非线性模型仿真()()⎪⎪⎭⎪⎪⎬⎫⎪⎪⎩⎪⎪⎨⎧-=-+=221122112111H H A dt dH H Q u k A dt dH d u ααα⎥⎦⎤⎢⎣⎡∆∆⎥⎥⎦⎤⎢⎢⎣⎡+⎥⎦⎤⎢⎣⎡∆∆⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡--=∆d u Q u A A k H H AR AR AR H 00111012121212三 实验内容:1. 编写四阶 Runge_Kutta 公式的计算程序,对非线性模型(3)式进行仿真。
(1) 将阀位u 增大10%和减小10%,观察响应曲线的形状;(2) 研究仿真步长对稳定性的影响,仿真步长取多大时RK4 算法变得不稳定?(3) 利用 MATLAB 中的ode45()函数进行求解,比较与(1)中的仿真结果有何区别。
2. 编写四阶 Runge_Kutta 公式的计算程序,对线性状态方程(18)式进行仿真(1) 将阀位增大10%和减小10%,观察响应曲线的形状;(2) 研究仿真步长对稳定性的影响,仿真步长取多大时RK4 算法变得不稳定?(4) 阀位增大10%和减小10%,利用MATLAB 中的ode45()函数进行求解阶跃响 应,比较与(1)中的仿真结果有何区别。
四 程序代码:龙格库塔:%RK4文件clccloseH=[1.2,1.4]';u=0.55; h=1;TT=[];XX=[];for i=1:h:200k1=f(H,u);k2=f(H+h*k1/2,u);k3=f(H+h*k2/2,u);k4=f(H+h*k3,u);H=H+h*(k1+2*k2+2*k3+k4)/6;TT=[TT i];XX=[XX H];end;hold onplot(TT,XX(1,:),'--',TT,XX(2,:));xlabel('time')ylabel('H')gtext('H1')gtext('H2')hold on水箱模型:function dH=f(H,u)k=0.2;u=0.5;Qd=0.15;A=2;a1=0.20412;a2=0.21129;dH=zeros(2,1);dH(1)=1/A*(k*u+Qd-a1*sqrt(H(1)));dH(2)=1/A*(a1*sqrt(H(1))-a2*sqrt(H(2)));三实验结果:2编写四阶Runge_Kutta 公式的计算程序,对线性状态方程(18)式进行仿真:1 阀值u对仿真结果的影响U=0.45;h=1; U=0.5;h=1;U=0.55;h=1;2 步长h对仿真结果的影响:U=0.5;h=5; U=0.5;h=20;U=0.5;h=39 U=0.5;h=50由以上结果知,仿真步长越大,仿真结果越不稳定。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章 经典的连续系统仿真建模方法学本章讨论经典的连续系统数字仿真的原理与方法,内容包括连续系统数字仿真的基本概念、经典的数值积分法、经典的线性多步法等。
在数字计算机上进行连续系统仿真,首先要将连续模型离散化,因此,2.1节首先讨论离散化原理及要求,这是连续系统仿真的基础。
然后,2.2节对经典的数值积分法----龙格-库塔法及其它典型的数值积分法仿真建模原理进行详细分析,并通过实例说明其应用要点;而2.3节对经典的线性多步法进行了介绍.2.1 离散化原理及要求在数字计算机上对连续系统进行仿真时,首先遇到的问题是如何解决数字计算机在数值及时间上的离散性与被仿真系统数值及时间上的连续性这一基本问题。
从根本意义上讲,数字计算机所进行的数值计算仅仅是“数字”计算,它表示数值的精度受限于字长,这将引入舍入误差;另一方面,这种计算是按指令一步一步进行的,因而,还必须将时间离散化,这样就只能得到离散时间点上系统性能。
用数字仿真的方法对微分方程的数值积分是通过某种数值计算方法来实现的。
任何一种计算方法都只能是原积分的一种近似。
因此,连续系统仿真,从本质上是对原连续系统从时间、数值两个方面对原系统进行离散化,并选择合适的数值计算方法来近似积分运算,由此得到的离散模型来近似原连续模型。
如何保证离散模型的计算结果从原理上确能代表原系统的行为,这是连续系统数字仿真首先必须解决的问题。
设系统模型为:),,(t u y f y= ,其中u (t )为输入变量,y (t )为系统变量;令仿真时间间隔为h ,离散化后的输入变量为)(ˆk t u,系统变量为)(ˆk t y ,其中k t 表示t=kh 。
如果)()(ˆk k t u t u ≈,)()(ˆk k t y t y ≈,即0)()(ˆ)(≈-=k k k u t u t u t e ,0)()(ˆ)(≈-=k k k y t y t y t e (对所有k=0,1,2,…),则可认为两模型等价,这称为相似原理(参见图2.1)。
实际上,要完全保证0)(,0)(==k y k u t e t e 是很困难的。
进一步分析离散化引入的误差,随着计算机技术的发展,由计算机字长引入的舍入误差可以忽略,关键是数值积分算法,也称为仿真建模方法。
相似原理用于仿真时,对仿真建模方法有三个基本要求:(1)稳定性:若原连续系统是稳定的,则离散化后得到的仿真模型也应是稳定的。
关于稳定性的详细讨论将在2.4节中进行。
(2)准确性:有不同的准确性评价准则,最基本的准则是:图2.1 相 似 原 理绝对误差准则:δ≤-=)()(ˆ)(k k k y t y t yt e 相对误差准则:δ≤-=)(ˆ)()(ˆ)(k k k k y t yt y t yt e其中δ 规定精度的误差量。
(3)快速性:如前所述,数字仿真是一步一步推进的,即由某一初始值)(0t y 出发,逐步计算,得到)(,),(),(21k t y t y t y ,每一步计算所需时间决定了仿真速度。
若第k 步计算对应的系统时间间隔为,1k k k t t h -=+计算机由)(k t y 计算)(1+k t y 需要的时间为T k ,则,若T k =h k 称为实时仿真,T k <h k 称为超实时仿真,而大多数情况是T k >h k ,对应于离线仿真。
连续系统数字仿真中离散化最基本的算法是数值积分算法。
对于形如),,(t u y f y= 的系统,已知系统变量y 的初始条件y t y ()00=,现在要求y 随时间变化的过程y t ()。
计算过程可以这样考虑(参见图2.2):首先求出初始点y t y ()00=的f t y ()00,,微分方程可以写作:y t y f t y dt t t()(,)=+⎰00(2.1)图2.2所示曲线下的面积就是y t (),由于难以得到f(y,u,t)积分的数值表达式,人们对数值积分方法进行了长期探索,其中欧拉法是最经典的近似方法。
欧拉法用矩形面积近似表示积分结果,也就是当t=t 1时,y t ()1的近似值为y 1 :y y t y t f t y 11000=≅+⋅()()∆, (2.2)重复上述作法,当t t =2时y y t y t t f t y 2212111=≅+-⋅()()(), 所以,对任意时刻t k+1,有:y y t y t t f t y κκκκκκκ+++=≅+-⋅111()()(), (2.3) 令t t h κκκ+-=1称为第κ步的计算步距。
若积分过程中步距不变h h κ=,可以证明,欧拉法的截断误差正比于h 2。
为进一步提高计算精度,人们提出了“梯形法”。
梯形法近似积分形式如式(2.4)所示,令:t t h h κκκ+-=1=已知:t t =κ时y t ()κ的近似值y κ,那么:y y t y h f t y f t y κκκκκκκ++++=≅++111112()[(,)(,)] (2.4) 可见,梯形法是隐函数形式。
采用这种积分方法最简单的预报−校正方法是用欧拉法估计初值,用梯形法校正,即:y y h f t y f t y i i κκκκκκ++++≅++111112()()[(,)(,)] (2.5) y y h f t y i κκκκ+≅+⋅1()(,) (2.6)式(2.6)称作预报公式,采用欧拉法,式(2.5)为校正公式,采用梯形法。
用欧拉法估计一次y i κ+1()的值,代入校正公式得到y κ+1的校正值y i κ++11()。
设ε是规定的足够小正整数,称作允许误差,若i =0, i +1=1称作第一次校正;i i =+=112,称作第二次校正;通过反复迭代,直到满足y y i i κκε+++-≤111,这时y i κ++11()是满足误差要求的校正值。
上述方法是针对(2.3)式所示的微分方程在已知初值情况下进行求解,因此也称为微分方程初值问题数值计算法,为统一起见,本书中称为数值积分法。
连续系统数字仿真的离散化方法有两类,它们是数值积分方法和离散相似方法,本章讨论数值积分法。
数值积分方法采用递推方式进行运算,而采用不同的积分方法会引进不同的计算误差,为了提高计算精度,往往会增加运算量。
就同一种积分算法而言,为提高计算精度,减小积分步距h ,计算量增大,影响系统运算速度。
因此,计算精度和速度是连续系统仿真中常迂到的一对矛盾,也是数字仿真中要求解决的问题之一。
也就是说,选择合适的算法、合适的软、硬件环境,在保证计算精度的前提下,考虑怎样提高仿真的速度。
经典的数值积分法可分为两类:单步法与多步法,下面我们将分别来介绍这两类方法中的最常用的算法。
2.2 龙格库塔法2.2.1龙格-库塔法基本原理在上一节中我们已经讲过,在连续系统的仿真中,主要的数值计算工作是对dydtf t y =(,)的一阶微分方程进行求解。
因为 y t y t f t y dt t t ()()(,)κκκκ+=++⎰11若令: y y t κκ≅(),Q κκκ≅+⎰f t y dt t t k (,)1则有 y t y y ()κκκκ++≅=+11Q (2.7)因此主要问题就是如何对Q κ进行数值求解,即如何对f t y (,)进行积分。
通常称作“右端函数”计算问题。
已知y t y ()00=,假设我们从t 0跨出一步,t t h 10=+,t 1时刻为y y t h 10=+(),可以在t 0附近展开台劳级数,只保留h 2项,则有:200010)(21),(h tf dt dy y f h y t f y y t ∂∂∂∂+++= (2.8) 在式(2.8)中括号后的下标0表示括号中的函数将用t t y y ==00,均同。
我们假设这个解可以写成如下形式:y y a k a k h 101122=++() (2.9) 其中, k f t y 100=(,)k f t b h y b k h 201021=++(),对k 2式右端的函数在t t y y ==00,处展成台劳级数,保留h 项,可得:h k b tfb y t f k t 0)(),(121002++≅∂∂ 将k k 12,代入(2.9)式,则有:])(),([),(012100200101h yfk b t f b y t f h a y t hf a y y t ∂∂∂∂++++= 将上式与(2.8)式进行比较,可得:可见有四个未知数a a b b 1212,,,,但只有三个方程,因此有无穷多个解,若限定a a 12=,则可得其中一个解:a ab b 1212121====,将它们代入(2.9)式可得一组计算公式:y y h10122=++()K K (2.10) 其中,K K K 1002001==++f t y f t h y h (,)(),, 若写成一般递推形式,即为:y t y y hk k k ()()++≅=++11122K K (2.11) 其中, K K K 121==++f t y f t h y h k k k k (,)(,),由于(2.8)式只取了h h ,2两项,而将h 3以上的高阶项略去了,所以这种递推公式的截断误差正比于h 的三次方,又由于计算时只取了h 及h 2项,故这种方法被称为二阶龙格−库塔法(简称RK-2)。
根据上述原理,若在展成台劳级数时保留h h h ,,23及h 4项,那么可得一套截断误差正比于h 5的四阶龙格--库塔法(简称RK-4)公式:y t y y k k k ()()++≅=++++1112341622K K K K (2.12)其中: K 1=f t y (,)κκK K 2122=++f t h y h()κκ, K K 3222=++f t h y h()κκ,K K 43=++f t h y h ()κκ,由于这组计算公式有较高的精度,所以在数字仿真中应用较为普遍。
为了帮助读者更好地掌握这种方法的使用,下面我们对龙格--库塔法的特点作一些介绍。
1. 由于在解a a b b 1212,,,时,可以得到许多种龙格--库塔公式,经常使用的除(2.11)及(2.12)式给出的两组公式外,还有:y y h κκ+=+12K (2.13) a a a b a b 12212211212+===,/,/其中 K 1=f t y (,)κκ K K 2122=++f t h y h()κκ, y y hκκ+=++++11234833()K K K K (2.14) 其中 K 1=f t y (,)κκK K 2133=++f t h y h()κκ, K K K 312233=+-+f t h y hh ()κκ,K K K K 4123=++-+f t h y h h h ()κκ,(2. 13)式为二阶龙格--库塔公式,(2.14)式是Shampine 提出的,称为RKS3-4公式。