appleseed05 发表于 2007-6-29 17:05

对于非线性数值算法的一点小探讨

看了前两天咕噜噜的帖子《关于非线性振动的数值解法》,挺有感触

我刚开始做算法,有点小心得,交流交流:
现在解动力学方程的方法一般有以下几种:
1.Rk,最准确但是最慢,对初参数很敏感,刚性方程(无阻尼),基本没办法计算,超过8个节点基本算不动了(无论matlab还是fortran),所以基本拿他来算小自由度的或者验证算法用。
2.Newmark用的最多,无条件稳定(但是对系统稳定性域度不高和对初值不好的情况下不一定是收敛的),计算比较快,精度也还可以。但是存在一个很大的不足就是存在相位滞后和幅值衰减,对线性系统影响不大,非线性的很难说。
3.精细积分法,这个接触的不多,但是我知道这个方法精度比较高,但是要对刚度修正,容易给不准,而且往往用这个方法处理后矩阵变成了指数型的满阵,计算量增大,用的人不太多。
4.rosonbrouk(好像是这么拼:lol )并行算法,效率高,但是不太成熟,少有人用。

所以现在用的最多的也比较可行的是Newmark,但是还有很多的工作要做来提高精度,减小误差,增加实用性。
所以我要努力了:lol :lol :lol

大家拍砖,活活

[ 本帖最后由 无水1324 于 2007-6-29 18:38 编辑 ]

wanyeqing2003 发表于 2007-6-29 17:44

对于Newmark方法的时间滞后问题,可以通过减小时间间隔,也就是细化处理的方法解决。

appleseed05 发表于 2007-6-29 18:11

原帖由 wanyeqing2003 于 2007-6-29 17:44 发表 http://www.chinavib.com/forum/images/common/back.gif
对于Newmark方法的时间滞后问题,可以通过减小时间间隔,也就是细化处理的方法解决。


但是对于非线性系统,非线性油膜力有根号项,为了能够计算,这样就已经不得不使时间间隔变得很小了(比如pi/50000),如果再减小时间间隔。对于多跨转子,自由度往往比较高。计算时间就会非常长。
另外Newmark在计算转子动力学问题是已经很多次碰到这样一个问题:
在给定的不平衡质量条件下,二阶临界转速对应的峰值往往大于一阶,过二阶后幅值也下不来,这是一个很需要解决的问题,各位有什么好方法?交流交流。(图中画圈的部分,这个结果相对来说还算比较不错的了)

无水1324 发表于 2007-6-29 18:39

刚性方程(无阻尼)? 这个什么意思?

appleseed05 发表于 2007-6-29 18:54

就是在动力学方程:Mx‘’+Kx=F(t)

无水1324 发表于 2007-6-30 09:31

我是问你认为刚性方程==无阻尼?

wanyeqing2003 发表于 2007-6-30 10:28

原帖由 appleseed05 于 2007-6-29 18:11 发表 http://www.chinavib.com/forum/images/common/back.gif



但是对于非线性系统,非线性油膜力有根号项,为了能够计算,这样就已经不得不使时间间隔变得很小了(比如pi/50000),如果再减小时间间隔。对于多跨转子,自由度往往比较高。计算时间就会非常长。
另外N ...
是的,提高计算精度需要付出增加计算量的代价。

wanyeqing2003 发表于 2007-6-30 10:30

既然你的时间间隔已经非常小了,“相位滞后”的问题就不会有太多的影响了。

flybaly 发表于 2007-7-1 15:49

这个“相位滞后”是指局部还是整体,好比说是局部误差还是全局误差?
此外,万兄有没有求解过非线性项中包含f(x,x')这样的非线性方程组,就是所谓的newmark-增量算法,如果有的话,强烈建议推荐几篇论文看看,先谢谢了。。。

咕噜噜 发表于 2007-7-1 16:18

滞后应该是整体误差来说吧
万老师有没有flybaly 说的论文,推荐一下,我也看看

[ 本帖最后由 无水1324 于 2007-7-1 16:45 编辑 ]

wanyeqing2003 发表于 2007-7-2 13:32

原帖由 flybaly 于 2007-7-1 15:49 发表 http://www.chinavib.com/forum/images/common/back.gif
这个“相位滞后”是指局部还是整体,好比说是局部误差还是全局误差?
此外,万兄有没有求解过非线性项中包含f(x,x')这样的非线性方程组,就是所谓的newmark-增量算法,如果有的话,强烈建议推荐几篇论文看看, ...
在用数值方法分析时,我是这样考虑的。
1、将问题分为运动方程和系数关系两部分处理;
2、运动方程中的变量,按照数值方法处理;
3、系数分析则根据每一步迭代的中间结果来计算系数。
按照这个思路分析过一些实例,效果还是蛮好的。

wanyeqing2003 发表于 2007-7-2 13:34

关于你们提到的论文,我写过一些,已经在振动论坛上介绍过,你们可以查阅一下。

咕噜噜 发表于 2007-7-2 15:55

没这么做过,考虑一下

gghhjj 发表于 2007-7-3 05:35

原帖由 wanyeqing2003 于 2007-6-29 17:44 发表 http://www.chinavib.com/forum/images/common/back.gif
对于Newmark方法的时间滞后问题,可以通过减小时间间隔,也就是细化处理的方法解决。

这个显然不是一种好办法,对于简单的系统倒没什么,但是到了实际工程问题,计算代价太大

gghhjj 发表于 2007-7-3 05:37

原帖由 无水1324 于 2007-6-30 09:31 发表 http://www.chinavib.com/forum/images/common/back.gif
我是问你认为刚性方程==无阻尼?

只能说上面的方程式刚性方程,但两者并不是等价的,刚性方程的定义
特征值的实部为负数,实部最大的的特征值的实部与实部最小的的特征值的实部的比值远大于1
页: [1] 2 3
查看完整版本: 对于非线性数值算法的一点小探讨