www.gusucode.com > matlab非线性混凝土模型计算分析源码程序 > linear.m

    function [d,v,a]=linear(para,np,per,xg,t,dt)
st=length(xg);
m=1;%先假定为单位质量;
k1=m*(2*pi/per)^2;%初始弹性刚度,计算时频反应谱是一个系列;
%此为恢复力模型输入参数;
eta=0.05;
txg=zeros(1,2);
x1=zeros(1,3);
x2=zeros(1,3);
x1(3)=-xg(1);
for nt=1:st    
	if (nt==1)%初始时刻位移和速度为零,加速度为负初始时刻地震加速度;
        d(1)=0;
        v(1)=0;
        a(1)=-xg(1);
        ff(1)=0;
	else
		txg(1)=xg(nt-1);
		txg(2)=xg(nt);
        [x2]=newmark_single(dt,k1,m,eta,txg,x1);
        f2=k1*x2(1);
		d(nt)=x2(1);
		v(nt)=x2(2);
		a(nt)=x2(3);
        x1=x2;
        ff(nt)=f2;
    end  
end