上次讲到后屈曲问题的解法:
之前说了在非线性屈曲分析中,因为要捕捉后屈曲的snap-back(跳回失稳)等行为,就引入了一个算法,很多人统称叫弧长法,但很多软件中一般叫Riks与改进Riks方法(Modifed Riks)今天我们就来介绍一下改进Riks方法(下图为Abaqus中的样子)
首先Riks是个人名(别去思考他有啥含义),其算法核心跟传统的Arc-length没有太大的区别,最大的区别在于当我们引入了一个加载系数的变量 后如何一个新的构建约束方程,传统Arc-length的办法为:画个圆弧(所以也被称为弧长法,然后那个弧长等于人为设定的一个增量),如下图所示:
这么做其实也并没有啥太大的问题,就是算起来麻烦点,需要求解二元二次方程(每个元是个向量场,简单的语言哈哈)。所以Riks就搞出来了改进Riks方法,就非常的简单粗暴:让每一个迭代的增量和这一步初始的方向垂直,以此作为约束条件,效果就大概是下边这种:
那么我们就多了一个方程(二元一次方程,点乘!):
在Abaqus这种成熟的商业软件中的实现会与教科书上有些不一样,效果好很多,以下简要介绍一下,并告诉大家其这么做的原因:
此操作将载荷 对整个向量的norm进行归一化,将位移向其最大的绝对值进行归一化,这个的好处在于,由于用户一般就是简简单单指定一个 作为计算参数,而载荷和位移数量级可能差异迥异,这里提一下,对于Modified Riks的每一步的第一个迭代,我们计算出来的 由于不存在上述约束条件了,回归到
这个条件,如果不进行归一化的话,这个 取多大呢,谁也不知道 (而一般情况下学术界不会考虑这个问题,大不了多试几个参数就行了)!
那么在归一化之后,上述的约束方程则变成了
其中
这样我们就可以非常轻松的得到
这个做法翻译过来就是让这一步的初始增量与上一步的累积增量的点乘是正的,也就是说”上一步的前进方向和这一步的初始大体在一样的趋势上“,不至于上一步往东,这一步往西。当然其实这种判断并不绝对,如果增量的 取得过大,下边这种情况也可能发生
3. 然后就是这个分析步的后续迭代步了,正常的进程与牛顿法与传统牛顿法与教科书上的Arc-length都没啥两样,无非是:
1. 求切线刚度矩阵 2. 求 3. 求位移增量 4. 求解 5. 这里最大的不同就是现在对 与 要进行一波归一化,成为 ,4. 现在利用上述说的迭代的增量和这一步初始的方向垂直,就可以构造如下的约束方程
这里大家之前没见过的符号就两个, 其实就是每个迭代步的 , 这里主要为了和abaqus符号统一,并区分开 (这个经常用来表示累积的 增量),还有就是
其实就可以理解为对残余向量 也进行相应的归一化,逻辑非常的自洽。用图来表示就是这样的:
根据上述公式大家就可以轻松的求出来
然后正常更新就好:
循环往复直至收敛,这样我们就得到了载荷可上可下,位移可进可退的基于Modified Riks的后屈曲分析。