大家好!
在学习《有限元方法基础教程》过程中,通过自己编程实现有限单元法的数值解答,加深对理论的理解。这个在我去年的时候就已经发过帖子了,但是没有讲解代码,没有和ABAQUS有限元软件对比。这次发帖子就是想讲解代码以及和ABAQUS结果对比,发现我又更深层次理解了有限元方法。
这次写得是最简单的模型:一维线弹簧单元。采用的是直接刚度法求解。
直接刚度法的求解思路如下所示,其中粉红色的是输入,淡蓝色是输出。主要是要区分齐次边界条件和非齐次边界条件,非齐次边界条件的话就要修改【F】。
下面将贴出我用python写得一维弹簧单元的直接刚度法:
例子计算:
如图是一个弹簧系统,单元节点信息如下,5节点受到一个强制位移20mm,明显这是一个非齐次边界条件问题。
Python编程输入信息如下:
结果如下:
可以看到,输出结果和书上的答案一致。
下面进行ABAQUS模拟:
添加弹簧单元
添加边界条件
显示单元编号、节点编号如下所示,红色表示单元编号,黄色是节点编号
ABAQUS计算结果如下:
首先是变形图前后对比
反力云图如下所示,基本和直接刚度法计算的结果一致
位移云图如下所示,基本和直接刚度法计算的结果一致
整体刚度矩阵如下所示,因为ABAQUS弹簧单元是三维的,每一个节点有3个自由度,15x15,原味的刚度矩阵如下
我们把刚度矩阵转化为一维的,方便和编程的结果对比
从结果可以看出,ABAQUS的整体刚度矩阵和直接刚度法计算出来的整体刚度矩阵有些差异,如图标红的所示。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删