Nonlinear SDoF with viscous

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

Moderators: silvia, selimgunay, Moderators

Post Reply
eugenio chioccarelli
Posts: 1
Joined: Tue Apr 07, 2009 8:35 am

Nonlinear SDoF with viscous

Post by eugenio chioccarelli »

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]"
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Post by fmk »

you cannot put the viscous material in parallel with the other .. the parallel material will ignore the viscous material .. you need to do it at the element level by adding another zero length element with same nodes that uses the viscous material.
JoseLeo
Posts: 24
Joined: Mon Mar 14, 2005 11:12 pm
Location: Department of Civil Engineering, Kunsan National University

Post by JoseLeo »

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.
lightegg
Posts: 15
Joined: Fri Sep 12, 2008 10:18 am
Location: GuangZhou university

Post by lightegg »

Hi!fmk. Do you means use 2 nodes for 2 zerolength element in pallarel?
I have a another question. I use viscous material in a Uniaxial Section with
a truss to simulate viscous brace, which get same result with that without brace. Can you tell how to model a viscous damper? Thanks!
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Post by fmk »

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]
lightegg
Posts: 15
Joined: Fri Sep 12, 2008 10:18 am
Location: GuangZhou university

Post by lightegg »

Thanks for your help! :D
mnazari
Posts: 29
Joined: Wed Aug 15, 2012 11:28 am
Location: ISU

Re: Nonlinear SDoF with viscous

Post by mnazari »

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
vesna
Posts: 3033
Joined: Tue May 23, 2006 11:23 am
Location: UC Berkeley

Re: Nonlinear SDoF with viscous

Post by vesna »

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.
mnazari
Posts: 29
Joined: Wed Aug 15, 2012 11:28 am
Location: ISU

Re: Nonlinear SDoF with viscous

Post by mnazari »

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
vesna
Posts: 3033
Joined: Tue May 23, 2006 11:23 am
Location: UC Berkeley

Re: Nonlinear SDoF with viscous

Post by vesna »

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.
MohsenAmjadEQEng
Posts: 8
Joined: Tue Nov 20, 2012 6:17 am
Location: NBG Construction Company

Re: Nonlinear SDoF with viscous

Post by MohsenAmjadEQEng »

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