function Myfunction()
clear all;
clc;
close all;
elcentro = load('elcentro.dat') ;
t = elcentro(:,1);
Ag = elcentro(:,2);
g = 9.81;
Dt = 0.02;
m = 1;
xi = 0.02;
endp = 31.18;
tn = 0:Dt:31.18;
T = 1;
omega = 2*pi/T;
k = (omega^2)*m;
c = 2*m*omega*xi;
gamma = 1/2;
beta = 1/6;
u(1) = 0;
v(1) = 0;
a(1) = 0;
keff = k +gamma*c/(beta*Dt) + m/(beta*Dt*Dt);
A = m/(beta*Dt)+gamma*c/beta;
B = m/(2*beta)+(Dt*c*((0.5*gamma/beta)-1));
u0 = u;
v0 = v;
a0 = a;
u_t1 = zeros(1,length(t)) ; u_t1(1) = u0 ;
v_t1 = zeros(1,length(t)) ; v_t1(1) = v0 ;
a_t1 = zeros(1,length(t)) ; a_t1(1) = a0 ;
for i = 2:(length(t)-Dt)
DF = -m*g.*(Ag(i+1)-Ag(i));
[t,u,v,a] = Newmark(t,A,B,DF,Dt,keff,u0,v0,a0,gamma,beta);
u_t1(:,i) = u(:,1)';
v_t1(:,i) = v(:,1)';
a_t1(:,i) = a(:,1)';
u0 = u;
v0 = v;
a0 = a;
t0 = t;
end
umax = max(abs(u_t1));
vmax = max(abs(v_t1));
amax = max(abs(a_t1));
fprintf('\n-------NEWMARK BETA METHOD-------\n');
fprintf('\nMaximum Response of a SDOF System\n\n');
fprintf('Maximum Displacement = %f\n',umax);
fprintf('Maximum Velocity = %f\n',vmax);
fprintf('Maximum Acceleration = %f\n',amax);
figure(1)
plot(tn,u_t1);
title('Displacement Response')
xlabel('Period(sec)');
ylabel('Displacement (m)');
saveas(gca,'Displacement2.tif');
figure(2)
plot(tn,v_t1);
title('Velocity Response')
xlabel('Period(sec)');
ylabel('Velocity (m/s)');
saveas(gca,'Velocity2.tif');
figure(3)
plot(tn,a_t1);
title('Acceleration Response')
xlabel('Period(sec)');
ylabel('Acceleration (m/s^2)');
saveas(gca,'Acceleration2.tif');
end
function [t,u,v,a] = Newmark (t,A,B,DF,Dt,keff,u0,v0,a0,gamma,beta)
DFbar = DF + A*v0+B*a0;
Du = DFbar/keff;
Dudot = gamma*Du/(beta*Dt)-((gamma*v0)/beta)+ Dt*a0*(1-0.5*(gamma/beta));
Dudotdot = Du/(beta*Dt*Dt)-v0/(beta*Dt)-a0/(2*beta);
u = u0+Du;
v = v0+Dudot;
a = a0+Dudotdot;
t = t+Dt;
end
Best Answer