首页/文章/ 详情

如何手动进行 FEA – 第 2 部分:2D单元!

29天前浏览278



您将学习如何手动对 2D 单元进行 FEA。但正如我总是指出的那样——要深思熟虑为什么要学习这个。

        在之前的文章中,描述了在简单一维杆单元的手工计算中使用 FEM 的方法。这些例子很好地展示了有限元法的基本概念。这就是为什么它们通常构成有关 FEA 的书籍的第一章。我们从那里学习了如何计算单元刚度矩阵,将它们组装成全局刚度矩阵,形成力和位移向量,然后求解线性代数方程以获得位移,从中我们可以获得应力和应变等量。

        然而,当您学习 FEA 的理论方面并解决此类示例时,在某些时候您会开始想知道:


微分方程在哪里?


        毕竟,有限元法是解决这些方程的一种方法!那么,我们怎样才能在不使用偏微分方程(PDE)的情况下解决任何问题呢?也许更重要的是,FEA 程序如何做到这一点?

        人们普遍误解这些程序直接使用偏微分方程求解。实际上,他们通常使用所谓的弱形式(太复杂和无聊,无法在这里详细讨论),这是从控制选定物理问题的偏微分方程获得的。更重要的是,他们也不直接使用这种弱形式。为了解释如何做到这一点,让我们回顾一下上一篇文章,其中我们解决了杆单元示例。

        您可能还记得,我们从简单的力学关系中获得了刚度矩阵特性。您可以对简单的一维元素使用这种直接方法。但最常见的 2D 和 3D 单元又如何呢?

它们的刚度矩阵无法直接获得,因此可以通过另一种方式计算。这就是需要偏微分方程的地方。当我们将偏微分方程、本构方程和形函数结合起来时,我们可以得到弱形式(如果我们使用变分方法,则称为泛函形式)。


        然后,我们提取刚度矩阵的公式以及特定单元类型的力矢量。其余的内容与我们在上一篇文章中看到的类似:


  • 首先,使用公式计算所有单元的刚度矩阵

  •  然后你把它们组装起来

  • 接下来,计算力矢量

  • 添加边界条件

  • 最后,你解出方程。


这就是所有 FEA 程序在实践中的运作方式。


手头的任务…



让我们继续看示例,看看如何手动完成。我们将求解一个固定在一侧并在另一侧的单个节点处受到集中力的简单 平板(平面受力构件):




我们将使用“结构钢”,因此杨氏模量为 210 000 MPa,泊松比为 0.3。

我们需要做的第一件事是离散化板。这意味着我们将把它分成有限单元。在这种情况下,两个三角形单元就足够了。由于矩阵的大小,如果没有计算机,更多的单元问题就很难解决。我们还对单元和节点进行编号:



数学慢慢开始



这种平面应力单元的刚度矩阵如下所示:


[k] = t A [B]T [D] [B]


 在这里: t – 单元厚度;A——单元的面积;[B] – 应变-位移矩阵;[D] – 材料属性矩阵;上标中的 T 表示矩阵转置。

FEA 程序对单元的体积进行积分,但幸运的是,在这种具有常量参数的简单情况下,无需这样做。您可以使用节点坐标计算单元面积。幸运的是,在这个例子中,我们可以使用简单的几何关系。我们将使用如下所示的符号:


知道上述编号后,我们可以计算线性三角形单元的应变-位移矩阵:



其中 β 和 γ 是形函数系数。您可以使用节点坐标来计算它们:

这里的关键是节点总是逆时针编号。

使用相反的节点编号也可以解决该问题。但请注意,我们在这里使用的所有公式都适用于逆时针方法。FEA 软件中也进行了同样的操作。


你可能想知道,如果有多个节点编号不同于 1,2 和 3 的单元该怎么办。我们是否按照编号的顺序(例如 16,17,19)取出它们的节点?

不,我们实际上不知道。相反,我们选择任何节点作为“第一个”,然后逆时针方向将随后的两个节点分别视为上述公式中的第二个和第三个节点。


这称为全局和本地节点编号。

        全局节点数是考虑整个计算域时给出的节点数。它们对于每个节点都是唯一的(例如 16,17 和 19)。


然后,当我们计算每个单元的矩阵时,我们使用局部编号。在这种情况下,我们将数字 1、2 和 3 指定给节点,保持逆时针编号规则。

最后,我们还需要材料属性矩阵的公式。对于平面应力,由下式给出:



 在哪里:E——杨氏模量v – 是泊松比

现在我们已经有了所有必需的公式,我们可以继续解决我们的问题了。让我们从第一个单元开始,使用本地节点编号计算其矩阵:



