第3章 数值积分法在系统仿真中的应用

合集下载

第3-1章 连续系统数值积分法仿真Matlab编程

第3-1章 连续系统数值积分法仿真Matlab编程
5
函数w_DigiInteSimu和w_StepIntegral构造了一个数值积分法 仿真的框架,并不涉及具体的系统。
具体的系统由StateModel,ControlFile,OutputFile参个参数决定, 实际上就是三个函数文件名,这三个函数输入输出参数必须遵循特定 的格式,在准备好由这3个函数描述的系统后,调用w_DigiInteSimu 即可进行仿真。 还需要一个调用w_DigiInteSimu进行仿真的程序,它指定模型文 件,指定初始参数,并且对仿真结果绘图。
2
function [t,y]=w_DigiInteSimu(tstart,tstop,h,x0,u0,cnty,InteMethod,StateModel,OutputFile, ControlFile) t=[tstart:h:tstop];%t数一个行序列 cntt=size(t,2);%返回列数 y=zeros(cnty,cntt);%构造一个空矩阵,用来存储结果 y0=eval([OutputFile,'(tstart,x0,u0)']);%计算初始输出 y(:,1)=y0’;%将cury作为输出的第1列 curx=x0; %当前一步的x curu=u0; %当前一步的u cury=y0; %当前一步的y for i=1:1:cntt-1 curu=eval([ControlFile,'(t(i),h,curx,curu,cury)']);%计算控制时传递的参数:当前 时间,步长,当前状态和输出 curx=w_StepIntegral(t(i),h,curx,curu,InteMethod,StateModel);%单步积分运算 cury=eval([OutputFile,'(t(i),curx,curu)']);%计算输出 y(:,i+1)=cury‘;%将输出加入到输出序列里 end

系统仿真算法

系统仿真算法

所谓数值解法,就是寻求初值问题式(3-1)的真解在 一系列离散点 t1 t2 L tn L 上的近似数值解 Y1,Y2,...,Yn,... 相邻两个时间离散点的间隔hn = tn+1 - tn, 称为计算步距或步长,通常取hn = h为定值。
数值积分法的主要问题归结为对函数F(t,Y)的数值积分问题
数值解法 3.1 数值积分法(针对连续系统的微分方程形式。利用数值
积分方法对常微分方程(组)建立离散化形式的数学模型 ——差分方程,并求其数值解 )
3.1 数值积分法
3.1.1 数值积分法基本原理
把被仿真系统表示成一阶微分方程组或状态方程的形式
Y& F (t,Y ) Y (t0 ) Y0
(3-1)
h[
f
(tn ,
yn )
f
(tn1,
yn 1 )]
3.1 数值积分法

yn1
yn
1 h[ f 2
(tn , yn )
f
(tn1, yn1)]
yn
1 2
h[
f
n
f n 1 ]
也称为梯形公式或二阶隐式Adams公式,公式右端隐含有待
求量,故梯形法不能自行起步运算,而需有其他算法的帮
助。为了提高计算精度常常需要迭代运算。为减小计算量
系统仿真算法
第3章系统仿真算法 3.1 数值积分法
在数学仿真中,从一个实际系统抽象出数学模型只是第一步,这 一步将实际系统变成了数学模型,可以称之为系统建模或系统辨识, 这是第一次模型化过程。这次模型化所得到的只是数学方程式,必须 使用一定的仿真工具才能求解。将已获得的数学模型变成能在一定仿 真工具中运算求解的仿真模型,这是第二次模型化过程。

实验:控制系统数字仿真之数值积分法

实验:控制系统数字仿真之数值积分法

实验:控制系统数字仿真之数值积分法实验目的:学会并掌握数值积分法的基本原理和方法,了解欧拉法,梯型法,龙格一库塔法的区别,并熟练地使用这些方法。

观察并分析整体离散法、分环节离散法、欧拉法、梯形法、龙格•库塔法这几种方法原理上的差别,分析他们各自的优缺点。

实验原理:欧拉法:欧拉法是最简单的单步法,它是一阶的,精度较差。

但由于公式简单,计算方便,也易于理解,所以在讨论微分方程初值问题的数值解时通常先讨论欧拉法。

梯形法:梯形法与欧拉法相比,梯形法的e要比欧拉法的e更接近实际值,它舍弃的部分更少,它在每一步中用了两个点的输入,使得计算更加精确。

龙格•库塔法:龙格一库塔法是采用间接利用台劳展开式的思路,即用在n 个点上的函数值的线性组合來代替的导数,然后按台劳展开式确定其中的系数, 以提高算法的阶数。

这样既能避免计算函数的导数,同时乂保证了计算精度。

由于龙格薦法具有许务优点,故在许IM:包中,它是•个最垄本的算法之一。

实验过程:分环节离散法得出的响应曲线:整体离散法得出的响应曲线:用一阶欧拉法得出的系统响应曲线:欧拉法是求出当前系统的斜率(变化规律),假设这个变化规律在下一次变化前不改变。

那么系统下一次值就能够通过4 .当前值2.斜率3.步长来确定。

比如说系统当前值x (t),斜率x ' (t),仿真步长dt。

