Question of cantilever beam with spring in the fix end

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

Moderators: silvia, selimgunay, Moderators

Post Reply
xzha8132
Posts: 6
Joined: Mon Jul 26, 2010 11:29 pm
Location: Sydney University

Question of cantilever beam with spring in the fix end

Post by xzha8132 »

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 :x
integrator DisplacementControl 6 6 -0.000001; # it works well :D
analysis Static # define type of analysis static or transient
analyze 100; # perform analysis

puts "Done!"
Xi Zhang
vesna
Posts: 3033
Joined: Tue May 23, 2006 11:23 am
Location: UC Berkeley

Re: Question of cantilever beam with spring in the fix end

Post by vesna »

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.
Post Reply