Generation of Response Spectrum for a Given Ground Motion Component $u_g(t)$

  1. Define/obtain ground motion acceleration history ${{u}_{G}}(t)$; typically, the ground motion ordinates are defined with a time interval ($dt$) of 0.005 to 0.02 seconds.
  2. Select the natural vibration period Tn and damping ratio $\zeta$ of an SDOF system.
  3. Calculate the displacement response $u(t)$ of this SDOF system due to the ground motion ${{u}_{G}}(t)$ by any numerical method (e.g. Duhamel’s Integral).
  4. Determine the peak displacement, ${u}_{o}$, of the displacement response $u(t)$.
  5. The spectral ordinates, including spectral displacement (SD), pseudo spectral velocity (PSV) and pseudo spectral acceleration (PSA) are defined as: ${S}_{d} = {u}_{o}$, ${S}_{v} = (2*pi/{T}_{n})*{S}_{d}$, ${S}_{a} = (2*pi/{T}_{n})^2*{S}_{d}$
  6. Repeat the previous three steps for a range of ${T}_{n}$ (typically between 1 to 4 sec) and $\zeta$ (typically, $\zeta$ = 5% is used) values to cover all possible systems of interest.
  7. Plot Sd, Sv, Sa versus Tn
myexample.php
%% Elastic Response Spectra 
% This function is used to construct elastic response spectra including Displacement
% displacement spectrum, pseudo velocity spectrum and pseudo acceleration spectrum.
% The SDOF equation of motion is solved using the Newmark Linear Method in this function. 
 
%% @ Manish Kumar, IIT Bombay, 2017
 
%% SPEC Function Help:
% INPUTS:
% dt:     Time Interval (Sampling Time) of Record
% Ag:     Ground Motion Acceleration in g 
% zet:    Damping Ratio in percent (%); e.g. 5
% g:      Gravitational Constant; e.g. 9.81 m/s/s
% endp:   End Period of Spectra; e.g. 4 sec
 
% OUTPUTS:
% T:      Period of Structures (sec)
% Spa:    Elastic Pseudo Acceleration Spectrum
% Spv:    Elastic Pseudo Velocity Spectrum
% Sd:     Elastic Displacement Spectrum
 
function [Spa,Spv,Sd]=SPEC(dt,Ag,zet,g,T)
u=zeros(length(Ag),1);
v=zeros(length(Ag),1);
ac=zeros(length(Ag),1);
Ag(end+1)=0;
T(1,1)=0.00;
for j=1:length(T)                          % equation of motion(Newmark linear method)
    omega(j,1)=2*pi/T(j);      % Natural Frequency
    m=1;       
    k=(omega(j))^2*m;
    c=2*m*omega(j)*zet/100;
    K=k+3*c/dt+6*m/(dt)^2;
    a=6*m/dt+3*c;
    b=3*m+dt*c/2;
 
     u(1,1)=0;                      %initial conditions
     v(1,1)=0;
     ac(1,1)=(-m*Ag(1,1)-c*v(1,1)-k*u(1,1))/m;
 
  for i=1:length(u)-1
     df=-m*(Ag(i+1)-Ag(i))+a*v(i,1)+b*ac(i,1);  % delta Force
     du=df/K;
     dv=3*du/dt-3*v(i,1)-dt*ac(i,1)/2;
     dac=6*(du-dt*v(i,1))/(dt)^2-3*ac(i,1);
     u(i+1,1)=u(i,1)+du;
     v(i+1,1)=v(i,1)+dv;
     ac(i+1,1)=ac(i,1)+dac;     
  end
    Sd(j,1)=max(abs((u(:,1))));
    %Sv(j,1)=max(abs(v));
    %Sa(j,1)=max(abs(ac))/g;
    Spv(j,1)=Sd(j)*omega(j);
    Spa(j,1)=Sd(j)*(omega(j))^2/g;
end
Sd(2,1)=0; Spv(1:2,1)=0;Spa(1:2,1)=max(abs(Ag))/g;
 
figure('Name','Spectral Displacement','NumberTitle','off')
plot(T,Sd,'LineWidth',2.)
grid on
xlabel('Period (sec)','FontSize',12);
ylabel('Sd (mm)','FontSize',12);
title('Displacement Spectrum','FontSize',12)
 
figure('Name','Pseudo Acceleration Spectrum','NumberTitle','off')
plot(T,Spa,'LineWidth',2.)
grid on
xlabel('Period (sec)','FontSize',12);
ylabel('Spa (g)','FontSize',12);
title('Pseudo Acceleration Spectrum','FontSize',12)