在用matlab编有限元程序时遇到的刚度矩阵病态
在用matlab编辑三角形板壳单元的程序时,局部坐标下的刚度矩阵都没有问题,在2.3901e+009 5.3571e+008 0 0 0 0
5.3571e+008 1.3187e+009 0 0 0 0
0 0 10440 4395.6 -22802 0
0 0 4395.6 24725 -8241.8 0
0 0 -22802 -8241.8 74863 0
0 0 0 0 0 0后,在进行坐标变换,变换到总体坐标下,但是变化到总体坐标下面后,求解位移的时候,出现如下所示:ans =
2.564461764748704e+035
Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 2.450094e-023.其中的answer为总体坐标下的刚度矩阵的行列式;请问各位前辈,这个问题怎么解决啊?
楼主,我最近也在研究有限元编程问题,能不能叫QQ交流下呢?
我的QQ:715405932 没有施加约束,刚度阵肯定是奇异的 pasuka 发表于 2012-4-14 08:25 static/image/common/back.gif
没有施加约束,刚度阵肯定是奇异的
你好,简单地写了下位移法的程序,发现与正确结果总是有个几倍的差距,请问这是怎么回事呢? 试试广义逆呢,pinv 施加了约束,矩阵不是奇异的行列式值不为0只是矩阵的条件数很大 导致矩阵式病态的 用广义逆能解但是结果不对啊! 李健 发表于 2012-4-14 12:47 static/image/common/back.gif
用广义逆能解但是结果不对啊!
那你试试对矩阵进行相应地处理呢(置大数、主置法呢) We need you to put your derivation here so that we can have a good look. whutjp 发表于 2012-4-14 18:07 static/image/common/back.gif
那你试试对矩阵进行相应地处理呢(置大数、主置法呢)
哪个地方置大数啊? tonnyw 发表于 2012-4-14 22:11 static/image/common/back.gif
We need you to put your derivation here so that we can have a good look.
2.3901e+009 5.3571e+008 0 0 0 0 -2.1016e+009 -4.1209e+007 0 0 0 0 -1.1951e+009 -5.3571e+008 0 0 0 0 9.0659e+008 4.1209e+007 0 0 0 0
5.3571e+008 1.3187e+009 0 0 0 0 4.1209e+007 -4.9451e+008 0 0 0 0 -5.3571e+008 -6.5934e+008 0 0 0 0 -4.1209e+007 -1.6484e+008 0 0 0 0
0 0 10440 4395.6 -22802 0 0 0 -9615.4 -274.73 -21978 0 0 0 -3571.4 1373.6 -10989 0 0 0 2747.3 2747.3 -10165 0
0 0 4395.6 24725 -8241.8 0 0 0 -274.73 2747.3 1.0914e-011 0 0 0 -1373.6 10989 2.683e-011 0 0 0 -2747.3 2747.3 2.0918e-011 0
0 0 -22802 -8241.8 74863 0 0 0 21978 -1.6257e-011 35027 0 0 0 10989 -1.296e-011 19918 0 0 0 -10165 1.5916e-011 35027 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-2.1016e+009 4.1209e+007 0 0 0 0 2.3901e+009 -5.3571e+008 0 0 0 0 9.0659e+008 -4.1209e+007 0 0 0 0 -1.1951e+009 5.3571e+008 0 0 0 0
-4.1209e+007 -4.9451e+008 0 0 0 0 -5.3571e+008 1.3187e+009 0 0 0 0 4.1209e+007 -1.6484e+008 0 0 0 0 5.3571e+008 -6.5934e+008 0 0 0 0
0 0 -9615.4 -274.73 21978 0 0 0 10440 4395.6 22802 0 0 0 2747.3 2747.3 10165 0 0 0 -3571.4 1373.6 10989 0
0 0 -274.73 2747.3 -1.5916e-011 0 0 0 4395.6 24725 8241.8 0 0 0 -2747.3 2747.3 -2.5807e-011 0 0 0 -1373.6 10989 -2.3419e-011 0
0 0 -21978 1.0914e-011 35027 0 0 0 22802 8241.8 74863 0 0 0 10165 -1.0118e-011 35027 0 0 0 -10989 1.3642e-011 19918 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-1.1951e+009 -5.3571e+008 0 0 0 0 9.0659e+008 4.1209e+007 0 0 0 0 2.3901e+009 5.3571e+008 0 0 0 0 -2.1016e+009 -4.1209e+007 0 0 0 0
-5.3571e+008 -6.5934e+008 0 0 0 0 -4.1209e+007 -1.6484e+008 0 0 0 0 5.3571e+008 1.3187e+009 0 0 0 0 4.1209e+007 -4.9451e+008 0 0 0 0
0 0 -3571.4 -1373.6 10989 0 0 0 2747.3 -2747.3 10165 0 0 0 10440 -4395.6 22802 0 0 0 -9615.4 274.73 21978 0
0 0 1373.6 10989 -1.2733e-011 0 0 0 2747.3 2747.3 -9.6634e-012 0 0 0 -4395.6 24725 -8241.8 0 0 0 274.73 2747.3 -2.0464e-011 0
0 0 -10989 2.683e-011 19918 0 0 0 10165 -2.5807e-011 35027 0 0 0 22802 -8241.8 74863 0 0 0 -21978 2.5238e-011 35027 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
9.0659e+008 -4.1209e+007 0 0 0 0 -1.1951e+009 5.3571e+008 0 0 0 0 -2.1016e+009 4.1209e+007 0 0 0 0 2.3901e+009 -5.3571e+008 0 0 0 0
4.1209e+007 -1.6484e+008 0 0 0 0 5.3571e+008 -6.5934e+008 0 0 0 0 -4.1209e+007 -4.9451e+008 0 0 0 0 -5.3571e+008 1.3187e+009 0 0 0 0
0 0 2747.3 -2747.3 -10165 0 0 0 -3571.4 -1373.6 -10989 0 0 0 -9615.4 274.73 -21978 0 0 0 10440 -4395.6 -22802 0
0 0 2747.3 2747.3 1.5007e-011 0 0 0 1373.6 10989 1.3642e-011 0 0 0 274.73 2747.3 2.5011e-011 0 0 0 -4395.6 24725 8241.8 0
0 0 -10165 2.0464e-011 35027 0 0 0 10989 -2.3192e-011 19918 0 0 0 21978 -2.0464e-011 35027 0 0 0 -22802 8241.8 74863 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
我是编的三角形四边形混合的板壳元,这是四边形在局部坐标下组合的单元刚度矩阵,在把这个经过坐标变化到总体坐标下面求解,2.39010989010989 0.26785714285714 0.46394218059881 0 0 0-2.10164835164835
0.26785714285714 0.32967815934066 0.57100124027472-0.00000380670507 0.00000987364128 0.00001710164835 0.02060439560440
0.46394218059881 0.57100124027472 0.98901359890110 0.00000219780220-0.00000570054945-0.00000987364128 0.03568786004606
0-0.00000380670507 0.00000219780220 0.00002472527473-0.00000412087912-0.00000713757201 0
0 0.00000987364128-0.00000570054945-0.00000412087912 0.00001871565934 0.00003241647288 0
0 0.00001710164835-0.00000987364128-0.00000713757201 0.00003241647288 0.00005614697802 0
-2.10164835164835 0.02060439560440 0.03568786004606 0 0 0 2.39010989010989
-0.02060439560440-0.12363358516484-0.21412299669270 0.00000023791907-0.00000951676268-0.00001648351648-0.26785714285714
-0.03568786004606-0.21412299669270-0.37088152472527-0.00000013736264 0.00000549450549 0.00000951676268-0.46394218059881
0 0.00000023791907-0.00000013736264 0.00000274725275-0.00000000000000-0.00000000000000 0
0 0.00000951676268-0.00000549450549 0.00000000000000 0.00000875686813 0.00001516734052 0
0 0.00001648351648-0.00000951676268 0.00000000000000 0.00001516734052 0.00002627060440 0
-1.19505494505495-0.26785714285714-0.46394218059881 0 0 0 0.90659340659341
-0.26785714285714-0.16483784340659-0.28550133389456 0.00000118959533-0.00000475838134-0.00000824175824-0.02060439560440
-0.46394218059881-0.28550133389456-0.49450638736264-0.00000068681319 0.00000274725275 0.00000475838134-0.03568786004606
0-0.00000118959533 0.00000068681319 0.00001098901099-0.00000000000000-0.00000000000000 0
0 0.00000475838134-0.00000274725275 0.00000000000000 0.00000497939560 0.00000862456618 0
0 0.00000824175824-0.00000475838134 0.00000000000000 0.00000862456618 0.00001493818681 0
0.90659340659341-0.02060439560440-0.03568786004606 0 0 0-1.19505494505495
0.02060439560440-0.04120673076923-0.07137690968746 0.00000237919067 0.00000440150274 0.00000762362637 0.26785714285714
0.03568786004606-0.07137690968746-0.12362568681319-0.00000137362637-0.00000254120879-0.00000440150274 0.46394218059881
0-0.00000237919067 0.00000137362637 0.00000274725275 0.00000000000000 0.00000000000000 0
0 0.00000440150274-0.00000254120879 0.00000000000000 0.00000875686813 0.00001516734052 0
0 0.00000762362637-0.00000440150274 0.00000000000000 0.00001516734052 0.00002627060440 0
Columns 8 through 14
-0.02060439560440-0.03568786004606 0 0 0-1.19505494505495-0.26785714285714
-0.12363358516484-0.21412299669270 0.00000023791907 0.00000951676268 0.00001648351648-0.26785714285714-0.16483784340659
-0.21412299669270-0.37088152472527-0.00000013736264-0.00000549450549-0.00000951676268-0.46394218059881-0.28550133389456
0.00000023791907-0.00000013736264 0.00000274725275 0.00000000000000 0.00000000000000 0 0.00000118959533
-0.00000951676268 0.00000549450549-0.00000000000000 0.00000875686813 0.00001516734052 0-0.00000475838134
-0.00001648351648 0.00000951676268-0.00000000000000 0.00001516734052 0.00002627060440 0-0.00000824175824
-0.26785714285714-0.46394218059881 0 0 0 0.90659340659341-0.02060439560440
0.32967815934066 0.57100124027472-0.00000380670507-0.00000987364128-0.00001710164835 0.02060439560440-0.04120673076923
0.57100124027472 0.98901359890110 0.00000219780220 0.00000570054945 0.00000987364128 0.03568786004606-0.07137690968746
-0.00000380670507 0.00000219780220 0.00002472527473 0.00000412087912 0.00000713757201 0 0.00000237919067
-0.00000987364128 0.00000570054945 0.00000412087912 0.00001871565934 0.00003241647288 0-0.00000440150274
-0.00001710164835 0.00000987364128 0.00000713757201 0.00003241647288 0.00005614697802 0-0.00000762362637
0.02060439560440 0.03568786004606 0 0 0 2.39010989010989 0.26785714285714
-0.04120673076923-0.07137690968746 0.00000237919067-0.00000440150274-0.00000762362637 0.26785714285714 0.32967815934066
-0.07137690968746-0.12362568681319-0.00000137362637 0.00000254120879 0.00000440150274 0.46394218059881 0.57100124027472
-0.00000237919067 0.00000137362637 0.00000274725275-0.00000000000000-0.00000000000000 0 0.00000380670507
-0.00000440150274 0.00000254120879-0.00000000000000 0.00000875686813 0.00001516734052 0-0.00000987364128
-0.00000762362637 0.00000440150274-0.00000000000000 0.00001516734052 0.00002627060440 0-0.00001710164835
0.26785714285714 0.46394218059881 0 0 0-2.10164835164835 0.02060439560440
-0.16483784340659-0.28550133389456 0.00000118959533 0.00000475838134 0.00000824175824-0.02060439560440-0.12363358516484
-0.28550133389456-0.49450638736264-0.00000068681319-0.00000274725275-0.00000475838134-0.03568786004606-0.21412299669270
-0.00000118959533 0.00000068681319 0.00001098901099 0.00000000000000 0.00000000000000 0-0.00000023791907
-0.00000475838134 0.00000274725275-0.00000000000000 0.00000497939560 0.00000862456618 0-0.00000951676268
-0.00000824175824 0.00000475838134-0.00000000000000 0.00000862456618 0.00001493818681 0-0.00001648351648
Columns 15 through 21
-0.46394218059881 0 0 0 0.90659340659341 0.02060439560440 0.03568786004606
-0.28550133389456-0.00000118959533 0.00000475838134 0.00000824175824-0.02060439560440-0.04120673076923-0.07137690968746
-0.49450638736264 0.00000068681319-0.00000274725275-0.00000475838134-0.03568786004606-0.07137690968746-0.12362568681319
-0.00000068681319 0.00001098901099 0.00000000000000 0.00000000000000 0 0.00000237919067-0.00000137362637
0.00000274725275-0.00000000000000 0.00000497939560 0.00000862456618 0 0.00000440150274-0.00000254120879
0.00000475838134-0.00000000000000 0.00000862456618 0.00001493818681 0 0.00000762362637-0.00000440150274
-0.03568786004606 0 0 0-1.19505494505495 0.26785714285714 0.46394218059881
-0.07137690968746-0.00000237919067-0.00000440150274-0.00000762362637 0.26785714285714-0.16483784340659-0.28550133389456
-0.12362568681319 0.00000137362637 0.00000254120879 0.00000440150274 0.46394218059881-0.28550133389456-0.49450638736264
-0.00000137362637 0.00000274725275-0.00000000000000-0.00000000000000 0 0.00000118959533-0.00000068681319
0.00000254120879-0.00000000000000 0.00000875686813 0.00001516734052 0 0.00000475838134-0.00000274725275
0.00000440150274-0.00000000000000 0.00001516734052 0.00002627060440 0 0.00000824175824-0.00000475838134
0.46394218059881 0 0 0-2.10164835164835-0.02060439560440-0.03568786004606
0.57100124027472 0.00000380670507-0.00000987364128-0.00001710164835 0.02060439560440-0.12363358516484-0.21412299669270
0.98901359890110-0.00000219780220 0.00000570054945 0.00000987364128 0.03568786004606-0.21412299669270-0.37088152472527
-0.00000219780220 0.00002472527473-0.00000412087912-0.00000713757201 0-0.00000023791907 0.00000013736264
0.00000570054945-0.00000412087912 0.00001871565934 0.00003241647288 0 0.00000951676268-0.00000549450549
0.00000987364128-0.00000713757201 0.00003241647288 0.00005614697802 0 0.00001648351648-0.00000951676268
0.03568786004606 0 0 0 2.39010989010989-0.26785714285714-0.46394218059881
-0.21412299669270-0.00000023791907 0.00000951676268 0.00001648351648-0.26785714285714 0.32967815934066 0.57100124027472
-0.37088152472527 0.00000013736264-0.00000549450549-0.00000951676268-0.46394218059881 0.57100124027472 0.98901359890110
0.00000013736264 0.00000274725275 0.00000000000000 0.00000000000000 0 0.00000380670507-0.00000219780220
0.00000549450549-0.00000000000000 0.00000875686813 0.00001516734052 0 0.00000987364128-0.00000570054945
0.00000951676268-0.00000000000000 0.00001516734052 0.00002627060440 0 0.00001710164835-0.00000987364128
Columns 22 through 24
0 0 0
-0.00000237919067 0.00000440150274 0.00000762362637
0.00000137362637-0.00000254120879-0.00000440150274
0.00000274725275 0.00000000000000 0.00000000000000
0.00000000000000 0.00000875686813 0.00001516734052
0.00000000000000 0.00001516734052 0.00002627060440
0 0 0
-0.00000118959533-0.00000475838134-0.00000824175824
0.00000068681319 0.00000274725275 0.00000475838134
0.00001098901099-0.00000000000000-0.00000000000000
0.00000000000000 0.00000497939560 0.00000862456618
0.00000000000000 0.00000862456618 0.00001493818681
0 0 0
-0.00000023791907-0.00000951676268-0.00001648351648
0.00000013736264 0.00000549450549 0.00000951676268
0.00000274725275-0.00000000000000-0.00000000000000
0.00000000000000 0.00000875686813 0.00001516734052
0.00000000000000 0.00001516734052 0.00002627060440
0 0 0
0.00000380670507 0.00000987364128 0.00001710164835
-0.00000219780220-0.00000570054945-0.00000987364128
0.00002472527473 0.00000412087912 0.00000713757201
0.00000412087912 0.00001871565934 0.00003241647288
0.00000713757201 0.00003241647288 0.00005614697802
这是经过坐标变换后的矩阵。接下来就是直接用MATLAB的inv乘以力的矩阵进行求解,求解的时候就出现ans =
2.564461764748704e+035
Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 2.450094e-023.。其中的answer为经过约束处理以后的行列式的值。请问这个怎么解决啊? What I mean is that you put your finite element formulation here. None of us can tell you anything by looking at these numbers. 本帖最后由 whutjp 于 2012-4-16 22:09 编辑
李健 发表于 2012-4-15 21:19 http://forum.simwe.com/static/image/common/back.gif
2.3901e+009 5.3571e+008 0 0 0 0 -2.1016e+009 -4.1209e+007 0 0 0 0 -1.1951e+009 -5.3571e+008 0 0 0 ...
置大数法就是将K(i,i)设置为e15*K(i,i),相应地,载荷变化为e15*K(i,i)*u,这样的话方程组就可以解了!
式中的e15就是一个大数
也就是说吧k(6,6)相应的置大数? 李健 发表于 2012-4-16 23:27 static/image/common/back.gif
也就是说吧k(6,6)相应的置大数?
请lz仔细翻阅王勖成老师《有限单元法》
p73页 2.2.6 引入位移边界条件
以及p400页11.4.2 单元刚度矩阵从局部坐标系到总体坐标系的转换 李健 发表于 2012-4-16 23:27 static/image/common/back.gif
也就是说吧k(6,6)相应的置大数?
pasuka说的好,另外在置大数之后求解的时候如果还是提示矩阵近乎于奇异矩阵,那还必须用LDLT处理 这是matlab源程序!还望高手指点。 边界约束条件跟坐标变换应该是没问题的!刚度矩阵也不是奇异,主要是刚度矩阵的条件数很大。导致是病态的,我刚才把源程序上传了。再瞧瞧看! 李健 发表于 2012-4-17 16:02 static/image/common/back.gif
边界约束条件跟坐标变换应该是没问题的!刚度矩阵也不是奇异,主要是刚度矩阵的条件数很大。导致是病态的, ...
看来lz并没有仔细阅读王勖成老师的书里面的相关章节
壳单元刚度阵中的z方向转角对应的刚度等于零或者置大数就可以了吗?
条件数很大不假,但是刚度阵满秩了吗?
pasuka 发表于 2012-4-17 21:45 static/image/common/back.gif
看来lz并没有仔细阅读王勖成老师的书里面的相关章节
壳单元刚度阵中的z方向转角对应的刚度等于零或者置大 ...
那到底咋处理额?就指点!
页:
[1]
2