effect of chevron braced viscous dampers with self centering element

Forum for OpenSees users to post questions, comments, etc. on the use of the OpenSees interpreter, OpenSees.exe

Moderators: silvia, selimgunay, Moderators

Post Reply
ritishreddy
Posts: 4
Joined: Fri Apr 01, 2022 1:28 pm

effect of chevron braced viscous dampers with self centering element

Post by ritishreddy » Sun Feb 19, 2023 3:43 am

This is a follow up from my previous post. I scaled down the model to troubleshoot but could not find a solution, please help. Here, i provide the code for 1 bay , 1 storey frame with finite length uniaxial self centering element and a zero length viscous damper in parallel. I get same displacement values for different properties of viscous damper and self centering material.

# Analysis of steel moment resisting frame in N/S direction
# SET UP
wipe; # clear memory of all past model definitions
model BasicBuilder -ndm 2 -ndf 3; # Define the model builder, ndm=#dimension, ndf=#dofs
source LibUnits.tcl; # define units
source DisplayPlane.tcl; # procedure for displaying a plane in model

set ViewScale 0.25; # scaling factor for viewing deformed shape, it depends on the dimensions of the model

# define GEOMETRY -------------------------------------------------------------
# define structure-geometry parameters
set LCol1 [expr 180*$in]; # column height @ 1 floor
set LBeam [expr 30*$in]; # beam length
set Loffsetd [ expr 5*$in ] ; # distance of damper from left hand node and right hand node
set Ldamp [ expr 10*$in ] ; # length of each damper
set Hs [ exp 8.0*$in ] ; # height offset of lower nodes of each damper of self centering material
set Hd [ exp 4.0*$in ] ; # height offset of zero length nodes of each damper


# calculate locations of beam/column/girder intersections:
set X1 0.;
set X2 [expr $X1 + $LBeam];

set Y1 0.;
set Y2 [expr $Y1 + $LCol1];



# define nodal coordinates
# tag X Y
node 1001 0 0 ;
node 1002 $X2 0 ;

#Beam nodes
node 2001 0 $Y2 ;
node 2002 [ expr 0 + $Loffsetd ] $Y2 ;
node 2003 [ expr 0 + $Loffsetd + (1.0*$Ldamp) ] $Y2 ;
node 2004 [ expr 0 + $Loffsetd + (2.0*$Ldamp) ] $Y2 ;

#Self centering element nodes
node 2005 [ expr 0 + $Loffsetd ] [ expr $Y2 -$Hs ] ;
node 2006 [ expr 0 + $Loffsetd + (1.0*$Ldamp) ] [ expr $Y2 -$Hs ] ;
node 2007 [ expr 0 + $Loffsetd + (2.0*$Ldamp) ] [ expr $Y2 -$Hs ] ;
#Dameper nodes
node 2008 [ expr 0 + $Loffsetd + (0.5*$Ldamp) ] [ expr $Y2 -$Hd ] ;
node 2009 [ expr 0 + $Loffsetd + (0.5*$Ldamp) ] [ expr $Y2 -$Hd ] ;
node 2010 [ expr 0 + $Loffsetd + (1.5*$Ldamp) ] [ expr $Y2 -$Hd ] ;
node 2011 [ expr 0 + $Loffsetd + (1.5*$Ldamp) ] [ expr $Y2 -$Hd ] ;

# End node of the beam
node 2012 $X2 $Y2 ;







Single point constraints -- Boundary Conditions
fix 1001 1 1 1 ;
fix 1002 1 1 1 ;

# restrictions for nodes related to self centering elements and dampers
fix 2005 0 1 1 ;
fix 2006 0 1 1 ;
fix 2007 0 1 1 ;
fix 2008 0 1 1 ;
fix 2009 0 1 1 ;
fix 2010 0 1 1 ;
fix 2011 0 1 1 ;





# constrain beam-column joints in a floor to have the same displacement in y and z directions using the equal dof command
# Floor level 2
equalDOF 2001 2012 2 3 ;


#constrain nodes of self centering elements and nodes of the beam to have the same displacement in x directions using the equal dof command
# Floor level 2

