Flat slider bearing on a beam: Unwanted vertical displacemen

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

Moderators: silvia, selimgunay, Moderators

Post Reply
emjac
Posts: 41
Joined: Sun Oct 05, 2014 2:23 pm
Location: École polytechnique de Montréal

Flat slider bearing on a beam: Unwanted vertical displacemen

Post by emjac »

Hello,

I am having a problem with the flat slider bearing element. I am trying to model a mass sliding along the beam of a moment frame:

https://photos.google.com/search/_tra_/ ... QA1vmZVE_G

I have placed the slider element between the mid-node on the beam and the node with mass.
As soon as I apply a vertical force to the mass node, it drops down below the level of the beam and stays swinging there throughout the analysis:

https://photos.google.com/search/_tra_/ ... HuSRCGlh5o

This is NOT a problem with the orientation vector of the slider. I have verified this repeatedly. If I change the orientation of the vector to point the other way vertically the mass drops to infinity.

If I mount sliders with the masses on top of the columns I do not have this problem.

Any ideas?
emjac
Posts: 41
Joined: Sun Oct 05, 2014 2:23 pm
Location: École polytechnique de Montréal

Re: Flat slider bearing on a beam: Unwanted vertical displac

Post by emjac »

Here is a little model to demonstrate what I am talking about. Please download the ground motions used in the flat slider bearing element examples : http://opensees.berkeley.edu/wiki/index ... ng_Element

model BasicBuilder -ndm 2 -ndf 3

set gravity 9.81;
set mass 10.e3;

# Nodes
node 1 -1. 0.; # Left column base node
node 2 1. 0.; # Right column base node
node 3 -1 1.; # Left column top node
node 4 1. 1.; # Right column top node
node 5 0. 1. -mass [expr 0.1*$mass] [expr 0.1*$mass] 0.0; # Mid beam node and slide iNode
node 6 0. 1. -mass $mass $mass 0.0; # Slider jNode

# Boundry conditions, constraints and geometric transformation
fix 1 1 1 1;
fix 2 1 1 1;
equalDOF 5 6 3; # Constrain rotation slider end-node to be the same as mid-beam node
geomTransf Linear 1;

# Frame elements
set Ac [expr 0.9492*pow(25.4/1000,2)];
set Ab [expr 0.91936*pow(25.4/1000,2)];
set Ic [expr 1.5606*pow(25.4/1000,4)];
set Ib [expr 1.8239*pow(25.4/1000,4)];
element elasticBeamColumn 1 1 3 $Ac 200.e9 $Ic 1; # Left column
element elasticBeamColumn 2 2 4 $Ac 200.e9 $Ic 1; # Right column
element elasticBeamColumn 3 3 5 $Ab 200.e9 $Ib 1; # Left-half of beam
element elasticBeamColumn 4 4 5 $Ab 200.e9 $Ib 1; # Right-half of beam

# Friction rule and slider materials
frictionModel Coulomb 1 0.4;
set kv 200.e6;
uniaxialMaterial Elastic 1 $kv;
uniaxialMaterial Elastic 2 0.0; # Rotation of the element is constrained to move with the beam node

#element flatSliderBearing $eleTag $iNode $jNode $frnMdlTag $kInit -P $matTag -Mz $matTag <-orient $x1 $x2 $x3 $y1 $y2 $y3>
element flatSliderBearing 5 5 6 1 200.e3 -P 1 -Mz 2 -orient 0 1 0 -1 0 0;

# Loading the end node of the slider with vertical gravity load
pattern Plain 1 "Linear" {
load 6 0.0 [expr -$mass*$gravity] 0.0;
}

# Static analysis generation
system BandGeneral;
numberer Plain;
constraints Plain;
test NormDispIncr 1.0e-12 10;
integrator LoadControl 0.1;
algorithm Newton;
analysis Static;

analyze 10;
loadConst -time 0.0;

