You are on page 1of 4

The University of Auckland Department of Civil and Resource Engineering Applied Structural Mechanics

Time-history analysis single degree of freedom systems


Closed form analytical solution of the equation of motion of a single degree of freedom system is not usually possible if the excitation (applied force or ground acceleration) is an arbitrary function of time or if the system is nonlinear. One of a variety of numerical methods will normally be required. For example, the Duhamel integral can be evaluated numerically for linear systems. An alternative is to use one of the step by step procedures in which the state of the system is determined at small time increments, each state being calculated from its immediate predecessor. We consider here one such approach known as the constant average acceleration method. Constant average acceleration method (also known as Newmark = method)
displacement relative to ground,

&&( ) = (u &&i + u &&i+1 ) / 2 . u


Integrating: &( ) = ( u &&i + u &&i+1 ) / 2 + A u

&( 0) = u &i , so A = u &i , But u & ( ti ) = u &i +1 , so u &i +1 = (u &&i + u &&i +1 ) ti / 2 + u &i and u &i +1 = u &i + ( u &&i + u &&i +1 ) ti / 2 or u
Integrating: (2)

&&i + u &&i +1 ) 2 / 4 + u &i + B u( ) = (u


But u( 0) = ui , so B = ui . Also u( ti ) = ui +1 , so

&&i + u &&i+1 ) t i / 4 + u &i t i ui +1 = u i + (u


2

(3)

Incremental quantities: Let

u(t)
ground displacement, spring, stiffness

u i = u i+1 u i &i = u &i+1 u &i u

ug(t)

k
mass, damper, coeff.

&&i = u &&i+1 u &&i u


From (3),

&&i + u &&i ) ti / 4 + u &&i t i u i = ( 2u


2

&&i = 4( ui u & i t i ) / ti 2u &&i u


2

(4)

Consider a single degree of freedom system as shown above, with governing equation

&& + 2 u & + 2 u = u &&g u

(1)

From (2), 2 ui &i = &i u 2u ti

(5)

Assume that the displacement and velocity at time &0 are known. As a result of the ground zero, u0 , u motion the mass develops accelerations which may be as shown below. In particular we assume that in the time interval ti , the acceleration can be approximated by the mean of the end values in the interval.
&&(t ) u

Since governing equation (1) is satisfied at both ti and ti+1, substitute in (1) for ti and ti+1 and subtract to get

&&i = u &&gi 2u &i 2 ui u


Solving (4), (5) and (6) for ui &i 4u &&i + 4u &i u &&gi + 2u u i = t , or 4 4 2 + + 2 t i ti

(6)

mean

&&gi + C 2 u &i + 2u &&i C1 ui = u

(7)

Where
ti +1

C1 =

ti
t

4 4 + + 2 , and 2 t i ti

Let denote time as measured from the start of the interval. Hence
d:\document\asm\asm2001\notes\timehist.doc

1 C2 = 4 + ti
jwb 24/04/01

and both C1 and C2 are constant if ti is constant.

Typing help th at the Matlab prompt will write some helpful information to the screen. Copying and running the Matlab program 1. The necessary files can be downloaded from the Applied Structural Mechanics section under student info on the Civil Engineering web page at http://www.care.auckland.ac.nz. 2. Copy the files th.m, thdemo.m and elcen.dat to a convenient subdirectory on your network H: drive or elsewhere. 3. Start Matlab in the usual way. 4. At the Matlab prompt, type cd H:\matlab (or whatever name you gave to your new directory). thdemo (to run the example) 5. Modify the demo file or create a new one to solve the specified problems (you can always re-copy the initial files if things go wrong.). File contents th.m is a Matlab script file containing the timehistory solution function. thdemo.m is a Matlab script file showing how to use the time-history function to solve a simple problem of response to a linear acceleration pulse. elcen.dat is a numerical data file containing the first 20 seconds of the El-Centro 1940 N-S acceleration record. Data is in mm/sec2 units at 0.02sec intervals. The data is arranged as a single column so that it can be readily imported into a spreadsheet if desired. To enter the El-Centro data into Matlab include the following in your program (or type it at the prompt): load elcen.dat; elcen=elcen; This will create a row vector elcen containing the acceleration data. Demonstration example A structure has a period T=0.4sec and a damping ratio =0.0. An underground explosion causes a ground acceleration consisting of a symmetric triangular pulse of 1 second duration during which the acceleration rises linearly to a peak of 2000mm/sec2 in 0.5sec and then falls linearly to zero at 1second. It is required to calculate the displacement timehistory for the 1.5 seconds following the arrival of the pulse.

Algorithm &0 assumed known. 1. u 0 and u


&&0 = u &&g 0 2u &0 2 u &0 from equ. (1). 2. u
3. Solve (7) for ui . &i . 4. Solve (5) for u

&&i 5. Solve (4) for u ui +1 = ui + ui &i +1 = u &i + u &i u &&i +1 = u &&i + u &&i u 7. Repeat steps 3 to 6.
6. Update

Spreadsheet
There is a spreadsheet time-hist.xls that can be freely downloaded or run from the web site, http://www.care.auckland.ac.nz/~.jbut030.users/C ourses/655.412/time-hist.xls.

Implementation using Matlab


The procedure is readily programmed, especially when the time step t, is constant (usual case). The sample Matlab function th (time-history) listed later uses the method just described and can be applied to a linear SDOF system or to a group of SDOF systems (see later under modal analysis methods for MDOF systems). The right hand side th(w,xi,ug,dt,p,nout), contains the input arguments and the left hand side [Y,Ymax,Vmax,Amax], is used to supply the names of the output arguments. Required input The following arguments must be assigned values or replaced by constants w - natural frequency, (rad/sec). xi - damping ratio, . ug - row vector of ground accelerations, u &&g . dt - time interval t, between values in u &&g . p - set p=1 for SDOF systems. nout - frequency of output values in u(t) Output Y - column vector of displacements u(t) at time intervals nout t . Ymax - maximum displacement u( t ) max

& ( t ) max Vmax - maximum velocity u


&&( t ) + u &&g ( t ) Amax - maximum acceleration u max
Help

&&g ( t ) (mm / sec 2 ) u


2000

&&g ( ) = 4000 ( 0 0.5) u &&g ( ) = 4000 (1 ) (0.5 1.0) u


0 - 0.5sec
u (t ) =
0 t

4000 sin ( t ) d

0.5

1.0

1.5

4000 ( t sin t ) 3

The problem is solved using step by step integration and then by means of Duhamels integral. Step by step integration solution The file thdemo.m whose listing is given below contains the necessary instructions to solve the problem. The acceleration data is created directly as a matrix constant with values specified at 0.01sec intervals. The other parameters are defined and the time-history function invoked to generate the solution. Duhamel integral solution The simple form of the acceleration data makes Duhamel reasonably easy to apply (although nonzero damping would complicate matters a little). Because the acceleration is not a continuous function of time it must be considered in discrete ranges within which it is continuous:
4.0

0.5 - 1.0sec
0.5

u (t ) =

4000 4000(1 ) sin ( t )d + sin ( t ) d 0.5


t

4000 = [2 sin ( t 0.5) sin t ( t 1) ] 3

1.0 - 1.5sec:
0.5

u (t ) = =

4000 4000(1 ) sin ( t ) d + sin ( t ) d 0 0. 5


1

4000 [2 sin ( t 0.5) sin (t 1) sin t ] 3

The expressions above can be conveniently evaluated and plotted using a spreadsheet. The figure below shows the results from both Duhamel and the step by step procedure.

2.0

Step by step integration Duhamel Integral

Displacement, u(t) (mm)

0.0

-2.0

-4.0

-6.0

-8.0

-10.0

0.0

0.2

0.4

0.6

0.8 Time (s)

1.0

1.2

1.4

MATLAB FILES Demo file - thdemo.m


% script to test time history solution % triangular acceleration pulse of 1sec T=0.4; xi=0.0; % set up vector of accelerations at 0.01sec intervals accel=[0:40:2000 1960:-40:0 zeros(1,50)]; w=2*pi/T; dt=0.01; p=1; nout=2;

[U,Umax,Vmax,Amax]=th(w,xi,accel,dt,p,nout); % set up time axis for plotting (every 2nd point used) timebase=[0:nout*dt:size(accel,2)*dt-dt]; figure(1); plot(accel); xlabel('time'); ylabel('ground acceleration (mm/s/s)'); figure(2); plot(timebase,U,'-',timebase,U,'o'); xlabel('time (sec)'); ylabel('displcement (mm)'); disp('Maximum displacement'); Umax

Time-history function - th.m


% Time History Analysis - step by step integration % for linear SDOF or MDOF systems (modal) % Constant average acceleration algorithm % % function [Y,Ymax,Vmax,Amax]=th(w,xi,ug,dt,p,nout) % % INPUT ARGUMENTS %--------------------------------------------------------------------% SDOF | MDOF %--------------------------------------------------------------------% w natural frequency | modal frequencies (column vector) % xi damping ratio | modal damping ratios (column) % ug ground accel record (row) | ground accel record (row) % dt time interval in ug | % p 1 | modal participation factors (column) % nout output intervals (ie every nout'th step) % % OUTPUT ARGUMENTS %--------------------------------------------------------------------% SDOF | MDOF %--------------------------------------------------------------------% Y displacement (row) | modal amplitude (in rows) % Ymax max displacement | max modal amplitudes (column) % Vmax max relative velocity | max modal velocity (column) % Amax max abs acceleration | max modal acceleration (column) % % EXAMPLE: % load elcen.dat; % ug=elcen'; % T=0.5; xi=0.05; w=2*pi/T; dt=0.02; % [u,umax,vmax,amax]=th(w,xi,ug,dt,1,4); % [umax vmax amax] % figure(1); % plot(u); function [Y,Ymax,Vmax,Amax]=th(w,xi,ug,dt,p,nout); nstp = size(ug,2); Y=zeros(size(p,1),1); Ymax=Y; Vmax=Y; Amax=Y; A=w.*w+4/dt*(xi.*w)+4/dt^2; B=4*(xi.*w+1/dt); u=0; ud=0; udd=-p*ug(1)-2*xi.*w.*ud-w.*u; j=1; for i=2:nstp du=(p.*-(ug(i)-ug(i-1))+B.*ud+2*udd)./A; dud=2*du/dt-2*ud; dudd=4*(du-ud*dt)./(dt.*dt)-2*udd; u=u+du; ud=ud+dud; udd=udd+dudd; Ymax=max(Ymax,abs(u)); Vmax=max(Vmax,abs(ud)); Amax=max(Amax,abs(udd+ug(i))); if nout*fix((i-1)/nout)==i-1, j=j+1;, Y(:,j)=u;, end; end;

You might also like