声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3801|回复: 28

[线性振动] 振型叠加法和Newmark法计算结果不同

[复制链接]
发表于 2007-11-29 09:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
求解线性微分方程,在时域中,用振型叠加法和Newmark法计算得出的结果很不一样,这是为什么呢

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

发表于 2007-11-30 08:46 | 显示全部楼层
可能是振型叠加法的模态数取少了,可以试着多取一些模态
发表于 2007-11-30 09:00 | 显示全部楼层
我做过比较,会有一些差别,但不会差太多。
发表于 2007-11-30 12:20 | 显示全部楼层
振型叠加法:

1往往不考虑初始条件,,Newmark解法中则包含了初始条件

2.模态分解中一般要求阻尼可解藕,当阻尼不可解藕时,Newmark仍可以继续,当时振型叠加法往往需要将阻尼矩阵近似为可解藕矩阵,从而导致差异

3.当然Newmark中步长不能太大

评分

1

查看全部评分

发表于 2007-11-30 13:53 | 显示全部楼层

回复 #3 wanyeqing2003 的帖子

这里有差别,我们该怎么评判解的正确性呢?
发表于 2007-11-30 15:30 | 显示全部楼层
Newmark方法是在时域中的分析,需要提供初值条件,也就是需要设置初始位移和速度。

而振型叠加法是在频域内变换,对于解耦后的运动方程,可以在时域,也可以在频域内分析。
发表于 2007-11-30 15:32 | 显示全部楼层
对于短时间内计算结果,时域分析和频域分析会有较大的偏差。这是因为存在初值的影响。经过一段长时间后,这样的偏差会减小。

频域分析注重的是稳态结果,所以初值影响应该忽略。

就方法本身来说振型叠加法和Newmark方法也会有一些差别,不过对于稳态响应和简单模型来说,误差不会太大。复杂模型难说。
 楼主| 发表于 2007-11-30 19:33 | 显示全部楼层
就以单自由度系统来说吧,考虑阻尼比为0.05,质量为0.5,刚度为1
初始条件X0,V0均为0;
用在正弦激励(正弦激励为f=2*sin(5*t))下,单自由度系统响应的位移精确值和Newmark法出来的图形差距也很大,(Newmark的步长为0.01)。

也不知道为什么差距那么大
发表于 2007-12-1 09:26 | 显示全部楼层
能不能把比较的图形,或者数据提供上来,以便于分析讨论。

按道理说,单自由度简单系统应该不会有多少差别。
发表于 2007-12-1 10:01 | 显示全部楼层
Newmark可能结果能好些
 楼主| 发表于 2007-12-1 13:31 | 显示全部楼层
图一是精确解图形

图二是Newmark法做出的解图形
1.JPG
2.JPG
 楼主| 发表于 2007-12-1 13:36 | 显示全部楼层
%这是精确解程序
clear all
close all
m=0.5;
c=0.05;
k=1;
x0=0;
v0=0;
tf=30;
delt=0.001;
w=5;
f0=2;
wn=sqrt(k/m);
z=c/(2*m*wn);
lan=w/wn;
wd=wn*sqrt(1-z^2);
A=sqrt(((v0+z*wn*x0)^2+(x0*wd)^2)/wd^2);
t=0:tf/1000:tf;
phi=atan2(2*z*lan,1-lan^2);
phi1=atan2(v0+z*wn*x0,x0*wd);
B=f0/(k*sqrt((1-lan^2)^2+(2*lan*z)^2));
x=A*exp(-z*wn*t).*sin(wd*t+phi1)+B*sin(w*t+phi);
plot(t,x);grid
xlabel('时间(s)')
ylabel('位移')
title('位移与时间的关系')

%这是Newmark法的程序
close all
clear all
tf=30;
delt=0.01;
fid1=fopen('disp1','wt');
m=0.5;
c=0.05;
k=1;
x0=0;
v0=0;
bita=1/6;
md=inv(m+delt/2*c+bita*delt^2*k);
ml=inv(m);
for t=0:delt:tf
    f=2*sin(5*t);
    if t==0
        xdd0=ml*(f-k*x0-c*v0);
    else
        xdd=md*(f-c*(v0+delt/2*xdd0)-k*(x0+delt*v0+(1/2-bita)*delt^2*xdd0));
        xd=v0+delt/2*(xdd0+xdd);
        x=x0+delt*v0+(1/2-bita)*delt^2*xdd0+bita*delt^2*xdd;
        xdd0=xdd;
        v0=xd;
        x0=x;
        fprintf(fid1,'%10.4f',x0);
    end
end
fid2=fopen('disp1','rt');
n=tf/delt;
x=fscanf(fid2,'%f');
t=1:n;
figure('numbertitle','off','name','自由度1的位移','pos',[450 180 400 420]);
plot(t,x),grid on,xlabel('时间*0.1秒'),title('自由度1的位移与时间的关系');
发表于 2007-12-1 15:36 | 显示全部楼层
从图形看:
1、精确解中,没有包含初值影响的因素;
2、newmark方法好像有一些谐波分量。
请检查数据。

我现在手边没有资料,我有时间再帮你看看。
发表于 2007-12-1 15:53 | 显示全部楼层
我把原来用Newmark方法和振型叠加法分析的结果放上来,供参考。
比较.JPG
发表于 2007-12-1 15:54 | 显示全部楼层
这是一个两自由度模型。脉冲激励。结果非常接近。误差小于3%。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-6 02:11 , Processed in 0.076212 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表