首页/文章/ 详情

有限元基础知识:牛顿法与修正牛顿法

15小时前浏览22

继前文 有限元基础知识:线性化

说过Newton-Raphson迭代的基本流程,当时我们介绍的也叫完全牛顿法 (Full Newton) 我们通过不断的迭代使得

 

即内外力平衡,其中外力是有所施加的载荷决定的,而内力则是由系统的应力与当前构型决定的。那么为了完成这个过程,我们就需要进行如下的计算,即在每一个迭代步都计算切线刚度矩阵,

 

即根据第     个迭代步的构型、应力应变状态计算当前的切线刚度矩阵。

这个过程就好比精确制导,在每一个迭代之后,我们都准确的知道下一个迭代的方向,但是代价就是在每一个迭代后,我们都需要重新的计算刚度矩阵,并重新进行矩阵求解,而众所周知这个过程开销是比较大的。

举个例子,在我们做非线性仿真分析的时候,经常需要将每一步切的比较小,那么可能一个非线性仿真就有几十个上百个增量步,而每个增量步内又有4-5个迭代步,那么可能会使得求解刚度矩阵的次数轻松的超过上百次,非常的费时(这也是非线性分析比线性分析花费时间长的多的主要原因之一)。

另外有个问题就是因为每一步都需要计算切线刚度矩阵,当系统接近极值点的时候,就容易切线矩阵奇异,造成数值振动或者不收敛。

所以我们就可以做多种方法,来改变一下最原始的牛顿法,今天先说一种:修正牛顿法 (Modified Newton)


其实改进牛顿法也比较容易理解,其核心无非就是,原本的牛顿法是每个迭代步都计算一次切线刚度矩阵,而改进牛顿法采用一种比较懒的策略,那就是我每隔几步算一次刚度矩阵,这样呢,就可以算完刚度矩阵后将分解后的矩阵存下来,大幅度提升效率。然而其实天下也没有免费的午餐,既然现在不再精确制导,而是开始大力出奇迹,我们理所当然的可以认为,现在的迭代路径并没有完全牛顿法那么精确,为了实现同样的收敛,我们往往需要迭代更多次

如下图所示的结构,在考虑几何非线性的情况下,我们可以看到,完全牛顿法收敛步数远小于修正牛顿法,大概是修正牛顿法的    , 然而因为其每一迭代步求解非常快,总体消耗的时间却可能更少。

一般商业软件中对于修正牛顿法有几种方式:

  1. 在每个增量步开始的时候计算切线刚度矩阵,迭代步不重新计算
  2. 每隔n个迭代步计算切线刚度矩阵
  3. 一步中迭代超过预设的最大迭代数的时候就更新切线刚度矩阵 总的来说呢,在采用了修正牛顿法后,在非线性并没有特别强烈,边界条件并没有大的突变的情况下,我们一般都是可以更快的得到收敛的结果的。

而且同理由于我们的刚度矩阵是在“很久之前”算出来的,可能就有机会跳过那个极值点的奇异矩阵,所以对于有极值点的问题,在一定程度上也可以解决。

好了,今天就先说到这里,改进牛顿法一般会与线搜索 (line search)一起用,而且也还有另外一类的迭代方法:割线类,经常成为拟牛顿法,或BFGS(优化领域居多),我们且听下回分解。

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

有限元基础知识:客观率是什么

之前说了应力的多种度量材料的名义应力、应变与真实应力、应变转换公式的推导对于大变形分析,及大变形下的诸多非线性材料的仿真分析,我们经常会听到一个名词“客观率”(objectiverate),很多人都对这个名词比较陌生,或者说是知道这个名词也不知道其含义,其实故名思意,客观率就是指:大变形(尤其是大转动下)还能客观的(符合物理规律的)表达应力的变化率。最为简单的例子则是,比如一个物体在做刚体旋转,那么其应力理应是0,其变化率理应也是0,那么如果计算出来真的是0的我们就说其是客观的。所以其实客观率是一种计算力学的概念,由于我们做的各种各样的假设,在计算中我们很多种方法算出来的应力变化速率可能就是不客观的,而如果用这样的一些应力率去计算,就会引入人为的错误。通常来说我们常用的有以下几种客观率:Jaumann率这里为自旋张量(速度梯度的反对称部分,对应于变形率是速度梯度的对称部分),,其中为速度梯度。Green-Naghdi率大家可以看到Green-Naghdi率与上述Jaumann率非常类似,只是这里换成了角速度张量.Truesdell率其中为速度梯度,而这里可以认为Truesdell率为考虑了变形率的Jaumann率,当只考虑刚体转动的时候,其实两者就是一样的。这里大家也不用纠结这3种客观率啥意思,其实就是人名。而这三种率,都是客观的,我们应该用哪个呢?其实可以认为这三种率是三种类似的度量衡,就像关羽身高九尺用的是汉尺,我们现在用米来描述一个人的身高,但一个人其实该度高就多高是固定的。但这里面又有一点不同,这三个种客观率都是physical的(符合物理规律的),却因为精度与仿真场景的不同有不同的应用,在ABAQUS中采用如下的处理方式:总的来说可以认为实体单元一般采用Jaumann率,而对于壳、梁、膜等结构单元一般采用Green率。而对于哪里需要使用这些率,大家是否记得在弹塑性Mises本构的推导中就出现了应力率,那么在大变形的框架下,我们就需要考虑上述这些,详情请见我所常用的材料:Mises塑性2。来源:大狗子说数值模拟

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