整理动力学分析基础_第1页
整理动力学分析基础_第2页
整理动力学分析基础_第3页
整理动力学分析基础_第4页
整理动力学分析基础_第5页
已阅读5页,还剩11页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精品文档动力学分析基础一一雅可比矩阵代码编写,资料整理一一ZH1110动力学仿真计算归结为对典型的常微分方程组的初值问题。在解上述的初值问题时,除了应用常微分方程初值问题的数值积分外,还将用到求解线性代数方程组的数值方法,所以首先我们必须先研究这两个常用的计算机算法,已便于后面的计算.高斯消去法求解线性代数方程组(直接法,即消去法),已在线性代数课程中有详细的讨论,在此给出些说明以及具体的算法描述。大致可以分为以下两步。1 .将系数矩阵经过一系列的初等行变换(归一化)在变换过程中,采用原地工作,即经变换后的元素仍放在原来的位置上。2 .消去。它的作用是将主对角线以下的均消成0,而其它元素与向量

2、中的元素也应作相应的变换最后,进行回代依次解出如:我们要解如下方程组:精品文档精品文档初等行变换:回代得到结果:龙格-库塔算法求解常微分方程用欧拉算法、改进欧拉算法以及经典龙格-库塔算法对常微分方程的初值问题进行数值求解算法。动力学仿真计算最后会出现一加速度,速度,坐标的两阶微分方程组,其积分需要这种计算方法。一、使用欧拉算法及其改进算法(梯形算法)进行求解所谓的微分方程数值求解,就是求问题的解y(x)在一系列点上的值y(xi)的近似值yi。欧拉(Euler)算法是其实现的依据是用向前差商来近似代替导数。对于常微分方程:dy/dx=f(x,y),xa,by(a)=y0精品文档精品文档可以将区间

