山东建筑材料网络社区

『翻译连载(一) 建立模型』如何从有限元模型分析中获得有效且正确的结果?

只看楼主 收藏 回复
  • - -
楼主
  

/Martin Bäker    /CAE仿真空间

(CAE仿真空间微信公众账号:cae_space)

现如今有限元软件让我们在进行仿真工作时变得很简单,也许可以说是非常简单。因为你有一个非常漂亮的图形交互界面去引导你对有限元模型进行创建、求解和后处理,似乎看起来并不需要去了解过多的有限元程序的内部工作过程以及底层的理论。然而,在不了解有限元的情况下去建立分析模型,就好比没有飞行员执照去驾驶一架飞机。你可能能够安全着陆,但是着陆点并不是你希望的地方。

这篇文章并不是专门介绍有限元理论的。它是一份能够提供你一些建议,帮助你正确的建立、求解和后处理有限元模型的指南。本文中所涉及的技术都是基于ABAQUS软件,但是它们大部分都能够迁移到其他软件中。


事先给出一些通用的建议:

即使你的设计仅需要一些数据,但你仍需要切记有限元分析的主要目的就是去理解这个系统。通过进行仿真,你至少能够对结果进行定性的判断。当然,永远不要相信仿真结果,除非你对结果的合理性进行过深入思考。


1建立模型

1.1 通用原则

1.1.1 将仿真的目标说明的越准确越好。需要解决哪个问题?哪些量需要计算?哪些结论是你想从仿真中获取的?

1.1.2 基于前一步中的考虑,明确哪些因素确实需要进行仿真,尽可能地保证模型简单。例如,你只是想知道某一金属结构哪些部位超出了屈服应力,那么只需要进行弹性计算并在后处理中查看应力结果,没必要在模型中考虑塑性问题。

1.1.3 在你的计算中有哪些是需要精确值的?你是需要一个估计值还是精确值?(参考1.3.1)。

1.1.4 如果你的模型很复杂,分多步建模。可以从简单材料、无摩擦等方面入手考虑。分步骤建模有两个优势:(i)如果报错,很容易找出问题点;(ii)这种方法能够更好地了解系统的行为,因为你比较清楚增加了哪些条件导致模型发生哪些变化。

1.1.5 注意单位。大部分有限元分析软件(如ABAQUS)都默认无固定单位的。它们默认所有你给的参数都无需通过额外的转换系数就能够统一。你不能够在你的几何模型中使用mm作单位,但是在其它地方却使用SI单位制(m为长度单位)。


1.2 基本模型定义

1.2.1 选择正确的分析类型。动态仿真需要有惯性力存在(弹性波)。如果和惯性力无关则使用静态分析。

1.2.2 显示计算方法是针对动态动态问题的。在一些情况下,显示计算也能够很好地解决准静态问题的收敛性。在准静态问题分析中如果使用质量缩放,你需要仔细的检查确保系数对结果没有影响。改变缩放因子(名义密度)应确保对整个模型的动能影响很小。

1.2.3 检查边界条件和约束。计算结束后在后处理阶段花一定时间检查节点是否都按要求被约束。

1.2.4 在静态或准静态问题分析中,确保模型中所有部件都被约束而没有刚性位移(在接触问题中,需要采用特殊的接触稳定技术确保模型中的接触在建立之前有合理的运动行为)。

1.2.5 充分利用模型对称性。在2D模型中,考虑平面应力、应变或者广义平面应变是否存在对称性。切记载荷和边界都必须满足对称性。

1.2.6 严格检查是否需要打开几何非线性选项。根据经验,当应变超过%5的时候需要打开。如果载荷随着结构转动(想象一下鱼竿,开始时处于弯曲状态,当它开始变形后处于拉伸状态),通常被视为几何非线性。如果存在疑问,可以对两种情况下的仿真进行对比。

1.2.7 集中载荷加载于某个节点上可能导致邻近的单元出现不真实的应力值。特别是当材料或者几何为非线性的情况下。如果存在疑虑,可以将载荷分布加载到多个单元上(有必要的话可以对单元局部重新划分)。


1.3 输入数据

1.3.1 仿真的准确性由输入数据所决定。这对材料属性来讲尤其如此。仔细考虑你的材料数据实际上有多准确?有多大的不确定性?如果有疑虑,改变不同材料参数来探究这些因素对分析结果产生什么的影响。

