接触分析收敛不管怎么总还是一个很大的问题,而我们经常在一个地方卡了很长的时间,怎么也找不到解决和提高的办法。
在我分析的过程当中,怎么找到模型中的影响收敛的关键问题所在也是一个很让我迷茫了很长时间。下面谈一下我个人的一些经验和看法。如有错误还望大家指出,也希望大家给出自己更多的经验分享。
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. 模型太大的话会导致求解的方程太大,不需要的不重要的接触最好从模型当中去除。这样的话对结果影响也不会很大,而且可以是计算时间大大的减少。
使用ABAQUS,在很多情况下会出现结果不收敛。我根据自己的实践,谈谈自己的看法。
(1) 你得自己对模型十分熟悉,闭着眼睛就能够知道,如果能够运行下去,各个物体将是怎么变形……等等。绝对不要出现对模型本身理解的错误。如果模型本身你理解错了,边界条件自然不对,计算根本无从谈起。
(2) 仔细检查是否在变形过程中有网格畸变?可放大观察,网格初始划分是否存在畸形的网格,如果过于畸形,计算结果有可能不收敛。变形中出现过大的网格畸形,也会导致不收敛。
(3) 检查master-slave的网格密度是否相反了。一般情况下,slave的网格要密一些,我曾经在此成功解决了有些收敛问题。
(4) 储存矩阵是采用“对称”,“非对称”,“缺省”,这个很重要。默认的情况是采用对称的。当有摩擦的时候,看是否要用“非对称存储”,我在此成功解决了困扰我三天的不收敛情况。
当然,不收敛的原因实在太多了,个人觉得要出现问题时候,自己仔细努力的琢磨才行。一般step开始时出错信息为“太多的attempt”时:意味着模型有问题,仔细检查模型。step计算中出现“增量尺寸小于给定最小增量尺寸”意味着,结果发散,仔细检查上面的几项。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删