一、摘要
接触现象广泛存在于工程中,它是一个高度非线性问题。然而,大多数开源接触有限元代码是用C++编写的,研究人员难以理解和使用。因此,本文提供了完整的摩擦接触有限元方法的详细步骤和Matlab实施代码。本中介绍了接触投影方法、接触节点力和接触切线刚度矩阵的形式,非线性方程组使用牛顿-拉夫逊法求解。数值算例将计算结果与开源软件FEBIO进行比较,验证了Matlab程序的正确性和有效性。
吉林大学左文杰教授团队撰写了“An open source MATLAB solver for contact finite element analysis”论文,并发表于Advances In Engineering Software期刊。
二、摩擦接触有限元方法
图 1 两个弹性接触体
对于两个弹性接触体,如图 1所示,粘结和滑移状态的接触牵引力向量可写为:
其中,为罚函数法的罚因子;
为上时刻主面接触点在当前时刻的坐标;
为从面接触点坐标;
为接触穿透量;
为从面外法线方向向量;
为摩擦系数;
为摩擦力方向。
利用虚功原理,接触虚功可写为:
其中,和
分别为从面和主面上的虚位移。将上式进行线性化和离散化可得:
其中,为线性化算子;
为节点虚位移向量;
为接触刚度阵;
为节点位移。
随后,基于牛顿-拉夫逊法进行非线性有限元求解,如下式所示:
其中,k为牛顿-拉夫逊法的迭代次数;为结构刚度阵;
为位移增量;
为接触节点力向量;
为载荷向量;
为内力向量。上式不断迭代求解直至收敛,即可得到计算结果。
三、数值算例
第一个算例为两梁接触算例,工况如图2所示,两根梁左端全约束,上梁右侧施加向下的力。上梁下表面和下梁上表面为潜在接触面。
图2 两梁接触工况
当摩擦系数为0.6时,本软件接触计算位移云图如图3所示。
图3 摩擦系数为0.6时的梁合位移云图
本软件与FEBIO软件的对比结果如表1所示。可看出,本软件计算结果与FEBIO软件相同,验证了算法和代码的正确性。
表1 MATLAB和FEBIO软件的梁合位移结果对比
第二个算例为半圆环接触算例,工况如图4所示。半圆环的左侧全约束,右侧施加外力。圆环下表面为潜在接触面。
图4 半圆环接触算例
摩擦系数设置为0.6,算例合位移结果如5所示。
图5 摩擦系数为0.6时的半圆环合位移云图
本软件与FEBIO软件的对比结果如表2所示,误差低于1%,验证了算法与代码的正确性。
表2 MATLAB和FEBIO软件的半圆环合位移结果对比
参考文献:Wang, Bin, Jiantao Bai, Shanbin Lu, and Wenjie Zuo*. An open source MATLAB solver for
contact finite element analysis. Advances In Engineering Software, 2025, 199: 103798.
文章主页:https://www.sciencedirect.com/science/article/pii/S0965997824002059
接触有限元Matlab代码下载地址:
https://www.researchgate.net/publication/386332459_ContactFEA_codesrar