那么x (t+dt) =x (t) +x' (t) *dt程序代码:clc; close all; clear all;sampleTime = 0・l;simuTime = 2000;t=sampleTime:sampleTime:simuTime;K=1・2; n=3; T=20;[kp,ki]=PID_Gain(l・ 20z3, 0);x=zeros(l r 4);fori=l:fix(simuTime/sampleTime)u(i)=l;endfori=l:fix(simuTime/sampleTime)e=ST_RK_l(X/ u(i)f kp r ki r T z K, n);x=xfe*sampleTime;y (i)=x(4);endplot (t r y);匸ext=Tvaiuel(y,sampleTime);legend (text);自程序ST_RK_1代码:function E=ST_RK_1(x r u f kp f ki z T r K z n) E(l) = (u-x(4))*ki;E(2)=(x(l)+kp*E(l)/ki)*K/T-x(2)/T;E (3)=x(2)/T-x(3)/T;E(4)=x(3)/T-x(4)/T;end用梯形法得出系统响应曲线:X = e(r)e[(kH)T]e(kT)牙[e(灯)+ e[伙+ 1)门]X(kT) kT (k+l)T 上若采用欧拉法,误差为红色曲线围成的面积,而如果用梯形法,误差减少为蓝色曲线闱成的面积。

第3章 连续系统数字仿真的基本算法

第3章  连续系统数字仿真的基本算法
当r=3时,可得RK3 法
(2.18)
h y k 1 y k (k1 3k3 ) 4 k1 f (t k , y k ) h h k 2 f (t k , y k k1 ) 3 3 k3 f (t k 2 h, y k 2 hk2 ) 3 3
上一页
下一页
返回
表2.1 f 的计算次数与算法精度阶数的关系
每步计算f 的次 数 算法精度阶数 2 3 4 4 5 6 r-2
2
3
4
5
6
7
r≥8
由此可见,RK4法有其优越性。
上一页
下一页
返回
3.1.4 微分方程数值积分的矩阵分析
对于一阶向量微分方程及初值问题
y f (t , y) y( t0 ) y0
(2.16)
W1 W2 1 1 W2 c2 2 1 W2 a21 2
取c2=1,有
(2.17)
W1 W2
上一页
1 2
a21 1
下一页 返回
从而,有RK2法
h y k 1 y k 2 (k1 k 2 ) k1 f (t k , y k ) k 2 f (t k h, y k hk1 )
第3章 连续系统数字仿真的基 本算法
2.1 数值积分算法 2.2 数值积分算法的基本分析 2.3 连续系统仿真的离散相似算法 2.4 常用快速数字仿真算法 2.5 实时数字仿真算法 小结
3.1 数值积分算法
3.1.1 3.1.2 3.1.3 3.1.4 数值积分算法的基本原理 欧拉法 龙格-库塔法 微分方程数值积分的矩阵分析
上一页 下一页 返回

数值积分方法

数值积分方法

数值积分方法数值积分,又称为数值分析,是一种应用科学和数学技术来求解数学分析中几何或者微分方程的数学方法。

在实际应用中,有一系列的数值积分方法可以应用于解决某些数学问题,其中包括这些方法的微元法、有限元法、线性多项式插值法、指数插值法、函数拟合法和通用积分等方法。

通过合理的数值技术及其应用,可以有效地解决众多实际问题。

数值积分是数值分析中最基本的方法,指将数学分析中的连续函数或曲线所表示的求和问题离散化,以使其被数值计算机计算出来,也被称为数值积分。

当需要用数值积分方法求某函数的定积分时,首先必须找出该函数的积分表达式,然后对该表达式进行离散化,得到计算机可以处理的函数,最后根据具体的算法,得到数值积分的解。

数值积分方法具有多种形式,分别适用于不同实际问题。

首先,常用的数值积分方法有积分公式,如梯形公式、抛物线公式、Simpson 公式等,以及牛顿-拉夫逊多项式插值公式等,这些积分公式可以以直接的方式计算定积分,但是这种方法只适用于简单的定积分计算,在复杂定积分的计算中效果不佳。

其次,还有多元积分法,如变步长梯形法、双积分法等,这些积分法可以帮助求解一些复杂的定积分,但是计算时间较长。

此外,还有有限元法、隐式Runge-Kutta法、快速积分法等,这些积分方法能够帮助求解非定积分问题,其计算效率也相对较高。

数值积分方法在实际应用中得到了广泛的应用,如仿真求解有限元方程,求解复杂的拟合问题,估计系统的运行参数,计算力学分析等等都与数值积分技术有关。

另外,今天在这一领域,全球多家著名计算数值分析软件公司也在不断改进技术,开发出更加高效的数值积分软件,从而更好地服务于实际问题的求解。

总之,数值积分方法是一门重要的数值分析学科,可用于解决多种实际问题,广泛应用于科学和技术领域,具有重要的现实意义。

3-1连续系统数值积分仿真方法学

