资源简介
基础隔震结构简化成串联多质点系计算动力响应,采用Bouc-wen模型模拟隔震支座,用Newmark逐步积分法计算。
代码片段和文件信息
%%%%———结构动力学多自由度体系计算,包括隔震支座,采用Newmark法为基础,—————
%————考虑Bouc-Wen模型进行计算——————————————————
clear; %清除环境中存在的变量
clc; %清屏
tic; %计算程序运行时间
%—————————————初始量设定——————————————————————
%————质量矩阵——————————————
m=[400 520 520 520 520 520 520]*1e3; %各层的集中质量单位为kg
M=diag(m); %质量矩阵
cn=length(m); %计算质点数
%————————刚度矩阵——————————
kkk=[218.7 800 800 800 800 800 800]*1e6; %各层层间刚度,单位为N/m
K=matrixju(kkkcn); %初始刚度矩阵
%——————阻尼矩阵——————————————
c(1)=2*0.272*sqrt(m(1)*kkk(1));
for i=2:cn
c(i)=2*0.05*sqrt(m(i)*kkk(i));%各层阻尼系数,单位是N*sec/m
end
%为形成阻尼矩阵所用
C=matrixju(ccn); %初始刚度矩阵
%————————————考虑隔震支座计算中涉及的参数取值————————————
mb=m(1); %隔震支座的质量,单位为 kg
kb=kkk(1); %隔震支座的初始刚度,单位为 N/m
cb=c(1); %隔震支座的阻尼,单位为 N*sec/m
alphaB=0.1;
DyB=0.04; %单位换算成m
AB=1.0;
betaB=0.8;
gamaB=0.2;
nB=1;
%———————————Newmark法计算多自由度结构反应———————————————
%——————————————基本参数设定————————————————————
dt=0.02; %计算时间步长,同地震波数据时间步长一致
%for i=1:500
%acceleration0(i)=4*sin(15.7*dt*i);
%end
global EL;%导入加速度数据
acceleration0=EL*0.01*0.7/2.2; %换算成m/s^2 (1:100)
t=0:dt:(length(acceleration0)-1)*dt; %计算时长
gama=0.5; %定义gama值
beta=0.25; %定义beta值
L=ones(cn1); %影响系数取值
p=-M*L*acceleration0‘; %地震力作用
%———————Newmark法———————————————————————
%——————参数计算——————
Gaa=M/(beta*dt)+gama*C/beta;
Gbb=M/(2*beta)+dt*C*(gama/(2*beta)-1);
%————————初始量赋值——————————
displacement(:1)=zeros(cn1); %初始相对位移向量
velocity(:1)=zeros(cn1); %初始相对速度向量
acceleration(:1)=inv(M)*(p(:1)-K*displacement(:1)-C*velocity(:1)); %初始相对加速度向量
%——————隔震支座的初始量赋值——————————
RestoringForce(1)=0; % The stiffness restoring force of the lead-core rubber-bearing
xb(1)=0; %位移
dxb(1)=0; %速度,位移对时间的导数
vb(1)=0; %跟时间有关的参数
dvb(1)=0; %vb对时间的导数
%——————做循环计算—————————————————————————————
N=length(acceleration0)-1;
for i=1:N
%——————————————————————————————————————
GKK=K+gama*C/(beta*dt)+M/(beta*dt^2);
dp(:i)=(p(:i+1)-p(:i))+Gaa*velocity(:i)+Gbb*acceleration(:i);
dq(:i)=GKK\dp(:i);
dq1(:i)=gama*dq(:i)/(beta*dt)-gama*velocity(:i)/beta+dt*acceleration(:i)*(1-gama/(2*beta));
dq2(:i)=dq(:i)/(beta*dt^2)-velocity(:i)/(beta*dt)-acceleration(:i)/(2*beta);
displacement(:i+1)=displacement(:i)+dq(:i);
velocity(:i+1)=velocity(:i)+dq1(:i);
acceleration(:i+1)=acceleration(:i)+dq2(:i);
%%————————隔震支座刚度矩阵的修正计算—————————————————
xb(i+1)=displacement(1i+1); %隔震支座的相对位移
dxb(i+1)=velocity(1i+1); %隔震支座的相对速度
vb(i+1)=vb(i)+dvb(i)*dt;
dvb(i+1)=(AB*dxb(i)-betaB*abs(dxb(i))*abs(vb(i))^(nB-1)*vb(i)-gamaB*dxb(i)*abs(vb(i)^nB))/DyB;
dvbdvx=(AB-betaB*abs(dxb(i+1))/dxb(i+1)*(abs(vb(i+1)))^(nB-1)*vb(i+1)-gamaB*(abs(vb(i+1))^nB))/DyB;
kbb=alphaB*kb+(1-alphaB)*kb*DyB*dvbdvx;
K(11)=kkk(2)+kbb; %修正后的刚度并进入下一次的循环计算中
%%——————————————————————————————————————
RestoringForce(i+1)=alphaB*kb*xb(i+1)+(1-alphaB)*kb*DyB*vb(i+1);
end
%——————————————计算各层的绝对加速度————————————————
for i=1:length(m)
absacceleration(i:)=acceleration(i:)+acceleration0‘; %各层绝对加速度
q(i)=max(abs(absacceleration(i:)))/0.7;
end
qq=q‘ %加速度放大比
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5238 2014-03-04 00:39 Is.m
----------- --------- ---------- ----- ----
5238 1
- 上一篇:LBM格子波尔兹曼 matlab范例
- 下一篇:分数阶傅里叶变换
相关资源
- Pattern Recognition and Machine Learning(高清
- MATLAB 编程 第二版 Stephen J. Chapman 著
- 均值滤波和FFT频谱分析Matlab代码
- 《MATLAB扩展编程》代码
- HDB3码、AMI码的MATLAB实现
- 3点GPS定位MATLAB仿真
- MATLAB数字信号处理85个实用案例精讲入
- matlab从入门到精通pdf94795
- 欧拉放大论文及matlab代码
- 跳一跳辅助_matlab版本
- 全面详解LTE MATLAB建模、仿真与实现
- MIMO-OFDM无线通信技术及MATLAB实现_孙锴
- MATLAB Programming for Engineers 4th - Chapman
- matlab 各种谱分析对比
- 分数阶chen混沌matlab程序
- 基于粒子群算法的非合作博弈的matl
- MATLAB车流仿真 包括跟驰、延误
- matlab空间桁架计算程序
- 基于MATLAB的图像特征点匹配和筛选
- DMA-TVP-FAVAR
- GPS信号的码捕获matlab代码.7z
- 一维光子晶体MATLAB仿真代码吸收率折
- newmark法源程序
- 传统关联成像、计算鬼成像matlab
- pri传统分选算法
- 摆动滚子推杆盘形凸轮设计
- 医学图像重建作业matlab源码
- Matlab实现混沌系统的控制
- 检测疲劳驾驶
- Matlab锁相环仿真-Phase Locked Loop.rar
评论
共有 条评论