lumped mass -spring

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

Moderators: silvia, selimgunay, Moderators

Post Reply
khansoltani
Posts: 4
Joined: Mon Nov 12, 2012 2:10 pm
Location: University of Mohaghegh Ardabili

lumped mass -spring

Post by khansoltani »

Hi

How could I model a 3-story structure with lumped mass at the floors level. I want to consider the strength of each story by spring and assign it 3 degrees of freedom (2 translations and 1 rotation).

Thanks in advance
giovannimilan
Posts: 71
Joined: Wed Apr 05, 2017 12:49 am
Location: ARUP, amsterdam

Re: lumped mass -spring

Post by giovannimilan »

to keep it simple at the beginning, you could try with 3 zero length elements placed in series. Each zero length element would be a non-linear spring in which the behavior is described in the 3 directions (2 displ and 1 rot).

It is a very rough schema of the structure, usually presented in dynamics books (e.g. Chopra)

Something like:

node 1 0. 0.
node 2 0. 0.
node 3 0. 0.
node 4 0. 0.

element zeroLength 1 1 2 -mat 1 -dir 1 2 3 -doRayleigh 1; # simulating the 1st floor
element zeroLength 2 2 3 -mat 1 -dir 1 2 3 -doRayleigh 1; # simulating the 2nd floor
element zeroLength 3 3 4 -mat 1 -dir 1 2 3 -doRayleigh 1; # simulating the 3rd floor

fix 1 1 1 1

mass 1 $mass1stfloor 1e-9 1e-9 (u might wanna neglect the vertical and rotational inertia and consider just the translational)
mass 2 $mass2ndfloor 1e-9 1e-9
mass 3 $mass3rdfloor 1e-9 1e-9
khansoltani
Posts: 4
Joined: Mon Nov 12, 2012 2:10 pm
Location: University of Mohaghegh Ardabili

Re: lumped mass -spring

Post by khansoltani »

giovannimilan wrote:
> to keep it simple at the beginning, you could try with 3 zero length
> elements placed in series. Each zero length element would be a non-linear
> spring in which the behavior is described in the 3 directions (2 displ and
> 1 rot).
>
> It is a very rough schema of the structure, usually presented in dynamics
> books (e.g. Chopra)
>
> Something like:
>
> node 1 0. 0.
> node 2 0. 0.
> node 3 0. 0.
> node 4 0. 0.
>
> element zeroLength 1 1 2 -mat 1 -dir 1 2 3 -doRayleigh 1; # simulating
> the 1st floor
> element zeroLength 2 2 3 -mat 1 -dir 1 2 3 -doRayleigh 1; # simulating
> the 2nd floor
> element zeroLength 3 3 4 -mat 1 -dir 1 2 3 -doRayleigh 1; # simulating
> the 3rd floor
>
> fix 1 1 1 1
>
> mass 1 $mass1stfloor 1e-9 1e-9 (u might wanna neglect the vertical and
> rotational inertia and consider just the translational)
> mass 2 $mass2ndfloor 1e-9 1e-9
> mass 3 $mass3rdfloor 1e-9 1e-9


Thanks for your response.
But it still does not work and I can not calculate the periods
giovannimilan
Posts: 71
Joined: Wed Apr 05, 2017 12:49 am
Location: ARUP, amsterdam

Re: lumped mass -spring

Post by giovannimilan »

what do u mean by "doesnt work" , which kind of error do u get?

The eigen analysis is kind of tricky one, have u stared with a static displ control or smth to see if the constrains work fine?
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Re: lumped mass -spring

Post by fmk »

model Basic -ndm 1
set g 386.4;

set m [expr 100.0/$g];
set k 22.599;
set k 31.54;

node 1 0
node 2 0 -mass $m
node 3 0 -mass $m
node 4 0 -mass $m
node 5 0 -mass $m
node 6 0 -mass $m
fix 1 1

uniaxialMaterial Elastic 1 $k

element zeroLength 1 1 2 -mat 1 -dir 1
element zeroLength 2 2 3 -mat 1 -dir 1
element zeroLength 3 3 4 -mat 1 -dir 1
element zeroLength 4 4 5 -mat 1 -dir 1
element zeroLength 5 5 6 -mat 1 -dir 1

set lambda [eigen 4]
for {set i 0} {$i<4} {incr i 1} {
puts "Period: [expr 2*3.14159/sqrt([lindex $lambda $i])]"
}
khansoltani
Posts: 4
Joined: Mon Nov 12, 2012 2:10 pm
Location: University of Mohaghegh Ardabili

Re: lumped mass -spring

Post by khansoltani »

Thank you very much for your answers.

I want to consider 3 degrees of freedom, 2 translations and 1 rotation. The following is the code that leads to this warning:
WARNING BandGenLinLapackSolver::solve() -LAPACK routine returned 3


wipe all
model BasicBuilder -ndm 3 -ndf 6

set m 383576
set I 1598234
set KR 11774358
set KT 24885333
set ModeNumber 3

node 1 0. 0. 0.
node 2 0. 0. 0. -mass $m $m 0. 0. 0. $I
node 3 0. 0. 0. -mass $m $m 0. 0. 0. $I
node 4 0. 0. 0. -mass $m $m 0. 0. 0. $I
node 5 0. 0. 0. -mass $m $m 0. 0. 0. $I

fix 1 1 1 1 1 1 1

uniaxialMaterial Elastic 1 $KT
uniaxialMaterial Elastic 2 $KR

element zeroLength 1 1 2 -mat 1 1 2 -dir 1 2 6
element zeroLength 2 2 3 -mat 1 1 2 -dir 1 2 6
element zeroLength 3 3 4 -mat 1 1 2 -dir 1 2 6
element zeroLength 4 4 5 -mat 1 1 2 -dir 1 2 6

set a [eigen $ModeNumber];
set pi 3.1415926
set omega {}
set T {}
foreach omega2 $a {
lappend omega [expr sqrt($omega2)]
lappend T [expr (2*$pi)/sqrt($omega2)]
}
puts "periods are $T"
Post Reply