Board logo

标题: “大型”特征值求解问题 [打印本页]

作者: whoami    时间: 2009-7-9 10:01     标题: “大型”特征值求解问题

在STAAD中,对某些“大型”自由振动特征值问题,如果只计算默认的前六个振型,可能会遇到求解失败的情况。而此时,一般会出现如下的提示:


   **ERROR- ZERO ON DIAGONAL IN JACOBI ITERATION.

因为特征值计算是反应谱分析和时程分析的“前奏”,所以让程序能算下去很重要。

在实践中,我们发现可以通过两个命令干预:

1)告诉程序使用另外的初始试探向量进行特征向量的“萃取”,可使用命令“ SET SSVECT”,该命令需放在节点坐标(JOINT COORDINATE)命令之前(下面SET命令都有此要求)

2)使用 截断模态向量命令,要求程序计算更多的振型,可使用命令 “CUT OFF MODESHAPE n " ,程序默认算6阶,通常,这里需输入大于6的数。

STAAD默认进行特征值计算的算法是所谓的子空间迭代法,但如果求解失败,也可以又用户改为行列式搜索法(使用命令SET SOLUTION INCORE)。这两个解法的适用范围,请参见一般的FEA动力分析书籍(例如K J Bathe的书)。但在实践中发现,对求解失败的问题,通常更改算法用处不大。例如对本例上传的模型,更改算法后仍然失败。

这里上传一些简单的测试模型,是针对STAAD2006,2007做的(低版本的STAAD应该也能打开)。这个简单的模型类似一个烟囱,大概有4800个节点,按通常的子空间迭代法计算特征值失败,但通过使用SET SSVECT命令以及截断振型命令,可以正常计算出来了。

按K J Bathe的说法,特征值分析必然是迭代求解(因为特征值问题与特征多项式根的问题等价,而对大于5次的多项式,是没有显式的求解公式的,只能进行迭代近似计算)因此,必然的就有解的收敛与稳定性问题。各位做研究的高手,是否从数值算法的实现角度对一般情况下特征值求解失败的原因做一简单的归纳总结?

另外补充一点,上面所说是针对STAAD的传统的求解器而言,在最新的提供的所谓的高级求解器的STAAD2007版本,没有上述问题。具有高级求解器的LICENSE用户在程序执行时,自动调用高级求解器计算。如果用户愿意,可以使用SET STAR 0命令改用普通求解器计算。

附件: std2006.zip (2009-7-9 10:01, 282.9 K) / 下载次数 19
http://bbs.okok.org/attachment.php?aid=113925
作者: whoami    时间: 2009-7-9 13:54

一个类似的问题被我找到了

"lin" <linrunsong@sina.com> wrote:
>
>Error Message "**ERROR- ZERO ON DIAGONAL IN JACOBI ITERATION."I
>try
>adding 10 more modes to the cutoff modes and entering
>set solution incore
>
>command before any loads But no effect.how should I do?
>
>
>==== Sent via discussion.bentley.com. For more information,
>see http://discussion.bentley.com/help/ ====


==== Sent via discussion.bentley.com. For more information, see http://discussion.bentley.com/help/ ====


This message occurs either (1) when the first frequency is near zero, which indicates that some or all of the structure is unsupported in 1 or more directions; or (2) when STAAD's choice of starting vectors is insufficient.

If (1) above occurs, then solve a static case with selfweight y -1 selfweight x -0.3 selfweight z -0.3 If there are instabilities corrected, then the structure is not adequately supported (or inadequately connected) to solve dynamically. Correct the supports.

If (2) occurs, then enter a SET SSVECT command before the joint coordinates. Occasionally adding 10 more modes will also have the same positive effect on getting the Subspace iteration to avoid failure in the Jacobi step of the iteration.

For small problems the SET SOLUTION INCORE command may be used as a third option.




欢迎光临 中华钢结构论坛 China Structure Forum (http://bbs.okok.org/) Powered by Discuz! 5.0.0