opensees模拟:有粘结实体桥墩分析算例 下载本文

# Written by wyy # Units: N, m, sec

wipe; #wipe memery for new calculation

model basic -ndm 2 -ndf 3; #2-d problem, 3-degree of freedom per node ## Define constant

set PI [expr 2*asin(1.0)] #等于π set g 9.81; ## Data input

set hCol 0.36; # Height of Column set bCol 0.50; # Width of Column

set colAspect 4.86; # Column aspect ratio: L/D 柱子的纵横比

set v [expr 0.1]; # Column axial load rate --> P = v*f'c*Ag 轴向荷载率 set LCol [expr $hCol*$colAspect]; # Column length 柱长 set fc -4.16E7; # Concrete compressive strength set fpc -5.747E+7 set epsc0 -0.006328 set fpcu -3.302E+7 set epsu -0.0215 #set ratio 0.3 #set ft 5.474E+5 set Ec 2.43E10

set colArea [expr $hCol*$bCol]; # Column cross-section area 横截面积 set P [expr 2*$v*$fc*$colArea]; # Column axial load 轴向荷载 #set P [expr -576000-691484]

set m [expr -$P/$g]; # Beam nodal mass 节点质量 set beamArea $colArea; # Beam cross-section area set GJ 1.0e15; # Torsional stiffness 扭转刚度 set np 3; # Number of integration points

## Define uniaxial materials

# Core concrete (confined约束混凝土)

uniaxialMaterial Concrete01 1 [expr $fpc] $epsc0 $fpcu $epsu

#uniaxialMaterial Concrete02 1 [expr $fpc] $epsc0 $fpcu $epsu $ratio $ft $Ets

# Cover concrete (unconfined无约束)

uniaxialMaterial Concrete01 2 [expr $fc] -0.002 0 -0.005 # STEEL

## Cover steel Tube

#set fy 3.67e8; # Yield stress

#set E 2.0E11; # Young's modulus E=200000000kN/m # tag fy E0 b

#uniaxialMaterial Steel01 3 $fy $E 0.01 # STEEL

set fy 3.2E8 set fu 4.59E8 set Es 2.0E11

set Esh 6E9 ; # 0.03*Es set esh 0.016 ; # 8*ey set eult 0.08 ;# 40*ey set lsr 6.0 set beta 1.0 set r 0.8

set gama 0.8 set Cf 0.7

set alpha 0.506 set Cd 0.7

uniaxialMaterial ReinforcingSteel 3 $fy $fu $Es $Esh $esh $eult -GABuck $lsr $beta $r $gama -CMFatigue $Cf $alpha $Cd

# Post-tension threaded rod tag E0 eyt eyc initial strain(以负为正) set beta1 1.0 set r1 0.5 set gama1 0.5 set Cf1 0.4

set alpha1 0.3 set Cd1 0.3

uniaxialMaterial ReinforcingSteel 4 1.25E9 1.5E9 1.95E11 $Esh 0.06 0.3 -GABuck $lsr $beta1 $r1 $gama1 -CMFatigue $Cf1 $alpha1 $Cd1

# ---

# Post-tension threaded rod tag E0 eyt eyc initial strain(以负为正,通过输入初始应变的方式施加预应力)

#uniaxialMaterial ElasticPP 4 1.95e11 [expr 0.0086+0.0043] [expr 0.0086-0.0043] -0.0043

# -----

## Define nodes # tag X Y

node 1 0.0 0.0

node 2 0.0 [expr 0.2*$LCol] node 3 0.0 [expr 0.4*$LCol] node 4 0.0 [expr 0.6*$LCol] node 5 0.0 [expr 0.8*$LCol] node 6 0.0 $LCol ## Nodal mass # node MX MY RZ mass 6 $m $m 0.0

# Boundary conditions # node DX DY RZ fix 1 1 1 1 #fix 2 0 0 0 #fix 3 0 0 0 #fix 4 0 0 0 #fix 5 0 0 0 fix 6 0 0 0

# Define cross-section for nonlinear columns # ------------------------------------------ # set some parameters set colWidth 0.36 set colDepth 0.5

set cover 0.024

set As [expr $PI*pow(0.01,2)/4]; # area of no. 7 bars π*D2/4 (PI=π) set APs [expr 7*$PI*pow(0.005,2)/4]; # area of no. 7 bars

# some variables derived from the parameters

set y1 [expr $colWidth/2.0] set z1 [expr $colDepth/2.0]

