首页/文章/ 详情

接触基础知识:摩擦为啥是个麻烦

1天前浏览10

我所常用的材料:摩尔库伦塑性的计算接触分析中,大家常常会发现一个不考虑摩擦的接触仿真非常容易收敛,而考虑摩擦的接触仿真则收敛非常困难,那么原因是啥呢,今天就来说说。

首先,先说一下最简单的Coulumb摩擦,摩擦的基本原理其实就是我们高中学的那套

   
 

其中     为摩擦系数。

 

那么其实看过我讲MC材料模型的就会知道,这个Coulomb与MC那个Coulomb是一个人,理论也是一个理论,那么就会都有一个问题,

我所常用的材料:Mohr-Coulomb塑性

就是一个激烈的转折问题(大家看MC本构算法的时候是不是也觉得实现起来不容易)

   
   
 

所以就涉及到一个动静转换的问题,这个问题呢,在显式分析中还是比较好求解的,你可以根据当前的确定一个试验的切向力     ,看看他是否会超过摩擦系数与接触压力     的乘积 (这里的     也是求出来的,无论你是用penalty,LM, 或者ALM)。

而这玩意在隐式求解中就麻烦咯,涉及到对不同的两个阶段进行线性化,求解切线刚度矩阵,具体过程是很复杂的,这里直接给最后的公式

 


就上述就是滑动状态下的切线刚度矩阵(9.104, 9.105),是不是光看就觉得麻烦,相比之下法向接触的公式要简单很多就是9.103中的那些。

然后更麻烦的在哪呢,在于矩阵的不对称性,大家可以看到在9.103中法向的矩阵都是

   
 

这种形式,这就是一个对称矩阵,求解也很容易,而对于摩擦可就不是了, 你就看着        就这些,一看也不是一个对称矩阵,所以又造成了矩阵求解的困难。

Abaqus中呢为了一方面处理这种问题,一方面呢想保证计算效率,一方面呢想保证收敛性,所以做了一个设定,在摩擦系数        的时候采用对称矩阵求解,因为他认为这时候非对称性还不是那么强,影响还好,然后在        的时候就要采用非对称求解了, 难度与效率都完全不同。

然而现实世界中,我经常看到工程师朋友们,不管啥材料,上来就给摩擦系数输入个       。非常的快乐与痛苦!

如果大家对9.104 -9.105 感兴趣一方面可以看一下 Peter Wriggers 的 《Computational Contact Mechanics》, 2006,如果特别有兴趣我可以搞个视频讲讲,如需要请留言。


来源:大狗子说数值模拟
ACTAbaqusUM理论材料试验
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-10-26
最近编辑:1天前
大狗子说数值模拟
博士 传播国际一流的数值模拟算法
获赞 11粉丝 25文章 81课程 0
点赞
收藏
作者推荐

有限元基础知识:KNN与径向基函数插值

有一个和接触分析非常类似的领域,那就是不同物理场、不同结果数据之间的映射插值,如果需要互相映射插值的两者是有网格数据的,那么插值的过程与接触计算基本上没啥差异,还更简单一些,但如果其中一套数据是基于节点的,而没有网格单元信息,则需要用到KNN (K近邻点, k nearest nodes)与径向基函数 (RBF, radial basis functions)进行映射插值。很多做神经网络的朋友们可能都听过KNN,但这个的KNN更加的清晰明确,就是找离一个节点最近的k个对应的节点,做多物理场仿真(尤其是弱耦合)的朋友们应该都知道有款软件叫preCICE或者mpCCI,本质上他们就是提供了基于网格单元的映射插值与基于KNN与RBF的节点插值。 这个被映射插值的物理量可能是各种各样的,可能是压力、应力、温度等等,用统一的方法(略有不同的实现方式,主要考虑是否要考虑守恒的物理量等因素)进行插值。而在这个过程中使用KNN就听起来很简单,最简单的思路就是全局遍历,比如从一个点云(每个点上都对应一些物理量),向另一片点云(或网格)进行搜索,那么这个搜索复杂度可是老高了。那么想着降低搜索的复杂度,其实也很简单,这就用上了我们之前讲的空间划分算法,尽可能的在更小的范围内进行搜索: 有限元基础知识:空间箱排序(bucket sorting)接触基础知识:从二分到四叉树与八叉树接触基础知识:从四叉树八叉树到K-d tree以下就是一段非常简单的python代码,快速的给出knn的检测:from sklearn.neighbors import KDTreetree = KDTree(all_nodes)distances, indices = tree.query(query_point, k=3) 然后在找到这k个近邻的节点之后,我们就可以通过RBF方式进行插值,可能有朋友会问,这里为啥我们不用拉格朗日插值、线性插值等等,这个原因也很好理解,因为你找到的k近邻点不一定在空间中分布是啥样的,他们中间也没有网格连着。那RBF其实很好理解,可以理解为就是以这个网格节点为中心,然后沿着径向逐渐减小,最后随着离中心越远,逐渐缩减到0,也就是在插值中不再进行贡献,具体如下图所示: 然后诸如对一个物理量的插值就可以写成 其中 为第k个节点的径向基函数。那么通过上述的方式就可以实现两个区域基于节点数据的映射插值。大概长这样: 可能有熟悉神经网络的朋友们会觉得这玩意不是有限元吗,这里的概念咋跟神经网络里面那么多概念是重合的,其实答案就是:数学原理都差不多,学好数学吧!来源:大狗子说数值模拟

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