Generation of Response Spectrum for a Given Ground Motion Component $u_g(t)$
- 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.
- Select the natural vibration period Tn and damping ratio $\zeta$ of an SDOF system.
- 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).
- Determine the peak displacement, ${u}_{o}$, of the displacement response $u(t)$.
- 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}$
- 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.
- 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)