Sei sulla pagina 1di 10

MATRICE DI RIGIDEZZA DI UN TELAIO

1
3

KN := 1000 N

Matrice dell'elemento nel riferimento locale


E A
0
l

12 E J
0

3
l

6 E J
0

2
l
MRig( A , J , l , E) :=
E A
0
l

0 12 E J
3

6 E J
0

2
l

Modulo di un vettore

E A
l

6 E J
l

4 E J

l
E A

6 E J
l

2 E J
l

L( v) :=

0
12 E J

6 E J

l
2

6 E J

l
0

12 E J

v v

2
l

2 E J

6 E J
2
l

4 E J
6 E J

Dati:
Coordinate nodi

XY :=

Incidenze

0 0 7

0 5 5

IJ :=

Sezioni

1 2 1

2 3 3

bh :=

.3 .3 .2

.3 .6 .2

Modulo elastico del materiale

4 mm

E := 3 10

KN
2

Costruzione della matrice


Matrici delle aste
Asta 1
ia := 1
Nodi di estremit

(
(

)
)

ia
n1 := IJ
1
ia
n2 := IJ
2

n1 = 1
n2 = 2

Coordinate
n1
X1 := XY

X1 =

n2
X2 := XY

X2 =

Lunghezza dell'asta
l := L( X2 X1) l = 5
Sezione: Area e Momento di inerzia

(
(

)
)

ia
b := bh
1
ia
h := bh
2
A := b h

b = 0.3
h = 0.3
A = 0.09

J :=

b h

12

J = 6.75 10

Matrice di rigidezza
K := MRig( A , J , l , E)

E = 3 10

5.4 105

0
K=

5
5.4 10
0

5.4 10

1944

4860

1944

4860

4860 1.62 10

8100

4860
4860

5.4 10

1944

4860

1944

4860

8100

4860 1.62 10

Coseni direttori

ca :=

(X21 X11)
l

sa :=

(X22 X12)
l

Matrice di proiezione

ca sa 0
T1 := sa ca 0

0 0 1
i := 1 .. 3

j := 1 .. 3

0 1 0
T1 = 1 0 0

0 0 1
Z

i, j

Ta := augment( T1 , Z)
Tb := augment( Z , T1)
T := stack( Ta , Tb)

:= 0

0
1

0
T=
0
0

1 0 0 0 0
0 0 0 0 0

0 1 0 0 0
0 0 0 1 0
0 0 1 0 0

0 0 0 0 1

Matrice nel riferimento globale


T

K1 := T K T
0
4860
1944

5
5.4 10
0
0

4
4860
1.62 10
0

K1 =
1944
4860
0

5
0
0 5.4 10

0
8100
4860

4860

5.4 10

4860

8100

1944

4860

5.4 10

4860

1.62 10

1944

Asta 2
ia := 2

(
(

)
)

ia
n1 := IJ
1
ia
n2 := IJ
2
n1
X1 := XY

n1 = 2
n2 = 3
X1 =

n2
X2 := XY

X2 =

l := L( X2 X1)l = 7

(
(

)
)

ia
b := bh
1 b = 0.3
ia
h := bh
h = 0.6
2
A := b h

A = 0.18

J :=

b h

J = 5.4 10

12

K := MRig( A , J , l , E)

7.71 105

0
K=
7.71 105

ca :=

(X21 X11)
l

7.71 10

5667.64

19836.73

19836.73 92571.43

5667.64 19836.73

19836.73 46285.71

0
0

5667.64 19836.73

19836.73 46285.71

19836.73 92571.43

sa :=

(X22 X12)
l

1 0 0
T1 = 0 1 0

0 0 1
Z

i, j

:= 0

5667.64

7.71 10

ca sa 0
T1 := sa ca 0

0 0 1
ij := 1 .. 3

19836.73

Ta := augment( T1 , Z)

1
0

0
T=
0
0

Tb := augment( Z , T1)
T := stack( Ta , Tb)

0 0 0 0 0
1 0 0 0 0

0 1 0 0 0
0 0 1 0 0
0 0 0 1 0

0 0 0 0 1

K2 := T K T

7.71 105

0
K2 =
7.71 105

7.71 10

5667.64

19836.73

19836.73 92571.43

)
)

19836.73 46285.71

19836.73 92571.43

7.71 10

n1 = 1
n2 = 3
X1 =

n2
X2 := XY

X2 =

l := L( X2 X1)

l = 8.602

(
(

)
)

A := b h

b = 0.2
h = 0.2
A = 0.04

J :=

b h

12

K := MRig( A , J , l , E)

n1
X1 := XY

ia
b := bh
1
ia
h := bh
2

5667.64 19836.73

ia := 3