3-1连续系统数值积分仿真方法学
2019/2/6
21
龙格-库塔法的特点
A 单步法
可自启动,即知道初值后,直接从微分方程
初值开始计算下去。 B 不同步骤的步长可以不一样,但每一步需 同一步长来计算系数。 C 计算YK+1分两部分:求YK;步长乘各系数 的加权平均值
2019/2/6 22
D 精度取决于h的大小及解决方法 当精度相同时,四阶的计算量是二阶的两倍,
2019/2/6
k3 f yk k 2 h / 2, t k h / 2
20
k1 f yk , t k
yk 1 yk hk1 3k 2 3k3 k 4 / 8
k 2 f yk k1h / 3, t k h / 3
k3 f yk k 2 h k1h / 3, t k 2h / 3 k 4 f yk k1h k 2 h k3 h, t k h
B—n*1控制矩阵;C—1*n输出矩阵
U(t)—输入变量;y(t)—输出变量
采用四阶龙格库塔法进行仿真计算
2019/2/6
33
龙格库塔公式
xk 1
k1 f yk , t k
xk hk1 2k 2 2k3 k 4 / 6
k 2 f yk k1h / 2, t k h / 2 k 4 f yk k3 h, t k h
2019/2/6 30
二、面向方程的系统仿真
1 状态方程的仿真程序
2 传递函数
3 微分方程
2019/2/6
31
1 状态方程的仿真程序
设系统的状态方程和输出方程:
t Axt But x yt Cxt

计算机仿真技术课件3数值积分法在系统仿真中的应用

计算机仿真技术课件3数值积分法在系统仿真中的应用

第三章 数值积分法在系统仿真中的应用
龙格-库塔法
将式(3.3)在tn点展开 泰勒级数
h2 (t n ) (t n ) o(h 3 ) y (t n h) y (t n ) hy y 2
龙格-库塔(RK)法的一般形式为
r
(3-9)
yn1 yn h wi ki
第三章 数值积分法在系统仿真中的应用
为了适用于实时仿真计算,一般经常采用以下方法:
(1)选择Adams多步法。 (2)合理地选择龙格-库塔法计算公式中的系数,使之适用于 实时仿真。
在方程(3 18)式中,令W1 0可得W2 1, c2 1 , 此时, 2 (3 18)式化为
yn 1 yn hk2 k1 f (t n , yn ) k 2 f (t n h , yn h k1) 2 2

(3-38)
F为函数,外部输入为u(t) 。
第三章 数值积分法在系统仿真中的应用
采入un1
采入u (tn h ) 2
计算yn1 , 并输入
计算k 2
计算下 一个k1
tn
tn h 2
t n 1
图3.6
tn1 h 2
tn1 h
RK-2 的计算流程
由于当tn h tn 1时极端即才能真正采入 外部输入un1 , 才具备 计算k2的条件。所以 yn1要到tn1 h 时才能计算出来,并输 入到外 2 部设备,也就是说,计 算机输出要迟后半个计 算步距。
p yn 1 yn h f ( yn , t n ) (3-8) p p h y y [ f ( y , t ) f ( y n n n 1 , t n 1 )] n 1 n 2

计算机仿真数值积分法系统仿真PPT学习教案

计算机仿真数值积分法系统仿真PPT学习教案

y(t n ) 计算
2.1 概述
y(t n1 ) 需要的时间为Tn,若
hn tn1 tn ,
3 . 数 值 积分 算法:
y f (y ,u,t )

, 已 知 系 统 变量

y
随 时 间 变 化 的过程
y(t ) --初值问题
y 的初始条件
y(t0 ) y0
第5页/共65页
2.1 概述
计 算 过 程 : 由初始 点
2.1 概述
第1页/共65页
1. 相 似 原 理 设系统模型为
y f (y ,u,t )
其 中 u (t)为输 入变量 ,y(t)为 系统变 量;令 仿真时 时间隔 为h, 离散化 后的输 入变量 为
uˆ(t ) n
系统变量为
yˆ (tn )
其中
tn
表示
t=nh
如果
uˆ(tn ) u(tn )
绝 对 误 差 准 则:
ey (tn ) yˆ(tn ) y(tn )
相 对 误 差 准 则:
ey (tn )
yˆ(tn ) y(tn ) yˆ(tn )
其 中 规 定 精 度的 误差量
第4页/共65页
( 3 ) 快 速性 :若第 n步计 算所对 应的系 统时间 间隔为
计算机由
T n =h n 称 为实时 仿真 T n h n 称为 超实时 仿真 T n h n 称 为亚实 时仿真
例 : 就 初 值 问题
考 察欧 拉显式 格式的 收敛性 。
y yy(ຫໍສະໝຸດ ) y0解:该问题的精确解为
欧拉公式 为
y( x) y0e x yi1 yi h yi (1 h) yi
x = x = i h 对任意固定的

连续系统数字仿真数值积分法

连续系统数字仿真数值积分法


main() { float x11,x21,x31,x10,x20,x30,R; int i; x10=0;x20=0;x30=0;outputy[0][0]=0; ST=10;DT=0.005; LP=ST/DT;VN=1;R=20; for (i=1;i<=LP;i++) { x11=x10-DT*x30+DT*R; x21=DT/0.5*x10+(1-DT/0.5)*x20; x31=DT/0.1*x20+(1-DT/0.1)*x30; outputy[0][i]=x31; x10=x11;x20=x21;x30=x31; } dispcurve(); } 程序为llx56.c

