文档介绍:结构动力学振型分析
MATALAB作业
某三层钢筋混凝土结构,结构的各层特性参数为:第一层到第三层质量m分别为2400kg,1200kg,1200kg,*10^4N/m,*10^4N/m,^4N/m.。,。
M3=1200kg
K3=*10^4N/m.
M2=1200kg
K2=*10^4N/m
M1=2400kg
K1=*10^4N/m
用振型分解法求解结构地震反应的MATLAB层序如下,编制该程序的程序框图以下所示
%clear
clc
%地震波数据
xs=2*;
dzhbo=load('');
ag=dzhbo**xs;
dt=;
ndzh=400;
cn=3; %cn为结构的层数,即质点数
m0=[ ]*1e+3; %结构各层质量 k0=[ ]*1e+5; %结构各层刚度
l=diag());
m=diag(m0); %计算质量矩阵
[ik]=matrixju(); %计算刚度矩阵
[x,d]=eig(ik,m); %结构动力特性求解
d=diag(sqrt(d)); %求解结构圆频率
for i=;
[d1(i),j]=min(d);
xgd(:,i)=x(:,j);
d(j)=max(d)+1;
end %以此循环对所求频率和振型进行排序 w=d1; %所求自振频率
x=xgd; %所求结构主振型
a1=2*w(1)*w(2)*(*w(2)-*w(1))/(w(2)^2-w(1)^2); a2=2*(*w(2)-*w(1))/(w(2)^2-w(1)^2);
for j=
x(:,j)=x(:,j)/,j);
znb0(j)=(a1+a2*w(j)^2)/2/w(j);
zhcan(j)=(x(:,j))'*m*l/((x(:,j))'*m*x(:,j));
%求解振型参数
[dlt(j,:),eler(j,:)]=zxzj(znb0(j),w(j),ag); end
%求解结构各层的地震反应
for i=;
disp1=0;
accel1=0;
for j=
disp0=zhcan(j)*dlt(j,:)*x(i,j);
accel0=zhcan(j)*eler(j,:)*x(i,j);
disp1=disp1+disp0;
accel1=accel1+accel0;
end
disp(i,:)=disp1;
accel(i,:)=accel1;
end
t=0:dt:ndzh*dt;
%subplot(2,2,1)
%plot(t,disp(3,:)*1e+3,'k-')
%subplot(2,2,2)
plot(t,accel(3,:),'k-')
%子程序
%用于求解单自由度结构