Harmonic signal applied on the top of the structure
Moderators: silvia, selimgunay, Moderators
-
- Posts: 4
- Joined: Tue Aug 27, 2013 3:58 am
- Location: Howard University
Harmonic signal applied on the top of the structure
Hi everyone,
I am try to put load as an harmonic signal applied on the top of the structure. At the moment the information available is focus on ground motion.
I am try to put load as an harmonic signal applied on the top of the structure. At the moment the information available is focus on ground motion.
Re: Harmonic signal applied on the top of the structure
Use a plain load pattern with a Sine time series
-
- Posts: 4
- Joined: Tue Aug 27, 2013 3:58 am
- Location: Howard University
Re: Harmonic signal applied on the top of the structure
mhscott wrote:
> Use a plain load pattern with a Sine time series
Dr. Scott,
Thank you very much. Could you please tell me where could I find an example with this type of load ?
> Use a plain load pattern with a Sine time series
Dr. Scott,
Thank you very much. Could you please tell me where could I find an example with this type of load ?
Re: Harmonic signal applied on the top of the structure
I haven't tried this before but I imagine it goes like this: Create a sinusoidal time series with the timeSeries Trig option.
timeSeries Trig $tag $tStart $tEnd $period <-factor $cFactor> <-shift $shift>
Then create a plain load pattern using the timeSeries tag from above.
pattern Plain $patternTag $tsTag {
;
}
timeSeries Trig $tag $tStart $tEnd $period <-factor $cFactor> <-shift $shift>
Then create a plain load pattern using the timeSeries tag from above.
pattern Plain $patternTag $tsTag {
;
}
Re: Harmonic signal applied on the top of the structure
Thanks, fbeckwit!
The time series and load pattern commands are fairly well documented online if further information is required.
The time series and load pattern commands are fairly well documented online if further information is required.
-
- Posts: 4
- Joined: Tue Aug 27, 2013 3:58 am
- Location: Howard University
Re: Harmonic signal applied on the top of the structure
Hi everyone,
I have this and is working for linear analysis, but I am not sure why the nonlinear analysis is not working good. It seems that the system cross the elastic limit but after a couple of cycles come back to the linear behaves.
# column
# English System (ft, s, lb, lb-sec/ft)
wipe;
model basic -ndm 2 -ndf 3;
set data1Dir Data1; # set up name of data directory
file mkdir $data1Dir;
#INPUT
set HCol 144; # Column height [in]
set bcol 12; # Column section Width [in]
set hcol 12; # Column section Height [in]
set H [expr 2*$HCol]; # Height of the structure [in]
set grav 386.22; # [in/sec2]
set fc -3750; # Streght of concrete (Compression) No confinement [lb/in2]
set nuc 0.2; # Poisson concrete
set GammaConcrete 0.08680556; # [lb/in3] (150 lb/ft3)
set ColMatTagFlex 2; # assign a tag number to the column flexural behavior
set ColMatTagAxial 3; # assign a tag number to the column axial behavior
set ColSecTag 1;
# CALCULUS
set PI [expr 2*asin(1.0)];
set Ec 3417000; # Young's modulus of concrete [lb/in2]
set AgCol [expr $bcol*$hcol]; # Area ST Column[in2]
set IzCol [expr $bcol*pow($hcol,3)/12]; # Moment of Inertia [in4]
# COORDINATES
node 1 0.0 0.0;
node 2 0.0 $HCol;
fix 1 1 1 1;
set Qcol [expr $GammaConcrete*$AgCol]; # Column [lb/in]
set QcolT [expr $Qcol]; # Total load Column [lb/in]
set Wcol [expr $QcolT*$HCol]; # Total load Column [lb]
# MASS
set WeightNode [expr $Wcol]
set MassNode [expr (($Wcol)/$grav)]
mass 2 $MassNode 1e-9 0.0;
# COLUMN section
# calculated stiffness parameters
set EICol [expr $Ec*$IzCol]; # EI, for moment-curvature relationship
set EACol [expr $Ec*$AgCol]; # EA, for axial-force-strain relationship
set MyCol 934000; # yield moment [lb-in]
set PhiYCol 0.4354e-3; # yield curvature (1/in)
set EIColCrack [expr $MyCol/$PhiYCol]; # cracked section inertia (or 0.70*Ig*E)
set b 0.01 ; # strain-hardening ratio (ratio between post-yield tangent and initial elastic tangent)
uniaxialMaterial Steel01 $ColMatTagFlex $MyCol $EIColCrack $b; # bilinear behavior for flexure
uniaxialMaterial Elastic $ColMatTagAxial $EACol; # this is not used as a material, this is an axial-force-strain response
section Aggregator $ColSecTag $ColMatTagAxial P $ColMatTagFlex Mz; # combine axial and flexural behavior into one section (no P-M interaction here)
set ColTransfTag 1; # associate a tag to column transformation
geomTransf Linear $ColTransfTag ;
# element connectivity:
set numIntgrPts 5; # number of integration points for force-based element
element nonlinearBeamColumn 1 1 2 $numIntgrPts $ColSecTag $ColTransfTag; # self-explanatory when using variables
# Define RECORDERS -------------------------------------------------------------
recorder Node -file $data1Dir/Node2disp.out -time -node 2 -dof 1 2 3 disp; # displacements of support nodes
recorder Node -file $data1Dir/Node1react.out -time -node 1 -dof 1 2 3 reaction; # support reaction
recorder Element -file $data1Dir/FCol1.out -time -ele 1 globalForce; # element forces -- column
recorder Element -file $data1Dir/DCol.out -time -ele 1 deformation; # element deformations -- column
recorder EnvelopeElement -file $data1Dir/ENVFCol1.out -time -ele 1 globalForce; # element forces -- column
recorder Element -file $data1Dir/ForceColSec1.out -time -ele 1 section 1 force; # Column section forces, axial and moment, node i
recorder Element -file $data1Dir/DefoColSec1.out -time -ele 1 section 1 deformation; # section deformations, axial and curvature, node i
recorder Element -file $data1Dir/ForceColSec$numIntgrPts.out -time -ele 1 section $numIntgrPts force; # section forces, axial and moment, node j
recorder Element -file $data1Dir/DefoColSec$numIntgrPts.out -time -ele 1 section $numIntgrPts deformation; # section deformations, axial and curvature, node j
recorder Node -file $data1Dir/DFree.out -time -node 2 -dof 1 2 3 disp; # displacements of free nodes
recorder Node -file $data1Dir/DBase.out -time -node 1 -dof 1 2 3 disp; # displacements of support nodes
recorder Node -file $data1Dir/RBase.out -time -node 1 -dof 1 2 3 reaction; # support reaction
recorder Drift -file $data1Dir/Drift.out -time -iNode 1 -jNode 2 -dof 1 -perpDirn 2 ; # lateral drift
recorder Element -file $data1Dir/FCol.out -time -ele 2 globalForce; # element forces -- column
recorder Element -file $data1Dir/ForceColSec1.out -time -ele 1 section 1 force; # Column section forces, axial and moment, node i
recorder Element -file $data1Dir/DefoColSec1.out -time -ele 1 section 1 deformation; # section deformations, axial and curvature, node i
recorder Element -file $data1Dir/ForceColSec$numIntgrPts.out -time -ele 1 section $numIntgrPts force; # section forces, axial and moment, node j
recorder Element -file $data1Dir/DefoColSec$numIntgrPts.out -time -ele 1 section $numIntgrPts deformation; # section deformations, axial and curvature, node j
# define GRAVITY -------------------------------------------------------------
pattern Plain 1 Linear {
load 2 0. -[expr $Wcol] 0.; # node#, FX FY MZ -- superstructure-weight
}
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
set Tol 1.0e-8; # determine if convergence has been achieved at the end of an iteration step
test NormDispIncr $Tol 6 ; # determine if convergence has been achieved at the end of an iteration step
algorithm Newton; # use Newton's solution algorithm: updates tangent stiffness at every iteration
set NpGrav 10; # aplico la gravedad en 10 pasos
set DGrav [expr 1./$NpGrav]; # incrementos para la aplicación de carga
integrator LoadControl $DGrav; # determine the next time step for an analysis, # apply gravity in 10 steps
analysis Static; # define type of analysis static or transient
analyze $NpGrav; # Indicate the number of steps to carry out the analysis
loadConst -time 0.0; # hold gravity constant and restart time
# define HARMONIC FORCE
set T 0.18; # T= Period of the harmonic force
set Fy 30000. ; # magnitude
set SineSeries "Trig 0. 15. $T";
pattern Plain 2 $SineSeries {
load 2 $Fy 0.0 0.0;
}
# apply Rayleigh DAMPING from $xDamp
# D=$alphaM*M + $betaKcurr*Kcurrent + $betaKcomm*KlastCommit + $beatKinit*$Kinitial
set xDamp 0.05; # 5% damping ratio
set lambda [eigen 1]; # eigenvalue mode 1
set omega [expr pow($lambda,0.5)];
set alphaM 0.; # M-prop. damping; D = alphaM*M
set betaKcurr 0.; # K-proportional damping; +beatKcurr*KCurrent
set betaKcomm [expr 2.*$xDamp/($omega)]; # K-prop. damping parameter; +betaKcomm*KlastCommitt
set betaKinit 0.; # initial-stiffness proportional damping +beatKinit*Kini
# define damping
rayleigh $alphaM $betaKcurr $betaKinit $betaKcomm; # RAYLEIGH damping
# create the analysis
wipeAnalysis; # clear previously-define analysis parameters
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
algorithm Linear # use Linear algorithm for linear analysis
integrator Newmark 0.5 0.25 ; # determine the next time step for an analysis
analysis Transient; # define type of analysis: time-dependent
analyze 15000 0.001; # apply 15 seconds step 0.001 15000*0.001= 15 in analysis
puts "Done!"
I have this and is working for linear analysis, but I am not sure why the nonlinear analysis is not working good. It seems that the system cross the elastic limit but after a couple of cycles come back to the linear behaves.
# column
# English System (ft, s, lb, lb-sec/ft)
wipe;
model basic -ndm 2 -ndf 3;
set data1Dir Data1; # set up name of data directory
file mkdir $data1Dir;
#INPUT
set HCol 144; # Column height [in]
set bcol 12; # Column section Width [in]
set hcol 12; # Column section Height [in]
set H [expr 2*$HCol]; # Height of the structure [in]
set grav 386.22; # [in/sec2]
set fc -3750; # Streght of concrete (Compression) No confinement [lb/in2]
set nuc 0.2; # Poisson concrete
set GammaConcrete 0.08680556; # [lb/in3] (150 lb/ft3)
set ColMatTagFlex 2; # assign a tag number to the column flexural behavior
set ColMatTagAxial 3; # assign a tag number to the column axial behavior
set ColSecTag 1;
# CALCULUS
set PI [expr 2*asin(1.0)];
set Ec 3417000; # Young's modulus of concrete [lb/in2]
set AgCol [expr $bcol*$hcol]; # Area ST Column[in2]
set IzCol [expr $bcol*pow($hcol,3)/12]; # Moment of Inertia [in4]
# COORDINATES
node 1 0.0 0.0;
node 2 0.0 $HCol;
fix 1 1 1 1;
set Qcol [expr $GammaConcrete*$AgCol]; # Column [lb/in]
set QcolT [expr $Qcol]; # Total load Column [lb/in]
set Wcol [expr $QcolT*$HCol]; # Total load Column [lb]
# MASS
set WeightNode [expr $Wcol]
set MassNode [expr (($Wcol)/$grav)]
mass 2 $MassNode 1e-9 0.0;
# COLUMN section
# calculated stiffness parameters
set EICol [expr $Ec*$IzCol]; # EI, for moment-curvature relationship
set EACol [expr $Ec*$AgCol]; # EA, for axial-force-strain relationship
set MyCol 934000; # yield moment [lb-in]
set PhiYCol 0.4354e-3; # yield curvature (1/in)
set EIColCrack [expr $MyCol/$PhiYCol]; # cracked section inertia (or 0.70*Ig*E)
set b 0.01 ; # strain-hardening ratio (ratio between post-yield tangent and initial elastic tangent)
uniaxialMaterial Steel01 $ColMatTagFlex $MyCol $EIColCrack $b; # bilinear behavior for flexure
uniaxialMaterial Elastic $ColMatTagAxial $EACol; # this is not used as a material, this is an axial-force-strain response
section Aggregator $ColSecTag $ColMatTagAxial P $ColMatTagFlex Mz; # combine axial and flexural behavior into one section (no P-M interaction here)
set ColTransfTag 1; # associate a tag to column transformation
geomTransf Linear $ColTransfTag ;
# element connectivity:
set numIntgrPts 5; # number of integration points for force-based element
element nonlinearBeamColumn 1 1 2 $numIntgrPts $ColSecTag $ColTransfTag; # self-explanatory when using variables
# Define RECORDERS -------------------------------------------------------------
recorder Node -file $data1Dir/Node2disp.out -time -node 2 -dof 1 2 3 disp; # displacements of support nodes
recorder Node -file $data1Dir/Node1react.out -time -node 1 -dof 1 2 3 reaction; # support reaction
recorder Element -file $data1Dir/FCol1.out -time -ele 1 globalForce; # element forces -- column
recorder Element -file $data1Dir/DCol.out -time -ele 1 deformation; # element deformations -- column
recorder EnvelopeElement -file $data1Dir/ENVFCol1.out -time -ele 1 globalForce; # element forces -- column
recorder Element -file $data1Dir/ForceColSec1.out -time -ele 1 section 1 force; # Column section forces, axial and moment, node i
recorder Element -file $data1Dir/DefoColSec1.out -time -ele 1 section 1 deformation; # section deformations, axial and curvature, node i
recorder Element -file $data1Dir/ForceColSec$numIntgrPts.out -time -ele 1 section $numIntgrPts force; # section forces, axial and moment, node j
recorder Element -file $data1Dir/DefoColSec$numIntgrPts.out -time -ele 1 section $numIntgrPts deformation; # section deformations, axial and curvature, node j
recorder Node -file $data1Dir/DFree.out -time -node 2 -dof 1 2 3 disp; # displacements of free nodes
recorder Node -file $data1Dir/DBase.out -time -node 1 -dof 1 2 3 disp; # displacements of support nodes
recorder Node -file $data1Dir/RBase.out -time -node 1 -dof 1 2 3 reaction; # support reaction
recorder Drift -file $data1Dir/Drift.out -time -iNode 1 -jNode 2 -dof 1 -perpDirn 2 ; # lateral drift
recorder Element -file $data1Dir/FCol.out -time -ele 2 globalForce; # element forces -- column
recorder Element -file $data1Dir/ForceColSec1.out -time -ele 1 section 1 force; # Column section forces, axial and moment, node i
recorder Element -file $data1Dir/DefoColSec1.out -time -ele 1 section 1 deformation; # section deformations, axial and curvature, node i
recorder Element -file $data1Dir/ForceColSec$numIntgrPts.out -time -ele 1 section $numIntgrPts force; # section forces, axial and moment, node j
recorder Element -file $data1Dir/DefoColSec$numIntgrPts.out -time -ele 1 section $numIntgrPts deformation; # section deformations, axial and curvature, node j
# define GRAVITY -------------------------------------------------------------
pattern Plain 1 Linear {
load 2 0. -[expr $Wcol] 0.; # node#, FX FY MZ -- superstructure-weight
}
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
set Tol 1.0e-8; # determine if convergence has been achieved at the end of an iteration step
test NormDispIncr $Tol 6 ; # determine if convergence has been achieved at the end of an iteration step
algorithm Newton; # use Newton's solution algorithm: updates tangent stiffness at every iteration
set NpGrav 10; # aplico la gravedad en 10 pasos
set DGrav [expr 1./$NpGrav]; # incrementos para la aplicación de carga
integrator LoadControl $DGrav; # determine the next time step for an analysis, # apply gravity in 10 steps
analysis Static; # define type of analysis static or transient
analyze $NpGrav; # Indicate the number of steps to carry out the analysis
loadConst -time 0.0; # hold gravity constant and restart time
# define HARMONIC FORCE
set T 0.18; # T= Period of the harmonic force
set Fy 30000. ; # magnitude
set SineSeries "Trig 0. 15. $T";
pattern Plain 2 $SineSeries {
load 2 $Fy 0.0 0.0;
}
# apply Rayleigh DAMPING from $xDamp
# D=$alphaM*M + $betaKcurr*Kcurrent + $betaKcomm*KlastCommit + $beatKinit*$Kinitial
set xDamp 0.05; # 5% damping ratio
set lambda [eigen 1]; # eigenvalue mode 1
set omega [expr pow($lambda,0.5)];
set alphaM 0.; # M-prop. damping; D = alphaM*M
set betaKcurr 0.; # K-proportional damping; +beatKcurr*KCurrent
set betaKcomm [expr 2.*$xDamp/($omega)]; # K-prop. damping parameter; +betaKcomm*KlastCommitt
set betaKinit 0.; # initial-stiffness proportional damping +beatKinit*Kini
# define damping
rayleigh $alphaM $betaKcurr $betaKinit $betaKcomm; # RAYLEIGH damping
# create the analysis
wipeAnalysis; # clear previously-define analysis parameters
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
algorithm Linear # use Linear algorithm for linear analysis
integrator Newmark 0.5 0.25 ; # determine the next time step for an analysis
analysis Transient; # define type of analysis: time-dependent
analyze 15000 0.001; # apply 15 seconds step 0.001 15000*0.001= 15 in analysis
puts "Done!"