请求帮助newmark法解一个动力学方程组
请教一个问题,用newmark法解一个动力学方程组,左边的M、C、K不变,右端的荷载向量序列不变,只改变加载的速度(例如由每0.2s加载一个荷载组变为每0.1s加载一个荷载组)。按常规理解,应该是加得越快,系统的加速度反应越大,但是结果相反。哪位高人帮分析一下?是方程推导错了还是newmark法编写错了?
困扰小弟很久了,忘高手帮忙啊!!!:handshake
[ 本帖最后由 无水1324 于 2007-12-17 19:04 编辑 ] 也不知道你的程序是什么样的,现给你我编的一个程序,你自己对照着看 clear;
close;
v0=0;u0=0;%系统的初始条件%
mm=1.0;c=2;k=50;%系统的物理参数
f0=10;w1=7;%外加载荷的幅值,频率
t0=0;tf=8;%采样的时间长度,也可以看成是开始和结束的时间
j=6;%选取的分辨率
n=2^j*tf;%离散的个数
dt=tf/n;%离散的长度
%*******************************************
%求在激励f(t)作用下系统的响应
%*******************************************
wn=sqrt(k/mm);%固有频率
ratio_ck=c/(2*mm*wn);%阻尼比
wd=wn*sqrt(1-ratio_ck^2);%阻尼频率
B0=f0/k;
Bd=wn^2*B0/sqrt((wn^2-w1^2)^2+(2*ratio_ck*wn*w1)^2);
if w1>=wn
fid=atan(2*ratio_ck*wn*w1/(w1^2-wn^2))+pi;
else
fid=atan(2*ratio_ck*wn*w1/(w1^2-wn^2));
end
a1=u0+2*ratio_ck*wn^3*w1*B0/((wn^2-w1^2)^2+(2*ratio_ck*wn*w1)^2);%初始条件所决定的参数
a2=(v0+ratio_ck*wn*u0)/wd-w1*wn^2*B0*(wn^2-w1^2-2*ratio_ck^2*wn^2)/(wd*(wn^2-w1^2)^2+wd*(2*ratio_ck*wn*w1)^2);
for i=0:n-1
t=t0+i*dt;
u1(i+1)=exp(-ratio_ck*wn*t)*(a1*cos(wd*t)+a2*sin(wd*t));%瞬态响应
u2(i+1)=Bd*sin(w1*t+fid);%稳态响应
f(i+1)=f0*sin(w1*t);%外加的激励
end
u=u1+u2;
u=u1+u2;%响应是两部分的叠加 非常感谢!不过你的是单自由度的,我的有30个自由度,阻尼矩阵还是非线性的,没法像你这样求解。 你的加载有点周期性感觉,是不是引起共振了? 是不是可以这样理解,你所加的为周期荷载,得到的结构的反应的周期应为所施加的荷载的周期,如你所说的0.1s,0.2s,而不是30个自由度的结构的自振周期,这样也许0.1s与自振周期靠得较近,故有此结果。 荷载是没有周期的,随机生成的,不过对于这个分析是固定的。 建议先做个简单的分析试试你的程序是否正确;
再将阻尼设为简单阻尼试试看是否还会出现你所述情况。
最后再分析一下你的非线性阻尼问题。
祝好。
页:
[1]