equalDOF 2002 2005 1 ;
equalDOF 2003 2006 1 ;
equalDOF 2004 2007 1 ;

# Constrain damper nodes havong zero length elements to have same displacements in all directions
equalDOF 2008 2009 1 2 3 ;
equalDOF 2010 2011 1 2 3 ;

# Assign masses to the nodes in x-direction

# input parameters to calculate unit mass of each floor
set g [ expr 386.0*$in/($sec*$sec) ] ; # value of accelaration due to gravity in in/sec2
set massfloor2 [ expr 1.248*1000000*$kg ] ; # mass of floor 2
set Negligible 1e-9; # a very small number to avoid problems with zero

# floor 2
set m2 [ expr $massfloor2/5 ] ; # mass assigned to each node of plane frame of floor 2

# Assign mass to the nodes of plane frame structure
# floor 2
mass 2001 $m2 $Negligible $Negligible ;
mass 2012 $m2 $Negligible $Negligible ;

# Define Section Properties and Elements
# For floor level 2 and 3 ( elevation ) ( For N/S Frames )
# define material properties
set Es [ expr 29000.0*$ksi ] ; # steel Young's modulus
set Fy [ expr 54.3892*$ksi ] ; # Yield strength of steel used in this model
# define column section W21x201
set Acol_12 [ expr 59.3*$in2 ] ; # cross-sectional area
set Icol_12 [ expr 5310.0*$in4 ] ; # moment of inertia
# define beam section W27x94
set Abeam_23 [ expr 27.6*$in2 ] ; # cross-sectional area (full section properties)
set Ibeam_23 [ expr 3270*$in4 ] ; # moment of inertia (full section properties)




set Lineartransform 2
geomTransf Linear $Lineartransform ; # Linear transformation


# define elastic column elements using "element" command
# command: element elasticBeamColumn $eleID $iNode $jNode $A $E $I $transfID
# eleID convention: "1xy" where 1 = col, x = Pier #, y = Story #
# Columns Story 1
element elasticBeamColumn 1 1001 2001 $Acol_12 $Es $Icol_12 $Lineartransform; # Pier 1
element elasticBeamColumn 2 1002 2012 $Acol_12 $Es $Icol_12 $Lineartransform;


# define elastic beam elements
# Normal beam elements
# eleID convention: "2xy" where 2 = beam, x = Bay #, y = Floor #
# floor 2 beam 1 ( elements )
#Normal elements
element elasticBeamColumn 3 2001 2002 $Abeam_23 $Es $Ibeam_23 $Lineartransform;
element elasticBeamColumn 4 2002 2003 $Abeam_23 $Es $Ibeam_23 $Lineartransform;
element elasticBeamColumn 5 2003 2004 $Abeam_23 $Es $Ibeam_23 $Lineartransform;
element elasticBeamColumn 6 2004 2012 $Abeam_23 $Es $Ibeam_23 $Lineartransform;



# Define SMA Alloy ( which is a part of superelastic viscous damper as a self recentering material )
# define input paramters
set k1 [ expr 2.92*$KN/$mm ] ; # initial stiffness
set k2 [ expr 0.99*$KN/$mm] ; # post activation stiffness
set fa [ expr 53.1*$KN ] ; # forward activation force
set b 1 ; # ratio of forward to reverse activation stress
uniaxialMaterial SelfCentering 1 $k1 $k2 $fa $b

# Define viscous damper material
# Input parameters for viscous damper material
set k [ expr 14.3*$KN/$mm ] ; # elastic stiffness of damper
set Cd [ expr 8*$KN*$sec/$mm ] ; # viscous damping coefficient
set ad 0.8 ; # non linear exponent coefficient

uniaxialMaterial ViscousDamper 2 $k $Cd $ad

# Provide rigid elements for chevron braces with high moment of inertia
set A1 [ expr 1000*$in*$in ] ; # area for other connecting column type connections
set I1 [ expr 1.0e6*$in4 ] ; # Moment of inertia for other connecting column type connections

