Adams预测-校正系统
数值分析引论显式Adams方法、隐式Adams方法、预估–校正四阶Adams方法、预估–校正–改进四阶Adams方法
山东师范大学数学科学学院实验报告实验课程:数值分析引论实验项目:显式Adams方法、隐式Adams方法、预估–校正四阶Adams方法、预估–校正–改进四阶Adams方法姓名:XXX 学号:2015080401XX 班级:XXX班专业:数学与应用数学指导教师:XXX 完成日期:2018/12/14实验目的1、用显式Adams方法、隐式Adams方法、预估–校正四阶Adams方法、预估–校正–改进四阶Adams方法解初值问题的matlab实现2、用显式Adams方法、隐式Adams方法、预估–校正四阶Adams方法、预估–校正–改进四阶Adams方法解初值问题。
实验内容:显式Adams方法问题分析和算法设计隐式Adams方法问题分析和算法设计预估–校正四阶Adams方法问题分析和算法设计预估–校正–改进四阶Adams方法问题分析和算法设计主要程序代码Adams..m%四阶Adams显式a=k(1);b=k(2);xk=a:h:b;yk=zeros(size(xk));yk(1)=y0;f=@(x,y)1./x.^2-y./x-y.^2;N=size(xk,2);%Runge_Kutta方法算前4个初始值for i=2:4%求k1-k4x=xk(i-1);y=yk(i-1);k1=f(x,y);k2=f(x+h/2,y+h/2*k1);k3=f(x+h/2,y+h/2*k2);k4=f(x+h,y+h*k3);yk(i)=y+h/6*(k1+2*k2+2*k3+k4);endfor i=5:Nyk(i)=yk(i-1)+h/24*(55*f(xk(i-1),yk(i-1))-59*f(xk(i-2),yk(i-2))+37*f(xk(i-3),yk(i-3))-9*f(xk(i-4),yk(i-4))); endff=@(x)-1./x;ffx=ff(xk);errors=abs(ffx(5:end)-yk(5:end));Y_Adams.m%四阶Adams隐式a=k(1);b=k(2);xk=a:h:b;yk=zeros(size(xk));yk(1)=y0;f=@(x,y)1./x.^2-y./x-y.^2;N=size(xk,2);>> Y_Adams>> tab=[tab yk(5:end)' errors'];>> Y_G_Adams>> tab=[tab yk(5:end)' errors'];>> Y_J_G_Adams>> tab=[tab yk(5:end)' errors'];>>plot(xk(5:end)',ffx(5:end)')>> hold on>> plot(tab(:,1),tab(:,2))>> plot(tab(:,1),tab(:,4))>> plot(tab(:,1),tab(:,6))>> plot(tab(:,1),tab(:,8))>> legend('原图','显式Adams','隐式Adams','预估-校正Adams','预估-校正-改进Adams')图像如图1图1计算结果如表1表1总结(1)隐式Adams方法最精确、预估–校正四阶Adams方法与预估–校正–改进四阶Adams方法运算较快。
科学计算2
注 对形式简单的方程,可以由差分方程解的表达式 取极限导出收敛性。 例如对初值问题:
y′ = ay用Euler法得近似解表达式
y n = y n −1 + hay n −1 = (1 + ha ) y n −1 = (1 + ha ) n
对 x = nh, 当 h → 0 时有
h2 h p ( p) ′ y ( xn +1 ) = y n + hy ′ + y n′ + ⋯ + y n + O ( h p +1 ) n 2 p! r ∑ α i = 1 i=0 ⇒≥ r r ( −i ) k α + k ( −i ) k −1 β = 1 ∑ i i ∑ i = −1 i =1
i=0 i = −1
r
r
其中 f n −i = f ( xn −i , yn −i ), α i , β i 为待定系数.
若 β−1 = 0 为显式公式 β−1 ≠ 0 为隐式公式 , .
3.1 线性多步公式的导出 利用Taylor展开
h2 hp ( ′ ′ yn−i = y(xn − ih) = yn + (−i)hyn + (−i)2 h2 yn +⋯+ (−i) p ynp) + O(hp+1) 2 p! hp−1 ( p) ′ ′ fn−i = y′(xn−i ) = yn + (−i)hyn +⋯+ yn + O(hp ) ( p −1)! hp−1 ( p) ′ ′ fn+1 = f (xn+1, yn+1) ≈ y′(xn+1) = yn + hyn +⋯+ yn + O(hp ) ( p −1)!
常微分方程初值问题的预估-校正解法[文献综述]
毕业论文文献综述信息与计算科学常微分方程初值问题的预估-校正解法一、前言部分在生产实际和其他数学分支中,都会不断地遇到常微分方程,而在这些方程中,仅有很少的一部分能通过初等积分法给出通解或通积分,大多数积分必须数值计算。
所以,一开始就使用数值方法求解通常更有效]1[。
解常微分方程初值问题的数值方法通常可以分为两类]2[:(1)单步法,例如Euler方法和 Runge-Kutta方法;(2)多步法,例如线性多步法。
我们将同阶的显式公式与隐式公式相比,前者使用方便,计算量较小;而后者一般需用迭代法求解,计算量大,但其局部截断误差较小,稳定性较好。
两种方法各有长处和不足。
因此,常常将它们配合起来使用,以发挥它们的优点,弥补各自的不足]3[。
这样将显式公式和隐式公式联合使用,前者提供预测值,而后者将预测值加以校正,使数值解更精确。
由此形成的算法通常被称作预估-校正算法(简称为PC算法)原则上任一显式多步法和隐式多步法都可以搭配成预估校正算法及各种计算方案,但不是任一种方案都是可用的。
一个好的计算方案应该计算稳定,具有所需的精度,并且节约计算量]4[。
几种常见的预估-校正算法]5[:(1)Adams四阶预估-校正算法;(2)Milne方法(3)Hamming算法。
本文综述常微分初值问题的数值解法及其误差估计(相容性、稳定性和收敛性分析),重点介绍了预估-校正算法。
二、主题部分2.1 常微分方程的起源和发展]6[许多有关微分方程的教材都会提到发现海王星的故事。
海王星的发现是人类智慧的结晶,也是常微分方程巨大作用的体现,体现了数学演绎法的强大威力。
1781年发现天王星后,人们注意到它所在的位置总是和万有引力定律计算出来的结果不符。
于是有人怀疑万有引力定律的正确性;但也有人认为,这可能是受另外一颗尚未发现的行星吸引所致。
当时虽有不少人相信后一种假设,但缺乏去寻找这颗未知行星的办法和勇气。
23岁的英国剑桥大学的学生亚当斯承担了这项任务,他利用引力定律和对天王星的观测资料建立起微分方程,来求解和推算这颗未知行星的轨道。
adams预测校正公式
adams预测校正公式
Adams预测-校正公式是用于求解常微分方程的一种数值方法。
该公式包含预估和校正两个步骤。
预估步骤的公式为:
yˉi+1=yi+h24(55fi−59fi−1+37fi−2−9fi−3)y_{i+1} = y_i +
\frac{h}{24}(55f_i - 59f_{i-1} + 37f_{i-2} - 9f_{i-3})yi+1=yi+24h(55fi
−59fi−1+37fi−2−9fi−3)
其中,h是步长,f(x, y)是微分方程 dy/dx=f(x,y)dxdy=f(x,y) 的函数形式。
校正步骤的公式为:
yi+1=h24(9f(xi+1,yi+1)+19fi−5fi−1+fi−2)y_{i+1} =
\frac{h}{24}(9f(x_{i+1}, y_{i+1}) + 19f_i - 5f_{i-1} + f_{i-2})yi+1=24h (9f(xi+1,yi+1)+19fi−5fi−1+fi−2)
需要注意的是,预估式中出现了 f_{i-3}, f_{i-2}, f_{i-1}f_{i-3}, f_{i-2}, f_{i-1}fi−3, fi−2, fi−1,因此在启动Adams预估校正算法之前,需要用其他算
法进行前三个时间步的运算,较为普遍的是采用四阶R-K公式进行启动计算。
以上内容仅供参考,建议查阅数学或编程类书籍或咨询专业人士获取更准确的信息。
接触刚度的计算
step(time,0,0d,0.68,-12000d)+step(time,0.68,0d,1.77,0d)+step(time,1.77,0d,2.45,12000d)3.2.3定义齿轮啮合的接触碰撞力为了保证仿真分析的真实性,齿轮之间的啮合运动关系没有被定义成理想化的几何约束关系,而是被定义为基于接触碰撞的力约束关系,即齿轮之间只能通过接触碰撞力(法向)和摩擦力(切向)相互约束,而不存在其他的约束关系。
在ADAMS 中有两种接触碰撞的计算模型,一种是基于Hertz 理论的Impact 函数模型,一中是基于恢复系数(Coefficient of restitution )的泊松(POISSON )模型。
两种力模型都来自于法向接触约束的惩罚函数。
ADAMS/C++Solver 使用惩罚因子来转换所有的接触约束。
采用Impact 函数来计算各啮合齿轮轮齿之间的接触碰撞力。
Impact 函数模型将实际中物体的碰撞过程等效为基于穿透深度的非线性弹簧—阻尼模型,其计算表达式为:()()⎪⎩⎪⎨⎧><⎭⎬⎫⎩⎨⎧---=11.1max 1100,0,,,,x x x x x x C d x x step x x K Max F n (3-1)其中 K ——接触刚度系数;1x ——位移开关量,用于确定单侧碰撞是否起作用;x ——接触物体之间的实测位移变量;d ——阻尼达到最大时两接触物体的穿透深度;max C ——最大接触阻尼; .x ——穿透速度;n ——非线性弹簧力指数。
当1x x >时,两物体不发生接触,接触力为0,当1x x <时,两物体接触,接触力大小与接触刚度系数、非线性指数、阻尼系数以及两物体距离的改变量即穿透量有关。
由以上公式可知,Impact 接触力包括两个部分:(1)弹性分量n x x K )(1-,相当于一个非线性弹簧;(2)阻尼分量().1max 10,,,,x x C d x x step -,其方向与运动方向相反,为了避免阻尼分量突变而使得函数变得不连续,采用了阶跃函数()step 来定义阻尼,()step 函数是利用三次多项式逼近海赛(Heacisde )阶跃函数,具有连续的一阶导数,但在起始点处二阶导数不连续。
Adams与Milline-Hamming预测校正公式例题
例:y(0)=1 (0x1)本题采用adams与Miline-Haming预测校正公式求解的一种解法。
f = sym('y-2*x/y'); %sym为定义符号变量函数。
例f=sym(‘sin2’) 输出结果为f=sin2x = 0; y = 1; %初始条件h = 0.1; %步长a = 0;b = 1; %上下线n = (b-a)/h+1; %步数sjs=[x,y]; %先定义一个数值解;sjs符号自定义即可,没有要求adx=0; %adams方法的x初始值;%下面的是龙格库塔方法求解,这里求得的是[0.1]中的所有解,为和后面的方法进行比较for i = 1:n-1RK(i)=y;L1=subs(f,{'x','y'},{x,y});L2=subs(f,{'x','y'},{x+h/2,y+h*L1/2}); %subs是替代函数,也就是用后面的代替前面的%例如:L2中,用(x+h/2,y+h*L1/2)代替原(x,y);此时函数应为f(x+h/2,y+h*L1/2);%下面同理L3=subs(f,{'x','y'},{x+h/2,y+h*L2/2});L4=subs(f,{'x','y'},{x+h,y+h*L3});y=y+h*(L1+2*L2+2*L3+L4)/6;x=x+h;adx(i+1)=x;sjs=[sjs;x,y];endady(1)=RK(1); mh(1)=RK(1); %ady为adams方法的y值,而mh为另一种方法的y值ady(2)=RK(2); mh(2)=RK(2); %因为这两种方法均要用龙格库塔方法求出前几项ady(3)=RK(3); mh(3)=RK(3);ady(4)=RK(4); mh(4)=RK(4);%下面是adams预测-校正方法for j=5:npre1=ady(j-1)+h*(55*subs(f,{'x','y'},{adx(j-1),ady(j-1)})-59*subs(f,{'x','y'},{adx(j-2),ady(j-2)})+37*subs(f,{'x','y'},{adx(j-3),ady(j-3)})-9*subs(f,{'x','y'},{adx(j-4),ady(j-4)}))/24;ady(j)=ady(j-1)+h*(9*subs(f,{'x','y'},{adx(j),pre1})+19*subs(f,{'x','y'},{adx(j-1),ady(j-1)})-5*subs(f,{'x','y'},{adx(j-2),ady(j-2)})+subs(f, {'x','y'},{adx(j-3),ady(j-3)}))/24;end%下面是Miline-Hamming预测校正方法for k=5:11pre2=mh(k-4)+4*h*(2*subs(f,{'x','y'},{adx(k-1),mh(k-1)})-subs(f,{'x','y'},{adx(k-2),mh(k-2)})+2*subs(f,{'x','y'},{adx(k-3),mh(k-3)}))/3;mh(k)=(9*mh(k-1)-mh(k-3))/8+3*h/8*(subs(f,{'x','y'},{adx(k),pre2})+2*subs(f,{'x','y'},{adx(k-1),mh(k-1)})-subs(f,{'x','y'},{adx(k-2),mh(k-2)})); end%输出结果并打印图像sjs %RK公式结果plot(sjs(:,1),sjs(:,2),'r') %RK公式图像hold onady %adams公式结果plot(sjs(:,1),ady,'ob') %adams公式图像hold onexact=sqrt(1+2*sjs(:,1)) %精确解plot(sjs(:,1),exact,'*g'); %精确解图像mh %mh公式结果hold onplot(sjs(:,1),mh,'k+'); %mh公式图像。
3.3多步法3.4误差与稳定性分析3.5数值积分法的选择与计算步长的确定
最大误差
0.001
0.00797
0.01
0.00078
0.02
0.00038
0.05
0.00001
0.1
0.00104
0.2
0.01501
0.5
0.59470
1.0
0.48049
(R=0)
最大误差 0.00104 0.00010 0.00005 0.00001 0.00003 0.00107 0.01645 0.79498
5 12
h y ( ),
3 (3)
系统仿真
a.Adams显示公式
当k=3时,可得四阶Adams显式公式:
yn1 yn
h 24
55 f n 59 f n1 37 f n2 9 f n3
h y ( ),
5 (5)
其局部截断误差
Rn
251 720
(tn1, tn )
式中:
ek 1 y(tk 1 ) yk 1 ——整体截断误差
k 1 yk 1 yk 1
系统仿真
——舍入误差
17
(a)截断误差
截断误差
局部截断误差
• 假定前k步为微分方程精确解的误差
整体截断误差
• 从初值开始,每步均有局部截断误差
假定前一步得到的结果yn是准确的,则用泰级数展
h p yn (9 f n1 19 f n 5 f n 1 f n 2 ) 24
y n1
c
是一个四步法,具有四阶精度。
除了初始值yo以外,其前三步的值y1,y2,y3 往往用RK4法计算,其余的y4,y5转向预估-校正 求解
(整理)常微分方程解
第四章常微分方程数值解[课时安排]6学时[教学课型]理论课[教学目的和要求]了解常微分方程初值问题数值解法的一些基本概念,如单步法和多步法,显式和隐式,方法的阶数,整体截断误差和局部截断误差的区别和关系等;掌握一阶常微分方程初值问题的一些常用的数值计算方法,例如欧拉(Euler)方法、改进的欧拉方法、龙贝-库塔(Runge-Kutta)方法、阿达姆斯(Adams)方法等,要注意各方法的特点及有关的理论分析;掌握构造常微分方程数值解的数值积分的构造方法和泰勒展开的构造方法的基本思想,并能具体应用它们导出一些常用的数值计算公式及评估截断误差;熟练掌握龙格-库塔(R-K)方法的基本思想,公式的推导,R-K公式中系数的确定,特别是能应用“标准四阶R-K公式”解题;掌握数值方法的收敛性和稳定性的概念,并能确定给定方法的绝对稳定性区域。
[教学重点与难点]重点:欧拉方法,改进的欧拉方法,龙贝-库塔方法。
难点:R—K方法,预估-校正公式。
[教学内容与过程]4.1 引言本章讨论常微分方程初值问题(4.1.1)的数值解法,这也是科学与工程计算经常遇到的问题,由于只有很特殊的方程能用解析方法求解,而用计算机求解常微分方程的初值问题都要采用数值方法.通常我们假定(4.1.1)中f(x,y)对y满足Lipschitz条件,即存在常数L>0,使对,有(4.1.2) 则初值问题(4.1.1)的解存在唯一.假定(4.1.1)的精确解为,求它的数值解就是要在区间上的一组离散点上求的近似.通常取,h称为步长,求(4.1.1)的数值解是按节点的顺序逐步推进求得.首先,要对方程做离散逼近,求出数值解的公式,再研究公式的局部截断误差,计算稳定性以及数值解的收敛性与整体误差等问题.4.2 简单的单步法及基本概念4.2.1 Euler法、后退Euler法与梯形法求初值问题(4.1.1)的一种最简单方法是将节点的导数用差商代替,于是(4.1.1)的方程可近似写成(4.2.1)从出发,由(4.2.1)求得再将代入(4.2.1)右端,得到的近似,一般写成(4.2.2) 称为解初值问题的Euler法.Euler法的几何意义如图4-1所示.初值问题(4.1.1)的解曲线y=y(x)过点,从出发,以为斜率作一段直线,与直线交点于,显然有,再从出发,以为斜率作直线推进到上一点,其余类推,这样得到解曲线的一条近似曲线,它就是折线.Euler法也可利用的Taylor展开式得到,由(4.2.3) 略去余项,以,就得到近似计算公式(4.2.2).另外,还可对(4.1.1)的方程两端由到积分得(4.2.4)若右端积分用左矩形公式,用,,则得(4.2.2).如果在(4.2.4)的积分中用右矩形公式,则得(4.2.5)称为后退(隐式)Euler法.若在(4.2.4)的积分中用梯形公式,则得(4.2.6)称为梯形方法.上述三个公式(4.2.2),(4.2.5)及(4.2.6)都是由计算,这种只用前一步即可算出的公式称为单步法,其中(4.2.2)可由逐次求出的值,称为显式方法,而(4.2.5)及(4.2.6)右端含有当f对y非线性时它不能直接求出,此时应把它看作一个方程,求解,这类方法称为稳式方法.此时可将(4.2.5)或(4.2.6)写成不动点形式的方程这里对式(4.2.5)有,对(4.2.6)则,g与无关,可构造迭代法(4.2.7)由于对y满足条件(4.1.2),故有当或,迭代法(4.2.4)收敛到,因此只要步长h足够小,就可保证迭代(4.2.4)收敛.对后退Euler法(4.2.5),当时迭代收敛,对梯形法(4.2.6),当时迭代序列收敛.例4.1用Euler法、隐式Euler法、梯形法解取h=0.1,计算到x=0.5,并与精确解比较.解本题可直接用给出公式计算.由于,Euler法的计算公式为n=0时,.其余n=1,2,3,4的计算结果见表4-1.对隐式Euler法,计算公式为解出当n=0时,.其余n=1,2,3,4的计算结果见表4-1.表4-1 例4.1的三种方法及精确解的计算结果对梯形法,计算公式为解得当n=0时,.其余n=1,2,3,4的计算结果见表4-1.本题的精确解为,表4-1列出三种方法及精确解的计算结果.4.2.2 单步法的局部截断误差解初值问题(4.1.1)的单步法可表示为(4.2.8)其中与有关,称为增量函数,当含有时,是隐式单步法,如(4.2.5)及(4.2.6)均为隐式单步法,而当不含时,则为显式单步法,它表示为(4.2.9)如Euler法(4.2.2),.为讨论方便,我们只对显式单步法(4.2.9)给出局部截断误差概念.定义2.1设y(x)是初值问题(4.1.1)的精确解,记(4.2.10)称为显式单步法(4.2.9)在的局部截断误差.之所以称为局部截断误差,可理解为用公式(4.2.9)计算时,前面各步都没有误差,即,只考虑由计算到这一步的误差,此时由(4.2.10)有局部截断误差(4.2.10)实际上是将精确解代入(4.2.9)产生的公式误差,利用Taylor展开式可得到.例如对Euler法(4.2.2)有,故它表明Euler法(4.2.2)的局部截断误差为,称为局部截断误差主项.定义2.2 设是初值问题(4.1.1)的精确解,若显式单步法(4.2.9)的局部截断误差,是展开式的最大整数,称为单步法(4.2.9)的阶,含的项称为局部截断误差主项.根据定义,Euler法(4.2.2)中的=1故此方法为一阶方法.对隐式单步法(4.2.8)也可类似求其局部截断误差和阶,如对后退Euler法(4.2.5)有局部截断误差故此方法的局部截断误差主项为,也是一阶方法.对梯形法(4.2.6)同样有它的局部误差主项为,方法是二阶的.4.2.3 改进Euler法上述三种简单的单步法中,梯形法(4.2.6)为二阶方法,且局部截断误差最小,但方法是隐式的,计算要用迭代法.为避免迭代,可先用Euler法计算出的近似,将(4.2.6)改为(4.2.11)称为改进Euler法,它实际上是显式方法.即(4.2.12)右端已不含.可以证明,=2,故方法仍为二阶的,与梯形法一样,但用(4.2.11)计算不用迭代.例4.2用改进Euler法求例4.1的初值问题并与Euler法和梯形法比较误差的大小.解将改进Euler法用于例4.1的计算公式当n=0时,.其余结果见表4-2.表4-2 改进Euler法及三种方法的误差比较从表4-2中看到改进Euler法的误差数量级与梯形法大致相同,而比Euler法小得多,它优于Euler法.讲解:求初值问题(4.1.1)的数值解就是在假定初值问题解存在唯一的前提下在给定区间上的一组离散点上求解析解的一组近似为此先要建立求数值解的计算公式,通常称为差分公式,简单的单步法就是由计算下一步,构造差分公式有三种方法,一是用均差(即差商)近似,二是用等价的积分方程(4.2.4)用数值积分方法,三是用函数的Taylor展开,其中Taylor展开最有普遍性,可以得到任何数值解的计算公式及其局部截断误差。
Adams预测-校正系统
2012-2013(1)专业课程实践论文Adams 预测-校正系统高强强,0818180212,R数学08-2班王岳,0818180108,R数学08-1班一、算法理论显示格式和隐式格式都具有四阶精度,两种格式可匹配成下列Adams 预测-校正系统:Adams 预测 - 校正预测 ()3-2-1-n 19-3759f -5524n n n n n f f f h y y ++=+, ()111,+++=n n n y x f f ;校正 ()2-1-115-19924n n n n n n f f f f h y y +++=++ ; ()111,+++=n n n y x f f .Adams 内插外插公式联合使用称作 Adams 预测 - 校正系统,用外插公式计算预测,用内插公式进行校正。
计算时需要注意以下两点:1 、外插公式为显式,内插公式为隐式。
故用内插公式计算需要进行迭代。
2 、这种预测 - 校正法是四步法,计算1+n y 时,不但用到前一步的信息n x ,n y ,而且要用到更前三步的信息 1-n f ,2-n f ,3-n f ,因此它不是自开始的,实际计算时必须借助于某种单步法,用Runge-Kutta 格式为它提供开始值 1y ,2y ,3y 。
依据局部截断误差公式得()()()n n n x y h y x y 5511720251-≈++, ()()()n n n x y h y x y 551172019-≈++. 进一步将Adams 预测-校正系统加工成下列方案:预测 ()3-2-1-19-3759-5524n n n n n n f f f f h y p ++=+, 改进 ()n n n n p c p m -72025111+=++, 计算 ()111,+++=n n n m x f m ,校正 ()2-1-115-19924n n n n n n f f f m h y c ++'+=++, 改进 ()1111-72019-++++=n n n n p c c y , 计算 ()111,+++='n n ny x f y ; 运用上述方案计算1+n y 时,要用到先一步的信息n y ,ny ',n n c p -和更前一步的信息1-n y ,因此在计算机之前必须给出初值1y 和11-c p ,1y 可用其他单步法来计算,11-c p 则一般令它等于零。
一阶常微分方程的初值问题
Matlab 函数
Ode23 非刚性 单步法 二三阶 非刚性, 单步法, 二三阶Runge-Kutta,精度低 精度低 Ode45非刚性 单步法, 四五阶Runge-Kutta,精度较高 非刚性, 单步法 四五阶 精度较高, 非刚性 精度较高 最常用 Ode113非刚性 多步法 采用可变阶 非刚性, 非刚性 多步法, 采用可变阶(1-13)Adams PECE 算法 精度可高可低 算法, Ode15s 刚性 多步法 采用 刚性, 多步法,采用 采用Gear’s (或BDF)算法 精度 算法, 或 算法 中等. 如果ode45很慢 系统可能是刚性的,可试此法 中等 如果 很慢, 系统可能是刚性的 可试此法 很慢 Ode23s 刚性 单步法 采用 阶Rosenbrock法, 精度 刚性, 单步法, 采用2阶 法 较低, 可解决ode15s 效果不好的刚性方程 效果不好的刚性方程. 较低 可解决 Ode23t 适度刚性 采用梯形法则 适用于轻微刚性系统 适度刚性, 采用梯形法则,适用于轻微刚性系统 适用于轻微刚性系统, 给出的解无数值衰减. 给出的解无数值衰减 Ode23tb 刚性, TR-BDF2, 即R-K的第一级用梯形法则 刚性 的第一级用梯形法则, 的第一级用梯形法则 第二级用Gear 法. 精度较低 对于误差允许范围比较 精度较低, 第二级用 差的情况,比 差的情况 比ode15s好. 好
Matlab’s ode23 (Bogacki, Shampine)
k1 = f ( x n , yn ), h 1 k 2 = f ( x n + , yn + k1h), 2 2 3h 3 k3 = f ( x n + , yn + k 2 h), 4 4 h yn+1 = yn + (2k1 + 3k 2 + 4k3 ), 9 k 4 = f ( x n + h, yn+1 ), en+1 = h (5k1 + 6k 2 + 8k3 9k 4 ). 72
常微分方程数值解法复变函数
第八章 常微分方程数值解法教学目的 1. 掌握解常微分方程的单步法:Euler 方法、Taylor 方法和Runge-Kutta 方法;2. 掌握解常微分方程的多步法:Adams 步法、Simpson 方法和Milne 方法等;3. 了解单步法的收敛性、相容性与稳定性;多步法的稳定性。
教学重点及难点 重点是解常微分方程的单步法:Euler 方法、Taylor 方法和Runge-Kutta 方法和解常微分方程的多步法:Adams 步法、Simpson 方法和Milne 方法等;难点是理解单步法的收敛性、相容性与稳定性及多步法的稳定性。
教学时数 20学时教学过程§1基本概念1.1常微分方程初值问题的一般提法常微分方程初值问题的一般提法是求函数b x a x y ≤≤),(,满足⎪⎩⎪⎨⎧=<<=)2.1()()1.1(),,(αa yb x a y x f dx dy其中),(y x f 是已知函数,α是已知值。
假设),(y x f 在区域},),{(+∞<≤≤=y b x a y x D 上满足条件: (1)),(y x f 在D 上连续; (2)),(y x f 在D 上关于变量y 满足Lipschitz 条件:2121),(),(y y L y x f y x f -≤-,21,,y y b x a ∀≤≤ (1.3)其中常数L 称为Lipschitz 常数。
我们简称条件(1)、(2)的基本条件。
由常微分方程的基本理论,我们有:定理 1 当),(y x f 在D 上满足基本条件时,一阶常微分方程初值问题(1.1)、(1.2)对任意给定α存在唯一解)(x y 在],[b a 上连续可微。
定义1 方程(1.1)、(1.2)的解)(x y 称为适定的,若存在常数0>ε和0>K ,对任意满足条件εδ≤及εη≤∞)(x 的δ和)(x η,常微分方程初值问题⎪⎩⎪⎨⎧+=<<+=δηa a z b x a x z x f dx dz)(),(),((1.4)存在唯一解)(x z ,且}.{)()(δη+≤-∞∞K x z x y适定问题的解)(x y 连续依赖于(1.1)右端的),(y x f 和初值α。
ADAMS软件简介
ADAMS软件简介基于虚拟样机技术的商业软件ADAMS3.1 ADAMS软件概述ADAMS,即机械系统动力学自动分析(Automatic Dynamic Analysis of Mechanical Systems),该软件是美国MDI公司(Mechanical Dynamics Inc.)开发的虚拟样机分析软件.目前,ADAMS己经被全世界各行各业的数百家主要制造商采用.根据1999年机械系统动态仿真分析软件国际市场份额的统计资料,ADAMS软件销售总额近八千万美元,占据了51%的份额.ADAMS软件使用交互式图形环境和零件库,约束库,力库,创建完全参数化的机械系统几何模型,其求解器采用多刚体系统动力学理论中的拉格郎日方程方法,建立系统动力学方程,对虚拟机械系统进行静力学,运动学和动力学分析,输出位移,速度,加速度和反作用力曲线.ADAMS软件的仿真可用于预测机械系统的性能,运动范围,碰撞检测,峰值载荷以及计算有限元的输入载荷等.ADAMS一方面是虚拟样机分析的应用软件,用户可以运用该软件非常方便地对虚拟机械系统进行静力学,运动学和动力学分析.另一方面,又是虚拟样机分析开发工具,其开放性的程序结构和多种接口,可以成为特殊行业用户进行特殊类型虚拟样机分析的二次开发工具平台.ADAMS软件有两种操作系统的版本:UNIX版和Windows NT/2000版.本书将以Windows 2000版的ADAMS l2.0为蓝本进行介绍.ADAMS软件由基本模块,扩展模块,接口模块,专业领域模块及工具箱5类模块组成,如表3-1所示.用户不仅可以采用通用模块对一般的机械系统进行仿真,而且可以采用专用模块针对特定工业应用领域的问题进行快速有效的建模与仿真分析.表3-1 ADAMS软件模块1.基本模块用户界面模块ADAMS/View求解器模块ADAMS/Solver后处理模块ADAMS/PostProcessor2.扩展模块液压系统模块ADAMS/Hydraulics振动分析模块ADAMS/Vibration线性化分析模块ADAMS/Linear高速动画模块ADAMS/Animation试验设计与分析模块ADAMS/Insight耐久性分析模块ADAMS/Durability数字化装配回放模块ADAMS/DMU Replay3.接口模块柔性分析模块ADAMS/Flex控制模块ADAMS/Controls图形接口模块ADAMS/ExchangeCATIA专业接口模块CAT/ADAMSPro/E接口模块Mechanical/Pro4.专业领域模块轿车模块ADAMS/Car悬架设计软件包Suspension Design概念化悬架模块CSM驾驶员模块ADAMS/Driver动力传动系统模块ADAMS/Driveline轮胎模块ADAMS/Tire柔性环轮胎模块FTire Module柔性体生成器模块ADAMS/FBG经验动力学模型EDM发动机设计模块ADAMS/Engine配气机构模块ADAMS/Engine V alvetrain正时链模块ADAMS/Engine Chain附件驱动模块Accessory Drive Module铁路车辆模块ADAMS/RailFORD汽车公司专用汽车模块ADAMS/Pre(现改名为Chassis)5.工具箱软件开发工具包ADAMS/SDK虚拟试验工具箱Virtual Test Lab虚拟试验模态分析工具箱Virtual Experiment Modal Analysis钢板弹簧工具箱Leafspring Toolkit飞机起落架工具箱ADAMS/Landing Gear履带/轮胎式车辆工具箱Tracked/Wheeled Vehicle齿轮传动工具箱ADAMS/Gear Tool3.2 ADAMS软件基本模块3.2.1 用户界面模块(ADAMS/View)ADAMS/View是ADAMS系列产品的核心模块之一,采用以用户为中心的交互式图形环境,将图标操作,菜单操作,鼠标点击操作与交互式图形建模,仿真计算,动画显示,优化设计,X-Y 曲线图处理,结果分析和数据打印等功能集成在一起.ADAMS/View采用简单的分层方式完成建模工作.采用Parasolid内核进行实体建模,并提供了丰富的零件几何图形库,约束库和力/力矩库,并且支持布尔运算,支持FORTRAN/77和FORTRAN/90中的函数.除此之外,还提供了丰富的位移函数,速度函数,加速度函数,接触函数,样条函数,力/力矩函数,合力/力矩函数,数据元函数,若干用户子程序函数以及常量和变量等. 自9.0版后,ADAMS/View采用用户熟悉的Motif界面(UNIX系统)和Windows界面(NT系统),从而大大提高了快速建模能力.在ADAMS/View中,用户利用TABLE EDITOR,可像用EXCEL 一样方便地编辑模型数据,同时还提供了PLOT BROWSER和FUNCTION BUILDER工具包.DS(设计研究),DOE(实验设计)及OPTIMIZE(优化)功能可使用户方便地进行优化工作.ADAMS/View有自己的高级编程语言,支持命令行输入命令和C++语言,有丰富的宏命令以及快捷方便的图标,菜单和对话框创建和修改工具包,而且具有在线帮助功能.ADAMS/View模块界面如图3-1所示.ADAMS/View新版采用了改进的动画/曲线图窗口,能够在同一窗口内可以同步显示模型的动画和曲线图;具有丰富的二维碰撞副,用户可以对具有摩擦的二维点-曲线,圆-曲线,平面-曲线,以及曲线-曲线,实体-实体等碰撞副自动定义接触力;具有实用的Parasolid输入/输出功能,可以输入CAD中生成的Parasolid文件,也可以把单个构件,或整个模型,或在某一指定的仿真时刻的模型输出到一个Parasolid文件中;具有新型数据库图形显示功能,能够在同一图形窗口内显示模型的拓扑结构,选择某一构件或约束(运动副或力)后显示与此项相关的全部数据;具有快速绘图功能,绘图速度是原版本的20倍以上;采用合理的数据库导向器,可以在一次作业中利用一个名称过滤器修改同一名称中多个对象的属性,便于修改某一个数据库对象的名称及其说明内容;具有精确的几何定位功能,可以在创建模型的过程中输入对象的坐标,精确地控制对象的位置;多种平台上采用统一的用户界面,提供合理的软件文档;支持Windows NT平台的快速图形加速卡,确保ADAMS/View的用户可以利用高性能OpenGL图形卡提高软件的性能;命令行可以自动记录各种操作命令,进行自动检查.3.2.2 求解器模块(ADAMS/Solver)ADAMS/Solver是ADAMS系列产品的核心模块之一,是ADAMS产品系列中处于心脏地位的仿真器.该软件自动形成机械系统模型的动力学方程,提供静力学,运动学和动力学的解算结果.ADAMS/Solver有各种建模和求解选项,以便精确有效地解决各种工程应用问题. ADAMS/Solver可以对刚体和弹性体进行仿真研究.为了进行有限元分析和控制系统研究,用户除要求软件输出位移,速度,加速度和力外,还可要求模块输出用户自己定义的数据.用户可以通过运动副,运动激励,高副接触,用户定义的子程序等添加不同的约束.用户同时可求解运动副之间的作用力和反作用力,或施加单点外力.ADAMS/Solver新版中对校正功能进行了改进,使得积分器能够根据模型的复杂程度自动调整参数,仿真计算速度提高了30%;采用新的S12型积分器(Stabilized Index 2 intergrator),能够同时求解运动方程组的位移和速度,显著增强积分器的鲁棒性,提高复杂系统的解算速度;采用适用于柔性单元(梁,衬套,力场,弹簧-阻尼器)的新算法,可提高S12型积分器的求解精度和鲁棒性;可以将样条数据存储成独立文件使之管理更加方便,并且spline语句适用于各种样条数据文件,样条数据文件子程序还支持用户定义的数据格式;具有丰富的约束摩擦特性功能,在Translational, Revolute, Hooks, Cylindrical, Spherical, Universal等约束中可定义各种摩擦特性.3.2.3 后处理模块(ADAMS/PostProcessor)MDI公司开发的后处理模块ADAMS/Postprocessor,用来处理仿真结果数据,显示仿真动画等.既可以在ADAMS/View环境中运行,也可脱离该环境独立运行.如图3-2所示.ADAMS/PostProcessor的主要特点是:采用快速高质量的动画显示,便于从可视化角度深入理解设计方案的有效性;使用树状搜索结构,层次清晰,并可快速检索对象;具有丰富的数据作图,数据处理及文件输出功能;具有灵活多变的窗口风格,支持多窗口画面分割显示及多页面存储;多视窗动画与曲线结果同步显示,并可录制成电影文件;具有完备的曲线数据统计功能:如均值,均方根,极值,斜率等;具有丰富的数据处理功能,能够进行曲线的代数运算,反向,偏置,缩放,编辑和生成波特图等;为光滑消隐的柔体动画提供了更优的内存管理模式;强化了曲线编辑工具栏功能;能支持模态形状动画,模态形状动画可记录的标准图形文件格式有:*.gif,*.jpg,*.bmp,*.xpm,*.avi 等;在日期,分析名称,页数等方面增加了图表动画功能;可进行几何属性的细节的动态演示.ADAMS/PostProcessor的主要功能包括:为用户观察模型的运动提供了所需的环境,用户可以向前,向后播放动画,随时中断播放动画,而且可以选择最佳观察视角,从而使用户更容易地完成模型排错任务;为了验证ADAMS仿真分析结果数据的有效性,可以输入测试数据,并测试数据与仿真结果数据进行绘图比较,还可对数据结果进行数学运算,对输出进行统计分析;用户可以对多个模拟结果进行图解比较,选择合理的设计方案;可以帮助用户再现ADAMS中的仿真分析结果数据,以提高设计报告的质量;可以改变图表的形式,也可以添加标题和注释;可以载入实体动画,从而加强仿真分析结果数据的表达效果;还可以实现在播放三维动画的同时,显示曲线的数据位置,从而可以观察运动与参数变化的对应关系.3.3 ADAMS软件扩展模块3.3.1 液压系统模块(ADAMS/Hydraulics)应用ADAMS/Hydraulics模块,用户能够精确地对由液压元件驱动的复杂机械系统进行动力学仿真分析.这类复杂机械系统包括:工程机械,汽车制动系统,汽车转向系统,飞机起落架等.运用ADAMS/Hydraulics模块可以提高机械工程师建立包括液压回路在内的机械系统动力学模型的能力,工程师利用ADAMS/Hydraulics和ADAMS/Controls模块相结合,就可以在同一仿真环境中建造,试验和观察包括机-电-液一体化的虚拟样机.ADAMS/Hydraulics是选装模块,使用的前提条件是要具备ADAMS/SoIver和ADAMS/View模块.ADAMS/Hydraulics可以帮助用户将系统性能仿真与液压系统设计无缝集成为一体.用户可以首先在ADAMS/View中建立液压回路框图,然后通过液压油缸将其连接到机械系统模型中,最后选取最适当的,功能最强的积分器仿真分析整个系统的性能.用户同时使用ADAMS/Hydraulics和ADAMS/Controls,可以提供阀体的反馈控制输入.并且由于液压系统与机械系统之间的相互作用在计算机内被有机地集成为一体,因此可以方便地进行系统的装配和仿真试验.用户应用ADAMS/Hydraulics模块,可以建造机械系统与液压回路之间相互作用的模型,并在计算机中设置系统的运行特性,进行各种静态,模态,瞬态和动态分析.例如:可以进行液压系统峰值压力和运行压力的分析,液压系统滞后特性的分析,液压系统控制的分析,功率消耗的分析,液压元件和管路尺寸的分析等.由于ADAMS/Hydraulics采用了与ADAMS/View相同的参数化功能和函数库,因此用户在液压元件设计中同样可以运用设计研究(DS),试验设计(DOE)以及优化(OPTIMIZE)等技术.3.3.2 振动分析模块(ADAMS/Vibration)ADAMS/Vibration是进行频域分析的工具,可用来检测ADAMS模型的受迫振动(例如;检测汽车虚拟样机在颠簸不平的道路工况下行驶时的动态响应),所有输入输出都将在频域内以振动形式描述,该模块可作为ADAMS运动仿真模型从时域向频域转换的桥梁.通过运用ADAMS/Vibration可以实现各种子系统的装配,并进行线性振动分析,然后利用功能强大的后处理模块ADAMS/PostProcessor进一步作出因果分析与设计目标设置分析.采用ADAMS/Vibration模块,可以在模型的不同的测试点,进行受迫响应的频域分析.频域分析中可以包含液压,控制及用户系统等结果信息;能够快速准确将ADAMS线性化模型转入Vibration模块中;能够为振动分析开辟输入,输出通道,能定义频域输入函数,产生用户定义的力频谱;能求解所关注的频带范围的系统模型,评价频响函数的幅值大小及相位特征;能够动画演示受迫响应及各模态响应;能把系统模型中有关受迫振动响应的信息列表;为进一步分析能把ADAMS模型中的状态矩阵输出到MA TLAB及MATRIX中;运用设计研究,DOE及振动分析结果和参数化的振动输入数指优化系统综合性能.运用ADAMS/Vibration能使工作变得快速简单,运用虚拟检测振动设备方便地替代实际振动研究中复杂的检测过程,从而避免了实际检测只能在设计的后期进行且费用高昂等弊病,缩短设计时间,降低设计成本.ADAMS/Vibration输出的数据还可被用来研究预测汽车,火车,飞机等机动车辆的噪音对驾驶员及乘客的振动冲击,体现了以人为本的现代设计趋势.3.3.3 线性化分析模块(ADAMS/Linear)ADAMS/Linear是ADAMS的一个集成可选模块,可以在进行系统仿真时将系统非线性的运动学或动力学方程进行线性化处理,以便快速计算系统的固有频率(特征值),特征向量和状态空间矩阵,使用户能更快而较全面地了解系统的固有特性.ADAMS/Linear主要功能特点包括:利用该模块可以给工程师带来许多帮助:可以在大位移的时域范围和小位移的频率范围间提供一座"桥梁",方便地考虑系统中零部件的弹性特性;利用它生成的状态空间矩阵可以对带有控制元件的机构进行实时控制仿真;利用求得的特征值和特征向量可以对系统进行稳定性研究.3.3.4 高速动画模块(ADAMS/Animation)ADAMS/Animation是ADAMS的一个集成可选模块,使用户能借助于增强透视,半透明,彩色编辑及背景透视等方法精细加工所形成的动画,增强动力学仿真分析结果动画显示的真实感.用户既可以选择不同的光源,并交互地移动,对准和改变光源强度,还可以将多台摄像机置于不同的位置,角度同时观察仿真过程,从而得到更完善的运动图像.该模块还提供干涉检测工具,可以动态显示仿真过程中运动部件之间的接触干涉,帮助用户观察整个机械系统的干涉情况;同时还可以动态测试所选的两个运动部件在仿真过程中距离的变化.该模块主要功能是:采用基于Motif/Windows的界面,标准下拉式菜单和弹出式对话窗,易学易用;与ADAMS/View模块无缝集成,在ADAMS/View中只需点一下鼠标就可转换到ADAMS/Animation;其使用的前提条件是必须要有ADAMS/View模块和ADAMS/Solver模块.3.3.5 试验设计与分析模块(ADAMS/Insight)ADAMS/Insight是基于网页技术的新模块.利用该模块,工程师可以方便地将仿真试验结果置于Intranet或Extranet网页上,这样,企业不同部门的人员(设计工程师,试验工程师,计划/采购/管理/销售部门人员)都可以共享分析成果,加速决策进程,最大限度地减少决策的风险.应用ADAMS/Insight,工程师可以规划和完成一系列仿真试验,从而精确地预测所设计的复杂机械系统在各种工作条件下的性能,并提供了对试验结果进行各种专业化统计分析的工具.ADAMS/Insight是选装模块,既可以在ADAMS/View,ADAMS/Car, ADAMS/Pre环境中运行,也可脱离ADAMS环境单独运行.工程师在拥有这些工具后,就可以对任何一种仿真进行试验方案设计,精确地预测设计的性能,得到高品质的设计方案.ADAMS/Insight采用的试验设计方法包括全参数法,部分参数法,对角线法,Box-Behnkn 法,Placket-Bruman法和D-Optimal法等.当采用其他软件设计机械系统时,工程师可以直接输入或通过文件输入系统矩阵对设计方案进行试验设计;可以通过扫描识别影响系统性能的灵敏参数或参数组合;可以采用响应面法(Response Surface Methods)通过对试验数据进行数学回归分析,以更好地理解产品的性能和系统内部各个零部件之间的相互作用;试验结果采用工程单位制,可以方便地输入其他试验结果进行工程分析;通过网页技术可以将仿真试验结果通过网页进行交流,便于企业各个部门评价和调整机械系统的性能.另外,ADAMS/Insight能帮助工程师更好地了解产品的性能,能有效地区分关键参数和非关键参数;能根据客户的不同要求提出各种设计方案,可以清晰地观察对产品性能的影响;在产品制造之前,可综合考虑各种制造因素的影响(例如:公差,装配误差,加工精度等),大大地提高产品的实用性;能加深对产品技术要求的理解,强化在企业各个部门之间的合作.应用ADAMS/Insight,工程师可以将许多不同的设计要求有机地集成为一体,提出最佳的设计方案,并保证试验分析结果具有足够的工程精度.3.3.6 耐久性分析模块(ADAMS/Durability)耐久性试验是产品开发的一个关键步骤.耐久性试验能够解答"机构何时报废或零部件何时失效"这个问题,它对产品零部件性能,整机性能都具有重要影响.MDI公司已经与MTS公司及nCode公司合作,共同开发ADAMS/Durability,使之成为耐久性试验的完全解决方案. ADAMS/Durability按工业标准的耐久性文件格式对时间历程数据接口进行了一次全新的扩展.目前,该模块支持两种时间历程文件格式:nSoft和MTS的RPC3.ADAMS/Durability可以把上述文件格式的数据直接输入到ADAMS仿真模块中去,或把ADAMS的仿真分析结果输出到这种文件格式中来.ADAMS/Durability集成了VTL(Virtual Test Lab)技术.VTL工具箱是由MTS与MDI公司设计及创建的标准机械检测系统,通过MTS的RPC图形用户界面可实施检测,并保留检测配置及操作问题,VTL的检测结果将返回工业标准的RPC格式文件中,以便由标准分析应用程序使用,一旦得到实际检测结果,便可以执行预测分析及验证.nCode公司的nSoft耐久性分析软件可以进行应力寿命,局部应变寿命,裂隙扩展状况,多轴向疲劳及热疲劳特征,振动响应,各种焊接机构强度等分析.ADAMS/Durability把以上技术集成在一起,从而使虚拟样机检测系统耐久性成为现实.ADAMS/Durability的主要功能是,可以从nSoft的DAC及RPC3文件中提取时间记载数据,并将其内插入ADAMS仿真模块中进行分析;可以把REQUEST数据存储在DAC及MTS RPC3文件中,把ADAMS仿真结果及测量数据输出到DAC及MTS RPC3文件;可以查看DAC 及MTS RPC3文件的头信息与数据;可以提取DAC及MTS RPC3文件中的数据并绘图,以此与ADAMS仿真结果相对照.3.3.7 数字化装配回放模块(ADAMS/DMU Replay)ADAMS/DMU(Digital Mockup)Replay模块是MDI公司与Dassault Systems合作,针对CA TIA的用户推出的全新模块,是运行在CA TIA V5中的应用程序,可通过CATIA V5的界面访问.该模块是ADAMS与CA TIA之间数据通讯的桥梁.利用它可以把其他ADAMS产品(如CA T/ADAMS)中得到的分析结果导入到CA TIA中进行动画显示.ADAMS/DMU模块的主要功能是:能够把ADAMS的分析结果导入到CATIA V5中;能够调整ADAMS部件名称与CA TIA几何体相一致以便于显示;能够用装配的CATIA几何体动画显示仿真结果;在运动情况下,能产生一般几何体部件的包络线,执行动态干涉检查.3.4 ADAMS软件接口模块3.4.1 柔性分析模块(ADAMS/Flex)ADAMS/Flex是ADAMS软件包中的一个集成可选模块,提供了与ANSYS,MSC/NASTRAN,ABAQUS,I-DEAS等软件的接口,可以方便地考虑零部件的弹性特性,建立多体动力学模型,以提高系统仿真的精度.ADAMS/Flex模块支持有限元软件中的MNF(模态中性文件)格式.结合ADAMS/Linear模块,可以对零部件的模态进行适当的筛选,去除对仿真结果影响极小的模态,并可以人为控制各阶模态的阻尼,进而大大提高仿真的速度.同时,利用ADAMS/Flex模块,还可以方便地向有限元软件输出系统仿真后的载荷谱和位移谱信息,利用有限元软件进行应力,应变以及疲劳寿命的评估分析和研究.3.4.2 控制模块(ADAMS/Controls)ADAMS/Controls是ADAMS软件包中的一个集成可选模块.在ADAMS/Controls中,设计师既可以通过简单的继电器,逻辑与非门,阻尼线圈等建立简单的控制机构,也可利用通用控制系统软件(如:Matlab,MATRIX,EASY5)建立的控制系统框图,建立包括控制系统,液压系统,气动系统和运动机械系统的仿真模型.在仿真计算过程中,ADAMS采取两种工作方式:其一,机械系统采用ADAMS解算器,控制系统采用控制软件解算器,二者之间通过状态方程进行联系;其二,利用控制软件书写描述控制系统的控制框图,然后将该控制框图提交给ADAMS,应用ADAMS解算器进行包括控制系统在内的复杂机械系统虚拟样机的同步仿真计算.这样的机械-控制系统的联合仿真分析过程可以用于许多领域,例如汽车自动防抱死系统(ABS),主动悬架,飞机起落架助动器,卫星姿态控制等.联合仿真计算可以是线性的,也可以是非线性的.使用ADAMS/Controls的前提是需要ADAMS与控制系统软件同时安装在相同的工作平台上.3.4.3 图形接口模块(ADAMS/Exchange)ADAMS/Exchange是ADAMS/View的一个集成可选模块,其功能是利用IGES,STEP,STL,DWG/DXF等产品数据交换库的标准文件格式完成ADAMS与其他CAD/CAM/CAE软件之间数据的双向传输,从而使ADAMS与CAD/CAM/CAE软件更紧密地集成在一起.ADAMS/Exchange可保证传输精度,节省用户时间,增强仿真能力.当用户将CAD/CAM/CAE软件中建立的模型向ADAMS传输时,ADAMS/Exchange自动将图形文件转换成一组包含外形,标志和曲线的图形要素,通过控制传输时的精度,可获得较为精确的几何形状,并获得质量,质心和转动惯量等重要信息.用户可在其上添加约束,力和运动等,这样就减少了在ADAMS中重建零件几何外形的要求,节省建模时间,增强了用户观察虚拟样机仿真模型的能力.3.4.4 CATIA专业接口模块(CA T/ADAMS)为了使ADAMS更方便地与CATIA进行数据交换,Dassault Systems公司与美国MDI公司在著名汽车公司BMW,Chrysler和Peugeot等的大力支持下开发了CAT/ADAMS.应用CA T/ADAMS可将ADAMS虚拟样机技术有机地融入CA TIA之中,即同时将CATIA的运动学模型,几何图形和其他实体信息方便地传递至ADAMS;可以对整个产品进行动力学分析,并将分析结果反馈给CATIA;可以进行碰撞检测和间隙影响研究.采用这样的接口可以改进仿真精度,提高工程分析的速度和效率,从而快速评价多种设计方案.3.4.5 Pro/E接口模块(Mechanical/Pro)Mechanical/Pro是连接Pro/E与ADAMS之间的桥梁.二者采用无缝连接的方式,使Pro/E 用户不必退出其应用环境,就可以将装配的总成根据其运动关系定义为机构系统,进行系统的运动学仿真,并进行干涉检查,确定运动锁止的位置,计算运动副的作用力.Mechanical/Pro是采用Pro/Develop工具创建的,因此Pro/E用户可以在其熟悉的CAD环境中建立三维机械系统模型,并对其运动性能进行仿真分析.通过一个按键操作,可将数据传送到ADAMS中,进行全面的动力学分析.3.5 ADAMS软件专用领域模块3.5.1 轿车模块(ADAMS/Car)ADAMS/Car是MDI公司与Audi,BMW,Renault和Volvo等公司合作开发的整车设计软件包,集成了他们在汽车设计,开发方面的专家经验,能够帮助工程师快速建造高精度的整车虚拟样机,其中包括车身,悬架,传动系统,发动机,转向机构,制动系统等,工程师可以通过高速动画直观地再现在各种试验工况下(例如:天气,道路状况,驾驶员经验)整车的动力学响应,并输出标志操纵稳定性,制动性,乘坐舒适性和安全性的特征参数,从而减少对物理样机的依赖,而仿真时间只是进行物理样机试验的几分之一.ADAMS/Car采用的用户化界面是根据汽车工程师的习惯而专门设计的.工程师不必经过任何专业培训,就可以应用该软件开展卓有成效的开发工作.ADAMS/Car中包括整车动力学模块(Vehicle Dynamics)和悬架设计模块(Suspension Design),其仿真工况包括:方问盘角阶跃,斜坡和脉冲输入,蛇行穿越试验,漂移试验,加速试验,制动试验和稳态转向试验等,同时还可以设定试验过程中的节气门开度,变速器档位等.3.5.2 悬架设计软件包(Suspension Design)Suspension Design中包括以特征参数(前束,定位参数,速度)表示的概念式悬架模型.通过这些特征参数,设计师可以快速确定在任意载荷和轮胎条件下的轮心位置和方向.在此基础上,快速建立包括橡胶衬套等在内的柔体悬架模型.应用Suspension Design,设计师可以得到与物理样机试验完全相同的仿真试验结。
线性多步法
(6)计算 f3 f ( x3 , y3 ) x x3 h 4 112 p y0 (2 f3 f 2 2 f1 ) m p (c0 p0 ) 3 121 1 3 c (9 y3 y1 ) h[ f ( x, m) 2 f 3 f 2 ] 8 8 9 y c (c p ) 输出(x, y ) 121 (7)若n N,置n 1 n, x j 1 x j , y j 1 y j , f j 1 f j ( j 0,1, 2), x x3 , y y3 , p p0 , c c0 , 转6; 否则停机。
算法 ba (1)输入 a, b, f ( x, y ), N , y0 (2)置h , x0 a, n 1 N (3)计算 f n 1 f ( xn 1 , yn 1 ) K1 hf n 1 h K1 K 2 hf ( xn 1 , yn 1 ) 2 2
(i 1, 2, , N ) (i 1, 2, , N )
若对 y 和 f 采用向量的记号 y ' f ( x, y); y( x0 ) y 0 ;
f ( f1 , f 2 , f N ) ;
T
或表达为 h yi ,n 1 yin ( K i1 2 K i 2 2 K i 3 K i 4 ) 6 (i 1, 2, , N ), 其中 K i1 fi ( xn , y1n , y2n , , yNn ); h h h h K i 2 fi ( xn , y1n K11 , y2 n K 21 , , y Nn K N 1 ); 2 2 2 2 h h h h K i 3 fi ( xn , y1n K12 , y2 n K 22 , , yNn K N 2 ); 2 2 2 2 K i 4 fi ( xn h, y1n hK13 , y2 n hK 23 , , y Nn hK N 3 );
常微分方程数值解法
第八章 常微分方程的数值解法一.内容要点考虑一阶常微分方程初值问题:⎪⎩⎪⎨⎧==00)(),(y x y y x f dx dy微分方程的数值解:设微分方程的解y (x )的存在区间是[a,b ],在[a,b ]内取一系列节点a= x 0< x 1<…< x n =b ,其中h k =x k+1-x k ;(一般采用等距节点,h=(b-a)/n 称为步长)。
在每个节点x k 求解函数y(x)的近似值:y k ≈y(x k ),这样y 0 , y 1 ,...,y n 称为微分方程的数值解。
用数值方法,求得f(x k )的近似值y k ,再用插值或拟合方法就求得y(x)的近似函数。
(一)常微分方程处置问题解得存在唯一性定理对于常微分方程初值问题:⎪⎩⎪⎨⎧==00)(),(y x y y x f dx dy如果:(1) 在B y y A x x 00≤-≤≤,的矩形内),(y x f 是一个二元连续函数。
(2) ),(y x f 对于y 满足利普希茨条件,即2121y y L y x f y x f -≤-),(),(则在C x x 0≤≤上方程⎪⎩⎪⎨⎧==00)(),(y x y y x f dxdy的解存在且唯一,这里C=min((A-x 0),x 0+B/L),L 是利普希茨常数。
定义:任何一个一步方法可以写为),,(h y x h y y k k k 1k Φ+=+,其中),,(h y x k k Φ称为算法的增量函数。
收敛性定理:若一步方法满足: (1)是p 解的.(2) 增量函数),,(h y x k k Φ对于y 满足利普希茨条件.(3) 初始值y 0是精确的。
则),()()(p h O x y kh y =-kh =x -x 0,也就是有0x y y lim k x x kh 0h 0=--=→)((一)、主要算法 1.局部截断误差局部截断误差:当y(x k )是精确解时,由y(x k )按照数值方法计算出来的1~+k y 的误差y (x k+1)- 1~+k y 称为局部截断误差。
分子动力学概述
分子动力学分子动力学方法是一种计算机模拟实验方法,是研究凝聚态系统的有力工具。
该技术不仅可以得到原子的运动轨迹,还可以观察到原子运动过程中各种微观细节。
它是对理论计算和实验的有力补充。
分子动力学总是假定原子的运动服从某种确定的描述,这种描叙可以牛顿方程、拉格朗日方程或哈密顿方程所确定的描述,也就是说原子的运动和确定的轨迹联系在一起。
在忽略核子的量子效应和Born-Oppenheimer绝热近似下,分子动力学的这一种假设是可行的[1]。
所谓绝热近似也就是要求在分子动力学过程中的每一瞬间电子都处于原子结构的基态。
要进行分子动力学模拟就必须知道原子间的相互作用势。
在分子动力学模拟中,我们一般采用经验势来代替原子间的相互作用势,如Lennard-Jones势、Mores势、EAM原子嵌入势、F-S多体势。
然而采用经验势必然丢失了局域电子结构之间存在的强相关作用信息,即不能得到原子动力学过程中的电子性质[1]。
事实上,分子动力学就是模拟原子系统的趋衡过程。
实际上,分子动力学方法就是确定某一描述与初始条件、边值关系的数值解。
我们假定系统经过M步长之后达到稳定,而这一稳定状态正是我们所求的。
1、分子动力学的算法分析首先,我们假定我们研究的系统服从 Newton 方程所确定的描述,即:)(1)(..t F mt r =(1) 式中r(t)表征原子在t 时刻的位置矢量F(t)表征原子在t 时刻所受到的力,它与所有原子的位置矢有关m 表征原子的质量。
如果我们给定初始条件,即方程(1)的定解条件r(0)和v(0),那么方程(1)的解就可以确定。
60年代中期发展了大量的分子动力学算法,如两步差分算法[2]、预测-校正算法[3]、中心差分算法[4]、蛙跳算法[5]等等。
为了方便导出它们,我们以Euler 一步法[6]来讨论之。
我们令)()(..t r t v =(表征粒子的速度),则有:)()()(1)()(....t v t r t F m t r t v === (2)记⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎦⎤⎢⎣⎡=)()(1)()()()(.t v t F m t f t r t v t w (3)则有)()(.t f t w = ?????? (4) 欧拉一步法就是用向前差商来替代一阶导数,即:)()()1(.t w hk w k w =-+,其中h 是时间步长,将之代入(4)则有:)()()1(t hf k w k w =-+ (5)即:⎥⎥⎦⎤⎢⎢⎣⎡=⎥⎦⎤⎢⎣⎡-+-+)()(1)()1()()1(k v k F m h k r k r k v k v )()()1()(1)()1(k hv k r k r k F mhk v k v +=++=+ (6) 对于(6)式,因为给定了r(0)和v(0),故r(k+1) 和v(k+1)可以确定。
多体系统动力学分析软件ADAMS的介绍
多体系统动力学分析软件A D A M S的介绍-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN多体系统动力学分析软件ADAMS的介绍ADAMS是美国学者蔡斯(Chace)等人利用多刚体动力学理论,选取系统每个刚体的质心在惯性参考系中的三个直角坐标和反映刚体方位的为广义坐标编制的计算程序。
其中应用了吉尔(Gear)等解决刚性积分问题的算法,并采用了稀疏矩阵技术来提高计算效率。
该软件因其强大的功能而在汽车航天等领域得到了广泛的应用。
1 ADAMS软件简介在研究汽车各种性能时,研究对象的建模、分析与求解始终是关键。
多体系统动力学软件为汽车动力学研究提供了强大的数学分析工具。
ADAMS软件就是其中的佼佼者。
ADAMS(Automatic Dynamic Analysis of Mechanical System)软件,是由美国机械动力公司(Mechanical Dynamics Inc.)开发的最优秀的机械系统动态仿真软件,是世界上最具权威性的,使用范围最广的机械系统动力学分析软件。
用户使用ADAMS软件,可以自动生成包括机-电-液一体化在内的、任意复杂系统的多体动力学数字化虚拟样机模型,能为用户提供从产品概念设计、方案论证、详细设计、到产品方案修改、优化、试验规划甚至故障诊断各阶段、全方位、高精度的仿真计算分析结果,从而达到缩短产品开发周期、降低开发成本、提高产品质量及竞争力的目的。
由于ADAMS软件具有通用、精确的仿真功能,方便、友好的用户界面和强大的图形动画显示能力,所以该软件已在全世界数以千计的着名大公司中得到成功的应用。
ADAMS软件一方面是机械系统动态仿真软件的应用软件,用户可以运用该软件非常方便地对虚拟样机进行静力学、运动学和动力学分析。
另一方面,又是机械系统仿真分析开发工具,其开放性的程序结构和多种接口,可以成为特殊行业用户进行特殊机械系统动态仿真分析的二次开发工具平台。
第4章ADAMS软件算法基本理论
第4章ADAMS软件基本算法本章主要介绍ADAMS软件的基本算法,包括ADAMS建模中的一些基本概念、运动学分析算法、动力学分析算法、静力学分析及线性化分析算法以及ADAMS软件积分器介绍。
通过本章的学习可以对ADAMS软件的基本算法有较深入的了解,为今后合理选择积分器进行仿真分析提供理论基础,为更好地使用ADAMS打下良好的理论基础。
4.1 ADAMS建模基础ADAMS利用带拉格朗日乘子的第一类拉格朗日方程导出――最大数量坐标的微分-代数方程(DAE)。
它选取系统内每个刚体质心在惯性参考系中的三个直角坐标和确定刚体方位的三个欧拉角作为笛卡尔广义坐标,用带乘子的拉格朗日第一类方程处理具有多余坐标的完整约束系统或非完整约束系统,导出以笛卡尔广义坐标为变量的动力学方程。
4.1.1 参考标架在计算系统中构件的速度和加速度时,需要指定参考标架,作为该构件速度和加速度的参考坐标系。
在机械系统的运动分析过程中,有两种类型的参考标架——地面参考标架和构件参考标架。
地面参考标架是一个惯性参考系,它固定在一个“绝对静止”的空间中。
通过地面参考标架建立机械系统的“绝对静止”参考体系,属于地面标架上的任何一点的速度和加速度均为零。
对于大多数问题,可以将地球近似为惯性参考标架,虽然地球是绕着太阳旋转而且地球还有自转。
对于每一个刚性体都有一个与之固定的参考标架,称为构件参考标架,刚性体上的各点相对于该构件参考标架是静止的。
4.1.2 坐标系的选择机械系统的坐标系广泛采用直角坐标系,常用的笛卡尔坐标系就是一个采用右手规则的直角坐标系。
运动学和动力学的所有矢量均可以用沿3个单位坐标矢量的分量来表示。
坐标系可以固定在一个参考标架上,也可以相对于参考框架而运动。
合理地设置坐标系可以简化机械系统的运动分析。
在机械系统运动分析过程中,经常使用3种坐标系:(1)地面坐标系(Ground Coordinate System)。
地面坐标系又称为静坐标系,是固定在地面标架上的坐标系。
数值分析 教学大纲
教学大纲课程编号:13000071课程名称:数值分析(Numerical Analysis)学分:4总学时:72学时分配:课时总学时:64学时。
其中:理论课学时:60学时;习题课学时:12学时;实验学时:课内0学时,课外16学时。
适应专业:数学与应用数学、信息与计算科学预修课程:数学分析/高等数学,高等代数/线性代数◇课程教学目标:数值分析是研究利用计算机求解各种数学模型的数值计算方法及理论,包括误差基本理论、插值方法、函数逼近、数值微分与积分、常微分方程数值解、非线性方程组数值解法、矩阵特征值计算等经典问题的数值方法与基本理论。
通过本课程的学习,要求学生掌握数值分析的基本思想、基本方法和基本理论,具备一定的设计、分析和实现算法的能力,培养应用计算机进行科学与工程计算的能力,提高学生应用数学与计算机解决实际问题的能力。
◇教学要求:通过本课程的学习,要求学生掌握数值计算的基本理论和方法:掌握数值逼近、数值微分与积分、微分方程初值问题、方程(组)求根的直接与迭代解法及矩阵特征值计算等方面的基本理论及经典算法,并能对算法进行误差分析。
能使用计算机对基本数值计算问题进行求解,能初步用数值分析方法进行算法分析,为解决较复杂的实际科学与工程计算问题打下必要的基础。
◇教学方法:将多媒体教学和传统的黑板板书教学相结合。
在背景知识的讲解、数值方法的意义以及计算实例的程序演示时,应充分发挥多媒体直观生动的优势,帮助学生进行感性认识。
在算法推导、理论分析等方面,可采用传统的板书讲解,引导学生去感受和思考数学逻辑的过程以及创造性的思维过程,加深对数学理论的理解和认识,培养学生的逻辑和思维能力。
在课堂教学中应将课堂讲解、课堂提问、课堂讨论相结合,注重培养学生的创新意识。
在课外已到学生积极开展数值试验,撰写实验报告、让学生在初步开展科研工作方面得到更好、更有效的训练。
◇课程主要内容:第一章绪论1.该章的基本要求与基本知识点:(1)了解数值分析的特点及其研究对象;(2)了解误差来源,掌握误差的基本概念与数值的精度表示;(3)掌握数值运算中的基本方法与原则;(4)向量和矩阵的范数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2012-2013(1)专业课程实践论文
Adams 预测-校正系统
高强强,0818180212,R数学08-2班
王岳,0818180108,R数学08-1班
一、算法理论
显示格式和隐式格式都具有四阶精度,两种格式可匹配成下列Adams 预测-校正
系统:
Adams 预测 - 校正
预测 ()3-2-1-n 19-3759f -5524
n n n n n f f f h y y ++=+, ()111,+++=n n n y x f f ;
校正 ()
2-1-115-19924n n n n n n f f f f h y y +++=++ ; ()111,+++=n n n y x f f .
Adams 内插外插公式联合使用称作 Adams 预测 - 校正系统,用外插公式计算
预测,用内插公式进行校正。
计算时需要注意以下两点:
1 、外插公式为显式,内插公式为隐式。
故用内插公式计算需要进行迭代。
2 、这种预测 - 校正法是四步法,计算1+n y 时,不但用到前一步的信息n x ,n y ,
而且要用到更前三步的信息 1-n f ,2-n f ,3-n f ,因此它不是自开始的,实际计算时必
须借助于某种单步法,用Runge-Kutta 格式为它提供开始值 1y ,2y ,3y 。
依据局部截断误差公式得
()()()n n n x y h y x y 5511720
251-≈++, ()()()n n n x y h y x y 5511720
19-≈
++. 进一步将Adams 预测-校正系统加工成下列方案:
预测 ()3-2-1-19-3759-5524
n n n n n n f f f f h y p ++=+, 改进 ()n n n n p c p m -72025111+=++, 计算 ()111,+++=n n n m x f m ,
校正 ()2-1-115-19924n n n n n n f f f m h y c ++'+
=++, 改进 ()1111
-72019-++++=n n n n p c c y , 计算 ()111,+++='n n n
y x f y ; 运用上述方案计算1+n y 时,要用到先一步的信息n y ,n
y ',n n c p -和更前一步的
信息1-n y ,因此在计算机之前必须给出初值1y 和11-c p ,1y 可用其他单步法来计
算,11-c p 则一般令它等于零。
开始
输入区间(a,b),步长h,初始值
x[0],y[0]
调用RK函数求出y[1],y[2,y[3]]
计算dy[1],dy[2],dy[3]
开始迭代
p_0=0
x[3]<b
y
预估值p_1,修正值c,并打印预估值,调用函数f求出dy[i]校正值c,求出修正值y[i],输出y[i],p_0=p_1
x[3]=x[3]+h
j结束
#include<stdio.h>
#include<math.h>
double f(double x,double y)
{
double z;
z=-y+cos(2*x)-2*sin(2*x)+2*x*exp(-x);
return(z);
}
void RK(double x[4],double y[4],double h) //用经典4阶R-K法计算前三个点,以得到较好的初值
{
int i;
double k[4];
for (i=1;i<4;i++)
{
k[0]=h*f(x[i-1],y[i-1]);
k[1]=h*f(x[i-1]+h/2,y[i-1]+k[0]/2);
k[2]=h*f(x[i-1]+h/2,y[i-1]+k[1]/2);
k[3]=h*f(x[i-1]+h,y[i-1]+k[2]);
y[i]=y[i-1]+(k[0]+2*k[1]+2*k[2]+k[3])/6;
x[i]=x[i-1]+h;
printf("y(%lf)=%.15lf\n",x[i],y[i]);
}
}
main()
{
int i;
double a,b;
double h;
double c=0;
double p_0=0,p_1;
double x[4],y[4],dy[100];
double t;
printf("请输入区间(a,b):\n");
scanf("%lf,%lf",&a,&b);
printf("请输入步长h:\n");
scanf("%lf",&h);
printf("请输入初值(x_0,y_0):\n");
scanf("%lf,%lf",&x,&y); //计时开始
RK(x,y,h); //使用R-K法开始,计算前三个点
for (i=0;i<4;i++)
dy[i]=f(x[i],y[i]);
while(x[3]<b)
{
x[3]=x[3]+h;
p_1=y[3]+h*(55*dy[3]-59*dy[2]+37*dy[1]-9*dy[0])/24; //预估
c=p_1+251*(c-p_0)/270; //修正printf("预测值y(%lf)=%.15lf\n",x[3],c);
c=f(x[3],c); //求f
c=y[3]+h*(9*c+19*dy[3]-5*dy[2]+dy[1])/24; //校正y[3]=c-19*(c-p_1)/270; //修正printf("校正值y(%lf)=%.15lf\n",x[3],y[3]); //输出y //为利用前一次计算结果并节省存储空间,赋值
dy[0]=dy[1];
dy[1]=dy[2];
dy[2]=dy[3];
dy[3]=f(x[3],y[3]);
p_0=p_1;
}
}
四、算法实现
利用Adams 预测 - 校正系统,求解初值问题。
例1.求解初值问题
⎩
⎨⎧=++=1 y(0))exp(-**2)*sin(2*2-)*cos(2y - y'x x x x 解:运行程序
(1) 显示出 请输入求解区间()b a ,:输入b a ,的值分别为0,1,回车。
(2) 显示出 请输入步长h :输入h 的值为0.1,回车。
(3) 显示出 请输入初值()0_,0_y x :输入0_,0_y x 的值分别为0,1,回车。
(4) 显示结果:y(0.100000)=0.989114945734689
y(0.200000)=0.953810207163844
y(0.300000)=0.892009234874488
y(0.400000)=0.803953952833856
y(0.500000)=0.691930591306842
y(0.600000)=0.559925160841388
y(0.700000)=0.413289029050956
y(0.800000)=0.258366269650948
y(0.900000)=0.102115037648165
y(1.000000)=-0.048270950301088 y(1.100000)=-0.185729663537347
例2. 求解初值问题 ⎩⎨⎧==0
y(0) y - 1 y' 解:运行程序
(1) 显示出 请输入求解区间()b a ,:输入b a ,的值分别为0,1,回车。
(2) 显示出 请输入步长h :输入h 的值为0.1,回车。
(3) 显示出 请输入初值()0_,0_y x :输入0_,0_y x 的值分别为0,0,回车。
(4) 显示结果:y(0.100000)=0.095162500000000
y(0.200000)=0.181269098593750
y(0.300000)=0.259181577998822
y(0.400000)=0.329679857927070
y(0.500000)=0.393469225089630
y(0.600000)=0.451188240636286
y(0.700000)=0.503414567069739
y(0.800000)=0.550670902638676
y(0.900000)=0.593430205058103
y(1.000000)=0.632120423225642
y(1.100000)=0.667128781599515。