接触分析收敛不管怎么说总还是一个很大的问题,而我们经常在一个地方卡了很长的时间,怎么也找不到解决和提高的办法。而aba_aba在abaqus常见问题汇总中给了我们模型改进的方向和一些方法。在我分析的过程当中,怎么找到模型中的影响收敛的关键问题所在也是一个很让我迷茫了很长时间。下面谈一下我个人的一些经验和看法。如有错误还望大家指出,也希望大家给出自己更多的经验分享。
abaqus的隐式求解就是求算出一个很大的刚度矩阵的解,这个方程能否通过一次一次的迭代到最后达到一个系统默认的收敛准则标准的范围之内,就决定了这一次计算能否收敛。因此要收敛的话,系统与上一个分析步的边界条件区别越小的话,系统就越容易找到收敛解。针对这一点,我们可以得到下面的几种方法来尽可能的使系统的方程的解尽可能的接近上一步,以达到收敛。下面的方法的指导思想是:尽可能小的模型,前后两个分析步的改变尽可能的少。
1. 接触分析真正加载之前,设置一个接触步让两个面接触上来,在这个步骤里面,接触面的过盈小一点好,比如0.001.接下去再把作用与两个接触体的力及接触方向的自由度放开。
2. 如果系统的载荷很多的话,将系统的载荷分做多步进行加载,一次性全上可能使系统无法在规定的迭代次数内收敛。所以根据需要分开,让abaqus的内核慢慢消化去。少吃多餐在这边好像也是成立的。
3. 系统有多个接触的话,也最好如载荷一样,分成几个step让他们接触上。这样的做法会让你以后在模型的修改中更有方向性。
4. 模型还是不收敛的话,你可以看一下是在哪一步或者那个inc不收敛。对于第一步直接不收敛的话,如果模型是像我上面把载荷和接触分成很多步建立的话,可以把载荷加载的顺序换一下。如果你把第二个加载的载荷换到第一步以后,计算收敛了,那影响收敛的主要问题应该就是原来第一个加载或着接触影响的。这种情况下面一般算到这个加载的时候还是不会收敛。这个时候可以考虑是否有什么其他办法能够使步骤的变化与上一步变动小一点,比如第一点里面提到,或者继续把这个载荷细分呢?
5. 对于接触分析不收敛的情况,可以自己看一下模型的接触面。有时候是overclosure,这个时候在assemble里面将模型相对位置稍微移动下或者用接触里面的那个adjust only to remove overclose,不过或一种方法会使你的网格扭曲变形。问题不大也是可以用的。有的时候是因为,模型中的两个接触面变成了一个点和一个面接触,而点或者面中有一个位置并不是很稳定。这个时候就会出现了dividing,有时候求解无法成功。这时候可以看一下是不是能够将模型该处稍微改一下呢?或者将该处的网格细化一下。
6. 模型实在是比较大的话,可以修改solver的设定,将迭代次数改大一点。对于开始计算就不收敛的,而在迭代次数到了以后时间增量还不是很小的话,可以将initial和minimum改小一点。模型越大的话这边可以改的越小,特别是前后两个step变化比较大的情况下。但对于模型不是很大的情况下,太小的时间增量是意义不大的,问题应该从模型当中是否有错误去考虑。
7. 模型太大的话会导致求解的方程太大,不需要的不重要的接触最好从模型当中去除。这样的话对结果影响也不会很大,而且可以是计算时间大大的减少。
8. 对于收敛准则的修改还是很不推荐的,应作为下下策使用。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删