非线性 | 弧长法(Arc-Length Methods)

2021-02-07 14:34:09 浏览数 (1)

图1所示为弧长法求解过程,若以下标

i

表示第

i

个荷载步,上标

j

表示第

i

个荷载步下的第

j

次迭代,显然,当荷载增量

delta_i^j=0

,则迭代路径为一条水平直线,即为著名的牛顿-拉夫逊方法。对于图2所示的求解问题,牛顿-拉夫逊方法不能跨过极值点得到完整的荷载-位移曲线。因此,弧长法最重要的就是求荷载增量。

而弧长法的荷载增量

delta_i^j

是变化的,可自动控制荷载,这样在原方程组的基础之上又增加了一个未知数,因此需要额外补充一个方程。如图3所示,某一荷载步迭代至收敛时总有

(lambda_1- lambda_0)^2 (mathbf u_1 -mathbf u_0)^{mathbf T}(mathbf u_1 -mathbf u_0) = Delta s^2

考虑系统方程组

begin{split} mathbf d(mathbf u ,lambda ) & = mathbf f^{int} - lambda mathbf f_0^{ext} \f(mathbf u ,lambda ) & = (lambda- lambda_0)^2 (mathbf u -mathbf u_0)^{mathbf T}(mathbf u -mathbf u_0) - Delta s^2 \ end{split}

在迭代过程中,

f,d

逐渐趋于0,如果这两个值都为0,则说明该荷载步的迭代已收敛。在上一个迭代收敛点(如图1中的

(mathbf u_0, lambda_0)

)将

mathbf d(mathbf u ,lambda ),f(mathbf u ,lambda )

作一阶泰勒展开

begin{bmatrix} mathbf K_{T} & -mathbf f_0^{ext} \ 2(mathbf u - mathbf u_0)^{mathbf T} & 2(lambda- lambda_0)\ end{bmatrix}begin{bmatrix} Delta {mathbf u} \ Delta {lambda} \ end{bmatrix} = begin{bmatrix} lambda mathbf f_0^{ext}-mathbf f^{int}\ -f\ end{bmatrix}

begin{split} mathbf K_{T}Delta {mathbf u} &= Delta {lambda}mathbf f_0^{ext} lambda mathbf f_0^{ext} -mathbf f^{int}\ &=Delta {lambda}mathbf f_0^{ext} -mathbf f^{Ⅱ} \-f &= 2( mathbf u - mathbf u_0)^{mathbf T} Delta {mathbf u} 2(lambda- lambda_0)Delta lambda\end{split}

Delta mathbf u = Deltalambda Deltamathbf u^{ext} Delta mathbf u^{Ⅱ}

, 则

2( mathbf u - mathbf u_0)^{mathbf T} (Deltalambda Deltamathbf u^{ext} Delta mathbf u^{Ⅱ} ) 2(lambda- lambda_0)Delta lambda = -f quad(a)
2Delta lambda[( mathbf u - mathbf u_0)^{mathbf T}Deltamathbf u^{ext} (lambda- lambda_0)] = -f 2( mathbf u - mathbf u_0)^{mathbf T}Delta mathbf u^{Ⅱ} quad(b)
Delta lambda = frac {-f 2( mathbf u - mathbf u_0)^{mathbf T}Delta mathbf u^{Ⅱ}}{2[( mathbf u - mathbf u_0)^{mathbf T}Deltamathbf u^{ext} (lambda- lambda_0)]} quad(c)

弧长法通过自动建立适当的荷载增量进一步优化了牛顿-拉夫逊方法,使用弧长法,可以跟踪复杂的荷载-变形路径。

0 人点赞