(
(

19836.73 46285.71

0
0

5667.64 19836.73

Asta 3
ia
n1 := IJ
1
ia
n2 := IJ
2

J = 1.333 10

5667.64

19836.73

1.395 105

0
K=
1.395 105

ca :=

1.395 10

75.404

324.324

75.404

324.324 1859.962

324.324 929.981

1.395 10

75.404 324.324

324.324 929.981

(X21 X11)

sa :=

ca sa 0
T1 := sa ca 0

0 0 1
i := 1 .. 3

0
75.404

324.324
324.324

324.324 1859.962

(X22 X12)
l

0.814 0.581 0
T1 = 0.581 0.814 0

0
1
0

j := 1 .. 3

i, j

:= 0

Ta := augment( T1 , Z)

0
0
0.814 0.581 0 0
0.581 0.814 0 0
0
0

0
0
1
0
0
0

T=
0
0
0 0.814 0.581 0
0

0
0 0.581 0.814 0

0
0
0
0
1
0

Tb := augment( Z , T1)
T := stack( Ta , Tb)

K3 := T K T

92395.22
65942.73

188.51
K3 =
92395.22
65942.73

188.51

65942.73

188.51 92395.22 65942.73 188.51

47177.35

263.91

263.91

1859.96

65942.73 188.51

65942.73 47177.35 263.91


188.51
92395.22

47177.35 263.91 65942.73


263.91

929.98

188.51

65942.73 188.51

47177.35 263.91
263.91

929.98

263.91

1859.96

ASSEMBLAGGIO DELLA MATRICE DEL TELAIO


i := 1 .. 9

j := 1 .. 9

KG

i, j

:= 0

Matrice di collocamento: i1= posizione del nodo n=numero dei nodi


C0( i1 , n) :=

for i 1 .. 3

for j 1 .. 3 n
C

i, j

for i 1 .. n
for k 1 .. 3
C

k , 3 ( i 1) + k

if i = i1
1

C
Asta 1
ia := 1

ia
n1 := IJ
1

ia
n2 := IJ
2

1
0

0
C1 =
0
0

C1 := stack( C0( n1 , 3) , C0( n2 , 3) )

0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0

0 1 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 1 0 0 0 0

0 0 0 0 1 0 0 0

Matrice collocata
T

K := C1 K1 C1
0
1944
5
0
5.4 10

0
4860
0
1944

K=
5
0 5.4 10
4860
0

0
0
0
0
0
0
KG := KG + K

4860 1944
0

4860 0 0 0

0
5.4 10

16200 4860

4860

1944

5.4 10

8100

4860

0
0

0 0 0

8100 0 0 0
4860 0 0 0
5

0 0 0

0 0 0

0 0 0

0 0 0

16200 0 0 0

Asta 2
ia := 2

ia
n1 := IJ
1

ia
n2 := IJ
2

0
0

0
C1 =
0
0

C1 := stack( C0( n1 , 3) , C0( n2 , 3) )

0 0 1 0 0 0 0 0
0 0 0 1 0 0 0 0

0 0 0 0 1 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0

0 0 0 0 0 0 0 1

K := C1 K2 C1

0
0
0

0
K = 0
0

0
0
0

0 0

0 0

0 0

771428.57

0 0 771428.57

0 0

5667.64

19836.73

5667.64

0 0

19836.73 92571.43

19836.73

771428.57

0 0 771428.57

19836.73
46285.71

19836.73
92571.43
0

0 0

5667.64 19836.73

5667.64

0 0

19836.73 46285.71

19836.73

KG := KG + K

Asta 3
ia := 3

ia
n1 := IJ
1

ia
n2 := IJ
2

C1 := stack( C0( n1 , 3) , C0( n2 , 3) )

1
0

0
C1 =
0
0

0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0

0 1 0 0 0 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0

0 0 0 0 0 0 0 1

K := C1 K3 C1

92395.22
65942.726
188.51

K=
0

92395.22
65942.726
188.51

65942.726

188.51 0 0 0 92395.22 65942.726 188.51

47177.351

263.914 0 0 0 65942.726 47177.351


1859.962 0 0 0

263.914

188.51

263.914

0 0 0

0 0 0

0 0 0

65942.726

188.51

0 0 0

92395.22

65942.726

47177.351 263.914 0 0 0 65942.726

47177.351

929.981 0 0 0

263.914

263.914

188.51

263.914
929.981

188.51
263.914
1859.962

KG := KG + K

Matrice del telaio


94339.2
65942.7
5048.5

1944
KG =
0
4860

92395.2
65942.7
188.5

65942.7 5048.5

1944

4860

92395.2 65942.7

188.5

65942.7 47177.4

263.9

587177.4

263.9

540000

263.9

18060

4860

8100

188.5

263.9

930

4860

773372.6

4860

771428.6

540000

545667.6 19836.7

5667.6

19836.

8100

4860

19836.7 108771.4

19836.7 46285.

65942.7

188.5

771428.6

47177.4 263.9
930

263.9

5667.6 19836.7

19836.7

46285.7

Eliminazione delle colonne dei gdl vincolati


v sort( v)
nv length( v)
nc cols( M )
i1
iv 1
while v = i iv nv
iv

ii+1
iv iv + 1
i
MR M

k
MR augment MR , M

if k v

iv min( iv + 1 , nv) otherwise


MR

65942.7

52845

188.5

iv

188.5
20100

20100.6 94431.

KG = 2.071 10

Vincoli

for k i + 1 .. nc

65942.7

Senza vincoli la matrice singolare

Reduce( M , v) :=

863823.8

La cerniera nel nodo 1 elimina i gdl 1 e 2; il carrello nel nodo 3 elimina il gdl ( 3 1) 3 + 2 = 8
Vettore dei vincoli

1
v := 2

Elimina le colonne
KV := Reduce( KG , v)
Elimina le righe

KV := Reduce KV , v
T

KV := KV

Matrice vincolata
0
8100
188.5
930
18060 4860
4860 773372.6
0
4860
771428.6
0

0
0
545667.6 19836.7
0
19836.7

KV =
8100
4860
19836.7 108771.4
0
46285.7
188.5 771428.6

0
0
863823.8 188.5

0
19836.7 46285.7
188.5
94431.4
930
La matrice vincolata non singolare

KV = 5.468 10

Calcolo degli spostamenti


Vettore delle forze (fx nel nodo 2)

Soluzione del sistema


X := KV

3.193 10 4

1.205 10 3

6.848 10 7
X=

3.862 10 5

3
1.076 10

5
1.978 10

0
100

0
F :=
0
0

30