Vous êtes sur la page 1sur 32

014calmt.

doc

ANALISI MATRICIALE DELLE STRUTTURE


Procedura di analisi matriciale di un sistema discreto
Nel seguito viene sviluppata la procedura per l'analisi matriciale per un sistema elastico costituito da
elementi elastici concentrati a comportamento lineare; ciascuno degli elementi quindi caratterizzabile dalla
classica relazione
forza = rigidezza * allungamento.
Per la formulazione del problema viene utilizzato l'approccio agli spostamenti: le ipotesi che si assumono
garantiscono cio la congruenza della soluzione all'interno della struttura e la sua compatibilit con i vincoli,
mentre sar necessario imporre adeguatamente le condizioni di equilibrio tra forze interne ed esterne agenti
sul sistema. Il metodo si basa sull'evidente esistenza di un numero finito di elementi elastici, connessi tra
loro in un numero finito di punti e caratterizzati da le leggi costitutive lineari. Il problema quindi
intrinsecamente discreto e l'algoritmo di soluzione non richiede soltanto la conoscenza delle matrici che
descrivono tali leggi.
Il metodo pu essere riassunto nelle seguenti fasi:

Individuazione degli elementi caratteristici del sistema discreto (spostamenti dei punti di collegamento
dei diversi elementi)

