FEM - HEX20 的形状函数 - MATLAB 中的绘图

计算科学 有限元
2021-11-29 09:16:17

我有一个带有 HEX20 网格的带孔(拉伸载荷)的简单板的 FE 模型。我需要获得其中一个元素(应力最高的那个)的形状函数并绘制它(使用 MATLAB)。之后我会找到应力梯度。

我的问题是:如何获得 HEX20 元素边缘之一上 3 个节点之间的应力值?我确定这是通过形状函数完成的,但我不知道如何在实践中做到这一点。我只知道如何检查节点上的应力值...

1个回答

有限元解一般用基函数的线性组合表示:

uh(x)=i=1Nαiϕi(x)
在哪里αis 是您求解的节点值,ϕi(x)s 是您预先选择的功能。为了评估uh在一些节点之间,假设你已经解决了所有αis已经,你需要找到位置x您想要评估并插入上述等式。

现在一般来说,基函数具有紧凑的支持,因此您不需要在整个网格上评估上述总和,而只需在支持元素(即包含有问题的边缘的元素)上评估。此外,基函数通常被分解为已知的形状函数,并且在每个元素上都是相同的,因此可以相对容易地为它们命名以供将来参考(即 HEX20)。

现在问题变成了,压力是您方法中的原始变量,还是您必须通过对解决方案求导来推导出它?如果您必须取导数,您的方法是否在所讨论的边缘上具有连续导数,或者取上述总和的导数会导致多值答案?如果是后者,您可能必须使用某种投影/恢复方法来获得该边缘压力的单值答案。

一旦你知道你想要什么,你就可以查找形状函数并在你关心的点上评估它们,以总结解值或其导数。如果您使用的是诸如 NASTRAN 或 ABAQUS 之类的软件包,您可能只需要让它告诉您您感兴趣的值。它会使用它知道的最佳方法来计算它们。