4.2 梯形法 为了提高仿真精度,离散-再现环节采取图4.3 的形式。 (4-11)


X (k 1) X (k )
T [e(k ) e(k 1)] 2
(4-12)
式(4-12)称为梯形公式,其几何解释如图4.4所示。

[例4.1] 已知一多变量系统的结构框图如图4.5所示,请 用梯形公式对此系统进行仿真,并输出y1、y2的仿真结果。

假设线性系统的状态空间描述为
AX BU X Y CX DU

式中:X为n×1维状态向量;U为r×l维输入 向量;A为n×n维系统矩阵;B为n×r维输入 矩阵;Y为m×1维输出向量;C为m×n维输出 矩阵;D为m×r维传递矩阵。

(4-3) (4-4) (4-5) (4-6)

4.3 龙格-库塔(Runge-Kutta)法

在非实时仿真中,有时需要更高的精度。 4.3节和4.4节中将再介绍两种更精确的方 法及其离散-再现环节。

数值积分方法与应用

数值积分方法与应用

数值积分方法与应用数值积分方法是一种数值计算技术,用于计算函数在给定区间上的定积分。

在实际应用中,我们经常会遇到无法通过解析方法求解的定积分,这时候就可以借助数值积分方法来进行近似计算。

本文将介绍数值积分的基本原理、常用方法以及在实际问题中的应用。

一、基本原理在介绍数值积分方法之前,我们先来回顾一下定积分的几何意义。

对于函数f(x),在区间[a, b]上的定积分∫[a, b]f(x)dx表示函数f(x)在区间[a, b]上与x轴之间的面积。

当函数f(x)是非常复杂的时候,我们往往无法通过解析方法求解定积分,这时候就需要借助数值积分方法进行近似计算。

数值积分方法的基本原理是将积分区间分割成若干个小区间,然后在每个小区间上选取一个节点进行函数值的采样,最后通过对这些采样值的加权和来近似表示定积分的值。

常用的数值积分方法包括Newton-Cotes公式、Gauss求积法等。

二、常用方法1. Newton-Cotes公式Newton-Cotes公式是最简单的数值积分方法,其基本思想是将积分区间均匀分割成若干个小区间,然后在每个小区间上取若干个节点进行函数值的采样。

最常见的Newton-Cotes公式为梯形公式和Simpson 公式。

梯形公式是将积分区间[a, b]分割成n等分,然后在相邻两个节点上计算函数值,最后通过梯形面积的加权和来近似表示定积分的值。

Simpson公式是将积分区间[a, b]分割成2n等分,然后在每个子区间的两个端点和中点上计算函数值,最后通过三次多项式的插值来近似表示定积分的值。

2. Gauss求积法Gauss求积法是通过选取一定的节点和权重来提高数值积分方法的精度。

其基本思想是在给定区间上选取一些特定的节点和权重,然后通过这些节点和权重的组合来构造一个更高阶的数值积分公式。

Gauss求积法的优点是可以通过适当选择节点和权重来提高数值积分的精度,适用于高阶多项式的数值积分。

三、应用案例数值积分方法在科学计算、工程建模等领域有着广泛的应用。

计算机仿真技术课件第三章连续系统数值积分仿真方法学

计算机仿真技术课件第三章连续系统数值积分仿真方法学

xn

2
fn

2
f n 1

x
n
1
2

2
f n 1
Xn
K1
x n
1
2
h/2 h/2
tn
tn+1
t
梯形法大大提高了精度,但为隐式算法,每 次递推计算时需解一次非线性方程,计算量较大
由此考虑进行改进,先用Euler法计算出:
x (tn 1) 的近似值 x pn1 代入导函数 fn1 求出近似值 f pn1 再代入梯形公式求解。
x x n f (tn 1, x n 1,un 1)(t tn )
取切线上 tn1 处的值来近似 x(tn1)
x (tn 1) x (tn ) hf (tn 1, x n 1,un 1)
也能得到: x n1 x n hfn 1 后向欧拉法
欧拉法(切线推导)的几何意义
也能得到: x n 1 x n hfn 前向欧拉法
3、切线近似(2)
在 tn,tn1 曲线 x(t) 可用tn1 处的切线来表示,
x(t) 在 tn1 处的斜率为:
dx dt
t

t n 1

f (tn1, xn1,un1(t ))
过点 tn, xn 以 fn+1 为斜率的切线方程为:
dx dt
t

tn

f (tn, xn,un (t ))
过点 tn, xn 以 fn 为斜率的切线方程为:
x x n f (tn , x n ,un )(t tn )
取切线上tn1 处的值来近似 x (tn 1)
x (tn 1) x (tn ) hf (tn , x n ,un )

数值积分方法在物理模拟中的应用

数值积分方法在物理模拟中的应用

数值积分方法在物理模拟中的应用数值积分方法在物理模拟中扮演着重要的角色。

物理模拟可以描述各种现象,例如运动、流体力学和电磁场等。

数值积分方法能够对这些现象进行近似计算,从而得到与实际情况相对应的结果。

本文将讨论数值积分方法在物理模拟中的应用,并重点介绍较为常见的数值积分方法。

首先,让我们回顾一下数值积分的基本原理。

数值积分是通过近似计算定积分的方法。

