Generation of Steel Bracing with initial imperfection

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

Moderators: silvia, selimgunay, Moderators

Post Reply
Morteza Dehghani
Posts: 2
Joined: Mon Oct 23, 2006 1:43 pm
Location: Ecole Polytechnique de Montreal

Generation of Steel Bracing with initial imperfection

Post by Morteza Dehghani »

Hi all,
I trying to make a tcl file for parametric generation of steel bracing member with initial imperfection. Initial Imperfection is a Sin function. when I run this file an unknown error will apear. Please check my file.

Here is the file:

# Units: kN, m
# Parameter identifying the number of Segments
# ------------------------------
# Start of model generation
# ------------------------------
# Create ModelBuilder
model BasicBuilder -ndm 2 -ndf 3
set L 6.0 ; # Overall Length of Bracing #
set Im 750; # Required Maximum Initail Imperfection ratio at Midlle of Bracing #
set numSeg 10; # Number of required Segment along Bracing Length #
set u0 [expr $L/$Im]; # Maximum Imperfection at Middle of Bracing 3
set pi [expr 2*asin(1.0)]
# Create nodes
# Set parameters for overall model geometry
set SegLen [expr $L/$numSeg]
set nodeID 1
# Define nodes
for {set i 0} {$i <= $numSeg} {incr i 1} {
set xDim [expr $i * $SegLen]
# tag X Y
node [expr $nodeID+1] [expr $u0*sin($pi*$xDim/$L)] 0
incr nodeID 1
}
# Boundry Condition for Each Ends of Bracing #
# node DX DY RZ
fix 1 1 1 0
fix [expr $numSeg+1] 0 1 0
# Define material #
set fy 240000; #Yield Stress
set E 2.1e8; #Young Modolus
set b 0.03; #Strain Hardeing Ratio
uniaxialMaterial Steel02 1 $fy $E $b 18.5 0.925 0.15
#Define Section #
source Wsection2.tcl
# Define H330-8-15*300 #
set dc 0.33
set tw 0.008
set tf 0.015
set bf1 0.3
set bf2 0.20
Wsection 1 1 $dc $tw $bf1 $tf 2 10 30 2
# Number of integration points
set nP 4
# Geometric transformation
geomTransf Corotational 1
set ElementID 1
# Define elements
for {set i 0} {$i < $numSeg} {incr i 1} {
# set some parameters
set iNode [expr $i + 1]
set jNode [expr $i + 2]
# add the Brace Element
for {set j $iNode} {$j <= [expr $jNode-1]} {incr j 1} {
element nonlinearBeamColumn $ElementID $j [expr $j+1] $nP 1 1
# increment the parameters
incr $ElementID 1
}
}
# End of model generation
# Define Pushing Load
pattern Plain 1 Linear {
load [expr $numSeg +1] 1 0.0 0.0
}
# Start of recorder generation
recorder Node -file NodeDisplacement.out -time -node [expr $numSeg +1] -dof 1 disp
recorder Node -file Reaction.out -time -node 1 -dof 1 Reaction
# Source in some commands to display the model
# comment out one of lines
set displayMode "displayON"
#set displayMode "displayOFF"
if {$displayMode == "displayON"} {
# a window to plot the nodal displacements versus load for node 3
recorder plot NodeDispalcement.out EndNodeDisplacement 10 400 300 300 -columns 2 1
}
# End of recorder generation
# Start of Nonlinear Buckling Analysis
# Define Loding Control #
set DmaxPush [expr -3*0.04*$L; # Maximum Dispalcement at end of Brace for Drift Angle 0.04 Radians #
set DxPush -0.001; # Incremental dispalcement
set Nsteps [expr int($DmaxPush/$DxPush)]

integrator DisplacementControl [expr $numSeg+1] 1 $DxPush
constraints Transformation
numberer RCM
system BandGeneral
test EnergyIncr 1.0e-20 25
algorithm Newton
analysis Static
analyze $Nsteps

----- source for Rotated Wide flamge section ----

# Wsection2.tcl: tcl procedure for creating a wide flange steel fiber section
# written: Remo M. de Souza
# date: 06/99
# modified: 08/99 (according to the new general modelbuilder)
# modified: 7/Oct/05, to include MatlabOut functionality, so
# that you can plot the section fibers in Matlab!

# +-----------------------+ + +
# | | | tf |
# +----------+ +----------+ + |
# | | | |
# y | | | |
# | | | | |
# z--+ ->| |<- tw | dw | d
# | | | |
# | | | |
# | | | |
# +----------+ +----------+ + |
# | | | tf |
# +-----------------------+ + +
# bf



# input parameters
# secID - section ID number
# matID - material ID number
# d = nominal depth
# tw = web thickness
# bf = flange width
# tf = flange thickness
# nfdw = number of fibers along web depth
# nftw = number of fibers along web thickness
# nfbf = number of fibers along flange width
# nftf = number of fibers along flange thickness

proc Wsection2 {secID matID d tw bf tf nfdw nftw nfbf nftf {MatlabOut 0}} {
set dw [expr $d - 2 * $tf]
if {$dw<=0} {
puts "Error: Wsection beam depth is too small"
exit
}
set y1 [expr -$bf/2]
set y2 [expr -$tw/2]
set y3 [expr $tw/2]
set y4 [expr $bf/2]
set z1 [expr -$d/2]
set z2 [expr -$dw/2]
set z3 [expr $dw/2]
set z4 [expr $d/2]
#
section fiberSec $secID {
# nfIJ nfJK yI zI yJ zJ yK zK yL zL
patch quadr $matID $nftf $nfbf $y1 $z2 $y1 $z1 $y4 $z1 $y4 $z2
patch quadr $matID $nfdw $nftw $y2 $z3 $y2 $z2 $y3 $z2 $y3 $z3
patch quadr $matID $nftf $nfbf $y1 $z4 $y1 $z3 $y4 $z3 $y4 $z4
}

if { $MatlabOut == 1 } {
set matfile [open "WsectionfiberS$secID.out" "w"]
puts $matfile "Wsection d=$d, tw=$tw, bf=$bf, tf=$tf"
puts $matfile "patch quadr $matID $nfbf $nftf $y1 $z1 $y1 $z2 $y4 $z2 $y4 $z1
"
puts $matfile "patch quadr $matID $nftw $nfdw $y2 $z2 $y2 $z3 $y3 $z3 $y3 $z2

"
puts $matfile "patch quadr $matID $nfbf $nftf $y1 $z3 $y4 $z3 $y4 $z4 $y1 $z4"
close $matfile
}
}
silvia
Posts: 3909
Joined: Tue Jan 11, 2005 7:44 am
Location: Degenkolb Engineers
Contact:

Post by silvia »

please be more specific.
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
yas
Posts: 49
Joined: Wed Mar 06, 2013 11:51 pm

Re: Generation of Steel Bracing with initial imperfection

Post by yas »

Hello everybody
I've studied some articles about modeling braces in OpenSees considering initial imperfection,but the imperfection size was different.some of them assumed to be L/250, some of them L/1000 or L/500. what's the reason of this difference?
thank's in advance.
etapiah
Posts: 3
Joined: Mon Sep 01, 2008 7:33 pm
Location: Universidad Autónoma Metropolitana

Re: Generation of Steel Bracing with initial imperfection

Post by etapiah »

Sometimes the imperfection is used to reach the correct compression strenght stipulated by Codes. According to Steel Codes, the imperfection shall smaller than L/1000.
Edgar TAPIA
mehrdadmaster
Posts: 3
Joined: Wed Sep 05, 2012 1:43 pm
Location: urmia

Re: Generation of Steel Bracing with initial imperfection

Post by mehrdadmaster »

you can at first make a text,only for imperfection
imperfection can assume as sine function with strain=0.001l
you should use fiber section .
i had a code
if you want it,please contact me
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Re: Generation of Steel Bracing with initial imperfection

Post by fmk »

there is a proc:
proc HSSbrace {eleTag iNode jNode secType matTag numSeg Im transfTag args}

in the Steel2d.tcl file here:
http://opensees.berkeley.edu/WebSVN/lis ... dModels%2F

that you might want to look at.
Post Reply