- 积分
- 27
- 注册时间
- 2003-8-21
- 仿真币
-
- 最后登录
- 1970-1-1
|
大家可能都清楚当出现zero pivot错误的时候,一般是model中出现了过约束(over constraint)或者是约束不够而导致rigid mode. 以前我是把这当做一条理论来记得,原因比较模糊,今天把它搞搞清楚,落在文字上与大家分享。说pivot, 得先从高斯消元讲起。有限元软件求解刚度矩阵时,一般是用高斯消元。对于高斯消元,大家应该比较熟悉,这是一种基于先正向消元,再反向迭代求解的求解办法(It is based on triangularization of the coefficient matrix and evaluation of the unknowns by back-subsitution starting from the last equation)。高斯消元后的矩阵是这样的
- -
| a11 a12 a13 a14… a1n | x1 c1
| 0 a22 a23 a24… a2n | x2 c2
| 0 0 a33 a34…a3n | x3 c3
| 0 0 0 a44…a4n | { x4}={c4}
| ………………………… ...........| … …
| 0 0 0 0 … ann | xn cn
- -
这样第一步先求出xn,第二步就可以求出x(n-1),如此类推。在这个矩阵中每行的第一个非零的系数就是pivot。那么zero pivot的意义就明确了,就是指在高斯消元后的刚度矩阵中出现了一个全为零的一行。一个原因是出现了过构束,就好比去用10个方程去解一个9个未知数,一定有一个方程可以消去。多余那个方程有可能与原有的某一方程等价,也有可能与某一方程冲突,但结果都是zero pivot。 另一个原因是约束不够,有力,但与之对应没有刚度,无疑会出现zero pivot。但如果是约束不够时,一般在message file里还会出现NUMERICAL SINGULARITY warnings。这一般是因为力除以0刚度出现了无穷大的位移。
矩阵太丑了,大家凑合看,如有不妥之处,请大家讨论。
[ 本帖最后由 kingy 于 2006-11-24 04:07 编辑 ] |
评分
-
2
查看全部评分
-
|