(一维弹簧单元的直接刚度方法)Python编程和ABAQUS结果对比

大家好!

    在学习《有限元方法基础教程》过程中,通过自己编程实现有限单元法的数值解答,加深对理论的理解。这个在我去年的时候就已经发过帖子了,但是没有讲解代码,没有和ABAQUS有限元软件对比。这次发帖子就是想讲解代码以及和ABAQUS结果对比,发现我又更深层次理解了有限元方法。

这次写得是最简单的模型:一维线弹簧单元。采用的是直接刚度法求解。

直接刚度法的求解思路如下所示,其中粉红色的是输入,淡蓝色是输出。主要是要区分齐次边界条件和非齐次边界条件,非齐次边界条件的话就要修改【F】。

Capture.png

下面将贴出我用python写得一维弹簧单元的直接刚度法:

1.png
2.png  
3.png

例子计算:

5.png  

如图是一个弹簧系统,单元节点信息如下,5节点受到一个强制位移20mm,明显这是一个非齐次边界条件问题。

7.png  

Python编程输入信息如下:

6.png

结果如下:

8.png

可以看到,输出结果和书上的答案一致。

下面进行ABAQUS模拟:

添加弹簧单元

9.png

添加边界条件

10.png

显示单元编号、节点编号如下所示,红色表示单元编号,黄色是节点编号

21.png

ABAQUS计算结果如下:

首先是变形图前后对比

11.png

反力云图如下所示,基本和直接刚度法计算的结果一致

12.png

位移云图如下所示,基本和直接刚度法计算的结果一致

13.png

整体刚度矩阵如下所示,因为ABAQUS弹簧单元是三维的,每一个节点有3个自由度,15x15,原味的刚度矩阵如下

14.png

我们把刚度矩阵转化为一维的,方便和编程的结果对比

17.png

从结果可以看出,ABAQUS的整体刚度矩阵和直接刚度法计算出来的整体刚度矩阵有些差异,如图标红的所示。

那么在整体刚度矩阵上为什么ABAQUS会和直接刚度法的整体刚度矩阵有差异呢,到底ABAQUS的整体刚度矩阵对不对呢?答案将在下一期揭晓。欢迎大家积极讨论。

(1条)
默认 最新
👍
评论 点赞
点赞 27 评论 1 收藏 31
关注