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

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