proc DisplayModel2D { {ShapeType nill} {dAmp 5} {xLoc 10} {yLoc 10} {xPixels 1024} {yPixels 768} {nEigen 1} } {

######################################################################################
## DisplayModel2D $ShapeType $dAmp $xLoc $yLoc $xPixels $yPixels $nEigen
######################################################################################
## display Node Numbers, Deformed or Mode Shape in 2D problem
## Silvia Mazzoni & Frank McKenna, 2006
##
## ShapeType : type of shape to display. # options: ModeShape , NodeNumbers , DeformedShape
## dAmp : relative amplification factor for deformations
## xLoc,yLoc : horizontal & vertical location in pixels of graphical window (0,0=upper left-most corner)
## xPixels,yPixels : width & height of graphical window in pixels
## nEigen : if nEigen not=0, show mode shape for nEigen eigenvalue
##
#######################################################################################
global TunitTXT; # load time-unit text
global ScreenResolutionX ScreenResolutionY; # read global values for screen resolution

if { [info exists TunitTXT] != 1} {set TunitTXT ""}; # set blank if it has not been defined previously.

if { [info exists ScreenResolutionX] != 1} {set ScreenResolutionX 1024}; # set default if it has not been defined previously.
if { [info exists ScreenResolutionY] != 1} {set ScreenResolutionY 768}; # set default if it has not been defined previously.

if {$xPixels == 0} {
set xPixels [expr int($ScreenResolutionX/2)];
set yPixels [expr int($ScreenResolutionY/2)]
set xLoc 10
set yLoc 10
}
if {$ShapeType == "nill"} {
puts ""; puts ""; puts "------------------"
puts "View the Model? (N)odes, (D)eformedShape, anyMode(1),(2),(#). Press enter for NO."
gets stdin answer
if {[llength $answer]>0 } {
if {$answer != "N" & $answer != "n"} {
puts "Modify View Scaling Factor=$dAmp? Type factor, or press enter for NO."
gets stdin answerdAmp
if {[llength $answerdAmp]>0 } {
set dAmp $answerdAmp
}
}
if {[string index $answer 0] == "N" || [string index $answer 0] == "n"} {
set ShapeType NodeNumbers
} elseif {[string index $answer 0] == "D" ||[string index $answer 0] == "d" } {
set ShapeType DeformedShape
} else {
set ShapeType ModeShape
set nEigen $answer
}
} else {
return
}
}

if {$ShapeType == "ModeShape" } {
set lambdaN [eigen $nEigen]; # perform eigenvalue analysis for ModeShape
set lambda [lindex $lambdaN [expr $nEigen-1]];
set omega [expr pow($lambda,0.5)]
set PI [expr 2*asin(1.0)]; # define constant
set Tperiod [expr 2*$PI/$omega]; # period (sec.)
set fmt1 "Mode Shape, Mode=%.1i Period=%.3f %s "
set windowTitle [format $fmt1 $nEigen $Tperiod $TunitTXT]
} elseif {$ShapeType == "NodeNumbers" } {
set windowTitle "Node Numbers"
} elseif {$ShapeType == "DeformedShape" } {
set windowTitle "Deformed Shape"
}

set viewPlane XY
recorder display $windowTitle $xLoc $yLoc $xPixels $yPixels -wipe; # display recorder
DisplayPlane $ShapeType $dAmp $viewPlane $nEigen 0
}