1.3.2 对不同来源的材料数据进行整合的时候确保它们来源于同一类型材料。对金属材料,不要忘记检查热处理的影响;对陶瓷材料,粉末大小及处理方式都可能影响其属性;对于一些聚合物,链长以及增塑剂的含量都是非常重要因素。仔细记录材料数据的来源并检查其一致性。

1.3.3 当推算材料数据时需要非常仔细。如果数据仅仅被简单的关系所描述(如塑性应变中的Ramberg-Osgood定律),那么实际的材料行为可能与此并不相符。

1.3.4 切记有限元分析软件通常对所给材料数据之外的部分并不能进行推算。如果塑性应变超出最大许用值,通常就不再考虑材料进一步的硬化。这个同样适用于热膨胀系数随温度增大而增大的情况。不同的材料使用不同划分范围可能导致错误的热应力。

1.3.5 如果材料数据是通过方程给定的,需要注意参数可能并不唯一。通常来说,数据可以通过不同的参数来拟合。如图所示,利用数值(130,100,0.5)和(100,130,0.3)对(A,B,n)绘制了简单的硬化理论曲线,如图1。

图1 A/B/n不同取值下的曲线

1.3.6 如果无法准确的获得材料的行为,有限元仿真照样能够帮助理解材料行为对系统的影响,可通过改变参数来观察系统的响应。

1.3.7 检查外部载荷。热负荷可能是一个非常特殊的问题,因为热传导系数和表面温度很难测量,对材料也是如此。

1.3.8 如果改变参数(如几何部件或者材料),确保正确的考虑了外部载荷由此发生的变化。如果外部载荷是压力,那么增大表面积就增大了压力。如果你改变了材料的热传导率,那么通过结构的全部热量也就发生了改变,你可能需要同时指定热负荷情况。

1.3.9 摩擦行为和摩擦系数经常是未知的。检查你使用的参数以及所使用的摩擦理论是否正确——并不是所有的摩擦都采用库伦摩擦理论。

1.3.10 如果某个参数是未知的,你可以通过改变参数值直到仿真和试验数据一致,或者使用数值优化方法(这个也叫反向参数识别)。需要注意的是用这种方法时,使用的实验数据并不能用来检验你的模型(参考3.3)。


1.4 单元类型的选择

注意:单元类型的选择是建立有限元模型的关键一步。不要想当然的就是采用软件的默认设置。仔细分析应该使用哪种单元类型,并确保知晓所选单元类型对仿真的影响。你需要了解单元阶次和积分点(高斯积分)的概念,并且熟悉常见的因为单元类型选择而导致的错误(剪切自锁,体积自锁,沙漏效应)。

下面是对正确选择单元类型给出的一些指导建议:

1.4.1 如果是线弹性问题,使用二阶单元。缩减几分单元能够在不影响结果精度的情况下节省计算时间。

1.4.2 如果结构存在弯曲,不要使用线性完全积分单元(剪切自锁)。非协调单元可以规避这个问题,但是主要依赖单元的形状(扭曲度)。

1.4.3 如果使用线性缩减积分单元,需要检查沙漏问题。沙漏问题只可能出现在三维结构中并且很难发现。通过放大变形显示能够帮助更好的发现沙漏问题。大部分软件使用数值方法去抑制沙漏问题,但是可能因人为阻尼的设定影响结果。因此,需要检查能量的损失,确保相比模型总的内能占比较小(一般1%以内)。

1.4.4 接触问题中,一阶单元能提高收敛性。

1.4.5 在某些情况下线性单元能够更好的反映应力或应变的连续性。

1.4.6 如果单元扭曲严重,使用一阶单元会比二阶单元更好。

1.4.7 避免使用三角形或四面体一阶单元,尤其是弯曲变形中,它们刚度偏大。如果你不得不使用这类单元(一般较大的几何较复杂的模型),可细化网格并仔细检查网格收敛性。当然也可以考虑对几何模型切分,采用四边形或者六面体网格进行划分能达到较好效果。

1.4.8 如果不可压缩或者几乎不可压缩材料,采用杂交单元以避免体积自锁。如果塑性变形过大也可以使用杂交单元,因为塑性问题也满足体积守恒。

