Dear fmk and Vesna,
I am modeling a simple cantilever beam with a rotational spring in the fixed end. I am using displacement control. The analysis stoped at a very early stage (load factor 0.6, all the load-displacement curves are still linear) if I set the control point to be degree 1 of node 5. But if I set the control point to be degree 6 of node 5 the model works well (the load can come to 6.2, nolinear load-displacement curves can be achieved).
My question is: Why the control point is so sensitive for problems with spring? How to find a proper control point for a more complexed structure?
This is really important to me as I am also modeling a more complexed frame with several rotational springs, and I couldn't find a good control point to make it converge.
Below is the source code:
# SET UP ----------------------------------------------------------------------------
wipe; # clear opensees model
source Wsection.tcl
model basic -ndm 3 -ndf 6; # 2 dimensions, 3 dof per node
set dir Cantilever-disp-spring-post
file mkdir $dir; # create data directory
# define GEOMETRY -------------------------------------------------------------
# nodal coordinates:
node 1 0 0 0;
node 2 0 250 0
node 3 0 500 0
node 4 0 750 0
node 5 0 1000 0
node 6 0 0 0
# Single point constraints -- Boundary Conditions
fix 1 1 1 1 1 1 1;
# Define ELEMENTS & SECTIONS -------------------------------------------------------------
set SecTagFiber 1; # assign a tag number to the section without torsion
set SecTagTorsion 70; # assign a tag number to torsion degree
set SecTag 3; # assign a tag number to the section with torsion
# define material
set IDzerolength 2; # assign a tag number to material of the zerolength element
set IDsteel 1; # assign a tag number to material of the other section
set Fy 65.27;
set Es 29007.0;
set Bs 0.000001; # strain-hardening ratio
set R0 15;
set cR1 0.925; # control the transition from elastic to plastic branches
set cR2 0.15; # control the transition from elastic to plastic branches
set G 11156.5;
set J 7.027
set GJ [expr $G*$J]
uniaxialMaterial Steel02 $IDsteel $Fy $Es $Bs $R0 $cR1 $cR2; # build steel02 material
uniaxialMaterial Steel02 $IDzerolength 1600000000000.0 1256600000.0 2588000000.0
set d 220; # depth
set bf 162.4; # flange width
set tf 1.2; # flange thickness
set tw 2.4; # web thickness
set nfdw 16; # number of fibers along dw
set nftw 2; # number of fibers along tw
set nfbf 16; # number of fibers along bf
set nftf 2; # number of fibers along tf
Wsection $SecTagFiber $IDsteel $d $bf $tf $tw $nfdw $nftw $nfbf $nftf
# assign torsional Stiffness for 3D Model
uniaxialMaterial Elastic $SecTagTorsion $GJ
section Aggregator $SecTag $SecTagTorsion T -section $SecTagFiber
# define geometric transformation: performs a corotational geometric transformation of beam stiffness and resisting force from the basic system to the global-coordinate system
set numIntgrPts 3; # number of integration points for dis-based element
set TransfTag 1; # associate a tag to the transformation
geomTransf Corotational $TransfTag 0 0 1; # corotational transformation
puts "Done!"
# Define ELEMENTS -------------------------------------------------------------
element dispBeamColumn 1 6 2 $numIntgrPts $SecTag $TransfTag;
element dispBeamColumn 2 2 3 $numIntgrPts $SecTag $TransfTag;
element dispBeamColumn 3 3 4 $numIntgrPts $SecTag $TransfTag;
element dispBeamColumn 4 4 5 $numIntgrPts $SecTag $TransfTag;
element zeroLength 5 1 6 -mat $IDzerolength -dir 6
# All but rotational degree of freedom are equal
equalDOF 1 6 1 2 3 4 5
# Define RECORDERS -------------------------------------------------------------
recorder Node -file $dir/node1.out -time -node 1 -dof 1 2 3 4 5 6 disp;
recorder Node -file $dir/node5.out -time -node 5 -dof 1 2 3 4 5 6 disp;
recorder Node -file $dir/node6.out -time -node 6 -dof 1 2 3 4 5 6 disp;
# define horizontal load -------------------------------------------------------------
pattern Plain 1 Linear {
load 5 1000.0 0.0 0.0 0.0 0.0 0.0
}
constraints Plain; # how it handles boundary conditions
numberer Plain; # renumber dof's to minimize band-width (optimization), if you want to
system BandGeneral; # how to store and solve the system of equations in the analysis
test NormDispIncr 1.0e-8 100 2; # determine if convergence has been achieved at the end of an iteration step
algorithm Newton; # use Newton's solution algorithm
integrator DisplacementControl 5 1 0.1; # it comes to an early stop
integrator DisplacementControl 6 6 -0.000001; # it works well
analysis Static # define type of analysis static or transient
analyze 100; # perform analysis
puts "Done!"
Question of cantilever beam with spring in the fix end
Moderators: silvia, selimgunay, Moderators
Re: Question of cantilever beam with spring in the fix end
Each problem has its solution. You should not try to solve the convergence problem you have by change of a control point and degree of freedom. Instead you have to define the analysis objects in a way you make your analysis converge.
I looked at your file and noticed one thing: you used equalDOF command to define constraints of a node that should be fixed. In such situations always use fix command to define constraints (e.g., fix 6 1 1 1 1 1 0).
Check out this example: http://opensees.berkeley.edu/wiki/index ... r_Analysis. It is not a model with springs but it offers a scheme for doing the analysis in a loop that for the case of a stable model solves the convergence problems. Make sure to do your analysis in small steps.
I looked at your file and noticed one thing: you used equalDOF command to define constraints of a node that should be fixed. In such situations always use fix command to define constraints (e.g., fix 6 1 1 1 1 1 0).
Check out this example: http://opensees.berkeley.edu/wiki/index ... r_Analysis. It is not a model with springs but it offers a scheme for doing the analysis in a loop that for the case of a stable model solves the convergence problems. Make sure to do your analysis in small steps.