用matlab编程实现法计算多自由度体系的动力响应.docx
《用matlab编程实现法计算多自由度体系的动力响应.docx》由会员分享,可在线阅读,更多相关《用matlab编程实现法计算多自由度体系的动力响应.docx(10页珍藏版)》请在冰豆网上搜索。
用matlab编程实现法计算多自由度体系的动力响应
用matlab编程实现法计算多自由度体系的动力响应
LT
求解式(2-146)可得
,然后由式(2-143)和式(2-144)可解出
和
。
由此,Newmark-β法的计算步骤如下:
1.初始计算:
(1)形成刚度矩阵[K]、质量矩阵[M]和阻尼矩阵[C];
(2)给定初始值
,
和
;
(3)选择积分步长∆t、参数β、γ,并计算积分常数
,
,
,
,
,
,
,
;
(4)形成有效刚度矩阵
;
2.对每个时间步的计算:
(1)计算t+∆t时刻的有效荷载:
(2)求解t+∆t时刻的位移:
(3)计算t+∆t时刻的速度和加速度:
Newmark-β方法是一种无条件稳定的隐式积分格式,时间步长∆t的大小不影响解的稳定性,∆t的选择主要根据解的精度确定。
二、本文用
法计算的基本问题
四层框架结构在顶部受一个简谐荷载
的作用,力的作用时间
=5s,计算响应的时间为100s,分2000步完成。
阻尼矩阵由Rayleigh阻尼构造。
具体数据如下图:
图一:
结构基本计算简图
三、计算
法的源程序
m=[1,2,3,4];
m=diag(m);
k=[800-80000;
-8002400-16000;
0-16004800-3200;
00-32008000];
c=0.05*m+0.02*k;
f0=100;
t1=5;
nt=2000;
dt=0.01;
alfa=0.25;
beta=0.5;
a0=1/alfa/dt/dt;
a1=beta/alfa/dt;
a2=1/alfa/dt;
a3=1/2/alfa-1;
a4=beta/alfa-1;
a5=dt/2*(beta/alfa-2);
a6=dt*(1-beta);
a7=dt*beta;
d=zeros(4,nt);
v=zeros(4,nt);
a=zeros(4,nt);
fori=2:
nt
t=(i-1)*dt;
if(tke=k+a0*m+a1*c;
fe=f+m*(a0*d(:
i-1)+a2*v(:
i-1)+a3*a(:
i-1))+c*(a1*d(:
i-1)+a4*v(:
i-1)+a5*a(:
i-1));
d(:
i)=inv(ke)*fe;
a(:
i)=a0*(d(:
i)-d(:
i-1))-a2*v(:
i-1)-a3*a(:
i-1);
v(:
i)=v(:
i-1)+a6*a(:
i-1)+a7*a(:
i);
end
四、计算结果截图
最后程序分别计算出四个质点的位移、速度、加速度响应。
现将部分截图如下:
1、位移响应:
图二:
1质点的位移响应
图三:
4质点的位移响应
2、速度响应
图四:
1质点的速度响应
图五:
4质点的速度响应
3、加速度响应
图六:
1质点的加速度响应
图七:
4质点的加速度响应