由于上述一切,我们终于可以计算该单元的刚度矩阵:



局部刚度矩阵中的行和列对应于全局坐标中的节点自由度。

对于第一个元素的全局节点编号,按照局部编号给出的顺序,为 1、3、2,因此该刚度矩阵中包含以下自由度 (DOF):



1(代表节点 1的x 自由度)、2(代表节点 1的y自由度)、5( 代表节点 3的x 自由)、6(代表节点 3的y自由度)、3(代表节点 2的x自由度)、4( 代表节点 2的y自由度)。



好吧……我花了一些时间来真正消化这个。


如果你明白了,请跳过下一章……下面我将进一步解释刚刚发生的事情!



添加了一个小解释!



好吧,让我们一点一点地消化这些编号规则。我将简单地陈述我们已经知道的事实,并附上一些精心制作的图像,希望这能让事情更容易看到。

事实 1:我们有一个模型,它具有全局节点编号。您已经在开始时看到了这些,这里有一个简短的提醒(全局节点编号以绿色圆圈标记):





事实 2:每个全局节点都有 2 个自由度(因为它是一个平面应力示例)。有可能会造成混淆……所以我将在全局坐标中添加一个“G”下标。整套全球坐标如下:





事实 3:在解决全局问题之前,我们将“单独”计算每个单元。为了分别求解每个单元,我们需要为每个单元分配本地节点编号。它们始终是“1、2、3”,并且按逆时针方向分配。我将使用上面的单元 1,并将本地节点编号标记为红色:


在我们继续之前……请注意一件事!当仅考虑“本地”单元 1 时,全局节点 3(左侧绿色)具有“本地”编号 2(右侧红色)。


此类编号问题将始终是一个问题。尽管只有从“1”开始对全局节点进行编号才比较棘手……因为局部节点(红色节点!)将始终按逆时针方向编号为 1、2 和 3。

事实 4:我相信您知道这是怎么回事……本地节点有其本地坐标。我们之前已经对它们进行了编号,但所有内容都集中在一处:


当然,上面的本地坐标有适合本地节点编号的下标。正如全局坐标具有适合全局节点编号的下标一样。


事实 5:现在我们准备再次看看对单元 1 的局部刚度矩阵所做的事情。当然,如果您想再次回顾一下,数学就在那里。



对我来说,棘手的部分是“行和列编号”。当然,单元刚度矩阵是在该单元的局部系统中组装的,这意味着我们最初可以这样对列进行编号:


        但这种编号方法并不是非常有用(但有序且有意义!)。它没有用,因为每个单元都有本地节点,按逆时针方向编号为 1 到 3。因此,对于每个单元,该局部刚度矩阵具有相同的行数和列数!这就是我们“返回”全局坐标的地方。我们知道全局节点号是什么,因此我们可以用“适合”全局系统的行和列“映射”上述矩阵。


        正如您在上面所看到的,在我们的示例中,节点 1 在本地坐标和全局坐标中具有相同的编号(顺便说一句,完全不必如此!)。本地节点 2(红色)是全局节点 3(绿色),本地节点 3(红色)是全局节点 2(绿色)。

这意味着,根据上面的内容,我们可以添加:



一直使用下标不太舒服。这就是为什么我们将使用“正常数字”来对全局自由度进行编号。简单的说:x 1 将是“1”;y 1 将是“2”;x 2 将是“3”;y 2 将是“4”;x 3 将是“5”;y 3 将是“6”;x 4 将是“7”;y 4 将是“8”。

以上适用于全局自由度,因此适用于上面以绿色标记的自由度。如果我们简单地用数字替换符号,我们将得到所示的刚度矩阵:



好吧……我希望现在编号已经清楚了:)

现在让我们再次计算第二个单元分配本地编号的矩阵。材料属性矩阵将与第一个元素的材料属性矩阵相同,因为它们由相同的材料制成:


再次感谢上面的内容,我们可以构建第二个单元的刚度矩阵,如下所示:


对于第二个元素,以下全局编号的节点属于该元素:1、4、3。所以这里的 DOF 是:1(代表节点 1的x 自由度)、2( 代表节点 1y 自由度)、7( 代表节点 4x 自由度)、8( 代表节点 4y 自由度)、5( 代表节点 3x 自由度)、6(代表节点节点 3y 自由度)。


希望此时绿色数字并不令人意外!


请注意,单元 2 在 GLOBAL 节点 1 中的 LOCAL 节点编号为 1。这意味着,本地节点 2(记住,始终逆时针)将位于全局节点 4 中,本地节点 3 将位于全局节点 3 中。