# Beams connecting column bottom nodes and main supporting node for dampers( Bay 1 )
element elasticBeamColumn 7 1001 2006 $A1 $Es $I1 $Lineartransform -releasez 3 ;
element elasticBeamColumn 8 1002 2006 $A1 $Es $I1 $Lineartransform -releasez 3 ;



# Two node links connecting as self centering elements
# Bay1
element twoNodeLink 9 2005 2006 -mat 1 -dir 1 ; puts "a"
element twoNodeLink 10 2006 2007 -mat 1 -dir 1 ; puts "a"





# Rigid elements vertically connecting the beam nodes to self centering nodes


element elasticBeamColumn 11 2002 2005 $A1 $Es $I1 $Lineartransform ;
element elasticBeamColumn 12 2003 2006 $A1 $Es $I1 $Lineartransform ;
element elasticBeamColumn 13 2004 2007 $A1 $Es $I1 $Lineartransform ;

#Zero length elements for damper nodes
element zeroLength 14 2008 2009 -mat 2 -dir 1
element zeroLength 15 2010 2011 -mat 2 -dir 1


# Rigid elements connecting the damper nodes to self centering nodes

#( Bay 1 )
element elasticBeamColumn 16 2008 2005 $A1 $Es $I1 $Lineartransform ;
element elasticBeamColumn 17 2009 2006 $A1 $Es $I1 $Lineartransform ;
element elasticBeamColumn 18 2010 2006 $A1 $Es $I1 $Lineartransform ;
element elasticBeamColumn 19 2011 2007 $A1 $Es $I1 $Lineartransform ;




source LibAnalysisDynamicParameters.tcl ;
# Source in TCL proc to read PEER SMD record
source ReadSMDFile.tcl ;
# Permform the conversion from SMD record to OpenSees record
# inFile outFile dt
ReadSMDFile RSN4_IMPVALL.BG_B-ELC000.AT2 groundmotionlow.txt 0.01 ; # values from earthquake file ( Elcentro) will go to output file (groundmotionlow.txt)


recorder Node -file nodedisplacement.txt -timeSeries 1 -time -node 2001 2012 -dof 1 disp ;
recorder Element -file damperforce.txt -time -ele 9 10 localForce ;
# set damping based on first eigen mode
set lambadI [ expr [ eigen 1 ] ] ;
set freq [expr pow($lambadI,0.5) ] ;
set period [expr (2*3.14)/$freq]
puts $period
set damp 0.02;
rayleigh [expr 2*$damp*$freq] 0. 0. 0.

# define ground motion parameters
set patternID 3; # load pattern ID
set GMdirection 1; # ground motion direction (1 = x)
set GMfile "groundmotionlow.txt"; # ground motion filename
set dt 0.01; # timestep of input GM file
set Scalefact 1.0; # ground motion scaling factor

# define the acceleration series for the ground motion
# syntax: "Series -dt $timestep_of_record -filePath $filename_with_acc_history -factor $scale_record_by_this_amount
set accelSeries "Series -dt $dt -filePath $GMfile -factor [expr $Scalefact*$g]"; puts "a"

# create load pattern: apply acceleration to all fixed nodes with UniformExcitation
# command: pattern UniformExcitation $patternID $GMdir -accel $timeSeriesID
pattern UniformExcitation $patternID $GMdirection -accel $accelSeries;



# display displacement shape of the column
recorder display "Displaced shape" 50 50 1000 1000 -wipe
prp 200. 50. 1;
vup 0 1 0;
vpn 0 0 1;
display 1 5 100

# create the analysis
# clear previously-define analysis parameters
constraints Transformation; # how it handles boundary conditions
numberer RCM; # renumber dof's to minimize band-width (optimization), if you want to
system UmfPack; # how to store and solve the system of equations in the analysis (large model: try UmfPack)
test EnergyIncr 1.0e-10 100; # test Eneregy incerment
algorithm KrylovNewton; # use Kyrlow-Newton algorithm
integrator Newmark 0.5 0.25 ; # determine the next time step for an analysis
analysis Transient; # define type of analysis: time-dependent
analyze [expr 6000] 0.01;

puts "Done!"

Post Reply