定积分表示曲线下与x轴之间的面积,而数值积分则是通过将曲线分割为多个小矩形或梯形,计算这些小矩形或梯形的面积之和来近似计算定积分的值。

在物理模拟中,数值积分方法可以应用于多个方面。

首先是在运动学模拟中的应用。

考虑一个简单的例子,一个物体在空中自由下落。

我们可以使用数值积分方法计算物体的位置随时间的变化。

通过将时间分割为较小的时间间隔,并使用数值积分来计算每个时间间隔内的位移,我们可以得到物体的运动轨迹。

这种方法可用于模拟各种运动,包括抛体运动、圆周运动和复杂的非线性运动。

其次,数值积分方法还可以应用于流体力学的模拟。

在流体力学中,流体的速度场、压力场和温度场等参数在空间和时间上都存在变化。

通过将空间和时间离散化,并使用数值积分方法来计算流体参数的变化,我们可以模拟流体的流动。

这对于研究液体、气体和等离子体等不同类型的流体行为至关重要。

另一个常见的应用领域是电磁场的模拟。

电磁场涉及电荷、电流和电磁波等物理现象。

通过将空间划分为离散的单元,并应用数值积分方法来计算电荷和电流在空间中的分布,我们可以模拟电磁场的行为。

这对于研究电磁辐射、电磁感应和电磁波传播等方面有着广泛的应用。

除了上述示例外,数值积分方法还可以应用于其他物理模拟领域,例如量子力学、相对论、化学反应和材料科学等。

在这些领域中,数值积分方法可以帮助我们获得物理过程的近似解析解,从而提供有关系统行为和性质的重要信息。

总结起来,数值积分方法在物理模拟中扮演着重要的角色。

它们能够通过近似计算定积分来模拟各种物理现象。

计 算 机 仿 真 技 术第三章 数值积分法在系统仿真中的应用

计 算 机 仿 真 技 术第三章 数值积分法在系统仿真中的应用

式时,在计算 yn1中,需要知道 fn1 ,
而 fn1 f tn1, yn1 又依赖于yn1 本身。因此,要首
先利用欧拉法计算每一个预估的ynp1 ,以此值代
入原方程(3.1.1)式计算
fp n1
,最后利用(3.1.9)
式求修正后的
yc n1

所以改进的欧拉法可描述为
预测
ytn

h

ytn
hf
tn ,
yn
h h2 2!
f
tn ,
yn
将(3.1.4)式在
Rn

1 2!
h2
f
tn
,
yn



以后截断,即
得(3.1.3)式的欧拉公式,Rn称为局部截断误差,
它与 h2成正比,即 Rn O h2
(3.1.5)
另外,解以t 0开始继续到t tn ,所积累的误

1 h2 2!
fy f ft
1 h3 3!
f yy
f
2

f
2 y
f
2
f yt
f
f y ft ftt

又设原问题的数值解公式为
r
yn1 yn Wi Ki

i 1

Ki

hf tn

cih, yn

i 1 j 1
aij
Ki

ytn h ytn hf
(3.1.15)
由(3.1.14)式可得
yn1 yn W1K1 yn W1hf tn , yn (3.1.16)
比较(3.1.15)式和(3.1.16)式得 塔公式为

SS03_数值积分法仿真

SS03_数值积分法仿真
第 8 页
第二节 单步法
引理:泰勒级数:如果f(x)在x0点处任意阶可导,则 在该邻域内的n阶泰勒公式为:
f ( x) = ∑
n= n =0
N
f ( n ) ( x0 ) ( x − x0 ) n + Rn ( x) n!
f ( N +1) (ξ ) 其中:RN ( x) = ( x − x0 ) N +1 称为拉格朗日余项 ( N + 1)!
y (t )
截断误差 ∝ h 2
dy dt
dy = f ( y, t ) = ym + K ⋅ h K = f ( ym , t m )
t
ym+1 = ym + K ⋅ h K = f ( ym , tm )
t
tm
h
t m +1
tm
h
tm +1
第 11 页
通常设法寻找一个低一阶的龙格-库塔公式,两者的结果之 差可以设为误差。为减少计算量,Ki通常要求公用。 Runge-Kutta-Merson法 (RK34)
K1 = K = 2 K3 = K 4 = K = 5 f ( ym , t m ) h h h f ( y m + K1 , t m + ) 四阶五级公式: ym +1 = ym + (K1 + 4 K 4 + K 5) 3 3 6 h h h f ( y m + ( K1 + K 2 ) , t m + ) ˆ 三阶4级公式:ym +1 = ym + (3K1 - 9 K 3 + 12 K 4) 6 3 6 h h f ( y m + ( K1 + 3 K 3 ) , t m + ) h 8 2 误差 : Em = (2 K1 - 9 K 3 + 8 K 4 - K 5) h 6 f ( y m + ( K1 + 4 K 4 − 3 K 3 ) , t m + h ) 2

数值分析在计算机仿真中的应用

数值分析在计算机仿真中的应用

数值分析在计算机仿真中的应用数值分析是一门应用数学的学科,主要研究如何利用计算机进行数值计算和数值解析。

它在计算机仿真中扮演着重要的角色,能够帮助研究人员模拟和预测复杂的实际问题。

