形状函数 — CAE术语解说
形状函数的理论基础
形状函数的定义与作用
形状函数,教科书中说"从节点值补间要素内任意点的物理量的函数",但具体是在补间什么呢?
好问题。最基本的是位移场的补间。例如,在一维二节点杆单元中,要素内任意点x处的位移u(x)使用节点1的位移u1和节点2的位移u2表示为
当然,我们不仅需要计算位移,还需要计算应力,对吧?如何从形状函数求出应力?
这时就轮到形状函数导数发挥作用了。在一维杆单元中,应变ε是位移u的导数,所以
我听说过"C0连续"和"C1连续"这样的说法,这与形状函数有关系吗?
关系很大。C0连续是指函数本身(位移)连续,但其一阶导数(应变)可以不连续。大多数固体单元(三角形、四边形、四面体、六面体)都采用这种方式。而C1连续要求函数的一阶导数也连续。在板和壳的弯曲分析中需要挠度角的连续性,所以使用MITC4或DKT等特殊形状函数。商用软件如Ansys的SHELL181要素和Abaqus的S4要素都处理了这一问题。
形状函数的数值计算方法
等参数化要素与坐标变换
实际应用中的要素是弯曲的,这样如何定义形状函数呢?
这就引入了"等参数化要素"的概念。它是指用"相同的"形状函数对要素的几何形状(坐标x、y、z)和所求的物理量(位移u、v、w)进行补间。例如,在二维四节点等参数化四边形要素中
在自然坐标中求导可能简单,但要计算实际的应变,需要在实坐标(x,y)中求导,对吧?如何进行变换?
使用链式法则和雅可比矩阵进行变换。具体来说
我听说在高斯积分点处评估应力,为什么是积分点而不是节点?
形状函数的导数(B矩阵)在要素内不同位置处值不同。刚度矩阵的计算通过数值积分(高斯积分)对包含B矩阵的式子进行积分。B矩阵在这些积分点处被计算,结果是应力、应变也先在积分点处计算。节点处的值是从积分点的值使用形状函数外推(平滑化)得到的。因此,积分点的应力是最可信赖的。Ansys结果中"单元解"和"节点解"的区别就来自这里。
形状函数的实务应用
要素选择与网格质量
在实际分析中,一次要素和二次要素应该如何使用?
应用和折衷方案取决于用途。一次要素(线性形状函数)节点数少,计算成本低,但要表现弯曲和应力集中需要非常细的网格。而二次要素(二次形状函数)有中间节点,能用较少的要素数以高精度捕捉曲线形状和应力梯度。但节点数约增加2倍,计算成本增加数倍。在实务中,接触问题更倾向于使用一次要素(更稳定),而对应力评估很重要的区域使用二次要素的混合网格很常见。Abaqus手册建议应力分析使用C3D20(二次六面体),但对于大规模模型,C3D8R(一次六面体、低减积分)也被广泛使用。
在网格质量检查中会看"纵横比"和"扭曲度",这些与形状函数的性能有什么关系?
有直接关系。形状函数是基于理想的正方形或正三角形推导出来的。纵横比极大(细长)的要素会使雅可比矩阵的条件数恶化,形状函数导数(B矩阵)的精度明显下降。具体来说,当纵横比超过10:1时,特别是对一次要素,应力误差可能达到百分之几十。扭曲度大的要素也一样。Ansys Meshing或HyperMesh的质量检查标准(纵横比<5、斜角<60度等)是在形状函数能够适当发挥作用的范围内根据经验确定的。
"低减积分"与"完全积分"的选择也与形状函数有关吗?
关系很大。当形状函数是n次多项式时,刚度矩阵的被积函数是2n次。"完全积分"就是精确积分这个。例如二次要素需要3×3的高斯积分点。而"低减积分"使用较少的积分点(二次要素为2×2)。计算成本下降,但会产生零能量变形(沙漏模式)的风险。为了防止这种情况,采用"沙漏控制"。Abaqus要素名末尾的"R"(例:C3D8R)表示低减积分。在实务中,低减积分要素通常更软,接触的收敛性更好。
形状函数的软件比较
各求解器的实现与特点
Ansys、Abaqus、COMSOL在形状函数的概念或要素指定方法上有区别吗?
数学基础是相同的,但要素库和默认设置差异很大。Ansys Mechanical提供大量要素类型,用户可以细致地选择(例:SOLID185、SOLID186、SOLID187)。Abaqus/Standard的抽象化程度略高,指定要素族(例:C3D8:三维8节点),然后通过"要素特性"事后添加积分规则或连续性条件。COMSOL Multiphysics遵循"物理场驱动网格"的理念,根据选择的物理场(结构力学、电磁等),求解器倾向于自动提出并选择合适的形状函数次数。用户很少有直接操作形状函数的机会。
我听说过"p型有限元法",这也是形状函数不同吗?
完全正确。它与常规的h型有限元法(缩小要素尺寸h)从根本上不同。p型有限元法不改变要素分割,而是通过提高形状函数的多项式次数p来提高精度。COMSOL积极采用这种方法。形状函数通常不是分段多项式,而是正交多项式(如勒让德多项式)。优点是无需重新生成网格就能提高精度。缺点是次数提高时计算成本急增,特别是对非线性问题,收敛性容易恶化。Ansys和Abaqus并非主流方式,但在某些专业领域(如电磁场分析)被使用。
在CalculiX或Code_Aster等免费软件中,形状函数的实现与商用软件相比如何?
CalculiX(考虑与Abaqus的兼容性)和Code_Aster(法国电力EDF开发)的等参数化要素和低减积分等基本形状函数实现与商用软件相同。但在要素库的丰富程度、以及高度非线性材料模型和接触算法与形状函数的结合优化和验证积累方面,Ansys和Abaqus占优。例如,在过度变形下的要素稳定化技术(沙漏控制、体积锁定对策)中,商用软件通常更完善。免费软件虽然理论上有实现,但用户需要通过参数调整自己应对。
形状函数的故障排除
由形状函数引起的分析错误
分析中出现"零或负雅可比行列式"错误,这与形状函数有关吗?
这正是与形状函数坐标变换核心相关的错误。它表示先前讨论的雅可比矩阵[J]的行列式变为零或负。这意味着要素形状极度扭曲,自然坐标到实坐标的映射变得不唯一。具体来说,四边形要素的内角超过180度并反向,或四面体要素的体积变为零时会发生。在大变形分析中要素大幅变形或初始网格质量极差时容易发生。对策包括改进网格质量、重新检查大变形设置(改变要素公式)或使用Abaqus的"扭曲控制"等功能。
看应力结果时,有时会在要素边界处看到缝隙或跳跃。这也是由形状函数引起的吗?
完全正确。C0连续要素虽然位移连续,但其导数(应变、应力)在要素边界处可能不连续。这就表现为"要素边界应力的跳跃"。这不是误差,而是离散化的必然特性。软件通常在求节点处应力时,通过对相邻要素的积分点应力进行平均化来平滑化。过度平滑化会无法反映实情。对策是细化网格或使用高次要素。评估结果时,应检查积分点应力(Abaqus中的"积分点"输出),确认要素间的差异在允许范围内,这是正确的步骤。
我也听说过"沙漏"现象。这是形状函数的什么问题导致的?
这是低减积分要素特有的问题,源于形状函数无法捕捉"零能量变形模式"。在一次低减积分六面体要素(单点积分)中,某种特定的变形模式(沙漏模式)产生时,积分点处的应变能量计算为零。也就是说,形状函数与低减积分的结合导致刚度矩阵秩不足。商用软件通过添加人工刚性(沙漏刚性)来应对。Ansys中有"沙漏控制",Abaqus中有"沙漏刚性"的设置。设置值过大会导致要素过硬,过小则会产生沙漏。使用默认设置是最稳妥的。
据说使用四面体网格精度会很差,这是形状函数的原因吗?
主要原因与形状函数特性有关。一次四面体要素(4节点)称为"等应变要素",要素内应变、应力为常数。这不适合表现陡峭的应力梯度,需要非常细的网格。二次四面体要素(10节点)有所改善,但与相同自由度的六面体或四边形要素相比精度往往较低。这源于要素的几何特性和形状函数的结合。然而,复杂形状的自动网格生成必须使用四面体。实务对策是使用改进型要素,如Abaqus的C3D10M(修正二次四面体),并在需要应力评估的区域局部细化网格。
相关主题
帮助
了解更多
报告