
隐式求解与显式求解.doc
3页大多数非线性动力学问题一般多是采用显式求解方法,特别是在求解大型结构的瞬时高度非线性问题时,显示求解方法有明显的优越性下面先简要对比一下隐式求解法和显示求解法动态问题涉及到时间域的数值积分方法问题在80年代中期以前,人们基本上采用纽曼法进行时间域的积分根据纽曼法,位移、速度和加速度有着如下关系:u(i+l)=u(i)+At*v(i)[(l一2p)a(i)+2p*a(i+l)](1)v(i+l)=V(i)+At[(1-2q)a(i)+2qa(i+1)](2)上面式子中u(i+1),u(i)分别为当前时刻和前一时刻的位移,v(i+1)和V(i)为当前时刻和前一时刻的速度,a(i+1)和a(i)为当前时刻和前一时刻的加速度,p和q为两个待定参数,△t为当前时刻与前一时刻的时问差,符号*为乘号由式(1)和式(2)可知,在纽曼法中任一时刻的位移、速度、加速度都相互关联,这就使得运动方程的求解变成一系列相互关联的非线性方程的求解,这个求解过程必须通过迭代和求解联立方程组才能实现这就是通常所说的隐式求解法隐式求解法可能遇到两个问题一是迭代过程不一定收敛,二是联立方程组可能出现病态而无确定的解隐式求解法最大的优点是它具有无条件稳定性,即时间步长可以任意大。
如果采用中心差分法来进行动态问题的时域积分,则有如下位移、速度和加速度关系式:u(i+1)=2u(i)-u(i-1)+a(»(△t)A2(3)v(i+1)=[u(i+1)-u(i-1)]/2(^t)(4)式中u(i-1),为i-1时刻的位移由式(3)可以看出,当前时刻的位移只与前一时刻的加速度和位移有关,这就意味着当前时刻的位移求解无需迭代过程另外,只要将运动过程中的质量矩阵和阻尼矩阵对角化,前一时刻的加速度求解无需解联立方程组,从而使问题大大简化,这就是所谓的显式求解法显式求解法的优点是它既没有收敛性问题,也不需要求解联立方程组,其缺点是时间步长受到数值积分稳定性的限制,不能超过系统的临界时间步长由于冲压成型过程具有很强的非线性,从解的精度考虑,时间步长也不能太大,这就在很大程度上弥补了显式求解法的缺陷在80年代中期以前显式算法主要用于高速碰撞的仿真计算,效果很好自80年代后期被越来越广泛地用于冲压成型过程的仿真,目前在这方面的应用效果已超过隐式算法显式算法在冲压成型过程的仿真中获得成功应用的关键,在于它不像隐式算法那样有解的收敛性问题显式算法和隐式算法,有时也称为显式解法和隐式解法,是计算力学中常见的两个概念,但是它们并没有普遍认可的定义,下面只是我的一些理解。
先看看一般对两种方法的理解和比较,显式算法隐式算法(01)适用问题动力学(动态)静力学(静态)(02)阻尼人工阻尼数值阻尼(03)每步求解方法矩阵乘法线性方程组(04)大矩阵(总刚)否是(05)数据存贮量小大(06)每步计算速度快慢(07)迭代收敛性无有(08)确定解有确定解可能是病态无确定解(09)时步稳定性有条件无条件时间步小大计算精度低高(01)是明显不对的,只是对两种方法的初级理解,(02)也是同样下面要详细讨论这两点03)是每一步求解的方法,(04)(05)(06)(07)(08)是由(03)所决定的,它们不是两种方法的基本特点同样,(09)是时间步选择的方法,(10)(11)是由(09)所决定的通过(03)(09)可以得到两种方法的计算特点,显式算法是每一步求解为矩阵乘法,时间步选择为条件稳定;隐式算法是每一步求解为线性方程组求解,时间步选择为无条件稳定下面主要分析两种方法的应用范围a) 在求解动力学问题时,将方程在空间上采用有限元法(或其他方法)进行离散后,变为常微分方程组[M]{..u}+[C]{.u}+[K]{u}={f}求解这种方程的其中两种方法为,中心差分法和Newmark法。
采用中心差分法解决动力学问题被称为显式算法,采用Newmark法解决动力学问题被称为隐式算法b) 在求解动力学问题时,离散元法(也有其他方法)主要有两种思想:动态松弛法(向后时步迭代),静态松弛法(每一步要平衡)动态松弛法是显式算法,静态松弛法是隐式算法其中冲压成型就是动态松弛法的主要例子c) 在求解静力学问题时,有时候将其看作动力学问题来处理而采用动态松弛法,这是显式算法Flac就是主要例子最后总结,显式算法隐式算法(01)每步求解方法矩阵乘法线性方程组(02)时步稳定性有条件无条件(03)适用问题动力中心差分法动力Newmark法动力动态松弛法动力静态松弛法静力动态松弛法附加说明:1) 求解线性静力学问题,虽然求解线性方程组,但是没有时步的关系,所以不应将其看作隐式算法2) 求解非线性静力学问题,虽然求解过程需要迭代,或者是增量法,但是没有明显的时步问题,所以不应将其看作隐式算法3) 静态松弛法,可以认为是将动力学问题看作静力学问题来解决,每一步达到静力平衡,需要数值阻尼4) 动态松弛法,可以认为是将静力学问题或者动力学问题,分为时步动力学问题,采用向后时步迭代的思想计算对于解决静力学问题时,需要人工阻尼。
1、显式算法基于动力学方程,因此无需迭代;而静态隐式算法基于虚功原理,一般需要迭代计算2、显式算法最大优点是有较好的稳定性动态显式算法采用动力学方程的一些差分格式(如广泛使用的中心差分法、线性加速度法、Newmark法和wilson法等),不用直接求解切线刚度,不需要进行平衡迭代,计算速度快,时间步长只要取的足够小,一般不存在收敛性问题因此需要的内存也比隐式算法要少并且数值计算过程可以很容易地进行并行计算,程序编制也相对简单但显式算法要求质量矩阵为对角矩阵,而且只有在单元级计算尽可能少时速度优势才能发挥,因而往往采用减缩积分方法,容易激发沙漏模式,影响应力和应变的计算精度静态显式法基于率形式的平衡方程组与Euler向前差分法,不需要迭代求解由于平衡方程式仅在率形式上得到满足,所以得出的结果会慢慢偏离正确值为了减少相关误差,必须每步使用很小的增量3、隐式算法隐式算法中,在每一增量步内都需要对静态平衡方程进行迭代求解,并且每次迭代都需要求解大型的线性方程组,这以过程需要占用相当数量的计算资源、磁盘空间和内存该算法中的增量步可以比较大,至少可以比显式算法大得多,但是实际运算中上要受到迭代次数及非线性程度的限制,需要取一个合理值。
4、求解时间使用显式方法,计算成本消耗与单元数量成正比,并且大致与最小单元的尺寸成反比应用隐式方法,经验表明对于许多问题的计算成本大致与自由度数目的平方成正比因此如果网格是相对均匀的,随着模型尺寸的增长,显式方法表明比隐式方法更加节省计算成本。