proc DisplayPlane {ShapeType dAmp viewPlane {nEigen 0} {quadrant 0}} {
######################################################################################
## DisplayPlane $ShapeType $dAmp $viewPlane $nEigen $quadrant
######################################################################################
## setup display parameters for specified viewPlane and display
## Silvia Mazzoni & Frank McKenna, 2006
##
## ShapeType : type of shape to display. # options: ModeShape , NodeNumbers , DeformedShape
## dAmp : relative amplification factor for deformations
## viewPlane : set local xy axes in global coordinates (XY,YX,XZ,ZX,YZ,ZY)
## nEigen : if nEigen not=0, show mode shape for nEigen eigenvalue
## quadrant: quadrant where to show this figure (0=full figure)
##
######################################################################################

set Xmin [lindex [nodeBounds] 0]; # view bounds in global coords - will add padding on the sides
set Ymin [lindex [nodeBounds] 1];
set Zmin [lindex [nodeBounds] 2];
set Xmax [lindex [nodeBounds] 3];
set Ymax [lindex [nodeBounds] 4];
set Zmax [lindex [nodeBounds] 5];

set Xo 0; # center of local viewing system
set Yo 0;
set Zo 0;

set uLocal [string index $viewPlane 0]; # viewPlane local-x axis in global coordinates
set vLocal [string index $viewPlane 1]; # viewPlane local-y axis in global coordinates


if {$viewPlane =="3D" } {
set uMin $Zmin+$Xmin
set uMax $Zmax+$Xmax
set vMin $Ymin
set vMax $Ymax
set wMin -10000
set wMax 10000
vup 0 1 0; # dirn defining up direction of view plane
} else {
set keyAxisMin "X $Xmin Y $Ymin Z $Zmin"
set keyAxisMax "X $Xmax Y $Ymax Z $Zmax"
set axisU [string index $viewPlane 0];
set axisV [string index $viewPlane 1];
set uMin [string map $keyAxisMin $axisU]
set uMax [string map $keyAxisMax $axisU]
set vMin [string map $keyAxisMin $axisV]
set vMax [string map $keyAxisMax $axisV]
if {$viewPlane =="YZ" || $viewPlane =="ZY" } {
set wMin $Xmin
set wMax $Xmax
} elseif {$viewPlane =="XY" || $viewPlane =="YX" } {
set wMin $Zmin
set wMax $Zmax
} elseif {$viewPlane =="XZ" || $viewPlane =="ZX" } {
set wMin $Ymin
set wMax $Ymax
} else {
return -1
}
}

set epsilon 1e-3; # make windows width or height not zero when the Max and Min values of a coordinate are the same

set uWide [expr $uMax - $uMin+$epsilon];
set vWide [expr $vMax - $vMin+$epsilon];
set uSide [expr 0.25*$uWide];
set vSide [expr 0.25*$vWide];
set uMin [expr $uMin - $uSide];
set uMax [expr $uMax + $uSide];
set vMin [expr $vMin - $vSide];
set vMax [expr $vMax + 2*$vSide]; # pad a little more on top, because of window title
set uWide [expr $uMax - $uMin+$epsilon];
set vWide [expr $vMax - $vMin+$epsilon];
set uMid [expr ($uMin+$uMax)/2];
set vMid [expr ($vMin+$vMax)/2];

# keep the following general, as change the X and Y and Z for each view plane
# next three commmands define viewing system, all values in global coords
vrp $Xo $Yo $Zo; # point on the view plane in global coord, center of local viewing system
if {$vLocal == "X"} {
vup 1 0 0; # dirn defining up direction of view plane
} elseif {$vLocal == "Y"} {
vup 0 1 0; # dirn defining up direction of view plane
} elseif {$vLocal == "Z"} {
vup 0 0 1; # dirn defining up direction of view plane
}
if {$viewPlane =="YZ" } {
vpn 1 0 0; # direction of outward normal to view plane
prp 10000. $uMid $vMid ; # eye location in local coord sys defined by viewing system
plane 10000 -10000; # distance to front and back clipping planes from eye
} elseif {$viewPlane =="ZY" } {
vpn -1 0 0; # direction of outward normal to view plane
prp -10000. $vMid $uMid ; # eye location in local coord sys defined by viewing system
plane 10000 -10000; # distance to front and back clipping planes from eye
} elseif {$viewPlane =="XY" } {
vpn 0 0 1; # direction of outward normal to view plane
prp $uMid $vMid 10000; # eye location in local coord sys defined by viewing system
plane 10000 -10000; # distance to front and back clipping planes from eye
} elseif {$viewPlane =="YX" } {
vpn 0 0 -1; # direction of outward normal to view plane
prp $uMid $vMid -10000; # eye location in local coord sys defined by viewing system
plane 10000 -10000; # distance to front and back clipping planes from eye
} elseif {$viewPlane =="XZ" } {
vpn 0 -1 0; # direction of outward normal to view plane
prp $uMid -10000 $vMid ; # eye location in local coord sys defined by viewing system
plane 10000 -10000; # distance to front and back clipping planes from eye
} elseif {$viewPlane =="ZX" } {
vpn 0 1 0; # direction of outward normal to view plane
prp $uMid 10000 $vMid ; # eye location in local coord sys defined by viewing system
plane 10000 -10000; # distance to front and back clipping planes from eye
} elseif {$viewPlane =="3D" } {
vpn 1 0.25 1.25; # direction of outward normal to view plane
prp -100 $vMid 10000; # eye location in local coord sys defined by viewing system
plane 10000 -10000; # distance to front and back clipping planes from eye
} else {
return -1
}
# next three commands define view, all values in local coord system
if {$viewPlane =="3D" } {
viewWindow [expr $uMin-$uWide/4] [expr $uMax/2] [expr $vMin-0.25*$vWide] [expr $vMax]
} else {
viewWindow $uMin $uMax $vMin $vMax
}
projection 1; # projection mode, 0:prespective, 1: parallel
fill 1; # fill mode; needed only for solid elements

if {$quadrant == 0} {
port -1 1 -1 1 # area of window that will be drawn into (uMin,uMax,vMin,vMax);
} elseif {$quadrant == 1} {
port 0 1 0 1 # area of window that will be drawn into (uMin,uMax,vMin,vMax);
} elseif {$quadrant == 2} {
port -1 0 0 1 # area of window that will be drawn into (uMin,uMax,vMin,vMax);
} elseif {$quadrant == 3} {
port -1 0 -1 0 # area of window that will be drawn into (uMin,uMax,vMin,vMax);
} elseif {$quadrant == 4} {
port 0 1 -1 0 # area of window that will be drawn into (uMin,uMax,vMin,vMax);
}

if {$ShapeType == "ModeShape" } {
display -$nEigen 0 [expr 5.*$dAmp]; # display mode shape for mode $nEigen
} elseif {$ShapeType == "NodeNumbers" } {
display 1 -1 0 ; # display node numbers
} elseif {$ShapeType == "DeformedShape" } {
display 1 2 $dAmp; # display deformed shape the 2 makes the nodes small
}
};