1.4.9 不要使用不同阶次的混合单元。主要由于在连接部分即使没有控制节点也可能产生单元重叠或间隙(如图2,后处理可能不显示)。如果非要使用不同阶次混合单元在模型中的不同区域,使用一个面约束在连接部位进行绑定。主要连接面可能导致不连续应力和应变,因为单元类型不同使得刚度不同。

左:二阶单元  右:一阶单元

图2 不同阶次单元混合使用导致非物理上的变形(间隙或重叠)

1.4.10 原则上,允许混合使用相同阶次的缩减积分和完全积分单元。然而,由于它们刚度不同,可能产生错误的应力应变。


1.5 生成网格

1.5.1 尽可能使用四边形或者六面体网格。对3D模型划分这类网格比较费力,但通常付出是值得的(见1.4.7)。

1.5.2 当应力应变梯度过大时考虑在该位置细化网格。

1.5.3 网格划分的疏密取决于你希望提取的结果量。例如位移通常比应变计算的更精确,因为应变还与各节点的位移值有关。(这句话我的理解是计算位移形变网格可以划分疏一些,但是考虑应力应变则需要密一些)。

1.5.4 在初始的仿真进行时,可以采用粗画网格来识别模型中哪些区域需要进行高密度处理。

1.5.5 检查单元形状和尺寸。单元角度与理想单元之间不能偏离太多。通过网格质量检查工具来高亮判断有问题的单元。注意某些问题区域可能位于3D模型组件内部而不易被看到。

1.5.6 如果使用局部网格细化,在不同网格尺寸的区域之间过渡应该平滑。通常来讲,附近区域的单元尺寸与区域内尺寸最好不要相差超过2~3倍。如果相差过大,可能导致在该区域出现错误的应力值,而且细化的网格也容易被粗糙网格所约束。(举个极端例子,仅被四个单元包围的二次单元区域,无论内部网格如何细化,整个变形只能如同平行四边形一样)。


1.6 接触设置问题

1.6.1 正确设置主、从面。通常刚度大(以及网格粗糙)的面可设为主面(这里我自己理解和经验原则就是:保证主面刚度大,网格粗,面积大,如果存在冲突,优先级也按照这个顺序)。

1.6.2 单个节点接触或者在面的边角处存在滑动的情形可能出现接触报错。可以对几何面进行光顺细化处理。

1.6.3 主面单元节点可以穿透从面,对从面进行光顺处理细化网格可以减少这种情况,如图3所示。

图3 左:主面尖角上的节点可能穿透从面   右:光顺细化从面网格后的圆角穿透减少甚至消除

1.6.4 如果接触面中存在曲面,通常一些离散误差的存在是不可避免的。对于一个主-从面接触算法,穿透和材料重叠是最普遍的问题;

1.6.5 保证在接触建立之前模型的刚性位移被排除。可以考虑增加额外特定的约束或者使用接触稳定设置尝试处理。

1.6.6 接触中使用二阶单元容易出现问题。如果出现报错,尝试一阶单元看看。


1.7 其它考虑

1.7.1 如果对有限元分析不熟悉,从简单模型开始,不要一开始就建立复杂模型。在这个过程中确保你理解了各个操作起什么作用,不同的设置选项使用哪些是比较好的。如果没有长久的经验积累也事先无法对结果做出预判的话,是很难从复杂模型中找到引起报错的问题点的。

1.7.2 软件程序中许多参数如果不需要你特别给定的,一般采用默认就行。但是你需要检查一下这些默认设置是否正确,尤其是当这些默认参数对你的结果有很大影响的时候(像单元类型、材料设定等)。如果你实在不清楚这些参数的含义也不知默认是否合适,那就参考帮助手册。有些参数只是对求解效率有影响(如使用哪种方法求解矩阵方程),像这样的参数并不是很重要,因为就算选错了也不会对最终结果有太大影响。

1.7.3 最新的有限元分析软件包含了很多复杂的新的技术(XFEM,单元生死、节点分离、自适应网格划分、耦合欧拉-拉格朗尔方法、SPH粒子生成法、流-固耦合、用户自定义子程序等)。如果你想使用这些技术,最好能够先理解并在简单模型上测试,可以建立一个很简单的基础模型,然后逐步施加外部工况实施上述技术。在演示中很酷炫的仿真都是经过专家仔细筛选的,它对上述方法的学习并不一定是最典型适用的。


ISO的朋友可以往这里砸碎银,攒钱抗暑过冬!


举报 | 1楼 回复