其余的工作就像我之前描述的那样。


下一阶段——全局刚度矩阵



由于我们拥有两个单元的刚度矩阵,因此我们可以继续下一步 - 将这些矩阵组合成全局刚度矩阵。

我们只需将适当的项相互添加并形成一个新的 8×8 矩阵即可做到这一点。例如,从第一个局部刚度矩阵中获取 25 th 元素(第 2 列第 5 行 - 使用基于全局自由度的编号),并将其添加到第二个局部刚度矩阵的相应元素中以获得 25全局刚度矩阵的 th 元素。



这是此操作的结果:




上面的这些听起来像是咒语吗?


别担心——你已经知道需要做的一切了。但为了确定起见,我们在这里也添加一个简单的解释。


到目前为止,我们有两个局部刚度矩阵(每个元素一个)。我们已经设法将这两个矩阵中的行和列“分配”到全局坐标(绿色数字)。两者看起来都是这样的:

现在,我们需要做的就是制作一个 8×8 的全局刚度矩阵。我们的模型总共有 8 个全局自由度。这就是为什么我们的全局矩阵是 8×8。这些将是列和行中从 1 到 8 的“绿色”自由度。像这样:



很酷的是,我们有一个全局刚度矩阵。糟糕的是,它是空的!幸运的是,Jakub 已经解释了如何填充它。


您所需要做的就是从同一行和同一列中获取数字(全球坐标,所以绿色数字!)并将它们加在一起。然后将结果放入全局刚度矩阵的同一行和同一列中。

如果你制作一个图形,其实很简单:


完成此操作后,我们应该确保矩阵关于其对角线对称。然后,我们可以通过划掉与这些 DOF 相关的列和行来消除受约束的 DOF (1,2,3,4)。




我们来计算一下位移吧!



现在需要求解的方程是:


[K] {u} = {f}


 在这里:{u} – 位移向量     {f} – 外力矢量


为了求解这个方程,我们求刚度矩阵的逆矩阵:


{u}=[K]-1 {f}

上面的结果是:


– 节点 3,x 位移:u 5 = 0.03 mm

– 节点 3,y 位移:u 6 = -0.154 mm

– 节点 4,x 位移:u 7 = -0.03 mm

– 节点 4,y 位移:u 8 = -0.153 mm



最后,应力和应变!



当然,我们可以使用这些节点位移来计算应变和应力:


{ε} = [B] {u}


{σ} = [D] {ε} = [D] [B] {u}


 应力是:


  •  对于第一个单元:


  •  对于第二个单元:




通过将结果与使用开源 FEA 求解器 CalculiX 获得的结果进行比较,证实了结果。他们的结果完全一致。显示位移的截图如下所示:




正如您所看到的,即使在如此简单的情况下,手动计算也确实很费力。即使有两个三角形元素,矩阵也会变得相当大。却让我们可以了解 FEA 软件在线性静态平面应力分析中的实际工作原理。

如果这是一个“设计案例”,那么这些问题迫切需要答案:



        当然,我非常清楚这一点!我完全理解这篇文章的目的不是给你这些答案......而是向你展示求解器如何进行数学计算。


        但在一个很多人都觉得“ FEA 中全是数学”的世界里,这可能是我唯一的机会向您展示,设计不仅仅是 数学问题!这就是我在这里提到它的原因!



来源:ABAQUS仿真世界
理论材料控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-10-26
最近编辑:29天前
yunduan082
硕士 | 仿真主任工程... Abaqus仿真世界
获赞 153粉丝 219文章 313课程 0
点赞
收藏
作者推荐

一文了解Abaqus中的运动副/连接器单元

