Sei sulla pagina 1di 65

Comparing Base Shear Forces and Displacements of

SDOF and MDOF Models Subjected to

Earthquake Ground Motions

Reed E. Crosby

A project submitted to the faculty of


Brigham Young University
in partial fulfillment of the requirements for the degree of

Master of Science

Paul William Richards, Chair


Fernando S. Fonseca
Kevin W. Franke

Department of Civil Engineering

Brigham Young University

April 2013

Copyright 2013 Reed Crosby

All Rights Reserved


ABSTRACT

Comparing Base Shear Forces and Displacements of


SDOF and MDOF Models Subjected to
Earthquake Ground Motions

Reed Crosby
Department of Civil Engineering, BYU
Master of Science

This project compares base shear and displacement response spectra for single degree of
freedom models and multi-degree of freedom models that have varying damping values and
stiffness distribution methods. The response spectra are affected by the Rayleigh damping values
and further research needs to be performed to generate results that can be validated by real-world
tests. The results contained in the project correctly represent the mathematical models but the
models may not represent real-life structures.

Keywords: SDOF models, MDOF models, OpenSees, base shear Force, Displacement, Rayleigh
Damping, Response Spectra.
ACKNOWLEDGEMENTS

Special thanks to Dr. Paul Richards for the guidance given throughout the project and the

many hours spent helping to solve problems encountered throughout the research. Also, thanks

to Kyle Atwood for helping with the stiffness distribution files.


TABLE OF CONTENTS

LIST OF TABLES .................................................................................................................................... vii

LIST OF FIGURES ................................................................................................................................... ix

1 Introduction ........................................................................................................................................ 1

2 Methods ............................................................................................................................................... 2

2.1 Creating a Basic Model ............................................................................................................... 2

2.2 Model Parameters ........................................................................................................................ 4

2.3 Earthquake Ground Motions ....................................................................................................... 5

2.4 Outputs ........................................................................................................................................ 7

3 Results and discussion ........................................................................................................................ 9

3.1 Verification .................................................................................................................................. 9

3.1.1 SeismoSoft .............................................................................................................................. 9

3.1.2 PEER Database ..................................................................................................................... 10

3.2 Base Shear ................................................................................................................................. 11

3.2.1 Rayleigh Damping................................................................................................................. 14

3.3 Displacement ............................................................................................................................. 17

3.4 Conclusions ............................................................................................................................... 20

REFERENCES ........................................................................................................................................... 21

Appendix A. ............................................................................................................................................... 23

A.1 Graphs ....................................................................................................................................... 24

B.4 Stiffness Distribution Values ..................................................................................................... 34

Appendix B. TCL code........................................................................................................................ 35

B.1 Main Code ................................................................................................................................. 35

B.2 Input File ................................................................................................................................... 38

B.3 Procedures ................................................................................................................................. 40

v
vi
LIST OF TABLES

Table A-1: Earthquake group A and group B with the file names ........................................23

Table B-2: Stiffness Distribution Values used for Method 2 ................................................34

vii
viii
LIST OF FIGURES

Figure 2-1: Example of a simple model.............................................................................................................3

Figure 2-2: Spectral acceleration response spectra for group A ground motions including
the mean spectrum ...............................................................................................................................6

Figure 2-3: Spectral acceleration response spectra for group B ground motions including
the mean spectrum. ..............................................................................................................................7

Figure 3-1: Mean Response Spectra from (a) SeismoSpect, (b) SDOF models, (c) 2DOF
Models, and (d) 3DOF Models Using Earthquake Group A and 0% Damping ..................................10

Figure 3-2: Comparison of accelerations from the PEER ground motion database (left)
and from OpenSees code (right) corresponding to 2% damping .........................................................11

Figure 3-3: Comparison of displacements from the PEER ground motion database (left)
and from OpenSees code (right) corresponding to 2% damping .........................................................11

Figure 3-4: Normalized base shear for earthquake group A with 2% damping and all
members with uniform stiffness ..........................................................................................................12

Figure 3-5: Normalized base shear for earthquake group A with 0% damping and all
members with uniform stiffness ..........................................................................................................12

Figure 3-6: Normalized base shear for earthquake group A with 0% damping and all
members with non-uniform stiffness ...................................................................................................13

Figure 3-7: Normalized base shear for earthquake group A with 2% damping and all
members with non-uniform stiffness ...................................................................................................13

Figure 3-8: Mass-damping and stiffness-damping components to Rayleigh Damping .....................................14

Figure 3-9: Case I Rayleigh damping with 5% damping ................................................................................16

Figure 3-10: Case II Mass-proportional damping only with 5% damping .....................................................16

Figure 3-11: Case III Stiffness-proportional damping only with 5% damping ...............................................17

Figure 3-12: Displacement for earthquake group A with 0% damping and all members
with uniform stiffness..........................................................................................................................18

Figure 3-13: Displacement for earthquake group A with 2% damping and all members
with uniform stiffness..........................................................................................................................18

Figure 3-14: Displacement for earthquake group A with 2% damping and all members
with non-uniform stiffness ..................................................................................................................19

Figure 3-15: Displacement for earthquake group A with 0% damping and all members
with non-uniform stiffness ..................................................................................................................19

ix
Figure A-1: Stiffness distribution alternative method ....................................................................................... 23

Figure A-2: Normalized base shear for earthquake group A with 5% damping and all
members with uniform stiffness ......................................................................................................... 24

Figure A-3: Normalized base shear for earthquake group A with 5% damping and all
members with non-uniform stiffness .................................................................................................. 24

Figure A-4: Displacement for earthquake group A with 5% damping and all members
with uniform stiffness ......................................................................................................................... 25

Figure A-5: Displacement for earthquake group A with 5% damping and all members
with non-uniform stiffness .................................................................................................................. 25

Figure A-6: Normalized base shear for earthquake group B with 0% damping and all
members with uniform stiffness ......................................................................................................... 26

Figure A-7: Normalized base shear for earthquake group B with 2% damping and all
members with uniform stiffness ......................................................................................................... 26

Figure A-8: Normalized base shear for earthquake group B with 5% damping and all
members with uniform stiffness ......................................................................................................... 27

Figure A-9: Normalized base shear for earthquake group B with 2% damping and all
members with non-uniform stiffness .................................................................................................. 28

Figure A-10: Normalized base shear for earthquake group B with 0% damping and all
members with non-uniform stiffness .................................................................................................. 28

Figure A-11: Normalized base shear for earthquake group B with 5% damping and all
members with non-uniform stiffness .................................................................................................. 29

Figure A-12: Displacement for earthquake group B with 2% damping and all members
with uniform stiffness ......................................................................................................................... 30

Figure A-13: Displacement for earthquake group B with 0% damping and all members
with uniform stiffness ......................................................................................................................... 30

Figure A-14: Displacement for earthquake group B with 5% damping and all members
with uniform stiffness ......................................................................................................................... 31

Figure A-15: Displacement for earthquake group B with 2% damping and all members
with non-uniform stiffness .................................................................................................................. 32

Figure A-16: Displacement for earthquake group B with 0% damping and all members
with non-uniform stiffness .................................................................................................................. 32

Figure A-17: Displacement for earthquake group B with 2% damping and all members
with non-uniform stiffness .................................................................................................................. 33

x
1 INTRODUCTION

The equivalent lateral force method uses the natural period from simple, single degree of freedom

(SDOF) models to calculate base shear forces used in seismic design of buildings. The buildings are

represented by equivalent SDOF models. The natural period of these simplified models is based on the

height of the building and the type of lateral resisting system used in the building. The period is used to

determine the magnitude of the base shear force by using spectral acceleration graphs and equations.

The spectral acceleration graphs and equations in ASCE 7-10 are all based on SDOF models because

they are easy to analyze compared to multi-degree of freedom (MDOF) models and can lead to a

conservative building design. The SDOF models can be overly conservative though, and result in

unnecessarily high base shear forces. The high base shear forces may result in less economical buildings.

SDOF and MDOF models were created and analyzed in order to discover if the equivalent SDOF

systems currently used in design could be improved in order to create a more accurate design method.

The models consisted of masses attached by springs and subjected to earthquake ground motions. The

models create systems that use mathematical means to analyze buildings and calculate the base shear

and maximum displacements for a given ground motion.

1
2 METHODS

Models were generated and subjected to ground motions. Base shear forces and

maximum displacements were recorded.

