# Matlab Program to Solve Spring Problem Assignment Solution.

## Instructions

Objective
Write a program to solve spring problem in matlab.

## Requirements and Specifications   Source Code

INTERPO function df = interpo(t, y, datagm, T) % Define the critical damping ratio zeta = 0.02; % Compute natural frequency wn = 2*pi/T; % Define the mass in pounds m = 1000; % Compute k k = wn^2 *m; % Get variables x = y(1); v = y(2); xg = datagm(t); df = zeros(2,1); df(1) = v; df(2) = -xg - 2*zeta*wn*v - wn^2 *x; % xpp end QUESTIONS clc, clear all, close all load ELCentro.mat % Define gravity value % g = 9.81; % m/s^2 g = 386.08; % in/s^2 % Scale acceleration fgm = fgm*g; figure plot(tgm, fgm), grid on xlabel('Time (s)') ylabel('Ground Acceleration $\frac{m}{s^{2}}$', 'interpreter', 'latex', 'fontsize', 18) %% Question 2 % Interpolate datagm = griddedInterpolant(tgm, fgm); %% Question 3: See file interpo.m %% Question 4 T = 1; x0 = [0, 1]; [t,y] = ode45(@(t,y)interpo(t,y,datagm,T), tgm, x0); x = y(:,1); v = y(:,2); % Compute acceleration a = diff(v); figure subplot(1,3,1) plot(t(1:end-1), a), grid on xlabel('Time (s)') ylabel('Acceleration $(\frac{in}{s^{2}})$', 'interpreter', 'latex', 'fontsize', 18) title('Acceleration vs. Time') subplot(1,3,2) plot(t, v), grid on xlabel('Time (s)') ylabel('Velocity $(\frac{in}{s})$', 'interpreter', 'latex', 'fontsize', 18) title('Velocity vs. Time') subplot(1,3,3) plot(t, x), grid on xlabel('Time (s)') ylabel('Displacement $(in)$', 'interpreter', 'latex', 'fontsize', 18) title('Displacement vs. Time') %% Question 5 % Now, use different values of T Ts = 0.1:0.1:3; % Vectors to store peak values of acceleration, displacement and velocity accPeaks = zeros(length(Ts),1); velPeaks = zeros(length(Ts),1); dispPeaks = zeros(length(Ts),1); for i = 1:length(Ts)     T = Ts(i);     [t,y] = ode45(@(t,y)interpo(t,y,datagm,T), t, x0);     x = y(:,1);     v = y(:,2);     % We compute acceleration by using the command diff     a = diff(v);     % Get peaks     accPeaks(i) = max(abs(a));     velPeaks(i) = max(abs(v));     dispPeaks(i) = max(abs(x)); end figure subplot(1,3,1) stem(Ts, accPeaks), grid on xlabel('Period {T (s)}') ylabel('Acceleration $(\frac{in}{s^{2}})$', 'interpreter', 'latex', 'fontsize', 18) title('Spectral Acceleration') subplot(1,3,2) stem(Ts, velPeaks), grid on xlabel('Period {T (s)}') ylabel('Velocity $(\frac{in}{s})$', 'interpreter', 'latex', 'fontsize', 18) title('Spectral Velocity') subplot(1,3,3) stem(Ts, dispPeaks), grid on xlabel('Period {T (s)}') ylabel('Displacement $(in)$', 'interpreter', 'latex', 'fontsize', 18) title('Spectral Displacement') %% Report % In this work an analysis of the dynamics of a structure under the effects of an earthquake (ground acceleration) % is carried out. Through integration methods and graphical analysis, the results of acceleration, velocity % and displacement of the structure are analyzed. % In Figure 1 we can observe the values of the ground acceleration for a time window of 54 seconds. % We can see that the ground acceleration reaches a maximum peak of 134.6 inches. % In Figure 2, we can see the dynamic results of the structure. We see that the structure suffers % a small displacement (maximum 6 inches) thanks to the damping effect that the structure has, which minimizes % the damage caused by earthquakes. % In Figure 3 we see the spectral analysis of the structure. This analysis is extremely important since it allows us to detect % if the structure is prone to greater damage for low or high frequency earthquakes. In this case, we see that % the structure is prone to damage for low frequencies (high periods), since we see that for longer periods % the displacement of the structure increases, which means that the oscillation amplitude is greater and % therefore it can break (taking as an example a structure similar to a skyscraper