李健 发表于 2012-4-13 11:39:18

在用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为总体坐标下的刚度矩阵的行列式;请问各位前辈,这个问题怎么解决啊?

whutjp 发表于 2012-4-13 22:37:29

楼主,我最近也在研究有限元编程问题,能不能叫QQ交流下呢?
我的QQ:715405932

pasuka 发表于 2012-4-14 08:25:27

没有施加约束,刚度阵肯定是奇异的

whutjp 发表于 2012-4-14 10:35:36

pasuka 发表于 2012-4-14 08:25 static/image/common/back.gif
没有施加约束,刚度阵肯定是奇异的

你好,简单地写了下位移法的程序,发现与正确结果总是有个几倍的差距,请问这是怎么回事呢?

whutjp 发表于 2012-4-14 10:37:13

试试广义逆呢,pinv

李健 发表于 2012-4-14 12:45:59

施加了约束,矩阵不是奇异的行列式值不为0只是矩阵的条件数很大   导致矩阵式病态的

李健 发表于 2012-4-14 12:47:40

用广义逆能解但是结果不对啊!

whutjp 发表于 2012-4-14 18:07:52

李健 发表于 2012-4-14 12:47 static/image/common/back.gif
用广义逆能解但是结果不对啊!

那你试试对矩阵进行相应地处理呢(置大数、主置法呢)

tonnyw 发表于 2012-4-14 22:11:16

We need you to put your derivation here so that we can have a good look.

李健 发表于 2012-4-15 21:13:34

whutjp 发表于 2012-4-14 18:07 static/image/common/back.gif
那你试试对矩阵进行相应地处理呢(置大数、主置法呢)

哪个地方置大数啊?

李健 发表于 2012-4-15 21:19:50

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为经过约束处理以后的行列式的值。请问这个怎么解决啊?

tonnyw 发表于 2012-4-15 21:57:01

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:13

本帖最后由 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就是一个大数

李健 发表于 2012-4-16 23:27:18

也就是说吧k(6,6)相应的置大数?

pasuka 发表于 2012-4-17 10:35:36

李健 发表于 2012-4-16 23:27 static/image/common/back.gif
也就是说吧k(6,6)相应的置大数?

请lz仔细翻阅王勖成老师《有限单元法》
p73页 2.2.6 引入位移边界条件
以及p400页11.4.2 单元刚度矩阵从局部坐标系到总体坐标系的转换

whutjp 发表于 2012-4-17 12:22:14

李健 发表于 2012-4-16 23:27 static/image/common/back.gif
也就是说吧k(6,6)相应的置大数?

pasuka说的好,另外在置大数之后求解的时候如果还是提示矩阵近乎于奇异矩阵,那还必须用LDLT处理

李健 发表于 2012-4-17 16:00:46

       这是matlab源程序!还望高手指点。

李健 发表于 2012-4-17 16:02:36

边界约束条件跟坐标变换应该是没问题的!刚度矩阵也不是奇异,主要是刚度矩阵的条件数很大。导致是病态的,我刚才把源程序上传了。再瞧瞧看!

pasuka 发表于 2012-4-17 21:45:19

李健 发表于 2012-4-17 16:02 static/image/common/back.gif
边界约束条件跟坐标变换应该是没问题的!刚度矩阵也不是奇异,主要是刚度矩阵的条件数很大。导致是病态的, ...

看来lz并没有仔细阅读王勖成老师的书里面的相关章节
壳单元刚度阵中的z方向转角对应的刚度等于零或者置大数就可以了吗?
条件数很大不假,但是刚度阵满秩了吗?

李健 发表于 2012-4-17 21:48:20

pasuka 发表于 2012-4-17 21:45 static/image/common/back.gif
看来lz并没有仔细阅读王勖成老师的书里面的相关章节
壳单元刚度阵中的z方向转角对应的刚度等于零或者置大 ...

那到底咋处理额?就指点!
页: [1] 2
查看完整版本: 在用matlab编有限元程序时遇到的刚度矩阵病态