可以手动进行有限元计算吗?当然是可以的。真正的问题是,为什么要手动计算呢?当然是为了验证,做到心中有数,让我们看一下如何做到这一点!
简单的示例
我认为每本FEA相关的书籍或指南都以相同的方式开始。虽然它们更多地是关于FEA的工作原理,但这是同一回事。
通常,这种入门的案例都是以最简单的杆件开始,通常是这样的:
确实。上面是最简单的元素:一个单自由度的“弹簧”。我的意思不仅是说这是一维梁元件(当然包括在内!)。同样重要的是,我们的元件只能承受拉力或压力。我们“看到”的唯一变形是沿着单元的长度。
为什么这很重要?好吧……首先,因为这样的元素不会“看到”弯曲或剪切。它只承载着拉力或压力,仅此而已!
这使问题变得简单,并且在这种情况下我们可以轻松地应用公式!让我们来看看!
首先,您应该很容易知道一些基本方程式。我唯一要做的是,根据上图,杆的伸长量为u2-u1。从技术上讲,这可以有不同的定义,因为它仅取决于您认为“正方向”的情况。但是,以上设置似乎是最“流行”的(至少就解释而言)。
上面显示了应力和应变之间的基本关系。我还列出了在杆单元的情况下所有公式(请注意,杨氏模量是材料常数)。
我还记得,在小学时我在物理课上遇到了问题。当我不知道如何解决时,我会写下所有我知道的公式。然后,我将在它们之间替换某些东西,直到某些东西起作用为止。这种方法很少让我失望……所以让我们在这里尝试一下!
现在,让我们再说一遍。我们希望它处于平衡状态吗?这意味着两端的力应相等,但作用方向相反。在这种情况下…
您可能会注意到,我已决定将F1设为“负”。其中之一必须是(它们朝相反的方向),如果我反过来的话,最后还是可以的。
到目前为止,我们使用了一些相对基础的方程式。这并不完全是您的FEA解算器所要做的,但是我们正在接近。
容易注意到,如果您知道力(或变形),则可以相对容易地解决上述问题。它只是一组2个线性方程式。但是,如果有非常多,那么以矩阵形式求解这些问题会更加方便。好吧……也许对您来说不方便,但绝对对您的计算机更方便!
相信大家都有很好的线性代数的功底,以上两个方程式很容易以矩阵形式编写。您只需将力放在一个矢量中,然后对相应的变形进行相同的处理。剩下的只是矩阵乘法:
现在您可以开始注意了。首先,如果我们将力和位移收集到向量中,则剩下一些“东西”。如您在上面看到的,这些东西将形成一个矩阵,显然对应于模型的“刚度”,这就是为什么将其称为刚度矩阵的原因。这就是您的求解器如何理解模型中使用的横截面和厚度以及正确的材料属性的方式。
目前,它只是单个元素(在我们的例子中是杆)的矩阵,但是如果我们在示例中有更多元素,则可以将它们组成一个大的“全局”刚度矩阵。
到目前为止,这很简单,我希望……通常,我会测试前面的方程式是否“有效”,但上述方程式不是“真实情况”。我们只是假设我们将在元素的两端施加相等的力以保持其稳定。显然,根据我们的假设,这是可行的。让我们尝试做一些更“真实”的事情:
如您所见,这将是您可以拥有的最简单的静力学分析。一根杆有2m长,一端支撑,另一端自由。此处的区别在于,它实际上是一个简单材料力学问题,我们可以尝试使用FEA来求解!
我在下面所做的只是简单地将示例中的已知量输入到上一部分的方程式中。所有逻辑仍然适用,没有任何差别。您只需要记住,在有支撑的地方,变形等于零(因此u1= 0),但是施加了力(反作用力)……您只是不知道反作用力有多大(这是为什么F1被写为…F1 –我们尚不知道其值):
我敢肯定,有很多方法可以解决这样的方程组…最多的是使用消除法
这样,我们形成了一个非常简单的方程式:
我们得到了u2变形。但是在这个阶段,我们还可以检查我们得到的一切是否有意义。由于u1 = 0,所以u2是节点2的变形,但它也将等于总元素伸长。如果您记得方程式,您就会知道这就是我们上面所做的。但无论如何,您都验证它,并检查杆的总伸长量是多少:
既然我们已经解决了u2,那么我们可以返回并解决F1……剩下要做的唯一另一件事。我回到原始的矩阵方程,并“乘以”第一个方程(对于F1):
注意,力的值为负。当我们开始时,我假设所有“向右”的力都是正的,因此,在相反方向上作用的作用力必须是负的!
到此为止,我们是可以用手完成FEA!
好的,现在我们增加一点难度,加入更多的单元,注意,只是增加单元数量!我希望这个示例能相对容易地遵循前面的逻辑!
想象一下在大厅建筑中起承重作用的钢柱。顶部的柱子支撑着一个屋顶(向柱子施加120kN的压力)。同时,在较低的地方承受载荷为160kN。求解问题是:圆柱底部的力是多少,钢柱的垂直变形是多少。
第一步很容易。由于元素是在节点上加载的,因此我需要在施加负载或支撑的每个位置都有一个节点。因此,我决定将钢柱分为2个单元(重要提示:此处为了能实现手动计算,不考虑载荷偏心问题,因此简化成杆)。第二步,我们需要建立一个整体刚度矩阵!
在前一个示例,只有一个单元。如果有更多的单元,则所有单元的刚度矩阵会“汇总”为一个大的全局刚度矩阵。这是我们这次必须要做的事情!
上次我们假设“积极”方向是向右…现在让我们假设它是向上的。如您所知,单个元素的刚度矩阵如下所示:
我们已经知道它“有效”的,但是请注意一件重要的事情。我们已经假定了节点的编号方式,并且编号朝着正方向“增加”。这就是为什么在列中节点(1)在底部,而节点(4)在顶部的原因。我可以更改它,但这只会使事情变得更复杂–让我们坚持基本原则。
首先,让我们分别为所有单元构建单独的刚度矩阵。我要做的只是采用上面的“模板”,然后为每个元素输入变量。为了使矩阵更短,我已经计算了值。这是一个钢柱,所以我将使用E= 210GPa。矩阵本身的值以MN / m为单位。
如您所知,那些“小的”单元刚度矩阵对应于某些全局自由度。例如,单元A的刚度矩阵与节点(1)和(2)中的变形和载荷相对应。单元C的刚度矩阵与节点(3)和(4)中的变形和载荷相对应。可以像这样可视化(以元素B为例):
每个FEA模型的都是节点将单元连接在一起。如上所示,元素A和元素B“共享”节点(2)。这意味着元素A和B都向节点(2)中的“位置”“添加”了一些东西。当我们建立整体刚度矩阵时,它是由“块”组成的。由于我们已经知道每个元素的矩阵都对应于特定的自由度,因此我们可以将它们表示为:
最后,我们可以组装整体刚度矩阵!注意,我们的系统中有4个自由度,因此矩阵将为4×4。由于我们已经知道哪些元素会影响哪个自由度(DOF),因此我们可以使用上述所有矩阵来创建整体刚度矩阵:
哇...现在有很多矩阵!无论如何,我们知道用于构建整体刚度矩阵的示意图。诀窍是,将矩阵的“重叠”部分相加在一起。在这种情况下,我们可以创建一个矩阵:
是的, 我们得到了整体刚度矩阵!
好吧……说实话,这本身并不复杂。我们仍然需要变形和载荷向量,才能解决整个问题。如果您从一开始看下来,到此肯定需要稍作休息,至少我需要。所以,下期我们再继续解决这个问题。
[1]参考 Finite Element Method