Scrittura delle leggi costitutive per ogni singolo elemento (relazioni di equilibrio tra forze interne,
conseguenti alla deformazione dell'elemento, e forze esterne)

Scrittura delle equazioni di equilibrio per ogni punto, ottenuto imponendo leguaglianza tra carichi
esterni applicati e forze interne elastiche, dovute alla deformazione delle porzioni di struttura ad esso
collegate. Le condizioni di equilibrio costituiscono un sistema di equazioni algebriche lineari

Imposizione delle condizioni al contorno

Soluzione del sistema

Recupero di sforzi o azioni interne in ogni elemento


Per meglio comprendere gli elementi della formulazione ricorriamo ad un esempio. Senza ridurre la
generalit degli sviluppi successivi, consideriamo il sistema a rigidezze concentrate rappresentato in figura

Il sistema composto da cinque molle, che con notazione pi generale chiameremo elementi, collegati tra
loro in punti, che bettezziamo con il termine di nodi, ai quali possono essere applicate le forze esterne; lo
spostamento di questi punti dovr soddisfare le condizioni al controno del problema, spostamento nullo per
il nodo 1. Il problema definito in un riferimento monodimensionale, per cui forze e spostamenti saranno
positivi se concordi con l'asse.

Definizione delle incognite


Avendo optato per un approccio agli spostamenti, assumeremo come incognite del problema l'insieme degli
spostamenti nodali organizzati, per compattezza della scrittura, in un vettore. Nella figura nodi ed elementi
sono numerati in maniera continua a partire da 1; tale scelta per dettata da sole considerazioni di ordine
pratico: l'identificativo di un nodo e di un elemento coincide con la sua posizione nelrispettivo elenco; tale
scelta pu essererimossa, come si vedr in seguito.
L'insieme delle incognite del problema dato dall'unione dei gradi di libert di ciascun nodo del modello e
pu essere organizzato in forma di vettore come:
1

014calmt.doc

{ A} = a1

a3 " aN

a2

dove la sequenza di unione data, per semplicit, direttamente dall'ordine di numerazione assunto.
Coerentemente avremo il vettore dei carichi nodali, costituito dall'unione, con lo stesso ordine, delle
componenti di forza associate a ciascun nodo:

{Q} = q1

q3 " qN

q2

Nel nostro esempio N pari a 5 e il vettore di spostamenti diventa:

{ A} = a1

a2

a3

a4

a5

al quale corrisponde un'analoga struttura del vettore dei carichi esterni globale {Q}.

Legame costitutivo
Per un generico elemento di rigidezza concentrata a comportamento nota la legge costitutiva:
f =k
ove f la reazione interna della molla, k la sua rigidezza e il suo allungamento. Introduciamo in questa
relazione gli spostamenti nodali, definendo cio l'allungamento di un elemento come differenza degli
spostamenti dei nodi ai quali collegato. Se indichiamo con aI e aII gli spostamenti del primo e secondo
nodo dell'elemento, avremo:
= aI aII
Le forze, uguali ed opposte, che agiscono in corrispondenza dei nodi sono quindi:
f II = k (aII aI )
f I = k (aII aI )
Queste due espressioni possono essere sintetizzate in forma matriciale
fI
1 1 aI
=k

1 1 aII
f II
o
{ f e } = [k e ]{a e }
Poich i termini della matrice danno origine a forze se moltiplicati per uno spostamento, siamo in presenza
di una matrice di rigideza. Essa quadrata e di dimensione pari alla somma dei gradi di libert di ogni nodo
connesso. Le matrici di rigidezza dei diversi elementi hanno quindi tutte la stessa struttura,
indipendentemente dalle caratteristiche di rigidezza effettive di un elemento, che verranno specificate di
volta in volta dal coefficiente di rigidezza: la legge costitutiva rappresenta una caratteristica intrinseca
dell'elemento che esibisce le stesse modalit di comportamento indipendente dal contesto nel quale viene
inserito.
Adottando la convenzione, del tutto arbitraria, di indicare come primo e secondo nodo di un elemento i nodi
che in figura 1 compaiono a sinistra e a destra rispettivamente, per ciascun elemento possiamo scrivere una
relazione specifica:

f1
1 1 a1
= k1

1 1 a2
f2

f2
1 1 a2
= k2

1 1 a3
f3

f4
1 1 a4
= k4

1 1 a3
f3

f2
1 1 a2
= k3

1 1 a4
f4

f3
1 1 a3
= k5

1 1 a5
f5

Abbiamo associato quindi ad ogni elemento l'elenco dei nodi ai quali collegato. Cos facendo abbiamo
messo in evidenza la corrispondenza tra i gradi di libert dell'elemento, definiti in un elenco locale, e quelli
del sistema nella sua globalit. Vedremo che questo accorgimento agevoler la scrittura delle equazioni di
equilibrio.

014calmt.doc
Impostazione della soluzione
Siamo ora in grado di impostare la soluzione utilizzando uno dei principi noti dalla Scienza delle
Costruzioni. Ipotizziamo di essere in grado di trasformare la relazione {q e}=[ke]{ae}, espressa in termini
locali dell'elemento, nella corrispondente forma {Qe}=[Ke]{A} relativa ai gradi di libert del problema
completo, trasformazione che verr analizzata in dettaglio nel paragrafo successivo.
Vediamo come sia possibile arrivare all'equazione risolutiva seguendo strade alternative.
Equilibrio
Essendo il sistema discreto e avendo utilizzato l'approccio agli spostamenti, che garantisce la congruenza ai
nodi mentre diamo per scontata quella all'interno degli elementi, non ci resta che imporre le condizioni di
equilibrio ai nodi del modello tra carichi applicati e forze elastiche totali; per il nodo i-esimo occorre
scrivere l'equazione ri =qi e queste equazioni che possono essere poste in forma matriciale:
{Q}={R}
Essendo le forze elastiche totali {Q} date dalla somma di quelle relative a ciascun elemento:
{Q} = {Q e }
i =1, E

avremo quindi

i =1, E

{Q} = {Q e } = ([ K e ]{ A}) = [ K e ] { A} = [ K ]{ A}
i =1, E

i =1, E

[ K ]{ A} = {R}

Principio dei Lavori Virtuali


Il principio dei lavori virtuali stabilisce che la configurazione di equilibrio caratterizzata dalla equivalenza
del lavoro virtuale di deformazione con il lavoro virtuale delle forze esterne. Se le {Q} sono lo forze
elastiche conseguenti alla configurazione di spostamenti {A}, a sua volta determinata dall'azione dei carichi
esterni {R}, il PLV si scrive come
L = {A} {Q} {A} { R} = 0
avendo scelto come sistema di spostamenti virtuale la stessa configurazione incognita; per l'arbitrariet del
lavoro virtuale l'equazione risolutiva si presenta in termini di equilibrio tra carichi applicati {R} e forze
elastiche {Q}:
{Q}={R}
T

Questo risultato identico a quello del caso precedente e l'introduzione dell'espressione dei carichi interni
porta allo stesso sistema risolutivo.
Minimo dell'energia Potenziale Totale
Tra tutte le configurazioni la sola equilibrata e congruente quella che minimizza l'energia potenziale totale.
Essa pu essere espressa come:

= 12 { A}

{Q} + { A}T { R}

Riuscendo ad esprimere le forze elastiche {Q} con una funzione lineare della configurazione {A} del tipo
{Q} = [ K ]{ A} , si ottiene

= 12 { A} [ K ]{ A} + { A}
T

{ R}

e la condizione di stazionariet, minimizzazione rispetto ai parametri di configurazione {A}, porta a:

[ K ]{Q} = { R}
= [ K ]{Q} + { R} = 0
a
In tutti i casi il problema viene quindi ricondotto allo stesso sistema di equazioni algebriche lineari,
facilmente risolvibile con tecniche numeriche.

Matrici di estrazione
e

I legami costitutivi sono per espressi in funzione di un sottoinsieme dei gradi di libert del problema, {a }.
Per poter risolvere il problema, indipendentemente dal principio sfruttato, necessario scrivere il legame tra
3

014calmt.doc
questi e il vettore degli spostamenti generale, in modo da esprimere le relazioni costitutive elastiche nelle
sole incognite indipendenti, raccolte nel vettore {A}, e delle corrispondenti forze {Q}; per ogni elementi ci
serve quindi una relazione del tipo:
{Qe } =[ K e ]{A}
ottenuta a partire da quella disponibile
{ q e } =[ k e ]{ a e }
E' possibile ottenere questo risultato definendo il vettore di gradi di libert locali come il risultato
dell'applicazione al vettore globale di spostamenti di un operatore di estrazione applicato secondo le regole
del calcolo matriciale; otteniamo quindi una trasformazione:
{ a e } = He {A}
L'operatore [He] ha il compito di estrarre dal vettore globale i gradi di libert dell'elemento e-esimo. Esso
costituito da una matrice rettangolare, di dimensioni ngdl elemento ngdl generali, quasi interamente
composta da zeri: vi infatti un solo coefficiente unitario per ciascuna riga, posto in corrispondenza della
colonna di indice pari a quella dell'incognita che deve essere estratta e copiata nella stessa riga del vettore
elemento. Nel nostro esempio, facendo riferimento ai legami costitutivi e ai vettori di spostamento locale, le
matrici di estrazione dei diversi elementi risultano essere:
Elem. N.

Vettore
nodale

a1

a2
Matrice di 1 0 0 0 0
estrazione 0 1 0 0 0

a2
a4
a3
a2




a4
a3
a3
a5
0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0
0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1

Poich l'applicazione dell'operatore di estrazione si configura come una trasformazione, i carichi e il legame
costitutivo, e quindi la matrice di rigidezza, devono essere coerentemente modificati per definire i legame
completamente e coerentemente trasformato (vedere il capitolo sulle trasformazioni):

{ qe } = He T {Qe }
T
K e = H e k e H e

Queste operazioni portano ad una matrice, [K ], di ordine pari a quella globale nella quale i soli termini non
e
nulli sono quelli della matrice dell'elemento, [k ], trasferiti nelle posizioni corrispondenti ai gradi di libert
dell'elemento nella numerazione globale.
Nell'esempio si avrebbe:
Elemento N.1
1 1
1 1

k1 0 0

0 0
0 0

0
0
0
0
0

0
0
0
0
0

Elemento N.2
0
0
0

0
0

0 0 0
0 1 1

k2 0 1 1

0 0 0
0 0 0

0
0
0

0
0 0
0
0
0
0

Elemento N.3
0 0
0 1

k3 0 0

0 1
0 0

0 0
0 1
0 0
0 1
0

Elemento N.4
0
0
0

0
0

0
0

k4 0

0
0

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

Elemento N.5
0
0
0

0
0

0
0

k5 0

0
0

0
0
0

1
0 0 1 1
0
0
0
0

0
0
0
0

0
0
0
1

Si pu notare come i coefficienti di ogni matrice siano in posizioni corrispondenti a quelle che i relativi
gradi di libert hanno nel vettore completo.

Scrittura del sistema risolutivo


I legami costitutivi sono ora formalmente espressi da una relazione tra gradi di libert e forze elastiche tutti
espressi nel riferimento generale e nello spazio completo delle soluzione.

014calmt.doc
Viene richiesto il calcolo delle forze interne agenti ai nodi che altro non so non la somma dei vettori
calcolati per ogni elemento; si ottiene quindi:
NE
NE
NE

{Q} = Qe = K e { A} = K e { A} = [ K ] { A}
e =1
e =1
e =1

dall'uguaglianza con il vettore delle forze esterne che agiscono ai nodi dello schema, {R}, si ottiene il
sistema risolutivo:
{ R} = [ K ] { A}
Abbiamo introdotto quindi la definizione della matrice di rigidezza globale come somma delle matrici
elemento esplose:

{ }

NE

NE

e =1

e =1

[ K ] = K e = H e

ke H e

Nel nostro esempio la somma delle tre matrici porta al sistema:

k1
k
1

k1
k1 + k2 + k3
k2
k3

k2
k2 + k4 + k5
k4
k5

k3
k4
k3 + k4

a1 r1
a r
2 2
k5 a3 = r3

a4 r4
k5 a5 r5

Abbiamo quindi ottenuto un sistema algebrico lineare avente come matrice dei coefficienti [K], vettore di
termini noti {r} e per incognite il vettore degli spostamenti nodali {a}; esso ci permette di ottenere una
soluzione che, configurazione di spostamenti congruente internamente e con i vincoli esterni, l'unica a
soddisfare anche l'equilibrio.
L'assunzione dell'approccio agli spostamenti come base della formulazione, unitamente al fatto che i
collegamenti tra i diversi elementi sono di tipo discreto, risolve implicitamente il problema della
congruenza: essendo le componenti di spostamento comuni a tutti gli elementi concorrenti ad un generico
nodo avremo automaticamente continuit della funzione spostamento in corrispondenza di detto nodo.
Per quanto riguarda l'equilibrio in corrispondenza dei nodi abbiamo che a questi sono applicate forze
esterne, cio derivanti dall'applicazione di carichi, e forze interne, derivanti cio dal legame elastico
caratteristico degli elementi che vi concorrono. Perch l'equilibrio sia rispettato ogni componente di forza
esterna di ciascun nodo dovr essere equilibrata dalla somma delle forze interne prodotte dagli elementi in
seguito all'applicazione di spostamenti nodali, ed questo il significato dell'equazione risolutiva.
Arrivati a questo punto dello sviluppo si capisce come la costruzione del sistema risolutivo mediante la
procedura di assemblaggio della matrice di coefficienti non costituisca semplicemente una operazione
numerica ma abbia il significato fisico di scrittura delle equazioni algebriche di equilibrio del sistema
discreto.

Condizioni al contorno
Sino ad ora non stato detto nulla circa le condizioni al controno che, nel caso specifico, prevedono che lo
spostamento del punto 1 siano nullo:
a1 = 0
La maniera pi semplice, anche se non la pi completa, quella di rimuovere i gradi di libert vincolati dal
sistema. Cos facendo si ottiene il sistema:

k1 + k2 + k3

k2

k3

k2
k2 + k4 + k5
k4
k5

k3
k4
k3 + k4

a2 r2
k5 a3 r3
=
a4 r4

k5 a5 r5

014calmt.doc
E' per opportuno individuare procedure generali, pratiche e flessibili per l'imposizione dei vincoli che, per
esempio, tengano conto della possibilit di analizzare condizioni di vincolo differenti, vincoli fissi e
cedimenti imposti. Possibili procedure sono descritte in un successivo paragrafo.

Soluzione del sistema


La soluzione del sistema pu essere condotta con le note tecniche del calcolo numerico: si possono
utilizzare metodi diretti o iterativi. Un metodo diretto porta al risultato in un numero finito di operazioni. Un
metodo iterativo si interrompe quando un criterio di errore viene soddisfatto, se il metodo efficiente sono
necessarie meno operazioni di quante ne sono necessarie con un metodo diretto, ma il loro numero non
prevedibile.
La tecnica pi semplice per la soluzione numerica di un sistema lineare costituita dal Metodo di
Sostituzione di Gauss: una prima fase provvede alla trasformazione del sistema in forma triangolare
superiore, mediante una eliminazione progressiva delle incognite; nella seconda fase, grazie alla
nuova struttura della matrice, il sistema pu essere risolto per sostituzione all'indietro a partire
dall'ultima equazione, che contiene una sola incognita.
L'algoritmo del primo passo, stabilita una incognita e individuato il corrispondente termine
diagonale, determina il progressivo azzeramento dei termini sottodiagonali della matrice, realizzata
attraverso una opportuna combinazione delle righe, di fatto eliminando dalle equazioni successive
l'incognita presa in considerazione. La stessa combinazione viene applicata al termine noto, per
semplificare la programmazione a volte si orla la matrice con i vettori di termini noti e si combinano
le righe della matrice rettangolare cos ottenuta in un'unica fase. Esaurito l'azzeramento di una
colonna sottodiagonale il procedimento viene reiterato alla sottomatrice, il cui ordine diminuito di
uno, orlata dall'equazione dell'incognita eliminata e dalla colonna di zeri. Per un sistema di ordine n
dopo n-1 x n-1 combinazioni, la matrice ridotta in forma triangolare. Per sostituzioni all'indietro si
determinano le soluzioni.
Per il sistema [K]{a}={Q}, il passo in avanti pu essere sintetizzato nelli seguenti espressioni:
(k 1) (k 1)
1)
K ij(k) = K ij(k 1) K ik
K kj / K (k
kk
(k 1) (k 1)
1)
Qi(k) = Qi(k 1) K ik
Qk
/ K (k
kk

dove:
k l'indice dell'incognita in eliminazione (k=1,n-1)
i l'indice dell'equazione dalla quale viene eliminata l'incognita k-esima (i=k+1,n)
j l'indice dell'incognita (colonna) dell'equazione i-esima (j=1,n o j=k,n)
(k) individua il coefficiente della matrice dopo l'eliminazione della k-esima incognita, se nullo
indica i coefficienti originali
Il passo indietro pu essere invece sintetizzato nelle seguenti espressioni:

a n = Q n / K nn
n

a i = Qi a j K ij / K ii , i=n-1,1

j=i +1

Procedura
Ciclo su n-1 righe (indice i)
Normalizzazione della riga i-esima
Ciclo su n-i righe (indice k=i+1,n)
6

014calmt.doc
Combinazione della riga i-esima con la riga k-esima della matrice
Combinazione della riga i-esima con la riga k-esima del termine noto

Esempio di programmazione

20
30

50
60
40
10
70

subroutine gauss_avanti(b,nmax,n,tn,ntn)
dimension b(nmax,1),tn(nmax,1)
do 10 i=1,n-1
f=b(i,i)
do 20 ic=i,n
b(i,ic)=b(i,ic)/f
do 30 it=1,ntn
tn(i,it)=tn(i,it)/f
do 40 ir=i+1,n
f=b(ir,i)
do 50 ic=i,n
b(ir,ic)=b(ir,ic)-b(i,ic)*f
continue
do 60 it=1,ntn
tn(ir,it)=tn(ir,it)-tn(i,it)*f
continue
continue
continue
do 70 it=1,ntn
tn(n,it)=tn(n,it)/b(n,n)
b(n,n)=1
return
end

subroutine gauss_indietro(b,nmax,n,tn,ntn)

30
20
10

dimension b(nmax,1),tn(nmax,1)
do 10 i=n-1,1,-1
do 20 it=1,ntn
do 30 ic=i+1,n
tn(i,it)=tn(i,it)-b(i,ic)*tn(ic,it)
continue
continue
continue
return
end

Nella sua forma classica questo metodo non permette di elaborare vettori di termini noti in tempi
diversi; quando si abbia a che fare con matrici di ordine molto elevato questo pu essere un difetto
non trascurabile. In un paragrafo successivo vengono discusse le tecniche di fattorizzazione (o
decomposizione) che permettono di risolvere questo problema, cos come la possibilit di sfruttare
la simmetria della matrice.
Significato fisico del metodo di Gauss
E' possibile dare una interpretazione fisica della procedura di eliminazione Gaussiana.
Consideriamo un sistema costituito da due molle in serie

k1
k
1
0

k1
k1 + k2
k2

0 a1 r1

k2 a2 = r2
k2 a3 r3

Eliminando l'incognita a2 dalla prima e terza equazione applicando la procedura di eliminazione


gaussiana tra la seconda e la prima riga e poi tra la seconda e la terza otteniamo:
7

014calmt.doc
(k1 k2 ) /(k1 + k2 )
(k k ) /(k + k )
1 2
1
2

(k1 k2 ) /(k1 + k2 ) a1 r1
=
(k1 k2 ) /(k1 + k2 ) a3 r3

La struttura di questo legame dello stesso tipo di quella elementare di una molla e nel coefficiente
di rigidezza riconosciamo la rigidezza di una molla equivalente a due molle in serie.
L'eliminazione di una incognita dalle altre equazioni, infatti tale il significato dell'azzeramento dei
termini sotto- sopra-diagonali, porta alla costituzione di un sistema ridotto equivalente a quello
originale e descritto dai soli gradi di libert rimasti.
Il modello equivalente alla forma ridotta costituito dai due soli nodi 1 e 3 e dall'unico elemento
che li collega, le caratteristiche del quale sono state recuperate eliminando il grado di libert
intermedio.
Formalmente la soluzione di un sistema lineare viene espressa come:

{ A} = [ K ]1 { R}
Nelle applicazioni questa espressione non viene quasi mai utilizzata, in quanto la determinazione della
matrice inversa molto onerosa. Il calcolo dell'inversa viene eseguito solo se necessario conoscere tutti i
suoi termini. E anche in questo caso non si applicano le regole per il calcolo di tali coefficienti, ma si
preferisce sfruttare la definizione di inversa, come matrice che moltiplicata per quella originale da un
risultato unitario:

[ K ][ K ]1 = [ I ]
Allora la matrice inversa non che la soluzione di un sistema che ha per coefficienti la matrice originale e
come termini noti la matrice identit di ordine corrispondente.

Parametri derivati
Possiamo infine supporre che un'analisi preliminare, analogamente a quanto fatto per la matrice di rigidezza,
abbia permesso la determinazione del legame tra gli spostamenti dei nodi di un elemento e dei parametri da
essi derivabili, legame sintetizzabile in forma lineare:
e
e
e
=[S ] {a }
Una volta risolto il problema quindi possibile estrarre dal vettore spostamenti generale quello relativo a
ciascun elemento e risalire a questi parametri:
e
e
e
=[S ][H ]{A}

Problemi discreti in analogia


Con questa metodologia possibile risolvere problemi discreti di natura completamente diversa: rete
elettrica stazionaria, condutture di fluidi, propagazione del calore attraverso una parete. Elemento comune di
questi casi l'equazione che descrive la legge costitutiva dell'elemento che assume la stessa espressione
ricavata per la molla con il coefficiente moltiplicativo che, di volta in volta, cambia significato.

Reti elettriche (regime stazionario)


La relazione di Ohm definisce lelemento di resistenza come quello capace di determinare ai suoi capi una
caduta di tensione V direttamente proporzionale alla corrente che lo attraversa I e al parametro di resistenza
R: V=RI, o che determina un flusso di corrente I proporzionale attraverso la resistenza R alla differenza di
potenziale applicata ai suoi estremi: I=1/R V
V
R

014calmt.doc
Avendo una rete di resitenze la sua soluzione determinata imponendo il soddisfacimento di una delle leggi
di Ohm, lazzeramento della somma delle correnti in corrispondenza di ciscuno dei nodi del circuito o
lazzerarsi della somma delle tensioni su di una maglia del circuito; nel primo caso per ogni nodo devono
essere accumulate le correnti che fluiscono attraverso le resistenze ad esso collegate mentre nel secondo
devono essere individuati tanti percorsi chiusi quanti sono le maglie indipendenti della rete e per ognuna
scritta la somma delle tensioni circolanti.
Esprimiamo la legge costitutiva della resistenza in funzione di parametri "esterni", della tensione presente ai
suoi capi e della corrente in essi scambiata con la rete. Numeriamo i nodi 1 e 2 e corrispondetemente
battezziamo sia le tensioni V1 e V2 che le correnti I1 e I2 le correnti entranti nell'elemento; la figura
schematizza quanto assunto.
R

V2

V1

I2

I1

Le due correnti I1 e I2 sono uguali in modulo ed opposte in segno: lungo una resistenza infatti si ha caduta
di tensione ma la corrente costante; possiamo pertanto scrivere due volte la legge di Ohm:
I1 =(V1 -V2)/R
I2 =(V2 -V1 )/R
In forma matriciale esse diventano

RS I UV = L 1 1ORS V UV
TI W MN1 1 PQTV W
1

1
R

che con ovvie definizioni delle entit matriciali pu essere scritta come
{I}=[k]{V}
Appare evidente l'analogia tra il legame tensione/corrente e quello spostamento/forza che caratterizzano
l'elemento di asta. E in effetti l'analogia completa se si pongono in relazione le correnti con le forze e le
tensioni con gli spostamenti.
Avendo definito le correnti nodali per ciascun elemento come positive se entranti, l'equazione di equilibrio
delle correnti al generico nodo della maglia pu essere scritta semplicemente sommando il contributo di
ciascun elemento ad esso collegato.ed eguagliando il risultato alla corrente introdotta da eventuali generatori
di corrente presenti nei rami del circuito. Questa operazione corrisponde ad imporre l'equilibrio delle forze
nodali.
La presenza di un riferimento per le tensioni, cio di una "messa a terra", viene ottenuta imponendo tensione
nulla in un punto, quindi ricorrendo ad una procedura di imposizione di un vincolo fisso. Analogamente a
quanto visto per le strutture, il sistema che risulta dall'assemblaggio delle matrice resistenza non sarebbe
risolvibile in quanto la corrente dipende da un differenziale di tensione, cos come la forza dipende da una
differenza di spostamento. Possono quindi essere utilizzate le diverse tecniche esaminate, per esempio
eliminando la riga e la colonna corrispondente al nodo di riferimento.
Esempio
.
In questo caso avremo per i 4 elementi di corrente le seguenti relazioni matriciali
.
che assemblate portano al sistema di equazioni
L'introduzione di un generatore di tensione, per l'analogia sopra indicata, pu essere attuata con tecniche
analoghe a quelle che si possono utilizzare per imporre uno cedimento assegnato ad un grado di libert di
spostamento; partizionando il vettore delle tensioni avremo:

Reti elettriche in corrente alternata (regime stazionario)


possibile l'estensione della formulazione vista al caso di corrente alternata semplicemente passando alla
notazione complessa.
9

014calmt.doc
L'impedenza complessa di un generico elemento assume la forma:

( Z1 + iZ 2
dove:
la pulsazione
R la resistenza
C la capacita
L l'autoinduttanza
e

Z1 =

L 1 F 1 IJ OP
) = M + i G C
N R H L K Q

-1

1
R

Z 2 = C

1
L

Con le seguenti definizioni di variabili complesse

V = VR + iVI

Z = Z1 + iZ 2
I = I R + iI I
l'equazione di Ohm viene scritta in forma analoga a quella del caso di corrente stazionaria: V=Z I e la
relazione inversa I= A V pu essere facilmente ricavata introducendo una nuova variabile complessa A i cui
coefficienti di parte reale ed immaginaria risultano rispettivamente definiti come:
2

A1 = Z1 / (Z1 + Z2 )
2

A 2 = - Z2 / (Z1 + Z2 )

coefficienti che possono essere facilmente ricavati se si pone in forma matriciale l'equazione di Ohm
complessa e la si inverte simbolicamente.
Analogamente a quanto fatto per il resistore ideale, la relazione complessa che definisce il generico
elemento di diventa

RS I UV = A LM 1 1OP RS V UV
T I W N 1 1 Q T V W
1

La struttura del procedimento rimane inalterata avendo solo definito come complesse le variabili in gioco;
nell'impossibilit di ricorrere a questa categoria di variabili, per esempio perch non disponibili nel
linguaggio utilizzato, il sistema pu comunque essere riscritto in forma reale, al prezzo di un raddoppio
della sua dimensione e della perdita di simmetria della matrice risolutiva.

Reti idrauliche
In maniera simile alla precedente possiamo sviluppare un modello matriciale per la determinazione della
condizione di regime di un fluido in una rete idraulica nel caso di laminarita del flusso. Nello sviluppo
presentato vengono trascurate le forze di inerzia agenti sul fluido: queste devono pertanto essere piccole,
abbastanza vero nel caso di fluidi poco pesanti come i gas, o poco influenti come nel caso di reti piane
orizzontali.
Il flusso laminare all'interno di una tubazione pu essere descritto dalla equazione di Hagen-Poiseuille che
permette di valutare la perdita di carico come:
p = 32 l v / d2
dove:
p rappresenta la caduta di pressione
la vistosit dinamica del fluido
l la lunghezza del tubo
d il diametro del tubo
v la velocit media del fluido nel tubo
10

014calmt.doc
Anche in questo caso potrebbe essere applicata lequazione di equilibrio delle portate ai nodi, equivalente
allequilibrio delle correnti nella rete elettrica, porvvediamo peroo alla scrittura in forma matriciale delle
relazioni costitutive: se consideriamo il generico tratto di tubazione in figura
Qi

Qj

la quantit di fluido che transita nel tubo viene calcolata come:


Qi =C(Pi -Pj)
Qj =C(Pj -Pi)
dove
Qi e Qj sono le quantit di fluido entranti nel tubo ai nodi i e j
Pi e Pj sono le pressioni ai nodi i e j
C
una funzione dei parametri geometrici l,d e della caratteristica viscosa del fluido ; per sezioni
circolari questa funzione assume l'espressione

128 l
infatti

Q=Av=

4 32 l

si ottiene in questo modo la seguente forma matriciale diventano

che con ovvie assunzioni diventa

RSQ UV = CL 1 1ORS P UV
TQ W MN1 1 PQTP W
i

{Q}=[k]{P}
Anche in questo caso risulta evidente l'analogia tra la relazione pressione/portata con quella strutturale tra
carichi e spostamenti alle estremita di un'asta: in particolare in questo caso in analogia con le equazioni di
equilibrio ai nodi abbiamo la conservazione della massa, cioee che la portata totale in corrispondenza di
ogni nodo sia nulla.
L'imposizione di una portata di ingresso nella rete equivale alla definizione di un termine noto pari alla
portata entrante ed agente sull'equazione del nodo interessato; la portata in uscita dalla rete viene
determinata come reazione vincolare in quanto le pressioni corrispondenti sono nulle; ai nodi interni alla
rete la portata netta entrante, per la conservazione della massa, nulla.
L'imposizione di una pressione in un nodo si tratta con le solite tecniche di vincolo;
Poich la formulazione basata sull'ipotesi di laminarit del flusso opportuno eseguire una verifica
calcolando il numero di Reynolds per i diversi elementi.
Per flussi turbolenti la perdita di pressione pu essere approssimata con la relazione:

Pi Pj = g

4 flv

2gd

Poich questa equazione risulta essere non lineare in v si dovr ricorrere ad una procedura iterativa per la
soluzione del problema.

Conduzione termica in una parete startificata


Esaminiamo il caso di conduzione termica monodimensionale stazionaria attraverso una parete realizzata
con n strati di materiale aventi ciascuno conduttanza termica ki dipendente dallo spessore e dalla
caratteristica di conduttivita del materiali; sia questa parete soggetta a temperature esterne assegnate Ta e Tb
mentre indichiamo con ka e kb i coefficienti di scambio termico sulle superfici esterne. Assumiamo inoltre
l'assenza di generazione interna di calore.
11

014calmt.doc
Nelle ipotesi di flusso di calore monodimensionale la temperatura uniforme nel piano della parete mentre
varia attraverso lo spessore. Indichiamo con Ti la temperatura tra lo strato i-esimo e lo strato (i+1)-esimo.
Lequazione di conduzione del calore dovuta a Fourier ci dice che il flusso di calore proporzionale alla
derivata della temperatura attraverso il prodotto dell'area della parete e il coefficiente diconducibilit
termica:
dt
q=Akt
dx
dove k il coefficiente do condicibilit termica del materiale e A l'area normale al flusso di calore
Se la conducibilit termica costante su di un tratto di spessore L la legge di Fourier pu essere riscritta in
termini di differenza di temperatura agli estremi del tratto
t Ak
q=Akt = t t
L
L
Abbiamo quindi ancora una relazione lineare che analoga a quelle gi esaminate.
Possiamo quindi definire il solito legame matriciale tra le variabili temperature e flusso termico in
corrispondenza delle pareti di uno strato
q1 Akt 1 1 t1
=

L 1 1 t2
q2
La procedura si applica quindi mettendo in analogia le temperature con gli spostamenti e i flussi termici con
le forze. Il problema in oggetto viene quindi risolto assemblando tanti elementi quanti sono gli strati e
utilizzando un numero di temperature incognite pari al numero di strati pi uno. L'imposizione di una
temperatura nota corrisponde all'imposizione di uno spostamento.

Considerazioni
I diversi modelli presentati sono in completa analogia e vengono definiti mediante i seguenti parametri:
Sistemi elastici discreti
k

Reti elettriche
1/R

Reti pneumatiche
(d 4 ) / (128 l )

Flusso termico
Akt
L

Quindi uno stesso programma pu risolvere uno qualsiasi di questi problemi, a patto di definire
convenientemente i coefficienti da utilizzare per costruire le matrici.
In alcuni di questi parametri sono facilmente individualbili elementi riconducibili ad una descrizione
geometrica del problema: definendo i nodi come entit geometriche opportunamente posizionate nello
spazio, la lunghezza dei tubi di una rete idraulica o lo spessore degli strati nel caso del flusso termico
potrebbero essere infatti ricavati dalle loro coordinate. Per la soluzione di problemi semplici, non detto che
sia conveniente agire in questo modo, in quanto si complicerebbe la programmazione e l'utilizzatore sarebbe
costretto a definire le coordinate di tutti i nodi del modello, i codici ad elementi finiti, complessi e sofiticati,
sfruttano pesantemente la componente geometrica del problema per definire il comportamento elastico degli
elementi.

Esempi
Sistemi discreti
Caso a: cedimento imposto di un vincolo
Caso b: uguaglianza di spostamenti
Rete elettrica stazionaria
Caso a: rete con generatore di corrente
Caso b: rete con generatore di tensione
Rete pneumatica
12

014calmt.doc

Flusso di calore in parete stratificata

Estensione della procedura per l'analisi strutturale matriciale


Valutiamo ora gli elementi necessari per estendere l'approccio al caso dell'analisi strutturale matriciale. Tutte
le assunzioni rimangono valide, in particolare: comportamento lineare e approccio agli spostamenti.
Per meglio comprendere gli elementi della formulazione ricorriamo ad un esempio. Senza ridurre la
generalit degli sviluppi successivi, consideriamo una struttura bidimensionale come quella rappresentata in
figura (l'estensione al caso tridimensionale del tutto banale).
3

Nodi

Elementi
1
1

Anche in questo caso la struttura realizzata assemblando un certo numero di elementi che assumeremo
collegati tra di loro, o vincolati a terra, con giunti le cui dimensioni sono trascurabili se confrontate con
quelle degli elementi; con questa ipotesi il collegamento risulta essere modellabile come puntiforme e
possiamo definire il sistema elastico come discreto.
Essendo i collegamenti discreti e ipotizzando di esprimere i legami costitutivi in funzione di forze
concentrate e spostamenti dei corrispondenti punti di applicazione il sistema discreto.
Per semplicit, ma ancora senza ledere la generalit della procedura, possiamo supporre che i collegamenti
tra i diversi elementi della struttura non siano in grado di trasmettere momenti apprezzabili; potremo allora
idealizzare tali collegamenti come cerniere e le forze agenti ai nodi si riducono ai soli risultanti delle forze
ad essi applicati; allo stesso modo le componenti di spostamento si riducono alle sole traslazioni.
Per definire la posizione della struttura nello spazio facciamo ricorso ad un sistema di riferimento,
tipicamente cartesiano ortogonale nel quale individuare gli elementi costitutivi del modello ed in particolare
le coordinate dei nodi. In talune applicazioni potr essere utile ricorrere a pi sistemi di riferimento anche di
tipo diverso. In letteratura non del tutto unificata la nomenclatura con cui ci si riferisce a questa terna; le
dizioni pi ricorrenti sono "generale" e "globale" mentre nei testi anglosassoni si incontrano i termini
general, global e basic. Detto sistema verr utilizzato anche per definire le rette di applicazione delle forze
esterne che agiscono sui nodi.
Le uniche variazioni sono relative alle fasi di definizione delle incognite e dei legami costitutivi.

Definizione delle incognite


Il campo di spostamento in questo caso bidimensionale e ciascun nodo caratterizzato da due incognite di
spostamento, u e v, e da due componenti di forza che agiscono secondo tali direzioni, U e V; nell'ambito
della procedura precedentemente esaminata, per tenere conto di questa situazione, sufficiente considerare
gli spostamenti nodali non come scalari ma come vettori di dimensione opportuna. Nel nostro caso:
Nodo i-esimo:

u
{ai } = i Spostamenti
vi

U
{qi } = i Forze
Vi

Ulteriori generalizzazioni sono banali: nel caso bidimensionale con trasmissione anche di momenti baster
espandere i vettori di spostamento e forza nodali, rispettivamente con il termine di rotazione e di momento:

13

014calmt.doc
u i

{ai } = vi
r
i

U i

Spostamenti nodo i-esimo , {qi } = Vi Forze agenti nodo i-esimo
R
i

L'estensione al caso di telai di aste tridimensionali prevede che questi vettori sono costituiti dalle tre
componenti dello spostamento

ui

{ai } = vi
w
i

U i

Spostamenti nodo i-esimo , {qi } = Vi Forze agenti nodo i-esimo
W
i

Infine l'estensione nel caso tridimensionale completo, con tre gradi di libert di spostamento e tre di
rotazione per nodo, i vettori nodali diventano:

{ai } = [u i

{qi } = [U i

vi

wi

Vi

Wi

ri
Ri

ti ]

si
Si

Spostamenti

Ti ]

nodo

i-esimo

Forze agenti nodo i-esimo.

Nel nostro esempio, impilando tutte le componenti di spostamento nodale, il vettore spostamento globale
costituito da 10 componenti di spostamento e pu essere organizzato nel modo seguente:
a1
a
2
T
{A} = a 3 = [ u1 v1 u2 v2 u3 v3 u4 v4 u5 v5 ]
a
4
a 5
al quale corrisponde un'analoga struttura del vettore dei carichi esterni globale.

Legame costitutivo
e

Definiamo per ogni elemento i vettori spostamento {a }:


Elemento N.1
{a 5 }

1
{a } = {a1 }
{a }
2

Elemento N.2
{a }
{a 2 } = 2
{a 3 }

Elemento N.3
{a 3 }

3
{a } = {a 5 }
{a }
4

3 nodi (1,2,5)
6 termini

2 nodi (2,3)
4 termini

3 nodi (3,4,5)
6 termini

dove i singoli {ai} sono i vettori di spostamenti nodali del nodo i-esimo. Ad essi sono associati i vettori di
e
forze nodali {q } di analoga definizione.
L'ordine con il quale vengono impilati i nodi nei vettori spostamento elemento dipende solo dallo schema
con il quale stata valutata la relazione di rigidezza; non quindi richiesto che siano in ordine di
numerazione crescente, cos come non necessario che siano numerati in maniera consecutiva. A dire il
vero non neppure necessario che essi siano numerati: basterebbero infatti dei nomi a identificarli; tuttavia
l'utilizzo di numeri interi facilita la programmazione e la rende pi efficiente.
Inoltre non necessario che gli elementi siano caratterizzati da uno stesso numero di gradi di libert, ma ci
semplifica notevolmente l'implementazione della procedura in un codice di calcolo automatico.
La generica relazione di equilibrio ancora rappresentabile in forma matriciale con un legame formalmente
identico che semplicemente coinvolge un numero maggiore di gradi di libert:
qe = k e a e

{ }

{ }

14

014calmt.doc
Le matrici di rigidezza rappresentano l'equilibrio tra i carichi indotti ai nodi di un elemento in seguito
e
e
all'applicazione degli spostamenti {a } e le forze esterne {q } applicate all'elemento stesso; il generico
e
coefficiente di indici i,j della matrice [k ] rappresenta la forza che nasce sul grado di libert i-esimo quando
venga applicato uno spostamento di ampiezza unitaria al grado di libert j-esimo avendo completamente
impedito lo spostamento dei rimanenti gradi di libert. In altre parole, si tratta dei coefficienti di influenza
tra il grado di libert j-esimo e le forze agenti secondo il grado di libert i-esimo espressi in termini di
e
rigidezze. La matrice [k ] detta matrice di rigidezza dell'elemento, quadrata e di dimensione pari alla
somma dei gradi di libert di ogno nodo.

Riepilogo della procedura


Riepiloghiamo il procedimento di analisi matriciale ora esaminato.
Fase Descrizione
Azioni
1
individuazione
delle Devono cio essere individuati i punti della struttura dei quali
incognite del problema
assumere gli spostamenti come incognite. Per ciascun punto,
in funzione delle caratteristiche del problema strutturale,
occorre infine definire quali componenti di spostamento e/o
rotazione inserire nel set di incognite.
2
determinazione
delle A partire dalla geometria, i dati del materiale e definizione
caratteristiche degli elementi delle condizioni di carico.
Per ogni elemento occorre
- determinare la matrice di rigidezza,
- costruire il vettore di corrispondenza tra i gradi di libert
della matrice dell'elemento e le loro posizioni nel sistema
completo
- se necessario costruire il vettore di termini noti relativi
all'elemento
- effettuare le operazioni per il cambiamento del sistema di
riferimento, solo nel caso in cui, per semplicit o
convenienza, la matrice di rigidezza sia stata determinata
in un sistema di riferimento particolare non coincidente
con quello generale in cui sono stati definiti i nodi.
3
assemblaggio
Vengono scritte le equazioni di equilibrio ai nodi. I contributi
dei singoli elementi vengono sommati tenendo conto della
posizione nella matrice completa cui dare contributo
4
imposizione delle condizioni Per esempio con la eliminazione dei gradi di libert vincolati.
al contorno sugli spostamenti
5
soluzione del sistema
Pu essere utilizzato il metodo di eliminazione di Gauss.
In questo modi viene determinato il vettore delle soluzioni a ,
uno o pi a seconda di quante condizioni di carico sono state
previste.
6
recupero dei risultati derivati Per ciascuna delle soluzioni calcolate al passo precedente
vengono calcolati gli sforzi.

Considerazioni sulla procedura

Caratteristiche del problema


La matrice del sistema risolutivo simmetrica, per i noti teoremi di reciprocit, per cui sarebbe possibile
determinare e memorizzare soltanto i coefficienti che risiedono nel triangolo superiore, diagonale compresa.
Sulla diagonale, a meno di situazioni anomale, avremo sempre coefficienti positivi: non infatti fisicamente
ammissibile un valore nullo o negativo in quanto ci significherebbe l'incapacit della struttura di opporsi ad
15

014calmt.doc
un carico nel primo caso e un sintomo di instabilit nel secondo in quanto la struttura anzich opporsi al
carico tenderebbe ad assecondarlo.
In seguito al fatto che gli elementi danno contributi di rigidezza ai soli nodi direttamente collegati, la
maggior parte dei nodi del modello normalmente non sono direttamente connessi; questo si traduce nella
presenza di molti termini extra diagonali nulli. Inoltre i coefficienti diversi da zero sono addensati attorno
alla diagonale in una fascia, la cui ampiezza calcolabile a priori, in funzione delle connessioni definite
dagli elementi, detta banda. Sfruttando queste due caratteristiche possibile ridurre in maniera
considerevole sia il tempo richiesto per effettuare le operazioni di soluzione del sistema che la memoria
richiesta per contenere la matrice del sistema risolutivo. A questo argomento, data la sua importanza nella
problematica degli elementi finiti, verr dedicato un apposito spazio.

Significato dei vincoli


L'imposizione di queste condizioni, al di la del caso specifico, necessaria per la semplice soluzione del
problema algebrico definito dalla relazione [K]{a}={r}, infatti la matrice di rigidezza, se non vincolata,
singolare, cio non direttamente risolvibile con le usuali tecniche numeriche: la configurazione degli
spostamenti incogniti apriori del tutto arbitraria, quindi possibile descrivere anche movimenti rigidi della
struttura, per i quali il prodotto [K]{a} deve risultare nullo, per definizione del movimento rigido. Perch
siamo in presenza di un problema omogeneo con soluzione evidentemente non banale il determinante della
matrice deve essere nullo, quindi il sistema non pu essere risolto numericamente se non si impongono
adeguate condizioni al contorno che rimuovano la labilit della matrice.
Questo fatto la manifestazione di un fenomeno fisico, la labilit di un corpo elastico non sufficientemente
supportato, che si traduce nella condizione matematica di indeterminazione del sistema algebrico risolutivo:
la matrice di rigidezza definisce il legame tra le forze elastiche e gli spostamenti nodali e l'imposizione delle
condizioni di equilibrio ci permette di ottenere l'unica configurazione di spostamenti congruenti (tali sono
avendo adottato un approccio agli spostamenti) che risulta essere anche equilibrata. Poich un qualsiasi
spostamento rigido avviene senza deformazione, quindi con un contributo nullo alle equazioni di equilibrio
ai nodi, la sua presenza non altera lo stato di equilibrio ma rende indeterminata la configurazione di
spostamento corrispondente.
Nel caso si dovesse non gi una struttura vincolata ma libera e soggetta ad un sistema di carichi
autoequilibrato occorrerebbe comunque applicare un sistema di vincoli isostatico che elimini le labilit
numeriche dalla matrice e verificare che le reazioni vincolari siano identicamente nulle.
Il problema dell'imposizione delle condizioni al contorno riveste una notevole importanza e ad esso verr
dedicato un apposito capitolo.

Implementazione della costruzione della matrice di rigidezza globale


E' per evidente che la strada ora indicata non sia conveniente n pratica in quanto il peso della gestione
delle matrici di incidenza e del doppio prodotto non proponibile, neppure in presenza di sistemi a memoria
virtuale e di computer potenti. Infatti:
all'aumentare delle dimensioni aumenta quadraticamente il numero di termini nulli da memorizzare
mentre rimane costante quello dei coefficienti che non lo sono
l'esecuzione delle operazioni di accumulo di tutti i termini nulli di queste matrici comporta uno spreco di
tempo del tutto inutile
Pe evitare questi problemi per sufficiente introdurre un meccanismo di indirizzamento che permetta di
passare dai gradi di libert dell'elemento ai corrispondenti nel riferimento generale nell'implementazione del
e
ciclo di sommatoria. Si associa ad ogni elemento, in luogo della matrice di estrazione [H ], un vettore di
e
incidenza [I ] che fornisce direttamente la posizione nel vettore globale di ogni incognita. Preventivamente
occorre quindi provvedere alla numerazione delle incognite globali e a riconoscere la corrispondenza tra
queste e quelle elemento.
Nel nostro esempio possiamo definire la sequenza di numerazione delle incognite semplicemente contandole
seguendo la numerazione dei nodi:
{A} = [u1 v1 u2 v2 u3 v3 u4 v4 u5 v5 ]T
1

10

Si noti che questa una scelta del tutto arbitraria: i risultati non cambierebbero se si utilizzasse un diverso
criterio. Poich per i tre elementi i vettori delle incognite sono:
16

014calmt.doc
u1
u3
v
v
u2
1
3
a
a1

3
v

u
a


u
a1 = a 2 = 2
a2 = 2 = 2
a 3 = a 4 = 4
a 3 u3
a v2
a v4
5 u
5 u
v3
5
5


v5
v5
dalla corrispondenza tra i diversi termini si ricavano i rispettivi vettori di incidenza:
1
5
2
6
3

i
i
1
3

i 2 4
3
7
1
2
3
i = i 2 =
i = =
i = i 4 =
i 3 5
i 4
i 8
5 9
5 9
6


10
10

{ }

{ }

{ }

Si noti come le informazioni contenute in questi elementi siano le stesse codificate nelle matrici [H ]
corrispondenti, ma in forma pi compatta: nel caso di [H1] i termini non nulli sono (1,1), (2,2) e (3,5) che
hanno rispettivamente il significato di (posizione nel vettore elemento, posizione nel vettore globale), nel
vettore {I1} abbiamo che la posizione nel vettore elemento viene direttamente definita dalla posizione nel
vettore di incidenza (c' corrispondenza tra i due), mentre il valore dell'elemento individua la posizione nel
vettore globale.
L'implementazione della sommatoria viene effettuata non pi sommando matrici di eguale ordine termine a
termine, ma accumulando direttamente nelle corrispondenti posizioni nella matrice globale i termini della
matrice elemento. Ovviamente la matrice globale dovr essere preventivamente azzerata.
In questo modo, per guidare le operazioni, si utilizzano soltanto gli indici elemento, come indici diretti
(variano infatti da 1 al numero di gradi di libert dell'elemento sia per le righe che le colonne) all'interno
della matrice elemento, e come indici indiretti in quella globale, attraverso il corrispondente termine del
vettore di incidenza: il coefficiente di indici i,j della matrice elemento viene sommato alla posizioni
incidenza(i), incidenza(j) della matrice globale. La stessa tecnica di indirizzamento viene applicata sia
e
all'indice di riga che quello di colonna; ci equivale al prodotto destro e sinistro per la matrice [H ] ed ha il
significato di valutare le posizioni globali dell'equazione, incidenza(i), e dell'incognita incidenza(j) del
termine di rigidezza di indici (i,j) .
Questo processo, esaminato nel caso strutturale per una matrice di rigidezza, del tutto generale e prende il
nome di ASSEMBLAGGIO di una matrice; esso viene utilizzato per ottenere altre matrici del modello,
come quelle di massa o di smorzamento, o vettori, ricorrendo in questo caso ad un solo puntatore, come
potrebbe essere per i carichi derivanti da una pretensione o dall'applicazione di distribuzioni di temperatura.
In termini operativi e definendo le seguenti entit:
ngdlpn
Numero di gradi di libert per ogni nodo
(uguale per tutti i nodi)
N.Nodi
Numero complessivo di nodi del modello
N.Nodi.Elem
Numero di nodi del generico elemento
NGDLE
Numero di gradi di libert dell'elemento (N.Nodi.Elem x ndglpn)
MG
Matrice globale (ordine (N.Nodi x ndglpn)x(N.Nodi x ndglpn))
VG
Vettore globale (ordine (N.Nodi x ndglpn) x 1)
ME
Matrice elemento
(ordine (N.Nodi.Elem x ndglpn)x(N.Nodi.Elem x ndglpn))
VE
Vettore elemento (ordine (N.Nodi.Elem x ndglpn)x1)
INC
Vettore di incidenza dei gradi di libert
(ordine (N.Nodi.Elem x ndglpn)x1)
La procedura, previo azzeramento della matrice generale, pu essere cos sintetizzata:
17

014calmt.doc
Ciclo sulle righe di ME (riga=1,NGDLE)
VG(Inc(riga))=VG(Inc(riga))+VE(riga)
Ciclo sulle colonne di ME (colonna=1,NGDLE)
MG(Inc(riga),Inc(colonna))=MG(Inc(riga),Inc(colonna))+ME(riga,colonna)
che in FORTRAN risulta essere programmata nel modo seguente:
DO IRIGA=1,NGDLE
VG(INC(IRIGA))=VG(INC(IRIGA))+VE(IRIGA)
DO LRIGA=1,N
MG(INC(IRIGA),INC(LRIGA))=
*
MG(INC(IRIGA),INC(LRIGA))+ME(IRIGA,LRIGA)
ENDDO
ENDDO

mentre in C :
for(iriga=0;iriga<ngdle;iriga++)
{
vg(inc(iriga)) += ve(iriga);
for(lriga=0;lriga<ngdle;lriga++)
{
mg(inc(iriga),inc(lriga)) += me(iriga,lriga);
}
}

In MATLAB, o analoghi linguaggi, la disponibilit di operatori matriciali semplifica enormemente la


programmazione:
MG(INC,INC)=MG(INC,INC)+ME
VG(INC)=VG(INC)+VE

La scrittura compatta non deve trarre in inganno: il numero di operazioni che vengono eseguite rimane lo
stesso ed solo la presenza di una sofisticata gestione della memoria che permette di scrivere in forma
pressoch simbolica le operazioni. In realt la struttura del codice realmente eseguito lo stesso visto per
FORTRAN e c, con il sovraccarico di lavoro legato alla necessit di individuare glioperatori coinvolti e
recuperare dalle strutture dati le informazioni relative.
Queste istruzioni devono essere svolte per ogni elemento, quindi le linee di programma devono essere
inserite in un ciclo pi esterno sugli elementi che prepari le informazioni per lo specifico elemento che deve
essere assemblato.
Normalmente, nei programmi di questo genere, ogni nodo caratterizzato da un numero di gradi di libert,
che pu variare secondo la problematica specifica, e che nel caso pi generale dato dalle 3 componenti di
traslazione e 3 di rotazione; avremo allora che la matrice di rigidezza di un elemento di dimensione pari al
numero di nodi moltiplicato per il numero di gradi di libert per nodo; il vettore di incidenza dell'elemento
avr dimensioni corrispondenti ed il suo contenuto, come accennato, sar tale da fare riferimento alle
posizioni dei singoli gradi di libert nel vettore di spostamenti complessivo. Lo schema pi semplice per la
creazione del vettore di incidenza basato sul fatto che tutti i nodi sono caratterizzati dallo stesso numero di
gradi di libert: se NGL la variabile che esprime questo numero avremo che gli NGL gradi di libert
associati al nodo I-esimo sono esprimibili come
JGDL=(I-1)*NGL+J
In questo caso in particolare non necessario ricorrere ad una numerazione preventiva di tutte le equazioni,
cosa che risulta obbligatoria se invece si desidera ammettere un numero di gradi di libert variabile da nodo
a nodo.

Numerazione nodi e elementi

18

014calmt.doc
Nell'esempio i nodi e gli elementi sono stati numerati in modo consecutivo. Si tratta di una procedura del
tutto arbitraria. Questo schema che ha il pregio/difetto di confondere il "nome" di un nodo, e di un elemento,
con la sua posizione all'interno della lista di definizione. In realt non affatto necessario seguirlo, per
esempio si possono elencare i nodi in maniera casuale, avendo per utilizzato tutti i numeri da 1 al numero
di nodi, o, in maniera ancora pi generale, utilizzare numeri non solo ordinati in forma casuale ma anche
arbitrari come valore, quindi, anche se riordinati, non consecutivi. Un elenco ordinato, per esempio in
maniera crescente, rende per estremamente pi efficiente la fase di ricerca di un nodo nell'elenco: se la lista
non ordinata, la ricerca deve necessariamente essere lineare, se invece lo una ricerca binaria riduce
drasticamente i tempi di individuazione.

Iperstaticit del problema


Un'ultima considerazione riguarda il fatto che l'approccio agli spostamenti intrinsecamente insensibile al
livello di iperstaticit del problema: la procedura descritta rimane assolutamente inalterata e nelo schema di
scrittura del sistema risolutivo l'unica variante risiede nel numero di elementi che devono essere assemblati.
Infatti se nel nostro caso fossero presenti altri elementi, la struttura del sistema risolutivo ne risulterebbe
modificata: le incognite rimarrebbero le stesse, cambiando soltanto i coefficienti della matrice a seguito
dell'assemblaggio di altri elementi.

Caratteristiche della soluzione


La soluzione di un problema elastico deve essere congruente in termini di spostamenti e deformazioni oltre
che equilibrata in termini di forze interne ed esterne. Assumiamo che i legami precedentemente identificati,
nei termini di relazioni forze/spostamenti e sforzi/spostamenti, siano in grado di garantire queste condizioni
all'interno di ogni elemento. Questa ipotesi sar senz'altro soddisfatta nel caso di risultati di prove
sperimentali, altrimenti si avrebbe avuto un cedimento nella struttura sottoposta a test; lo sar pure nel caso
di matrici determinate numericamente se la metodologia utilizzata provvede a specificare questi vincoli,
come avviene per elementi di asta o trave. Per potere risolvere il problema, rimane ancora da imporre che
queste due condizioni siano soddisfatte in corrispondenza dei nodi del modello, cosa che avviene mediante

Effetti della numerazione dei nodi


E' interessante per vedere coma la distribuzione dei termini non nulli viene a dipendere dall'ordine con il
quale sono stati messi in sequenza i nodi del modello o, in una parola, dalla numerazione dei nodi e quindi
delle equazioni. Esaminiamo quale sarebbe stata la popolazione della matrice con una numerazione
differente, per esempio quella riportata in figura:
4

Nodi

Elementi
1
3

Il vettore delle incognite nodali mantiene la stessa struttura, anche se i punti fisici corrispondenti ai nodi 2,3
e 4 sono diversi. Le matrici di rigidezza hanno ovviamente la stessa struttura, diversi risultano invece i
vettori di incidenza nodale:
Elemento N.(1)

Elemento N.(2)

19

Elemento N.(3)

014calmt.doc
1
2
3
i1

i 2 4
3
1
2
i = i 2 =
i = =
i 4 7
i 4
3 5
8

6
Per cui la matrice globale assume la seguente topologia:

5
6
i3

7
i 3 = i 4 =
i 8
5 9

10

A
A
0
0
A
A ( A + B)
A
B
0

A
A
( A + C)
C
C

B
C
(B + C) C
0
0
0
C
C
C
Si pu notare che, come ovvio, i termini della matrice sono gli stessi del caso precedente, solo distribuiti in
modo diverso nella matrice globale; quello che importante rilevare che il riempimento della matrice ha
assunto lo schema tipico di una matrice in banda, con tutti i coefficienti ridossati alla diagonale principale.
Le caratteristiche che contraddistinguono la posizione dei coefficienti ci portano a definire diverse
topologie: oltre alla matrice in banda potremo avere una matrice piena se tutti i termini sono diversi da zero,
una matrice con un riempimento irregolare detta a profilo (dal termine inglese skyline). Il riconoscimento
di una specifica topologia permette di affrontare tecniche di memorizzazione e di elaborazione della matrice
che portano ad una soluzione pi efficiente del problema.
Le matrici in banda
Gestione di una matrice in banda
Le matrici in profilo
Gestione di una matrice in profilo
Le matrici in fronte
Gestione di una matrice in fronte
Le matrici completamente sparse
Gestione di una matrice sparsa

Procedure per l'imposizione di vincoli


Come precedentemente accennato necessario individuare procedure pratiche e flessibili per l'imposizione
dei vincoli esterni. Questi possono essere fissi, cio a spostamento nullo, o cedevoli, quindi a spostamento
imposto non nullo. Di seguito vengono discusse due possibili tecniche per la loro realizzazione.

Partizione della matrice


La tecnica di partizione della matrice di rigidezza costituisce la procedura formalmente pi elegante per
l'imposizione dei vincoli: il vettore dei gradi di libert viene formalmente partizionato nei gradi di libert
liberi (l) e in quelli vincolati (v) cos come il vettore dei termini noti e la matrice di rigidezza:
klv al rl
kll
=
k
kvv av rv
vl
Nel problema cos posto i termini del vettore dv sono noti, in quanto imposti, mentre sono incognite le
reazioni vincolari pv; le equazioni del sistema ( ) possono allora essere separate e riscritte come:
20

014calmt.doc
kll al = rl + klv av
rv = klv al + kvv av
e mentre dalla soluzione della prima equazione, un sistema lineare con numero di gradi di libert ridotto a
quelli liberi, si ricavano gli spostamenti dei nodi liberi, la seconda fornisce le reazioni vincolari.
Questa procedura formalmente elegante e completa, infatti possibile gestire anche il caso di cedimenti
vincolari, cio l'imposizione di condizioni al contorno non omogenee, essendo presente il termine av.
La struttura della matrice idonea per la partizione pu essere facilmente ottenuta numerando per prime le
componenti di spostamento libere e per ultimi quelli vincolati. In questo modo si evita di dover
riorganizzare la matrice a posteriori. per difficoltosa l'implementazione quando si operi con uno qualsiasi
degli schemi di memorizzazione utilizzato per ridurre la memoria richiesta.
Si possono implementare schemi semplificati, per esempio si potrebbe pensare di eliminare equazioni e
coefficienti relativi alle componenti di spostamento vincolate impaccando la matrice che passerebbe cos da
ordine 12 a ordine 9: questa operazione risulta per poco pratica, soprattutto nel caso di matrici di grandi
dimensioni in quanto comporta una riorganizzazione della matrice. Meglio sarebbe evitare di assemblare le
equazioni vincolate, cosa che, per, preclude la possibilit di analizzare diverse condizioni al contorno e di
recuperare le reazioni vincolari. Formalmente queste procedure equivalgono a ridurre il sistema a:
kll al = rl
In entrambi i casi non gestibile il cedimento vincolare, cio l'imposizione di condizioni al contorno non
omogenee.
Una via praticabile consiste nell'azzeramento di riga e colonna corrispondenti al grado di libert da vincolare
e nel ridefinire il termine diagonale unitario; il calcolo delle reazioni pu essere effettuato memorizzando
preventivamente le sottomatrici kvl e kvv prima dell'azzeramento. I passi della procedura di imposizione dei
vincoli diventano:
costruzione del sistema
memorizzazione delle sottomatrici
kvl , kvv
azzeramento di klv , kvl e kvv e
forzamento dei termini diagonali unitari
in kvv ; sostituzione dei carichi esterni rv
con il cedimento dei vincoli av
soluzione del sistema ( al e av )

calcolo delle reazioni vincolari

kll

kvl

klv al rl
=
kvv av rv

kll
0

0 al rl
=
I av av

0
al kll
=
I
av 0
rv = kvl al + kvv av

rl

av

Questa procedura pratica e normalmente non comporta un significativo aggravio computazionale: il


numero di componenti di spostamento vincolate, in una vasta casistica di applicazioni, piccolo, se non
trascurabile, rispetto al numero di incognite.
Rigidezze concentrate
Le possibili alternative alla procedura di partizione prevedono la manipolazione dei coefficienti della
matrice di rigidezza.
La prima procedura si basa sulla considerazione che il vincolo fisso una schematizzazione del
comportamento fisico di un sistema che, nella realt, solo molto pi rigido della struttura alla quale si
applica, tanto da giustificare il modello. La procedura sopra descritta pu allora essere ottenuta aggiungendo
sulla diagonale di kvv dei coefficienti che altro non sono se non le rigidezze concentrate con le quali si
possono modellare i vincoli.

21

014calmt.doc
Dovendo descrivere un vincolo "rigido" queste rigidezze risulteranno essere di ordini di grandezza maggiori
rispetto ai termini strutturali presenti in kvv e in kvl, quindi il contriibuto originale numericamente tende a
scomparire quanto pi grandi sono le rigidezze utilizzate.
Quindi il sistema si riscrive come
klv
kll
al rl

=
kvv + diag k av rv
kvl
e sei termini di rigidezza aggiunti sono dominanti, diag k  k , in pratica si ottiene:
vv

klv
0
kll
kll


kvv + diag k 0
diag k
kvl
e la soluzione del problema diventa:
1
{av } = diag k {rv }

( al ) = [ kll ]1 ({r}l + [ klv ]{av })

Dalla prima equazione si pu desumere che, perch lo spostamento {av } assuma il valore desiderato (che si
tratti di un vincolo fisso o di un cedimento non fa differenza), occorre applicare ai gradi di libert cos
vincolati una forza pari al prodotto del cedimento per la rigidezza del vincolo i luogo degli eventuali carichi
esterni. Anche questa procedura consente di elaborare nello stesso modo vincoli fissi e a cedimento imposto.
Per il calcolo delle reazioni vincolari sarebbe sufficiente memorizzare la diagonale di [ kvv ] unico elemento
andato perso e utilizzare ancora l'equazione dei gradi di libert vincolati.
Questa procedura presenta il vantaggio di non richiedere particolari capacit di gestione della matrice, se
non quella di saper individuare del termine diagonale dei gradi di libert da vincolare.

22

014calmt.doc

Tecniche per la soluzione di sistemi lineari (INCOMPLETO)


Tecniche dirette di decomposizione
Supponiamo che la matrice [K] sia scomponibile nel prodotto di due matrici, una triangolare inferiore e una
triangolare superiore a diagonale unitaria:
[K]=[L][U]
Il sistema pu essere riscritto come
[K]{A}=[L][U]{A}={R}
definendo un vettore di supporto {Y} possibile riscrivere il sistema, di ordine n, scomposto in due sistemi,
sempre di ordine n:
[L]{Y}={R}
{Y}=[U]{A}
La soluzione di questo doppio sistema immediata essendo le due matrici triangolari.
Sviluppando simbolicamente il prodotto di queste matrici si in grado di risalire alle formule ricorsive per il
calcolo dei coefficienti delle matrici di decompisizione:
Le tecniche che si possono utilizzare sono:
Fattorizzazione LU, quella ora vista, valida per problemi generici, quindi anche per matrici non
simmetriche, che una forma di implementazione del metodo di sostituzione di Gauss, quando si eviti di
normalizzare l'equazione in riduzione e si memorizzino nella triangolare inferiore (la porzione azzerata della
matrice) il coefficiente della combinazione.
formule
Fattorizzazione di Cholesky per matrici simmetriche definite positive, si attua sempre una scomposizione
ma le matrici triangolari sono una trasposta dell'altra: [K]=[C]T[C]. Anche in questo caso lo sviluppo
simbolico del prodotto delle matrici triangolari permette di risalire alle formule ricorsive per il calcolo dei
coefficienti della decomposizione:
1/ 2

c11 = k11

c1j = k1j / c11

i 1

cii = k ii cli2

l=1

i 1

cik = k ij cli clj / cii

l=1

j > i >1

Tecniche iterative
I metodi iterativi sono stati ampiamente usati, per la soluzione di sistemi lineari, durante la fase pionieristica
dell'impiego degli elementi finiti. In seguito sono stati abbandonati a causa delle caratteristiche di
convergenza che non consentiva il raggiungimento della soluzione in un numero garantito sufficientemente
ridotto di passi. Allo stesso tempo il consolidamento delle procedure per il trattamento e la soluzione diretta
di sistemi sparsi di grandi dimensioni aveva concorso ad orientare le scelte verso questi ultimi.
Le dimensioni dei modelli analizzati sono continuamente aumentate parallelamente con la disponibilita delle
risorse di calcolo (memoria centrale e di massa) e con l'affinamento delle procedure di analisi. Oggi
problemi dell'ordine delle decine di migliaia di gradi di libert sono all'ordine del giorno e si vedono sempre
piuu spesso modelli che superano il centinaio di migliaia di gradi di libert. Con queste dimensioni di
modello, tutti gli schemi di soluzione basati sulla scomposizione della matrice portano ad uno spreco di
risorse legato alla necessit di memorizzare anche un certo numero di termini nulli della matrice di
rigidezza.
Esempio della struttura ad anello.
Questo spreco risultato essere accettabile per modelli relativamente piccoli, con problemi che seperano i
100.000 gdl invece opportuno adottare tecniche pi efficienti.
Da questo punto di vista i metodi iterativi si prestano perfettamente al massimo sfruttamento delle risorse di
memoria, in quanto consentono la memorizzazione dei soli termini non nulli della matrice.
Perch si dimostrino efficienti anche nella fase di soluzione per necessario individuare delle tecniche di
accelerazione della convergenza.
Gauss-Seidel
Dato il sistema lineare definito come
Ku=R
si attui una scomposizione della matrice dei coefficienti del tipo
23

014calmt.doc
K=KL+KD+KLT
dove KL e' una matrice che contiene i termini della sola triangolare inferiore di K, mentre KD contiene la
sola diagonale di K.
Il sistema puoo essere riscritto come
KL u + KD u + KLT u = R
Tenendo presente la struttura delle matrici coinvolte, possiamo pensare ad una procedura iterativa
semplicemente attribuendo l'indice i+1 ai primi due termini u e i al terzo:
KL u (i+1)+ KD u (i+1)+ KLT u (i)= R
Infatti il generico termine m della soluzione u al passo (i+1) pu essere espresso in funzione dei termini
precedenti n<m relativi allo stesso passo, perch gi calcolati, e di quelli successivi n>m relativi al passo
precedente, non ancora disponibili.
KD u (i+1)= R-KL u (i+1)- KLT u (i)
Questa equazione e' immediatamente risolvibile essendo la matrice KD diagonale.
Il processo puo partire da un generico vettore u(0) inizializzato con i valori del termine noto, cosa che
equivale a risparmiare una iterazione partendo da un vettore identicamente nullo, o da una soluzione
arbitrartia.
Si saraa raggiunta la convergenza alla soluzione esatta quando l'aggiornamento della soluzione, in norma,
risulta essere minore di una soglia definita a priori: es.
||u(i+1)-u(i)||/||u(i+1)||<eps
Se la matrice dei coefficienti e' definita positiva allora la convergenza e' assicurata.
La convergenza risulta essere accelerata se si impiega la seguente forma:
u(i+1)=u(i)+beta KD-1(R-KL u (i+1)-KD u(i)- KLT u (i)) con 1.3<=beta<=1.9
(Vedi Bathe)
Gradiente coniugato
Ku=R minimizza il potenziale totale P=1/2utKu-utR
Si usano delle tecniche di proiezoni che permettono di ricercare la direzione di costruzione di una base di
vettori per la descrizione di u che minimizzi P
(Vedi Bathe o altro)

Esempio strutturale: ANALISI DI TELAI (ASTE)


Caso bidimensionale
Applichiamo quanto visto per definire una procedura per l'analisi di telai piani costituiti da elementi di asta,
caratterizzati da stato di sforzo costante, collegati tra loro in corrispondenza dei nodi dello schema. La
struttura del programma rester la stessa all'aggiunta di elementi finiti di altro genere.
Definiamo la generica asta come un elemento orientato in manier arbitraria nel sistema di riferimento
generale; la lunghezza e l'orientazione del singolo elemento sono calcolati a partire dall'indicazione dei nodi
collegati e dalle coordinate di questi, mentre la rigidezza assiale (EA) rappresenta un dato specifico di
ciascun elemento.
y

A Sezione

L Lunghezza
E Modulo di elasticita'

I coseni direttori della terna di riferimento locale, che identifica la giacitura dell'asta, sono dati dalle seguenti
relazioni:
c=cos(); s=sin()
24

014calmt.doc
ove =atan2(y,x)
Matrice dell'asta nel sistema di riferimento generale

cs cc cs
cc
cs
ss cs ss
EA
[k ] =
cs
L cc cs cc

ss
cs ss sc
Dimostrare la forma della matrice di rigidezza dell'asta.
Verificare che la stessa matrice pu essere ottenuta applicando la procedura di trasformazione alla
matrice dell'asta in un riferimento assiale:
dimostrare che la matrice di rigidezza dell'asta :
1
EA 1
[k ] =

1
L 1
che la matrice di trasformazione ha la seguente forma:
s
0
0
c
[T ] =
0
c
s
0
e che la matrice per il calcolo dell'azione interna :
E
[ S ] = [ c
s
c
s]
L
Per quanto riguarda il recupero dei risultati a livello di elemento siamo interessati al calcolo
dell'allungamento dell'asta che otteniamo per differenza della proiezione delle componenti di spostamento
dei due nodi dell'elemento (secondo meno primo)

L = ( c * u2 + s * v 2 ) ( c * u1 + s * v1 )

Il carico assiale che agisce sulla generica asta quindi dato dalla relazione

N = EA

L
L

Parallelamente alla formulazione della procedura elaboriamo l'esempio descritto in figura:


1

A=100mm2

L=100mm

6
4

Assumiamo il sistema di riferimento con l'origine nel punto 4, l'asse x orientato come la congiungente i nodi
4 e 3 mentre l'asse y diretto dal punto 4 al punto 1.
Le aste abbiano tutte la medesima sezione A e alla struttura sia applicata, in corrispondenza del nodo 2 una
forza di componenti verticale ed orizzontale rispettivamente pari a 3000 e 1000 Kg.
Tabella delle coordinate
25

014calmt.doc
Nodo
1
2
3
4

X
0
100
100
0

Y
100
100
0
0

Tabella degli elementi


Elem.
1
2
3
4
5
6

N1
1
2
3
4
1
2

N2
2
3
4
1
3
4

E
7300
7300
7300
7300
7300
7300

Area
100
100
100
100
100
100

L
100
100
100
100
141
141

EA/L
7300
7300
7300
7300
5177
5177

0
-90
-180
90
-45
45

cos
1
0
-1
0
.707
.707

sin
0
-1
0
1
-.707
.707

Inc1
1,2
3,4
5,6
7,8
1,2
3,4

Inc2
3,4
5,6
7,8
1,2
5,6
7,8

Le prime cinque colonne fanno parte dei dati del problema, le altre sono calcolate a partire da queste e dalla
tabella delle coordinate nodali.
Organizziamo le componenti di spostamento incognite nel vettore di incognite globali:
{u}=[u1, v1, u2, v2, u3, v3, u4, v4]T
Vettori di piazzamanto e Matrici elementi
Elemento
1

Vettore spostamenti e di incidenza


u1
1
v
2
1



u2
3
v2
4

u2
v
2

u3
v3

u3
v
3

u4
v5
u4
v
4

u1
v1

u1
v
1

u3
v3

Matrice di rigidezza
1 0 1 0

EA 0 0 0 0
L 1 0 1 0

0 0 0 0

3
4


5
6
5
6


7
8

0 0

EA 0 1
L 0 0

0 1
1

EA 0
L 1

7
8


1
2
1
2


5
6

0
0
0
0

0 0

EA 0 1
L 0 0

0 1

0 0
0 1
0 0

0 1
1 0
0 0
1 0

0 0
0 0
0 1
0 0

0 1

.5 .5 .5 .5

EA .5 .5 .5 .5
L5 .5 .5 .5 .5

.5 .5 .5 .5

26

014calmt.doc
6

u2
v
2

u4
v4

.5 .5 .5 .5

EA .5 .5 .5 .5
L6 .5 .5 .5 .5

.5 .5 .5 .5

3
4


7
8

Matrice globale dopo assemblaggio degli elementi N 1,2,3,4


7300 (1)

7300 (1)

0
7300

(4)

7300 (1)

7300 (1)

7300 ( 2 )

7300 ( 2 )

7300 ( 3)

7300 ( 3)

7300 ( 2)

7300 ( 2 )

7300 ( 3)

7300 ( 4 )

7300

( 3)

7300 ( 4 )

7300 ( 4)

Il numero tra parentesi indica l'elemento che ha generato il contributo


Matrice globale dopo assemblaggio degli elemento N. 5
2580 7300
0
2580 2580
0
0
9880
2580
9880
0
0
2580 2580
0
7300

7300
0
7300
0
0
0
0
0

0
0
7300
0
7300
0
0
0
2580 2588
0
0
9880
2580 7300
0

0
7300 2580
9880
0
0
2580 2580
0
0
0
0
7300
0
7300
0

7300
0
0
0
0
0
7300
0

Matrice globale dopo assemblaggio degli elemento N. 6 e vettore termini noti


0
2580 2580
0
0 0
9880 2580 7300
2580 9880
0
0
0
2580

2580
0

7300

7300
0
9880
2580
0
0
2580 2580 1000

0
2580
9880
0
7300 2580 2580 3000
0

2580 2580
0
0
9880 2580 7300
0 0

0
7300 2580 9880
0
0 0
2580 2580

0
0
2580 2580 7300
0
9880
2580 0

7300 2580 2580


0
0
2580
9880 0
0

Si osservi come la somma dei termini di una riga associati alla traslazione secondo una direzione risulta
essere nulla: infatti si deve avere che per una distribuzione di spostamenti nodali definita come spostamento
rigido lungo un asse non nascono forze elastiche ai nodi, quindi il risultato del prodotto tra la matrice di
rigidezza ed il vettore spostamenti deve dare risultato nullo per tutti i gradi di libert.
Matrice globale dopo la rimozione dei gradi di libert vincolati

27

014calmt.doc
2580 1000
2580
0
0
9880
2580

2580 3000
9880
0
7300

0
0
9880 2580
0 0

7300 2580 9880


0 0
0

2580 2580
0
0
9880 0

Soluzione

u1 0
v 0
1

u 2 - 0.0827

v 2 0.9237

=
u 3 0.1913
v3 0.7324


u 4 0
v 0.2197

4
Recupero azioni interne: calcolo dell'allungamento di ogni asta e prodotto per il coefficiente EA/L
Elemento N.1
L EA
(u 2 * cos(0) + v2 * sin(0) (u1 * cos(0) + v1 * cos(0) ) =
=
L
L
EA
( 0.0827 *1 + 0 * 0 0 *1 0 * 0 ) = 0.0827 EA
L
L

N1 = EA

Elemento N.2
L EA
(u3 * cos(90) + v3 * sin(90) (u 2 * cos(90) + v2 * cos(90) ) =
=
L
L
EA
(0.1913 * 0 + 0.7324 * (1) (0.0827) * 0 0.9237 * (1) ) = 0.1913 EA
L
L

N 2 = EA

Elemento N.3
EA
(u 4 * cos(180) + v4 * sin(180) (u 3 * cos(180) + v3 * cos(180) ) =
L
EA
(0 * (1) + 0.2197 * (0) 0.1913 * (1) 0.7324 * (0) ) = 0.1913 EA
L
L

N3 =

Elemento N.4
EA
(u1 * cos(90) + v1 * sin(90) (u 4 * cos(90) + v4 * cos(90) ) =
L
EA
(0 * (0) + 0 * (1) 0 * (0) 0.2197 * (1) ) = 0.2197 EA
L
L

N4 =

Elemento N.5
N5 =

EA
(u 3 * cos(45) + v3 * sin(45) (u1 * cos(45) + v1 * cos(45) ) =
L5

EA
EA
0.707(0.191 * (.707) + 0.7324 * (.707) 03 * (.707) 0 * ( .707) ) = 0.2706
L
L

Elemento N.6

28

014calmt.doc
N5 =

EA
(u 4 * cos(45) + v4 * sin(45) (u 2 * cos(45) + v2 * cos(45) ) =
L5

EA
0.707(0. * (.707) + 0.2197 * (.707) (0.0827) * (.707) 0.9237 * (.707) ) =
L
EA
0.3106
L

Si riporta una possibile organizzazione di un programma per la soluzione automatica di telai piani.
Lettura dati nodali: identificatori e coordinate e costruzione tabella nodi
Lettura dati elementi: connessioni, materiale, sezione e costruzione tabella elementi
Lunghezza, Coseni direttori elemento, Vettore di incidenza
Ciclo di assemblaggio
Per ogni elemento
Calcolo della matrice di rigidezza
Assemblaggio della matrice elemento nella matrice globale
Lettura carichi e costruzione termine noto
Lettura vincoli e loro applicazione alla matrice
Soluzione del problema statico
Recupero deformazioni ed azioni interne
Per ogni elemento
Calcolo allungamento
Calcolo azione assiale
Esempio di programmazione in MATLAB:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% box.m
risolve con la tecnica degli EF il problema della
%
struttura reticolare a busta
%
clear,clg
%
v
1
% 1 >O---------O 2
%
|\
/|
%
| 5\
/ |
%
4 |
\
|2
%
| /
\ |
%
|/ 6
\|
% 4
>O---------O 3
%
3
%
xynodi=[ 0 100;
% tabella coordinate nodi
100 100;
100
0;
0
0];
elemen=[ 1 2;
% tabella collegamenti aste
2 3;
3 4;
4 1;
2 4;
1 3];
vinc=[1 1;
% tabela vincoli: nodo, gdl vincolato
1 2;

29

014calmt.doc
4 1];
e=[7300 7300 7300 7300 7300 7300];
a=[100 100 100 100 100 100];
[nel,l]=size(elemen);
[nod,l]=size(xynodi);
[nvi,l]=size(vinc);
rm=zeros(nod*2);

% tabella modulo elastico


% tabella area aste

% recupero dimensioni problema

% disegno struttura indeformata


axis([-20 120 -20 120]);
hold on
for i=1:nel
n1=elemen(i,1);
n2=elemen(i,2);
plot([xynodi(n1,1) xynodi(n2,1)],[xynodi(n1,2) xynodi(n2,2)]);
end
pause
% ciclo sugli elementi
for i=1:nel
n1=elemen(i,1);
% estrazione nodi collegati
n2=elemen(i,2);
e1=(n1-1)*2+1;
% calcolo prima equazione di ciascun nodo
e2=(n2-1)*2+1;
% si assume numerazione nodi sequenziale da 1
ip=[e1 e1+1 e2 e2+1]; % vettore di incidenza sulle equazioni
%
% calcolo della lunghezza e dell'inclinazione dell'elemento
lun=sqrt((xynodi(n1,1)-xynodi(n2,1))^2+
(xynodi(n1,2)- xynodi(n2,2))^2);
ang=atan2((xynodi(n2,2)-xynodi(n1,2)),(xynodi(n2,1)-xynodi(n1,1)));
cs(i,1)=cos(ang);
% calcolo coseni direttori dell'elemento
cs(i,2)=sin(ang);
c=cs(i,1);
s=cs(i,2);
% calcolo matrice di rigidezza dell'elemento
m=e(i)*a(i)/lun*[c*c c*s -c*c -c*s;
c*s s*s -c*s -s*s;
-c*c -c*s c*c c*s;
-c*s -s*s c*s s*s];
for n=1:4
% assemblaggio della matrice di rigidezza globale
for k=1:4
rm(ip(n),ip(k))=rm(ip(n),ip(k))+m(n,k);
end
end
end
rm
%visualizzazione matrice di rigidezza assemblata
pause
v=[0 0 1000 3000 0 0 0 0];
v
pause

% definizione dei carichi esterni


% e visualizzazione del termine noto

%
applicazione dei vincoli esterni
for i=1:nvi
ieq=(vinc(i,1)-1)*2+vinc(i,2);

30

014calmt.doc
rm(ieq,:)=0;
rm(:,ieq)=0;
rm(ieq,ieq)=1;
v(ieq)=0;
end
tun=inv(rm)*v';
sol=tun'
mm=max(abs(sol));
sol=sol*20/mm;

%
%
%
%

soluzione del sistema


stampa soluzione
messa in scala per visualizzazione
al 20% della dimensione massima della struttura

% visualizzazione della struttura deformata


for i=1:nel
n1=elemen(i,1);
n2=elemen(i,2);
e1=(n1-1)*2+1;
e2=(n2-1)*2+1;
plot([xynodi(n1,1)+sol(e1) ynodi(n2,1)+sol(e2)],
[xynodi(n1,2)+sol(e1+1) xynodi(n2,2)+sol(e2+1)],'r');
end
hold off
pause
% calcolo delle azioni interne
for i=1:nel
n1=elemen(i,1);
n2=elemen(i,2);
e1=(n1-1)*2+1;
e2=(n2-1)*2+1;
lun=sqrt((xynodi(n1,1)-xynodi(n2,1))^2+
(xynodi(n1,2)-xynodi(n2,2))^2);
ang=atan2((xynodi(n2,2)-xynodi(n1,2)),(xynodi(n2,1)-xynodi(n1,1)));
ip=[e1 e1+1 e2 e2+1];
for n=1:4
% estrazione degli spostamenti dell'elemento
sl(n)=tun(ip(n));
end
elemento=i
sposel=sl;
sploc(1)=sl(1)*cs(i,1)+sl(2)*cs(i,2);
sploc(2)=sl(3)*cs(i,1)+sl(4)*cs(i,2)
delta=sploc(2)-sploc(1)
ai=delta*a(i)*e(i)/lun
c=cs(i,1);
s=cs(i,2);
m=e(i)*a(i)/lun*[c*c
c*s
-c*c
-c*s

c*s -c*c
s*s -c*s
-c*s c*c
-s*s c*s

% proiezione degli
% spostamenti nodali
% calcolo allungamento
% calcolo azione interna
% ricalcolo coseni direttori
%
% e matrice di rigidezza

-c*s;
-s*s;
c*s;
s*s];

ai=(m*sl')';
%calcolo forze nodali nel rif. basico
ail=ai(3)*cs(i,1)+ai(4)*cs(i,2) % trasformazione delle forze nel
% rif elemento
%anorm=ail/(e(i)*a(i)/lun)
if i<6

31

014calmt.doc
pause
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Esercizi
Modificare la procedura per affrontare il problema di telai bidimensionali con elementi di trave. Per la
matrice di rigidezza si faccia riferimento alle dispense di Strutture Aeronautiche del Prof.Giavotto.

32