2.1 Creating a Basic Model

Open System for Earthquake Engineering Simulation (OpenSees) software that

incorporates Tool Command Language (Tcl) was used to build and analyze hundreds of models.

OpenSees is open-source software developed by the University of California, Berkley for

simulating the response of structural and geotechnical systems subjected to earthquakes. The

OpenSees engine has a number of built-in commands that facilitate the process of creating

models, subjecting them to ground motions, and recording results. The models were built by

writing Tool Command Language (Tcl) scripts that ran in the OpenSees engine. All of the Tcl

scripts used can be seen in Appendix B.

The models consisted of a series of nodes that were connected by elements that were

made up of materials. The nodes were assigned coordinates, mass values, and degrees of

freedom. The first node was fixed and all other nodes were free to move in one direction. Each

node was assigned an equal mass in order to create a uniform mass distribution. The nodes were

then joined by elements that were assigned a stiffness value (k), as seen in Figure 2-1.

2
Figure 2-1: Example of a simple modell

The
T relative stiffness of each
e elemen
nt was variedd using two ddifferent methods to creaate a

model wiith a desired


d natural periiod. Method one used a uuniform stiff
ffness distribbution in whiich

all of the elements haad an equal stiffness.


s Th
his will be refferred to as uniform disstribution

througho
out the text. Method
M two used a stiffn
ness distribuution based oon a triangulaar distributioon of

the equiv
valent laterall force. The stiffness
s deccreases as thee lateral forcce applied too the elementt

decreasess. The stiffneess follows a quadratic curve


c from 1 to zero (Figgure A-1). Thhis will be

referred to
t as non-uniform distribution thro
oughout the text.

In
n the overalll procedure, explained in
n the next secction, modells with differrent periods

were gen
nerated. The models stifffness was ch
hanged untill the desired natural freqquency was

achieved
d. The modell was built th
he first time with a trial sstiffness assiigned to eachh element. T
The

eigenvalu
ue command
d was used to
o find the firrst natural peeriod of the m
model. The actual value was

compared
d to the desired natural period
p of thee model and the stiffnesss was changeed until the

natural period of the model was the


t same as the
t desired nnatural periood.

Various
V Rayleigh dampin
ng values weere used and compared thhroughout thhe analyses.

OpenSeees provides a Rayleigh Damping


D com
mmand that w
was used to rrepresent thee damping

within th
he structure. Rayleigh daamping comb
bines mass-pproportional damping wiith stiffness--

proportio
onal damping
g using the following
f eq
quations:

