Nonlinear SDoF with viscous
Moderators: silvia, selimgunay, Moderators
-
- Posts: 1
- Joined: Tue Apr 07, 2009 8:35 am
Nonlinear SDoF with viscous
Hi,
I have a nonlinear SDoF system with a zerolength section at the base. I need to do a nonlinear dynamic analyses . I know that Relaigth damping doesn’t work with zerolength section so I use a viscous material in parallel with steel01 material.
The problem is that when I change viscous material parameters, results doesn’t change. Is there any mistake? Please help me!
My script is reported below.
set mm 1.;
set N 1.;
set sec 1.;
set LunitTXT "mm";
set FunitTXT "N";
set TunitTXT "sec";
set m [expr 1000*$mm];
set cm [expr 10*$mm];
set kN [expr 1000*$N];
set cm2 [expr $cm*$cm];
set mm2 [expr $mm*$mm];
set Mpa [expr $N/$mm2];
set PI 3.14
set g [expr 9.81*$m/($sec*$sec)];
set Ubig 1.e10;
set Usmall [expr 1/$Ubig];
set dataDir 1
set Mass [expr 15800*$kN/$g]
set GMfile "1.acc"
set DtAnalysis [expr 0.01*$sec]
set dt 0.01
set GMfatt [expr $g]
set xDamp 0.0
# SET UP
wipe;
model BasicBuilder -ndm 3 -ndf 6;
, ndm=#dimension, ndf=#dofs
file mkdir $dataDir/;
set GMdir "../GMfiles";
# define GEOMETRY
set LCol [expr 1*$m];
# define section geometry
set HCol [expr 30.*$cm];
set BCol [expr 30.*$cm];
# calculated parameters
set F [expr $Mass*$g];
# calculated geometry parameters
set ACol [expr $BCol*$HCol];
set IzCol [expr 1./12.*$BCol*pow($HCol,3)];
# nodal coordinates:
node 1 0 0 0;
node 12 0 0 0;
node 2 0 $LCol 0;
# Single point constraints -- Boundary Conditions
fix 1 1 1 1 1 1 1
equalDOF 1 12 1 2 3 4 5
# we need to set up parameters that are particular to the model.
set IDctrlNode 2;
set IDctrlDOF 1;
set iSupportNode "1";
# nodal masses:
mass 2 $Mass 1e-9 0 0 0 0;
# Define ELEMENTS & SECTIONS -------------------------------------------------------------
# Material parameters
set Rck 30*$Mpa;
set fc [expr -0.83*0.85*$Rck/1.5];
set fcm [expr 0.83*$Rck+8];
set Ec [expr 22000*pow($fcm/10,0.3)];
set EI [expr $Ec*$IzCol]
puts EI=$EI
# Materiali non lineari
set Steeltag 5
set Viscotag 6
set My [expr 1*220*$kN*$m]
set E0 [expr (3*$EI)/($LCol)]
set b 0.003
set C [expr 0.05*2*pow($E0*$Mass,0.5)]
uniaxialMaterial Steel01 $Steeltag $My $E0 $b
uniaxialMaterial Viscous $Viscotag $C 1
set Paralleltag 8
uniaxialMaterial Parallel $Paralleltag $Viscotag $Steeltag
# Definisci sezione
set Sectiontag 9
section Uniaxial $Sectiontag $Paralleltag Mz
set ColTransfTag 1;
set ColTransfType Linear ;
geomTransf $ColTransfType $ColTransfTag -1 0 0;
# element connectivity:
set zerolengthsectiontag 7
element zeroLengthSection $zerolengthsectiontag 1 12 $Sectiontag
set Itrave [expr 1000*$IzCol]
element elasticBeamColumn 1 12 2 $ACol $Ec 1 1 $Itrave 1 $ColTransfTag;
# Define RECORDERS -------------------------------------------------------------
recorder EnvelopeNode -file $dataDir/DFreeEnv.out -node 2 2 -dof 1 disp;
recorder Node -file $dataDir/DFree.out -time -node 2 -dof 1 2 3 disp;
recorder Node -file $dataDir/RSection.out -time -node 12 -dof 1 2 3 reaction;
recorder Node -file $dataDir/RBase.out -time -node 1 -dof 1 2 3 reaction;
recorder Element -file $dataDir/SectionOut.out -time -ele $zerolengthsectiontag force;
# define GRAVITY
pattern Plain 1 Linear {
load 2 0 1 0 0 0 0
}
set Tol 1.0e-8;
constraints Plain;
numberer Plain;
system BandGeneral;
test NormDispIncr $Tol 6 ;
algorithm Newton;
set NstepGravity 10;
set DGravity [expr 1./$NstepGravity];
integrator LoadControl $DGravity;
analysis Static;
analyze $NstepGravity;
# maintain constant gravity loads and reset time to zero
loadConst -time 0.0
puts "Model Built"
set lambda [eigen frequency 1]
set omega [expr pow($lambda,0.5)]
set T1 [expr 2*$PI/$omega
puts T1=$T1
# Uniform Earthquake ground motion (uniform acceleration input at all support nodes)
set GMdirection 1;
set GMfact 1;
set TmaxAnalysis [expr 70*$sec];
constraints Transformation ;
numberer Plain
system SparseGeneral -piv
set Tol 1.e-12;
set maxNumIter 30;
set printFlag 0
set TestType EnergyIncr;
test $TestType $Tol $maxNumIter $printFlag;
set algorithmType ModifiedNewton
algorithm $algorithmType;
set NewmarkGamma 0.5;
set NewmarkBeta 0.25;
integrator Newmark $NewmarkGamma $NewmarkBeta
# define DAMPING
set lambda [eigen 1];
set omega [expr pow($lambda,0.5)];
set alphaM 0.;
set betaKcurr 0.;
set betaKcomm [expr 2.*$xDamp/($omega)];
set betaKinit 0.;
rayleigh $alphaM $betaKcurr $betaKinit $betaKcomm;
# perform Dynamic Ground-Motion Analysis
# Uniform EXCITATION: acceleration input
set IDloadTag 400;
set AccelSeries "Series -dt $dt -filePath $GMfile -factor $GMfatt";
pattern UniformExcitation $IDloadTag $GMdirection -accel $AccelSeries ;
set Nsteps [expr int($TmaxAnalysis/$DtAnalysis)];
set ok [analyze $Nsteps $DtAnalysis];
if {$ok != 0} { ;
set ok 0;
set controlTime [getTime];
while {$controlTime < $TmaxAnalysis && $ok == 0} {
set ok [analyze 1 $DtAnalysis]
set controlTime [getTime]
set ok [analyze 1 $DtAnalysis]
if {$ok != 0} {
puts "Trying Newton with Initial Tangent .."
test NormDispIncr $Tol 1000 0
algorithm Newton -initial
set ok [analyze 1 $DtAnalysis]
test $TestType $Tol $maxNumIter 0
algorithm $algorithmType
}
if {$ok != 0} {
puts "Trying Broyden .."
algorithm Broyden 8
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmType
}
if {$ok != 0} {
puts "Trying NewtonWithLineSearch .."
algorithm NewtonLineSearch .8
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmType
}
}
}; # end if ok !0
puts "Ground Motion Done. End Time: [getTime]"
I have a nonlinear SDoF system with a zerolength section at the base. I need to do a nonlinear dynamic analyses . I know that Relaigth damping doesn’t work with zerolength section so I use a viscous material in parallel with steel01 material.
The problem is that when I change viscous material parameters, results doesn’t change. Is there any mistake? Please help me!
My script is reported below.
set mm 1.;
set N 1.;
set sec 1.;
set LunitTXT "mm";
set FunitTXT "N";
set TunitTXT "sec";
set m [expr 1000*$mm];
set cm [expr 10*$mm];
set kN [expr 1000*$N];
set cm2 [expr $cm*$cm];
set mm2 [expr $mm*$mm];
set Mpa [expr $N/$mm2];
set PI 3.14
set g [expr 9.81*$m/($sec*$sec)];
set Ubig 1.e10;
set Usmall [expr 1/$Ubig];
set dataDir 1
set Mass [expr 15800*$kN/$g]
set GMfile "1.acc"
set DtAnalysis [expr 0.01*$sec]
set dt 0.01
set GMfatt [expr $g]
set xDamp 0.0
# SET UP
wipe;
model BasicBuilder -ndm 3 -ndf 6;
, ndm=#dimension, ndf=#dofs
file mkdir $dataDir/;
set GMdir "../GMfiles";
# define GEOMETRY
set LCol [expr 1*$m];
# define section geometry
set HCol [expr 30.*$cm];
set BCol [expr 30.*$cm];
# calculated parameters
set F [expr $Mass*$g];
# calculated geometry parameters
set ACol [expr $BCol*$HCol];
set IzCol [expr 1./12.*$BCol*pow($HCol,3)];
# nodal coordinates:
node 1 0 0 0;
node 12 0 0 0;
node 2 0 $LCol 0;
# Single point constraints -- Boundary Conditions
fix 1 1 1 1 1 1 1
equalDOF 1 12 1 2 3 4 5
# we need to set up parameters that are particular to the model.
set IDctrlNode 2;
set IDctrlDOF 1;
set iSupportNode "1";
# nodal masses:
mass 2 $Mass 1e-9 0 0 0 0;
# Define ELEMENTS & SECTIONS -------------------------------------------------------------
# Material parameters
set Rck 30*$Mpa;
set fc [expr -0.83*0.85*$Rck/1.5];
set fcm [expr 0.83*$Rck+8];
set Ec [expr 22000*pow($fcm/10,0.3)];
set EI [expr $Ec*$IzCol]
puts EI=$EI
# Materiali non lineari
set Steeltag 5
set Viscotag 6
set My [expr 1*220*$kN*$m]
set E0 [expr (3*$EI)/($LCol)]
set b 0.003
set C [expr 0.05*2*pow($E0*$Mass,0.5)]
uniaxialMaterial Steel01 $Steeltag $My $E0 $b
uniaxialMaterial Viscous $Viscotag $C 1
set Paralleltag 8
uniaxialMaterial Parallel $Paralleltag $Viscotag $Steeltag
# Definisci sezione
set Sectiontag 9
section Uniaxial $Sectiontag $Paralleltag Mz
set ColTransfTag 1;
set ColTransfType Linear ;
geomTransf $ColTransfType $ColTransfTag -1 0 0;
# element connectivity:
set zerolengthsectiontag 7
element zeroLengthSection $zerolengthsectiontag 1 12 $Sectiontag
set Itrave [expr 1000*$IzCol]
element elasticBeamColumn 1 12 2 $ACol $Ec 1 1 $Itrave 1 $ColTransfTag;
# Define RECORDERS -------------------------------------------------------------
recorder EnvelopeNode -file $dataDir/DFreeEnv.out -node 2 2 -dof 1 disp;
recorder Node -file $dataDir/DFree.out -time -node 2 -dof 1 2 3 disp;
recorder Node -file $dataDir/RSection.out -time -node 12 -dof 1 2 3 reaction;
recorder Node -file $dataDir/RBase.out -time -node 1 -dof 1 2 3 reaction;
recorder Element -file $dataDir/SectionOut.out -time -ele $zerolengthsectiontag force;
# define GRAVITY
pattern Plain 1 Linear {
load 2 0 1 0 0 0 0
}
set Tol 1.0e-8;
constraints Plain;
numberer Plain;
system BandGeneral;
test NormDispIncr $Tol 6 ;
algorithm Newton;
set NstepGravity 10;
set DGravity [expr 1./$NstepGravity];
integrator LoadControl $DGravity;
analysis Static;
analyze $NstepGravity;
# maintain constant gravity loads and reset time to zero
loadConst -time 0.0
puts "Model Built"
set lambda [eigen frequency 1]
set omega [expr pow($lambda,0.5)]
set T1 [expr 2*$PI/$omega
puts T1=$T1
# Uniform Earthquake ground motion (uniform acceleration input at all support nodes)
set GMdirection 1;
set GMfact 1;
set TmaxAnalysis [expr 70*$sec];
constraints Transformation ;
numberer Plain
system SparseGeneral -piv
set Tol 1.e-12;
set maxNumIter 30;
set printFlag 0
set TestType EnergyIncr;
test $TestType $Tol $maxNumIter $printFlag;
set algorithmType ModifiedNewton
algorithm $algorithmType;
set NewmarkGamma 0.5;
set NewmarkBeta 0.25;
integrator Newmark $NewmarkGamma $NewmarkBeta
# define DAMPING
set lambda [eigen 1];
set omega [expr pow($lambda,0.5)];
set alphaM 0.;
set betaKcurr 0.;
set betaKcomm [expr 2.*$xDamp/($omega)];
set betaKinit 0.;
rayleigh $alphaM $betaKcurr $betaKinit $betaKcomm;
# perform Dynamic Ground-Motion Analysis
# Uniform EXCITATION: acceleration input
set IDloadTag 400;
set AccelSeries "Series -dt $dt -filePath $GMfile -factor $GMfatt";
pattern UniformExcitation $IDloadTag $GMdirection -accel $AccelSeries ;
set Nsteps [expr int($TmaxAnalysis/$DtAnalysis)];
set ok [analyze $Nsteps $DtAnalysis];
if {$ok != 0} { ;
set ok 0;
set controlTime [getTime];
while {$controlTime < $TmaxAnalysis && $ok == 0} {
set ok [analyze 1 $DtAnalysis]
set controlTime [getTime]
set ok [analyze 1 $DtAnalysis]
if {$ok != 0} {
puts "Trying Newton with Initial Tangent .."
test NormDispIncr $Tol 1000 0
algorithm Newton -initial
set ok [analyze 1 $DtAnalysis]
test $TestType $Tol $maxNumIter 0
algorithm $algorithmType
}
if {$ok != 0} {
puts "Trying Broyden .."
algorithm Broyden 8
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmType
}
if {$ok != 0} {
puts "Trying NewtonWithLineSearch .."
algorithm NewtonLineSearch .8
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmType
}
}
}; # end if ok !0
puts "Ground Motion Done. End Time: [getTime]"
-
- Posts: 24
- Joined: Mon Mar 14, 2005 11:12 pm
- Location: Department of Civil Engineering, Kunsan National University
fmk wrote: " you cannot put the viscous material in parallel with the other .. the parallel material will ignore the viscous material .. "...
hope this gets noted on the manual for viscous uniaxial material.
a lot of people are getting into the mistake of having this damping material modeled in parallel with the stiffness with the thought that damping is already added and actually it was not.
hope this gets noted on the manual for viscous uniaxial material.
a lot of people are getting into the mistake of having this damping material modeled in parallel with the stiffness with the thought that damping is already added and actually it was not.
the two elements can share the same nodes .. you create a viscous material and add it to a zero length element (rayleigh damping also included if specified) or a Truss (no rayleigh damping effects included) .. you do not put it in a section. i.e. use one of the following:
[code]
element truss $eleTag $iNode $jNode $A $matTag
element zeroLength $eleTag $iNode $jNode -mat $matTag1 $matTag2 ... -dir $dir1 $dir2
[/code]
[code]
element truss $eleTag $iNode $jNode $A $matTag
element zeroLength $eleTag $iNode $jNode -mat $matTag1 $matTag2 ... -dir $dir1 $dir2
[/code]
Re: Nonlinear SDoF with viscous
Hi,
In my model, I have added a 2D rotational spring at the base of the structure, by defining a zero length element.
Should I assign damping to that link separately by viscous material as you described here? In this case should I calculate damping based on the initial stiffness of the spring? I believe I still have to keep the Rayleigh damping definition for the whole system. Right?
Thanks
In my model, I have added a 2D rotational spring at the base of the structure, by defining a zero length element.
Should I assign damping to that link separately by viscous material as you described here? In this case should I calculate damping based on the initial stiffness of the spring? I believe I still have to keep the Rayleigh damping definition for the whole system. Right?
Thanks
Re: Nonlinear SDoF with viscous
If you assign Rayleigh damping to your system, zeroLenght elements will be included if you add -doRayleigh 1 to your zeroLenght elements (look at the command manual: http://opensees.berkeley.edu/wiki/index ... th_Element). The same can be done for the truss elements.
Re: Nonlinear SDoF with viscous
Thanks for your reply..
I have three more questions regarding my analysis:
1- I used a "uniaxialMaterial ElasticMultiLinear" zero-length element to define the rotational spring. First I pulled top of the system to a displacement, which is correspond to a point within the second line defined for the spring (Decreased stiffness compared to the initial value) and released it to vibrate, in order to calculate damping value. Which Rayleigh components are correct to model damping in my case? I tried three different stiffness components separately (betaK, betaKinit, betaKcomm), but values of damping are the same and not equal to the value which I have assigned in the model (2%)!
2- Then I tried to do a nonlinear dynamic analysis, here based on other comments in the website, I used both mass proportional and committed stiffness component.Is it correct?
3-If it is, should I use "region command" while defining mass proportional damping so that the stiffness proportional damping isn't canceled. I have seen usage of this command when we have zero length element, in one of the examples (http://opensees.berkeley.edu/wiki/index ... trated.tcl), But I have not seen any difference in my results using this command!
Thanks
I have three more questions regarding my analysis:
1- I used a "uniaxialMaterial ElasticMultiLinear" zero-length element to define the rotational spring. First I pulled top of the system to a displacement, which is correspond to a point within the second line defined for the spring (Decreased stiffness compared to the initial value) and released it to vibrate, in order to calculate damping value. Which Rayleigh components are correct to model damping in my case? I tried three different stiffness components separately (betaK, betaKinit, betaKcomm), but values of damping are the same and not equal to the value which I have assigned in the model (2%)!
2- Then I tried to do a nonlinear dynamic analysis, here based on other comments in the website, I used both mass proportional and committed stiffness component.Is it correct?
3-If it is, should I use "region command" while defining mass proportional damping so that the stiffness proportional damping isn't canceled. I have seen usage of this command when we have zero length element, in one of the examples (http://opensees.berkeley.edu/wiki/index ... trated.tcl), But I have not seen any difference in my results using this command!
Thanks
Re: Nonlinear SDoF with viscous
1. If your material is Elastic it does not really matter which betaK you specify within your Rayleigh command. The response should stay the same.
2. Yes, that is a way you go except if negative stiffness of your model is possible.
3. "Region" command can be used to define the damping. It is used in cases you want to assign different damping values to different elements or if you do not want to assign damping to some elements of your model.
2. Yes, that is a way you go except if negative stiffness of your model is possible.
3. "Region" command can be used to define the damping. It is used in cases you want to assign different damping values to different elements or if you do not want to assign damping to some elements of your model.
-
- Posts: 8
- Joined: Tue Nov 20, 2012 6:17 am
- Location: NBG Construction Company
Re: Nonlinear SDoF with viscous
Dear "eugenio chioccarelli",
Salam,
In addition to the method Frank suggested you, you can also use "Elastic" materiel to add damping to your SDOF model. I myself used this method to model bearings. Please, care:
Elastic Force = k(x)+c(dx/dt)
uniaxialMaterial Steel01 $Tag1 $Fy $k $Alpha ;
uniaxialMaterial Elastic $Tag2 0.0 $c ; (Here, you have to put a zero value for "k")
uniaxialMaterial Parallel $Tag3 $Tag1 $Tag2 ;
Whenever I need to assign the damping to a single point in my models, I use this approach.
Salam,
In addition to the method Frank suggested you, you can also use "Elastic" materiel to add damping to your SDOF model. I myself used this method to model bearings. Please, care:
Elastic Force = k(x)+c(dx/dt)
uniaxialMaterial Steel01 $Tag1 $Fy $k $Alpha ;
uniaxialMaterial Elastic $Tag2 0.0 $c ; (Here, you have to put a zero value for "k")
uniaxialMaterial Parallel $Tag3 $Tag1 $Tag2 ;
Whenever I need to assign the damping to a single point in my models, I use this approach.