连接器单元是Abaqus中我最喜欢的元素类型之一。它们用途极其广泛,如果您在模型构建过程中正确设置它们,还可以节省后处理时间。在本文中,我们将介绍如何使连接器单元和不同的连接类型可用。为什么使用连接器单元?FEA中有无数涉及两个或多个连接在一起的零件的建模问题。有时,连接很简单,一个简单的关系约束或RBE2就可以完成这项工作。但是,如果您尝试对具有停止机构的减震器进行建模,或者尝试对数百个开槽销进行建模,而对销进行物理建模的计算成本会很高,该怎么办?诸如此类的问题以及更多问题都可以通过使用连接器元件来解决!如果您已经熟悉多点约束(MPC),那么连接器元素非常相似,因为它们都对模型施加运动学约束。然而,与MPC不同,连接器元件不会消除自由度。相反,运动学约束是通过拉格朗日乘子来强制执行的。这效率较低,但作为回报,它们能够返回力和力矩输出,并提供其他功能,例如加载和阻尼——仅举几例。在AbaqusCAE中构建连接器首先,我们必须创建连接器部分。在交互模块中,创建一个连接器部分,然后您可以选择连接类别和连接类型。最后,您可以添加连接器行为。我们将在本文后面介绍连接行为和类型。创建连接器部分后,我们现在可以使用连接器构建器来创建连接器元素。首先,选择要连接的两个参考点。如果您选择几何点或基准点,连接器构建器将为您创建参考点。此外,您还可以选择连接到地面,而不是选择第二个点。该选项可用于制作接地弹簧或阻尼器。选择两个点后,您可以选择连接器部分和连接器的方向。对于我的示例,我让连接器构建器创建一个坐标系作为两点之间的轴:我们始终可以在连接器部分分配管理器中更改连接器部分和方向。您还可以将连接器部分分配给预先存在的连线,而不是使用连接器生成器,但我认为使用连接器生成器要方便得多。连接器类型库Abaqus提供了许多不同的连接类型,可以允许连接器行为或运动学上约束相对运动的不同组件。这些总结如下表:绿色单元格显示可用于定义连接器行为、连接器运动或连接器负载的相对运动分量,红色单元格显示相对运动的运动学约束分量。白色单元格既不可用于定义连接器行为/运动/负载,也不可用于运动学约束。在下面的部分中,我们将介绍每种连接类型的连接类型图以及何时使用每种连接类型。这将是非常高的水平;有关每种连接类型的完整详细信息,请参阅Abaqus文档。您还可以通过单击连接器部分创建页面中的灯泡符号来查看AbaqusCAE中的连接类型图。加速度计此连接类型仅在AbaqusExplicit中可用。它用于测量两点之间的相对位置、速度和加速度。对齐此连接类型限制两点之间的所有旋转。轴向当相对位移沿着分隔两个节点的线时使用此连接类型。这对于弹簧或阻尼器等连接很有用。梁这种连接类型在运动学上限制相对运动的所有分量。这是一种多功能连接类型——其中一个应用是螺栓的快速建模。如果您只想拉动螺栓力而不考虑预紧力,那么梁连接器可以解决问题!衬套这种连接类型具有可用的相对运动的所有组件。对于无法进行物理测试的情况(例如汽车控制臂),这是一种近似可变形连接的好方法。Cardan万向副此连接提供两个节点之间的旋转连接,其中相对旋转由万向角(偏航-俯仰-滚动)参数化。笛卡尔此连接提供两个节点之间的连接,其中在三个本地连接方向上测量位置变化。这对于正交各向异性连接非常有效。恒速这种连接类型固定两个接头之间的角度。等速万向节这种连接类型与等速连接器相同,但它也限制所有平移。顾名思义,它的最佳应用是对车辆上的等速万向节进行建模。圆柱副这种连接类型允许扭转和平移,但限制相对运动的所有其他分量。这是对引脚进行建模的好方法。欧拉此连接类型提供两个节点之间的旋转连接,其中相对旋转由欧拉角(进动-章动-自旋)参数化。屈曲-扭转这种连接类型模拟两轴之间圆柱形联轴器的弯曲和扭转。不是代表三个连续的旋转,而是分别测量弯曲角、扭转角和扫掠角。流量转换器这种连接类型将连接器的两个节点之间围绕用户指定的轴的相对旋转转换为连接器元件的第二节点处的材料流动自由度。带或电缆材料被认为缠绕在轴或滚筒上,并且材料可以卷入或卷出连接器元件。它可用于安全带和绞车类设备中的电缆卷筒等应用。合页/转动副这种连接类型仅允许沿其轴线旋转。它可用于门铰链、车轴和吊桥等应用。Join球铰这种连接类型使得两个节点的位置相同。它可用于对球窝接头进行建模。关联这种连接类型在两个节点之间保持恒定的距离。它可用于对连接杆和拉紧的提升吊索/链条进行建模(假设没有压缩)。平面这种连接类型在三维分析中提供了局部二维系统-结合了旋转和滑动平面连接类型。它可用于建模滑动约束。ProjectionCartesian投影笛卡尔这种连接类型与屈曲-扭转非常相似。然而,报告了两个分量屈曲角,而不是一个屈曲角和一个后掠角。径向推力牵开器此连接类型结合了连接和流转换器连接类型。它可用于安全带和绞车类设备中的电缆卷筒等应用。转动副此连接类型提供两个节点之间的连接,其中旋转围绕两个局部方向受到约束,并且围绕共享轴自由。这提供了铰链和圆柱连接类型的旋转部分,但它本身没有太多用处。回转此连接类型提供两个节点之间的旋转连接,其中相对旋转由旋转矢量参数化。如果定义连接器行为,通常首选Cardan或Euler;然而,旋转与规定的连接器运动结合起来效果很好。旋转加速度计此连接类型仅在AbaqusExplicit中可用。这用于测量两点之间的相对角位置、速度和加速度。滑翔机这种连接类型将节点b保持在由节点a的方向和节点b的初始位置定义的平面上。这是对未固定在地板上且摩擦力较低的结构的脚进行建模的好方法。滑环slot连接器这种连接类型仅允许沿一个方向平移。这对于任何开槽连接都非常有用。移动副此连接类型在所有方向和旋转上约束两个节点,除了沿着连接它们的线之外。这种连接类型非常适合对导轨连接(例如抽屉滑轨)进行建模。U型接头通用连接器这种连接类型固定绕一个局部方向的旋转并释放其他两个方向。每当您需要约束单个旋转时都可以使用此功能。焊接连接器行为Elasticity:弹性:此行为允许为相对运动的可用组件设置类似弹簧的弹性行为。Friction:摩擦:此行为允许为相对运动的可用分量定义摩擦效应。例如,如果使用连接器对槽中的引脚进行建模,则引脚和槽之间的界面处可能会存在一些摩擦。Stop:停止:此行为设置相对运动分量方向上的位置上限和下限。例如,车辆中的减震器在触底时具有一定的长度,因此可以使用停止行为来设置该触底值。Lock:锁定:如果满足任一条件列表,此行为允许连接器锁定。您可以设置一旦满足锁定标准,是否锁定相对运动的全部或部分分量。安全带中的速度锁定标准就是一个例子。其他可以设置的锁定标准包括力、力矩和位置。Failure:失效:如果相对运动分量、力或力矩变得太大,这种行为会导致连接器断裂。当满足失效准则时,相对运动的所有分量将被释放。ReferenceLength:参考长度:这可以设置相对运动的可用分量的本构力和力矩为零的平移或角位置。当参考位置与模型中的初始位置不同时,应将其与弹性或摩擦行为结合使用。Integration:集成:此行为仅在AbaqusExplicit中可用。默认情况下,连接器本构行为是隐式积分的,这不会以任何方式影响分析的稳定性或时间增量。然而,通过对用连接器建模的“软”弹簧使用显式时间积分,计算性能可能会略有提高。连接器驱动除了上述行为之外,您还可以向具有可用相对运动分量的连接器元素施加力和位移。可以从载荷菜单应用连接器力和力矩,可以从边界条件菜单应用连接器位移和速度。输出连接器单元结果在AbaqusCAE中,您可以在步骤模块中请求连接器元素输出。将域更改为包含连接器元素或连接器电线的集合,然后连接器输出变量将在字段/历史输出请求框中变为可用。可用的输出变量包括力、力矩、位移和旋转。请注意,对于历史输出和*_LOCAL字段输出,结果将遵循连接器的固有坐标系。对于不以_LOCAL结尾的字段输出,结果将遵循连接器第一个节点的方向。这些都不一定与模型的全局坐标系对齐。这是连接器元件真正大放异彩的一个领域。如果将*ELPRINT添加到输入面板,则可以将连接器元素历史输出直接输出到.dat文件。想象一下能够将模型中的所有螺栓力复制到表中,甚至无需打开.odb!综合应用在这里,我们有一个小型张拉整体桌子的模型,由两块木板和五根预张紧电缆连接而成,给人一种桌子是漂浮的错觉。当主要负载通过中心电缆时,四个角电缆有助于稳定工作台。所有电缆均使用具有弹性属性和参考长度的轴向连接器(仅适用于CU1)进行建模。弹性属性的设置使得如果连接器低于其参考长度(也称为电缆受到压缩),它们将不再反作用轴向力。中心电缆上的连接器结合了轴向连接器和万向连接器,但没有对相对运动的旋转分量设置行为。焊接连接器(约束相对运动的所有组件)用于测量从工作台底部传递到受约束地板的载荷。所有连接器元件均使用RBE3连接至接触片。关于这些结果的一些观察:元件6的连接器力输出正是我们所期望的,基于连接器X中施加的负载(30+5+0.37(木块的重量)),它对应于全局Y;连接器Z中的5,它对应于全局X)。总结当然,掌握连接器元件的使用需要练习和经验。但真正热爱的CAEr喜欢做的事情莫过于构建具有数百个连接器元件的复杂FEA模型!来源:ABAQUS仿真世界

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