Simulation of a cyclic test on a column
Moderators: silvia, selimgunay, Moderators
Simulation of a cyclic test on a column
Dear all,
sorry for my question. I want to simulate an experimental test on a simple cantilever column, where there is a history of imposed displacement on the top. I have a file with this history.
Which is the best way to simulate it? Should I use a cyclic pushover in displacement control or sp command in load control?
Thanks
sorry for my question. I want to simulate an experimental test on a simple cantilever column, where there is a history of imposed displacement on the top. I have a file with this history.
Which is the best way to simulate it? Should I use a cyclic pushover in displacement control or sp command in load control?
Thanks
Scientists study the world as it is; engineers create the world that never has been.
if you look at the examples manual, what i do for the cyclic loading is create a list of displacement increments and then apply them.
i think the easiest thing for you to do is replace that list with a new list of displacement increments that you can calculate from your displacement history.
i think the easiest thing for you to do is replace that list with a new list of displacement increments that you can calculate from your displacement history.
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
Dear Silvia,
thanks for your suggestions. I attach here your file modified considering my history displacement if someoe is interested.
# --------------------------------------------------------------------------------------------------
# Static Reversed-Cyclic Analysis
#
# execute this file after you have built the model, and after you apply gravity
#
# we need to set up parameters that are particular to the model.
set IDctrlNode 2; # node where displacement is read for displacement control
set IDctrlDOF 1; # degree of freedom of displacement read for displacement contro
# specify the number of cycles at each peak
set filename "DispHist.out"
set dispID [open $filename r]; #Load the vector with the history of displacement
set disp_hist [read $dispID]
close $dispID
set lengthDisp [llength $disp_hist]
set Dincr 0.001;
# create load pattern for lateral pushover load
set Hload $AxialForce; # define the lateral load as a proportion of the weight so that the pseudo time equals the lateral-load coefficient when using linear load pattern
set iPushNode 2; # define nodes where lateral load is applied in static lateral analysis
pattern Plain 200 Linear {; # define load pattern -- generalized
load $IDctrlNode $Hload 0.0 0.0 0.0 0.0 0.0
}
# ----------- set up analysis parameters
source LibAnalysisStaticParameters.tcl; # constraintsHandler,DOFnumberer,system-ofequations,convergenceTest,solutionAlgorithm,integrator
# --------------------------------- perform Static Cyclic Displacements Analysis
set fmt1 "%s Cyclic analysis: CtrlNode %.3i, dof %.1i, Disp=%.4f %s"; # format for screen/file output of DONE/PROBLEM analysis
set zeroD 0
set D0 0.0
foreach Dstep $disp_hist {
set D1 $Dstep
set Dincr [expr $D1 - $D0]
integrator DisplacementControl $IDctrlNode $IDctrlDOF $Dincr
analysis Static
# ----------------------------------------------first analyze command------------------------
set ok [analyze 1]
# ----------------------------------------------if convergence failure-------------------------
if {$ok != 0} {
# if analysis fails, we try some other stuff
# performance is slower inside this loop global maxNumIterStatic; # max no. of iterations performed before "failure to converge" is ret'd
if {$ok != 0} {
puts "Trying Newton with Initial Tangent .."
test NormDispIncr $Tol 2000 0
algorithm Newton -initial
set ok [analyze 1]
test $testTypeStatic $TolStatic $maxNumIterStatic 0
algorithm $algorithmTypeStatic
}
if {$ok != 0} {
puts "Trying Broyden .."
algorithm Broyden 8
set ok [analyze 1 ]
algorithm $algorithmTypeStatic
}
if {$ok != 0} {
puts "Trying NewtonWithLineSearch .."
algorithm NewtonLineSearch 0.8
set ok [analyze 1]
algorithm $algorithmTypeStatic
}
if {$ok != 0} {
set putout [format $fmt1 "PROBLEM" $IDctrlNode $IDctrlDOF [nodeDisp $IDctrlNode $IDctrlDOF] $LunitTXT]
puts $putout
return -1
}; # end if
}; # end if
# -----------------------------------------------------------------------------------------------------
set D0 $D1; # move to next step
}; # end Dstep
# -----------------------------------------------------------------------------------------------------
if {$ok != 0 } {
puts [format $fmt1 "PROBLEM" $IDctrlNode $IDctrlDOF [nodeDisp $IDctrlNode $IDctrlDOF] $LunitTXT]
} else {
puts [format $fmt1 "DONE" $IDctrlNode $IDctrlDOF [nodeDisp $IDctrlNode $IDctrlDOF] $LunitTXT]
}
thanks for your suggestions. I attach here your file modified considering my history displacement if someoe is interested.
# --------------------------------------------------------------------------------------------------
# Static Reversed-Cyclic Analysis
#
# execute this file after you have built the model, and after you apply gravity
#
# we need to set up parameters that are particular to the model.
set IDctrlNode 2; # node where displacement is read for displacement control
set IDctrlDOF 1; # degree of freedom of displacement read for displacement contro
# specify the number of cycles at each peak
set filename "DispHist.out"
set dispID [open $filename r]; #Load the vector with the history of displacement
set disp_hist [read $dispID]
close $dispID
set lengthDisp [llength $disp_hist]
set Dincr 0.001;
# create load pattern for lateral pushover load
set Hload $AxialForce; # define the lateral load as a proportion of the weight so that the pseudo time equals the lateral-load coefficient when using linear load pattern
set iPushNode 2; # define nodes where lateral load is applied in static lateral analysis
pattern Plain 200 Linear {; # define load pattern -- generalized
load $IDctrlNode $Hload 0.0 0.0 0.0 0.0 0.0
}
# ----------- set up analysis parameters
source LibAnalysisStaticParameters.tcl; # constraintsHandler,DOFnumberer,system-ofequations,convergenceTest,solutionAlgorithm,integrator
# --------------------------------- perform Static Cyclic Displacements Analysis
set fmt1 "%s Cyclic analysis: CtrlNode %.3i, dof %.1i, Disp=%.4f %s"; # format for screen/file output of DONE/PROBLEM analysis
set zeroD 0
set D0 0.0
foreach Dstep $disp_hist {
set D1 $Dstep
set Dincr [expr $D1 - $D0]
integrator DisplacementControl $IDctrlNode $IDctrlDOF $Dincr
analysis Static
# ----------------------------------------------first analyze command------------------------
set ok [analyze 1]
# ----------------------------------------------if convergence failure-------------------------
if {$ok != 0} {
# if analysis fails, we try some other stuff
# performance is slower inside this loop global maxNumIterStatic; # max no. of iterations performed before "failure to converge" is ret'd
if {$ok != 0} {
puts "Trying Newton with Initial Tangent .."
test NormDispIncr $Tol 2000 0
algorithm Newton -initial
set ok [analyze 1]
test $testTypeStatic $TolStatic $maxNumIterStatic 0
algorithm $algorithmTypeStatic
}
if {$ok != 0} {
puts "Trying Broyden .."
algorithm Broyden 8
set ok [analyze 1 ]
algorithm $algorithmTypeStatic
}
if {$ok != 0} {
puts "Trying NewtonWithLineSearch .."
algorithm NewtonLineSearch 0.8
set ok [analyze 1]
algorithm $algorithmTypeStatic
}
if {$ok != 0} {
set putout [format $fmt1 "PROBLEM" $IDctrlNode $IDctrlDOF [nodeDisp $IDctrlNode $IDctrlDOF] $LunitTXT]
puts $putout
return -1
}; # end if
}; # end if
# -----------------------------------------------------------------------------------------------------
set D0 $D1; # move to next step
}; # end Dstep
# -----------------------------------------------------------------------------------------------------
if {$ok != 0 } {
puts [format $fmt1 "PROBLEM" $IDctrlNode $IDctrlDOF [nodeDisp $IDctrlNode $IDctrlDOF] $LunitTXT]
} else {
puts [format $fmt1 "DONE" $IDctrlNode $IDctrlDOF [nodeDisp $IDctrlNode $IDctrlDOF] $LunitTXT]
}
Scientists study the world as it is; engineers create the world that never has been.
-
- Posts: 8
- Joined: Sat Dec 18, 2010 8:29 am
Re:
andrett7 wrote:
> Yes Silvia it works...thanks
Dear andrett7,
I am a beginner and it seems that I am in a same condition you had been for last year. I am a PhD student and for my thesis I am trying to use Peer column data base as reference. So, I need to use displacement part of hysteresis model for loading of columns. I would be grateful if you could let me know how I can consider this issue.
> Yes Silvia it works...thanks
Dear andrett7,
I am a beginner and it seems that I am in a same condition you had been for last year. I am a PhD student and for my thesis I am trying to use Peer column data base as reference. So, I need to use displacement part of hysteresis model for loading of columns. I would be grateful if you could let me know how I can consider this issue.
Re: Simulation of a cyclic test on a column
Hi Andrette, glad to see this post and thanks for posting your code. Could you please tell me where can i get the experimental data for this test? Thanks!