首页/文章/ 详情

接触基础知识:接触计算中拉格朗日(LM)算法

20小时前浏览8

上次说到了罚函数算法 接触基础知识:接触计算中的penalty(罚函数)方法

而拉格朗日乘子法(LM)是一种通过引入额外自由度直接满足接触约束的数值算法。其核心思想是将接触力视为独立变量,通过约束强制接触界面非穿透,而非依赖弹簧类比。以下从基本原理、算法实现等方面来说说:


一、基本思想与数学模型

与penalty将接触力视为一个跟穿透距离有关的弹簧力的思想不同,拉格朗日乘子法通过引入拉格朗日乘子     表示接触面上的法向接触力,将接触条件转化为约束方程:

 

具体物理解释就是:

  1. 第一个式子表示两个物体不能互相穿透
  2. 第二个式子表示当接触的时候       , 而在没有接触的时候.

我们可以非常简单的与罚函数(penalty)方法建立联系,那就是:

 

二、数值实现特征

一般来说对于点对面的方法有两种实现方式,一种是在单元节点上进行检测、另外一种是在积分点处进行检测,就以最简单的节点处进行检测为例,对于从面的节点,进行该节点到主面的投影(住从面的网格大概率不一致),得到投影点的坐标,进而反向求得该点的参数坐标,那么穿透量就可以由以下的公式计算得到

 

由于一半情况下拉格朗日算法都是在隐式分析中使用,所以要推导其切线刚度矩阵与内力向量,具体方法为,对于上述的约束方程取变分(不懂变分,可以就先理解为微分,然后看[[基础知识:(偏导、方向导数)(变分、微分、线性化)]])

 

由于这里我们的     与     被视为两套独立的物理量,其中     针对点对面接触,每一个点有一个“接触力”,所以每一个接触从点就对应一个    ,而     的变分正是上面节点位置的线性组合的变分:

 

这样我们把这些变分对应的矩阵加到总体矩阵中就会出现如下的形式: 


其中     的计算无需赘述,和这个拉格朗日算子法计算接触没关系,就正常的单元计算,而     也就对应着上述      的表达形式,这里

 

这样如此这般通过上述引入的新的自由度     与引入的约束方程我们就建立了接触力与主面从面相应节点的位移之间的关系,不如penalty方法那么直接,但是也很好理解。对于内力向量也非常直接

 

物理上可以理解为     是接触力,通过形函数以一定的权重分布施加给这些主从面的节点上。也很合理。

上面说的是法向的接触力,其实切向一样,可以引入另外一个变量代表切向的接触力,

 

不过不同的点在于这里切向的力未必是对的,只是先“试一下”,所以叫做试切向力,因为其并不一定满足摩擦力的基本原则:

 

其中     为摩擦因子。这里补充说一句,摩擦老有意思了,如果展开讲我觉得能写一大堆。  这里可以看到拉格朗日算子这里没有近似,得出的结果就是完美满足接触的约束条件的,那么为啥很多人不愿意用这个方法呢?有些人说算法写起来复杂,但其实上边的原理推导起来并不复杂,甚至在很多情况下推导还更方便,但实现起来主要有以下几个难点:

  1. 由于接触需要动态的检测接触位置,每一个迭代接触发生的位置都可能不同,所以       的数量可能就不同,对于有限元矩阵组装提了一些要求
  2. 大家看上边那个矩阵形式,由于对角线现在出现了一大堆0,原本正定的矩阵现在已经变得不正定了,你的矩阵求解器如果只支持正定矩阵求解,那就解不出来
  3. 额外的自由度多的话,求解可能慢一些,不过现今的技术,这个不太成问题(老的教科书会特别强调这点,别信!

最后总结一下:

LM算法对比罚函数法优势      
局限性      
无穿透      
:严格满足几何约束      
自由度数量补丁      
高精度      
:接触力直接与乘子关联      
矩阵变为非正定      
稳定性强      
:尤其适合软硬结合的接触,不太需要调参      
求解规模扩大      

既然说了这两个,其实在实际工程中,常结合增广拉格朗日法(Augmented Lagrangian Method)可以认为是penalty与LM方法的结合,请听下回分解。


来源:大狗子说数值模拟
UG
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-09-07
最近编辑:20小时前
大狗子说数值模拟
博士 传播国际一流的数值模拟算法
获赞 10粉丝 25文章 74课程 0
点赞
收藏
作者推荐

有限元基础知识:几何非线性中的TL与UL

之前介绍过非线性分析,包括材料、几何与接触非线性,有限元基础知识:非线性分析几何非线性:应变张量今天就几何非线性着重说一下,对于几何非线性分析有两种基本描述方法,Total Lagrange(TL)和Updated Lagrange(UL)方法是两种主要拉格朗日框架。它们的核心区别在于参考构型的选择,这直接影响了应变、应力度量和平衡方程的数学形式。参考构型用“人话”来说就是你的变形、应变是基于哪个形状定义的?是初始时刻的呢?还是 时刻的呢? 以下从理论公式和实际案例两方面详细说明其差异:参考构型的定义 • Total Lagrange(TL)方法始终以初始未变形构型(时间 )为参考。所有物理量(如应变、应力)均映射到初始构型上描述。关键公式:• 应变度量:Green-Lagrange应变张量 其中 为位移, 为初始坐标, 后续大写 普遍表示未变形的形体 位置坐标,也就是对应于 时刻。• 应力度量:第二类Piola-Kirchhoff应力张量 ,与Green应变共轭。• Updated Lagrange(UL)方法以上一增量步的变形后构型(时间 )为参考。物理量在每个增量步更新到最新构型。关键公式:• 应变度量:Almansi应变张量(或增量形式的对数应变) 其中 为增量位移, 为当前坐标,所以这里可以看到与上述UL中应变表达的不同,首先是基于增量位移,其次参考构型是变化的是上一步变形后的构型。 • 应力度量:Cauchy应力张量 \sigma ,直接描述当前应力状态。 平衡方程的弱形式 • TL方法的平衡方程: 积分域为初始体积 ,需处理几何非线性项(如位移二次导数)。• UL方法的平衡方程: 积分域为当前体积 ,几何非线性通过构型更新隐式处理。应力更新算法 • TL方法:应力通过材料本构模型直接更新为第二类Piola-Kirchhoff应力: 其中 是弹性张量。• UL方法:先计算Cauchy应力增量,再通过旋转张量更新: 为旋转张量, 为Almansi应变增量。收敛性与计算效率很多教材与论文都会探讨这两者的收敛性是效率的,然而事实上是这东西跟谁编程,怎么写代码关系非常大。我只能说天下没有免费的午餐,你得到一些东西的同时总会失去一些东西,常规上来说可以做如下总结• TL方法:因初始构型固定,Newton-Raphson迭代易因大旋转步发散,如果对于变形没有那么大,没有接触的材料非线性+结合非线性是比较适合的• UL方法:构型逐步更新,Jacobian矩阵条件数更低,迭代更稳定,又由于每步都更新构型,对于接触分析比较适合两种方法本质是同一物理规律的不同数学描述:TL更适合材料非线性主导问题(y由于不用更新构型),UL更擅长几何非线性与接触耦合场景(因为接触你反正无论如何都得更新构型,虽然正常教科书上绝对不会说是这个理由)。实际应用中(如Abaqus/ANSYS)常混合使用,例如UL处理接触边界,TL处理材料本构。以下是一个基本的TL的代码流程,大家可以以此作为参考: 来源:大狗子说数值模拟

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