3
((2-1)

((2-2)

((2-3)

g based on th
Damping he first and th
hird modes was
w used forr the analysees of the MD
DOF models with

values off 0%, 2%, an


nd 5% damping. These damping
d valuues are the m
most commoonly used vallues

for modeels representiing buildings.

2.2 Mo
odel Parameters

The
T program consisted off an input fille, a proceduures file, an eearthquake ffile, and a main

file that used


u the otheer files to peerform the an
nalyses and ccreate the ouutput file.

The
T models were
w created based off off variables ddefined withiin the input ffile (Appenddix

B.2). Thee variables th


hat are defin
ned in the filee are mass, sstarting stiffn
fness, minim
mum and

maximum
m period for the analysess, the changee of the periood between analyses, daamping, startting

number of
o DOFs, end
ding numberr of DOFs, desired
d param
meter to recoord, stiffnesss distributionn

method, and the file names


n for th
he output filees.

4
Procedures were written in the procedures file (Appendix B.3) and called in the main

script (Appendix B.1) in order to break the required actions into smaller parts. Each procedure

requires inputs and then returns an output needed for the main program. The procedures contain

action scripts that build the model, run the earthquake ground motion, record the maximum

outputs, change the starting parameters, and perform other necessary actions to analyze the

models.

The earthquake file is a list of all of the names of the ground motion files that would be

used in the analyses. The ground motion acceleration files were all kept in the same folder to be

used by the program. The list of file names can be seen in Table A-1.

The main script used the above files as well as three main loops to create the output file.

The program created a model and ran it through all of the desired earthquakes (loop 1) read from

a file with a list of the earthquake files that were to be included in the analyses. The model was

then modified to have a different desired natural period. The first loop was repeated for the new

model and the model was modified again. This is repeated until the maximum desired natural

period was reached (loop 2). The number of degrees of freedom was increased and loop 1 and

loop 2 were repeated. The number of DOFs was increased in this manner until the maximum

number of DOFs was reached (loop 3).

2.3 Earthquake Ground Motions

The Pacific Earthquake Engineering Research Center (PEER) Ground Motion Database

was used to create two groups of similar earthquake ground motions. The database was searched

by using a target design spectrum to find two groups with 20 earthquakes each that were

comparable to a target design spectrum. Earthquake sites for Group A include Parkfield, Imperial

Valley, Irpinia (Italy), Morgan Hill, Loma Prieta, Kocaeli (Turkey), Chi-Chi (Taiwan), and

5
Turkey). Eartthquake sites for Group B include M
Duzce (T Managua (Nicaragua), Liivermore,

Westmorrland, Coalin
nga, Northrid
dge, San Ferrnando, Fruilli (Italy), Im
mperial Valleey, and Capee

Mendociino.

Both
B groups of
o earthquak
kes had simillar unscaled,, maximum m
mean acceleeration specttra.

The indiv
vidual spectrral acceleratiions as well as the meann spectral accceleration caan be seen inn

Figure 2--2 and Figurre 2-3 for earrthquake gro


oup A and eaarthquake grroup B, respeectively. Grooup

A earthqu
uakes maintain the maxiimum acceleeration longeer than groupp B. All of thhe earthquakkes

used werre unscaled ground


g motio
ons obtained
d from the PE
EER groundd motion dataabase.

Figure 2-2: Spectral acceleration


n response sp
pectra for grroup A groun
nd motions in
ncluding
the mea
an spectrum

6
Fig
gure 2-3: Speectral accelerration respon
nse spectra foor group B gground motioons includingg
thee mean spectrrum.

2.4 Ou
utputs

Op
penSees was used to meaasure the basse shear and maximum ddisplacementt of each moodel

under thee specified earthquake grround motio


ons. The maxximum desirred values foor a group off

earthquak
kes were aveeraged to fin
nd an average maximum value. The nnormalized bbase shear w
was

found by
y taking the total
t base sheear reaction and dividingg it by the tootal weight oof the model in

order to provide
p com
mparable dataa between SD
DOF modelss and MDOF
F models. Thhe maximum
m

displacem
ment was reccorded for th
he last node in
i the modell.

The
T program output file was
w created through
t a seeries of writtten procedures with giveen

user inpu
uts and was used
u to creatte response spectra.
s The process to oobtain responnse spectra ffor

the displaacement is as
a follows: First, a modell is built in tthe program with the dessired natural

period. The
T model is then subjectted to a seriees of groundd motions annd the maxim
mum

displacem
ment for each
h of the grou
und motionss is recorded and stored iin a list. Theese maximum
m

values arre arithmetically averageed to producee a single pooint correspoonding to a pperiod and

maximum
m average diisplacement.. The desired
d natural perriod is then iincreased and this processs is

7
repeated until the maximum specified period is reached and each maximum average

displacement is stored in a list. The number of degrees of freedom is then increased by one and

the steps are all repeated. This whole process is repeated until the maximum specified number of

DOFs is reached. The list for each DOF is printed to an output file that can easily produce

response spectra.

Damping values and the method used to distribute the stiffness were altered to create base

shear and displacement response spectra that could be compared. The normalized base shear and

maximum displacement for each stiffness distribution method with each value of damping were

recorded for both groups of earthquakes. Response spectra were created for each variation.

8
3 RESULTS AND DISCUSSION

3.1 Verification

The analytical models are only valid if the results can be verified and the procedures and

processes used can be validated. Individual procedures as well as the groups of procedures

within the code had to be verified to work correctly and give expected results. The complexity of

MDOF models makes it necessary to verify simple models and then assume that the models

continue to represent more complex models. The methods discussed below were used to verify

individual procedures as well as the code as a whole.

3.1.1 SeismoSoft

SeismoSoft provides earthquake engineering software that analyzes ground motions. The

ground motions can be input into SeismoSoft to create design spectra, find displacements, and

find accelerations for SDOF systems. The values found from SeismoSoft software were

compared to the analytical models. The SeismoSoft data can be seen in Figure 3-1 (a).

Multiple cases had to be compared to make sure that the program was working for each

different case. Figure 3-1 (b) shows results from a simple SDOF model with a single mass on top.

Figure 3-1 (c) shows results from a 2DOF model with a very small mass at the first node and a

large mass at the second (top) node. Figure 3-1 (d) shows the results from a 3DOF model with

9
o nodes and a large masss at the thirdd (top) node. The two andd
very smaall masses at the first two

three DO
OF models acct just like a SDOF modeel because oof the small m
masses in thee middle of tthe

structure. Earthquakee group A with 0% damp


ping and uniiform stiffneess was usedd in all cases.. The

response spectrum fo
or each case is identical, validating thhe program when 0% daamping is ussed.

(a) ((b)

(c) (d)

Figgure 3-1: Meean Responsee Spectra fro


om (a) SeismoSpect, (b) S
SDOF models, (c) 2DOF M
Models, and (d) 3DOF
M
Models Using Earthquake
E Group A and 0% Dampiing

3.1.2 PEER
P Datab
base

The PEER Gro


ound Motion
n Database used to obtainn all of the eearthquake gground motioons

contains response speectra results for multiplee damping vaalues for eacch ground m
motion. The

accelerattion and disp


placement response specttra for SDOF
F systems frrom the dataabase were

compared
d to the resp
ponse spectraa obtained frrom the writtten program
m and were coompared in

2 and Figure 3-3. The response spectrra below corrrespond to tthe results frrom SDOF
Figure 3-2

models with
w 2% dam
mping and un
niform stiffneess. This vallidates the SDOF models with dampping.

10
Figure 3-2: Compariso
on of accelera
ations from the
t PEER grround motion
n database (left) and from
m
OpenSees code (right) correspondin
ng to 2% dam mping

Figure 3--3: Comparisson of displacements from


m the PEER ground motiion databasee (left) and
from OpeenSees code (right) correesponding to 2% dampingg

3.2 ase Shear


Ba

Response specctra for the normalized


n base
b shear fo
force with vaarying dampping and stifffness

distributiion were created for models


m rangiing from 1 to 25 DOF
Fs. The stifffness distribbution

method and
a the damp
ping in the structure
s weere changed iin order to ccompare how
w each param
meter

affects th
he base sheaar values. Th
he normalizeed base sheaar for structuures with a uniform stifffness

% and 2% damping can be seen in Figure 3-5 and Figure 33-4, respectiively.
distributiion with 0%

Results for
f structuress with non-u
uniform stiffn
ness are in FFigure 3-6 andd Figure 3-7.

11
2.5

2
NormalizedBaseShear
1DOF

1.5 2DOF

5DOF

1 15DOF

25DOF

0.5

0
0 0.5 1 1.5 2 2.5 3 3.5 4
Period[sec]
Figure 3-5: Normalized base shear for earthquake group A with 0% damping and all members
with uniform stiffness

2.5

2
NormalizedBaseShear

1DOF
1.5 2DOF
5DOF
15DOF
1
25DOF

0.5

0
0 0.5 1 1.5 2 2.5 3 3.5 4

Period[sec]
Figure 3-4: Normalized base shear for earthquake group A with 2% damping and all members
with uniform stiffness

12
2.5

2 1DOF
2DOF
NormalizedBaseShear

5DOF
1.5
15DOF
25DOF
1

0.5

0
0 0.5 1 1.5 2 2.5 3 3.5 4

Period[sec]
Figure 3-6: Normalized base shear for earthquake group A with 0% damping and all members
with non-uniform stiffness

2.5

2
NormalizedBaseShear

1DOF
1.5 2DOF
5DOF
15DOF
1
25DOF

0.5

0
0 0.5 1 1.5 2 2.5 3 3.5 4
Period[sec]

Figure 3-7: Normalized base shear for earthquake group A with 2% damping and all members
with non-uniform stiffness

13
The damping used in the structure has a huge effect on the base shear force. The damping

affects the normalized base shear forces of the models with natural periods ranging from 0

seconds to 1.5 seconds the most. The largest change in base shear force is the jump from a SDOF

to a 2DOF model. The 2DOF model has a base shear force ranging from 30%-60% of the SDOF

value from 0.5 seconds to 1.5 seconds. The results show that a SDOF equivalent model would

be vastly overconservative for 2% damping if used for a MDOF structure.

The stiffness distribution has little to no effect on the values of the base shear forces. The

base shear force depends on the natural period of the model. The model with uniform stiffness

has to have the same natural period as a model with non-uniform stiffness. The overall stiffness

of the building is what affects the base shear force of the building.

3.2.1 Rayleigh Damping

The Rayleigh damping used is commonly used in modeling structures. It involves a mass-

proportional damping coefficient and a stiffness-proportional damping coefficient (Figure 3-8).

MassDamping
RayleighDamping
Dampingn

StiffnessDamping

NaturalFrequency,n

Figure 3-8: Mass-damping and stiffness-damping components to Rayleigh Damping

The adverse affects of Rayleigh damping has been the topic of research for John F. Hall

and Finley A. Charney. Research performed by John F. Hall on damping looks at mis-using

Rayleigh damping. His research shows that the damping force grows unrealistically large in

situations where non-linear analyses are used and further research is needed to formulate better

14
strategiess to remedy the problem ney focuses on the probblems with R
ms. Mr. Charn Rayleigh dam
mping

in inelasttic systems.

One
O remedy suggested by Hall req
quired elim
minating the mass-propoortional dam
mping

coefficien
nt and limitiing the stiffn
ness coefficiient. An anaalyisis was pperformed too see the effeect of

different types of dam


mping on models.
m The Rayleigh
R dam
mping was ccalculated uusing the metthods

and equaations descrribed abovee. The masss proportionnal dampingg and stiffnness proporttional

damping were calcullated based on


o the follow
wing two equuations:

(3-1)

(3-2)

where
w the varriables are ass described in
i section 2. 1.

Normalized
N base
b shear force
f respon
nse spectra w
were createdd for the R
Rayleigh dam
mping

case, the mass-propo


ortional damp
ping only caase, and the sstiffness prooportional daamping only case.

Each case used a targ


get damping
g value of 5%
% damping. C
Case I, Raylleigh dampinng, calculateed the

coefficien
nts based on
o the first and third natural
n frequuencies. Case II and III calculatedd the

damping coefficient based on th


he first natu
ural frequenccy using thee above equaations. Figurre 3-9

shows th
he results using tradition
nal Rayleigh
h damping, FFigure 3-10 sshows the m
mass-proporttional

damping, and Figuree 3-11 showss the stiffness-proportioonal dampingg. The resullts show thaat the

mass-pro
oportional damping
d con
ntributes th
he most to the Rayleiigh damping. The stifffness

proportio
onal damping mited in this analysis.
g was not lim

15
7

6
NormalizedBaseShear

5
1DOF
2DOF
4

5DOF
3
15DOF
2
25DOF

0
0 0.5 1 1.5 2 2.5 3 3.5 4

Period[sec]

Figure 3-9: Case I Rayleigh damping with 5% damping

6
NormalizedBaseShear

1DOF
5

2DOF
4
5DOF
3
15DOF

2 25DOF

0
0 0.5 1 1.5 2 2.5 3 3.5 4

Period[sec]

Figure 3-10: Case II Mass-proportional damping only with 5% damping

16
7

1DOF
NormalizedBaseShear

5
2DOF
4 5DOF

3
15DOF
25DOF
2

0
0 0.5 1 1.5 2 2.5 3 3.5 4

Period[sec]

Figure 3-11: Case III Stiffness-proportional damping only with 5% damping

3.3 Displacement

The displacement response spectra for models representing 1 to 25 story buildings were

also analyzed with the same changing parameters. The displacements for structures with a

uniform stiffness distribution with 0% and 2% damping can be seen in Figure 3-12 and Figure 3-13

and for structures with non-uniform stiffness distribution in Figure 3-14 and Figure 3-15.

17
70

60

1DOF
50
Displacement[in]

2DOF
5DOF
40
15DOF
30 25DOF

20

10

0
0 1 2 3 4 5 6 7 8 9
Period[sec]

Figure 3-12: Displacement for earthquake group A with 0% damping and all members with uniform stiffness

70

60
1DOF
50
2DOF
Displacement[in]

5DOF
40
15DOF
30 25DOF

20

10

0
0 1 2 3 4 5 6 7 8 9
Period[sec]

Figure 3-13: Displacement for earthquake group A with 2% damping and all members with uniform stiffness

18
90

80
1DOF
70
2DOF
Displacement[in]

60 5DOF
50 15DOF
25DOF
40

30

20

10

0
0 1 2 3 4 5 6 7 8 9
Period[sec]
Figure 3-15: Displacement for earthquake group A with 0% damping and all members with non-
uniform stiffness

90

80
1DOF
70 2DOF
Displacement[in]

60 5DOF
15DOF
50
25DOF
40

30

20

10

0
0 1 2 3 4 5 6 7 8 9
Period[sec]
Figure 3-14: Displacement for earthquake group A with 2% damping and all members with
non-uniform stiffness

19
The damping value affected the displacement in the models. The damping value affected

the overall magnitude of the displacements for all the DOFs equally. The difference between the

DOFs remained similar with increasing damping.

The stiffness distribution method used affected the overall magnitudes of the

displacements as well as the difference between the DOFs. The uniform stiffness distribution

experienced a 40% increase in displacement at six seconds from a SDOF model to a 25 DOF

model. The non-uniform stiffness distribution experienced an 82% increase in displacement at

six seconds from the SDOF model to the 25 DOF model. The increase in displacement is due to

the decreased stiffness of the members at the top of the structure.

All of the results shown above were obtained from earthquake group A. The results

obtained from earthquake group B and also the results with models that have 5% damping can be

seen in Appendix A. They were not included in the main text because the 5% damping gave very

similar results to 2% damping and earthquake group B gave very similar results to earthquake

group A.

3.4 Conclusions

The results correctly represent the mathematical models within the program but the

mathematical may not represent the real-life structures. The models are performing as expected

given the inputs of the program. The effect that Rayleigh damping has on the models suggests

that the damping coefficient is unrealistically large and the results are non-conservative. The

values cannot be used to correctly analyze if the equivalent SDOF systems could be improved

in order to create a more accurate design method without further research into the problems

associated with Rayleigh damping.

20
REFERENCES

Charney, Finley A. "Unintended Consequences of Modeling Damping in Structures.(Author


Abstract)(Technical Report)." Journal of Structural Engineering 2008: 581.

Hall, John F. "Problems Encountered from the use (Or Misuse) of Rayleigh Damping." Earthquake
Engineering & Structural Dynamics 2006: 525-45.

OpenSees, The Regents of the University of California (2006). Retrieved from


http://opensees.berkeley.edu/

PEER Ground Motion Database, The Regents of the University of California, Berkeley (2010). Retrieved
from http://peer.berkeley.edu/peer_ground_motion_database

21
22
APPEND
DIX A.

This
T appendiix contains extra inform
mation abouut the reseaarch. Figuree A.1 show
ws the

stiffness distribution method used


d for method
d 2 and Tablle A.1 lists thhe earthquakke groups ussed.

Fig
gure A-1: Stifffness distrib
bution altern ative method
d

Tablee A-1: Earthq


quake group
p A and grou
up B with thee file names

Earthqu uakeGroupAA Eart hquakeGrou


upB
Earth
hquakeSite FileN
Name Ea
arthquakeSiite FileName
NGA_no_179_
_HE04140 NGA_no_
_95_AMAN09 90
Imperia
alValley,Ca Man
nagua,Nicarag
gua
NGA_no_179_
_HE04230 NGA_no_
_95_AMAN18 80
NGA_no_180_
_HE05140 NGA_no_
_215_ASRM0770
ImperiaalValley,Ca Live
ermore,Ca
NGA_no_180_
_HE05230 NGA_no_
_215_ASRM3440
NGA_no_183_
_HE08140 NGA_no_
_315_NIL000
ImperiaalValley,Ca We stomorland,C Ca
NGA_no_183_
_HE08230 NGA_no_
_315_NIL090
NGA_no_184_
_HEDA270 NGA_no_
_411_DPVP2770
ImperiaalValley,Ca Coaalinga,Ca
NGA_no_184_
_HEDA360 NGA_no_
_411_DPVP3660
NGA_no_779_
_LGP000 NGA_no_
_412_DPVY0445
LomaP
Prieta,Ca Coaalinga,Ca
NGA_no_779_
_LGP090 NGA_no_
_412_DPVY1335
NGA_no_1158
8_DZC180 NGA_no_
_983_0655022
2
Kocael i,Turkey Norrthridge,Ca
NGA_no_1158
8_DZC270 NGA_no_
_983_0655292
2
NGA_no_1504
4_TCU067E NGA_no_
_77_PUL164
ChiChi,Taiwan SanFernando,Ca
NGA_no_1504
4_TCU067N NGA_no_
_77_PUL254
NGA_no_1508
8_TCU072E NGA_no_
_126_GAZ000
ChiChi,Taiwan Fuil i,Italy
NGA_no_1508
8_TCU072N NGA_no_
_126_GAZ090
NGA_no_1511
1_TCU076E NGA_no_
_723_BPTS2255
ChiChi,Taiwan ImpperialValley,C
Ca
NGA_no_1511
1_TCU076N NGA_no_
_723_BPTS3155
NGA_no_1605
5_DZC180 NGA_no_
_828_PET000
Duzce,Turkey CappeMendocino,,Ca
NGA_no_1605
5_DZC270 NGA_no_
_828_PET090

23
A.1 Graphs

Graphs for a limited number of tests are contained in the main body of this paper. The

graphs for the other analyses are contained below for normalized base shear and displacement.

The first group of graphs is for earthquake group A and the second group of graphs is for

earthquake group B.

1.2

1
NormalizedBaseShear

1DOF
0.8 2DOF
5DOF
0.6
15DOF
0.4 25DOF

0.2

0
0 0.5 1 1.5 2 2.5 3 3.5 4
Period[sec]

Figure A-2: Normalized base shear for earthquake group A with 5% damping and all members
with uniform stiffness

1.2
NormalizedBaseShear

1 1DOF
0.8 2DOF
5DOF
0.6
15DOF
0.4 25DOF
0.2

0
0 0.5 1 1.5 2 2.5 3 3.5 4
Period[sec]
Figure A-3: Normalized base shear for earthquake group A with 5% damping and all members
with non-uniform stiffness

24
70

60

50 1DOF
Displacement[in]

2DOF
40 5DOF
15DOF
30
25DOF
20

10

0
0 1 2 3 4 5 6 7 8 9
Period[sec]

Figure A-4: Displacement for earthquake group A with 5% damping and all members with
uniform stiffness

70

60 1DOF
2DOF
Displacement[in]

50
5DOF
40
15DOF
30 25DOF
20

10

0
0 1 2 3 4 5 6 7 8 9
Period[sec]

Figure A-5: Displacement for earthquake group A with 5% damping and all members with
non-uniform stiffness

25
Earthquake Group B

2.5

2
NormalizedReaction

1DOF
2DOF
1.5
5DOF
15DOF
1
25DOF

0.5

0
0 0.5 1 1.5 2 2.5 3 3.5 4
Period[sec]

Figure A-6: Normalized base shear for earthquake group B with 0% damping and all members
with uniform stiffness

2.5

2
NormalizedBaseShear

1DOF
2DOF
1.5
5DOF
15DOF
1
25DOF

0.5

0
0 0.5 1 1.5 2 2.5 3 3.5 4
Period[sec]

Figure A-7: Normalized base shear for earthquake group B with 2% damping and all members
with uniform stiffness

26
2.5

2 1DOF
NormalizedBaseShear

2DOF
1.5
5DOF
15DOF
1
25DOF

0.5

0
0 0.5 1 1.5 2 2.5 3 3.5 4
Period[sec]

Figure A-8: Normalized base shear for earthquake group B with 5% damping and all members
with uniform stiffness

27
2.5

2 1DOF
NormalizedBaseShear

2DOF
1.5 5DOF
15DOF
1 25DOF

0.5

0
0 0.5 1 1.5 2 2.5 3 3.5 4
Period[sec]
Figure A-10: Normalized base shear for earthquake group B with 0% damping and all members
with non-uniform stiffness

2.5

2 1DOF
NormalizedBaseShear

2DOF
1.5 5DOF
15DOF
1 25DOF

0.5

0
0 0.5 1 1.5 2 2.5 3 3.5 4
Period[sec]

Figure A-9: Normalized base shear for earthquake group B with 2% damping and all members
with non-uniform stiffness

28
2.5

2
1DOF
NormalizedBaseShear

2DOF
5DOF
1.5 15DOF
25DOF
1

0.5

0
0 0.5 1 1.5 2 2.5 3 3.5 4
Period[sec]

Figure A-11: Normalized base shear for earthquake group B with 5% damping and all members
with non-uniform stiffness

29
25

20
Displacement[in]

15

1DOF
10
2DOF
5DOF
5 15DOF
25DOF
0
0 1 2 3 4 5 6 7 8 9
Period[sec]
Figure A-13: Displacement for earthquake group B with 0% damping and all members with uniform
stiffness

25

20
Displacement[in]

15

10 1DOF
2DOF
5DOF
5
15DOF
25DOF
0
0 1 2 3 4 5 6 7 8 9
Period[sec]

Figure A-12: Displacement for earthquake group B with 2% damping and all members with
uniform stiffness

30
25

20
1DOF
2DOF
5DOF
Displacement[in]

15
15DOF
25DOF
10

0
0 1 2 3 4 5 6 7 8 9
Period[sec]
Figure A-14: Displacement for earthquake group B with 5% damping and all members with
uniform stiffness

31
35

30

25
Displacement[in]

20

15
1DOF
10 2DOF
5DOF
5 15DOF
25DOF
0
0 1 2 3 4 5 6 7 8 9
Period[sec]
Figure A-16: Displacement for earthquake group B with 0% damping and all members with
non-uniform stiffness

35

30 1DOF
2DOF
25 5DOF
15DOF
Displacement[in]

20 25DOF

15

10

0
0 1 2 3 4 5 6 7 8 9
Period[sec]

Figure A-15: Displacement for earthquake group B with 2% damping and all members with non-
uniform stiffness

32
35

30
1DOF
25 2DOF
5DOF
Displacement[in]

15DOF
20
25DOF

15

10

0
0 1 2 3 4 5 6 7 8 9
Period[sec]
Figure A-17: Displacement for earthquake group B with 2% damping and all members with
non-uniform stiffness

33
B.4
1.00
1.00 0.75
1.00 0.89 0.56
1.00 0.94 0.75 0.44
1.00 0.96 0.84 0.64 0.36
1.00 0.97 0.89 0.75 0.56 0.31
1.00 0.98 0.92 0.82 0.67 0.49 0.27
1.00 0.98 0.94 0.86 0.75 0.61 0.44 0.23
1.00 0.99 0.95 0.89 0.80 0.69 0.56 0.40 0.21
Stiffness Distribution Values

1.00 0.99 0.96 0.91 0.84 0.75 0.64 0.51 0.36 0.19
1.00 0.99 0.97 0.93 0.87 0.79 0.70 0.60 0.47 0.33 0.17
1.00 0.99 0.97 0.94 0.89 0.83 0.75 0.66 0.56 0.44 0.31 0.16
1.00 0.99 0.98 0.95 0.91 0.85 0.79 0.71 0.62 0.52 0.41 0.28 0.15

34
1.00 0.99 0.98 0.95 0.92 0.87 0.82 0.75 0.67 0.59 0.49 0.38 0.27 0.14
1.00 1.00 0.98 0.96 0.93 0.89 0.84 0.78 0.72 0.64 0.56 0.46 0.36 0.25 0.13
1.00 1.00 0.98 0.96 0.94 0.90 0.86 0.81 0.75 0.68 0.61 0.53 0.44 0.34 0.23 0.12
1.00 1.00 0.99 0.97 0.94 0.91 0.88 0.83 0.78 0.72 0.65 0.58 0.50 0.42 0.32 0.22 0.11
1.00 1.00 0.99 0.97 0.95 0.92 0.89 0.85 0.80 0.75 0.69 0.63 0.56 0.48 0.40 0.31 0.21 0.11
1.00 1.00 0.99 0.98 0.96 0.93 0.90 0.86 0.82 0.78 0.72 0.66 0.60 0.53 0.46 0.38 0.29 0.20 0.10
1.00 1.00 0.99 0.98 0.96 0.94 0.91 0.88 0.84 0.80 0.75 0.70 0.64 0.58 0.51 0.44 0.36 0.28 0.19 0.10
Actual values for stiffness distribution method 2 organized in a table.

1.00 1.00 0.99 0.98 0.96 0.94 0.92 0.89 0.85 0.82 0.77 0.73 0.67 0.62 0.56 0.49 0.42 0.34 0.27 0.18 0.09
1.00 1.00 0.99 0.98 0.97 0.95 0.93 0.90 0.87 0.83 0.79 0.75 0.70 0.65 0.60 0.54 0.47 0.40 0.33 0.25 0.17 0.09
1.00 1.00 0.99 0.98 0.97 0.95 0.93 0.91 0.88 0.85 0.81 0.77 0.73 0.68 0.63 0.57 0.52 0.45 0.39 0.32 0.24 0.17 0.09
1.00 1.00 0.99 0.98 0.97 0.96 0.94 0.91 0.89 0.86 0.83 0.79 0.75 0.71 0.66 0.61 0.56 0.50 0.44 0.37 0.31 0.23 0.16 0.08
1.00 1.00 0.99 0.99 0.97 0.96 0.94 0.92 0.90 0.87 0.84 0.81 0.77 0.73 0.69 0.64 0.59 0.54 0.48 0.42 0.36 0.29 0.23 0.15 0.08
Table B-2: Stiffness Distribution Values used for Method 2
APPENDIX B. TCL CODE

The next three sections contain the Tcl code written or modified by Reed Crosby to

perform the analysis and record the results. The code is broken into three parts; the main code,

the input file, and the procedures. This may be reused as a whole program or as parts and

procedures.

B.1 Main Code

# File Name: Main.tcl


#
# This is the main program
#
# Calls the input file for values of variables
# Calls the Procedures file to have access to written
# procedures.
#
# Reads a file and creates a list of all earthquakes to
# run in the program
# Sets MainRun = 1 to know when to stop
#
# The outer loop runs through the degrees of freedom. After
# each run, the DOF will be increased until the max
# DOF is reached determined in the input file.
# Creates a list of all the masses called MList
# Resets the desired period to the minimum period
#
# The first inner loop increases the period after each run
# until the maximum period is reached
#
# The next inner loop runs an analysis of each earthquake in
# the list of earthquakes read from the file.
# wipe clears all the previous analyses
# ReadRecord reads the earthquake file and turns it into
# a file that can be used in the program for analysis.
#
# The next few lines create a list of the periods to put
# at the top of the final output file.

35
#
# The model is then built with the Build_Model procedure
# which returns the stiffness value so that the next
# analysis will start with the previous stiffness.
# This reduces run time.
#
# There is an option to run a stat load test. The static load
# was used to verify the model was being built correctly.
#
# The Record_Max procedure is called.
#
# Three different analysis procedures had to be built for
# SDOF, 2DOF and 3+DOF models. The if statements make
# sure the right one is used for the model.
#
# The next part checks the Record_Value and modifies the value
# depending on what parameter is used and stored the
# value in a list.
#
# Once it exits the second loop, the values are averaged
# in order to find the average maximum value.
# This value is then stored in a list called AVGList and
# each value is added to the list.
#
# Once it exits the first loop, the values are printed in
# the output file. The first line gives the minDOF,
# maxDOF, damping, parameter recorded, and what
# stiffness distribution was used.
# Then the values for the periods used are printed to the file
# and the maximum average list is printed below it for
# each DOF that is run.
#
# At the end of the run it puts "Done with EQ!"
#

wipe;

source input.tcl
source Procedures.tcl

set infile [open "$EQ_List.OUT" r]

set Earthquakes [read $infile]


set MainRun 1

for {set DOFRun $minDOF} {$DOFRun <= $maxDOF} {incr DOFRun} {


puts "Number of DOF's: $DOFRun"
set MList [DistribMSame $M $DOFRun]
set Tn $startTn
for {set run 1} {$Tn < $MaxPer} {set Tn [Increase_Tn $Tn $dTn]} {

set EQRun 0

foreach Earthquake $Earthquakes {


wipe;
set infile "Earthquakes/$Earthquake.at2"
set outfile "Earthquakes/$Earthquake.dat"

36
ReadRecord $infile $outfile Dt numPts
if {$EQRun == 0} {
if {$TnList == "$Tn"} {

} else {
set TnList [split "$TnList $Tn"]
}
}

set K [Build_Model $K $M $Tn $dampR $DOFRun $PI $DistribK]


set Wn [expr sqrt($K/$M)]

#Static_Load 1000
#puts "Done with static!"

Record_Max $DataFile $DOFRun $Record_Value $run

if {$DOFRun == 1} {
Run_EarthquakeSDOF $Earthquake $dampR $Wn $g $run $Dt $numPts
}
if {$DOFRun == 2} {
Run_Earthquake2DOF $Earthquake $dampR $damping $DOFRun $g
$run $Dt $numPts
}
if {$DOFRun > 2} {
Run_EarthquakeMDOF $Earthquake $dampR $damping $DOFRun $g
$run $Dt $numPts
}
set sumM [sumList $MList]

if {"$Record_Value" == "reaction"} {
set max [expr [max_file $DataFile]/$sumM/32.2/12]
if {$EQRun == 0} {
set AccList $max
} else {
set AccList [split "$AccList $max"]
}
} else {
if {"$Record_Value" == "accel"} {
set max [expr [max_file $DataFile]/32.2/12]
if {$EQRun == 0} {
set AccList $max
} else {
set AccList [split "$AccList $max"]
}
} else {
set max [expr [max_file $DataFile]]
if {$EQRun == 0} {
set AccList $max
} else {
set AccList [split "$AccList $max"]
}
}
}
incr EQRun
#puts "EQ run $EQRun, Period run $run"
}

37
set Average [avgList $AccList]

if {$run == 1} {
set AVGList $Average
} else {
set AVGList [split "$AVGList $Average"]
}
incr run
}
if {$MainRun == 1} {
set reportfile [open "$OutFile.out" w]
puts $reportfile "Min_DOF $minDOF Max_DOF $maxDOF Damping $dampR
Output $Record_Value K_Distr $DistribK \n"
puts $reportfile "$TnList"
}
puts $reportfile "$AVGList"
incr MainRun
}
close $reportfile
puts "Done with EQ!"

wipe;

B.2 Input File

# File Name: input.tcl


#
# This sets variables needed to run the program that can be changed
# depending on the outputs desired.
#
# M is the mass assigned to each Node in units of kip*s^2/in
# K is the starting stiffness. The stiffness will be changed in the
# program so that the desired natural period is reached for each
# model. Units of Kip/in
#
# startTn is the starting period. put in any number >= 0 (Units of sec)
# MaxPer is the maximum period desired. This should be greater than the
# starting period but less than 25 in order to minimize run time.
#
# dTn is the basic period time step. Values between 0.01 and 0.1 are
# recommended
# dampR is the damping used. Values between 0 and 0.1 are recommended
#
# minDOF is the number of DOFs for the first run. Must be an integer >0
# maxDOF is the maximum number of DOFs. Must be an integer >= minDOF.
#
# TnList starts a list with all of the periods used

38
# DOFList starts a list with all of the DOFs.
#
# The for loop creates the DOF list from minDOF to maxDOF
#
# Record_Value is the output the user wants to record and should be one
# of the following:
# disp (displacement) - inches
# vel velocity* - cm/s
# accel acceleration* - g
# incrDisp incremental displacement - cm
# "eigen i" eigenvector for mode i - unitless
# reaction nodal reaction - normalized
# (base shear/total wt)
#
# damping is chosen between one of the following:
# Rayleigh Uses Rayleigh Damping
# Mass Mass Damping Only
# Stiffness Stiffness Damping Only
# If it doesn't match one of these, Rayleigh damping is used.
#
# DataFile is the name of the file for the records of each iteration
# OutFile is the name of the file with all of the final results
# EQ_List is the name of the file with a list of all of the earthquakes
# that will be run in the program. Must be saves as an .OUT file
#
# DistibK determines if the stiffness is uniform or non-uniform. For
# uniform put "Same" and for non-uniform put "Different"
#
# dt is the default time step for the earthquake files. The real value
# will be pulled off of the actual ground motion file.
# nPts is the default number of points in the earthquake file.
#
# g is the constant for gravity (32.2*12). This value is the constant
# that the unscaled ground motions will be multiplied by. If using
# scaled ground motions, this value might need to be changed.
(in/s^2)
# PI is the constant for pi (3.14...)

set M 1
set K 1
set startTn 0
set MaxPer 10

set dTn 0.05


set dampR 0.05

set minDOF 1
set maxDOF 25

set TnList $startTn


set DOFList $minDOF

for {set i $minDOF} {$i <= $maxDOF} {incr i} {


set j [expr $i+1]
set DOFList [split "$DOFList $j"]

39
}

set Record_Value reaction


set damping Rayleigh

set DataFile Max


set OutFile "Report"
set EQ_List EQ1

set DistribK Same


set dt 0.005
set nPts 3000

set g 386.4
set PI [expr 2.0 * asin(1.0)]

B.3 Procedures

# List of Procedures
# Increase_Tn
# Create_Nodes
# DistribMSame
# DistribTest
# DistribKSame
# DistribKDiff
# Build_Model
# Record_Max
# maximum_list
# maximum_list
# max_file
# Run_EarthquakeSDOF
# Run_Earthquake2DOF
# Run_EarthquakeMDOF
# Write_2Results
# Write_Results
# search_PEER
# avgList
# sumList
# ReadSMDFile.tcl
# ReadNGAFile.tcl
# Read_Record.tcl
# Static_Load

# Procedures and explanations:

# Procedure Name: Increase_Tn


#
# This Procedure increases the Natural Period of the system by an
# amount depending on the period of the system.
#
# Increase_Tn receives a period and a change in period increment
# It then returns the new period value. It changes the period

40
# a given amount depending on the current period value.
#
#
# Created by Reed Crosby
# Sept 17, 2012
#

proc Increase_Tn {Tn dTn} {


if {$Tn < 1} {
set Tn [expr ($Tn + $dTn)]
}
if {$Tn < 4} {
if {$Tn >= 1} {
set Tn [expr ($Tn + 2*$dTn)]
}
}
if {$Tn < 10} {
if {$Tn >= 4} {
set Tn [expr ($Tn + 10*$dTn)]
}
}
if {$Tn >= 10} {
set Tn [expr ($Tn + 20*$dTn)]
}
return $Tn
}

# Procedure Name: Create_Nodes


#
# This code creates a simple model of masses attached by
# elements. The elements are assigned a material. The first
# node is fixed and there is one degree of freedom for
# all of the nodes.

# The procedure receives a list with the stiffness values (KList)


# and another list with the mass values at each node (MList). It
# Also takes a damping constant, c and the number of DOFs. It does
# not return anything
#
# The nodes are all placed on top of eachother and zerolength
# elements that are made up of uniaxial materials are used
# to connect the nodes.
#
# Created by Reed Crosby
# Sept 17, 2012

proc Create_Nodes {KList MList c DOF} {


wipe;
model basic -ndm 1 -ndf 1
set nodestep 0

for {set NumNodes [expr $DOF + 1]} {$nodestep <= $DOF} {incr nodestep}
{

41
set M [lindex $MList $nodestep]
if {$nodestep < 1} {
set i 1
}
node $i 0 -mass $M
#puts "created node $i"
incr i
}

fix 1 1
set El_Mat 1
set el_truss 1
set st_el 1
set end_el 2
#Create the materials and elements and apply to nodes
foreach K $KList {
uniaxialMaterial Elastic $El_Mat $K;
element zeroLength $el_truss $st_el $end_el -mat $El_Mat -dir 1
incr El_Mat
incr el_truss
incr st_el
incr end_el
}
}

# Procedure Name: DistribMSame


#
# This procedure creates list that has all the same
# numbers in it that is less then the number of DOFs

# The procedure receives two numbers: the first number


# is the value that is assigned to each value within the
# list. The secong number is the number of values in
# the list.
#
#
# Created by Reed Crosby
# November 12, 2012

proc DistribMSame {Dnum numL} {


set List 0
for {set i 0} {$i < $numL} {incr i} {
set List [split "$List $Dnum"]
}
return $List
}

# Procedure Name: DistribTest


#
# This procedure creates list that was used for testing
# the 3 DOF systems by making the 1st and 2nd masses
# very small compared to the third mass.

# The procedure receives two numbers: the first number


# is the value that is assigned to each value within the
# list. The second number is the number of values in

42
# the list. The procedure was also used for 2 DOF tests
# but has to be modified. One of the small numbers must
# be deleted or made so that there is only one small mass.
# It then returns the list that was created.
#
#
# Created by Reed Crosby
# November 12, 2012

proc DistribTest {Dnum numL} {


set List 0
set List [split "$List 0.001"]
set List [split "$List 0.001"]
set List [split "$List $Dnum"]
return $List
}

# Procedure Name: DistribKSame


#
# This procedure creates list that has all the same
# numbers in it that is less then the number of DOFs

# The procedure receives two numbers: the first number


# is the value that is assigned to each value within the
# list. The second number is the number of values in
# the list. It then returns the list that was created.
#
#
# Created by Reed Crosby
# November 12, 2012

proc DistribKSame {Dnum numL} {


set List $Dnum
for {set i 1} {$i < $numL} {incr i} {
set List [split "$List $Dnum"]
}
return $List
}

# Procedure Name: DistribKDiff


#
# This procedure creates list that has the numbers
# distributed depending on the distribution values
# read from the DistribK.txt file. The number of items
# in the list depends on the number of DOFs.

# The procedure receives two numbers: the first number


# is the value that is distributed and assigned to each
# value within the list. The second number is the number
# of values in the list.
# The file is read into a list and then the correct
# line is read from the list depending on min and max.
# Once the line is read from the file, the first number
# received is multiplied by the each value in the list
# read from the file and assignmed to a list. It then
# returns the list that was created.
#

43
# Created by Reed Crosby
# November 12, 2012

proc DistribKDiff {Dnum numL} {


set min 0
for {set i [expr $numL-1]} {$i >= 0} {set i [expr $i-1]} {
set min [expr $min+$i]
}
set max [expr $min+$numL]
set infile [open "Data/DistribK.txt" r]
set DList [read $infile]
set run 1
set one 1
foreach k $DList {
set stiff [expr $k*$Dnum]
if {$run > $min} {
if {$run <= $max} {
if {$one == 1} {
set List $stiff
incr one
} else {
set List [split "$List $stiff"]
}
}
}
incr run
}
#puts "$run"
#puts "K distrib is: $DList"
return $List
}

# Procedure Name: Build_Model


#
# This procedure builds the model by calling other procedures
# and iterating to create the desired model.

# The procedure receives a trial stiffness, a mass, a damping


# value, the number of DOFs, the constant pi, and the stiffness
# distribution method. It then returns a number with the
# last stiffness method used to be used as the next trial
# stiffness. This reduces run-time of the program.
#
# The file calls DistibK procedures depending on what method
# is desired in the input file and then calls the DitribM
# procedure. It then calls the Creat_Nodes procedure and
# builds a trial model. The eigenvalue comand is used to find
# The natural frequency of the model. This value is modified to
# find the natural period of the trial model and then compare
# this to the desired natural frequency. The stiffness is
# then modified until the actual natural period is within
# 0.001 of the desired natural period. The program is finished
# once this condition is met and the last stiffness value used
# is returned
#
# Created by Reed Crosby
# November 10, 2012

44
proc Build_Model {K M Tn dampR DOF PI DistribK} {
wipe;
for {set ActTn 1} {$ActTn != $Tn} {set K [expr $K+$Change]} {
set Wn [expr 2.0 * $PI / $ActTn]
set c [expr 2.0*$M*$Wn*$dampR]
if {"$DistribK" == "Same"} {
set Klist [DistribKSame $K $DOF]
} else {
set Klist [DistribKDiff $K $DOF]
}
#puts "Klist is $Klist"
set Mlist [DistribMSame $M $DOF]
Create_Nodes $Klist $Mlist $c $DOF
#puts "Created Nodes and members!"
set eigenvalues [eigen -fullGenLapack $DOF]
set eig1 [string range $eigenvalues 0 12]
set eig2 [expr sqrt($eig1)]
set ActTn [expr (2*$PI/$eig2)]
set diff [expr ($ActTn-$Tn)]

if {$diff < 0.001} {


if {$diff > -0.001} {
#puts "Actual Period is $ActTn"
set ActTn $Tn
}
}

set Change [expr ($K*$diff)]


if {$Tn > 1.5} {
if {$Tn < 5} {
set Change [expr ($Change/6)]
}
if {$Tn >= 5} {
set Change [expr ($Change/10)]
}
}
#puts "Actual Period is $ActTn"
#puts "Change is $Change"
}
#puts "Eigen Values are $eig2"
#puts "Wn is $Wn"
#puts "Stiffness is $Klist"
#puts "M is $Mlist"
#puts "Period is $ActTn"
return $K
}

# Procedure Name: Record_Max


#
# This procedure will record the maximum value specified at all the nodes
of a
# MDOF system. Record values are:
# disp (displacement)
# vel velocity*
# accel acceleration*

45
# incrDisp incremental displacement
# "eigen i" eigenvector for mode i
# reaction nodal reaction#
#
# The input values are the name of the file to be recorded to (DataFile),
# the number of DOF's (DOF),the value you want to record (see above for
details),
# and the run number (run)
#
# Created by Reed Crosby
# Sept 25, 2012

proc Record_Max {DataFile DOF Record_Value run} {


set maxNode [expr $DOF+1]
if {$Record_Value == "reaction"} {
#recorder Node -file Data/nodesD.out -time -node $maxNode -dof 1
$Record_Value;
recorder EnvelopeNode -file "Data/$DataFile.out" -node 1 -dof 1
"$Record_Value";
} else {
recorder EnvelopeNode -file "Data/$DataFile.out" -node $maxNode -dof
1 "$Record_Value";
}
}

# Procedure Name: maximum_list


#
# This Procedure finds the maximum number within a list.
#
# maximum_list receives a list (List) and returns the maximum value
from that list.
#
#
# Created by Reed Crosby
# Sept 17, 2012
#
proc maximum_list {List} {
set max 0
foreach j $List {
if [$j > $max] {
set max $j
}
}
return $max
}

# max_file
#
# This Procedure finds the maximum number within a file.
#
# maximum_list receives a file(File) and returns the maximum value from
that File.
#
#
# Created by Reed Crosby

46
# Sept 17, 2012
#

proc max_file {File} {


wipe;
set max 0
set infile [open "Data/$File.out" r+]

for {set one [gets $infile line]} {[gets $infile line] >= 0 } {set
one 0} {
if {$line > $max} {
set max $line
}
}
#puts "max is $max"

close $infile
return $max

# Procedure Name: Run_EarthquakeSDOF


#
# This Procedure was taken from the OpenSees basic examples manual from the
example
# named Time History Analysis of a 2D Elastic Cantilever Column. The
procedure runs a
# ground motion.
#
# The procedure receives the name of the ground motion (EQ), the damping
value
# (dampR), the natural frequency of the model (Wn), the gravity constant
(g),
# the run number (run), and the values for dt and nPts. It does not return
anything.
#
#
#
# Modified by Reed Crosby
# Sept 17, 2012
#

proc Run_EarthquakeSDOF {EQ dampR Wn g run dt nPts} {

timeSeries Path 2 -dt $dt -filePath "Earthquakes/$EQ.dat" -factor $g;


pattern UniformExcitation 2 1 -accel 2;

# set damping based on first eigen mode


set Adamp [expr 2.0*$dampR*$Wn]; #damping coefficient for the
stiffness
rayleigh $Adamp 0 0 0; # set damping based on natural
period
#puts "a0 is $Adamp"

# create the analysis

47
wipeAnalysis; # clear previously-define analysis
parameters
constraints Plain; # how it handles boundary conditions
numberer Plain; # renumber dof's to minimize band-
width
system BandGeneral; # how to store and solve the system
of equations
algorithm Linear # use Linear algorithm for linear
analysis
integrator Newmark 0.5 0.25 ; # determine the next time step for
an analysis
analysis Transient; # define type of analysis: time-
dependent
set duration [expr $nPts*$dt]
set dtAnalysis 0.005
set Nsteps [expr int($duration/$dtAnalysis)]
analyze $Nsteps $dtAnalysis
}

# Procedure Name: Run_Earthquake2DOF


#
# This Procedure was taken from the OpenSees basic examples manual from the
example
# named Time History Analysis of a 2D Elastic Cantilever Column and
modified for
# a 2 DOF model. The procedure runs a given ground motion.
#
# The procedure receives the name of the ground motion (EQ), the damping
value
# (dampR), the damping method (damping), the natural frequency of the model
(Wn),
# the gravity constant (g),the run number (run), and the values for dt and
nPts.
# It does not return anything.
#
# It is different from the SDOF analysis because it takes two eigenmodes
# into account: the first and second. It has both a stiffness and mass
proportional
# part to the Rayleigh Damping value.
#
# Modified by Reed Crosby
# November 15, 2012

proc Run_Earthquake2DOF {EQ dampR damping DOF g run dt nPts} {

timeSeries Path 2 -dt $dt -filePath "Earthquakes/$EQ.dat" -factor $g;


pattern UniformExcitation 2 1 -accel 2;

# set damping based on first and second eigen mode


set eigenvalues [eigen -fullGenLapack $DOF]
set j 1
foreach i $eigenvalues {
if {$j == 1} {
set W1 $i
}
if {$j == 2} {
set W2 $i

48
}
incr j
}

if {"$damping" == "Mass"} {
set Adamp [expr 2.0*$dampR*$W1]
rayleigh $Adamp 0 0 0;
#puts "a0 is $Adamp"
} else {
if {"$damping" == "Stiffness"} {
set Bdamp [expr 2.0*$dampR/($W1)]
rayleigh 0 0 $Bdamp 0;
#puts "a1 is $Bdamp"
} else {
set Adamp [expr 2.0*$dampR*$W1*$W2/($W1+$W2)]; #damping
coefficient for the stiffness
set Bdamp [expr 2.0*$dampR/($W1+$W2)]
rayleigh $Adamp 0 $Bdamp 0; # set damping
based on first and second natural periods
#puts "a0 is $Adamp and a1 is $Bdamp"
}
}

# create the analysis


wipeAnalysis; # clear previously-define analysis
parameters
constraints Plain; # how it handles boundary conditions
numberer Plain; # renumber dof's to minimize band-
width (optimization), if you want to
system BandGeneral; # how to store and solve the system
of equations in the analysis
algorithm Linear # use Linear algorithm for linear
analysis
integrator Newmark 0.5 0.25 ; # determine the next time step for
an analysis
analysis Transient; # define type of analysis: time-
dependent
set duration [expr $nPts*$dt]
set dtAnalysis 0.005
set Nsteps [expr int($duration/$dtAnalysis)]
analyze $Nsteps $dtAnalysis
}

# Procedure Name: Run_EarthquakeMDOF


#
# This Procedure was taken from the OpenSees basic examples manual from the
example
# named Time History Analysis of a 2D Elastic Cantilever Column and
modified for
# a MDOF model. The procedure runs a given ground motion.
#
# The procedure receives the name of the ground motion (EQ), the damping
value
# (dampR), the damping method (damping), the natural frequency of the model
(Wn),
# the gravity constant (g),the run number (run), and the values for dt and
nPts.

49
# It does not return anything.
#
# It is different from the 2DOF analysis because it takes two eigenmodes
# into account: the first and the third. It has both a stiffness and mass
# proportional part to the Rayleigh Damping value.
#
# Modified by Reed Crosby
# November 15, 2012
#
proc Run_EarthquakeMDOF {EQ dampR damping DOF g run dt nPts} {

timeSeries Path 2 -dt $dt -filePath "Earthquakes/$EQ.dat" -factor $g;


pattern UniformExcitation 2 1 -accel 2;

# set damping based on first and third eigen mode


set eigenvalues [eigen -fullGenLapack $DOF]
set j 1
foreach i $eigenvalues {
if {$j == 1} {
set W1 $i
}
if {$j == 3} {
set W3 $i
}
incr j
}

if {"$damping" == "Mass"} {
set Adamp [expr 2.0*$dampR*$W1]
rayleigh $Adamp 0 0 0;
#puts "a0 is $Adamp"
} else {
if {"$damping" == "Stiffness"} {
set Bdamp [expr 2.0*$dampR/($W1)]
rayleigh 0 0 $Bdamp 0;
#puts "a1 is $Bdamp"
} else {
set Adamp [expr 2.0*$dampR*$W1*$W3/($W1+$W3)];
set Bdamp [expr 2.0*$dampR/($W1+$W3)]
rayleigh $Adamp 0 $Bdamp 0;
#puts "a0 is $Adamp and a1 is $Bdamp"
}
}

# create the analysis


wipeAnalysis; # clear previously-define analysis
parameters
constraints Plain; # how it handles boundary conditions
numberer Plain; # renumber dof's to minimize band-
width (optimization),
system BandGeneral; # how to store and solve the system
of equations
algorithm Linear # use Linear algorithm for linear
analysis
integrator Newmark 0.5 0.25 ; # determine the next time step for
an analysis

50
analysis Transient; # define type of analysis: time-
dependent
set duration [expr $nPts*$dt]
set dtAnalysis 0.005
set Nsteps [expr int($duration/$dtAnalysis)]
analyze $Nsteps $dtAnalysis
}

# Procedure Name: Write_2Results


#
# This Procedure takes and prints the accelerations and periods to a file.
#
# Write_2Results receives a file to write to (File) and two other numbers
or lists
# to write to that file. This is no longer used in the main file
#
# Created by Reed Crosby
# Sept 17, 2012
#

proc Write_2Results {File Tn Accel} {


set outfile [open "$File.out" w]
set j 0
foreach i $Tn {
set Acc [lindex $Accel $j]
puts $outfile "$i $Acc"
incr j
}
close $outfile
}

# Procedure Name: Write_Results


#
# This Procedure takes and prints the one list to a file
#
# Write_Results receives a file to write to (File) and a list to write to
that file.
# This is no longer used in the main file
#
# Created by Reed Crosby
# Oct 8, 2012
#

proc Write_Results {File List} {


set outfile [open "$File.out" w]
puts $outfile "$List"
close $outfile
}

# Procedure Name: search_PEER


#
# This procedure searches the PEER strong motion database to find
Earthquakes
# that meet a certain criteria.
#
# search_PEER receives a file to write to (File) and returns a list of the
earthquakes

51
# This is no longer used in the main file
#
# Created by Reed Crosby
# October 8, 2012
#

proc search_PEER {File} {


set records [searchPeerNGA -fault San -magLo 6.25 -magHi 7.0]
Write_Results $File $records
return $records
}

# Procedure Name: avgList


#
# This procedure calculates the average value of a list of numbers
#
# This procedure receives a list of numbers and finds the average
# value of all of those numbers and returns that value.
#
# Created by Reed Crosby
# November 8, 2012
#

proc avgList {listname} {


set total [sumList $listname]
set average [expr $total/[llength $listname]]
return $average
}

# Procedure Name: sumList


#
# This procedure calculates the sum of a list of numbers
#
# This procedure receives a list of numbers and finds the sum
# of all of those numbers and returns that sum.
#
# Created by Reed Crosby
# November 8, 2012

proc sumList {List} {


set total 0
foreach i $List {
set total [expr $total+$i]
}
return $total
}

# The following files are referenced and MUST be included in the folder
# so that the program can run. They take the records and convert
# them into the type of files that can be used in the analysis.

source ReadSMDFile.tcl
source ReadNGAFile.tcl
source Read_Record.tcl

# Procedure Name: Static_Load


#

52
# This procedure applies a static load to a certain node and then
# can output the node reactions and displacements
#
# This procedure receives a number that is used for the load
# and prints out the nodal reactions on the screen
#
# Created by Reed Crosby
# November 8, 2012

proc Static_Load {Load} {

timeSeries Linear 1
pattern Plain 1 1 {
load 2 $Load
}

# ------------------------------
# Start of analysis generation
# ------------------------------

system BandSPD
numberer RCM
constraints Plain
integrator LoadControl 1.0
algorithm Linear
analysis Static

# ------------------------------
# Start of recorder generation
# ------------------------------

# create a Recorder object for the nodal displacements at node 4


recorder Node -file example.out -time -node 2 -dof 1 disp

# Create a recorder for element forces, one in global and the other local
system
recorder Element -file eleGlobal.out -time -ele 1 forces
recorder Element -file eleLocal.out -time -ele 1 basicForces

# ------------------------------
# Finally perform the analysis
# ------------------------------

analyze 1

# ------------------------------
# Print Stuff to Screen
# ------------------------------

puts "node 0: [nodeReaction 1]"


puts "node 2: [nodeReaction 2]"
print node 4
}

53

Potrebbero piacerti anche