本文将介绍数值分析在计算机仿真中的应用。

一、数值方法的基础在进行计算机仿真之前,首先需要建立数学模型来描述实际问题。

然而,大部分实际问题往往是复杂的,难以直接求解。

这就需要运用数值分析的方法,通过近似和数值计算,来求解模型的数值解。

在数值分析中,常用的数值方法包括插值方法、数值积分、微分方程数值解等。

例如,插值方法可以通过已知数据点的函数值,来估计其他位置的函数值。

而数值积分则可以用于计算复杂函数的积分值。

微分方程数值解则可以帮助模拟动力系统、电路等实际问题的行为。

二、计算机仿真的优势计算机仿真是通过使用计算机模型来模拟和预测实际系统的行为。

相比于传统的实验方法,计算机仿真具有以下几个优势。

首先,计算机仿真可以在较短的时间内获得大量的数据。

通过高速计算,可以对不同的参数进行快速的变动,从而观察系统的行为。

这对于需要大量实验数据的问题尤为重要。

其次,计算机仿真可以模拟一些实验难以实现的问题。

例如,对于一些高风险或高成本的实验,计算机仿真可以提供更加安全和经济的解决方案。

最后,计算机仿真可以在设计初期就对系统进行优化。

通过不断调整参数,可以找到最优的系统配置和运行策略。

这在工程设计和产品开发中具有重要意义。

三、数值分析在计算机仿真中的应用数值分析在计算机仿真中有着广泛的应用。

以下将介绍其中几个典型的应用领域。

1. 流体力学仿真流体力学仿真是通过数值方法对流体力学问题进行模拟和分析的过程。

在航空、汽车、能源等领域,流体力学仿真被广泛运用于优化设计和性能评估。

数值方法可以对复杂的流体流动进行模拟,提供流速、温度、压力等关键参数的分布情况,有助于优化设计和改善气动性能。

2. 结构力学仿真结构力学仿真主要研究结构的应力、应变和变形等问题。

第3-1章 连续系统数值积分法仿真Matlab编程

第3-1章 连续系统数值积分法仿真Matlab编程

6
3.2 算法稳定性分析仿真编程
针对下面的系统,求用解析法、欧拉法和RK4分别求解,计算欧 拉法最大允许步长,将步长从0.1逐渐增大,比较三种解的效果。
4 x x x(0) 1
解:1)该系统是稳定的,解析解为
(3.2-1)
x(t ) e4t
2)用欧拉法计算本例时,其步长应该满足
% 输出参数:NewX是这一步计算的新的状态向量
单步数值积分函数只是对微分方程组StateModel进行一步的计算, 计算法由InteMethod参数指定,可以上欧拉法,RK2或RK4。
4
function NewX=w_StepIntegral(curt,h,curx,curu,InteMethod,StateModel); if InteMethod == 'RK4' k1=eval([StateModel,'(curt,curx,curu)']); k2=eval([StateModel,'(curt+0.5*h,curx+0.5*h*k1,curu)']); k3=eval([StateModel,'(curt+0.5*h,curx+0.5*h*k2,curu)']); k4=eval([StateModel,'(curt+h,curx+h*k3,curu)']); NewX=curx+h*(k1+2*k2+2*k3+k4)/6; elseif InteMethod == 'RK2' k1=eval([StateModel,'(curt,curx,curu)']); k2=eval([StateModel,'(curt+h,curx+h*k1,curu)']); NewX=curx+0.5*h*(k1+k2); else %欧拉法EUL Qk=eval([StateModel,'(curt,curx,curu)']);%eval用来执行一个函数,传递函数 名和函数的输入参数 NewX=curx+h*Qk; end

计算机仿真技术课件3数值积分法在系统仿真中的应用PPT文档30页

计算机仿真技术课件3数值积分法在系统仿真中的应用PPT文档30页

