隐式求解与显式求解.
- 格式:doc
- 大小:18.00 KB
- 文档页数:4
显式(explicit)和隐式(implicit)这两个词在有限元分析中大家可能经常看到,特别是涉及到动力学分析时。
但其实广义的说他们分别对应着两种不同的算法:显式算法(explicit method)和隐式算法(implicit method)。
所以不论在动力学或者静力学中都有涉及到。
显式算法:不直接求解切线刚度,不进行平衡迭代,计算速度快,时间步长只需要足够小,一般不存在收敛问题,需要的内存也小。
隐式算法:每一增量步都需要对静态方程进行平衡迭代,且每次迭代需要求解大量的线性方程组,这一特点使之占用大量的资源。
但该算法增量步可以很大,至少比显式算法大的多,实际计算中会受到迭代次数及非线性程度的影响我们都知道有限元分析FEA在计算微分方程(differential equations)时,由于计算本身的局限,比如计算机储存的位数有限,以及方程本身的复杂性,计算机运用的是数值算法(numerical algorithm)来逼近真实解的。
有限元分析中数值算法的基础是欧拉法(Euler method),欧拉法又分为forward Euler method 和backward Euler method,这两种方法被简称为显式法(explicit method)和隐式法(implicit method)。
中心差分法:(动力学分析)用有限差分代替位移对时间的求导,将运动方程中的速度与加速度用位移的某种组合来标示,这样就将常微分方程组的求解问题转化为代数方程组的求解问题,并假设在每个小的时间间隔内满足运动方程。
首先我们来看看这两种算法的区别。
显式算法(explicit method )(forward Euler method )考虑常微分方程:初始条件:设为每一步的时间步长, 在Tn 时刻,. (n=0,1,2,3...),在T(n+1)时刻有:所以在显式算法中,T(n+1)时刻的值由T(n)时刻决定,也就是说当前时刻的值由上一时刻的值决定。
显式算法和隐式算法,有时也称为显式解法和隐式解法,是计算力学中常见的两个概念,但是它们并没有普遍认可的定义,下面只是我的一些个人理解。
一、两种算法的比较1、显式算法基于动力学方程,因此无需迭代;而静态隐式算法基于虚功原理,一般需要迭代计算。
显式算法,最大优点是有较好的稳定性。
动态显式算法采用动力学方程的一些差分格式(如广泛使用的中心差分法、线性加速度法、Newmark法和wilson法等),不用直接求解切线刚度,不需要进行平衡迭代,计算速度快,时间步长只要取的足够小,一般不存在收敛性问题。
因此需要的内存也比隐式算法要少。
并且数值计算过程可以很容易地进行并行计算,程序编制也相对简单。
但显式算法要求质量矩阵为对角矩阵,而且只有在单元积分点计算尽可能少时速度优势才能发挥, 因而往往采用减缩积分方法,容易激发沙漏模式,影响应力和应变的计算精度。
静态显式法基于率形式的平衡方程组与Euler向前差分法,不需要迭代求解。
由于平衡方程式仅在率形式上得到满足,所以得出的结果会慢慢偏离正确值。
为了减少相关误差,必须每步使用很小的增量。
除了欧拉向前差分法外,其它的差分格式都是隐式的方法,需要求解线性方程组。
2、隐式算法隐式算法中,在每一增量步内都需要对静态平衡方程进行迭代求解,并且每次迭代都需要求解大型的线性方程组,这以过程需要占用相当数量的计算资源、磁盘空间和内存。
该算法中的增量步可以比较大,至少可以比显式算法大得多,但是实际运算中上要受到迭代次数及非线性程度的限制,需要取一个合理值。
二、求解时间使用显式方法,计算成本消耗与单元数量成正比,并且大致与最小单元的尺寸成反比,应用隐式方法,经验表明对于许多问题的计算成本大致与自由度数目的平方成正比,因此如果网格是相对均匀的,随着模型尺寸的增长,显式方法表明比隐式方法更加节省计算成本。
三、两种方法的应用范围:a)在求解动力学问题时,将方程在空间上采用有限元法(或其他方法)进行离散后,变为常微分方程组F=M(u)+C(u)+K(u)。
显式和隐式求解方法以下是 6 条关于“显式和隐式求解方法”的内容:1. 嘿,你知道吗?显式求解方法就像是直接去进攻问题,一拳把答案给打出来!比如说计算物体直线运动的距离,我们一下子就能根据公式清楚地算出结果呀。
而隐式求解方法呢,就有点像跟问题玩捉迷藏,要绕几个弯才能找到答案。
就拿求解复杂系统的平衡状态来说,得费点心思呢!这两种求解方法,可都是解决问题的宝贝呀,我们可得好好研究呢!2. 哎呀呀,想象一下,显式求解方法是那爽快直接的剑客,面对问题一剑封喉!就像我们算简单的数学运算,直接得出结果。
可隐式求解方法呢,是那神秘莫测的谋士,需要精心布局才能找到答案。
好比研究一些隐性的规律,得慢慢挖掘呀。
它们是不是都超有意思呢?3. 哇塞,显式求解方法啊,就如同在光明大道上奔跑,清晰明了直达目的地!像计算简单的几何图形面积,那不是轻而易举嘛。
但隐式求解方法呢,像是在迷雾中摸索,充满了挑战和未知呢!就像解锁一个复杂的密码锁,需要耐心和技巧呀。
这两者结合起来,那可真是无敌啦!4. 嘿哟!显式求解方法就好像是打开电灯开关,瞬间光明!比如快速算出一个直角三角形的斜边长度。
可隐式求解方法是在黑暗中探寻宝藏,需要耐着性子啊!就如探寻物体之间复杂的相互作用力。
它们俩,那可都不能小瞧呀!5. 天哪,显式求解方法简直就是那勇往直前的勇士,直截了当!例如快速得到一个匀速运动物体的位移。
而隐式求解方法就像那心思缜密的侦探,不放过任何蛛丝马迹!比如分析复杂电路中的电流分布。
这两种求解方法,真是各有千秋呢!6. 咦,你想想看,显式求解方法是那干脆利落的短跑健将,一下子就冲过终点!像直接计算一个圆的周长。
隐式求解方法则像那步步为营的棋手,精心布局!比如研究复杂生态系统的动态平衡。
它们不就像是解决问题的左膀右臂么?我的观点结论:显式和隐式求解方法都有着独特的魅力和作用,在不同的情况下都能发挥巨大的价值,我们要好好利用它们来攻克各种难题!。
采用有限元方法开展结构的动力学分析最终归结为求解离散后的常微分方程组tR KU U C U M =++ 。
在时域内求解该方程最常用的方法是直接积分法,而又根据求解过程中是否需要迭代求解线性方程组,将直接积分法分为隐式积分方法和显式积分方法两类。
隐式积分法认为t+Δt时刻系统的状态不仅与t时刻状态有关,且与t+Δt时刻某些量有关。
因此隐式算法是根据t n 及t n-1...时刻体系的物理量值建立关于以t n+1时刻物理量为未知量的线性方程组,通过求解方程组确定t n+1时刻的物理量(常用的方法有线性加速度法、常平均加速度法、Newmark 方法、Wilson-θ法、Houbolt 方法等)。
而显式积分法认为t+Δt时刻系统的状态仅与t时刻状态有关可,因此可由t n 及t n-1...时刻体系的物理量值直接外推t n+1时刻物理量值(如中心差分法),不需要求解线性方程组,实现了时间离散的解耦。
两种算法的比较 :(1)隐式算法隐式算法基于虚功原理,要迭代计算。
隐式算法在每一增量步内都需要对静态平衡方程进行迭代求解,并且每次迭代都需要求解大型的线性方程组,这一过程需要占用相当数量的计算资源、磁盘空间和内存。
理论上在这个算法中的增量步可以很大,但是实际运算中上要受到接触以及摩擦等条件的限制。
随着单元数目的增加,计算时间几乎呈平方次增加。
由于需要矩阵求逆以及精确积分,对内存要求很高。
隐式算法的不利方面就是收敛问题不容易解决,且在开始起皱失稳时,在分叉点处刚度矩阵出现奇异。
(2)显式算法显示算法基于动力学方程,无需迭代,包括动态显式和静态显式算法。
动态显式算法采用动力学方程的中心差分格式,不用直接求解切线刚度,不需要进行平衡迭代,计算速度快,也不存在收敛控制问题。
该算法需要的内存也比隐式算法要少。
数值计算过程可以很容易地进行并行计算,程序编制也相对简单。
它也有一些不利方面。
显式算法要求质量矩阵为对角矩阵,而且只有在单元级计算尽可能少时速度优势才能发挥, 因而往往采用减缩积分方法,容易激发沙漏模式,影响应力和应变的计算精度。
先说说显示算法和隐式算法:这是ansys里面的两种求解方法。
大多数非线性动力学问题一般多是采用显式求解方法,特别是在求解大型结构的瞬时高度非线性问题时,显示求解方法有明显的优越性。
下面先简要对比一下隐式求解法和显示求解法。
动态问题涉及到时间域的数值积分方法问题。
在80年代中期以前,人们基本上采用纽曼法进行时间域的积分。
根据纽曼法,位移、速度和加速度有着如下关系:u(i+1)=u(i)+△t*v(i)[(1—2p)a(i)+2p*a(i+1)] (1)v(i+1)=V(i)+△t[(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(i)(△t)^2 (3)v(i+1)=[u(i+1)-u(i-1)]/2(△t) (4)式中u(i-1),为i-1时刻的位移。
由式(3)可以看出,当前时刻的位移只与前一时刻的加速度和位移有关,这就意味着当前时刻的位移求解无需迭代过程。
另外,只要将运动过程中的质量矩阵和阻尼矩阵对角化,前一时刻的加速度求解无需解联立方程组,从而使问题大大简化,这就是所谓的显式求解法。
显式算法与隐式算法得区别1、显式算法最大优点就是有较好得稳定性。
动态显式算法采用动力学方程得一些差分格式(如广泛使用得中心差分法、线性加速度法、Newmark法与wilson法等),不用直接求解切线刚度,不需要进行平衡迭代,计算速度快,时间步长只要取得足够小,一般不存在收敛性问题。
因此需要得内存也比隐式算法要少。
并且数值计算过程可以很容易地进行并行计算,程序编制也相对简单。
但显式算法要求质量矩阵为对角矩阵,而且只有在单元级计算尽可能少时速度优势才能发挥。
因而往往采用减缩积分方法,容易激发沙漏模式,影响应力与应变得计算精度。
静态显式法基于率形式得平衡方程组与Euler向前差分法,不需要迭代求解。
由于平衡方程式仅在率形式上得到满足,所以得出得结果会慢慢偏离正确值。
为了减少相关误差,必须每步使用很小得增量。
2、隐式算法隐式算法中,在每一增量步内都需要对静态平衡方程进行迭代求解,并且每次迭代都需要求解大型得线性方程组,这以过程需要占用相当数量得计算资源、磁盘空间与内存。
该算法中得增量步可以比较大,至少可以比显式算法大得多,但就是实际运算中上要受到迭代次数及非线性程度得限制,需要取一个合理值。
3、求解时间t使用显式方法,计算成本消耗与单元数量成正比,并且大致与最小单元得尺寸成反比;应用隐式方法,经验表明对于许多问题得计算成本大致与自由度数目得平方成正比;因此如果网格就是相对均匀得,随着模型尺寸得增长,显式方法表明比隐式方法更加节省计算成本。
所谓显式与隐式,就是指求解方法得不同,即数学上得出发点不一样。
并不就是说显式只能求动力学问题,隐式只能求静力学问题,只就是求解策略不通。
显式求解就是对时间进行差分,不存在迭代与收敛问题,最小时间步取决于最小单元得尺寸。
过多与过小得时间步往往导致求解时间非常漫长,但总能给出一个计算结果。
解题费用非常昂贵。
因此在建模划分网格时要非常注意。
隐式求解与时间无关,采用得就是牛顿迭代法(线性问题就直接求解线性代数方程组),因此存在一个迭代收敛问题,不收敛就得不到结果。
1.1. 弹性动力学有限元基本解法结构系统的通用运动学方程为:tR KU U C U M =++ (1) 求解该动力学振动响应主要有三类方法:(1)时域法(2)频域法(3)响应谱法时域法又可分为:(1)直接积分法,(2)模态叠加法。
直接积分法又可分为中心差分法(显式),Wilson θ(隐式)法以及Newmark (隐式)法等。
本文介绍中心差分法(显式)与Newmark (隐式)法。
1 中心差分法(显式)假定0,1t ,2t ,…,n t 时刻的节点位移,速度与加速度均为已知,现求解)(t t t n ∆+时刻的 结构响应。
中心差分法对加速度,速度的导数采用中心差分代替,即为:)2(12t t t t t t U U U t U ∆+∆-+-∆= )(21t t t t t U U tU ∆-∆+-∆= (2) 将(2)式代入(1)式后整理得到tt t R U M ˆˆ=∆+ (3) 式(3)中C tM t M ∆+∆=211ˆ2 t t t t t U C tM t U M t K R R ∆-∆-∆-∆--=)211()2(ˆ22 分别称为有效质量矩阵,有效载荷矢量。
R ,M ,C ,K 为结构载荷,质量,阻尼,刚度矩阵。
求解线性方程组(3),即可获得t t ∆+时刻的节点位移向量t t U ∆+,将t t U ∆+代回几何方程与物理方程,可得t t ∆+时刻的单元应力和应变。
中心差分法在求解t t ∆+瞬时的位移t t U ∆+时,只需t t ∆+时刻以前的状态变量t U 和t t U ∆-,然后计算出有效质量矩阵M ˆ,有效载荷矢量tR ˆ,即可求出t t U ∆+,故称此解法为显式算法。
中心差分法,在开始计算时,需要仔细处理。
t =0时,要计算t U ∆,需要知道t U ∆-的值。
因此应该有一个起始技术,因而该算法不是自动起步的。
由于0U ,0U ,0U 是已知的,由t =0时的(2)式可知: 02002U t U t U U t ∆+∆-=∆-中心差分法中时间步长t ∆的选择涉及两个方面的约束:数值算法的稳定性和计算时间。
Ansys显示算法和隐式算法知识完全解读这是ansys里面的两种求解方法。
大多数非线性动力学问题一般多是采用显式求解方法,特别是在求解大型结构的瞬时高度非线性问题时,显示求解方法有明显的优越性。
下面先简要对比一下隐式求解法和显示求解法。
动态问题涉及到时间域的数值积分方法问题。
在80年代中期以前,人们基本上采用纽曼法进行时间域的积分。
根据纽曼法,位移、速度和加速度有着如下关系:u(i+1)=u(i)+△t*v(i)[(1—2p)a(i)+2p*a(i+1)] (1)v(i+1)=V(i)+△t[(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(i)(△t)^2 (3)v(i+1)=[u(i+1)-u(i-1)]/2(△t) (4)式中u(i-1),为i-1时刻的位移。
由式(3)可以看出,当前时刻的位移只与前一时刻的加速度和位移有关,这就意味着当前时刻的位移求解无需迭代过程。
另外,只要将运动过程中的质量矩阵和阻尼矩阵对角化,前一时刻的加速度求解无需解联立方程组,从而使问题大大简化,这就是所谓的显式求解法。
大多数非线性动力学问题一般多是采用显式求解方法,特别是在求解大型结构的瞬时高度非线性问题时,显示求解方法有明显的优越性。
下面先简要对比一下隐式求解法和显示求解法。
动态问题涉及到时间域的数值积分方法问题。
在80年代中期以前,人们基本上采用纽曼法进行时间域的积分。
根据纽曼法,位移、速度和加速度有着如下关系:
u(i+1)=u(i)+△t*v(i)[(1—2p)a(i)+2p*a(i+1)] (1)
v(i+1)=V(i)+△t[(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(i)(△t)^2 (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)时步稳定性有条件无条件
(10)时间步小大
(11)计算精度低高
============================================================= (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、求解时间
使用显式方法,计算成本消耗与单元数量成正比,并且大致与最小单元的尺寸成反比应用隐式方法,经验表明对于许多问题的计算成本大致与自由度数目的平方成正比因此如果网格是相对均匀的,随着模型尺寸的增长,显式方法表明比隐式方法更加节省计算成本。