section Fiber 2 {

# Create the concrete core fibers patch rect 1 20 20 [expr $cover-$y1] [expr $cover-$z1] [expr $y1-$cover] [expr $z1-$cover]

# Create the concrete cover fibers (top, bottom, left, right) patch rect 2 20 1 [expr -$y1] [expr $z1-$cover] $y1 $z1

patch rect 2 20 1 [expr -$y1] [expr -$z1] $y1 [expr $cover-$z1]

patch rect 2 2 1 [expr -$y1] [expr $cover-$z1] [expr $cover-$y1] [expr $z1-$cover] patch rect 2 2 1 [expr $y1-$cover] [expr $cover-$z1] $y1 [expr $z1-$cover] # Create the reinforcing fibers (left, right,top,bottom)

layer straight 3 9 $As [expr $cover-$y1] [expr $cover-$z1] [expr $cover-$y1] [expr $z1-$cover]

layer straight 3 9 $As [expr $y1-$cover] [expr $cover-$z1] [expr $y1-$cover] [expr $z1-$cover] layer straight 3 4 $As [expr $y1-$cover-(0.360-0.048)/5] [expr $z1-$cover] [expr $cover+(0.360-0.048)/5-$y1] [expr $z1-$cover] layer straight 3 4 $As [expr $y1-$cover-(0.360-0.048)/5] [expr $cover-$z1] [expr $cover+(0.360-0.048)/5-$y1] [expr $cover-$z1] layer straight 4 3 $APs -0.13 -0.20 -0.13 0.20 layer straight 4 3 $APs 0.13 -0.20 0.13 0.20 }

## Define torsional stiffness and attach it to section uniaxialMaterial Elastic 10 $GJ

## attach torsion to flexure and create a new section IDtag ## tag uniTag uniCode secTag

section Aggregator 1 10 T -section 2 # Define column elements # tag vecxz

geomTransf Linear 1 # Plastic region

# tag ndI ndJ nsecs secID transfTag element nonlinearBeamColumn 1 1 2 $np 1 1 element nonlinearBeamColumn 2 2 3 $np 1 1 element nonlinearBeamColumn 3 3 4 $np 1 1 element nonlinearBeamColumn 4 4 5 $np 1 1 element nonlinearBeamColumn 5 5 6 $np 1 1 # Define beam element

# tag $iNode $jNode $secTag

# Record nodal displacements

recorder Node -file S3-1.out -time -node 6 -dof 1 disp

recorder plot S3-1.out nodeDispbpc 10 10 300 600 -columns 2 1

recorder Element -file date/steel-p.out -time -ele 1 section 1 fiber [expr $cover-$y1] [expr $cover-$z1] stressStrain

recorder Element -file date/steel-l.out -time -ele 1 section 1 fiber [expr -$cover+$y1] [expr $cover-$z1] stressStrain

recorder Element -file date/confined-concrete-p.out -time -ele 1

section 1 fiber [expr 2*$cover-$y1] [expr 2*$cover-$z1] stressStrain recorder Element -file date/confined-concrete-l.out -time -ele 1

section 1 fiber [expr -2*$cover+$y1] [expr 2*$cover-$z1] stressStrain recorder Element -file date/cover-concrete-p.out -time -ele 1 section 1 fiber [expr 0.5*$cover-$y1] [expr 0.5*$cover-$z1] stressStrain

recorder Element -file date/cover-concrete-l.out -time -ele 1 section 1 fiber [expr -0.5*$cover+$y1] [expr 0.5*$cover-$z1] stressStrain

# -----

########################## Constant gravity load pattern Plain 1 Linear { # FX FY FZ MX MY MZ

load 6 0.0 [expr $P] 0.0 }

system BandGeneral

constraints Transformation numberer RCM

test NormDispIncr 1.0e-12 1000 3 algorithm KrylovNewton

integrator LoadControl 0.1 analysis Static initialize analyze 10

puts \

loadConst -time 0.0

########################cyclic loading

set H 1.0; # Reference lateral load # Set lateral load pattern pattern Plain 2 Linear { load 6 $H 0.0 0.0 }

set Dincr 0.001 set DmaxPush 100

integrator DisplacementControl 6 1 $Dincr

puts \开始Pushover分析\set IDctrlNode 6

set DxPush [expr $Dincr]

set NDxPush [expr -1*$Dincr]

# node dof init Jd min max

integrator DisplacementControl $IDctrlNode 1 $DxPush ; analyze 2; puts \

integrator DisplacementControl $IDctrlNode 1 $NDxPush ; analyze 4; puts \

integrator DisplacementControl $IDctrlNode 1 $DxPush ; analyze 5; puts \

#3Dx #-Dx #3Dx integrator DisplacementControl $IDctrlNode 1 $NDxPush ; analyze 6; puts \

