1.2 ADAMS多体系统动力学的建模、分析和计算方法
ADAMS采用世界上广泛流行的多刚体系统动力学理论中的拉格朗日方程方法建立系统的动力学方程。它选取系统内每个刚体质心在惯性参考系的3个直角坐标和确定刚体方位的3个欧拉角作为笛卡儿广义坐标,用带乘子的拉格朗日方程处理具有多余坐标的完整约束系统或非完整约束系统,导出以笛卡儿广义坐标为变量的运动学方程。
ADAMS的计算程序应用了吉尔(Gear)的刚性积分算法以及稀疏矩阵技术,大大提高了计算效率。
1.2.1 广义坐标的选择
动力学方程的求解速度在很大程度上取决于广义坐标的选择。研究刚体在惯性空间中的一般运动时,用它的连体基的原点(一般与质心重合)确定位置,用连体基相对惯性基的方向余弦矩阵确定方位。
为了解析和描述方位,必须规定一组转动广义坐标表示方向余弦矩阵。
- 第一种方法是用方向余弦矩阵本身的元素作为转动广义坐标,但是变量太多,同时还要附加6个约束方程。
- 第二种方法是用欧拉角或卡尔登角作为转动坐标,它的算法规范,缺点是在逆问题中存在奇点,在奇点位置附近数值计算容易出现困难。
- 第三种方法是用欧拉参数作为转动广义坐标,它的变量不太多,由方向余弦计算欧拉角时不存在奇点。
ADAMS软件用刚体的质心笛卡儿坐标和反映刚体方位的欧拉角作为广义坐标,由于采用了不独立的广义坐标,因此系统动力学方程虽然是最大数量,但却是高度稀疏耦合的微分代数方程,适用于稀疏矩阵的高效求解。
1.2.2 多体系统动力学研究状况
多体系统动力学的核心问题是建模和求解,其系统研究开始于20世纪60年代。从20世纪60年代到80年代,多体系统动力学侧重于多刚体系统的研究,主要是研究多刚体系统的自动建模和数值求解。
到了20世纪80年代中期,多刚体系统动力学的研究已经取得一系列成果,尤其是建模理论趋于成熟,不过更稳定、更有效的数值求解方法仍然是研究的热点。
20世纪80年代之后,多体系统动力学的研究更偏重于多柔体系统动力学。这个领域也正式被称为计算多体系统动力学,至今仍然是力学研究中最有活力的分支之一,但已经远远超过一般力学的涵义。
1. 多体系统动力学研究的发展
机械系统动力学分析与仿真是随着计算机技术的发展而不断成熟的,多体系统动力学是其理论基础。计算机技术自诞生以来,几乎渗透到科学计算和工程应用的每一个领域。
数值分析技术与传统力学的结合曾在结构力学领域取得了辉煌的成就,出现了以ANSYS、NASTRAN等为代表的应用极为广泛的结构有限元分析软件。
计算机技术在机构的静力学分析、运动学分析、动力学分析以及控制系统分析上的应用在20世纪80年代形成了计算多体系统动力学,并产生了以ADAMS和DADS为代表的动力学分析软件。两者共同构成计算机辅助工程(CAE)技术的重要内容。
多体系统是指由多个物体通过运动副连接的复杂机械系统。多体系统动力学的根本目的是应用计算机技术进行复杂机械系统的动力学分析与仿真。它是在经典力学基础上产生的新学科分支,在经典刚体系统动力学的基础上经历了多刚体系统动力学和计算多体系统动力学两个发展阶段,目前已趋于成熟。
多刚体系统动力学是基于经典力学理论的,多体系统中最简单的情况(自由质点)和一般简单的情况(少数多个刚体)是经典力学的研究内容。
多刚体系统动力学就是为多个刚体组成的复杂系统的运动学和动力学分析建立适宜计算机程序求解的数学模型,并寻求高效、稳定的数值求解方法。经典力学逐步发展成多刚体系统动力学,在发展过程中形成了各具特色的多个流派。
早在1687年,牛顿就建立起牛顿方程,解决了质点的运动学和动力学问题。刚体的概念最早由欧拉于1775年提出,他采用反作用力的概念隔离刚体,以描述铰链等约束,并建立了经典力学中的牛顿-欧拉方程。
1743年,达朗贝尔研究了约束刚体系统,区分了作用力和反作用力,达朗贝尔将约束反力称为“丢失力”,并形成了虚功原理的初步概念。
1788年,拉格朗日发表了《分析力学》,系统地研究了约束机械系统。他系统地考虑了约束,提出了广义坐标的概念,利用变分原理考虑系统的动能和势能,得出第二类拉格朗日方程——最少数量坐标的二阶常微分方程(ODE),并利用约束方程与牛顿定律得出带拉格朗日乘子的第一类拉格朗日方程——最大数量坐标的微分代数方程(DAE)。
虚功形式的动力学普遍方程尚不能解决具有非完整约束的机械系统问题,1908年若丹给出了若丹原理——虚功率形式的动力学普遍方程,利用若丹原理可方便地讨论碰撞问题和非完整系统的动力学问题。
对于由多个刚体组成的复杂系统,理论上采用经典力学的方法,即以牛顿-欧拉方法为代表的矢量力学方法和以拉格朗日方程为代表的分析力学方法。
这种方法对于单刚体或者少数几个刚体组成的系统是可行的,但随着刚体数目的增加,方程复杂度成倍增长,寻求其解析解往往是不可能的。后来计算机数值计算方法的出现使得面向具体问题的程序数值方法成为求解复杂问题的一条可行道路,即针对具体的多刚体问题列出其数学方程,再编制数值计算程序进行求解。
对于每一个具体的问题都要编制相应的程序进行求解,虽然可得到合理的结果,但是这个过程长期重复是让人不可忍受的,于是寻求一种适合计算机操作的程序化的建模和求解方法就变得非常迫切了。在这个时候,也就是20世纪60年代初期,航天领域和机械领域分别展开了对于多刚体系统动力学的研究,并且形成了不同派别的研究方法。
最具代表性的几种方法是罗伯森-维滕堡(Roberson-Wittenburg)方法、凯恩(Kane)方法、旋量方法和变分方法。
(1)罗伯森与维滕堡于1966年提出一种分析多刚体系统的普遍性方法,简称为R/W方法。这种方法的主要特点是利用图论的概念及数学工具描述多刚体系统的结构,以邻接刚体之间的相对位移作为广义坐标,导出适合于任意多刚体系统的普遍形式动力学方程,并利用增广体概念对方程的系数矩阵做出物理解释。
R/W方法以十分优美的风格处理了树结构多刚体系统;对于非树系统,通过铰切割或刚体分割方法将非树系统转变成树系统进行处理。
(2)凯恩方法是在1965年左右形成的分析复杂系统的一种方法,利用广义速率代替广义坐标描述系统的运动,直接利用达朗伯原理建立动力学方程,并将矢量形式的力与达朗伯惯性力直接向特定的基矢量方向投影以消除理想约束力,兼有矢量力学和分析力学的特点,既适用于完整系统,也适用于非完整系统。
(3)旋量方法是一种特殊的矢量力学方法(或牛顿-欧拉方法,简称为N/E方法)。其特点是将矢量与矢量矩合为一体,采用旋量的概念,利用对偶数作为数学工具,使N/E方程具有极其简明的表达形式,在开链和闭链空间机构的运动学和动力学分析中得到广泛运用。
(4)变分方法是不同于矢量力学或分析力学的另一类分析方法。高斯最小拘束原理是变分方法的基本原理。保保夫和里洛夫从这一原理出发,发展了两种不同风格的计算方法。该方法有利于结合控制系统的优化进行综合分析,而且其不受铰的约束数目的影响,适用于带多个闭环的复杂系统。
这几种方法构成了早期多刚体系统动力学的主要内容,借助计算机数值分析技术,解决由多个物体组成的复杂机械系统动力学分析问题,但是多体系统动力学在建模与求解方面的自动化程度相对于结构有限元分析的成熟来说相差甚远。
正是为了解决多体系统动力学建模与求解的自动化问题,美国Chace和Haug于20世纪80年代提出了适合计算机自动建模与求解的多刚体系统笛卡儿建模方法。这种方法不同于以罗伯森-维滕堡方法为代表的拉格朗日方法,以系统中的每个物体为单元,建立固结在刚体上的坐标系。刚体的位置相对于一个公共参考基进行定义,其位置坐标统一为刚体坐标系基点的笛卡儿坐标与坐标系的方位坐标,再根据铰约束和动力学原理建立系统的数学模型进行求解。
20世纪80年代,Haug等人确立了“计算多体系统动力学”这门新的学科,使多体系统动力学的研究重点由多刚体系统走向侧重多柔体系统,柔性多体系统动力学也成为计算多体系统动力学的重要内容。
柔性多体系统动力学在20世纪70年代逐渐引起人们的注意。一些系统(如高速车辆、机器人、航天器、高速机构、精密机械等)中柔性体的变形对系统的动力学行为产生了很大影响。
二十多年来,柔性多体系统动力学一直是研究热点,这期间产生了许多新的概念和方法,有浮动标记法、运动-弹性动力学方法、有限段方法以及绝对节点坐标法等,其中浮动标记法最早是在航天领域研究中提出来的。
计算多体系统动力学是指用计算机数值手段来研究复杂机械系统的静力学分析、运动学分析、动力学分析以及控制系统分析的理论和方法。相比于多刚体系统,对于柔性体和多体与控制混合问题的考虑是其重要特征。其具体任务为:
- 建立复杂机械系统运动学和动力学程序化的数学模型。要开发实现这个数学模型的软件系统,用户只需输入描述系统的基本数据,借助计算机就能自动进行程序化处理。
- 开发和实现有效的处理数学模型的计算方法与数值积分方法,自动得到运动学规律和动力学响应。
- 实现有效的数据后处理,采用动画显示、图表或其他方式提供数据处理结果。
计算多体系统动力学的产生极大地改变了传统机构动力学分析的面貌,使工程师从传统的手工计算中解放了出来,只需根据实际情况建立合适的模型,就可由计算机自动求解,并可提供丰富的结果分析和利用手段,对于原来不可能求解或求解极为困难的大型复杂问题,也可利用计算机的强大计算功能顺利求解。而且现在的动力学分析软件提供了与其他工程辅助设计或分析软件的强大接口功能,与其他工程辅助设计和分析软件一起提供了完整的计算机辅助工程(CAE)技术。
2. 多体系统动力学研究活动
自20世纪60年代以来,国内外在多体系统动力学方面多次召开了深具意义的会议。国际范围内的会议有1977年由国际理论和应用力学学会(International Union of Theoretical and Applied Mechanics,IUTAM)发起的在德国慕尼黑由Magnus主持召开的第一次多刚体系统动力学讨论会。自此,国际多体系统动力学研究活动如雨后春笋般涌现。
国内有影响的教材和专著主要有:
- 刘延柱,洪嘉振,杨海兴.多刚体系统动力学[M].北京:高等教育出版社,1989
- 黄文虎,邵成勋.多柔体系统动力学[M].北京:科学出版社,1996
- 陆佑方.柔性多体系统动力学[M].北京:高等教育出版社,1996
- 洪嘉振.计算多体系统动力学[M].北京:高等教育出版社,1999
技巧提示
以上教材仅提供参考,有关多体力学的图书很多,读者可自行查阅学习。
3. 多体系统动力学研究现状
计算多体系统动力学中所研究的多体系统根据系统中物体的力学特性可分为多刚体系统、柔性多体系统和刚柔混合多体系统。
多刚体系统是指忽略系统中物体的弹性变形而将其当作刚体来处理的系统,这类系统常处于低速运动状态。柔性多体系统是指系统在运动过程中会出现物体的大范围运动与物体的弹性变形的耦合,从而必须把物体当作柔性体处理的系统,大型、轻质而高速运动的机械系统常属于此类。如果柔性多体系统中有部分物体当作刚体来处理,那么该系统就是刚柔混合多体系统,这是多体系统中最一般的模型。
1.2.3 多体系统建模理论
对于多刚体系统,从20世纪60年代到80年代,在航天和机械两个领域形成了两类不同的数学建模方法,分别称为拉格朗日方法和笛卡儿方法;20世纪90年代,在笛卡儿方法的基础上又形成了完全笛卡儿方法。这几种建模方法的主要区别在于对刚体位形描述的不同。
航天领域形成的拉格朗日方法是一种相对坐标方法,以Roberson-Wittenburg方法为代表,它以系统每个铰的一对邻接刚体为单元,以一个刚体为参考物,另一个刚体相对该刚体的位置由铰的广义坐标(又称拉格朗日坐标)来描述,广义坐标通常为邻接刚体之间的相对转角或位移。
这样开环系统的位置完全可由所有铰的拉格朗日坐标阵q所确定。其动力学方程的形式为拉格朗日坐标阵的二阶微分方程组,即
这种形式首先在解决拓扑为树的航天器问题时推出。其优点是方程个数最少,树系统的坐标数等于系统自由度,而且动力学方程易转化为常微分方程组(Ordinary Differential Equations,ODES)。但方程呈严重非线性,为使方程具有程序化与通用性,在矩阵A与B中常常包含描述系统拓扑的信息,其形式相当复杂,而且在选择广义坐标时需人为干预,不利于计算机自动建模。不过目前对于多体系统动力学的研究比较深入,采用拉格朗日方法的几种应用软件也取得了较好的效果。
对于非树系统,拉格朗日方法要采用切割铰的方法以消除闭环,这引入了额外的约束,使得产生的动力学方程为微分代数方程,不能直接采用常微分方程算法去求解,需要专门的求解技术。
机械领域形成的笛卡儿方法是一种绝对坐标方法,即Chace和Haug提出的方法,以系统中每一个物体为单元,建立固结在刚体上的坐标系,刚体的位置相对于一个公共参考基进行定义,其位置坐标(也可称为广义坐标)统一为刚体坐标系基点的笛卡儿坐标与坐标系的方位坐标,方位坐标选用欧拉角或欧拉参数。
单个物体位置坐标在二维系统中为3个、三维系统中为6个(如果采用欧拉参数为7个)。对于由N个刚体组成的系统,位置坐标阵q中的坐标个数为3N(二维)或6N(或7N)(三维)。由于铰约束的存在,因此这些位置坐标不独立。系统动力学模型的一般形式可表示为
式中,Φ为位置坐标阵q的约束方程,Φq为约束方程的雅可比矩阵,λ为拉格朗日乘子。这类数学模型就是微分-代数方程组(Differential Algebraic Equations,DAES),也称为欧拉-拉格朗日方程组(Euler-Lagrange Equations),其方程个数较多,但系数矩阵呈稀疏状,适合计算机自动建立统一的模型进行处理。笛卡儿方法对于多刚体系统的处理不区分开环与闭环(树系统与非树系统),统一处理。目前国际上最著名的两个动力学分析商业软件ADAMS和DADS都采用这种建模方法。
完全笛卡儿坐标方法由Garcia和Bayo于1994年提出,是另一种形式的绝对坐标方法。这种方法的特点是避免使用一般笛卡儿方法中的欧拉角或欧拉参数,而是利用与刚体固结的若干参考点和参考矢量的笛卡儿坐标描述刚体的空间位置与姿态。
参考点选择在铰的中心,参考矢量沿铰的转轴或滑移轴,通常可由多个刚体共享而使未知变量减少。完全笛卡儿坐标所形成的动力学方程与一般笛卡儿方法本质相同,只是其雅可比矩阵为坐标线性函数,便于计算。
至于柔性多体系统,从计算多体系统动力学角度看,柔性多体系统动力学的数学模型首先应该和多刚体系统与结构动力学有—定的兼容性。当系统中的柔性体变形不计时就退化为多刚体系统,当部件间的大范围运动不存在时就退化为结构动力学问题。
柔性多体系统不存在连体基,通常选定一个浮动坐标系描述物体的大范围运动,物体的弹性变形将相对该坐标系定义。弹性体相对于浮动坐标系的离散将采用有限单元法与现代模态综合分析方法。
在用集中质量有限单元法或一致质量有限单元法处理弹性体时用节点坐标来描述弹性变形。
在用正则模态或动态子结构等模态分析方法处理弹性体时用模态坐标描述弹性变形。这就是莱肯斯首先提出的描述柔性多体系统的混合坐标方法,即用坐标阵p=(qTaT)T描述系统的位形,其中q为浮动坐标系的位形坐标、a为变形坐标。考虑到多刚体系统的两种流派,在柔性多体系统动力学中也相应提出了两种混合坐标,即浮动坐标系的拉格朗日坐标加弹性坐标与浮动坐标系的笛卡儿坐标加弹性坐标。
根据动力学基本原理推导的柔性多体系统动力学方程形式同式(1-1)和式(1-2),只是将q用p代替,即柔性多体系统具有与多刚体系统类似的动力学数学模型。
1.2.4 多体系统动力学数值求解
多刚体系统拉格朗日方法产生的形如式(1-1)的动力学数学模型是形式复杂的二阶常微分方程组(ODES),系数矩阵包含描述系统拓扑的信息。对于该类问题的求解,通常采用符号-数值相结合的方法或者全数值的方法。
符号-数值方法是先采用基于计算代数的符号计算方法进行符号推导,得到多刚体系统拉格朗日模型系数矩阵简化的数学模型,再用数值方法求解ODE问题。鉴于计算机技术的发展,目前全数值方法也较为流行,就是将多刚体系统拉格朗日数学模型当作一般ODE问题进行求解,这方面的技术已经较为成熟。
多刚体系统笛卡儿方法产生的形如式(1-2)的动力学数学模型是著名的微分-代数方程组(DAES)。DAE问题是计算多体系统动力学领域的热点问题。
柔性多体系统的动力学数学模型形式与多刚体系统相同,借鉴多刚体系统数学模型的求解方法。只是混合坐标中描述浮动坐标系运动的刚体坐标q通常是慢变大幅值的变量,而描述相对于浮动坐标系弹性变形的坐标a却为快变微幅的变量,两类变量出现在严重非线性与时变的耦合动力学方程中,其数值计算呈病态,将出现多刚体系统中见不到的数值计算困难。
综上所述,多体系统动力学问题的求解集中于微分-代数方程组的求解。下面将简要地介绍一下DAE问题的求解方法。
1. 微分-代数方程组的特性
多刚体系统采用笛卡儿方法建模生成的微分-代数方程组为:
其中,q、、分别是系统位置、速度、加速度向量,λ∈Rm是拉格朗日乘子,t∈R是时间,M∈R n×n为机械系统惯性矩阵,Φq∈Rm×n为约束雅可比矩阵,Q∈Rn为外力向量,Φq∈Rm为位置约束方程。
将式(1-4)对时间求一阶和二阶导数,得到速度和加速度约束方程:
其中,υ=−Φt(q, t)称为速度右项,称为加速度右项。
给定方程组初始条件:
微分-代数方程组的特性和需要注意的问题有:微分-代数方程问题不是常微分方程(ODE)问题;由式(1-3)和(1-4)组成的微分-代数方程组是指标3问题,通过对约束方程求导,化为由式(1-3)~(1-6)组成的微分-代数方程组后,其指标降为1;微分-代数方程数值求解的关键在于避免积分过程中代数方程的违约现象;初值式(1-7)与位置约束式(1-4)及速度约束式(1-5)的相容性;微分-代数方程组的刚性问题。
2. 微分-代数方程组积分技术
自20世纪70年代以来,国际上对微分-代数方程问题做了大量的研究,新的算法不断涌现。根据对位置坐标阵和拉格朗日乘子处理技术的不同,将微分-代数方程组问题的处理方法分为增广法和缩并法。
(1)增广法
传统的增广法是把广义坐标加速度和拉格朗日乘子λ作为未知量同时求解,再对加速度进行积分,求出广义坐标速度及广义坐标位置q,包括直接积分法和约束稳定法。近十年来,在传统增广法的基础上又发展形成了超定微分-代数方程组(ODAEs)方法等新的算法。
- 直接积分法:将式(1-3)和(1-6)联立在一起,同时求出与λ,然后对积分得和q。该方法未考虑式(1-4)和(1-5)的坐标和速度违约问题,积分过程中误差积累严重,极易发散。在实际的数值计算过程中,并不直接采用直接积分法,但在直接积分法的基础上发展了一系列控制违约现象的数值方法。
- 约束稳定法:将控制反馈理论引入微分-代数方程组的数值积分过程以控制违约现象。通过把式(1-6)右边量替换为含位置约束和速度约束的参数式,保证位置约束和速度约束在式(1-3)和(1-6)联立求解时恒满足。该方法稳定性好,响应快,但如何选择参数式中速度项和位置项适当的系数是一个问题。
- 超定微分-代数方程组(ODAEs)法:将系统速度作为变量引入微分-代数方程组,从而将原来的二阶DAE化为超定的一阶DAE,再为所得方程组引入未知参数,根据模型的相容性消除系统的超定性,如此可使数值计算的稳定性明显改变;或者将系统位置、速度、加速度向量和拉格朗日乘子向量联立作为系统广义坐标,再将由式(1-3)、(1-4)、(1-5)和(1-6)组成的微分-代数方程组及速度与位置、加速度与速度的微分关系式作为约束,化二阶DAE为超定的一阶DAE,再根据系统相容性引入两个未知参数,消除超定性,这样所得的最终约化模型更为简单,但方程组要多n个。在ODAE方法的基础上产生了一系列新的更为有效的算法。
- 解耦ODAE法:在ODAE方法的基础上,发展形成了一类解耦思想,就是在ODAEs的基础上对常用的隐式ODE方法采用预估式,再按加速度、速度和位置的顺序进行求解。后来进一步发展形成了无须对隐式ODE方法利用预估式的解耦思想,进一步提高了效率。
(2)缩并法
缩并法就是通过各种矩阵分解方法将描述系统的n个广义坐标用p个独立坐标表达,从而将微分-代数方程组从数值上化为与式(1-1)类似的数学模型,以便于用ODE方法进行求解。传统的缩并法包括LU分解法、QR分解法、SVD分解法以及可微零空间法等,后来在传统缩并法的基础上产生了局部参数化缩并方法等新的算法。缩并法中的这些具体方法分别对应着约束雅可比矩阵的不同分解。
- LU分解法:又称为广义坐标分块法。把广义位置坐标q用相关坐标u和独立坐标v分块表示,再将约束雅可比矩阵Φq用LU分解法分块,得到广义坐标速度、加速度用独立坐标速度、加速度表达的式子。将这两个表达式代入式(1-3),就可得到形如式(1-1)的关于独立坐标加速度的二阶微分方程。该算法可靠、精确,并可控制误差,但效率稍低。
- QR分解法:通过对约束雅可比矩阵Φq正交分解的结果做微分流型分析,得到可选作受约束系统独立速度的,并将微分-代数方程组化作二阶微分方程,如此可保证在小时间间隔内由积分引起的广义坐标的变化不会导致大的约束违约。
- SVD分解法:把约束雅可比矩阵Φq做奇异值分解所得的结果分别用于式(1-3)和(1-6),得到缩并后的系统动力学方程。在该方法推导过程中没有用到式(1-4)和(1-5),所以也存在位置和速度违约问题,可用约束稳定法改善其数值性态。
- 可微零空间法:通过Gram-Schmidt正交化过程自动产生约束雅可比矩阵Φq的可微、唯一的零空间基来对系统方程降阶。具体做法是对由Φq∈Rm×n和任意矩阵B∈R(n−m)×n构造的矩阵P∈Rn×n采用Gram-Schmidt正交化过程,将P化为正交非奇异矩阵V。再引入新的速度矢量,使满足,将新速度矢量和加速度矢量按正交化结果分块,得到新的独立速度矢量和加速度矢量。如此可将微分-代数方程组化为关于新的独立加速度矢量的动力学方程。
- 局部参数化缩并方法:先将式(1-3)~(1-6)改写为等价的一阶形式,再用微分流形理论的切空间局部参数化方法将等价的欧拉-拉格朗日方程降为参数空间上的常微分方程。
总的说来,微分-代数方程组数值求解的方法都可归为增广法或缩并法。除了上面所介绍的这些增广法和缩并法所运用的增广和缩并技术外,近几年来还出现了不少独具特色的处理算法,或者是在数值求解算法中独具匠心,或者是针对某些具体情况做了专门研究。
3. 相容性问题和刚性问题
- 初值相容性问题:在微分-代数方程组的数值求解过程中,给定的位置和速度初始条件与微分-代数方程组中的位置和速度约束的相容性是值得注意的一个问题。相容性是微分-代数方程组有解的必要条件。
- 刚性问题:现代机械系统的复杂性会由于系统的耦合而使所得到的微分-代数方程组呈现刚性特性。对于刚性问题的求解,目前最常用的方法是隐式方法。隐式方法不但用于求解刚性问题,而且相比于显式方法具有更好的稳定性和计算精度。近几年来,无论是在LU分解法的基础上发展起来的新缩并法,还是基于ODAE方法的增广法或是基于多体系统正则方程的解法,应用的无不是隐式方法。
1.2.5 计算多刚体系统动力学自动建模
系统的力学模型是对实际问题的力学抽象。要进行动力学的求解,需要由系统的力学模型得到系统的数学模型,这其中的关键就在于组装系统运动方程中所有的系数矩阵。
计算多体系统动力学是基于约束的运动学和动力学,不仅指运动的速度方程和加速度方程是在约束方程的基础上建立,动力学的运动方程在约束方程的约束下形成微分-代数方程,也指在多体系统动力学分析过程中系统运动方程的各种导数不是实时采用求导算法进行计算,而是采用基于约束的计算方法。
所谓基于约束的计算方法,是指对于有限的约束类型,包括运动学约束和驱动约束,针对每一种约束计算出在系统运动方程中所需的各种导数的相应代数形式,然后在建立数学模型时组装成系统运动方程中各种导数的组合式。如此,在计算导数时只需代入广义坐标、时间及其他相关参数即可,避免了导数实时计算所花的大量费用。
1.2.6 多体系统动力学中的刚性问题
刚性(Stiff)问题存在于多刚体系统动力学的某些情形中,更普遍地存在于多柔体系统动力学中,是多体系统动力学的一个重要问题。刚性首先在常微分方程求解理论中提出,并形成了完整的定义和求解理论。常微分方程刚性理论是多体系统动力学中刚性问题的理论基础,这里先介绍常微分方程刚性问题,再讨论多体系统动力学刚性问题。
微分方程的刚性问题是微分方程的一个重要问题,微分-代数方程(DAE)中同样存在刚性问题。微分-代数方程早期的数值求解中并没有考虑到这个问题,采用的大多是显式方法,到了20世纪80年代才发现一些隐式方法不但具有更好的适应性,而且可用于求解刚性问题。
1. 刚性方程与刚性稳定性
为描述刚性方程的性质,先考虑线性系统:
其中,y(t)=[y1(t),...,ym(t)]T∈Rm为解向量函数,ϕ(t)=[ϕ1(t),...,ϕm(t)]T∈Rm为已知向量函数,A∈Rm×m为常系数矩阵,设其特征值为λj=αj+iβj,j=1,...,m,相应的特征向量为ξj。
定义若在线性系统中,A的特征值λj(j=1,...,m)应满足:
则称式(1-8)为刚性方程,比值s为刚性比,通常刚性比s达到O(10p)(p≥1)就认为是刚性的。
对于非线性系统:
令为式(1-9)满足初始条件y(a)=y0的精确解,在解的邻域内对方程做线性逼近:
或
其中,J(t)是在点处f(t,y)的雅可比(Jacobi)矩阵∂f(t, y)/∂y的值,若矩阵J(t)的特征值λj=λj(t)(j=1,...,m)满足:
则称方程(1-9)为刚性方程,s(t)称为在t处的局部刚性比。
在刚性方程中,刚性比s>> 1,矩阵A或J(t)是病态的,故刚性方程也称为病态方程或坏条件方程。
刚性方程数值积分过程中存在快变分量和慢变分量的差别,快变分量要求积分步长很小,而慢变分量则使得在该步长条件下计算步数很多,舍入误差较大,这就是刚性方程数值求解的困难所在。
考虑到实际问题中可能会出现单个方程情形,或者矩阵A的特征值有实部为零或实部为很小正数的情形,给出与实际问题更为接近的刚性方程的定义。
定义 若线性系统满足条件:
(1)矩阵A的所有特征值实部小于不大的正数。
(2)A至少有一个特征值的实部是很大的负数。
(3)对应于具有最大负实部的特征值的解分量变化是缓慢的。
对于刚性方程数值稳定性的讨论,一般是针对试验方程进行的。
定义 一个数值方法以定步长h解试验方程(1-12),得到线性差分方程的解yn,当n→∞时,若y n→0,则称该方法对步长h是绝对稳定的。
定义 一个数值方法称为A稳定的,如果它的绝对稳定域包含整个左半平面Re(hλ) < 0。
对于A稳定,存在如下结论:
(1)任何显式线性多步法(包括显式RK方法)不可能是A稳定的。
(2)A稳定的隐式线性多步法的阶不超过2。
(3)具有最小误差常数的2阶A稳定隐式线性多步法是梯形法。
A稳定的条件过于苛刻,满足条件的数值方法太少。为了突破这个限制,放宽稳定性条件,给出A(α)稳定的定义。再从刚性问题特点出发,给出刚性稳定性定义。
定义 一个数值方法称为A(α)稳定的,如果它的绝对稳定域包含无限的楔形区域Wα={hλ|−α<π−arg(hλ)<α},α∈(0, π/ 2)。
定义 一个数值方法称为刚性稳定的,如果它是收敛的,并存在正常数D、α、θ使在区域R1={hλ|Re(hλ)≤-D}是绝对稳定的,而在区域R2={hλ|-D<Re(hλ)<α,|Im(hλ)|<θ}上具有高精度且是绝对稳定或相对稳定的。
2. 刚性微分方程的数值方法
常微分方程组初值问题:
其中,为解向量,为已知向量函数,为已知初始向量。
对于常微分方程组初值问题,常用的方法有3种。
(1)线性多步法(LMM)
当β0=0时为显式公式,当β0≠0时为隐式公式。当k=1时称为单步法,当k> 1时称为多步法。
(2)预估校正法(PECE)
式(1-15)为显式预估公式,式(1-16)为隐式校正公式。
(3)龙格-库塔法(RKM)
如果j≥i时aij=0,式(1-17)和(1-18)就是显式RK方法。如果j>i时aij=0,而对角元素aii不全为0,式(1-17)和(1-18)就称为半隐式RK方法;若此时aii均相等,则称为对角隐式RK方法,简称为DIRK方法。
在这些求解常微分方程初值问题数值方法的基础上产生了求解刚性常微分方程的几类方法,分别是以BDF方法为代表的线性多步法和隐式龙格-库塔方法。BDF方法是一类特殊的隐式线性多步法。一般的隐式龙格-库塔方法计算量较大,这里只给出一类特殊的隐式龙格-库塔方法:对角隐式RK方法。
(1)向后差分公式(BDF)
BDF方法是隐式线性多步法,为k步k阶方法。当k=1,2时,BDF方法是A稳定的,当k=3~6时,BDF方法是A(α)稳定和刚性稳定的。实用的BDF方法只能取k=1~6。
(2)对角隐式龙格-库塔方法(DIRK)
对角隐式龙格-库塔方法常用的有2级3阶和3级4阶两个公式,都是A稳定的。此外,还有A稳定的4级4阶公式,但给不出A稳定的更高阶DIRK公式。DIRK方法解高频振荡的问题比Gear方法(BDF方法)好,但对高精度问题比不上Gear方法好,且计算量比Gear方法大。