首页/文章/ 详情

有限元基础编程 | 弹簧边界条件如何处理?

9月前浏览7675

木木有限元编程小课堂开课啦!

本次分享的是弹簧支撑的边界条件在程序中如何处理?

本篇推文的灵感来源于:

  • MATLAB codes for finite element analysis[M].
  • A first course in the finite element method[M]

本次分享不会系统讲述有限元的求解过程,假定你已经有一定的有限元编程基础(杆单元的功底),如果没有也无妨,可移步木木早期推文:二维杆单元。

推文将会围绕以下方面进行分享:

  • 弹簧支撑边界条件,内核求解程序如何处理?
  • 弹簧支撑的边界条件有什么作用?

本次所要解决的主要问题示意图如下:

 

用户可根据本篇推文的理解,在自己程序上进行适当修改,适应自己的程序背景。


如何看待?

对于弹簧支撑的边界条件,可将之看作是混合单元问题,对于今天的案例,看作是两个杆单元和一个弹簧单元组合而成的模型。

模型本身的边界条件为1节点处受到弹簧的支撑作用和外载荷作用,转换为混合单元后,模型就变为4节点处的自由度为0。

那么在程序中如何处理呢?且看下节:

程序处理

整体刚度矩阵组装分为两步,第一步是组装杆单元,遍历杆单元数量,对单元刚度矩阵按照局部编码和全局编码的原则,组装到整体刚度矩阵中;第二步是组装弹簧单元,遍历弹簧单元的数量,对单元刚度矩阵按照局部编码和全局编码的原则,组装到整体刚度矩阵中,最终的整体刚度矩阵就是模型的整刚。

程序截图如下:

对于弹簧刚度,这里做一个补充。一维情况下的弹簧刚度矩阵为:

 

二维情况下,弹簧刚度分为    向刚度    和    向刚度    ,弹簧刚度矩阵为:

 

对于本次案例,可看作是    ,只考虑    的影响,即刚度矩阵变为:

 

案例介绍

下图所示的模型系统中,探究在力F的作用下,1节点的位移量,解析解为{-1.724,-3.448}。

 

用今天的转换思想,程序求得的1节点位移量为:{-1.724,-3.448},与解析解一致。

接下来我们来点发挥~试改变弹簧刚度大小,探究一些有意思的问题。

弹簧边界作用

我们把弹簧刚度取小一点,看看能不能模拟无约束的情况。

无弹簧约束时,1节点位移量为:

{-2.381,-4.762}。

弹簧刚度取10时,1节点位移量:

{-2.376,-4.753}

弹簧刚度取1时,1节点位移量:

{-2.381,-4.761}

当弹簧刚度越来越小时,节点1的位移量趋于无弹簧约束时的情况。

y方向有固定约束,在x方向施加F的力,1节点位移量为:

{-1.191}。

弹簧刚度取1.0e5时,1节点位移量:

{-1.250,-0.119}

弹簧刚度取10时,1节点位移量:

{-1.191,-0.001}

会发现随着刚度的增大,y方向的位移逐渐减小,最终趋于0,x方向趋于y方向有固定约束,在x方向施加F的力的情况。

边界条件加入弹簧的作用:

  1. 模拟弹性连接:弹簧支撑可以模拟实际工程中的弹性连接件,如橡胶垫、弹簧减震器等。
  2. 引入局部柔性:在某些情况下,结构的局部区域可能比其余部分更柔软或更有弹性。弹簧支撑边界条件可以在有限元模型中模拟这种局部柔性。
  3. 非线性分析:在某些情况下,弹簧支撑的特性可能是非线性的,如预紧弹簧或具有非线性刚度特性的材料,这在非线性有限元分析中尤为重要。

希望可以激发一些小伙伴在研究工作中的灵感,如弹簧减震器之类的领域。

声明:在浩瀚的有限元知识海洋遨游中,发现有意思的点,自己瞎琢磨琢磨,分享出来,乐趣无穷~但由于木木非力学科班出身,水平有限,原创推文均为自己对于数值方法的个人理解,不具权威性,如遇错误、遗漏之处,请各位同行批评指正!

来源:易木木响叮当
非线性MATLAB海洋材料
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-01-24
最近编辑:9月前
易木木响叮当
硕士 有限元爱好者
获赞 217粉丝 246文章 346课程 2
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