iCAx开思网
标题: 有限元计算解的收敛性 [打印本页]
作者: fea520 时间: 2014-8-21 14:02
标题: 有限元计算解的收敛性
在有限元计算中,经常会遇到解得收敛性问题,而且其原因一般都五花八门,处理起来非常棘手,要解决这个问题,首先需要知道,什么是解得收敛性。
在有限元法中,场函数的总体泛函是由单元泛函集成的。如果采用完全多项式作为单元的插值函数(即试探函数),则有限元解在一个有限尺寸的单元内可以精确地和真正解一致。但是实际上有限元的试探函数只能取有限项多项式,因此有限元解只能是真正解的一个近似解答。
每一个单元的泛函有可能趋于它的精确值。如果试探函数还满足连续性要求,则整个系统的泛函将趋近于它的精确值。有限元解就趋近于精确解,也就是说解是收敛的。
最书面的理解是:当选取的单元既完备又协调时,有限元解是收敛的。即当单元尺寸趋于零时,有限元解趋于真正解。 (关于单元的完备、协调性概念可以参考清华大学王勖成老师的书《有限单元法》,2003年)
这就是有限元的收敛性,需要说明的是:由于数学微分方程的精确解往往不一定能够得到,甚至问题的数学微分方程并未建立(例如对于复杂型式的结构)。同时有限元解中通常包含多种误差(例如计算机的截断误差和舍入误差),因此有限元解收敛于精确解,在更严格意义上说是问题的有限元解的离散误差趋于零。
那怎么在计算的过程中避免不收敛呢,aba_aba大神常见问题汇总中给了我们模型改进的方向和一些方法,现列举如下。
1. 接触分析真正加载之前,设置一个接触步让两个面接触上来,在这个步骤里面,接触面的过盈小一点好,比如0.001.接下去再把作用与两个接触体的力及接触方向的自由度放开。
2. 如果系统的载荷很多的话,将系统的载荷分做多步进行加载,一次性全上可能使系统无法在规定的迭代次数内收敛。所以根据需要分开,让abaqus的内核慢慢消化去。少吃多餐在这边好像也是成立的。
3. 系统有多个接触的话,也最好如载荷一样,分成几个step让他们接触上。这样的做法会让你以后在模型的修改中更有方向性。
4. 模型还是不收敛的话,你可以看一下是在哪一步或者那个inc不收敛。对于第一步直接不收敛的话,如果模型是像我上面把载荷和接触分成很多步建立的话,可以把载荷加载的顺序换一下。如果你把第二个加载的载荷换到第一步以后,计算收敛了,那影响收敛的主要问题应该就是原来第一个加载或着接触影响的。这种情况下面一般算到这个加载的时候还是不会收敛。这个时候可以考虑是否有什么其他办法能够使步骤的变化与上一步变动小一点,比如第一点里面提到,或者继续把这个载荷细分呢?
5. 对于接触分析不收敛的情况,可以自己看一下模型的接触面。有时候是overclosure,这个时候在assemble里面将模型相对位置稍微移动下或者用接触里面的那个adjust only to remove overclose,不过这一种方法会使你的网格扭曲变形。问题不大也是可以用的。有的时候是因为,模型中的两个接触面变成了一个点和一个面接触,而点或者面中有一个位置并不是很稳定。这个时候就会出现了dividing,有时候求解无法成功。这时候可以看一下是不是能够将模型该处稍微改一下呢?或者将该处的网格细化一下。
6. 模型实在是比较大的话,可以修改solver的设定,将迭代次数改大一点。对于开始计算就不收敛的,而在迭代次数到了以后时间增量还不是很小的话,可以将initial和minimum改小一点。模型越大的话这边可以改的越小,特别是前后两个step变化比较大的情况下。但对于模型不是很大的情况下,太小的时间增量是意义不大的,问题应该从模型当中是否有错误去考虑。
7. 模型太大的话会导致求解的方程太大,不需要的不重要的接触最好从模型当中去除。这样的话对结果影响也不会很大,而且可以使计算时间大大的减少。
整体而言,对于常规的力学分析,出现不收敛更多是建模的原因,比如接触面的设置或者网格划分不合理等等,在计算时如果调整初始增量步还是没有效果的话,那么还是检查下模型本身吧。
作者: tljnng 时间: 2014-9-3 10:12
分析的很详细
欢迎光临 iCAx开思网 (https://www.icax.org/) |
Powered by Discuz! X3.3 |