integrator DisplacementControl $IDctrlNode 1 $DxPush ; analyze 8; puts \

integrator DisplacementControl $IDctrlNode 1 $NDxPush ; analyze 10; puts \

integrator DisplacementControl $IDctrlNode 1 $DxPush ; analyze 12; puts \

integrator DisplacementControl $IDctrlNode 1 $NDxPush ; #-Dx #3Dx #-Dx #3Dx #-Dx analyze 14; puts \

integrator DisplacementControl $IDctrlNode 1 $DxPush ; analyze 17; puts \

integrator DisplacementControl $IDctrlNode 1 $NDxPush ; analyze 20; puts \

integrator DisplacementControl $IDctrlNode 1 $DxPush ; analyze 25; puts \

integrator DisplacementControl $IDctrlNode 1 $NDxPush ; analyze 30; puts \

integrator DisplacementControl $IDctrlNode 1 $DxPush ; analyze 35; puts \

integrator DisplacementControl $IDctrlNode 1 $NDxPush ; analyze 40; puts \

integrator DisplacementControl $IDctrlNode 1 $DxPush ; analyze 45; puts \

integrator DisplacementControl $IDctrlNode 1 $NDxPush ; analyze 50; puts \

integrator DisplacementControl $IDctrlNode 1 $DxPush ; analyze 55; puts \

integrator DisplacementControl $IDctrlNode 1 $NDxPush ; analyze 60; puts \

integrator DisplacementControl $IDctrlNode 1 $DxPush ; analyze 65; puts \

integrator DisplacementControl $IDctrlNode 1 $NDxPush ; analyze 70; puts \

integrator DisplacementControl $IDctrlNode 1 $DxPush ; analyze 75; puts \

integrator DisplacementControl $IDctrlNode 1 $NDxPush ; analyze 80; puts \

integrator DisplacementControl $IDctrlNode 1 $DxPush ; analyze 85; puts \

integrator DisplacementControl $IDctrlNode 1 $NDxPush ; analyze 90; puts \

integrator DisplacementControl $IDctrlNode 1 $DxPush ;

#3Dx #-Dx #3Dx #-Dx #3Dx #-Dx #3Dx #-Dx #3Dx #-Dx #3Dx #-Dx #3Dx #-Dx #3Dx #-Dx #3Dx

analyze 95; puts \

integrator DisplacementControl $IDctrlNode 1 $NDxPush ; analyze 100; puts \

integrator DisplacementControl $IDctrlNode 1 $DxPush ; analyze 105; puts \

integrator DisplacementControl $IDctrlNode 1 $NDxPush ; analyze 110; puts \

integrator DisplacementControl $IDctrlNode 1 $DxPush ; #-Dx #3Dx #-Dx #3Dx analyze 115; puts \

integrator DisplacementControl $IDctrlNode 1 $NDxPush ; analyze 120; puts \

integrator DisplacementControl $IDctrlNode 1 $DxPush ; analyze 125; puts \

integrator DisplacementControl $IDctrlNode 1 $NDxPush ; analyze 130; puts \

integrator DisplacementControl $IDctrlNode 1 $DxPush; analyze 135; puts \

integrator DisplacementControl $IDctrlNode 1 $NDxPush ; analyze 140; puts \

integrator DisplacementControl $IDctrlNode 1 $DxPush ; analyze 145; puts \

integrator DisplacementControl $IDctrlNode 1 $NDxPush ; analyze 150; puts \

integrator DisplacementControl $IDctrlNode 1 $DxPush ; analyze 155; puts \

integrator DisplacementControl $IDctrlNode 1 $NDxPush ; analyze 160; puts \

integrator DisplacementControl $IDctrlNode 1 $DxPush ; analyze 165; puts \

integrator DisplacementControl $IDctrlNode 1 $NDxPush ; analyze 170; puts \

integrator DisplacementControl $IDctrlNode 1 $DxPush ; analyze 175; puts \

integrator DisplacementControl $IDctrlNode 1 $NDxPush ; analyze 180; puts \

integrator DisplacementControl $IDctrlNode 1 $DxPush ; analyze 185; puts \

integrator DisplacementControl $IDctrlNode 1 $NDxPush ; analyze 190; puts \

integrator DisplacementControl $IDctrlNode 1 $DxPush ; analyze 195; puts \

integrator DisplacementControl $IDctrlNode 1 $NDxPush ; analyze 200; puts \

#-Dx #3Dx

#-Dx

#-Dx #-Dx #-Dx #-Dx #3Dx #-Dx #3Dx #-Dx #3Dx #-Dx #3Dx #-Dx #3Dx

#-Dx