monitoring velocity in MultipleSupport
Moderators: silvia, selimgunay, Moderators
monitoring velocity in MultipleSupport
Performing a 3-D dynamic analysis via the MultipleSupport command (providing displacement history of the corresponding earthquake). I need the velocities in the two directions and tried to monitor them via:
opserr << this->computeCurrentStrain1d(0,diffv) << " " << this->computeCurrentStrain1d(1,diffv) <<"\n";
in the update(void) method inside the corresponding zero length element. Although the analysis seems to work fine and produces the forces and displacements I seek, the velocity is always zero. Why am I getting zero velocity? Thanks.
Murat EROZ
Georgia Institute of Technology
p.s.
The model and the analysis script is as following:
model BasicBuilder -ndm 3 -ndf 6
# Define nodes
node 1 0.0 0.0 0.0
node 2 0.0 0.0 0.0
# Put mass at node 2
mass 2 0.048 0.048 0.048 0.0480 0.048 0.048
# Fix nodes
# Fix nodes
fix 1 1 1 1 1 1 1
fix 2 0 0 0 1 1 1
#Define materials
uniaxialMaterial ENT 3 600
uniaxialMaterial Steel01 1 0.9 900 5.31111111111e-4
uniaxialMaterial Steel01 2 0.9 900 5.31111111111e-4
# Define spring
element zeroLength 1 1 2 -mat 1 2 3 -dir 1 2 3
#Gravity load
pattern Plain 1 Linear {load 2 0.0 0.0 -18.67 0.0 0.0 0.0}
#Analyze
constraints Transformation
numberer RCM
system BandGeneral
test NormDispIncr 1.0e-6 6
algorithm Newton
integrator LoadControl 0.1
analysis Static
analyze 10
loadConst -time 0.0
#END OF GRAVITY LOAD ANALYSIS
set displacement1 "Series -dt 0.005 -filePath d1.txt -factor 1";
set displacement2 "Series -dt 0.005 -filePath d2.txt -factor 1";
pattern MultipleSupport 2 {
groundMotion 2 Plain -disp $displacement1
groundMotion 3 Plain -disp $displacement2
# $nodeTag $dirn $gMotionTag
imposedMotion 2 1 2
imposedMotion 2 2 3
}
# Record nodal displacements (same as strains since truss length is 1.0)
recorder Node -file displ1.xls -node 2 -dof 1 disp
recorder Node -file displ2.xls -node 2 -dof 2 disp
# Record force (same as stress since truss area is 1.0)
recorder Element -file force.xls -ele 1 force
#Analyze
rayleigh 0. 0. 0. 0.05
constraints Transformation
#constraints Plain
numberer RCM
system UmfPack
test NormDispIncr 1.0e-5 10
algorithm Newton
integrator Newmark 0.5 0.25
analysis Transient
analyze 300 0.005
opserr << this->computeCurrentStrain1d(0,diffv) << " " << this->computeCurrentStrain1d(1,diffv) <<"\n";
in the update(void) method inside the corresponding zero length element. Although the analysis seems to work fine and produces the forces and displacements I seek, the velocity is always zero. Why am I getting zero velocity? Thanks.
Murat EROZ
Georgia Institute of Technology
p.s.
The model and the analysis script is as following:
model BasicBuilder -ndm 3 -ndf 6
# Define nodes
node 1 0.0 0.0 0.0
node 2 0.0 0.0 0.0
# Put mass at node 2
mass 2 0.048 0.048 0.048 0.0480 0.048 0.048
# Fix nodes
# Fix nodes
fix 1 1 1 1 1 1 1
fix 2 0 0 0 1 1 1
#Define materials
uniaxialMaterial ENT 3 600
uniaxialMaterial Steel01 1 0.9 900 5.31111111111e-4
uniaxialMaterial Steel01 2 0.9 900 5.31111111111e-4
# Define spring
element zeroLength 1 1 2 -mat 1 2 3 -dir 1 2 3
#Gravity load
pattern Plain 1 Linear {load 2 0.0 0.0 -18.67 0.0 0.0 0.0}
#Analyze
constraints Transformation
numberer RCM
system BandGeneral
test NormDispIncr 1.0e-6 6
algorithm Newton
integrator LoadControl 0.1
analysis Static
analyze 10
loadConst -time 0.0
#END OF GRAVITY LOAD ANALYSIS
set displacement1 "Series -dt 0.005 -filePath d1.txt -factor 1";
set displacement2 "Series -dt 0.005 -filePath d2.txt -factor 1";
pattern MultipleSupport 2 {
groundMotion 2 Plain -disp $displacement1
groundMotion 3 Plain -disp $displacement2
# $nodeTag $dirn $gMotionTag
imposedMotion 2 1 2
imposedMotion 2 2 3
}
# Record nodal displacements (same as strains since truss length is 1.0)
recorder Node -file displ1.xls -node 2 -dof 1 disp
recorder Node -file displ2.xls -node 2 -dof 2 disp
# Record force (same as stress since truss area is 1.0)
recorder Element -file force.xls -ele 1 force
#Analyze
rayleigh 0. 0. 0. 0.05
constraints Transformation
#constraints Plain
numberer RCM
system UmfPack
test NormDispIncr 1.0e-5 10
algorithm Newton
integrator Newmark 0.5 0.25
analysis Transient
analyze 300 0.005
I see... Was trying to simulate the loading in an experimental test conducted in a lab. In the experiment, they excite a superstructure via a "displacement-controlled" actuator, i.e. the deformation path is predefined. However, there is a velocity to this predefined motion path aswell... I want my supported mass to move according to a defined displacement history, but also need the corresponding velocities. What kind of an analysis approach would satisfy this condition ? Thanks.
Certainly. So, this is a 3-D model consisting of a single zerolength element. The element base is fixed. It is loaded in displacement control (defined by a displacement history) with the corresponding velocity history of the displacements. This type of loading is typical in many experimental test setups studided under displacement controlled motions.
model BasicBuilder -ndm 3 -ndf 6
#===================================
# Define nodes
#===================================
node 1 0.0 0.0 0.0
node 2 0.0 0.0 0.0
#=============================================================
# Mass equivalent to 16.5 kips /386 = 0.042 kip-sec2/in
#=============================================================
mass 2 0.042 0.042 0.042 0.0420 0.042 0.042
#===================
# Restraints
#===================
fix 1 1 1 1 1 1 1
fix 2 0 0 0 1 1 1
#==========================================================
# Define material properties for ErozElement
#==========================================================
#Material in X:
uniaxialMaterial Steel01 1 0.9 900 5.31111111111e-4
#Material in Z:
uniaxialMaterial Steel01 2 0.9 900 5.31111111111e-4
#==========================================================
# ElasticNoTension Material in global Y
#==========================================================
# tag E
uniaxialMaterial ENT 3 600
#==========================================================
# Define element
#==========================================================
# tag iNode jNode mat_tag direction
element ErozElement 1 1 2 -mat 1 2 3 -dir 1 2 3
#==============================
# Concantrated gravity loads
#==============================
pattern Plain 1 Linear {load 2 0.0 0.0 -16.5 0.0 0.0 0.0}
#==============================
# Start gravity load analysis
#==============================
constraints Transformation
numberer RCM
system BandGeneral
test NormDispIncr 1.0e-6 6
algorithm Newton
integrator LoadControl 0.1
analysis Static
analyze 10
loadConst -time 0.0
#==============================
# End gravity load analysis
#==============================
#________________________________________________________________
#=================================================================
# Give path to displacement and velocity data of the experiment
#=================================================================
set displacement1 "Series -dt 0.005 -filePath d1.txt -factor 1";
set displacement2 "Series -dt 0.005 -filePath d2.txt -factor 1";
set velocity1 "Series -dt 0.005 -filePath v1.txt -factor 1";
set velocity2 "Series -dt 0.005 -filePath v2.txt -factor 1";
pattern MultipleSupport 2 {
groundMotion 2 Plain -disp $displacement1 -vel $velocity1
groundMotion 3 Plain -disp $displacement2 -vel $velocity2
# $nodeTag $dirn $gMotionTag
imposedMotion 2 1 2
imposedMotion 2 2 3
}
#=====================
#DEFINE RECORDERS
#=====================
recorder Node -file displ1.txt -node 2 -dof 1 disp
recorder Node -file displ1.txt -node 2 -dof 2 disp
recorder Element -file force.txt -ele 1 force
#==============================
# Start test load analysis
#==============================
rayleigh 0. 0. 0. 0.05
constraints Transformation
#constraints Plain
numberer RCM
system UmfPack
test NormDispIncr 1.0e-5 10
algorithm Newton
integrator Newmark 0.5 0.25
analysis Transient
analyze 4020 0.005
model BasicBuilder -ndm 3 -ndf 6
#===================================
# Define nodes
#===================================
node 1 0.0 0.0 0.0
node 2 0.0 0.0 0.0
#=============================================================
# Mass equivalent to 16.5 kips /386 = 0.042 kip-sec2/in
#=============================================================
mass 2 0.042 0.042 0.042 0.0420 0.042 0.042
#===================
# Restraints
#===================
fix 1 1 1 1 1 1 1
fix 2 0 0 0 1 1 1
#==========================================================
# Define material properties for ErozElement
#==========================================================
#Material in X:
uniaxialMaterial Steel01 1 0.9 900 5.31111111111e-4
#Material in Z:
uniaxialMaterial Steel01 2 0.9 900 5.31111111111e-4
#==========================================================
# ElasticNoTension Material in global Y
#==========================================================
# tag E
uniaxialMaterial ENT 3 600
#==========================================================
# Define element
#==========================================================
# tag iNode jNode mat_tag direction
element ErozElement 1 1 2 -mat 1 2 3 -dir 1 2 3
#==============================
# Concantrated gravity loads
#==============================
pattern Plain 1 Linear {load 2 0.0 0.0 -16.5 0.0 0.0 0.0}
#==============================
# Start gravity load analysis
#==============================
constraints Transformation
numberer RCM
system BandGeneral
test NormDispIncr 1.0e-6 6
algorithm Newton
integrator LoadControl 0.1
analysis Static
analyze 10
loadConst -time 0.0
#==============================
# End gravity load analysis
#==============================
#________________________________________________________________
#=================================================================
# Give path to displacement and velocity data of the experiment
#=================================================================
set displacement1 "Series -dt 0.005 -filePath d1.txt -factor 1";
set displacement2 "Series -dt 0.005 -filePath d2.txt -factor 1";
set velocity1 "Series -dt 0.005 -filePath v1.txt -factor 1";
set velocity2 "Series -dt 0.005 -filePath v2.txt -factor 1";
pattern MultipleSupport 2 {
groundMotion 2 Plain -disp $displacement1 -vel $velocity1
groundMotion 3 Plain -disp $displacement2 -vel $velocity2
# $nodeTag $dirn $gMotionTag
imposedMotion 2 1 2
imposedMotion 2 2 3
}
#=====================
#DEFINE RECORDERS
#=====================
recorder Node -file displ1.txt -node 2 -dof 1 disp
recorder Node -file displ1.txt -node 2 -dof 2 disp
recorder Element -file force.txt -ele 1 force
#==============================
# Start test load analysis
#==============================
rayleigh 0. 0. 0. 0.05
constraints Transformation
#constraints Plain
numberer RCM
system UmfPack
test NormDispIncr 1.0e-5 10
algorithm Newton
integrator Newmark 0.5 0.25
analysis Transient
analyze 4020 0.005
Yes, the velocity is obtained from the displacement, say at step "i" as:
v(i)=[ d(i)-d(i-1) ] / dt
So, if you have the displacement history, than you also have the velocity history. However, if you only define a displacement history in your data input file with the MultipleSupport command, the velocities (this->computeCurrentStrain1d(0,diff)) in the update(void) method is always zero. To get these velocities, it is necessary to specify both the disp and vel by:
groundMotion 2 Plain -disp $displacement1 -vel $velocity1
I don`t know if I answered what you were asking.
v(i)=[ d(i)-d(i-1) ] / dt
So, if you have the displacement history, than you also have the velocity history. However, if you only define a displacement history in your data input file with the MultipleSupport command, the velocities (this->computeCurrentStrain1d(0,diff)) in the update(void) method is always zero. To get these velocities, it is necessary to specify both the disp and vel by:
groundMotion 2 Plain -disp $displacement1 -vel $velocity1
I don`t know if I answered what you were asking.