# Set Recorders
DisplayModel2D
recorder Node -file MidBeamNode.out -time -node 5 -dof 1 2 3 disp;
recorder Node -file SliderEndNode.out -time -node 6 -dof 1 2 3 disp;
recorder Element -file SliderElement.out -time -ele 5 localDisplacement;

# Dynamic loads
set dt 0.005;
set scale 1.0;
set npts 9000;
timeSeries Path 2 -filePath SCS052.AT2 -dt $dt -factor [expr $gravity*$scale];
timeSeries Path 3 -filePath SCSUP.AT2 -dt $dt -factor [expr $gravity*$scale];

# Calculate the Rayleigh damping factors for nodes & elements
set pi [expr acos(-1.0)]
set lambda [eigen 1]
set omega1 [expr pow($lambda,0.5)]
set zeta 0.03
set beta [expr 2.0*$zeta/$omega1];
set alphaM 1.0; # mass proportional damping; D = alphaM*M
set betaK 0.0; # stiffness proportional damping; D = betaK*Kcurrent
set betaKinit 0.0; # stiffness proportional damping; D = beatKinit*Kinit
set betaKcomm $beta; # stiffness proportional damping; D = betaKcomm*KlastCommit

# set the Rayleigh damping
rayleigh $alphaM $betaK $betaKinit $betaKcomm

pattern UniformExcitation 2 1 -accel 2;
pattern UniformExcitation 3 2 -accel 3;

# Dynamic analysis generation
system BandGeneral;
numberer Plain;
constraints Plain;
set testType NormDispIncr;
set testTol 1.0e-12;
set testIter 25;
test $testType $testTol $testIter;
integrator Newmark 0.5 0.25;
algorithm Newton;
analysis Transient;

set dursism [expr $npts*$dt];
puts "Starting Time History Analysis";
set startTime [clock clicks -milliseconds]
set ok [analyze [expr int($dursism/$dt)] $dt];
set endTime [clock clicks -milliseconds]
set timeElapsed [expr ($endTime - $startTime)/1000]
if { $ok == 0 } { puts "Analysis Completed in $timeElapsed s" };
emjac
Posts: 41
Joined: Sun Oct 05, 2014 2:23 pm
Location: École polytechnique de Montréal

Re: Flat slider bearing on a beam: Unwanted vertical displac

Post by emjac »

Well who knows why the display is so weird, but it seems that when you graph the displacements of the beam node and the slider node the weird displacement shown in the display is not really there. Not sure what to conclude. I will try using it against my data and see if anything reasonable comes out of it.
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Re: Flat slider bearing on a beam: Unwanted vertical displac

Post by fmk »

one element by not be using the 'displayFactor' when drawing to the screen. A recording of nodal displacements and plotting the differences will be what is actually happening in the model.
emjac
Posts: 41
Joined: Sun Oct 05, 2014 2:23 pm
Location: École polytechnique de Montréal

Re: Flat slider bearing on a beam: Unwanted vertical displac

Post by emjac »

Thanks for the answer. Yes. That is what I did. I recorded the nodal displacements and they do not show the odd behavior. Any idea why the localDisplacements given by the bearing element don't match up with the displacements at its iNode and jNode? I accounted for the different orientation of the two systems and in the global x-direction and the rotational direction the recorders give the same thing, but not in the global y-direction. Trust nodes?
Post Reply