该文旨在帮助您(分析师)解决大家多年来发现的所有典型(而非典型)分析错误。当然,本文可能会遗漏一些东西,但希望我们能使您走上正确的道路,以便首先诊断并修复模型中的问题。
“调试”是一个经常用于描述查找和修复建模错误的过程的词。这篇文章将集中于您应该首先查找然后诊断问题的步骤。我们将专注于Simulia的Abaqus求解器,但是我们使用的方法和突出的问题将与大多数商业FEA软件包相关(尽管您可能需要加倍努力才能找到等效的信息)。然后,我们将逐周添加到独立文章的知识库中,这些文章可以解决特定的错误和问题,并将其合并到本文末尾的列表中。
那么,让我们开始吧...我们从哪里开始?
1. STA文件
尝试调试Abaqus FEA模型时,.sta或“状态”文件可能是一个不错的起点。它显示了有关计算机在分析的所有阶段尝试执行的操作的非常基本的信息。
在此文件中,您可以看到求解器正在处理的增量大小以及查找解决方案的难易程度。增量是模型尝试解决的步骤的“块”。通常,当要模拟复杂或非线性事件时,需要将该步骤分解为许多“比特大小”的增量,计算机可以处理并收敛于静态平衡。进行的尝试(或迭代)次数越多,解决该增量的挑战就越大,这可能使您开始了解出现问题的地方。
我们还建议您评估当前正在处理的增量的大小,并将其与之前处理的所有增量的大小进行比较。有时,模型会很好地求解,然后达到需要“削减”的增量。这意味着找不到当前增量的解决方案,求解器将尝试减小“块”的大小以帮助简化收敛。通常,削减成本是复杂分析中完全正常的部分,无需担心。但是,如果解决方案意外缩减,则对该文件的询问可以让您一目了然地了解问题发生的分析阶段。
2.DAT文件
该.DAT或“数据”文件试图诊断错误时,通常是最宝贵的,以防止从一开始的Abaqus FEA模型。在这里,您将找到求解器在分析的“预处理”阶段吐出的所有“警告”和“错误”。
有时,您会发现模型运行甚至不会开始。如果是这种情况,则总是可以在dat文件中的“ *** ERROR:”卡下找到原因。通常,失败的原因很明显,例如当您有一个由两个主节点控制的从节点时。求解器甚至不会尝试开始-您正在违反规则。dat文件不仅会告诉您问题所在,还会告诉您引起该问题的节点,这对您进行调试很有用。
3. MSG文件
该.msg或“信息”文件中关于有限元模型的实际运行数据。它包含在每次尝试解决增量过程中生成的所有数据-逐次迭代。
当使用任何隐式方法求解时,迭代是“尝试”以找到增量的平衡解。在每次迭代中,解决方案应该越来越接近于平衡,但这并非总是如此。这将被称为发散(而不是收敛)迭代,并且实质上是我们在分析期间遇到的所有问题的根源。
一旦模型开始,某些警告或错误可能会在解决方案中变得很重要。例如,当元素中的应变变得过高并且Abaqus为“ ***警告”时,就是这种情况,这可能是一个问题。通常使用msg文件诊断的另一件事是模型中的“刚体运动”-解算器无法收敛于稳定的平衡,因为没有平衡点。同样,msg文件会尽力让您知道发生了什么。在这些情况下,它可能有点神秘,但这就是我们系列博客的全部内容。
我们还可以探查解决方案的各个方面,以找到最大的力和力矩残差以及位移和旋转校正-以及它们出现在哪个节点。它本身并不是非常有用,但是,与从本文中已经讨论过的其他资源中提取的信息结合使用时,在诊断和调试有限元模型时它可能会具有无价的价值。
4.检查ODB
.odb或“输出数据库”是存储结果内容的位置。我的最终建议不像上面讨论的那样“科学”,但是通常同样有效。
有时,只有当仿真实际上已经开始并且已经获得一些结果时,这才起作用,您只需查看odb,就可以确切地看到模型的问题所在。如果没有正确应用边界条件,或者在不应该发生边界变形的情况下发生变形,则可以在可视化视图中看到它。这对于调试模型非常有帮助,因为您不仅可以知道问题出在哪个模型区域,而且还可以更容易地理解其原因-无需可视化大脑中正在发生的事情。
即使没有运行增量,odb也可以提供帮助的另一种方法是通过Abaqus创建的“警告”和“错误”节点和元素集来尝试帮助您进行调试。这些可以在结果树中找到(在节点和元素集下),并且可以突出显示以准确显示问题区域在模型中的位置。它们甚至被命名,因此您可以了解问题所在,例如WarnNodeBCIncorrectDOF。
还要注意的是,当使用Abaqus CAE时,工具>作业诊断将提供许多重要的信息,这些信息包含在本文前面讨论的独立文件中。但是,不应假定可以在此处找到诊断FEA模型所需的所有信息。我始终建议您直接查询诊断文件。通常可以在执行Abaqus作业的目录中找到它们。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删