Upload
vuongliem
View
227
Download
0
Embed Size (px)
Citation preview
1
Simulating Simulating Seismic ResponseSeismic Response of RC Frame Structures to of RC Frame Structures to
Collapse: Models, Calibration, and Solution AlgorithmsCollapse: Models, Calibration, and Solution Algorithms
Curt Haselton, PhD Candidate Curt Haselton, PhD Candidate
Gregory Deierlein, Professor, PhD, PEGregory Deierlein, Professor, PhD, PE
OpenSees Developers Symposium OpenSees Developers Symposium –– August 24, 2005August 24, 2005
OpenSees Developers Symposium OpenSees Developers Symposium –– August 24, 2005August 24, 20052
OutlineOutline
� Introduction to Reinforced-Concrete Beam-Column element
model with cyclic strength and stiffness deterioration
� Calibration of RC Beam-Column element model
� Introduction to structural model and collapse predictions
� Collapse analysis process:
� Overview of Matlab algorithm
� OpenSees solution algorithm
� Identification/treatment of collapse
� Treatment of singularity
� Summary
OpenSees Developers Symposium OpenSees Developers Symposium –– August 24, 2005August 24, 20053
-1.5
-1
-0.5
0
0.5
1
1.5
-8 -6 -4 -2 0 2 4 6 8
Θ, Chord Rotation
M, C
olu
mn
Bas
e M
om
en
tRC BeamRC Beam--Column Element ModelColumn Element Model
Basic Strength Deterioration
Note: Cyclic deterioration parameter is hysteretic energy dissipated
Cyclic deterioration
Post-Capping Strength
Deterioration
Plastic rotation capacity
(Material model by Ibarra and Krawinkler)
Post-capping stiffness
Also unloading and reloading stiffness deterioration, but not as important for
collapse
Θ
M
OpenSees Developers Symposium OpenSees Developers Symposium –– August 24, 2005August 24, 20054
Calibration of BeamCalibration of Beam--Column ModelColumn Model
-150 -100 -50 0 50 100 150-250
-200
-150
-100
-50
0
50
100
150
200
250
Sh
ear
Fo
rce (
kN
)
Column Top Horizontal Deflection (mm)
Test 170 (kN, mm, rad):
K
e = 2.4642e+007
Kinit
= 1.1842e+008
αs = 0.04
αc = -0.07 (ND = 0)
θy = 0.0143
θcap,pl
= 0.060 (LB = 0)
θu,mono,pl
= 0.103 (LB = 0)
λ = 64, c = 1.20
isPDeltaRemoved = 1
Experimental Results
Model Prediction
Model Calibrated for:
• Strength
• Initial stiffness
• Post-yield stiffness
• Plastic rotation capacity
• Negative post-cap slope
• Cyclic deterioration rate
Model calibrated to 226
flexurally dominated test from
PEER Structural Performance
Database (Berry and Eberhard)
Regression analyses in progress
to predict all model parameters
from the physical column
properties
OpenSees Developers Symposium OpenSees Developers Symposium –– August 24, 2005August 24, 20055
Structural ModelStructural Model
Primary Lateral FrameGravity Frame(s)
Lumped plasticity elements
Joints with both bond-slip springs and shear springs
Column bond-slip springs
OpenSees Developers Symposium OpenSees Developers Symposium –– August 24, 2005August 24, 20056
Incremental Dynamic Analysis (IDA)Incremental Dynamic Analysis (IDA)
36 records
Collapse Sa is at “flat line” –dynamic instability – drift increases without bounds
Of course, there are many
numerical problem to be overcome for the results to be
reliable…
OpenSees Developers Symposium OpenSees Developers Symposium –– August 24, 2005August 24, 20057
Overview of IDA AlgorithmOverview of IDA Algorithm
� Matlab drives the collapse analysis
� Easier for automating analysis, post-processing and
parameter studies
� Matlab writes a .Tcl file to tell OpenSees what to do, then
Matlab executes OpenSees with the following command:
�“!openSees RunSingleCollapseSensitivityAnalysisMATLAB.tcl”
� After OpenSees analysis, Matlab processes the results,
then runs remaining analyses to find collapse point.
� Easier to handle numerical difficulties such as
singularity and non-convergence
OpenSees Developers Symposium OpenSees Developers Symposium –– August 24, 2005August 24, 20058
Dynamic Solution AlgorithmDynamic Solution Algorithm# Loop for full earthquake unless we detect collapse or until the system goes singular
while { $eqNotFinished == 1 && $isCollapsed == 0 && $isSingular == 0 } {
test RelativeNormDispIncr 1.0e-6 10 1; # test testType $tolerance $maxNumIter <$printFlag>
algorithm NewtonLineSearch 0.6;
set ok [analyze 1 $dT]
if {$ok != 0} {algorithm Newtonset ok [analyze 1 $dT]
}
if {$ok != 0} {algorithm Newton -initialset ok [analyze 1 $dT]
}
if {$ok != 0} {algorithm KrylovNewtonset ok [analyze 1 $dT]
}
# Continued on next slide…
OpenSees Developers Symposium OpenSees Developers Symposium –– August 24, 2005August 24, 20059
Dynamic Solution AlgorithmDynamic Solution Algorithm# …continued from last slide
if {$ok != 0} {
# Repeatedly reduce the tolerance and try all of the solution algorithms again}
if {$ok != 0} {
# STOP ANALYSIS: Give up and let OpenSees return with a convergence error
} else {
# Output the convergence tolerance achieved for user to decide if that is acceptable
}
# If we get to this line the analysis converged…check for collapse and singularity
if { isCollapsed } { # Stop analysis and report collapse [Details on next slide] }
if { isSingular } { # Stop analysis and report singularity [Details on next slide] }
}
OpenSees Developers Symposium OpenSees Developers Symposium –– August 24, 2005August 24, 200510
Treatment of Collapse StateTreatment of Collapse State
� We stop the analysis if the model collapses (dynamically unstable) or the
solution may become singular (which causes an OpenSees error)
� At each step of the analysis we check collapse based on a predefined drift
limit (this collapse definition can easily be altered).
� Code to check for collapse:
# Get floor displacements from OpenSees at this analysis step
set floor2Displ "[nodeDisp $nodeNumAtFloor2 1]“;
…do for all floors
# Compute story drift ratios for all stories
set story2DriftRatio [expr ($floor3Displ - $floor2Displ) / [lindex $floorHeightsLIST 2]]
…do for all stories
# Check is collapseDriftLimit is exceeded
if { abs(any story drift) > collapseDriftLimit } {
set isCollapsed 1; # Stop the analysis at this time step and report collapse to MATLAB
}
OpenSees Developers Symposium OpenSees Developers Symposium –– August 24, 2005August 24, 200511
Treatment of SingularityTreatment of Singularity
� Singularity is a huge problem for collapse analysis. Singularity causes the
current version of opensees.exe to stop working (we need to fix this)
� How do we know that the solution went singular? We get any of the
following in some of our nodal recorders (not all recorders):
� #QNAN, or #IND, or a huge displacement (disp > 1000000.0)
� Code to check for singularity:
� See next slide
OpenSees Developers Symposium OpenSees Developers Symposium –– August 24, 2005August 24, 200512
Treatment of SingularityTreatment of Singularity# Code for singularity check
# Check for singularity in a single nodal recorder
set floor2Displ "[nodeDisp $nodeNumAtFloor2 1]“
# Check recorders for IND or QNAN…
set checkForQNANFlr2 [string first QNAN $floor2Displ 1];
set checkForINDFlr2 [string first IND $floor2Displ 1];
# Check recorder for a huge unreasonable displacement…
if { $ floor2Displ > 1000000.0 } {
set isSingular 1; # Set singularity flag
}
# …do same checks for many other nodal recorders…
# Set the singularity flag based on IND or QNAN
if {($checkForQNANFlr2 != -1) || ($checkForINDFlr2 != -1) || …check other nodes… } {
set isSingular 1; # Set singularity flag
}
# Stop analysis if singular
if { isSingular == 1 } {
# Stop the analysis at this time step and report singularity to MATLAB
}
OpenSees Developers Symposium OpenSees Developers Symposium –– August 24, 2005August 24, 200513
Treatment of SingularityTreatment of Singularity
� What do we do if the solution goes singular?
� OpenSees stops the analysis and report the singularity back to Matlab
� Matlab throws away the results for the singular analysis
� Matlab then slightly alters the Sa level of the earthquake and reruns the analysis
� Matlab continues these slight alterations to Sa until we get an analysis with
either full convergence or collapse (without any singularity)
OpenSees Developers Symposium OpenSees Developers Symposium –– August 24, 2005August 24, 200514
SummarySummary
� It is easy and extremely useful to use Matlab to run OpenSees
� When doing collapse analyses, numerical issues are a large problem
� Using Tcl and OpenSees commands, we can identify these
numerical problems and “get around them” in order to get analysis
results that are reliable
� A book that I have found extremely useful for programming in Tcl:
� “Practical Programming in Tcl and Tk”, Fourth Edition, by Brent B.
Welch and Ken Jones