3、a,b分成n段,那么方程在第xI点有y(xl)=f(xl,y(xl),再用向前差商近似代替导数则为:(y(xl+1)-y(xl)/h=f(xl,y(xl),因此可以根据xl点和yl点的数值计算出yl+1来.由此可以看出,常微分方程数值解法的基本出发点就是计算离散化点。yl+1=yl+h*f(xl,yl)下面就举一个简单的常微分方程y=x-y+1,xC0,0.5y(0)=1(人工计算后的解析式为:y(x)=x+e-x)欧拉算法PrivateSubEuler()Forx=0To0.5Step0.1y(i+1)=y(i)+0.1*(x-y(i)+1)List1.AddItemy(i)i=i+1Nex

4、tEndSub由于方程曲线是内凹的所以无论如何减少步距,得到的结果都小于真实值,有必要采取措施来抑制、减少误差,尽量使结果精确。在构造欧拉公式时采取的一个重要步骤-用向前差商来代替导数,如将其改为向后差商也是行的通的。此时的欧拉公式就变成了:yI+1=yI+h*f(xI+1,yI+1),由于该式是一个隐式公式,所以可用迭代法进行计算,直至获取到满足精度要求的yl+1。从数学上可以证明,该式的局部截断误差和前面的欧拉公式的截断误差在主部上之相差正负号,所以只要将显示和隐式的两个欧拉公式相加后再行求解会大大减少误差。可以解得改进后的欧拉公式的表达式为:精品文档精品文档yI+1=yI+h*(f(xI

5、,yI)+f(xI+1,yI+hf(xI,yI)/2从下表得出的实验数据可以看出,这种经过改进的欧拉算法所存在的误差已大为减少,可以直接单独应用于实际的工程计算。误差的减少主要是由于先利用了欧拉公式对yI+1的值进行了预估,然后又利用梯形公式对预估值作了校正,从而在预估-校正的过程中减少了误差。xI(各分点)yI(数值解)y(xi)(真实值)|y(xi)-yI|(误差)0.01.0000001.0000000.0000000.11.0050001.0048370.0001630.21.0190251.0187310.0002940.31.0412181.0408180.0004000.41.0

6、708021.0703200.0004820.51.1070761.1065310.000545使用经典龙格-库塔算法进行高精度求解对于一阶精度的欧拉公式有:yi+1=yi+h*K1K1=f(xi,yi)当用点xi处的斜率近似值K1与右端点xi+1处的斜率K2的算术平均值作为平均斜率K*的近似值,那么就会得到二阶精度的改进欧拉公式:yi+1=yi+h*(K1+K2)/2精品文档精品文档K1=f(xi,yi)K2=f(xi+h,yi+h*K1)依次类推,如果在区间xi,xi+1内多预估几个点上的斜率值K1、K2、Km并用他们的加权平土数作为平均斜率K*的近似值,显然能构造出具有很高精度的高阶计算

7、公式。经数学推导、求解,可以得出四阶龙格-库塔公式,也就是在工程中应用广泛的经典龙格-库塔算法:yi+1=yi+h*(K1+2*K2+2*K3+K4)/6K1=f(xi,yi)K2=f(xi+h/2,yi+h*K1/2)K3=f(xi+h/2,yi+h*K2/2)K4=f(xi+h,yi+h*K3)龙格-库塔算法代码清单:PrivateSubRunge_Kutta()DimK1AsSingle,K2AsSingle,K3AsSingle,K4AsSingleForx=0To0.5Step0.1K1=x-y(i)+1求K1K2=(x+0.1/2)-(y(i)+K1*(0.1/2)+1K3=(x+

8、0.1/2)-(y(i)+K2*(0.1/2)+1K4=(x+0.1)-(y(i)+K3*0.1)+1y(i+1)=y(i)+0.1*(K1+2*K2+2*K3+K4)/6List2.AddItemy(i)i=i+1NextEndSub从下表记录的程序运行结果来看,在步长为0.1的情况下所计算出来的常微分方程的数值解是非常精确的,用浮点数进行运算时由近似所引入的误差几乎不会对计算结果产生影响。精品文档精品文档x(各分点)yl(数值解)y(xi)(真实值)Iy(xi)-yl|(误差)0.01.0000001.0000000.00000000.11.0048381.0048370.00000121

9、.0187311.0187310.000000031.0408181.0408180.00000000.41.0703201.0703200.00000051.1065311.1065310.000000一般来说经典龙格-库塔算法精确度高又利于计算机编程实现,稳定性也很好,可以考虑作为首选实现算法。求解两阶微分方程组的龙格一库塔法:对于两阶微分方程组:精品文档精品文档利用雅可比矩阵分析动力学系统约束方程的概念:对于刚体系,刚体间存在较(或运动副)。在一个校的邻接刚体中,一个刚体的运动将部分地牵制了另一刚体的运动。在一般情况下,描述系统位形的坐标并不完全独立,在运动过程中,它们之间存在某些关系。

10、这些关系的解析表达式构成约精品文档精品文档束方程将约束方程求导有这即雅可比(C.G.J.Jacobi)矩阵,或简称约束方程的雅可比。体系通用的动力学模型(具体可参考分析力学著作)即:它不是典型的常微分方程组,故仿真计算不是一般的常微分方程组初值问题。为此定义变量阵,将方程动力学改写为上所述,经过上述变换,动力学仿真计算归结为对典型的常微分方程组的初值问题。在对上述初值问题进行数值积分的过程中方程之右函数中的值不能直接得到,需通过解代数方程得到。此时拉格朗日乘子的值也同时得到。由此可知,在解上述的初值问题时,除了应用常微分方程初值问题的数值积分外,还将用到求解线性代数方程组的数值方法。仿真计算的

11、步骤:(1)将时间离散,根据式计算A,b,利用高斯消元法解代精品文档精品文档数方程;(2)进行数值积分得例1:图双质点摆,摆球Pi与P2的质量为m=m=1,摆长分别为l产1与12=1,两球开始位置在正右方。试利用雅可比矩阵建立该双质点摆的动力学方程。解:如图建立惯性基。双质点摆为两质点系,系统的坐标阵为约束方程为可见坐标数为4,约束方程数为2,故系统自由度为2。引入拉格朗日乘子阵精品文档精品文档。约束方程(1)的雅可比为(每种约束方程都有其偏导数方程,如果你不了解如何求二阶导数直接带公式即可)主动力只有重力,主动力阵为将上述分析的结果代入动力学模型,有动力学方程将式(1)对时间求二阶导数,得到

12、加速度约束方程,即将后两个方程与动力学方程合并,有完整的动力学方程精品文档精品文档编写代码:ConstmAsSingle=1质量ConstgAsSingle=9.8重力速度,加速度DimX(2)AsSingle,Y(2)AsSingle,Vx(2)AsSingle,Vy(2)AsSingleDimA(1To6,1To6)AsSingle,b(1To6)AsSingle,Fr(1To6)AsSinglePrivateSubForm_Load()开始位置在右方X(1)=1:Y(1)=0:X(2)=2:Y(2)=0Vx(1)=0:Vy(2)=0.EndSub初始化PrivateSubINI()A(1

13、,1)=m:A(1,5)=2*X(1):A(1,6)=-2*(X(2)-X(1)A(2,2)=m:A(2,5)=2*Y(1):A(2,6)=-2*(Y(2)-Y(1)A(3,3)=m:A(3,6)=2*(X(2)-X(1)A(4,4)=m:A(4,6)=2*(Y(2)-Y(1)精品文档精品文档A(5,1)=X(1):A(5,2)=Y(1)A(6,1)=X(1)-X(2):A(6,2)=Y(1)-Y(2):A(6,3)=X(2)-X(1):A(6,4) =Y(2)-Y(1)b(2)=m*g:b(4)=m*g:b(5)=-Vx(1)A2-Vy(1)A2:b(6)=-(Vx(2)-Vx(1)a2-(

14、Vy(2)-Vy(1)a2EndSubPrivateSubTimer1_Timer()Constt=0.03步距,高斯消去法解方程组GaMssA(),b(),6,Fr()Forjj=1To2,积分Vx(jj)=Vx(jj)+t*Fr(jj*2-1):Vy(jj)=Vy(jj)+t*Fr(jj*2)X(jj)=X(jj)+t*Vx(jj):Y(jj)=Y(jj)+t*Vy(jj),绘制球,杆Picture1.Circle(X(jj),Y(jj),0.1Picture1.Line(X(jj-1),Y(jj-1)-(X(jj),Y(jj),重新设置初始值ININextEndSub例2:利用拉格朗日第一类方程建立所示均质杆封闭的动力学方程,杆开始角度为Pi/6。精品文档精品文档例2图解:如图所示,在质心C建立杆的连体基,该杆关于质心C的转动惯量为Jc=ml2/12o根据已知条件,杆AB在运动过程中位形坐标间有如下两个独立的约束方程(s=2)(1)约束方程的雅可比与加速度约束方程的右项分别为(2)引入两个拉格朗日乘子人=(九九2)To系统受到的主动力为重力,由增广主动力阵的定义,有。根据上面分析,可得动力学方程精品文档精品文档或由式(9.1-25)可得到封闭的动力学方程代码(略):

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论