学生、工程师及任何使用有限元软件(尤其是 ABAQUS)的人都听说过“收敛”或“收敛问题”这个词。在这里,我们将解释这一切的含义并回答诸如“什么是收敛?”、“如何识别 ABAQUS 收敛问题?”等常见问题。
图 1 6×6 的刚度矩阵示例
1 有限元软件
如果你是一名工程师,你总是会遇到设计问题。当你开始解决问题时,你可以用传统的方式来做:使用理想模型、简单的物理模型、在纸上写方程等。但现在,在现实世界中,我们使用计算机和软件进行设计。使用有限元软件,您可以设计复杂的模型并求解复杂的方程,从而以最快的方式获得实际结果。因此,成为一名专业工程师,并在有限元软件的帮助下在实际条件下解决问题。
当您使用有限元软件时,您会遇到问题。不用担心; 这是一件普通的事情。在这里,您将学习如何发现这些问题并进行处理。
2 有限元中的收敛性
有限元法使用这个主方程来解决一个问题:
“K”为刚度矩阵,“U”为位移矩阵,“F”为力矩阵(以图1为例)。当这个方程被正确求解时,我们将得到准确的结果,这里我们使用术语“问题收敛”。如果通过任何方式无法求解方程或存在一些问题导致我们得出不准确的结果,我们使用术语“存在一些收敛问题”。
图 2:监控窗口中的一些警告
3 ABAQUS 收敛问题的症状
现在,我们怎么知道存在收敛问题?您可以在运行作业时通过单击“监视器”查看求解过程。如您所见(图 2),有“错误”和“警告”选项卡。您可以看到一些通知您有关问题的消息。此外,您可以在“.msg”(隐式求解器)、“.dat”和“. sta”(显式求解器)文件。这些问题更多地出现在非线性模型中而不是线性模型中。这些症状的一些示例如图 2所示。
4 ABAQUS 收敛问题背后的原因
本节将解释 ABAQUS 收敛问题的原因。它可能比我们在这里解释的要多,但我们讨论了最重要和最常见的一些。
FE 中不完整和有缺陷的建模是收敛问题的最常见原因;例如:
定义可能导致边界条件或接触条件冲突的不适当约束。
使用错误的单元。
在属性模块中定义不充分的材料。
定义不适当的边界条件或接触。
对不稳定的物理系统进行建模。
设置不正确的增量大小。
现在,我们打算解释其中的一两个。示例见图 3,想象一下,你有一个盒子,并且对它施加了一定的压力。你想计算压力;如果你不定义边界条件,盒子会移动,软件无法计算应力,你会看到一个错误。请注意,这只发生在您分析静态问题并使用静态步骤时。另一个例子是,如果你同时约束一个表面并对其施加压力(见图 4),软件将显示错误;因为不可能同时固定表面并施加压力(不适当的边界条件)。
图 3:受载荷却无边界条件的体箱
图 4 不合适的边界条件
5 识别 ABAQUS 收敛问题
在这里,我们打算提出一些建议,以确定导致问题的症状和原因、“错误”和“警告”。一般的方法是列出最重要的潜在原因,然后检查它们以查看软件中的变化。最后,开始一次修复一个。现在,我们的一些建议:
5.1 最好的方法之一是模拟一个更简单的模型:
如果可能,制作一个二维模型或线性模型,以减少细节和单元。
如果可能,不要输入塑性或几何非线性来了解模型的行为。
在具有多个部件的模型中,一次插入一个部件以最大限度地减少问题来源的数量。
5.2 设置增量步
设置适当的增量值,包括初始增量、最小增量、最大增量大小和最大增量数。
当 ABAQUS 隐式求解器开始运行 Job 时,它会以您指定的最大增量数(系统默认为 100)拆分步骤。根据指定的增量大小(图 5),求解器开始运行 Job。在增量的情况下,在ABAQUS标准求解器中,通常会遇到三个Error:
“为这个增量做了太多尝试”;表示求解器多次尝试计算该增量的方程,但不满足收敛条件;因此,您要么再次查看“增量大小”并对其进行修改,要么查看其他地方以克服此错误。
“完成该步骤所需的增量太多”;意味着求解器需要更多的增量;因此,您必须增加“最大增量数”。
“所需的时间增量小于指定的最小值”;在此错误中,您必须减小“增量大小”中的“最小值”以满足收敛条件。
图 5 静态常规步骤窗口和增量选项卡
5.3 查看收敛问题的原因
请参阅 .dat、.sta、.msg 和 .odb 文件中报告的收敛问题的原因。
您可以在消息文件中添加更多信息。例如,在模型的输入文件(-.inp)中使用关键字命令“*PRINT, CONTACT=YES”来获取消息文件中的联系信息。或者使用命令“*PRINT, PLASTICITY=YES”来获取材料问题的积分点编号和元素输出。您可以使用“*PRINT”命令在消息文件(.msg、.sta)中添加更多信息。请耐心等待,我们将向您解释如何使用此命令。
首先,您需要知道输入文件 (.inp)。输入文件是 ABAQUS 文件之一,其中包含模型数据,如载荷、步长等。它类似于“.cae”文件,但大小较小,您可以在文本文件中打开它并更改任何您想要的内容。当您完全创建模型并为其创建作业后,在运行它之前,您可以通过单击“作业管理器”窗口中的“写入输入”按钮为模型创建一个输入文件(见图 6) .您可以在文本文件中打开输入文件并更改您想要的任何内容;然后,要在 ABAQUS 中使用它,根据图 7 打开文件。
图 7:在软件中打导入Input 文件
现在,您知道输入文件是什么,让我们使用“*PRINT”命令。您可以在 ABAQUS 文档的关键字中找到有关“*PRINT”命令或任何其他关键字的说明(图 8)。
图 8 在 ABAQUS 文档中查找 PRINT 关键字
如图 9 所示,通过 Edit Keywords 窗口打开您的输入文件;然后,找到定义加载条件的行;在这些行之后和“*END STEP”之前,您可以添加“*PRINT”命令,然后单击“确定”按钮。运行作业后,您将在 .msg(标准求解器)和 .sta(显式求解器)文件中看到结果。现在,您知道如何编写、使用和修改输入文件了。
图 9 输入 PRINT 命令