谢谢
11、越是没有本领的就越加自命不凡。——邓拓 12、越是无能的人,越喜欢挑剔别人的错儿。——爱尔兰 13、知人者智,自知者明。胜人者有力,自胜者强。——老子 14、意志坚强的人能把世界放在手中像泥块一样任意揉捏。——歌德 15、最具挑战性的挑战莫过于提升自我。——迈克尔·F·斯特利
计算机仿真技术课件3数值积分法在系 统仿真中的应用
46、法律有权打破平静。——马·格林 47、在一千磅法律里,没有一盎司仁 爱。— —英国
48、法律一多,公正就少。——托·富 勒 49、犯罪总是以惩罚相补偿;只有处 罚才能 使犯罪 得到偿 还。— —达雷 尔
50、弱者比强者
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第三章 数值积分法在系统仿真中的应用
3.1 连续系统仿真中常用的数值积分法
几种常用的积分法
欧拉法 欧拉法的几何意义 改进的欧拉法 龙格-库塔法 亚当斯法(显式) 亚当斯法(隐式)
第三章 数值积分法在系统仿真中的应用
欧拉法
欧拉法是最简单的单步法,它是一阶的,精度较差。 欧拉法是最简单的单步法,它是一阶的,精度较差。但由于公 式简单,而且有明显的几何意义, 式简单,而且有明显的几何意义,有利于初学者在直观上学习数值 是怎样逼近微分方程的精确解y(t)的,所以在讨论微分方程 初值问题的数值解时通常先讨论欧拉法。 初值问题的数值解时通常先讨论欧拉法。
第三章 数值积分法在系统仿真中的应用
几何意义
做积分曲线的切线, 如图3 通过点 做积分曲线的切线,其斜率为f ,如图3-1 所示。 平行于纵坐标y 所示。此切线与过t1平行于纵坐标y轴的直线交点即为y1, 再过 点做积分曲线的切线f 1),它与过t 平行于y (t1,y1)点做积分曲线的切线f(t1,y1),它与过t2平行于y轴的直线交 点即为y2。这样可得一条过(t0,y0) ,(t1,y1), (t2,y2),…各点的 点即为y 折线,称为欧拉折线。 折线,称为欧拉折线。
递推方程
考虑初值问题
(3-1) )
对式(3-1)式所示的初值问题的解 的函数, 对式(3-1)式所示的初值问题的解y(t)是一连续变量t的函数,现在 (3 来代替, 要以一系列离散时刻的近似值 来代替,其中 称为步长,是相邻两点之间的距离。 称为步长,是相邻两点之间的距离。
第三章 数值积分法在系统仿真中的应用
第三章 数值积分法在系统仿真中的应用
从控制理论中可知,对于一个连续时间系统可以在时域、 从控制理论中可知,对于一个连续时间系统可以在时域、频域中 描述其动态特性。然而,在工程实际和科学研究中所遇到的实际问题 描述其动态特性。然而, 往往很复杂, 往往很复杂,在很多情况下都不可能给出描述动态特性的微分方程解 的解析表达式,多数只能用近似的数值方法求解。随着计算机硬件、 的解析表达式,多数只能用近似的数值方法求解。随着计算机硬件、 和数值理论的进展, 软件的发展 和数值理论的进展,微分方程的数值解方法已成为当今 研究、分析、设计系统的一种有力工具。 域中的系统模型, 研究、分析、设计系统的一种有力工具。即使频 域中的系统模型, 也可以将其变换为时域中的模型。 也可以将其变换为时域中的模型。 本章重点讨论数值积分法在系统仿真中的应用, 本章重点讨论数值积分法在系统仿真中的应用,介绍其仿真算法 的设计。 及仿真程序 的设计。第一节介绍在系统仿真中常用的几种数值积分 并由此引出数值积分法的误差分析方法。 法,并由此引出数值积分法的误差分析方法。第 二节讨论刚性系统 的概念与仿真时要注意的问题。第三节研究实时仿真算法, 的概念与仿真时要注意的问题。第三节研究实时仿真算法,它在半实 重要的。 物仿真中是至关 重要的。第四节讨论分布参数系统仿真的数值积分 算法。最后一节研究面向微分方程的仿真程序设计。 算法。最后一节研究面向微分方程的仿真程序设计。
第三章 数值积分法在系统仿真中的应用
舍入误差:舍入误差是由于计算机进行计算时, 舍入误差:舍入误差是由于计算机进行计算时,数的位数有限所引 起的, 成正比。 起的,一般舍入误差与h-1成正比。最后得到欧拉法总误差表示为 (3 - 7 ) 增加, 增加, 由(3-7)式可以看出,步长h增加,截断误差O1(h)增加,而舍入误 (3-7)式可以看出, 式可以看出 减小。反之, 减小, 加大。 差O2(h-1)减小。反之,截断误差O1(h)减小,而舍入误差O2(h-1)加大。 如图3 所示。 其关系 如图3-4所示。
图3-4 欧拉法误差关系
第三章 数值积分法在系统仿真中的应用
改进的欧拉法(预测校正法)
在推导时用图中的阴影面积来近似 式(3-3)时,由于梯形公式中隐含有待求 时 通常可用欧拉法启动初值, 量,通常可用欧拉法启动初值,算出近 似值,然后带如微分方程,最后利用梯 似值,然后带如微分方程, 形公式求出修正。为提高精度, 形公式求出修正。为提高精度,简化计 只迭代一次。这样可得改进的欧拉 算,只迭代一次。这样可得 公式:
第三章 数值积分法在系统仿真中的应用
第三章 数值积分法在系统仿真中的应用
3.1 连续系统仿真中常用的数值积分法……………. 3.2 刚性系统的特点及算法…………………………. 3.3 实时仿真法………………………………………. ………………………………………. 3.4 分布参数系统的数字仿真………………………. 3.5 面向微分方程的仿真程序设计…………………. 本章小结……………………………………………….
(3-3) )
因已知, 依次类推, 因已知,所以由上式可以求出y(t1),然后求出y(t2)。 依次类推,其一 般规律为: 般规律为:由前一点ti上的数值y(ti)可以求得后一点ti+1上的数值 y(ti+1)。 +1上的数值 这种算法称为单步法。又因为(3 3)式可以直接由微分方程(3-1)式的已知初 (3- 式可以直接由微分方程(3 这种算法称为单步法。又因为(3-3)式可以直接由微分方程(3-1)式的已知初 作为递推计算时的初值, 其他信息,因此单步法是一种自启 始值y0作为递推计算时的初值,而不需要 其他信息,因此单步法是一种自启 动算法。 动算法。
若把方程(3-1)式在 若把方程(3-1)式在 (3
区间上积分, 区间上积分,则可得
(3-2) )
上式右端的积分,一般是很难求出的,其几何意义为曲线 上式右端的积分,一般是很难求出的, 上式右端的积分 充分小时,可用矩形面积来近似代替: 区间上的面 积。当 充分小时,可用矩形面积来近似代替:
因此,(3-2)式可以近似为 因此,(3-2)式可以近似为 写成递推式
图3-5 梯形近似及其误差
第三章 数值积分法在系统仿真中的应用
龙格-库塔法 龙格 库塔法
欧拉法是将 经台劳级数展开并 以后各项得到的一阶一步法,所以精度较低。如果将展开式(3 (3截去h2以后各项得到的一阶一步法,所以精度较低。如果将展开式(35)式多取几项以后截断 就得到精度较高的高阶数值解, 式多取几项以后截断, 5)式多取几项以后截断,就得到精度较高的高阶数值解,但直接使用 台劳展开式要计算函数的高阶导数。龙格— 台劳展开式要计算函数的高阶导数。龙格—库塔法是采用间接利用台 劳展开式的思路, 的导数, 劳展开式的思路,即用在n个点上的函数值f的线性组合来代替f的导数, 然后按台劳展开式确定其中的系数,以提高算法的阶数。 然后按台劳展开式确定其中的系数,以提高算法的阶数。这样既能避 免计算函数的导数, 保证了计算精度。由于龙格— 免计算函数的导数,同时又 保证了计算精度。由于龙格—库塔法具有 许多优点,故在许多仿真程序包中, 许多优点,故在许多仿真程序包中,它是一个最基本的算法之 一。
第三章 数值积分法在系统仿真中的应用
显示龙格 库塔法 显示龙格-库塔法 显示龙格
对于初值问题(3-1)式 假设其精确解是充分光滑的, 对于初值问题(3-1)式,假设其精确解是充分光滑的, (3 故可将其解y(t) y(t)在 故可将其解y(t)在tn附近用台劳级数展 开,即
(3-9) )
依据偏导数关系
图3-1
欧拉折线
第三章 数值积分法在系统仿真中的应用
欧拉法的几何意义
欧拉法的几何意义 十分清楚。
y
y0
y1
y2
图3.2 通过 ( t 0 , y 0 )点作为积分曲线的切线 ,其 斜率为 f ( y 0 , t 0 ),此切线与 t1处平行于 y轴直 线的交点即为 y1,再过 ( t1 , y1 )点作积分曲线 的切线 , 它与过 t 2 平行于 y轴直线的交点为 y 2。 这样过 ( t 0 , y 0 ),1 , y1 ), 2 , y 2 ), ,得到一 (t (t
第三章 数值积分法在系统仿真中的应用
图3-6所示是二阶龙格—库塔法的几何表示。图中: 所示是二阶龙格—库塔法的几何表示。图中: 点以 是 点的切线, 点的切线,其斜率为 为斜率做的直线, 为斜率做的直线,现取 为斜率,在 为斜率, 处的近似解位于切线L上 ,则tn+1处的近似解位于切线 上。
点做切线L
(3-16) )
代入(3 16)式的 (3将K1,K2代入(3-16)式的Yn+1中,整理得 将所得各项与(3-11)式同类项的系数比较, 将所得各项与(3-11)式同类项的系数比较,有 (3 式同类项的系数比较 =1, 取c2=1,得 故得二阶龙格— 故得二阶龙格—库塔法计算公式
(3-17) )
由于(3-11)式中只取了 两项, 以上的高阶项忽略了, 由于(3-11)式中只取了h,h2两项,而将h2以上的高阶项忽略了,所以 (3 这种计算方法的截断误差正比于h3。
t0
t1 t 2
t
称为欧拉折线法。 条折线,
图3-2 欧拉折线
第三章 数值积分法在系统仿真中的应用
误差分析
欧拉法虽然计算精度较低,实际中很少采用, 虽然计算精度较低,实际中很少采用, 虽然计算精度较低 但是推导简单, 但是推导简单,能说明数值积分解法一般计算公 式的基本思想。 式的基本思想。
f (t )
(3-10) )
将式(3-10)式代入(3-9)式 将式(3-10)式代入(3-9)式,得 (3 式代入(3
(3-11) )
第三章 数值积分法在系统仿真中的应用
又设原问题的数值解公式为
(3-12) )
式中:Wi—待定的权因子; 式中: 待定的权因子; 解公式的阶数; r—解公式的阶数; 不同点的导数和步长的乘积; Ki—不同点的导数和步长的乘积; 待定系数, ci,aij—待定系数,而且 。 方程(3 11)式和(3-12)式是两个基本方程 (3式和(3 式是两个基本方程, 方程(3-11)式和(3-12)式是两个基本方程,由此可以导出不同阶 次的龙格—库塔公式 。 次的龙格— 当r=1时,由(3-11)式可得 r=1时 (3-11)式可得 由(3-12)式可得 (3-12)式可得
相关文档
最新文档