Sei sulla pagina 1di 225

UNIVERSIT DEGLI STUDI DI NAPOLI FEDERICO II

FACOLT DI INGEGNERIA

CORSO DI LAUREA IN INGEGNERIA CIVILE


(Classe delle Lauree in Ingegneria Civile e Ambientale - Classe n 8)

DIST
Dipartimento di Ingegneria delle Strutture

Tesi di Laurea

PROGRAMMAZIONE DEL METODO


AGLI ELEMENTI FINITI IN MATHEMATICA.
Strutture reticolari e telai piani

Relatore

Candidato

Ch.mo Prof. Antonio Gesualdo

Danilo De Fusco
matr. 520/352

Anno Accademico 2009/2010

dedica

Ai miei genitori
Pasquale e Giuseppina.

Ringraziamenti

Un primo ringraziamento va al prof. Antonio Gesualdo che mi ha seguito nel lavoro


con pazienza, dedizione, continua disponibilit e prontezza nei chiarimenti, nonch per
avermi guidato con i suoi preziosi consigli che hanno permesso il raggiungimento dei
risultati contenuti nella presente tesi di laurea.
Un ulteriore ringraziamento lo rivolgo ai miei genitori a cui dedicata la tesi: senza
il loro aiuto non avrei mai raggiunto questa meta. Sono davvero grato per tutto il sostengo
economico, ma pi di ogni altra cosa per quellaiuto tacito o esplicito che venuto dal loro
cuore.
Un pensiero particolare lo esprimo a mia sorella e a mio fratello che mi hanno
sostenuto ed incoraggiato sempre, anche nei momenti pi difficili.
Un ringraziamento speciale indirizzato a Ada, che con estrema pazienza per
lattenzione che mi ha riservato in questo periodo nonostante la concentrazione verso
questo lavoro di tesi. Se ho raggiunto questo traguardo lo devo anche alla sua continua
presenza che mi ha fatto capire che potevo farcela senza mollare mai.
Un ultimo ringraziamento ai compagni di studi per essermi stati vicini in tutti i
momenti, piacevoli e non, di questo primo percorso universitario; in particolar modo
Francesco, con cui ho condiviso pi da vicino questi ultimi due anni di intenso studio.

Indice

Introduzione
Capitolo 1 : Il modello di trave

VII
1

1.1 Premessa

1.2 Modello della trave di Eulero-Bernoulli

1.3 Modello della trave di Timoshenko

1.4 Applicazioni

17

1.4.1

Applicazione 1: trave Gerber, modello di Eulero-Bernoulli

18

1.4.2

Applicazione 2: trave continua, modello di Timoshenko

24

Capitolo 2 : Il metodo di Ritz-Rayleigh

30

2.1 Premessa

30

2.2 Energia Potenziale Totale

34

2.3 Teorema di minimo e di stazionariet dellenergia potenziale totale

35

2.4 Metodo di Ritz-Rayleigh

35

2.5 Applicazioni

42

2.5.1

Applicazione 1: telaio con carichi variabili risolto con il minimo dellEPT 42

Capitolo 3 : Il metodo degli elementi finiti

47

3.1 Premessa

47

3.2 Descrizione del Metodo

47

3.3 Stima dellerrore nel FEM

57

3.4 Lerrore di soluzione

57

3.5 Stima dellerrore basata su campi di sforzo approssimanti

58

3.6 Applicazioni

60

3.6.1

Applicazione 1: trave continua risolta con il metodo agli elementi finiti

60

3.6.2 Applicazione 2: trave continua con vincolo interno doppiopendolox risolta con
il metodo agli elementi finiti
68
3.6.3

Applicazione 3: trave continua con vincolo esterno inclinato

78

Indice

3.6.4 Applicazione 4: trave continua con vincolo interno doppiopendolox inclinato a


60 risolta con il metodo agli elementi finiti
85

Capitolo 4 : Il metodo degli elementi finiti e i telai

93

4.1 Premessa

93

4.2 Matrice di rotazione

94

4.3 Matrici delle connessioni geometriche

97

4.4 Operatore di contrazione

98

4.5 Gli elementi finiti e i telai

100

4.6 Le funzioni di forma

105

4.7 Polinomi di Hermite

109

4.8 Applicazioni

115

4.8.1

Applicazione 1: telaio risolto con il metodo agli elementi finiti

Capitolo 5 : Introduzione alluso del software Mathematica

115

133

5.1 Premessa

133

5.2 Calcolo numerico

134

5.3 Calcolo simbolico

136

5.4 Le funzioni elementari

137

5.5 Definire funzioni

137

5.6 Disegnare funzioni di una variabile (Grafici 2D)

138

5.7 Liste e vettori

143

5.8 Matrici

146

5.9 Risoluzione di equazioni e di sistemi

147

5.10 Sistemi lineari

148

5.11 Uso di If e Which

148

5.12 Uso di Do, While, For

149

5.13 Uso di Module

151

5.14 Propriet delle funzioni predefinite

152

5.15 Funzioni pure

153

5.16 Derivate

154

5.17 Integrali

155

5.18 Equazioni Differenziali Ordinarie

156

5.19 Grafici 2D

156

5.20 Grafici 3D

159

5.21 Costruzione di uninterfaccia

161

Capitolo 6 : Programma realizzato D-FEM

165

6.1 Premessa

165

6.2 Avvio e struttura del programma

166

Indice

VI

6.3 Creazione di un nuovo progetto

167

6.3.1

Realizzazione del modello strutturale dallopzione Vuoto

167

6.3.2

Realizzazione del modello dallopzione Frame

169

6.3.3

Realizzazione del modello dallopzione Truss.

171

6.4 Modifica del modello strutturale.

172

6.5 Salvataggio dei progetti

175

6.6 Completamento della fase di preprocessor.

176

6.6.1

Assegnare i vincoli.

176

6.6.2

Assegnare le caratteristiche meccaniche.

178

6.6.3

Inserire le forze concentrate nodali.

179

6.6.4

Inserire i carichi distribuiti.

181

6.7 Propriet degli oggetti.

182

6.8 Impostazioni grafiche.

183

6.9 Barra dello zoom

186

6.10 Analisi del modello creato (solution).

187

6.11 Visualizzare i risultati (postprocessor).

192

6.11.1

Reazioni vincolari.

192

6.11.2

Deformata.

193

6.11.3

Diagrammi.

195

6.11.4

Animazione.

198

6.12 Esportazione in altri formati.

199

6.13 Esempi realizzati

206

6.13.1

Esempio 1: capriata polonceau

206

6.13.2

Esempio 2: telaio

210

Conclusioni

214

Obiettivo preposto.

214

Sviluppi possibili.

215

Bibliografia
Riferimenti bibliografici

216
216

Introduzione

Allingegneria strutturale si presenta oggi la possibilit, come non mai, di usufruire


di potenti mezzi di calcolo sia nellhardware che nel software.
Ai classici metodi strutturali collegati alla programmazione con limpiego di
compilatori quali Fortran, Basic etc., si affiancano altri associati a questi nuovi strumenti
che la moderna scienza informatica rende facilmente disponibili.
Ambienti di programmazione come Mathematica, Matlab, Maple, Mathcad etc.,
consentono di agire in maniera simbolica e numerica sulle equazioni, con una facilit e
unamplificazione delle possibilit operative che appaiono sostanzialmente superiori a
quelle offerte dai mezzi informatici della prima generazione. La piattaforma offerta da
questi moderni ambienti di programmazione numerica e simbolica dunque un valido
forum di scambio culturale interdisciplinare e un potente mezzo espressivo per effettuare
calcoli con una rapidit operativa impensabile fino a pochissimi anni or sono.
In questo spazio di nuove possibilit si colloca la presente tesi di laurea con la quale
si intende applicare le possibilit offerte dal software Mathematica per la realizzazione di
un programma di calcolo strutturale, basato sul Metodo degli Elementi Finiti, capace di
risolvere strutture intelaiate (frame) o di tipo reticolare (truss).
Il programma realizzato stato strutturato nella maniera moderna di composizione di
un codice di calcolo agli elementi finiti. Le fasi informatiche elaborate sono:

Introduzione

VIII

uninterfaccia grafica che renda agevole linserimento dei dati necessari alla
realizzazione del modello strutturale da risolvere (preprocessor);

un algoritmo necessario alla risoluzione analitica del problema (solution);

uninterfaccia che consenta unimmediata valutazione dei risultati dellanalisi


attraverso la visualizzare delle reazioni vincolari, dei diagrammi delle sollecitazioni
e della linea elastica (postprocessor).
Tra i vari metodi di analisi strutturale si scelto il FEM (Metodo degli Elementi

Finiti) perch tra tutti quello che meglio si presta ad essere automatizzato. Questo metodo
elabora un elemento alla volta generando una matrice di rigidezza per ognuno di essi,
quindi, con una semplice procedura si pu ripetere lanalisi per ogni elemento. Alla fine si
procede allassemblaggio delle varie matrici di rigidezza, attraverso degli operatori di
connessione, fino a costruire la matrice di rigidezza globale della struttura non vincolata.
Applicando a questa matrice loperatore di contrazione che tiene conto dei vincoli esterni
si ottiene la vera matrice di rigidezza della struttura vincolata che ci consente di risolvere
lintera struttura.

Capitolo 1 : Il modello di trave

1.1 Premessa
Gran parte delle costruzioni connesse alle principali applicazioni dellArchitettura e
dellIngegneria sono modellabili come un insieme di travi ed di fondamentale importanza
la determinazione degli spostamenti e delle deformazioni che nascono nel complesso
strutturale, s da poterne attestare, oltre alla resistenza, anche la funzionalit.
Le costruzioni infatti, pur avendo la capacit di resistere alle sollecitazioni per le
quali sono state progettate, a causa di valori eccessivi di qualche spostamento o
deformazione potrebbero risultare non funzionali, o addirittura andare fuori uso.
La ricerca degli spostamenti e delle deformazioni delle strutture composte da travi
elastiche non un problema facilmente risolvibile in condizioni del tutto generali, diventa
invece accessibile sotto lipotesi semplificatrice di linearizzazione delle equazioni, in
ambito elastostatico, e cio in presenza di trascurabili velocit e accelerazioni della
risposta. Il modello linearizzato qui introdotto prevede lassunzione delle seguenti ipotesi:
Materiale linearmente elastico
Piccoli spostamenti e piccole deformazioni
Vincoli lisci e bilateri
Carichi conservativi.

Capitolo 1: Il modello di trave

In tale contesto lobiettivo principale quello di dedurre la soluzione cinematica del


problema costituita essenzialmente dal campo di spostamento, noto lo spostamento si
possono poi agevolmente dedurre gli altri campi incogniti connessi, quali rotazioni,
deformazioni e sollecitazioni generalizzate.
I dati del problema sono quelli della formulazione diretta del problema strutturale: la
geometria della struttura e le sezioni della travi, i vincoli, il legame costitutivo del
materiale, i carichi e gli altri agenti sollecitativi quali distorsioni e cedimenti.
In Scienza delle Costruzioni si fa prevalente riferimento a due modelli di trave: il
modello di Eulero-Bernoulli e il modello di Timoshenko, questultimo sulla base del primo
introduce il contributo di deformabilit tagliante.

1.2 Modello della trave di Eulero-Bernoulli


Il modello di trave inflessa, noto anche come modello di trave di Eulero-Bernoulli, si
basa su due ipotesi: la prima quella di conservazione delle sezioni piane, per cui le
sezioni rette della trave rimangono piane anche a deformazione avvenuta; la seconda
quella di assenza di scorrimenti nella trave, per cui le sezioni rette, a deformazione
avvenuta, rimangono ortogonali allasse deformato. In conseguenza di tale ipotesi la
cinematica della trave di Eulero-Bernoulli descritta mediante il campo di spostamenti
w(z) e v(z), cio solo in funzione della configurazione deformata assunta dalla linea dasse:
si parla in tal caso di linea elastica. Infatti, la rotazione ( z ) della sezione retta data da

=
arctg v ' =
v '

(1.1)

Capitolo 1: Il modello di trave

Figura 1.1: Cinematica del modello di Eulero-Bernoulli.

Figura 1.2: Relazione tra spostamento trasversale e rotazione nel modello di Eulero-Bernoulli

Nellipotesi di piccoli spostamenti, che si adotter costantemente nel seguito, si ha

= v , mentre la curvatura e la deformazione estensionale a della trave sono legate


alle funzioni w(z) e v(z) dalle note relazioni deformazioni generalizzate-spostamenti:

= v ''

a = w'

(1.2)

Accoppiando le relazioni (1.2), che descrivono la cinematica del modello, alle


equazioni indefinite di equilibrio e, facendo lipotesi di comportamento elastico lineare, si
giunge alle equazioni differenziali della linea elastica:

Capitolo 1: Il modello di trave

4
EI v IV = q y

EA w '' = qz

(1.3)

avendo indicato con qy e qz i carichi distribuiti trasversali ed assiali.


Si nota che nel modello di Eulero-Bernoulli il taglio non produce deformazioni e
assume solo un ruolo di equilibrio.
Per comprendere il modello di trave di E-B con chiarezza e in modo sintetico si
individuano i seguenti passi:
1) il modello degli spostamenti, visto sopra:
v( z ) , ( z ) , w( z )

quindi abbassamento, rotazione della sezione (positiva se antioraria)

(1.4)
e spostamento

secondo lasse della trave.


2) Modello di deformazione:

( z) , ( z)

(1.5)

ossia curvatura e deformazione assiale, in pratica i parametri duali delle caratteristiche


della sollecitazione M ( z ) , N ( z ) .
3) A questo punto occorrono le relazioni fra le caratteristiche di spostamento e quelle di
deformazione (in pratica le analoghe delle relazioni che fanno passare, nel continuo
3D, dal campo di spostamento al tensore della deformazione) che partendo dalla (1.1)
che il fondamento cinematico del modello di E-B in cui il campo di spostamento
trasversale indipendente unico, danno luogo a:

(=
z)

4) Carichi esterni

d
dw
= ' ( z ) , (=
z ) = w '( z )
dz
dz

(1.6)

Capitolo 1: Il modello di trave

5
qy ( z) ,

qz ( z )

(1.7)

cio carichi distribuiti verticali (positivi verso il basso) e carichi distribuiti assiali.
Naturalmente vanno aggiunti gli enti concentrati forza attivi e reattivi: forze assiali o
trasversali concentrate e coppie concentrate. Si evidenzia che in questo modello non
rientrano le coppie distribuite se non in un modo artefatto.
5) Caratteristiche della sollecitazione interna:
M ( z) , T ( z) , N ( z)

(1.8)

6) Equazioni indefinite di equilibrio per travi rettilinee o a debole curvatura:


M x =
Ty , Ty =
q y , N =
qz

(1.9)

7) Legame costitutivo
M K=
N K
=
,

(1.10)

Dove
=
K EI
=
, K EA rappresentano, la rigidezza flessionale e assiale della trave.

Le incognite totali sono:

v( z ) , w( z )
( z) , ( z)
M ( z) , N ( z)

in numero di 6.

Le equazioni indipendenti sono le (1.6), (1.9) e (1.10) in numero di 6 in totale.


Quindi il problema della trave di Eulero-Bernoulli matematicamente ben posto ovvero
sussiste lesistenza, lunicit e la regolarit della soluzione stessa.
A questo punto combinando le relazioni descritte nei punti (17) si perviene
rapidamente alle equazioni differenziali della linea elastica della trave. Ne saranno
naturalmente due poich sono due le funzioni spostamento incognite rappresentate dal
vettore (1.4).
I passi da compiere sono molto intuitivi e consistono nellutilizzare le (1.6) nelle
(1.10):

Capitolo 1: Il modello di trave

M = K ( z )

(1.11)

N = K w

Le (1.11) nel caso delle strutture isostatiche, in cui si possono individuare le


caratteristiche della sollecitazione senza portarsi dietro delle incognite iperstatiche,
rappresentano le equazioni differenziali della linea elastica. E si nota come il problema
assiale disaccoppiato dal flettente.
Nel caso di strutture iperstatiche sono presenti le incognite iperstatiche e quindi le
precedenti non sono utili per la determinazione del campo di spostamento generalizzato
(1.4).
Per dedurre le equazioni differenziali complete del modello di Eulero-Bernoulli basta
considerare le (1.11) e le (1.9). Precisamente si derivano le (1.11) e si sostituiscono nelle
(1.9):
=
M

K ( z ) )
(=

N = ( K w ) = qo

(1.12)

derivando ancora M rispetto a z si ottiene:

( K ( z ) ) + q

=
0

0
( K w) + qz =

(1.13)

che rappresentano le equazioni differenziali del problema elastico nel modello di


trave di Eulero-Bernoulli nel caso di rigidezze variabili.
Nel caso in cui le rigidezze siano costanti totalmente o a tratti, si ha:

K ( z ) + q y =
0
K w + qz =
0
cio
K v IV = q y

K w '' = qz

(1.14)

Capitolo 1: Il modello di trave

che sono le equazioni differenziali del problema elastico nel modello di trave di EuleroBernoulli nel caso di rigidezze costanti.
Il modello di Eulero-Bernoulli, pi approssimato e analiticamente pi semplice del
modello di Timoshenko, per gli usuali problemi dellingegneria civile risulta
sufficientemente accurato ed quindi preferito al modello di Timoshenko per la sua
maggiore semplicit di formulazione e duso.

1.3 Modello della trave di Timoshenko


In questo paragrafo si vuole esaminare il modello della trave di Timoshenko a debole
curvatura. Si riportano i tratti salienti in modo da comprendere il fenomeno con chiarezza
pervenendo nel modo pi sintetico possibile alle equazioni risolutrici. In altre parole si
individua:

1) il modello degli spostamenti,


2) le deformazioni duali delle caratteristiche della sollecitazione interna
(deformazioni generalizzate),
3) le relazioni fra queste quantit (equazioni di congruenza o di compatibilit),
4) carichi esterni,
5) caratteristiche della sollecitazione interna (sforzi generalizzati),
6) equazioni indefinite di equilibrio che collegano le due precedenti entit,
7) legame costitutivo che lega analiticamente lo stato di sforzo a quello di
deformazione [relazioni fra le quantit 2) e 3)].
Lipotesi fondamentale della teoria della trave di Timoshenko che la sezione
rimane piana e non necessariamente ortogonale alla tangente alla linea media della trave.

Capitolo 1: Il modello di trave

La rotazione della sezione espressa dalla funzione ( z ) che diversa dalla rotazione
della retta tangente alla deformata dellasse della trave. Introducendo lulteriore quantit

( z ) - che rappresenta lo scorrimento medio del taglio (energeticamente duale), si ha che


vale la seguente relazione di compatibilit cinematica chiarita nella figura seguente e che
mostra il legame fra i tre parametri:

= + v

(1.15)

si pone in evidenza che: a) la rotazione positiva se antioraria, b) se la funzione v


strettamente decrescente ( v < 0 ) la quantit v positiva, c) lo scorrimento fra due
direzioni positivo (secondo la definizione della cinematica dei continui deformabili)
quando langolo fra le due direzioni diminuisce, che si traduce, nel modello di trave alla
condizione che > 0 se antioraria la rotazione della normale alla sezione rispetto alla
retta tangente alla linea elastica, come mostrato in figura dove si riporta anche la
condizione geometrica che lo scorrimento > 0 antiorario rispetto alla normale alla linea
elastica della trave (normale che rappresenta la deformazione della sezione alla EuleroBernoulli):
Convenzione del segno della deformazione (media) da taglio
(scorrimento) secondo la convenzione della trave di Timoshenko

>0

T>0

>0
dz

dz

Visualizzazione geomerica dello scorrimento


1) modo: angolo tra la normale alla retta
tangente e la posizione finale della sezione;
2) modo: angolo fra la tangente e la normale
alla sezione.
Tale angolo, nella convenzione della trave di
Timoshenko, positivo se antiorario.

Figura 1.3: (a) Convenzione dello scorrimento g come cinematica del continuo

= 0 f

( > 0 in

questo caso) ; (b) Convenzione dello scorrimento g come teoria della trave g > 0 (se antiorario langlo di
scorrimento; > 0 in questo caso).

Il modello geometrico di Timoshenko rappresentato geometricamente, alla luce


della convenzione dello scorrimento, nella figura seguente

Capitolo 1: Il modello di trave

Figura 1.4: =

0 f

( < 0 in questo caso come meccanica del continuo)

Figura 1.5. Cinematica del modello di Timoshenko [N.B. nella figura:

< 0, < 0, v ' < 0 ]

Si nota esplicitamente che nel modello di Eulero-Bernoulli non c scorrimento


( = 0 ) ossia si considera nulla la deformazione al taglio (rigidezza al taglio della trave
ipotizzata infinita) e quindi = v . Nel modello di Timoshenko invece si ha: v e la
normale alla sezione deformata rappresenta lo scorrimento che, nella teoria della trave,
assunto positivo se antiorario. In ogni caso questa considerazione si pu evincere dalle

Capitolo 1: Il modello di trave

10

discussioni seguenti rappresentando il concio elementare per il quale lo scorrimento


segue la convenzione anzidetta.
Alla precedente relazione si perviene anche considerando gli spostamenti dovuti a
e ossia alla deformazione flessionale e tagliante:
dz , dv =
dz
dv =

(1.16)

dv = dv + dv = dz + dz

(1.17)

dv dv + dv
=
= + = + v '
dz
dz

(1.18)

e quindi:

da cui:

La combinazione analitica di questi tre gruppi di elementi da luogo alla risoluzione


del problema elastico della trave di Timoshenko, nel senso che si perviene alle equazioni
differenziali che reggono il problema della trave con deformabilit a taglio, qui trattata nel
caso piano.
La figura seguente illustra i termini coinvolti nelle relazioni precedenti:

Figura 1.6: Termini coinvolti nella cinematica del modello di Timoshenko

A questo punto si pronti a entrare nelle relazioni espresse nei punti 17.

Capitolo 1: Il modello di trave

11

1) Modello di spostamento:
v( z ) , ( z ) , w( z )

(1.19)

quindi abbassamento, rotazione della sezione (positiva se antioraria) o della normale


alla sezione e spostamento secondo lasse della trave.
2) Modello di deformazione:

( z) , ( z) , ( z)

(1.20)

dunque curvatura, scorrimento medio, deformazione assiale in pratica i parametri


duali della caratteristiche della sollecitazione M ( z ) , T ( z ) , N ( z ) .
3) A questo punto occorrono le relazioni fra le caratteristiche di spostamento e quelle di
deformazione (in pratica le analoghe delle relazioni che fanno passare, nel continuo
3D, dal campo di spostamento al tensore della deformazione); in altre parole si
utilizzer la (1.19) insieme alla relazione che fornisce la curvatura come la derivata
della funzione rotazione della sezione:
d
dw
=
=
( z) =
( z ) , =
+ v , ( z ) =
w( z )
dz

dz

(1.21)

Si nota che nel caso del modello di Timoshenko in altre parole nel modello di trave
rappresentato dalle relazioni (1.19), (1.20), (1.21) non c il problema della
congruenza interna. Infatti assegnando gli spostamenti (1.19) si trovano univocamente
le deformazioni (1.20) e viceversa assegnando le (1.21) si trovano univocamente le
funzioni spostamento (1.19) a meno di costanti di integrazione da determinare con le
condizioni al contorno (mentre nel continuo 3D di Cauchy questo secondo passo non
possibile a meno che il campo di deformazione assegnato non rispetti le condizioni
implicite di congruenza costituite da 6 equazioni nelle derivate seconde delle
componenti della deformazioni).

Capitolo 1: Il modello di trave

12

4) Carichi esterni:
q ( z ) , m( z ) , qo ( z )

(1.22)

cio carichi distribuiti verticali (positivi verso il basso), coppie distribuite sulla trave
agenti nel piano della trave, carico distribuito assiale. Naturalmente vanno aggiunti gli
enti concentrati forza attivi e reattivi: forze assiali o trasversali concentrate e coppie
concentrate.
5) Caratteristiche della sollecitazione interna:
M ( z) , T ( z) , N ( z)

(1.23)

6) Equazioni indefinite di equilibrio per travi rettilinee o a debole curvatura:


T =
q , M =
T m , N =
qo

(1.24)

7) Legame costitutivo
=
M K=
K=
K
, T
, N

dove =
K EI , =
K GA
=
T

(1.25)

GA
K EA rappresentano, nellordine, la rigidezza
, =
t

flessionale, tagliante e assiale della trave. Si nota che per la rigidezza tagliante compare il
fattore di taglio t della sezione in quanto le tensioni tangenziali non hanno una
distribuzione costante nella sezione.

Le incognite totali sono:

v( z ) , ( z ) , w( z )
( z) , ( z) , ( z)
M ( z) , T ( z) , N ( z)

in numero di 9.

Le equazioni indipendenti sono le (1.21), (1.24) e (1.25) in numero di 9 in totale.


Quindi il problema della trave di Timoshenko ben posto secondo laccezione completa
matematica del termine in termini di esistenza, unicit e regolarit della soluzione del
problema dellequilibrio elastico rappresentato con completezza dalle equazioni da (1.19) a
(1.25).

Capitolo 1: Il modello di trave

13

A questo punto combinando le relazioni precedenti (1.19 1.25) si perviene


rapidamente alle equazioni differenziali della linea elastica della trave di Timoshenko. Ne
saranno naturalmente tre scalari poich sono tre le funzioni spostamento incognite
rappresentate dal vettore (1.19).
I passi da compiere sono molto intuitivi e consistono nellutilizzare le (1.21) nelle
(1.25):

M = K ( z )
=
T K ( + v )

(1.26)

N = K w
Le (1.26) nel caso delle strutture isostatiche, in cui si possono individuare le
caratteristiche della sollecitazione senza portarsi dietro delle incognite iperstatiche,
rappresentano le equazioni differenziali della linea elastica del modello di Timoshenko. E
si nota come il problema assiale disaccoppiato da quello tagliante e flettente, mentre la
rotazione della sezione e della tangente alla linea elastica sono accoppiati.
Nel caso di strutture iperstatiche sono presenti le incognite iperstatiche e quindi le le
(1.26) stesse non sono utili per la determinazione del campo di spostamento generalizzato
(1.19).
Per dedurre le equazioni differenziali complete del modello di Timoshenko basta
considerare le (1.26) e le (1.24). Precisamente si derivano le (1.26) e si sostituiscono nelle
(1.24):
M =

( K ( z ) )=

T m

q
T =
( K ( + v ) ) =
N = ( K w ) = qo

dalla prima delle precedenti T si elimina utilizzando la seconda delle (1.26):

(1.27)

Capitolo 1: Il modello di trave

14

M =

( K ( z ) )=

T m

q
T =
( K ( + v ) ) =

(1.28)

N = ( K w ) = qo

che rappresentano le equazioni differenziali del problema elastico nel modello di


trave di Timoshenko nel caso di rigidezze variabili. In esse si nota che il problema degli
spostamenti assiali disaccoppiato dal problema flettente e del taglio che invece sono
accoppiati.
Nel caso in cui le rigidezze siano costanti totalmente o a tratti, si ha:

K ( z ) + =
m K ( + v )
0
K ( + v ) + q =

(1.29)

0
K w + qo =
che sono le equazioni differenziali del problema elastico nel modello di trave di
Timoshenko nel caso di rigidezze costanti.
Una nota finale riguarda lingobbimento da deformazione da taglio. Sebbene la
media dellingobbimento sia nulla, come riportato nella sezione deformata alla
Timoshenko (sezione deformata piana), occorre riflettere sul fatto che tale condizione
risulta incongruente. Infatti le tensioni tangenziali sui due punti di estremo della sezione
sono nulle, per cui lo scorrimento deve essere nullo, mentre massimo sulla corda
baricentrica (ipotizzando che ivi la larghezza della trave sia stazionaria):

Capitolo 1: Il modello di trave

15

Figura 1.7: (a) Scorrimento medio; (b) Diagramma delle tensioni tangenziali; (c) Scorrimento reale.

La condizioni ai limiti si basano sulle relazioni precedenti e precisamente le (1.19),


(1.21) e (1.26).
1) In un estremo libero (ad esempio sezione A) nullo il taglio e il momento
flettente, quindi per le (1.26) si ha:
M =0 =0
T = 0 + v = 0

A
[e quindi non=
pi v 0=
e v 0 della trave di Eulero-Bernoulli].
2) In un appoggio di estremo (ad esempio sezione A) nullo labbassamento e il
momento flettente:
v=0
M =0 =0

Capitolo 1: Il modello di trave

16

3) In un estremo incastrato (ad esempio sezione A) nullo labbassamento e la


rotazione:
v=0
=0

4) In un appoggio intermedio con continuit della sezione della trave (ad esempio
sezione B) si ha:
vs ( B ) = 0
vd ( B ) = 0

s ( B ) = d ( B )
M s ( B ) = M d ( B ) ( EI )s = ( EI )d p r esez.a rig co. t.s s ( B ) = d ( B )

B
5) In un punto interno in cui applicata una forza concentrata verticale (ad esempio
sezione B):

vs ( B ) =
vd ( B )
s ( B ) =
d ( B )
M s ( B ) = M d ( B ) ( EI )s = ( EI )d p r esez.a rig co. t.s s ( B ) = d ( B )
Ts ( B ) Td ( B ) =
F ( GAt )s ( GAt )d =
F
[ GAt ( + v )] s [ GAt ( + v )] d =
F
per sez.a rig.cost. ( + v )s ( + v )d =
F / GAt

F
B

Capitolo 1: Il modello di trave

17

6) In un punto interno in cui applicata una coppia concentrata (ad esempio sezione
B):

vs ( B ) =
vd ( B )
s ( B ) =
d ( B )
M ( EI )s ( EI )d =
M
M s( B ) Md ( B ) =
M / EI
per sez.a rig.cost. s ( B ) d ( B ) =
Ts ( B ) = Td ( B ) ( GAt )s = ( GAt )d
[ GAt ( + v )]=
[ GAt ( + v )] d
s
per sez.a rig.cost. ( + v )s =( + v )d

M
B

1.4 Applicazioni
Si riportano due esercizi svolti con il software Mathematica, il primo risolto
utilizzando le equazioni fornite dal modello di Eulero-Bernoulli e il secondo utilizzando le
equazioni fornite dal modello di Timoshenko, nei quali si giunge alla soluzione risolvendo
il sistema di equazioni in modo simbolico-numerico e in un secondo momento inserendo i
dati numerici si ottengono i diagrammi delle sollecitazioni, delle rotazioni e degli
spostamenti.

Capitolo 1: Il modello di trave

1.4.1

18

Applicazione 1: trave Gerber, modello di Eulero-Bernoulli

Risoluzione di una trave Gerber con il metodo della linea elastica mediante
integrazione globale dell'equazione differenziale. Si considera un riferimento
variabile da tratto a tratto

Acciaio, Trave HE260M. Le misure sono in kN e m


EI = 2.1 108 31 310 10-8 ;
L1 = 4; L2 = 4; L3 = 4; L4 = 2; q1 = 12; q2 = 12; q3 = 12; q4 = 12;
Solution = FullSimplify@DSolve@8
v1 ''''@zD q1 EI,
v2 ''''@zD q2 EI,
v3 ''''@zD q3 EI,
v4 ''''@zD q4 EI,
v1@0D 0, v1 ''@0D 0,
v1@L1D == v2@0D, v1 ''@L1D 0, v2 ''@0D 0, v1 '''@L1D == v2 '''@0D,
v2@L2D 0, v3@0D == 0, v2 '@L2D v3 '@0D, v2 ''@L2D v3 ''@0D,
v3@L3D 0, v4@0D == 0, v3 '@L3D v4 '@0D, v3 ''@L3D v4 ''@0D,
v4 ''@L4D 0, v4 '''@L4D 0<,
8v1@zD, v2@zD, v3@zD, v4@zD<, zDD

99v1@zD 0.00754361 z - 0.0000608356 z3 + 7.60445 10-6 z4 ,


v2@zD 0.0282277 - 0.00851698 z + 0.0000608356 z3 + 7.60445 10-6 z4 ,
v3@zD 7.60445 10-6 H-4. + zL z H120. + H-18. + zL zL,

v4@zD 7.60445 10-6 z H3.75606 + zL H68.1565 + H-11.7561 + zL zL==


v1
v2
v3
v4

= FullSimplify@v1@zD .
= FullSimplify@v2@zD .
= FullSimplify@v3@zD .
= FullSimplify@v4@zD .

Solution@@1DDD
Solution@@1DDD
Solution@@1DDD
Solution@@1DDD

0.00754361 z - 0.0000608356 z3 + 7.60445 10-6 z4


0.0282277 - 0.00851698 z + 0.0000608356 z3 + 7.60445 10-6 z4
7.60445 10-6 H-4. + zL z H120. + H-18. + zL zL
7.60445 10-6 z H3.75606 + zL H68.1565 + H-11.7561 + zL zL

Capitolo 1: Il modello di trave

rotazione
j1
j2
j3
j4

= -FullSimplify@z v1D;
= -FullSimplify@z v2D;
= -FullSimplify@z v3D;
= -FullSimplify@z v4D;

Curvatura
1
2
3
4

= -FullSimplify@z,z v1D;
= -FullSimplify@z,z v2D;
= -FullSimplify@z,z v3D;
= -FullSimplify@z,z v4D;

Caratteristiche della sollecitazione interna


M1 = EI 1;
M2 = EI 2;
M3 = EI 3;
M4 = EI 4;
T1 = z M1; T2 = z M2; T3 = z M3; T4 = z M4;

Valori del momento interno nei punti notevoli per calcolare il diagramma del
momento flettente
MA = FullSimplify@M1 . z 0D
MB = FullSimplify@M1 . z L1D
MBprova = FullSimplify@M2 . z 0D
MC = FullSimplify@M2 . z L2D
MCprova = FullSimplify@M3 . z 0D
MD = FullSimplify@M3 . z L3D
MDprova = FullSimplify@M4 . z 0D
ME = FullSimplify@M4 . z L4D

0
0.
0
-192.
-192.
-24.
-24.
2.13163 10-14

19

Capitolo 1: Il modello di trave

Valori del taglio nei punti notevoli per calcolare il diagramma del taglio
TA = FullSimplify@T1 . z 0D
TB = FullSimplify@T1 . z L1D
TBprova = FullSimplify@T2 . z 0D
TCs = FullSimplify@T2 . z L2D
TCd = FullSimplify@T3 . z 0D
TDs = FullSimplify@T3 . z L3D
TDd = FullSimplify@T4 . z 0D
TE = FullSimplify@M4 . z L4D
24.
-24.
-24.
-72.
66.
18.
24.
2.13163 10-14

Reazioni (positive verso il basso)


RAy = TA
RBys = TB
RCy = TCs - TCd
RDy = TDs - TDd
24.
-24.
-138.
-6.

20

Capitolo 1: Il modello di trave

Abbassamenti nei nodi

vA = FullSimplify@v1 . z 0D
vB = FullSimplify@v1 . z L1D
vBprova = FullSimplify@v2 . z 0D
vC = FullSimplify@v2 . z L2D
vCprova = FullSimplify@v3 . z 0D
vD = FullSimplify@v3 . z L3D
vDprova = FullSimplify@v4 . z 0D
vE = FullSimplify@v4 . z L4D
0
0.0282277
0.0282277
-8.67362 10-19
0
0.
0
0.00425849

Rotazioni nei nodi

jA = FullSimplify@j1 . z 0D
jBs = FullSimplify@j1 . z L1D
jBd = FullSimplify@j2 . z 0D
jC = FullSimplify@j2 . z L2D
jCprova = FullSimplify@j3 . z 0D
jD = FullSimplify@j3 . z L3D
jDprova = FullSimplify@j4 . z 0D
jE = FullSimplify@j4 . z L4D
-0.00754361
-0.00657024
0.00851698
0.00365013
0.00365013
-0.00194674
-0.00194674
-0.00219008

21

Capitolo 1: Il modello di trave

22

Pv1 = Plot@-v1, 8z, 0, L1<D;


Pv2 = Plot@-v2 . z H - L1L, 8, L1, L1 + L2<D;
Pv3 = Plot@-v3 . z H - L1 - L2L, 8, L1 + L2, L1 + L2 + L3<D;
Pv4 = Plot@-v4 . z H - L1 - L2 - L3L, 8, L1 + L2 + L3, L1 + L2 + L3 + L4<D;
Show@Pv1, Pv2, Pv3, Pv4, PlotRange -> 8-0.05, 0.05<D

0.04

0.02

10

12

14

-0.02

-0.04

Pj1 = Plot@j1, 8z, 0, L1<D;


Pj2 = Plot@j2 . z H - L1L, 8, L1, L1 + L2<D;
Pj3 = Plot@j3 . z H - L1 - L2L, 8, L1 + L2, L1 + L2 + L3<D;
Pj4 = Plot@j4 . z H - L1 - L2 - L3L, 8, L1 + L2 + L3, L1 + L2 + L3 + L4<D;
Show@Pj1, Pj2, Pj3, Pj4, PlotRange -> 8-0.01, 0.01<D
0.010

0.005

0.000

-0.005

2
-0.010

10

12

14

Capitolo 1: Il modello di trave

23

PM1 = Plot@-M1, 8z, 0, L1<D;


PM2 = Plot@-M2 . z H - L1L, 8, L1, L1 + L2<D;
PM3 = Plot@-M3 . z H - L1 - L2L, 8, L1 + L2, L1 + L2 + L3<D;
PM4 = Plot@-M4 . z H - L1 - L2 - L3L, 8, L1 + L2 + L3, L1 + L2 + L3 + L4<D;
Show@PM1, PM2, PM3, PM4, PlotRange -> 8-50, 250<D
250

200

150

100

50

10

12

14

-50

PT1 = Plot@-T1, 8z, 0, L1<D;


PT2 = Plot@-T2 . z H - L1L, 8, L1, L1 + L2<D;
PT3 = Plot@-T3 . z H - L1 - L2L, 8, L1 + L2, L1 + L2 + L3<D;
PT4 = Plot@-T4 . z H - L1 - L2 - L3L, 8, L1 + L2 + L3, L1 + L2 + L3 + L4<D;
Show@PT1, PT2, PT3, PT4, PlotRange -> 8-100, 100<D
100

50

-50

-100

10

12

14

Capitolo 1: Il modello di trave

1.4.2

24

Applicazione 2: trave continua, modello di Timoshenko

Trave continua risolta con il modello di trave di Timoshenko

m
q
A

z1

v1

z2

v2
L

Equazioni differenziali della linea elastica


sistema =
FullSimplifyADSolveA9
Kc j1''@zD - m Kg Ij1@zD + v1'@zDM,
Kg Ij1 '@zD + v1''@zDM + q 0,
Kc j2''@zD - m Kg Ij2@zD + v2'@zDM,
Kg Ij2 '@zD + v2''@zDM + q 0,
v1A0E 0,
j1A0E 0,
v1@LD 0,
v2A0E 0,
j1@LD j2A0E,
j1'@LD j2'A0E,
j2@LD 0,
j2@LD + v2'@LD 0=,
8v1@zD, j1@zD, v2'@zD, j2@zD<, zEE;

Spostamenti (v1, v2)


v1 = FullSimplifyAv1@zD . sistemaE
9 IHL zL z I288 K2 q 24 K K I8 L m + L2 q + 4 m z + L q z q z2 M +

K2 L2 z H12 m + q HL + 5 zLLMM I24 K K I24 K + 5 K L2 MM=

Capitolo 1: Il modello di trave

25

v2 = FullSimplify@v2@zD . sistema D
:

1
24 K K I24 K + 5 K L2 M
z I288 K2 q H2 L zL + 24 K K I4 L2 H3 m + 2 L qL 4 Hm + L qL z2 + q z3 M +
K2 L2 I6 L2 H2 m + L qL + L H24 m + 17 L qL z 20 Hm + L qL z2 + 5 q z3 MM>

Rotazioni (j1, j2)


j1 = FullSimplify@j1@zD . sistema D
:

1
12 K I24 K + 5 K L2 M

z I12 K IL H24 m + 5 L qL 6 H2 m + L qL z + 4 q z2 M +

K L2 IL2 q + 6 L H2 m + q zL 2 z H9 m + 5 q zLMM>
j2 = FullSimplify@j2@zD . sistema D
:

1
12 K I24 K + 5 K L2 M

HL zL IK L2 I6 L m + 3 L2 q + 30 m z + 20 L q z 10 q z2 M +

12 K I12 L m + 3 L2 q + 12 m z + 8 L q z 4 q z2 MM>

Momento flettente (M1, M2)


M1 = FullSimplify@Kc * z j1D
:

1
288 K + 60 K L2

I12 K IL H24 m + 5 L qL 12 H2 m + L qL z + 12 q z2 M +

K L2 IL2 q + 12 L Hm + q zL 6 z H6 m + 5 q zLMM>
M2 = FullSimplify@Kc * z j2D
:

L2 H60 K q + K L H24 m + 17 L qLL


288 K + 60 K

L2

+ Hm + L qL z

Taglio (T1, T2)


T1 = FullSimplify@Kc * Hj1 + z v1LD
:

K IK L2 H8 m + q HL 5 zLL + 12 K q HL 2 zLM
K I24 K + 5 K L2 M

T2 = FullSimplify@Kc * Hj2 + z v2LD


:

K q HL zL
K

>

>

q z2
2

>

Capitolo 1: Il modello di trave

26

Dati
L = 500;
Elas = 2 * H 10^ 6L;
G = 8.695 * H10 ^5L;
b = 30; h = 60;
A = b * h;

Inerzia = NB

b * Hh ^3L
12

F;

t = 1.2;
q = 80;
Kc = N@Elas * InerziaD;
N@G * AD;
m = 30;
Kg = N@G * A * tD;

Diagramma degli spostamenti e relativi valori


Plot1 = Plot @-v1, 8z, 0, L<D;
Plot2 = Plot @-v2, 8z, 0, L<D;
z = f - 500;
Plot2 = Plot @-v2, 8f, 0 + 500, L + 500<D;
Show@8Plot1, Plot2<, PlotRange 880, 1200 <, 80.4, 0.05 <<D

200

400

-0.1

-0.2

-0.3

-0.4

Clear @zD;
vA@z1_D := -v1 . z z1;
vA @0D
8 0<
vBsx@z1_D := -v1 . z z1;
vBsx @300D
80.0213903 <
vBdx@z1_D := -v2 . z z1;
vBdx @0D
8 0<

600

800

1000

1200

Capitolo 1: Il modello di trave

27

vC@z1_D := -v2 . z z1;


vC@500D
80.316333 <

Diagramma delle rotazioni e relativi valori


Plot3 = Plot@j1, 8z, 0, L<D;
z = f - 500;

Plot4 = Plot @j2, 8f, 500, L + 500<D;


Show@8Plot3, Plot4<, PlotRange 880, 1200 <, 8 0.001, 0.0005 <<D

0.0004
0.0002

200

400

600

800

-0.0002
-0.0004
-0.0006
-0.0008
-0.0010

Clear @zD;
jA = j1 . z 0
8 0<

jBsx = j1 . z L
80.000471271 <

jBdx = j2 . z 0
80.000471271 <

jC = j2 . z L
8 0<

Diagramma del momento flettente e relativi valori


Plot5 = Plot @-M1, 8z, 0, L<D;
z = f L;
Plot6 = Plot @-M2, 8f, L, L + L<D;

1000

1200

Capitolo 1: Il modello di trave

28

Show@8Plot5, Plot6<, PlotRange 880, 1200 <, 85 000 000, 6 000 000 <<D
6. 106

4. 106

2. 106

200

400

600

800

1000

1200

-2. 106

-4. 106

Clear @zD;
MA = -M1 . z 0
8286 996. <

MBsx = -M1 . z L
95.65622 106 =

MBdx = -M2 . z 0
95.65622 106 =

MC = -M2 . z L
94.35878 106 =

Diagramma del taglio e relativi valori


Plot7 = Plot @T1, 8z, 0, L<D;
z = f L;
Plot8 = Plot @T2, 8f, L, L + L<D;
Show@8Plot7, Plot8<, PlotRange 880, 1200 <, 850 000 000, 50 000 000 <<D

4. 107

2. 107

200

-2. 107

-4. 107

Clear @zD;

400

600

800

1000

1200

Capitolo 1: Il modello di trave

TA = T1 . z 0
94.6484 106 =

TBsx = T1 . z L
91.83533 10 =
7

TBdx = T2 . z 0
92.30017 10 =
7

TC = T2 . z L
8 0<

29

Capitolo 2 : Il metodo di Ritz-Rayleigh

2.1 Premessa
Si suppongano note le conoscenze basilari relative alla meccanica dei continui,
secondo la trattazione di Cauchy. Viene di seguito brevemente richiamata la definizione
dei tensori di sforzo e di deformazione.
Si fissi nello spazio una terna dassi levogira di riferimento ( x, y, z ) , di versori

T
normali i, j , k . Sia [u ] = [u , v, w] la funzione descrivente il campo di spostamenti,

supposto infinitesimo, del mezzo continuo V considerato.


Sia E il tensore doppio descrivente il campo di deformazioni infinitesime del corpo,
detto anche tensore delle piccole deformazioni. Esso rappresenta la parte simmetrica del
gradiente di spostamento, ossia risulta:
E=

1
u + u T
2

In particolare, definita la dilatazione lungo li-esimo asse come i , e lo scorrimento


tra lasse i-esimo e quello j-esimo come ij , risulta che le componenti del tensore delle
deformazioni, hanno il seguente significato:

Capitolo 2: Il metodo di Ritz-Rayleigh

31
x

E = 12 yx
12 zx

xy
y
1
2 zy

1
2

1
2
1
2

xz

yz
z

Sia T il tensore, del secondo ordine, degli sforzi, che consente, fissata un giacitura di
versore normale n , di ottenere la tensione t su di essa agente come:
x xy xz nx

yx y yz n y
=
=
t Tn

zx zy z nz

in cui,

i , con i ( x, y, z ) , rappresenta la tensione normale agente sul piano

ortogonale allasse i, mentre ij , con ( i, j ) ( x, y, z ) ( x, y, z ) e i j , rappresenta la


tensione tangenziale in direzione j sul piano di normale i.
Sia il tensore delle deformazioni che quello degli sforzi sono stati richiamati in modo
astratto, prescindendo dalle relazioni che si instaurano, in un certo materiale, tra tensioni e
deformazioni. Alluopo, si introduce il concetto di legame costitutivo.
La descrizione matematica del comportamento macroscopico di diversi materiali, in
opportuni intervalli di deformazione e temperatura, conduce a determinate relazioni
coinvolgenti gli enti meccanici fin qui trattati, denominate equazioni, o meglio legami,
costitutivi. Per materiale ideale si intende un certo materiale il cui comportamento
idealmente descritto da un certo legame costitutivo. Generalmente si soliti accorpare
svariati materiali reali, che esibiscono comportamenti sperimentali simili, ed identificarli
con un materiale ideale, e quindi, assimilare i comportamenti reali con un comportamento
ideale descritto dal legame costitutivo. Ultima precisazione riguarda il fatto che il
comportamento di un materiale ideale locale, nel senso che il legame costitutivo ideale
risulta valido per un intorno del punto in esame, di dimensione infinitesima. Si pu, quindi,
affermare che il legame costitutivo un legame puntuale.

Capitolo 2: Il metodo di Ritz-Rayleigh

32

In particolare, molti materiali strutturali, per valori bassi delle tensioni, presentano un
legame tenso-deformativo pressoch lineare ed elastico. A partire da tale considerazione, e
supponendo nota al lettore la definizione di potenziale di un campo vettoriale, verr
introdotto il legame costitutivo che sostanzia i materiali linearmente iperelastici. Si fa
notare che un materiale a comportamento elastico lineare, per il quale esiste la funzione
potenziale elastico, si definisce materiale linearmente iperelastico.
Assunta lipotesi di iperelasticit lineare, sia il potenziale dello stato tensionale,
funzione dello stato deformativo, Esso consente di ottenere lo stato tensionale come:

ij =

ij

Affinch la precedente relazione fornisca una relazione lineare ed omogenea tra


tensioni e deformazioni necessario che il potenziale elastico del materiale, che parte
dallo stato naturale, sia quadratico nelle componenti di deformazione, ossia, risulti:
=

1
1
Cijhk ij hk
E :CE
=
2
2

dove , detto tensore delle costanti elastiche, un tensore del quarto ordine definito
da 81 costanti. La condizione di integrabilit di garantita dalle condizioni di Schwarz:
2
2
=
Cijhk
= Chkij
ij hk hk ij

che definiscono la propriet di simmetria m aggiore del tensore C . Inoltre, in virt


della simmetria dei tensori degli sforzi e delle deformazioni, si possono dedurre,
facilmente, altre relazioni sulle componenti del tensore delle costanti elastiche, che
costituiscono le cosiddette propriet di simmetria minore.
Si consideri la rappresentazione vettoriale dei tensori T ed E , ossia si supponga che
il campo deformativo e tensionale sia rappresentato dai seguenti vettori:

Capitolo 2: Il metodo di Ritz-Rayleigh

33

x

y

= z
xy
yz

xz

x

y

= z .
xy
yz

xz

Tale rappresentazione sostanziata dalla consistenza dellespressione dei rispettivi


prodotti interni:
T : E =
Lultima relazione consente di definire il potenziale come:
=

1
1
1
E=
: E
=
C

2
2
2

Si fa notare, brevemente, che C un tensore del secondo ordine, alla cui definizione
si pu giungere grazie alle propriet di simmetria maggiore e minore. In particolare, grazie
alle propriet di simmetria maggiore, esso risulter simmetrico.
In definitiva, grazie alle propriet di simmetria, possibile una rappresentazione pi
semplice del tensore delle costanti elastiche. In particolare si passa dal tensore del quarto
ordine, C , definito da 81 costanti, ad un tensore del secondo ordine, definito da 36 costanti
di cui 21 indipendenti. A questo punto il potenziale elastico pu essere espresso come:
1
=
2

Dal teorema dei lavori virtuali, in base al quale il lavoro esterno deve uguagliare
quello interno, si deduce che:

Capitolo 2: Il metodo di Ritz-Rayleigh

34

1
1
e
=
=
C > 0, 0 =
C 0
0
2
2

Dalle precedenti relazioni si deduce la positivit della matrice C. Conseguenza di ci


che gli autovalori di C sono reali e positivi, o che, equivalentemente, che tutti i minori
sono positivi. In particolare anche la matrice stessa avr determinante positivo, sicch sar
invertibile. Da tale considerazione si pu, in modo del tutto analogo, definire il potenziale
complementare, funzione dello stato tensionale e che fornisce per derivazione lo stato
deformativo. In particolare:
=
C

1
1
1
1
C

=
con
A
=
A
=
2
2
2

In elastostatica lineare i problemi di equilibrio elastico si pongono nella seguente


forma: si consideri il solido V connesso e omogeneo, costituito da materiale iperelastico
lineare, dotato di frontiera V sufficientemente regolare; sulla parte di frontiera vincolata,
Vu , siano assegnate le condizioni di vincolo per lo spostamento:

=
u ( x ) u ( x ) con x Vu
mentre, sulla parte di frontiera libere Vt , indicata anche con Sf, siano assegnate le forze di
superficie t ( x ) ; , inoltre, assegnato il campo delle forze di volume b = b ( x ) . Lobiettivo
consiste nel ricercare lincognito campo di spostamento, per ipotesi infinitesimo, dal quale
si deducono gli altri campi incogniti: deformazioni e sforzi.

2.2 Energia Potenziale Totale


Il funzionale:

( u ) = ( u ) dv t uds budv
V

Sf

Capitolo 2: Il metodo di Ritz-Rayleigh

35

operante nella classe degli spostamenti ammissibili, ossia verificanti le condizioni al


contorno e di congruenza con le deformazioni, definito funzionale dellenergia potenziale
totale. Per un materiale linearmente iperelastico si scrive:

=
( u)

C dv

1
2 V

Sf

t uds budv
V

Volendo esprimere il funzionale dellEPT per il modello trave, indicando con S la


struttura della stessa e con s lascissa curvilinea, risulta:
modello di Timoshenko
=
(u )

1
2

( EI
S

2 + GAt 2 + EA 2 ) ds q vds c ds
S

modello di Euler-Bernoulli
=
(u )

1
2

EI x ( v ) ds q vds
2

2.3 Teorema di minimo e di stazionariet dellenergia potenziale totale


Condizione necessaria e sufficiente affinch un campo di spostamento ammissibile

[uS ] , e di deformazione congruente ES , di un sistema elastico lineare, sia anche equilibrato


che lenergia potenziale totale ad essi associata sia ivi minima al variare di u ed E nello
spazio delle funzioni cinematicamente ammissibili.

2.4 Metodo di Ritz-Rayleigh


La ricerca del minimo del funzionale dellEPT conduce alla soluzione, in termini di
spostamento, del problema di equilibrio elastico. Tuttavia la ricerca della soluzione passa
attraverso la risoluzione di un sistema di equazioni differenziali. Per rendere utilizzabile
tale teorema da un punto di vista applicativo si esegue una semplificazione: si scrivono le
funzioni spostamento in funzione di un numero finito di parametri. Ossia, anzich

Capitolo 2: Il metodo di Ritz-Rayleigh

36

considerare linsieme totale delle funzioni ammissibili, si considera un insieme finitamente


generato, in cui si ricerca il campo di spostamenti soluzione, che per tanto, sar
unapprossimazione della reale soluzione del problema. La soluzione si ottiene
minimizzando il funzionale dellEPT, ormai diventato una funzione scalare di variabile
vettoriale (variabili indipendenti sono le lagrangiane del modello di Ritz-Rayleigh),
rispetto a tali parametri e ottenendo, in tal modo, la funzione spostamento. Ovviamente,
essa non coincider, a meno di casi particolari, con lesatto spostamento soluzione, ma
maggiore il numero dei parametri considerati e minore lerrore che viene commesso
rispetto alla soluzione esatta, che si ottiene ricercandolo nellinsieme di tutti i possibili
campi di spostamento ammissibili. Tale metodo va sotto il nome di Metodo di R itzRayleigh; esso molto importante perch, oltre ad essere il capostipite dei metodi di
risoluzione strutturale basati sullMEPT, ha come caso particolare il metodo degli elementi
finiti (FEM).
LEPT per il continuo tridimensionale si scrive:

=
( u)

C dv

1
2 V

t uds budv
V

in particolare, adottando una notazione di tipo matriciale, si ha:


([=
u ])

[ ] [C ][ ] dv - [t ] [u ] ds - [b] [u ] dv

1
2 V

Sf

(2.1)

Si discretizzi lo spazio delle funzioni spostamento [u ] come di seguito:

u ( x, y , z )

v ( x, y , z )
=
w ( x, y, z )

n u u

u0 ( x, y, z ) i =1 pi i ( x, y, z )

n v v

v0 ( x, y, z ) + i =1 pi i ( x, y, z )
w0 ( x, y, z ) n w w

i =1 pi i ( x, y, z )

(2.2)

dove il campo di spostamenti assunto quale sommatoria di un campo di


spostamento [u0 , v0 , w0 ] soddisfacente alle condizioni al contorno vincolato e di un campo

Capitolo 2: Il metodo di Ritz-Rayleigh

37

di spostamento omogeneo alla frontiera, ottenuto come combinazione lineare, mediante i


parametri piu , piv e piw , delle funzioni iu , iv , iw indipendenti. Quindi, il campo di
spostamento, per assunzione, verifica le condizioni vincolari alla frontiera del continuo.
Si supponga di rappresentare la combinazione lineare delle componenti dello
spostamento omogeneo alla frontiera nel seguente modo:

p1k
k
k
k
k p2
1 , 2 ,..., n=

...
k
pn

[ k ][ pk ] con k ( u,v,w )

La relazione precedente pu essere riscritta come:

u ( x, y , z )

x, y , z )
v (=
w ( x, y, z )

u0 ( x, y, z ) [ u ]1n [ pu ]n1


v
x
y
z
,
,
(
)
0

+ [ v ]1n [ pv ]n1
w0 ( x, y, z ) [ ] [ p ]
w 1n w n1

(2.3)

Con le precedenti posizioni non si fatto altro che sostituire allo spazio degli
spostamenti ammissibili, uno spazio di dimensione finita e pari alla numerosit dei
parametri utilizzati, quindi pari a 3n. La (2.3) pu essere riscritta nel seguente modo:
u ( x, y, z ) u0 ( x, y, z ) [ u ]



v ( x, y, z ) = v0 ( x, y, z ) + [ 0]
w ( x, y, z ) w0 ( x, y, z ) [ 0]

[ 0]

[0] [ pu ]
[ v ] [0] [ pv ] = [u0 ] + [ N ]33n [ p ]3n
[0] [ w ] 33n [ pw ] 3n1

(2.4)

in cui la matrice [ N ]33n raccoglie le funzioni generatrici dello spazio discretizzato, che
vengono fissate una volta per tutte, mentre il vettore

[ p ]3n1

raccoglie i parametri

combinatori dello spostamento generalizzato. Con le precedenti operazioni si fissato il


generico spostamento appartenente allo spazio H 3n (finitamente generato dai 3n parametri
contenuti nella matrice [ p ]3n1 ). Definito la spostamento come:

Capitolo 2: Il metodo di Ritz-Rayleigh

38

u ] [u0 ] + [ N ]33n [ p ]3n1


[=

(2.5)

rimane da fissare il campo deformativo, che pu essere ottenuto a partire dal generico
spostamento per il tramite delloperatore differenziale [ D ] :

=
[ ]

y
0

z
0

z
=
[ u ] [ ]
0


y

x 6 x 3

[ D ][u ]

Considerando la relazione (5), si ottiene

[ ] =
[ D ][u0 ] + [ D ][ N ][ p ] =
[ D ][u0 ] + [ B ][ p ]
in cui si posto

[ B ]61 = [ D ]63n [ N ]3n1 ,

che non rappresenta altro che una matrice

costituita da derivazioni applicate alle funzioni di forma.


Nel caso in cui fosse presente allinterno del dominio V un campo di distorsioni
d , tenendo presente che nellespressione dellenergia potenziale interviene solo il

termine relativo alla deformazione elastica, risulta necessario esprimere tale termine in
funzione dei rimanenti. In particolare la deformazione elastica la differenza della
deformazione totale e di quella anelastica:
e = [ ] - d

e quindi:

Capitolo 2: Il metodo di Ritz-Rayleigh

39

e = [ D ][u ] - d = [ D ][uo ] + [ D ][ N ][ p ] - d = [ o ] + [ B ][ p ]

(2.6)

dove si posto [ ] = [ D ][uo ] - d , quindi, il termine [ ] si pu immaginare che


contenga le deformazioni impresse al corpo sia dagli spostamenti di frontiera sia dalla
deformazione anelastica. Tenendo presente che la deformazione elastica ad intervenire
nella definizione dellEPT, attraverso il termine corrispondente allenergia potenziale
elastica:
T
1
e [C ] e dV

V
2

Si ha dunque:
n ([=
p ])
-

Sf

1
2 V

([ p] [ B] + [ ] ) [C ] ([ B][ p]+ [ ]) d VT

[t ] ([uo ] + [ N ][ p ]) dS - V [b] ([uo ] + [ N ][ p ]) dV


T

sviluppando, si ottiene:
1 T
1
1
T
T
T
T
[ p ] V [ B ] [C ][ B ] dV [ p ] + V [ p ] [ B ] [C ][ o ] dV + V [ o ] [C ][ B ][ p ] dV 2
2
2
1
T
T
T
T
T
- [t ] [ N ] dS [ p ] - [b ] [ N C
] dV [ pdV] - S f [t ] [uo ] dS - V [b] [uo ] dV + V [ o ] [ ][ o ]
S f

V
2
n ([ p ]=)

Da questultima relazione, tenendo presente la simmetria di [C ] e notando che:

[ p ] [B ] =
[C][ o ]C [ Bo ] p[ ][ ][ ]
T

si ricava lespressione finale discretizzata dellEPT in presenza delle distorsioni


provenienti dai cedimenti vincolari alla frontiera:

Capitolo 2: Il metodo di Ritz-Rayleigh

40

1 T
T
T
[ p ] V [ B ] [C ][ B ] dV [ p ] + V [ o ] [C ][ B ] dV [ p ] 2
T
T
- [t ] [ N ] dS [ p ] - [b ] [ N ] dV [ p ] S f

1
T
T
T
[t ] [uo ] dS - [b ] C[uo] dVdV+ [ o ] [ ][ o ]
Sf
V
V
2

n ([ p ]=)

(2.7)

Si nota che gli ultimi tre termini risultano essere delle costanti che nelle operazione
di derivazione successive si annullano. Di conseguenza, tenendo ci presente, si pu
sintetizzare la (2.7) come:
1 T
T
T
[ p ] V [ B ] [C ][ B ] dV [ p ] + V [ o ] [C ][ B ] dV [ p ] 2
T
T
- [t ] [ N ] dS [ p ] - [b ] [ N ] dV [ p ]
S f

n ([ p ]=)

(2.8)

Si pone:

[ B ] [C ][ B ] dV= [ K ] matrice di rigidezza generalizata ,


T

= [f]
[t ] [ N ] dS + [b] [ N ] dV
T

Sf

[ ] [C ][ B ] dV =
T

vettore forze generalizzate ,

f o vettore forze equivalenti ,

in cui lultimo termine corrisponde, in definitiva, a forze equivalenti alle distorsioni


vincolari impresse; con le precedenti posizioni la (2.8) diviene:
n([ p ])=

1 T
[ p ] [ K ][ p ] 2

([ f ] f )[ p]
T

(2.9)

da cui ponendo
f [f o] [ ][ ]
[F ] =
] [ N ] dV
S [t ] [ N ] dS C+ VB[bdV
V
T

=
[ ] o
T

si ricava:
n ([ p ])=

1 T
[ p ] [ K ][ p ] - [ F ][ p ]
2

(2.10)

Capitolo 2: Il metodo di Ritz-Rayleigh

41

A questo punto non rimane che minimizzare il funzionale dellEPT.


Ricordando che in ambito lineare lEPT ammette un unico punto di minimo e,
quindi, di stazionariet, rimane acquisito che condizione necessaria e sufficiente affinch
un punto [ o ] sia di minimo per il funzionale dellEPT che in esso sia nullo il gradiente,
ossia:
n ([ p ]) = [0 ] ,

che equivale alle seguenti condizioni:


n ([ p ])
pi

=0

i = 1, 2, ...3n ovvero

n ([ p ])
[ p]

= [0 ]

In particolare, minimizzando lEPT rispetto ai parametri oi si ottiene


n ([ p ]) =

[ K ][ p ] - [ F ] =

0 [ K ][ p ] =[ F ]

(2.11)

da cui, essendo la matrice di rigidezza invertibile poich definita positiva, si ricava la


soluzione in termini di spostamenti generalizzati:

[ p ] =K
[ ] [F ]
1

Ricavata ln-pla di parametri p i , componenti del vettore soluzione

(2.12)

[ p ] ,

si ricava

dalla (2.2) o dalla (2.3) il campo di spostamento soluzione; noto questultimo, dalla (2.6) si
ottiene il campo di deformazione e, attraverso la relazione [ ] = [C ][ ] si ricava lo stato
tensionale.
Alla generalit del metodo di Ritz-Rayleigh si accompagna la poca praticit dello
stesso rispetto al metodo particolare di cui genitore: il FEM. Tuttavia il metodo si presta
bene a essere applicato per strutture monodimensionali o bidimensionali; ma, per le
strutture tridimensionali lapplicazione del metodo di Ritz-Rayleigh problematica.

Capitolo 2: Il metodo di Ritz-Rayleigh

42

2.5 Applicazioni
2.5.1

Applicazione 1: telaio con carichi variabili risolto con il minimo dellEPT

Telaio soggetto a carichi variabili risolto con l'EPT

I PARAMETRI LAGRANGIANI SCELTI SONO LA ROTAZIONE IN B E IN C: jB , jC .


Un carico generico sul tratto verticale (cosinoidale) e anche su quello orizzontale
(parabolico):
In[1]:=

In[2]:=

A1 = DSolve@8v1 ''''@z1D Hq0 + q1 Cos@ z1 LDL EI,


v1@0D 0, v1 '@0D 0, v1@HD 0, -v1 '@HD jB <, v1@z1D, z1D;

v1 = FullSimplify@v1@z1D . A1@@1DDD
1

Out[2]=

24 EI H3 4

HH - z1L2 I-24 H L4 q1 - 48 L4 q1 z1 + H3 4 q0 z12 M +

24 L3 q1 L z12 H-3 H + 2 z1L CosB

H
L

F + H3 L CosB

z1
L

F + H z12 H-H + z1L SinB

24 EI H 4 HH - z1L z12 jB
In[3]:=

A2 = DSolve@8v2 ''''@z2D Hq0 + q1 + Hz2 100L ^ 2L EI,


v2@0D 0, -v2 '@0D jB , -v2 '@LD jC , v2@LD 0<, v2@z2D, z2D;

H
L

F +

Capitolo 2: Il metodo di Ritz-Rayleigh

In[4]:=

v2 = FullSimplify@v2@z2D . A2@@1DDD
1

Out[4]=

43

3 600 000 EI L2

HL - z2L z2

IL2 HL - z2L z2 I3 L2 + 150 000 Hq0 + q1L + 2 L z2 + z22 M - 3 600 000 EI HHL - z2L jB - z2 jC LM

derivata seconda funzione abbassamento


In[5]:=

d2v1 = FullSimplify@D@v1, 8z1, 2<DD


1

Out[5]=

H5 4 q0 + 72 H L4 q1 - 6 H4 4 q0 z1 - 144 L4 q1 z1 + 6 H3 4 q0 z12 -

12 EI H3 4
12 L2 q1 6 L2 HH - 2 z1L CosB

H
L

F + H H2 CosB

z1
L

F + 2 L HH - 3 z1L SinB

H
L

24 EI H 4 HH - 3 z1L jB
In[6]:=

d2v2 = FullSimplify@D@v2, 8z2, 2<DD


1

Out[6]=

600 000 EI L2

IL2 IL4 + 50 000 L2 Hq0 + q1L - 4 L3 z2 - 300 000 L Hq0 + q1L z2 +

5 z22 I60 000 Hq0 + q1L + z22 MM + 1 200 000 EI HH2 L - 3 z2L jB + HL - 3 z2L jC LM

Energia Potenziale Totale


Ept = FullSimplifyB1 2 EI Hd2v1L ^ 2 z1 + EI Hd2v2L ^ 2 z2 H

In[7]:=

Hq0 + q1 Cos@ z1 LDL v1 z1 + Hq0 + q1 + Hz2 100L ^ 2L v2 z2 F;


H

In[8]:=

jB Ept
1

Out[8]=

600 000 H2 L 4

L -50 000 H4 4 q0 + 3 600 000 L4 q1 + H2 L2 4 IL2 + 50 000 Hq0 + q1LM + 600 000
L2 q1 I-6 L2 + H2 2 M CosB

H
L

F - 4 H L SinB

2 400 000 EI H HH + LL 4 jB + 1 200 000 EI H2 4 jC


In[9]:=

I1 200 000 EI H2 4 jB +
600 000 H2 L 4
1 200 000 EI H2 4 jC + 2 H2 4 I-L3 IL2 + 25 000 Hq0 + q1LM + 600 000 EI jC MM

Stazionariet dell' Energia Potenziale Totale


In[10]:=

jC Ept
1

Out[9]=

equations = 8jB Ept 0, jC Ept 0<;

Risoluzione del problema


In[11]:=

solution = Solve@equations, 8jB , jC <D;

In[12]:=

v1sol = FullSimplify@v1 . solution@@1DDD;

In[13]:=

M1 = -EI FullSimplify@D@v1sol, 8z1, 2<DD;

Capitolo 2: Il metodo di Ritz-Rayleigh

In[14]:=

FullSimplify@M1 . z1 0D
H2 4 IL5 - 37 500 IH3 + 2 H2 L - L3 M q0M +

Out[14]=

In[15]:=

37 500 L2 I-24 L2 H3 H + 2 LL + 4 H2 H3 H + 4 LL 2 + H2 L 4 M q1 + 300 000 L3 q1


H
H
I9 H L + 6 L2 + H2 2 M CosB
I150 000 H2 H3 H + 4 LL 4 M
F + 3 H2 SinB
F
L
L

FullSimplify@M1 . z1 HD
1

Out[15]=

44

75 000 H H3 H + 4 LL 4

-18 750 H4 4 q0 + 1 350 000 L4 q1 - H L3 4 IL2 + 37 500 Hq0 + q1LM +

225 000 L2 q1 I-6 L2 + H2 2 M CosB

H
L

F - 4 H L SinB

In[16]:=

v2sol = FullSimplify@v2 . solution@@1DDD;

In[17]:=

M2 = -FullSimplify@EI D@v2sol, 8z2, 2<DD;

In[18]:=

FullSimplify@M2 . z2 0D
1

Out[18]=

75 000 H H3 H + 4 LL 4

Out[19]=

18 750 H4 4 q0 - 1 350 000 L4 q1 + H L3 4 IL2 + 37 500 Hq0 + q1LM +

225 000 L2 q1 I6 L2 - H2 2 M CosB

In[19]:=

FullSimplify@M2 . z2 LD

H
L

F + 4 H L SinB

H
L

Dati numerici
In[20]:=

In[25]:=
Out[25]=
In[26]:=
Out[26]=

H = 500;
L = 450;
EI = 5 10 ^ 9;
q0 = 12.5;
q1 = 6;
N@M1 . z1 HD
-425 558.
N@M2 . z2 0D
-425 558.

Carichi variabili
In[27]:=

caricot1 = q0 + q1 Cos@ z1 LD;

In[28]:=

caricot2 = q0 + q1 + Hz2 100L ^ 2;

Disegno elementi
In[29]:=

elementi = 8880, 0<, 80, H<<, 880, H<, 8L, H<<<;


incastro = 88-50, 0<, 850, 0<, 850, -30<, 8-50, -30<, 8-50, 0<<;
cerniera = 88L, H<, 8L + 30, H - 50<, 8L - 30, H - 50<, 8L, H<<;

Capitolo 2: Il metodo di Ritz-Rayleigh

Diagramma del carico


In[32]:=

scalacarichi = 4;
r = RotationTransform@Pi 2D;
carico1 = Table@r@8z1, caricot1 * scalacarichi<D, 8z1, 0, H, 10<D;
PrependTo@carico1, r@80, 0<DD;
AppendTo@carico1, r@8H, 0<DD;
t = TranslationTransform@80, H<D;
carico2 = Table@t@8z2, caricot2 * scalacarichi<D, 8z2, 0, L, 10<D;
PrependTo@carico2, t@80, 0<DD;
AppendTo@carico2, t@8L, 0<DD;

In[41]:=

Graphics@
88Red, Line@carico1D<, 8Red, Line@carico2D<, 8Line@8incastro, cerniera<D<,
8Blue, Thickness 0.01, Line@elementiD<<, AspectRatio 1D

Out[41]=

Diagramma del Momento


In[42]:=

scalamom = 0.0001;
r = RotationTransform@Pi 2D;
mom11 = Table@r@8z1, -M1 * scalamom<D, 8z1, 0, H, 10<D;
PrependTo@mom11, r@80, 0<DD;
AppendTo@mom11, r@8H, 0<DD;
t = TranslationTransform@80, H<D;
mom2 = Table@t@8z2, -M2 * scalamom<D, 8z2, 0, L, 10<D;
PrependTo@mom2, t@80, 0<DD;
AppendTo@mom2, t@8L, 0<DD;

45

Capitolo 2: Il metodo di Ritz-Rayleigh

In[51]:=

Graphics@88Red, Line@mom11D<, 8Red, Line@mom2D<, 8Line@8incastro, cerniera<D<,


8Blue, Thickness 0.01, Line@elementiD<<, AspectRatio 1D

Out[51]=

Deformata
In[52]:=

scaladef = 100;
r = RotationTransform@Pi 2D;
defor1 = Table@r@8z1, -v1sol * scaladef<D, 8z1, 0, H, 10<D;
t = TranslationTransform@80, H<D;
defor2 = Table@t@8z2, -v2sol * scaladef<D, 8z2, 0, L, 10<D;

In[57]:=

Graphics@
88Red, Line@defor1D<, 8Red, Line@defor2D<, 8Line@8incastro, cerniera<D<,
8Blue, Thickness 0.01, Line@elementiD<<, AspectRatio 1D

Out[57]=

46

Capitolo 3 : Il metodo degli elementi finiti

3.1 Premessa
Il Metodo degli Elementi Finiti un caso particolare del metodo di Ritz-Rayleigh. Questa
precisazione non assolutamente un aspetto di minimizzazione del metodo, ma, esprime la
concretezza storica e filologica del metodo stesso.
Il metodo degli elementi finiti si ormai affermato quale strumento versatile per la
soluzione di problemi strutturali mediante il calcolo automatico. Questo metodo ha avuto
uno sviluppo rapidissimo, avvenuto di pari passo con la disponibilit crescente di
elaboratori digitali sempre pi potenti. Il metodo oggi sempre pi consolidato ed
entrato nella pratica professionale quotidiana dellingegnere.

3.2 Descrizione del Metodo


Suddivisa la struttura in elementi finiti cio in un numero finito di sottodomini (tetraedrici,
parallelepipedi nel 3D, triangolari o quadrangolari nel 2D) si considerano le funzioni
generatrici del campo di spostamento (ossia linsieme delle funzioni generatrici capace di
generare lo spazio completo in cui si individuano le soluzioni del problema meccanico in
forma differenziale): esse sono funzioni a supporto compatto definite sullinsieme degli
elementi finiti.

Capitolo 3: Il metodo degli elementi finiti

48

In altre parole, preso un elemento finito generico della struttura, le funzioni


generatrici relative ad esso sono funzioni diverse da zero sul dominio e nulle negli altri
elementi finiti. Pertanto, queste funzioni si possono far dipendere dagli spostamenti dei
punti nodali dellelemento finito. C anche un risvolto pratico: la soluzione del problema
fornisce un set discreto di spostamenti della struttura da cui, con lausilio delle funzioni
generatrici, dette funzioni di forma, si configura immediatamente la configurazione
deformata di tutto il sistema strutturale da studiare.
Si ha dunque, indicando con la lettera e il generico elemento finito, in modo
simbolico:
u e ( x, y,z )

elemento finito V e
v e ( x, y,z ) , dipendenti dagli spost. nodali ,
we ( x, y,z )

ed il fatto che le funzioni dipendano dagli spostamenti nodali dellelemento giustifica il


nome di elemento finito (si denota dunque non solo una topologia, ma anche una
dipendenza funzionale del campo di spostamento dai valori nodali locali) conferendogli
unautonomia da un punto di vista meccanico.
Il campo di spostamento di tutto il sistema determinato dallinsieme delle funzioni
di spostamento di tutti gli elementi:
u ( x, y,z )

v ( x, y,z ) ( x, y,z ) V=
w ( x, y,z )

u e ( x, y,z )

e
v ( x, y,z ) ( x, y,z ) V .
we ( x, y,z )

La congruenza interna al dominio V viene garantita imponendo che gli spostamenti


sulle frontiere di elementi contigui siano gli stessi. Tale scopo si raggiunge considerando le
medesime funzioni di forma per tutti gli elementi finiti. Poich gli spostamenti in Ve
dipendono dagli spostamenti nodali e, quindi, gli spostamenti su una frontiera a confine di
due elementi dipendono dagli spostamenti dei nodi che si trovano su questa frontiera di
separazione ne segue lasserto della congruenza interna.

Capitolo 3: Il metodo degli elementi finiti

49

La congruenza e sterna ottenuta imponendo che i nodi degli elementi di contorno


che giacciono sulla frontiera vincolata, Vu , assumano i valori assegnati. Questo,
naturalmente, impone che il sistema finale [ K ][u ] =[ f ] contenga in [u ] delle incognite e
delle parti note. Lo stesso vale per le forze.
LEPT del continuo V esprimibile come somma delle energie di deformazione dei
singoli elementi finiti:
=

(3.1)

e=1

Lenergia potenziale totale di ogni singolo elemento V e si pu scrivere in funzione


degli spostamenti definiti allinterno dellelemento finito stesso:
=
e

T
T
T
1
e C e e dV - e be u e dV - e t e u e dS
e

V
Sf
2 V

(3.2)

dove si inserito lapice e per mostrare la dipendenza delle funzioni dal singolo elemento
finito e.
Il campo di spostamento dellelemento finito e si pu discretizzare nel modo
seguente:
u e ( x, y,z ) = N e ( x, y,z ) U e

(3.3)

in particolare, tenendo presente le dimensioni delle matrici, si ha:

u e = N e e Ue e
3x1
3x3n
3n x1
In modo esplicito la precedente si scrive, per un elemento finito 3D a 4 nodi
(tetraedro):

Capitolo 3: Il metodo degli elementi finiti

u e ( x, y,z ) N1 ( x, y,z ) 0
e

0
N1
v ( x, y,z ) =
we ( x, y,z )
0
0

50

0
0
N1

N2
0
0

0
N2
0

0
0
N2

N3
0
0

0
N3
0

0
0
N3

N4
0
0

0
N4
0

u1
v
1
w1

u2
v
0 2
w
0 2
u
N 4 3
v3
w
3
u4

v4
w4

(3.4)

Naturalmente la dipendenza che si costruita del tipo:

u e ( x, y,z ) = N1 ( x, y,z ) u1 + N 2 ( x, y,z ) u2 + N 3 ( x, y,z ) u3 + N 4 ( x, y,z ) u4


v e ( x, y,z ) = N1 ( x, y,z ) v1 + N 2 ( x, y,z ) v2 + N 3 ( x, y,z ) v3 + N 4 ( x, y,z ) v4
we ( x, y,z ) = N1 ( x, y,z ) w1 + N 2 ( x, y,z ) w2 + N 3 ( x, y,z ) w3 + N 4 ( x, y,z ) w4

Ossia, la componente dello spostamento secondo una certa direzione in un punto


generico del continuo dipende dalle sole componenti degli spostamenti nodali secondo
quella direzione attraverso la combinazione di opportune funzioni che sono dette funzioni
di forma dellelemento finito.
Il campo di deformazione si ottiene come:
e = [ D ][u ] = [ D ] N e U e = B e U e

(3.5)

B e =D
[ ] N e

(3.6)

dove si pone:

essendo, nel caso del continuo tridimensionale, loperatore differenziale dato da:

Capitolo 3: Il metodo degli elementi finiti


0
y

z
=

xy
y
yz


zx 6x1 0

51

y
0

z
0

u
z

D u e
v =
0 w
3 x1

x 6 x 3

[ ][ ]

Lespressione definitiva della matrice [ B ] per un elemento spaziale tetraedrico :


N1

x
0

[ B ] =D
[ ][ N ] = N
1
y

N1

N1

N1

N1
x
N1
z
0

0
N1

N 2
x
0

0
N 2
y

N 2

N 2

x
N 2

y
N1

N 2

z
0

N 3
x
0

0
N 2
z
0

0
N 3
y

N 3

N 3

x
N 3

N 2

y
N 2

N 3

z
0

0
0
N 3
z
0
N 3

N 4
x
0

N 4

N 4

N 4

x
N 4

y
N 3

N 4

z
0

N 4
z

N 4

y
N 4

A partire dalla (2), considerando la (3), la (4) e la (5), si perviene allespressione


dellEPT per lelemento finito e:

( )

e [U=
]
e

1
e T
e T

C e B e U e dV U
B
e

V
2
T

t e N e U e dS - e be N e U e dV
V

Ponendo in evidenza il vettore degli spostamenti nodali U e si ottiene:

Capitolo 3: Il metodo degli elementi finiti

e U e =

52

1 e T
U
2

B e C e B e dV U e -

T
T
- e t e N e dS + e be N e dV U e
V
Sf

(3.7)

da cui, definendo la matrice di rigidezza dellelemento finito come:


T

K e = e B e C e B e dV
V

(3.8)

e, analogamente, definendo, il vettore delle forze dellelemento finito, come


T

f e = e t e N e dS + e be N e dV
Sf
V

(3.9)

risulta:
T
1 e T
U K e U e - f e U e .
e U e =
2

(3.10)

A questo punto, si rende necessario il passaggio dallelemento finito e-esimo


allintero continuo solido. In particolare, lenergia potenziale totale dellintero corpo
strutturale V si ottiene in modo molto semplice sommando le energie potenziali totali dei
singoli elementi finiti. Ovviamente, occorre che venga messa in gioco anche la
congruenza. Proprio le condizioni di congruenza sostanziano il passaggio dalle matrici di
rigidezza locali a quella globale. Ossia le matrici di rigidezza dei singoli elementi finiti
vanno a costituire, o meglio ad assemblare la matrice di rigidezza globale del solido. La
congruenza stabilisce che lo spostamento di un nodo lo stesso se appartiene ad un
elemento finito o ad un altro contiguo.
Si definisce dunque un vettore spostamento globale [U ] che raccoglie tutti i vettori
spostamenti dei nodi, non riportandoli in sequenza ma ordinandoli senza ripetizioni
naturalmente in un ordine di numerazione che dipende dalla numerazione globale dei nodi

Capitolo 3: Il metodo degli elementi finiti

53

della struttura. In particolare, il vettore degli spostamenti nodali di tutto il continuo


discretizzato :

[U ]3n1 .
A questo punto si pone il problema della connessione fra gli spostamenti nodali dei
singoli elementi finiti e quelli globali ordinati nel vettore sopra definito.
Si introduce una matrice di congruenza e (detta anche matrice di incidenza o
geometrica o booleana o di posizionamento) che collega gli spostamenti locali e globali:

U e e =
e e [U ]3n1 .
3n 1
3n 3n

(3.11)

Le matrici booleane e sono costituite da molti 0 e pochi 1, tali che la i-esima


riga contiene tutti 0 con lesclusione della j-esima colonna corrispondente alla coincidenza
fra U ie =U j , che posta pari ad 1. Ad esempio in una struttura 3D, discretizzata con
elementi finiti tetraedrici, ad un elemento finito (il 54 ad esempio) denotato coi nodi 102,
103, 104, 105 (che potrebbero anche non essere in questa sequenza strettamente
progressiva) la struttura della matrice booleana dellelemento finito (102, 103, 104, 105
denotato con il numero di EF 54) :

u1(54)
0
(54)
0
v1

w(54)
0
1

u2(54)
0
(54)
v
0
2

(54)
w
2 = 0
0
u (54)

3
0
v3(54)
0
(54)

w3
0
(54)

u4
0
v(54)
0
4
w4(54) 12x1

. .1 . 0 0 0 0 0 0 0 0 0 0 0 .
. .0 . 1 0 0 0 0 0 0 0 0 0 0 .
. .0 . 0 1 0 0 0 0 0 0 0 0 0 .
. .0 . 0 0 1 0 0 0 0 0 0 0 0 .
. .0 . 0 0 0 1 0 0 0 0 0 0 0 .
. .0 . 0 0 0 0 1 0 0 0 0 0 0 .
. .0 . 0 0 0 0 0 1 0 0 0 0 0 .
. .0 . 0 0 0 0 0 0 1 0 0 0 0 .
. .0 . 0 0 0 0 0 0 0 1 0 0 0 .
. .0 . 0 0 0 0 0 0 0 0 1 0 0 .
. .0 . 0 0 0 0 0 0 0 0 0 1 0 .
. .0 . 0 0 0 0 0 0 0 0 0 0 1 .

u1
...

u102
. 0 .

. 0 .
v102
w
. 0 .
102

. 0 .
u103
v
. 0 .
103

w103
. 0 .

.0 .
u104

v
. 0 .
104

.0 .
w104

u
. 0 .
105

. 0 .
v105
. 0 .12x3n w105
...

w3n

Capitolo 3: Il metodo degli elementi finiti

54

dove la matrice che consente lassemblaggio degli spostamenti dellEF 54 negli


spostamenti nodali globali pu essere indicata con il simbolo:
)
( 54
,
(102,103,104,105 )

nella quale le colonne con valori diversi da 0 vanno dalla 102 alla 113, ossia sono
le colonne relative agli spostamenti nodali dei nodi 102, 103, 104, 105, che hanno ciascuno
tre gradi di libert.
Se la numerazione globale dei nodi dellelemento finito (non la numerazione locale
nellelemento finito) non sequenziale, come pu accadere pi plausibilmente del caso
precedente:

212

213

214

215

216

217

218

156

157

158

159

160

161

162

EF 52

EF 53

EF 54

EF 55

EF 56

EF 57

100

101

102

103

104

105

106

44

45

46

47

48

49

50

la matrice di connettivit per lelemento finito n 54, con i suoi nodi locali 1, 2, 3, 4
nodi globali 102, 103, 158, 159, diventa:

Capitolo 3: Il metodo degli elementi finiti

u1(54)
0 . . 1 .
(54)
0 . . 0 .
v1

w(54)
0 . . 0 .
1

u2(54)
0 ... 0
(54)
0 . . 0 .
v2

(54)
0 . . 0 .
w2
=
0 . . 0 .
u (54)

3
(54)
0 . . 0 .
v3
0 . . 0 .
(54)

w3
0 . . 0 .
(54)
u

4
0 . . 0 .
v (54)
4
0 . . 0 .

w4(54) 12 x1

55

0 0 0 0 0 . .0. 0 0 0 0 0 . .0.
1 0 0 0 0 . .0. 0 0 0 0 0 . .0.
0
0
0
0

1
0
0
0

0
1
0
0

0
0
1
0

0 . .0. 0 0 0 0 0 . .0.
0 . .0. 0 0 0 0 0 . .0.
0 . .0. 0 0 0 0 0 . .0.
1 . .0. 0 0 0 0 0 . .0.

0 0 0 0 0 . .1. 0 0 0 0 0 . .0.
0 0 0 0 0 . .0. 1 0 0 0 0 . .0.
0
0
0
0

0
0
0
0

0
0
0
0

0
0
0
0

0
0
0
0

.
.
.
.

.0.
.0.
.0.
.0.

0
0
0
0

1
0
0
0

0
1
0
0

0 0 . .0.
0 0 . .0.
1 0 . .0.
0 1 ... 0

u1
......

u102

0
v102

0
w
102
0
u103

0
v
103
0
w103

......
0
u158

0
v158
0
w

158
0
u159

v
0 12 x 3n 159
w159

......
w
3n 3nx1

4)
[(5(102,103,158,
159) ]

Se la numerazione tale che lelemento finito n 54 con i suoi nodi locali 1, 2, 3, 4


nodi globali 102, 116, 162, 175, la matrice di connettivit diventa:

u1(54)
0
(54)
0
v1

w(54)
0
1

u2(54)
0
(54)
0
v2

(54)
0
w2
=
0
u (54)

3
0
v3(54)
0
(54)

w3
0
(54)
u

4
0
v (54)
4
0

(54)
w4 12 x1

......
......
......
......
......
......
......
......

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
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
0
0
0
0
0

0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0

......
......
......
......
......
......
......
......

......

...

...

......
......
......

0
0
0

0
0
0

0
0
0

...
...
...

0
0
0

0
0
0

0
0
0

...
...
...

0
0
0

0
0
0

0
0
0

...

......

...
...
...

1
0
0

0
1
0

0
0
1

......
......
......

0
0
0

0
0

0
0

0
0

0
0 12 x 3n

Colonna
102x3
[

(54)
(102,116 ,162,175 )

Colonna
116x3

Colonna
162x3

Colonna
175x3

u1
......

u102

v102
w
102
......
u
116
v116

w116
......

u162
v
162
w162

......
u175

v175
w
175
......

w3n 3nx1

Capitolo 3: Il metodo degli elementi finiti

56

Introducendo le matrici booleane (3.11) nellEPT del sistema ossia nella relazione
(3.10), si ha:
([U=
])

n
T
1 n
T
e T
e
e

f e e [U ] ,
U
K
U

[
]
[
]

2 e=1
e=1

(3.12)

portando ora fuori dal simbolo di sommatoria le quantit in comune ai vari fattori, si ha:
([U ]) =

n
T
T
1

T
[U ] e K e e [U ] - f e e [U ] ,
2
e=1

e=1

(3.13)

definendo la matrice di rigidezza globale e delle forze dellintero sistema strutturale come:
n

[ K ] = e
e=1

[f]

K e e

=
f e e ,
e=1

si perviene allespressione dellEPT globale nella forma seguente:


([U ]) =

1
T
T
[U ] [ K ][U ] - [ f ] [U ] .
2

Minimizzando la EPT rispetto alle variabili nodali [U ] si ha il sistema di equazioni


lineari:

[ K ][U ] =[ f ] .
Formulato in tal modo, agevole notare che:
il metodo degli elementi finiti per come costruito si presta ad essere sviluppato
come codice di calcolo con il calcolatore elettronico, essendo le operazioni coinvolte, a
differenza di quanto accadeva con il metodo di Ritz-Rayleigh., in una morfologia tale da
essere eseguite in modo sistematico ed automatico;

Capitolo 3: Il metodo degli elementi finiti

57

possibile effettuare loperazione di assemblaggio della matrice di rigidezza globale

[ K ] a partire da quelle dei singoli elementi finiti

K e in modo automatico.

3.3 Stima dellerrore nel FEM


Si forniscono alcune nozioni introduttive sulle modalit di valutazione dellerrore
commesso nellanalisi ad elementi finiti. In realt, pi corretto parlare di stima
dellerrore, giacch lerrore effettivo, tranne nei casi in cui nota la soluzione esatta, non
valutabile con esattezza essendo incognita la soluzione esatta.
possibile distinguere le seguenti tipologie di errore:

Errore di modello:

rappresentazione della struttura con una geometria che si


discosta da quella reale;

Errore di ingresso:

modellazione delle azioni esterne, del materiale;

Errore di soluzione:

lerrore associato alle approssimazioni del modello ad


elementi finiti: scelta dellelemento finito, per quanto
riguarda le approssimazioni con la mesh; le funzioni di
forma scelte;

Errore umano:

errori di modellazione per la non perfetta conoscenza del


fenomeno fisico, errori di inserimento dei dati, errori di
interpretazione dei risultati.

3.4 Lerrore di soluzione


La prima difficolt che emerge nello studio delle tecniche di valutazione dellerrore
quella che la soluzione esatta non nota e quindi lerrore non pu essere valutato
correttamente. Pertanto la valutazione dellerrore resta solo e soltanto una stima.

Capitolo 3: Il metodo degli elementi finiti

58

Lerrore di soluzione deve infatti misurare la variazione della soluzione approssimata


rispetto a quella esatta, in energia (globale) e/o in spostamento (locale).
Lerrore relativo rispetto allenergia di deformazione .
een =

Wes Wapp
Wes

Oppure, se si vuole:
e 'en =

W ( ues uapp )
Wes

Questo numero non valutabile con esattezza dato che la Wes non nota essendo
incognita la soluzione esatta nei problemi di analisi strutturale reali.
Ovviamente nei problemi di test del sistema ad elementi finiti nota la soluzione
esatta e per questi casi la stima dellerrore risulta essere una valutazione esatta.
La stima dellerrore avviene mediante una modalit indiretta di confronto fra la
soluzione approssimata e la soluzione esatta ed detta a posteriori per distinguerla dalle
valutazioni dellerrore di tipo qualitativo a priori basate sui teoremi della convergenza del
MEF. Una volta effettuata la stima dellerrore necessario sfruttarla per ottenere un
miglioramento dei risultati.

3.5 Stima dellerrore basata su campi di sforzo approssimanti


Il metodo stato proposto da Zienkiewicz e Zhu e si basa sulla costruzione di un
campo di sforzi continuo a partire da quello fornito dalla soluzione agli elementi finiti.
In generale la soluzione del FEM in termini di tensioni presenta un andamento
discontinuo in corrispondenza delle interfacce degli elementi finiti. Si ritiene pertanto che
la regolarizzazione di tale campo discontinuo permetta di ottenere un campo di sforzi sia
pi vicino alla soluzione reale di quanto non lo sia la soluzione discontinua.

Capitolo 3: Il metodo degli elementi finiti

59

Si ha in tal modo una stima dellerrore di soluzione nellenergia complementare (che in


caso di linearit del materiale coincide con lenergia di deformazione diretta)
Wc ( es app )=

T
T
1
1
[ es app ] [ A][ es app ] dV [ app ] [ A][ app ] dV

2V
2V

dove con si indicato il campo di sforzi. Naturalmente [ app ] = [C ][ app ] .


In letteratura sono state proposte varie tecniche per la determinazione del campo
tensionale regolarizzante (tecniche di stress recovery della tensione) per le quali si rimanda
alla letteratura specifica riportata nei trattati classici degli elementi finiti.

Capitolo 3: Il metodo degli elementi finiti

60

3.6 Applicazioni
3.6.1

Applicazione 1: trave continua risolta con il metodo agli elementi finiti

Trave continua - a rigidezza costante a tratti - risolta con il metodo agli


elementi finiti.
Soluzione costruita per assemblaggio della matrice di rigidezza e del vettore
delle forze nodali.
Le condizioni al contorno sono inserite per imposizione di condizioni
omogenee (componenti di spostamento nulle) utilizzando una matrice di
contrazione.
q1t

q2t
B

x2
x1
RIFERIMENTO GLOBALE
Matrici di rigidezza dei singoli elementi finiti nella forma
piana estesa nel riferimento locale

In[1]:=

EA1
L1

12 EI1
L31

6 EI1
L21

12 EI1
L31

6 EI1
L21

6 EI1

4 EI1
L1

6 EI1

2 EI1
L1

EA1
L1

12 EI1
L31

2 EI1
L1

K1loc =

L12
EA1
L1

0
12 EI1
L31

6 EI1

EA2
L2

12 EI2
L32

6 EI2
L22

6 EI2

4 EI2
L2

K2loc =

L21

L22
EA2
L2

0
12 EI2

6 EI2
L22

L32

6 EI1
L21

6 EI2
L22

2 EI2
L2

EA1
L1

EA2
L2

L12

6 EI1
L21

6 EI1
L21

4 EI1
L1

12 EI2
L32

6 EI2
L22

6 EI2

2 EI2
L2

EA2
L2

12 EI2

L22

0
L32

6 EI2
L22

6 EI2
L22

4 EI2
L2

Capitolo 3: Il metodo degli elementi finiti

61

Singolarit della matrice di rigidezza (la matrice di rigidezza del singolo elemento
finito asta risulta semidefinita positiva per il moto rigido che le consentito)
In[3]:=

Det@K1loc D
Det@K2loc D

Out[3]=

Out[4]=

Cambio di riferimento della matrice di rigidezza dal locale al globale.


NB - Per le travi continue si potrebbe omettere questa fase perch il riferimento
globale coincide con quello locale dell'asta
Matrice di cambio di riferimento e Matrice di passaggio delle due travi componenti la struttura
In[55]:=

1 = 0; 2 = 0;

Q=

Cos@D
Sin@D
0
0
0
0

Sin@D
Cos@D
0
0
0
0

0
0
1
0
0
0

0
0
0
Cos@D
Sin@D
0

0
0
0
Sin@D
Cos@D
0

Q1 = Q . 1;
Q2 = Q . 2;
Row@8"Q1 = ", Q1 MatrixForm, "

Out[59]=

Q1 =

1
0
0
0
0
0

0
1
0
0
0
0

0
0
1
0
0
0

0
0
0
1
0
0

0
0
0
0
1
0

0
0
0
0
0
1

Q2 =

0
0
0
;
0
0
1

Q2 = ", Q2 MatrixForm <D


1
0
0
0
0
0

0
1
0
0
0
0

0
0
1
0
0
0

0
0
0
1
0
0

0
0
0
0
1
0

0
0
0
0
0
1

Capitolo 3: Il metodo degli elementi finiti

62

Matrici di rigidezza dei singoli EF nel riferimento globale


In[10]:=

K1g = Transpose @Q1D.K1loc.Q1;


K2g = Transpose @Q2D.K2loc.Q2;
MatrixForm @K1gD
MatrixForm @K2gD

Out[12]//MatrixForm=
EA1
L1

12 EI1
L13

6 EI1
L12

12 EI1
L13

6 EI1
L12

6 EI1

4 EI1
L1

6 EI1

2 EI1
L1

EA1
L1

12 EI1

L21
EA1
L1

0
12 EI1

6 EI1

L21

6 EI1
L12

2 EI1
L1

EA2
L2

12 EI2
L23

6 EI2
L22

12 EI2
L23

6 EI2
L22

6 EI2

4 EI2
L2

6 EI2

2 EI2
L2

EA2
L2

12 EI2
L32

L21

L31

6 EI1
L12

6 EI1

L31

EA1
L1

L21

4 EI1
L1

Out[13]//MatrixForm=

L22

2
EA
L

6 EI2

12 EI2
L32

6 EI2
L22

2 EI2
L2

L22

EA2
L2

L22

6 EI2
L22

6 EI2
L22

4 EI2
L2

Matrici booleane o di connettivit o di congruenza o di compatibilit degli elementi


finiti - legano il vettore degli elementi finiti nella numerazione nodale globale
(dimensione 9x1) al vettore dell'elemento finito nella numerazione locale
(dimensione 6x1).
La matrice di connettivit ha, dunque, dimensione 6x9.

In[14]:=

C1 =

1
0
0
0
0
0

0
1
0
0
0
0

0
0
1
0
0
0

0
0
0
1
0
0

0
0
0
0
1
0

0
0
0
0
0
1

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
;
0
0
0

C2 =

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

1
0
0
0
0
0

0
1
0
0
0
0

0
0
1
0
0
0

0
0
0
1
0
0

0
0
0
0
1
0

0
0
0
;
0
0
1

MatrixForm @Transpose @C1DD

Capitolo 3: Il metodo degli elementi finiti

In[60]:=

Out[60]=

63

Row@8"Tras. C1 = ", MatrixForm @Transpose @C1DD,


"
Tras. C2 = ", MatrixForm @Transpose @C2DD<D

Tras. C1 =

1
0
0
0
0
0
0
0
0

0
1
0
0
0
0
0
0
0

0
0
1
0
0
0
0
0
0

0
0
0
1
0
0
0
0
0

0
0
0
0
1
0
0
0
0

0
0
0
0
0
1
0
0
0

0
0
0
1
0
0
0
0
0

Tras. C2 =

0
0
0
0
1
0
0
0
0

0
0
0
0
0
1
0
0
0

0
0
0
0
0
0
1
0
0

0
0
0
0
0
0
0
1
0

0
0
0
0
0
0
0
0
1

Assemblaggio matrici di rigidezza dei singoli elementi finiti per formare la matrice
di rigidezza della struttura libera da vincoli.
NB - Si pu costruire l'assemblaggio "manualmente" sovrapponendo la matrice di
rigidezza nei gradi di libert di competenza.
La matrice di rigidezza del 1 EF impegna le prime 6 righe e 6 colonne, la matrice
di rigidezza del 2 EF impegna le ultime 6 righe e 6 colonne della matrice di
rigidezza assemblata che una matrice 9x9.
In[18]:=

K = Transpose @C1D.K1g.C1 + Transpose @C2D.K2g.C2;


MatrixForm @KD

Out[19]//MatrixForm=
EA1
L1

12 EI1
L13

6 EI1
L12

6 EI1

4 EI1
L1

EA1
L1

L21
EA1
L1

0
12 EI1
L31

6 EI1

L12

6 EI1
L21

2 EI1
L1

EA1
L1

EA2
L2

12 EI1
L13

6 EI1
L12

6 EI1

2 EI1
L1

L21

0
0

2
EA
L

12 EI1
L31

6 EI1
L12

12 EI2
L32
6 EI2
L22

6 EI1
L21

4 EI1
L1

6 EI2
L22

4 EI2
L2

12 EI2
L32

6 EI2

6 EI2
L22

2 EI2
L2

L22

EA2
L2

12 EI2
L32

6 EI2

EA2
L2

12 EI2
L32

L22

6 EI2
L22

6 EI2
L22
2 EI2
L2

6 EI2
L22

4 EI2
L2

Singolarit della matrice di rigidezza globale del modello a elementi finiti (questa
matrice di rigidezza risulta semidefinita positiva per il moto rigido che le
consentito, poich non sono ancora assegnate le condizioni al contorno)
In[20]:=
Out[20]=

Det@KD
0

Forze nodali equivalenti nel riferimento locale dei singoli elementi finiti
F1loc = Transpose B::0,

qt1 L1

F2loc = Transpose B::0,

qt2 L2

qt1 L1 2

12
qt2 L2 2
,

qt1 L1
, 0,

2
qt2 L2
, 0,

12

qt1 L1 2
12
qt2 L2 2
12

>>F;
>>F;

Capitolo 3: Il metodo degli elementi finiti

In[63]:=

Out[63]=

64

Row@8"F1loc = ", MatrixForm @F1loc D, "


0
750
37 500
0
750
37 500

F1loc =

F2loc =

F2loc = ", MatrixForm @F2loc D<D

0
1200
80 000
0
1200
80 000

vettori forze nodali equivalenti del nodo trasferite dal riferimento locale
al riferimento globale
F1g = Transpose @Q1D.F1loc;
F2g = Transpose @Q2D.F2loc;
In[64]:=

Out[64]=

Row@8"F1g = ", MatrixForm @F1gD, "


0
750
37 500
0
750
37 500

F1g =

F2g =

F2g = ", MatrixForm @F2gD<D

0
1200
80 000
0
1200
80 000

Assemblaggio forze nodali equivalenti dei singoli elementi finiti per otenere il
vettore forza nodale equivalente del modello a elementi finiti
In[29]:=

F = Transpose @C1D.F1g + Transpose @C2D.F2g;


MatrixForm @FD

Out[30]//MatrixForm=

0
L1 qt1
2
1
12

L21 qt1

0
L1 qt1

2
1
12

L2 qt2
2

L21 qt1 +

0
L2 qt2
2
1
12 L22 qt2

1
12

L22 qt2

Capitolo 3: Il metodo degli elementi finiti

65

Applicazione delle condizioni essenziali di vincolo

Vettore spostamenti nodali della struttura


In[31]:=

U = 8U1, U2, 3, U4, U5, 6, U7, U8, 9<;

PER IMPORRE LE CONDIZIONI VINCOLARI A SPOSTAMENTO NULLO.


Della matrice di rigidezza occorre effettuare la contrazione eliminando le righe 1,
2, 3, 5, 8 e le rispettive colonne. Si applica un operatore di contrazione mettendo
tutti zeri alle colonne da cancellare.
L'operatoredi contrazione una matrice 4x9

In[32]:=

0
0
0
0

OpContr =

0
0
0
0

0
0
0
0

1
0
0
0

0
0
0
0

0
1
0
0

0
0
1
0

0
0
0
0

MatrixForm @Transpose @OpContr DD


Out[33]//MatrixForm=

0
0
0
1
0
0
0
0
0

0
0
0
0
0
1
0
0
0

0
0
0
0
0
0
1
0
0

0
0
0
0
0
0
0
0
1

0
0
;
0
1

Capitolo 3: Il metodo degli elementi finiti

In[34]:=

66

Kcontr = OpContr.K.Transpose @OpContr D;


Ucontr = OpContr.U;
Fcontr = OpContr.F;
MatrixForm @Kcontr D
MatrixForm @Ucontr D
MatrixForm @Fcontr D

Out[37]//MatrixForm=
EA1
L1

EA2
L2

4 EI1
L1

EA2
L2

2 EI2
L2

EA2
L2

2 EI2
L2

4 EI2
L2

4 EI2
L2

EA2
L2

Out[38]//MatrixForm=

U4
6
U7
9
Out[39]//MatrixForm=

0
1
12
L21 qt1 +

1
12

L22 qt2

0
1
12
L22 qt2

Kcontr la (vera) matrice di rigidezza della struttura con i vincoli e non risulta
singolare ed definita positiva e quindi a determinante non nullo e positivo
In[40]:=

Det@Kcontr D
12 EA1 EA2 EI22

Out[40]=

L1 L32

16 EA1 EA2 EI1 EI2


L21 L22

Matrice della cedibilit della struttura nel riferimento globale


In[41]:=

Cced = FullSimplify @Inverse @Kcontr DD;


MatrixForm @Cced D

Out[42]//MatrixForm=
L1
EA1

L1
EA1

L1 L2
3 EI2 L1 +4 EI1 L2

6 EI

L1
EA1

L1
EA1

L1 L2
6 EI2 L1 +8 EI1 L2

L2
EA2

L1 L2
L1 +8 EI1 L2

0
L2 HEI2 L1 +EI1 L2 L
EI2 H3 EI2 L1 +4 EI1 L2 L

Il campo degli spostamenti nodali soluzione risulta:


In[43]:=

UcontrSOL = FullSimplify @Cced.Fcontr D;


MatrixForm @UcontrSOL D

Out[44]//MatrixForm=

0
2 L31 L2 qt1 +3 L1 L32 qt2
72 EI2 L1 +96 EI1 L2

0
EI2 L31 L2 qt1 3 EI2 L1 L32 qt2 2 EI1 L42 qt2
72 EI22 L1 +96 EI1 EI2 L2

Capitolo 3: Il metodo degli elementi finiti

67

SOLUZIONE CON CARICO SUI DUE TRATTI


In forma numerica scegliendo i seguenti profilati (kg cm)
profilato 1 : HE220A
profilato 2 : IPE 200
In[45]:=

qt1 = 5; qt2 = 6;
L1 = 300; L2 = 400;
EA1 = 2.1 106 64.34; EI 1 = 2.1 106 5410;
6

EA2 = 2.1 10 33.37; EI 2 = 2.1 10 2772;


MatrixForm @Kcontr D
MatrixForm @Fcontr D
Out[49]//MatrixForm=

625 573.

0
175 193.

2.09692 10
0

2.9106 107

175 193.

0
175 193.

2.9106 107
0

5.8212 107

Out[50]//MatrixForm=

0
42 500
0
80 000

Vettore contratto degli spostamenti nel riferimento globale.


In[51]:=

MatrixForm @UcontrSOL D

Out[51]//MatrixForm=

0
0.000422776
0
0.00158567

Vettore non contratto degli spostamenti nel riferimento globale.


In[52]:=

Out[54]=

USOLgl = Transpose @OpContr D.UcontrSOL;


uuu = Table @HUg.iL, 8i, 9<D;
Row@8 MatrixForm @uuu D, MatrixForm @USOLgl D<D
Ug.1
Ug.2
Ug.3
Ug.4
Ug.5
Ug.6
Ug.7
Ug.8
Ug.9

0.
0.
0.
0.
0.
0.000422776
0.
0.
0.00158567

Capitolo 3: Il metodo degli elementi finiti

3.6.2

68

Applicazione 2: trave continua con vincolo interno doppiopendolox risolta


con il metodo agli elementi finiti
TRAVE CONTINUA ad asse orizzontale con vincolo interno doppiopendolo
(x) caricata trasversalmente, risolto con il metodo agli elementi finiti.

MODELLO CINEMATICO PURAMENTE TRASVERSALE.


Soluzione costruita per assemblaggio della matrice di rigidezza e del
vettore delle forze nodali.
Vincoli imposti con una matrice di contrazione.

q1t

q2t
B

x2
x1
RIFERIMENTO GLOBALE
Matrici di rigidezza dei singoli elementi finiti nella forma piana ridotta senza il grado di libert estensionale - nel riferimento locale.
La matrice del singolo elemento finito ha dimensione 4x4.

In[1]:=

K1loc =

12 EI1
L31

6 EI1
L21

12 EI1
L31

6 EI1
L21

6 EI1

4 EI1
L1

6 EI1

2 EI1
L1

L21

12 EI1
L31
6 EI1

K2loc =

6 EI1
L21

L21

12 EI1
L31

6 EI1
L21

2 EI1
L1

6 EI1

L21

L21

4 EI1
L1

12 EI2

6 EI2

6 EI2

L22

12 EI2

L32

L32

L22

6 EI2

4 EI2
L2

6 EI2

2 EI2
L2

L22

12 EI2
L32
6 EI2
L22

6 EI2
L22

2 EI2
L2

L22

12 EI2
L32

6 EI2
L22

6 EI2
L22

4 EI2
L2

Singolarit della matrice di rigidezza (la matrice di rigidezza del singolo


elemento finito asta risulta semidefinita positiva per il moto rigido che le
consentito)
In[3]:=

Det@K1loc D
Det@K2loc D

Out[3]=

Out[4]=

Capitolo 3: Il metodo degli elementi finiti

69

Matrici di rigidezza dei singoli EF nel riferimento globale. Per le travi


continue sono coincidenti per cui la trasformazione di coordinate data
dalla matrice identitica.
In[5]:=

K1g = K1loc;
K2g = K2loc;
MatrixForm @K1gD
MatrixForm @K2gD

Out[7]//MatrixForm=

12 EI1

6 EI1

L13

L12

6 EI1
L21

4 EI1
L1

12 EI1
L31

6 EI1

12 EI1
L13

L12

6 EI1
L21

2 EI1
L1

6 EI1
L21

6 EI1

12 EI1
L31

6 EI1
L21

2 EI1
L1

6 EI1

12 EI2
L32

6 EI2
L22

12 EI2
L32

6 EI2
L22

6 EI2

4 EI2
L2

6 EI2

2 EI2
L2

L21

L22

Out[8]//MatrixForm=

12 EI2
L32

6 EI2

6 EI2
L22

2 EI2
L2

L22

4 EI1
L1

L21

L22

12 EI2
L32

6 EI2

6 EI2
L22

4 EI2
L2

L22

Matrici booleane o di connettivit o di congruenza o di compatibilit degli


elementi finiti - legano il vettore degli elementi finiti nella numerazione
nodale globale (dimensione 8x1) al vettore dell'elemento finito nella
numerazione locale (dimensione 4x1).
La matrice di connettivit ha, dunque, dimensione 4x8.

In[9]:=

In[11]:=

Out[11]=

C1 =

1
0
0
0

0
1
0
0

0
0
1
0

0
0
0
1

0
0
0
0

0
0
0
0

0
0
0
0

0
0
;
0
0

C2 =

0
0
0
0

0
0
0
0

0
0
0
0

0
1
0
0

1
0
0
0

0
0
0
0

0
0
1
0

0
0
;
0
1

Row@8"Tras. C1 = ", MatrixForm @Transpose @C1DD,


"
Tras. C2 = ", MatrixForm @Transpose @C2DD<D

Tras. C1 =

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

Tras. C2 =

0
0
0
0
1
0
0
0

0
0
0
1
0
0
0
0

0
0
0
0
0
0
1
0

0
0
0
0
0
0
0
1

Assemblaggio matrici di rigidezza dei singoli elementi finiti per formare la


matrice di rigidezza della struttura libera da vincoli.
NB - Si pu costruire l'assemblaggio "manualmente" sovrapponendo la

Capitolo 3: Il metodo degli elementi finiti

70

Il campo degli spostamenti nodali soluzione risulta:


In[35]:=

UcontrSOL = FullSimplify @Cced.Fcontr D;


MatrixForm @UcontrSOL D
L41 qt1 2 L21 L22 qt2
8 EI1
L31 qt1 3 L1 L22 qt2
6 EI1

Out[36]//MatrixForm=
1
24

L2 K

5 L32 qt2
EI2

4 IL31 qt1 3 L1 L22 qt2 M


EI1

EI2 L31 qt1 L22 H3 EI2 L1 +2 EI1 L2 L qt2


6 EI1 EI2

SOLUZIONE CON CARICO SUI DUE TRATTI

In forma numerica scegliendo i seguenti profilati (kg cm)


profilato 1 : HE220A
profilato 2 : IPE 200
In[37]:=

qt1 = 5; qt2 = 6;
L1 = 300; L2 = 400;
EA1 = 2.1 106 64.34; EI 1 = 2.1 106 5410;
EA2 = 2.1 106 33.37; EI 2 = 2.1 106 2772;
MatrixForm @KcontrD
MatrixForm @Fcontr D
MatrixForm @UcontrSOL D

Out[41]//MatrixForm=

5049.33

757 400.

757 400.
0

2.09692 108 218 295.


218 295.
1091.48

2.9106 107
218 295.

2.9106 107

5.8212 107

Out[42]//MatrixForm=

750
42 500
1200
80 000

Out[43]//MatrixForm=

1.45564
0.0106945
9.77494
0.0326831

218 295.

Capitolo 3: Il metodo degli elementi finiti

In[20]:=

Row@8"F1g = ", MatrixForm @F1gD, "


L1 qt1
1
L2
12 1
L1 qt1

F1g =

F2g = ", MatrixForm @F2gD<D

L2 qt2

Out[20]=

71

qt1

F2g =

2
1
L2
12 2
L2 qt2

qt2

12 L21 qt1

12 L22 qt2

Assemblaggio forze nodali equivalenti dei singoli elementi finiti per otenere
il vettore forza nodale equivalente del modello a elementi finiti
In[21]:=

F = Transpose @C1D.F1g + Transpose @C2D.F2g;


MatrixForm @FD
L1 qt1
2
1
L2
12 1
L1 qt1

qt1

Out[22]//MatrixForm=

1
12
L21 qt1 +

1
12

L22 qt2

L2 qt2
2

0
L2 qt2
2
1
12
L22 qt2

Applicazione delle condizioni essenziali di vincolo

Capitolo 3: Il metodo degli elementi finiti

72

Vettore spostamenti nodali della struttura


In[23]:=

U = 8VA, A, VBs, Bs, VBd, Bd, VC, C <;

PER IMPORRE LE CONDIZIONI VINCOLARI A SPOSTAMENTO NULLO.

Della matrice di rigidezza occorre effettuare la contrazione eliminando le


righe 1, 2, 6, 7 e le rispettive colonne. Si applica un operatore di contrazione
mettendo tutti zeri alle colonne da cancellare.
La matrice di contrazione di dimensione paria a 4x8

In[24]:=

0
0
0
0

OpContr =

0
0
0
0

1
0
0
0

0
1
0
0

0
0
1
0

0
0
0
0

0
0
0
0

0
0
0
1

MatrixForm @Transpose @OpContr DD

Out[25]//MatrixForm=

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
0
0
1

Capitolo 3: Il metodo degli elementi finiti

In[26]:=

73

Kcontr = OpContr.K.Transpose @OpContr D;


Ucontr = OpContr.U;
Fcontr = OpContr.F;
MatrixForm @Kcontr D
MatrixForm @Ucontr D
MatrixForm @Fcontr D
12 EI1
L31

Out[29]//MatrixForm=

Out[30]//MatrixForm=

6 EI1

6 EI1
L21

4 EI1
L1

L21

0
4 EI2
L2

6 EI2
L22

2 EI2
L2

6 EI2
L22

12 EI2
L32

6 EI2
L22

2 EI2
L2

6 EI2

4 EI2
L2

L22

VBs
Bs
VBd
C
L1 qt1
2

Out[31]//MatrixForm=

1
12
L21 qt1 +

1
12

L22 qt2

L2 qt2
2
1
12
L22 qt2

Kcontr la (vera) matrice di rigidezza della struttura con i vincoli e non


risulta singolare ed definita positiva e quindi a determinante non nullo e
positivo
In[32]:=

Det@Kcontr D
144 EI21 EI22

Out[32]=

L41 L42

Matrice della cedibilit della struttura nel riferimento globale


In[33]:=

Cced = FullSimplify @Inverse @Kcontr DD;


MatrixForm @Cced D

Out[34]//MatrixForm=

L31
3 EI1

L21
2 EI1

21EI2

L21
2 EI1

L1
EI1

L2 L

L1 L2
EI1

21EI2

L21
2 EI1

L1
EI1

L2 L

L21
2 EI1

L1 L2
EI1

L1 L22
EI1

L1 L2
EI1

L1
EI1
L32
3 EI2

L22
2 EI2

L1 L2
EI1

L1
EI1

L2
EI2

L22
2 EI2

Capitolo 3: Il metodo degli elementi finiti

74

Il campo degli spostamenti nodali soluzione risulta:


In[35]:=

UcontrSOL = FullSimplify @Cced.Fcontr D;


MatrixForm @UcontrSOL D
L41 qt1 2 L21 L22 qt2
8 EI1
L31 qt1 3 L1 L22 qt2
6 EI1

Out[36]//MatrixForm=
1
24

L2 K

5 L32 qt2
EI2

4 IL31 qt1 3 L1 L22 qt2 M


EI1

EI2 L31 qt1 L22 H3 EI2 L1 +2 EI1 L2 L qt2


6 EI1 EI2

SOLUZIONE CON CARICO SUI DUE TRATTI

In forma numerica scegliendo i seguenti profilati (kg cm)


profilato 1 : HE220A
profilato 2 : IPE 200
In[37]:=

qt1 = 5; qt2 = 6;
L1 = 300; L2 = 400;
EA1 = 2.1 106 64.34; EI 1 = 2.1 106 5410;
EA2 = 2.1 106 33.37; EI 2 = 2.1 106 2772;
MatrixForm @KcontrD
MatrixForm @Fcontr D
MatrixForm @UcontrSOL D

Out[41]//MatrixForm=

5049.33

757 400.

757 400.
0

2.09692 108 218 295.


218 295.
1091.48

2.9106 107
218 295.

2.9106 107

5.8212 107

Out[42]//MatrixForm=

750
42 500
1200
80 000

Out[43]//MatrixForm=

1.45564
0.0106945
9.77494
0.0326831

218 295.

Capitolo 3: Il metodo degli elementi finiti

75

Passaggio dal campo di spostamento contratto a quello non contratto.


In[44]:=

Out[46]=

USOLgl = Transpose @OpContr D.UcontrSOL;


Ugl = Table @HUg.iL, 8i, 8<D;
Row@8 MatrixForm @Ugl D, MatrixForm @USOLgl D<D
Ug.1
Ug.2
Ug.3
Ug.4
Ug.5
Ug.6
Ug.7
Ug.8

0.
0.
1.45564
0.0106945
9.77494
0.
0.
0.0326831

Grazie alle matrici di connessione si ottiene la rotazione del nodo 3 che


ovviamente deve esser uguale a quella del nodo 2 dato il vincolo interno.
In[47]:=

Out[51]=

In[52]:=

USOL1 = C1.USOLgl;
USOL2 = C2.USOLgl;
USOL = Join @USOL1, USOL2 D;
Ugl = Table @HUg.iL, 8i, 8<D;
Row@8 MatrixForm @Ugl D, MatrixForm @USOL D<D
Ug.1
Ug.2
Ug.3
Ug.4
Ug.5
Ug.6
Ug.7
Ug.8

0.
0.
1.45564
0.0106945
9.77494
0.0106945
0.
0.0326831

Capitolo 3: Il metodo degli elementi finiti

76

Soluzione con il solo carico solo sul primo tratto


In[53]:=

qt1 = 5; qt2 = 0;
L1 = 300; L2 = 400;
EA1 = 2.1 106 64.34; EI 1 = 2.1 106 5410;
6

EA2 = 2.1 10 33.37; EI 2 = 2.1 10 2772;


MatrixForm @KcontrD
MatrixForm @Fcontr D
MatrixForm @UcontrSOL D

Out[57]//MatrixForm=

5049.33

757 400.

757 400.
0

2.09692 108
218 295.

218 295.
1091.48

2.9106 107
218 295.

2.9106 107

218 295.

5.8212 107

Out[58]//MatrixForm=

750
37 500
0
0

Out[59]//MatrixForm=

0.445603
0.00198046
0.792184
0.00198046

In[60]:=

USOLgl = Transpose @OpContr D.UcontrSOL;


USOL1 = C1.USOLgl;
USOL2 = C2.USOLgl;
USOL = Join @USOL1, USOL2 D;
USOLgl MatrixForm
USOL MatrixForm

Out[64]//MatrixForm=

0.
0.
0.445603
0.00198046
0.792184
0.
0.
0.00198046

Out[65]//MatrixForm=

0.
0.
0.445603
0.00198046
0.792184
0.00198046
0.
0.00198046

In[66]:=

Capitolo 3: Il metodo degli elementi finiti

77

Soluzione con il solo carico sul secondo tratto


In[67]:=

qt1 = 0; qt2 = 6;
L1 = 300; L2 = 400;
EA1 = 2.1 106 64.34; EI 1 = 2.1 106 5410;
6

EA2 = 2.1 10 33.37; EI 2 = 2.1 10 2772;


MatrixForm @KcontrD
MatrixForm @Fcontr D
MatrixForm @UcontrSOL D

Out[71]//MatrixForm=

5049.33

757 400.

757 400.
0

2.09692 108
218 295.

218 295.
1091.48

2.9106 107
218 295.

2.9106 107

218 295.

5.8212 107

Out[72]//MatrixForm=

0
80 000
1200
80 000

Out[73]//MatrixForm=

1.90124
0.0126749
10.5671
0.0346635

In[74]:=

USOLgl = Transpose @OpContr D.UcontrSOL;


USOL1 = C1.USOLgl;
USOL2 = C2.USOLgl;
USOL = Join @USOL1, USOL2 D;
USOLgl MatrixForm
USOL MatrixForm

Out[78]//MatrixForm=

0.
0.
1.90124
0.0126749
10.5671
0.
0.
0.0346635

Out[79]//MatrixForm=

0.
0.
1.90124
0.0126749
10.5671
0.0126749
0.
0.0346635

Capitolo 3: Il metodo degli elementi finiti

3.6.3

78

Applicazione 3: trave continua con vincolo esterno inclinato

Trave continua con vincolo esterno carrelloy ruotato di 60 risolta con il


metodo agli elementi finiti.
Soluzione costruita per assemblaggio della matrice di rigidezza e del vettore
delle forze nodali.
Le condizioni al contorno sono inserite per imposizione di condizioni
omogenee (componenti di spostamento nulle) utilizzando una matrice di
contrazione.
q1t

q2t
x2 C

loc

x2
x1
RIFERIMENTO GLOBALE
Matrici di rigidezza dei singoli elementi finiti nella forma
piana estesa nel riferimento locale

In[1]:=

EA1
L1

12 EI1
L31

6 EI1
L21

6 EI1

4 EI1
L1

K1loc =

L21
EA1
L1

0
12 EI1
L31

EA1
L1

12 EI1
L31

6 EI1
L21

6 EI1

2 EI1
L1

EA1
L1

12 EI1
L31

2 EI1
L1

6 EI1
L21

6 EI1

EA2
L2

12 EI2
L32

6 EI2
L22

12 EI2
L32

6 EI2
L22

6 EI2

4 EI2
L2

6 EI2

2 EI2
L2

EA2
L2

12 EI2

K2loc =

L22
EA2
L2

0
12 EI2

6 EI2
L22

L32

6 EI2
L22

2 EI2
L2

EA2
L2

6 EI1
L21

6 EI1
L21

L21

L21

4 EI1
L1

L22

0
L32
6 EI2
L22

6 EI2
L22

4 EI2
L2

x1

loc

=60

Capitolo 3: Il metodo degli elementi finiti

79

Singolarit della matrice di rigidezza (la matrice di rigidezza del singolo elemento
finito asta risulta semidefinita positiva per il moto rigido che le consentito)
In[3]:=

Det@K1loc D
Det@K2loc D

Out[3]=

Out[4]=

Cambio di riferimento della matrice di rigidezza dal locale al globale.


NB - Per le travi continue si potrebbe omettere questa fase perch il riferimento
globale coincide con quello locale dell'asta
Definizione del rifeirmento locale di ogni nodo.
In[5]:=

1 = 0; 1 = 0; 2 = 0; 2 = Pi 3;

Q=

Cos@D
Sin@D
0
0
0
0

Sin@D
Cos@D
0
0
0
0

0
0
1
0
0
0

0
0
0
Cos@D
Sin@D
0

Q1 = Q . 8 1, 1<;
Q2 = Q . 8 1, 2<;
Row@8"Q1 = ", Q1 MatrixForm, "

Out[9]=

Q1 =

1
0
0
0
0
0

0
1
0
0
0
0

0
0
1
0
0
0

0
0
0
1
0
0

0
0
0
0
1
0

0
0
0
0
0
1

Q2 =

0
0
0
Sin@D
Cos@D
0

0
0
0
;
0
0
1

Q2 = ", Q2 MatrixForm <D


1 0
0 1
0 0

0 0
0 0
1 0

0 0

0 0

0 0

0 0

0
0
0

1
2

0
0
0
3
2

3
2

1
2

Matrici di rigidezza dei singoli EF nel riferimento globale


In[10]:=

K1g = Transpose @Q1D.K1loc.Q1;


K2g = Transpose @Q2D.K2loc.Q2;
MatrixForm @K1gD;
MatrixForm @K2gD;

Capitolo 3: Il metodo degli elementi finiti

80

Matrici booleane o di connettivit o di congruenza o di compatibilit degli elementi


finiti - legano il vettore degli elementi finiti nella numerazione nodale globale
(dimensione 9x1) al vettore dell'elemento finito nella numerazione locale
(dimensione 6x1).

La matrice di connettivit ha, dunque, dimensione 6x9.

In[14]:=

In[16]:=

Out[16]=

C1 =

1
0
0
0
0
0

0
1
0
0
0
0

0
0
1
0
0
0

0
0
0
1
0
0

0
0
0
0
1
0

0
0
0
0
0
1

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
;
0
0
0

C2 =

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

1
0
0
0
0
0

0
1
0
0
0
0

0
0
1
0
0
0

0
0
0
1
0
0

0
0
0
0
1
0

0
0
0
;
0
0
1

Row@8"Tras. C1 = ", MatrixForm @Transpose @C1DD,


"
Tras. C2 = ", MatrixForm @Transpose @C2DD<D

Tras. C1 =

1
0
0
0
0
0
0
0
0

0
1
0
0
0
0
0
0
0

0
0
1
0
0
0
0
0
0

0
0
0
1
0
0
0
0
0

0
0
0
0
1
0
0
0
0

0
0
0
0
0
1
0
0
0

Tras. C2 =

0
0
0
1
0
0
0
0
0

0
0
0
0
1
0
0
0
0

0
0
0
0
0
1
0
0
0

0
0
0
0
0
0
1
0
0

0
0
0
0
0
0
0
1
0

0
0
0
0
0
0
0
0
1

Assemblaggio matrici di rigidezza dei singoli elementi finiti per formare la matrice
di rigidezza della struttura libera da vincoli.
NB - Si pu costruire l'assemblaggio "manualmente" sovrapponendo la matrice di
rigidezza nei gradi di libert di competenza.

La matrice di rigidezza del 1 EF impegna le prime 6 righe e 6 colonne, la matrice


di rigidezza del 2 EF impegna le ultime 6 righe e 6 colonne della matrice di
rigidezza assemblata che una matrice 9x9.
In[17]:=

K = Transpose @C1D.K1g.C1 + Transpose @C2D.K2g.C2;


MatrixForm @KD;

Singolarit della matrice di rigidezza globale del modello a elementi finiti (questa
matrice di rigidezza risulta semidefinita positiva per il moto rigido che le
consentito, poich non sono ancora assegnate le condizioni al contorno)
In[19]:=
Out[19]=

Det@KD
0

Capitolo 3: Il metodo degli elementi finiti

81

Forze nodali equivalenti nel riferimento locale dei singoli elementi finiti in questo
caso coincidono con quelle nel riferimento globale.
In[20]:=

In[22]:=

F1loc = Transpose B::0,

qt1 L1

F2loc = Transpose B::0,

qt2 L2

qt1 L1 2
, 0,

12
qt2 L2 2

qt2 L2
, 0,

12

Row@8"F1loc = ", MatrixForm @F1loc D, "

12
,

qt2 L2 2
12

>>F;
>>F;

F2loc = ", MatrixForm @F2loc D<D

L2 qt2

2
1
12

L21 qt1

1
12

F2loc =

2
1
12

L22 qt2

L1 qt1

qt1 L1 2

L1 qt1

F1loc =

Out[22]=

qt1 L1

L2 qt2
2
1

L21 qt1

12 L22 qt2

vettori forze nodali equivalenti del nodo trasferite nel riferimento locale del nodo
stesso
In[23]:=

In[25]:=

F1g = Transpose @Q1D.F1loc;


F2g = Transpose @Q2D.F2loc;
Row@8"F1g = ", MatrixForm @F1gD, "
0

Out[25]=

L1 qt1

L2 qt2

2
1
L2
12 2

1
12

F1g =

F2g = ", MatrixForm @F2gD<D

L21

qt1

0
L1 qt1

F2g =

1
4

qt2
3 L2 qt2

L2 qt2

1
12
L21 qt1

1
12
L22 qt2

Assemblaggio forze nodali equivalenti dei singoli elementi finiti per otenere il
vettore forza nodale equivalente del modello a elementi finiti
In[26]:=

F = Transpose @C1D.F1g + Transpose @C2D.F2g;


MatrixForm @FD

Out[27]//MatrixForm=

0
L1 qt1
2
1
12

L21 qt1

0
L1 qt1

2
1
12

L2 qt2
2

L21 qt1 +

14

1
12

3 L2 qt2

L2 qt2
4
1
12
L22 qt2

L22 qt2

Capitolo 3: Il metodo degli elementi finiti

82

Applicazione delle condizioni essenziali di vincolo

Vettore spostamenti nodali della struttura


In[28]:=

U = 8U1, U2, 3, U4, U5, 6, U7, U8, 9<;

PER IMPORRE LE CONDIZIONI VINCOLARI A SPOSTAMENTO NULLO.


Della matrice di rigidezza occorre effettuare la contrazione eliminando le righe 1,
2, 3, 5, 8 e le rispettive colonne. Si applica un operatore di contrazione mettendo
tutti zeri alle colonne da cancellare.
L'operatoredi contrazione una matrice 4x9

In[29]:=

0
0
0
0

OpContr =

0
0
0
0

0
0
0
0

1
0
0
0

0
0
0
0

0
1
0
0

0
0
1
0

0
0
0
0

MatrixForm @Transpose @OpContr DD


Out[30]//MatrixForm=

0
0
0
1
0
0
0
0
0

0
0
0
0
0
1
0
0
0

0
0
0
0
0
0
1
0
0

0
0
0
0
0
0
0
0
1

0
0
;
0
1

Capitolo 3: Il metodo degli elementi finiti

In[31]:=

83

Kcontr = OpContr.K.Transpose @OpContr D;


Ucontr = OpContr.U;
Fcontr = OpContr.F;
MatrixForm @Kcontr D
MatrixForm @Ucontr D
MatrixForm @Fcontr D

Out[34]//MatrixForm=
EA1
L1

EA2
L2

EA

2 L2

2 EI2
L2

EA

2 EI2
L2

4 EI1
L1

2 L2
+

4 EI2
L2

3 EI2

9 EI2

L22

3 EI2
L22

L23
3

EA2
4 L2

3 EI2
L22

3 EI2
L22

4 EI2
L2

Out[35]//MatrixForm=

U4
6
U7
9
Out[36]//MatrixForm=

0
1
12
L21 qt1 +

14

1
12

1
12

L22 qt2

3 L2 qt2
L22 qt2

Kcontr la (vera) matrice di rigidezza della struttura con i vincoli e non risulta
singolare ed definita positiva e quindi a determinante non nullo e positivo
In[37]:=

Det@Kcontr D
36 EA2 EI1 EI22

Out[37]=

L1 L52

36 EA1 EI1 EI22


L21

L42

3 EA1 EA2 EI22


L1 L32

4 EA1 EA2 EI1 EI2


L21 L22

Matrice della cedibilit della struttura nel riferimento globale


In[38]:=

Cced = FullSimplify @Inverse @Kcontr DD;


MatrixForm @Cced D;

Il campo degli spostamenti nodali soluzione risulta:


In[40]:=

UcontrSOL = FullSimplify @Cced.Fcontr D;


MatrixForm @UcontrSOL D;

Capitolo 3: Il metodo degli elementi finiti

84

SOLUZIONE CON CARICO SUI DUE TRATTI


In forma numerica scegliendo i seguenti profilati (kg cm)
profilato 1 : HE220A
profilato 2 : IPE 200
In[42]:=

qt1 = 5; qt2 = 6;
L1 = 300; L2 = 400;
EA1 = 2.1 106 64.34; EI 1 = 2.1 106 5410;
6

EA2 = 2.1 10 33.37; EI 2 = 2.1 10 2772;


MatrixForm @Kcontr D
MatrixForm @Fcontr D
Out[46]//MatrixForm=

625 573.

0
87 596.3

2.09692 10
189 049.

2.9106 107

87 596.3

189 049.
44 616.7

2.9106 107
189 049.

189 049.

5.8212 107

Out[47]//MatrixForm=

0
42 500
600 3
80 000

Vettore contratto degli spostamenti nel riferimento globale.


In[48]:=

MatrixForm @UcontrSOL D

Out[48]//MatrixForm=

0.0036204
0.0004353
0.0258553
0.00150797

Vettore non contratto degli spostamenti nel riferimento locale di ogni nodo.
In[49]:=

Out[51]=

USOLgl = Transpose @OpContr D.UcontrSOL;


uuu = Table @HUg.iL, 8i, 9<D;
Row@8 MatrixForm @uuu D, MatrixForm @USOLgl D<D
Ug.1
Ug.2
Ug.3
Ug.4
Ug.5
Ug.6
Ug.7
Ug.8
Ug.9

0.
0.
0.
0.0036204
0.
0.0004353
0.0258553
0.
0.00150797

Capitolo 3: Il metodo degli elementi finiti

3.6.4

85

Applicazione 4: trave continua con vincolo interno doppiopendolox


inclinato a 60 risolta con il metodo agli elementi finiti

TRAVE CONTINUA ad asse orizzontale con vincolo interno doppiopendolo (x)


inclinato di 60 caricata trasversalmente, risolto con il metodo agli elementi
finiti.
Soluzione costruita per assemblaggio della matrice di rigidezza e del vettore
delle forze nodali.
Le condizioni al contorno sono inserite per imposizione di condizioni
omogenee (componenti di spostamento nulle) utilizzando una matrice di
contrazione.
q1t

q2t
x2

x1
C

loc

loc

D
=60

B
x2
x1
RIFERIMENTO GLOBALE

Matrici di rigidezza dei singoli elementi finiti nella forma


piana estesa nel riferimento locale

In[1]:=

EA1
L1

12 EI1
L31

6 EI1
L21

12 EI1
L31

6 EI1
L21

6 EI1

4 EI1
L1

6 EI1

2 EI1
L1

EA1
L1

12 EI1
L31

2 EI1
L1

K1loc =

K2loc =

L21
EA1
L1

0
12 EI1
L31

6 EI1
L21

6 EI1

EA2
L2

12 EI2
L32

6 EI2
L22

6 EI2

4 EI2
L2

L21

L22

2
EA
L

6 EI2

12 EI2
L32
L22

6 EI2
L22

2 EI2
L2

EA1
L1

EA2
L2

L21

6 EI1
L21

6 EI1
L21

4 EI1
L1

12 EI2
L32

6 EI2
L22

6 EI2

2 EI2
L2

EA2
L2

12 EI2
L32

L22

6 EI2
L22

6 EI2
L22

4 EI2
L2

Capitolo 3: Il metodo degli elementi finiti

86

Singolarit della matrice di rigidezza (la matrice di rigidezza del singolo elemento
finito asta risulta semidefinita positiva per il moto rigido che le consentito)
In[3]:=

Det@K1loc D
Det@K2loc D

Out[3]=

Out[4]=

Cambio di riferimento della matrice di rigidezza dal locale al globale.


NB - Per le travi continue si potrebbe omettere questa fase perch il riferimento
globale coincide con quello locale dell'asta
Definizione del rifeirmento locale di ogni nodo.
In[5]:=

1 = 0; 1 = Pi 3; 2 = Pi 3; 2 = 0;

Q=

Cos@D
Sin@D
0
0
0
0

Sin@D
Cos@D
0
0
0
0

0
0
1
0
0
0

0
0
0
Cos@D
Sin@D
0

0
0
0
Sin@D
Cos@D
0

Q1 = Q . 8 1, 1<;
Q2 = Q . 8 2, 2<;
Row@8"Q1 = ", Q1 MatrixForm, "
1
0
0
Out[9]=

Q1 =

0 0
1 0
0 1

0
0
0

0 0

1
2

0 0

0 0

0
0
0

3
2

0
0
0
3
2

1
2

0
0
0
;
0
0
1

Q2 = ", Q2 MatrixForm <D


1
2

3
2

Q2 =

0
0
0
0

3
2

0 0

1
2

0 0

0
0
0
0

1
0
0
0

0
1
0
0

0
0
0
1

0
0
1
0

Matrici di rigidezza dei singoli EF nel riferimento globale


In[10]:=

K1g = Transpose @Q1D.K1loc.Q1;


K2g = Transpose @Q2D.K2loc.Q2;
MatrixForm @K1gD;
MatrixForm @K2gD;

Capitolo 3: Il metodo degli elementi finiti

87

Matrici booleane o di connettivit o di congruenza o di compatibilit degli elementi


finiti - legano il vettore degli elementi finiti nella numerazione nodale globale
(dimensione 12x1) al vettore dell'elemento finito nella numerazione locale
(dimensione 6x1).

La matrice di connettivit ha, dunque, dimensione 6x12.

In[14]:=

In[16]:=

Out[16]=

C1 =

1
0
0
0
0
0

0
1
0
0
0
0

0
0
1
0
0
0

0
0
0
1
0
0

0
0
0
0
1
0

0
0
0
0
0
1

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

C2 =

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

1
0
0
0
0
0

0
0
0
0
0
0

0
0
1
0
0
0

0
0
0
0
0
0

0
1
0
0
0
0

0
0
0
0
0
0

0
0
0
1
0
0

0
0
0
0
1
0

0
0
0
0
0
1

Row@8"Tras. C1 = ", MatrixForm @Transpose @C1DD,


"
Tras. C2 = ", MatrixForm @Transpose @C2DD<D

Tras. C1 =

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

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

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

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

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

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

Tras. C2 =

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

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

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

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

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

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

Assemblaggio matrici di rigidezza dei singoli elementi finiti per formare la matrice
di rigidezza della struttura libera da vincoli.
NB - Si pu costruire l'assemblaggio "manualmente" sovrapponendo la matrice di
rigidezza nei gradi di libert di competenza.
La matrice di rigidezza del 1 EF impegna le prime 6 righe e 6 colonne, la matrice
di rigidezza del 2 EF impegna le ultime 6 righe e 6 colonne della matrice di
rigidezza assemblata che una matrice 9x9.
In[17]:=

K = Transpose @C1D.K1g.C1 + Transpose @C2D.K2g.C2;


MatrixForm @KD;

Singolarit della matrice di rigidezza globale del modello a elementi finiti (questa
matrice di rigidezza risulta semidefinita positiva per il moto rigido che le
consentito, poich non sono ancora assegnate le condizioni al contorno)
In[19]:=
Out[19]=

Det@KD
0

Forze nodali equivalenti nel riferimento locale dei singoli elementi finiti in questo

Capitolo 3: Il metodo degli elementi finiti

88

caso coincidono con quelle nel riferimento globale.


In[20]:=

In[22]:=

F1loc = Transpose B::0,

qt1 L1

F2loc = Transpose B::0,

qt2 L2

qt1 L1 2
,

12
qt2 L2 2

qt2 L2
, 0,

12

Row@8"F1loc = ", MatrixForm @F1loc D, "

qt1 L1 2
12

qt2 L2 2
12

>>F;
>>F;

F2loc = ", MatrixForm @F2loc D<D

L1 qt1

L2 qt2

2
1
L2
12 2

1
12

F1loc =

Out[22]=

qt1 L1
, 0,

L21

qt1

F2loc =

qt2

L1 qt1

L2 qt2

12 L21 qt1

12 L22 qt2

vettori forze nodali equivalenti del nodo trasferite nel riferimento locale del nodo
stesso
In[23]:=

In[25]:=

F1g = Transpose @Q1D.F1loc;


F2g = Transpose @Q2D.F2loc;
Row@8"F1g = ", MatrixForm @F1gD, "
0

1
4

L1 qt1

Out[25]=

F1g =

2
1
L2
12 1
1
4

F2g = ", MatrixForm @F2gD<D


3 L2 qt2

L2 qt2

qt1

3 L1 qt1

F2g =

4
1
L2
12 2

L1 qt1

L2 qt2

1
12

L21

qt2

1
12 L22 qt2

qt1

Assemblaggio forze nodali equivalenti dei singoli elementi finiti per otenere il
vettore forza nodale equivalente del modello a elementi finiti
In[26]:=

F = Transpose @C1D.F1g + Transpose @C2D.F2g;


MatrixForm @FD

Out[27]//MatrixForm=

0
L1 qt1
2
1
12
1
4

L21 qt1
3 L1 qt1 +

1
4

3 L2 qt2

L1 qt1
4
1
12
L21 qt1 +

0
L2 qt2
4

0
0
L2 qt2
2
1
12
L22 qt2

1
12

L22 qt2

Capitolo 3: Il metodo degli elementi finiti

89

Applicazione delle condizioni essenziali di vincolo

Vettore spostamenti nodali della struttura


In[28]:=

U = 8U1, U2, 3, U4, U5, 6, U7, U8, 9, U10, U11, 12<;

PER IMPORRE LE CONDIZIONI VINCOLARI A SPOSTAMENTO NULLO.


Della matrice di rigidezza occorre effettuare la contrazione eliminando le righe 1,
2, 3, 5, 8 e le rispettive colonne. Si applica un operatore di contrazione mettendo
tutti zeri alle colonne da cancellare.
L'operatoredi contrazione una matrice 4x9

In[29]:=

0
0
0
0
0
0

OpContr =

0
0
0
0
0
0

0
0
0
0
0
0

1
0
0
0
0
0

0
1
0
0
0
0

0
0
1
0
0
0

0
0
0
0
0
0

0
0
0
1
0
0

MatrixForm @Transpose @OpContr DD


Out[30]//MatrixForm=

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

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

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

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

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

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

0
0
0
0
0
0

0
0
0
0
1
0

0
0
0
0
0
0

0
0
0
0
0
1

Capitolo 3: Il metodo degli elementi finiti

In[31]:=

90

Kcontr = OpContr.K.Transpose @OpContr D;


Ucontr = OpContr.U;
Fcontr = OpContr.F;
MatrixForm @Kcontr D
MatrixForm @Ucontr D
MatrixForm @Fcontr D

Out[34]//MatrixForm=
9 EI1

EA 1

L31

4 L1

3 EI1
L31

3 EI1

3 EI2
L32

L32

3 EI1
L31

3 EI 1
L31

4 L1
3 EI2
L22
3 EA2

EA2

4 L1

3 EI1

3 EI1

L21

4 EI1
L1

3 EI2

3 EI2

L22

L32

3 EA2
4 L2

L21

L21

L22

4 L1

3 EA1

3 EI1

3 EI2

3 EA1

4 L2

2 L2

EA2
4 L2

3 EA1

L21

9 EI2

EA2

3 EI2

L2

L22

3 EI2

3 EI2

L22

L32

2 EI2

3 EI2

L2

L22

L2
3 EA2

4 L2

2 L2

2 L2

EA2
L2

L22

2 EI2

3 EA2

3 EA2

3 EI2

0
+

2 L2

4 EI2

3 EI2
L22

0
4 EI2
L2

Out[35]//MatrixForm=

U4
U5
6
U8
U10
12
Out[36]//MatrixForm=
1
4

3 L1 qt1 +

1
4

3 L2 qt2

L1 qt1
4
1
12
L21 qt1 +

1
12

L22 qt2

L2 qt2
4

0
1
12
L22 qt2

Kcontr la (vera) matrice di rigidezza della struttura con i vincoli e non risulta
singolare ed definita positiva e quindi a determinante non nullo e positivo
In[37]:=

Det@Kcontr D
36 EA1 EA2 EI21 EI22

Out[37]=

L51 L52

Matrice della cedibilit della struttura nel riferimento globale


In[38]:=

Cced = FullSimplify @Inverse @Kcontr DD;


MatrixForm @Cced D;

Il campo degli spostamenti nodali soluzione risulta:


In[40]:=

UcontrSOL = FullSimplify @Cced.Fcontr D;


MatrixForm @UcontrSOL D;

Capitolo 3: Il metodo degli elementi finiti

91

SOLUZIONE CON CARICO SUI DUE TRATTI


In forma numerica scegliendo i seguenti profilati (kg cm)
profilato 1 : HE220A
profilato 2 : IPE 200
In[42]:=

qt1 = 5; qt2 = 6;
L1 = 300; L2 = 400;
EA1 = 2.1 106 64.34; EI 1 = 2.1 106 5410;
6

EA2 = 2.1 10 33.37; EI 2 = 2.1 10 2772;


MatrixForm @Kcontr D
MatrixForm @Fcontr D
Out[46]//MatrixForm=

160 999.
192 834.

192 834.
339 047.

466 879.
378 700.

75 388. 87 596.3
0
0

466 879.
75 388.
87 596.3

378 700.
0
0

2.09692 108 109 148.


109 148.
131 667.
0
151 721.

0
151 721.
175 193.

2.9106 107
109 148.
0

189 049.

2.9106 107

5.8212 107

109 148.

189 049.
0

Out[47]//MatrixForm=

975 3
375
42 500
600
0
80 000

Vettore contratto degli spostamenti nel riferimento globale.


In[48]:=

MatrixForm @UcontrSOL D

Out[48]//MatrixForm=

1.26062
0.727819
0.0106945
21.7333
19.4519
0.0326831

Vettore non contratto degli spostamenti nel riferimento locale di ogni nodo.
In[49]:=

Out[51]=

USOLgl = Transpose @OpContr D.UcontrSOL;


uuu = Table @HUg.iL, 8i, 12<D;
Row@8 MatrixForm @uuu D, MatrixForm @USOLgl D<D
Ug.1
Ug.2
Ug.3
Ug.4
Ug.5
Ug.6
Ug.7
Ug.8
Ug.9
Ug.10
Ug.11
Ug.12

0.
0.
0.
1.26062
0.727819
0.0106945
0.
21.7333
0.
19.4519
0.
0.0326831

Capitolo 3: Il metodo degli elementi finiti

Campo di spostamento nel riferimento globale dei due elementi.


In[58]:=

In[57]:=

Out[57]=

VUel1 = Flatten @C1.USOLgl D;


VUel2 = Flatten @C2.USOLgl D;
Row@8 VUegl1 = Q1.VUel1 MatrixForm, VUegl2 = Q2.VUel2 MatrixForm <D
0.
0.
0.
0.
1.45564
0.0106945

19.4519
9.77494
0.0106945
19.4519
0.
0.0326831

92

Capitolo 4 : Il metodo degli elementi finiti e i telai

4.1 Premessa
Si consideri un generico sistema di travi piane assemblate con nodi incastro relativi.

q3
F2

N7

N8
E8

E5

E4

H2

q2

q1
F1

N4

N5

N6
E7

E6

E1

H1

E3

E2

N1

N2
L1

N3
L2

x2
RIFERIMENTO GLOBALE
x1

Figura 4.1: Telaio costituito da travi assemblate con nodi incastri relativi.

Di seguito viene mostrato come sia possibile, applicando la teoria generale, ottenere
una soluzione esatta anzich approssimata. Ossia, si pu costruire uno spazio di

Capitolo 4: Il metodo degli elementi finiti e i telai

94

spostamenti soluzione H n , finitamente generato, che contenga la soluzione esatta del


problema dellequilibrio elastico.
Lenergia potenziale totale si pu scrivere:
=

1
T
T
] [C ][ ] dS - [ q ] [u ] dS
[

S
2 S

in cui il simbolo S sottintende lintera struttura, mentre quello [ q ] individua le forze di


superficie, ossia i carichi distribuiti. In particolare, nel modello di trave di Timoshenko :

0 0
N
EA

[ ] = [C ][ ] ; [ ] = T ; [ ] = ; [C ] = 0
M
0
0 EI

GAt

q
ou

0 ; [ q ] = q ; [u ] = v

mentre, nel modello di Eulero-Bernoulli:

[ ] = [C ][ ]

0
N
EA

; [ ] = ; [ ] = ; [C ] =
M
0 EI

qzu


; [ q ] = q v ; [u ] = .

In realt potrebbero essere considerati anche enti concentrati, come ad esempio le


forze concentrate, per le quali si pu introdurre la rappresentazione con la distribuzione
delta di Dirac, oppure sommare il lavoro come forza concentrata per la componente di
spostamento secondo la forza.
Prima di definire il metodo agli elementi finiti per i telai verranno introdotte alcune
nozioni sulla matrice di cambio di riferimento (matrice di rotazione), sulla matrice delle
connessioni geometriche e sulloperatore di contrazione.

4.2 Matrice di rotazione


Una rotazione una trasformazione lineare delle coordinate cartesiane nel piano o nello
spazio che conserva le distanze dei punti del piano e lascia invariato un punto fisso O.
Assieme alla traslazione uno dei movimenti che caratterizza completamente il moto di un
corpo rigido in meccanica classica.

Capitolo 4: Il metodo degli elementi finiti e i telai

95

Una rotazione piana caratterizzata dal centro di rotazione O e da un angolo detto


angolo di r otazione individuato dalle due posizioni assunte dalle semirette uscenti da O
prima e dopo la rotazione. Langolo definito positivo se antiorario.
Leffetto di una rotazione del sistema di riferimento su un generico punto (i)
espressa dalle seguenti relazioni che rappresentano anche il cambio di riferimento dal
(O, x , y , z ) :
riferimento globale (O, x, y, z ) a quello locale dellelemento finito

=
vi vie cos e uie sen e
=
ui uie cos e + vie sin e
che vengono rappresentate nelle seguenti figure:

Figura 4.2: C ambio di riferimento fra il globale e il locale. Relazione tra lo spostamento del punto ( i) in
direzione (y) del riferimento ruotato ( vi ) e il campo di spostamento secondo il riferimento iniziale ( ui , vi ).

Capitolo 4: Il metodo degli elementi finiti e i telai

96

Figura 4.3: C ambio di riferimento fra il globale e il locale. Relazione tra lo spostamento del punto ( i) in
direzione (x) del riferimento ruotato ( ui ) e il campo di spostamento secondo il riferimento iniziale ( ui , vi ).

Le relazioni viste prima vengono rappresentate anche in forma matriciale nel modo
seguente:
u i cos
=
v i sin

sin ui

cos vi

La matrice 2x2 che descrive la rotazione chiamata matrice di rotazione di angolo ,


rappresenta una trasformazione di coordinate che mette in relazione le coordinate di uno
stesso punto in due terne differenti (di origine comune) oppure consente di ruotare un
vettore in una stessa terna di coordinate.
Per un elemento finito monodimensionale (asta), definito da due punti, la matrice di
rotazione si specializza nel modo seguente:

Capitolo 4: Il metodo degli elementi finiti e i telai

cos

sin
0
Qe =
0
0

97

sin

cos
0

0
1

0
0

0
0

0
0

0 cos
0 sin

sin
cos
0

0
0

0
0

con la quale possiamo effettuare il cambio di riferimento della matrice di rigidezza dal
locale al globale. Se langolo = 0 il riferimento globale e locale coincidono.

4.3 Matrici delle connessioni geometriche


Le matrici di connessione C legano gli spostamenti nodali dei singoli elementi finiti a
quelli globali, nel caso di elementi finiti monodimensionali (aste), hanno dimensione
6x(Ng-nodi*3) e sono costituite da molti 0 e pochi 1, tali che la i-esima riga contiene
tutti 0 con lesclusione della j-esima colonna corrispondente alla coincidenza U ie =U j . Ad
esempio la seguente struttura:

Capitolo 4: Il metodo degli elementi finiti e i telai

98

costituita da 3 elementi asta e da 4 nodi nella numerazione globale quindi le matrici di


connessione avranno dimensione 6x12.
La matrice di connessione per lelemento N2 la seguente:

C2 =

1 1
u1 u2

0
0

0
u62 0
u12
u22
u32
u42
u52

u13 u42

u52

u62

4
u73 u83 u93 u10

4 u4
u11
12

0
0

0
0

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

0
0
0
0
0

1
0
0
0
0

0
1
0
0
0

0
0
1
0
0

0
0
0
0
0

0
0
0
0
0

0
0
0
0
0

0
0
0
1
0

0
0
0
0
1

come si pu vedere la matrice C2 lega gli spostamenti del primo nodo dellelemento con
gli spostamenti del nodo N2 nella numerazione globale e gli spostamenti del secondo
nodo dellelemento con gli spostamenti del nodo N4 nella numerazione globale.

4.4 Operatore di contrazione


Loperatore di contrazione ci consente di passare da una matrice di dimensione (nxm) ad
unaltra di dimensione (n-i x m-i) dove (i) indica il numero di righe e colonne da eliminare.
Supponiamo di voler passare da una matrice 3x3 ad una matrice 2x2 eliminando la
riga 3 e la colonna 3 quindi si vuole ottenere lestratta costruita dalle prime due gighe e due

a11

colonne. Se la matrice di partenza A= a21


a
31

a12
a22
a32

a13
a

a23 , lestratta Aestr. = 11


a21
a33

a12
.
a22

Per effettuare il passaggio da A ad Aestr. si utilizza un operatore di contrazione che


premoltiplica (Cpre) e postmoltiplica (Cpost) la matrice A. Esso ha dimensione 2x3 nella
premoltiplicazione

dimensione

[Cpre(2x3)].[A(3x3)].[Cpost(3x2)].

3x2

nella

postmoltiplicazione:

Aestr.(2x2)

Capitolo 4: Il metodo degli elementi finiti e i telai

99

Con loperazione [Cpre].[A] si estraggono le prime due righe di A, ottenendo la


seguente

matrice

a
Aestr. = 11
a21

a11

a21

a12
a22

a13

a23

che

moltiplicata

per

[Cpost]

restituisce

a12
.
a22

Cpre serve a selezionare le righe da estrarre ed costituita nel seguente modo:


1 0 0
Cpre =

0 1 0
quindi moltiplicando [Cpre].[A] si ottiene la matrice seguente:

a11
1 0 0

. a21
0 1 0 a
31

a12
a22
a32

a13
a
a23 = 11
a
a33 21

a12
a22

a13

a23

Cpost serve a selezionare le colonne da estrarre ed costituita nel seguente modo:

1 0

Cpost = 0 1
0 0

quindi moltiplicando la matrice ottenuta dalloperazione precedente per [Cpost] si


ottiene la matrice seguente:

a11

a21

a12
a22

1 0
a13
a11
.0 1=
a23
a21
0 0

a12

a22

cio alla matrice estratta desiderata.


Con loperatore di contrazione possiamo ricavare la matrice di rigidezza dellintera
struttura vincolata da quella non vincolata eliminando le righe e colonne corrispondenti
agli spostamenti vincolati.

Capitolo 4: Il metodo degli elementi finiti e i telai

100

4.5 Gli elementi finiti e i telai


Lo studio di un telaio si pu ricondurre allo studio dello stesso sistema di travi caricate solo
da forze nodali, ottenute come sommatoria delle azioni di incastro perfetto di tutte le aste
concorrenti in quel nodo. Il problema elastico si riconduce allora a studiare il caso delle
travi scariche che si deformano sotto le azioni nodali.
In questa situazione, il FEM nella sua formulazione generale pu considerare la
singola asta come un singolo elemento finito, risolvendo il problema dellequilibrio
elastico in modo esatto senza introdurre alcuna approssimazione. Infatti, lo spazio delle
configurazioni della struttura a dimensione finita. Ossia, in virt del fatto che lo
spostamento dellintera struttura pu essere reso dipendente, esclusivamente, dagli
spostamenti nodali, rimane acquisito che lo spazio di tutte le possibili soluzioni viene reso
coincidente con uno spazio, finitamente generato, ottenuto considerando quali parametri
generanti i gradi di libert nodali.
Nel caso particolare di travi a rigidezza costante lungo lasse, la deformata
trasversale della trave rappresentata da un polinomio cubico e la deformata assiale da un
polinomio lineare (sempre, ovviamente, nellascissa curvilinea).
Le matrici delle funzioni di forma dellelemento finito N e ( s ) forniscono il
campo esatto di spostamenti e pertanto la discretizzazione esatta.
Lo

sviluppo

di

una

procedura

che

si

presta

immediatamente

ad

unalgoritmizzazione o automatizzazione passa per la condizione di esprimere il campo di


spostamento del singolo elemento finito di trave in un riferimento locale avente come asse
di riferimento lasse della trave e lasse y ad esso trasversale.
Lo spostamento di ciascun nodo rappresentato da due componenti di spostamento
e da una di rotazione. Lo spostamento di ogni elemento finito individuato dagli

Capitolo 4: Il metodo degli elementi finiti e i telai

101

spostamenti dei nodi cui fa capo. In particolare considerando lelemento finito e-esimo,
individuato dai nodi i e j, si ponga:
T

e
U e =u,uie ,v,v
ie ej ej ej .
i , ,


nodo i

nodo j

La deformata assiale e trasversale si pu scrivere facilmente attraverso la relazione


classica degli elementi finiti:
u e ( s ) =N
e ( s ) U e ,
che, con lausilio delle funzioni di Hermite, da luogo, nel riferimento locale, a:

s e s e
u e ( s ) =
1
ui + u j
l
l

s2
s2
s3
s 2 s3
s3
v e ( s ) = 1 3 2 + 2 3 vie + s 2 + 2 ie + 3 2 2 3
l l
l
l
l

e s 2 s3
v j + + 2

l l

e
j

Le componenti di deformazione si ricavano immediatamente dal campo di spostamento per


derivazione:
e = [ D ][u ] = [ D ] N e U e = B e U e
u e
l

e (s) =
i +

u ej

l
s
s
s
6
4
6
2 6
e ( s )= 2 + 12 3 vie + + 6 2 ie + 2 12 3 v ej + + 2 ej .
l
l
l
l
l
l
l l

Loperatore differenziale [ D ] , nei due modelli di trave, :


du

=
[ ] = [ D ][u ] = ds
2
0 - d v

ds 2
d

0
ds

[ D ] =
d2

0 - ds 2

d
ds

0
u

2
d v
- 2
ds

Euler - Bernoulli

Capitolo 4: Il metodo degli elementi finiti e i telai

102

du

ds
dv
[ ] = [ D ][u ] = + =
ds

d
ds
d
ds

[ D ] = 0

0
d
ds
0

d
ds

0
d
ds
0

0
u
1 v


d
ds

d
ds

Timoshenko

Le relazioni precedenti si possono assemblare facilmente in forma matriciale,


ottenendo cosi le matrici N e ( s ) e B e ( ( s ) =[ D ] N e ( s ) , che per brevit si omettono.
I carichi esterni sono applicati direttamente ai nodi per cui le componenti delle
forze generalizzate f e nel riferimento locale dellelemento finito sono coincidenti con
le forze risultanti nodali lette nel riferimento locale allelemento finito e.
La matrice di rigidezza dellEF :
T

K e = e B e C e B e ds
S
Applicando le relazioni precedenti si ottiene la matrice di rigidezza:
EA
0
l

12EI
0

l3

6EI
0

l2
K e =
EA
0
l

12EI
- 3
0
l

6EI
0
l2

0
6EI
l2
4EI
l
0
6EI
l2
2EI
l

EA
l
0
0
EA
l
0
0

0
12EI
l3
6EI
- 2
l

0
12EI
l3
6EI
- 2
l

6EI
l2

2EI
l

6EI
- 2
l
4EI
l

Capitolo 4: Il metodo degli elementi finiti e i telai

103

Il carattere tilde ( ) , sopra la matrice di rigidezza dell elemento finito e, esprime che la
medesima valutata rispetto al riferimento locale. La matrice di rigidezza precedente ha
una struttura molto semplice, immediata e facilmente controllabile con le molte tecniche
strutturali manuali e, si costruisce in modo automatico per tutte le travi. Essa tuttavia
funzione delle componenti nel riferimento locale. Per ottenere unespressione utile
dellEPT in grado di contenere le incognite spostamenti globali (cio letti nel riferimento
generale) si deve effettuare il passaggio delle componenti di spostamento dal riferimento
globale al locale, ossia occorre esprimere le componenti di spostamenti nel riferimento
locale rispetto a quelle del riferimento globale:
e
uie cossin
0 e u ie
e
e
e
e
e
e
vi = -sin cos 0 v i u = Q u
ie 0
0
1 ie

essendo e langolo di inclinazione della retta ij, passante per i nodi individuanti l
elemento finito e.
La matrice di trasformazione globale del campo di spostamento completo
dellelemento finito :
Q e [0 ]
e
e
e


U e ,
U =
Q U =
[0 ] Q e

in cui [0 ] la matrice nulla (3x3), Q e la matrice di passaggio (6x6), vista nel


paragrafo 4.2, dal riferimento globale al locale. LEPT del singolo elemento finito diventa:
T
T
T
1
e U e = U e Q e K e Q e U e - f e Q e U e ,
2

che consente di definire la matrice di rigidezza dellelemento finito e ed il vettore forze nel
riferimento globale:
T
K e =Q
e K e Q e

, f e = f e Q e .

Capitolo 4: Il metodo degli elementi finiti e i telai

104

A questo passaggio segue lassemblaggio con la matrice delle connessioni geometriche.


Nel caso di sistemi di travi si pu pervenire direttamente al sistema di equazioni che si
risolvono anche senza ricorrere al concetto di elemento finito.
La matrice della rigidezza pu essere definita direttamente avendo il significato
fisico di legame fra forze e spostamenti di estremit (il metodo degli spostamenti pu darne
un significato immediato). Lassemblaggio pu anche essere disposto effettuando
lequilibrio ai nodi.
Da quanto detto, rimane acquisito che per quanto concerne lo studio dei telai,
possibile ricercare, con lutilizzo del metodo degli elementi finiti, la soluzione esatta
anzich quella approssimata. Tutto ci perch possibile ricondurre la struttura, comunque
caricata, alla stessa caricata da sole azioni nodali, equivalenti sotto il profilo cinematico, ai
carichi iniziali. Il campo di spostamento sar noto quando si saranno ricercati i valori dei
parametri di libert dei nodi. Si fa notare che la scelta dei punti nodali viene effettuata,
generalmente, in base a considerazioni geometriche. La suddivisione che viene fatta di un
telaio , in generale, sostanziata dalla necessit di ricondurre lo stesso ad un insieme di
elementi finiti monodimensionali di cui si conoscono le funzioni di forma, che unite ai
parametri di libert nodali consentono la ricerca della soluzione esatta. Si detto, per i
carichi agenti sulla struttura, che essi possono essere costituiti da carichi distribuiti ma,
anche, da enti concentrati, qualunque essi siano, purch venga introdotta, per gli stessi,
unopportuna rappresentazione. Si potrebbe pensare di evitare ci fissando dei nodi anche
in corrispondenza dei punti in cui siano applicati tali enti concentrati. Sicch essi
andrebbero computati nel vettore comprendente le azioni nodali. Ci, in presenza di un
considerevole

numero

di

azioni

concentrate,

causerebbe

laumento,

altrettanto

considerevole, delle incognite nodali. Inoltre, risulterebbe di difficile implementazione, nel


senso di seguito chiarito.

Capitolo 4: Il metodo degli elementi finiti e i telai

105

Infatti, supponiamo di aver considerato una struttura e ipotizziamo che la geometria


della stessa sia nota. In linea generale lecito pensare che la suddivisione della stessa in
elementi finiti componenti possa essere effettuata a prescindere dalla particolare
combinazione di carico che su di essa agisce. Nel caso in cui si vogliano trattare gli enti
concentrati, introducendo ulteriori nodi, la suddivisione della struttura in elementi finiti
risulterebbe funzione della posizione di tali enti. Al variare del numero, o della posizione
stessa delle azioni esterne concentrate, andrebbe variata la suddivisione della struttura in
elementi finiti. Si intuisce facilmente come in questo caso il FEM risulterebbe di difficile
implementazione. Infatti, considerato un codice di calcolo, si supponga di implementare un
programma per la risoluzione di un determinato schema; la struttura del programma
andrebbe variata di volta in volta, in presenza di differenti combinazioni di carico, per
ovvie esigenze pratiche. Come si vedr in modo pi completo e con risvolti pi pratici nel
capitolo relativo ai programmi svolti, la presenza di enti concentrati, di discontinuit
relative sia ai carichi distribuiti e sia alla geometria del modello monodimensionale
individuante il singolo elemento finito, crea un viatico per linserimento e lottimizzazione
nellambito dellanalisi dei telai, attraverso il metodo degli elementi finiti, delle funzioni di
forma.

4.6 Le funzioni di forma


Una procedura alternativa, pi semplice, e che consente di risolvere, fissata una volta e per
tutte il corpo di un programma allinterno di un codice di calcolo, un dato schema,
comunque fissata su di esso una generica combinazione di carichi ivi comprese le azioni
esterne concentrate, basata sullutilizzo delle funzioni singolari. Infatti, si supponga di
considerare un telaio dalla geometria nota e lo si suddivida in certo numero di elementi
finiti. Come verr mostrato nel capitolo relativo ai programmi svolti, possibile
considerare ogni singolo elemento monodimensionale e risolvere lo stesso in presenza di

Capitolo 4: Il metodo degli elementi finiti e i telai

106

una generica combinazione di carichi grazie allutilizzo delle funzioni singolari. Eseguito
tale passaggio per tutti gli elementi finiti, si proseguir con la ricerca della soluzione in
termini di parametri di libert nodali, che una volta noti risulteranno utili alla definizione
dei campi soluzioni sui singoli elementi finiti. Quanto appena detto valido non solo in
presenza di azioni esterne concentrate, ma anche in presenza di vincoli interni o di
discontinuit e/o variabilit dei valori delle rigidezze, siano essi dovuti ad una variazione
dellaltezza della sezione o ad una variazione delle caratteristiche di deformabilit
dellelemento. Si potrebbe a tal punto parlare di funzioni di forma con nuclei di singolarit.
Si faccia riferimento alla successiva figura:

Si supponga che tale elemento faccia parte di una generica struttura. Da quanto si
asserito in precedenza, in presenza di una generica combinazione di carichi, che per
semplicit formale si supposta composta da una singola forza, possibile ricavare la
funzione abbassamento, da cui tutti i rimanenti campi incogniti. Note le funzioni taglio e
momento, possibile valutare le azioni che la trave trasmette ai nodi attraverso la
determinazione delle funzioni taglio e momento in corrispondenza delle sezioni di
estremit della trave, tenendo opportunamente in considerazione i segni, in modo da
assemblare il vettore azioni nodali nel riferimento globale (si noti che la coppia (y,z) della
figura non rappresenta altro che un riferimento locale, non necessariamente coincidente
con quello globale). La funzione abbassamento risulta essere:

Capitolo 4: Il metodo degli elementi finiti e i telai

107

2 L2 PF z z 3 H ( PF z ) L + PF 3 H ( PF z ) L PF 3 L
F
v ( z ) =

.
2
2
2
3
3
6 LEI x 3PF zH ( PF z ) L + 3PF z H ( PF z ) L 3PF z L + PF z + zPF
e
F

Si nota, immediatamente, come essa si presti facilmente allutilizzo nellambito


dellimplementazione di un programma, allinterno di un codice di calcolo. Ovviamente,
questo esempio risulta essere un caso del tutto particolare, poich si sarebbe potuto
prendere in considerazione:

una qualsiasi e pi complessa combinazione di carico, con la possibilit di


considerare qualsiasi ente concentrato e qualsiasi tipologia di carico distribuito;

un elemento finito con rigidezze variabili lungo lasse; un caso particolare sarebbe
una trave ad altezza variabile. Si fa notare che quando si utilizza il termine
variabile non si fatta alcuna ipotesi riguardo la continuit delle funzioni in esame,
in questo caso le rigidezze; ossia, possibile considerare le funzioni di rigidezza
variabili lungo lasse ma con la possibilit di contemplare in esse, la presenza di
discontinuit sulla funzione stessa e sulle derivate successive;

un elemento finito allinterno del quale siano presenti dei vincoli interni.
Queste tre condizioni enunciate, ovviamente, possono essere tra di loro combinate, s

da costituire un elemento definito da un elevato numero di parametri, ma che una volta


costruito consente, attraverso lutilizzo di un codice di calcolo, la risoluzione di un
qualsiasi schema, di cui esso parte, senza alcun onere computazionale.
Ovviamente le funzioni di forma, se le rigidezze non sono pi costanti lungo lasse o
vengono inseriti dei vincoli interni, non coincidono pi con le funzioni di Hermite, e
andranno ricavate caso per caso. Risulta evidente che, mentre lestensione alle funzioni
singolari nellambito della descrizione di generiche combinazioni di carico risulta
conveniente, nei rimanenti due casi si va incontro a delle complicazioni, connesse,
chiaramente, con la modifica delle componenti della matrice di rigidezza.

Capitolo 4: Il metodo degli elementi finiti e i telai

108

Ritornando al problema su esposto, si mostrato come sia possibile ricavare le azioni


nodali dovute ad un elemento finito, in presenza di un ente forza concentrato, utilizzando
una funzione spostamento, composta da ununica espressione, ottenuta attraverso la
simulazione dellente forza con un impulso di Dirac. Si potrebbero ricavare le azioni nodali
per tutti gli elementi finiti, ciascuno soggetto ad una qualsivoglia combinazione di carichi,
assemblarli in un vettore forza nodali e ricavare attraverso la relazione

[ K ][U ] =[ f ]
i valori dei parametri di libert nodali. Noti questi possibile analizzare, in una fase di
post-processing, ogni singolo elemento finito e ottenere lo spostamento come somma della
abbassamento dovuto alla presenza dei carichi, nel nostro caso della forza, con quello
dovuto ai cedimenti vincolari, ora noti. Nel caso in esame, in modo generale si ottiene:
vFe ( z ) =

2 L2 PF z z 3 H ( PF z ) L + PF 3 H ( PF z ) L PF 3 L
F

6 LEI x 3PF 2 zH ( PF z ) L + 3PF z 2 H ( PF z ) L 3PF z 2 L + PF z 3 + zPF 3

z2
z 2 z3
z2
z3
z 2 z3
z3
vei , vi ( z ) = 1 3 2 + 2 3 vie + z 2 + 2 ie + 3 2 2 3 v ej + + 2 ej
l
l
l
l
l
l

l
l

v e ( z ) = vei , vi ( z ) + vFe ( z ) spostamento soluzione


Noto lo spostamento soluzione dellequilibrio elastico, si ricavano gli altri campi incogniti.

Capitolo 4: Il metodo degli elementi finiti e i telai

109

4.7 Polinomi di Hermite


Si ricava la funzione di Hermite per l'abbassamento in A unitario operando
l'integrazione con l'equazione differenziale della linea elastica integrata con le
condizioni al contorno

In[1]:=

Out[1]=

In[2]:=

Out[2]=

In[3]:=

Out[3]=

A = DSolve @8v '''' @zD  0, v@0D  1, v '@0D  0, v@LD  0, v '@LD  0<, v@zD, zD
::v@zD

L 3 3 L z 2 + 2 z3
L3

>>

H1 = Simplify @v@zD . A @@1DDD


H L z L2 H L + 2 z L
L3

Expand @H1D
1

3 z2
L2

2 z3
L3

Si calcola la funzione di hermite ai limiti


In[4]:=

H1 . z
H1 . z
HD@H1,
HD@H1,
Out[4]=

Out[5]=

Out[6]=

Out[7]=

0
L
zDL . z 0
zDL . z L

si inserisce una valore numerico per L per effettuare il grafico che eseguito per
l'asse delle ordinate verso l'alto. Per confrontarlo con il nostro riferimento della
trave occorre effettuare il simmetrico rispetto all'asse delle ascisse.
In[8]:=

L = 5;

Capitolo 4: Il metodo degli elementi finiti e i telai

In[9]:=

110

Plot @H1, 8z, 0, 5<D


1.0

0.8

0.6
Out[9]=

0.4

0.2

In[10]:=

Si ricava la funzione di Hermite per la rotazione in A unitaria operando


l'integrazione con l'equazione differenziale della linea elastica integrata con le
condizioni al contorno

Quit @D;
A = DSolve @8v '''' @zD  0, v@0D  0, v '@0D  1, v@LD  0, v '@LD  0<, v@zD, zD
::v@zD

L2 z + 2 L z2 z3
L2

>>

H1 = Simplify @v@zD . A @@1DDD

H L z L2 z
L2

Expand @H1D
z +

2 z2
L

z3
L2

Capitolo 4: Il metodo degli elementi finiti e i telai

111

Si calcola la funzione di hermite ai limiti


H1 . z
H1 . z
HD@H1,
HD@H1,

0
L
zDL . z 0
zDL . z L

0
0
1
0

si inserisce una valore numerico per L per effettuare il grafico.


L = 10;
Plot @H1 , 8z, 0, 10 <D
1.4
1.2
1.0
0.8
0.6
0.4
0.2

10

Si ricava la funzione di Hermite per l'abbassamento in B unitario operando


l'integrazione con l'equazione differenziale della linea elastica integrata con le
condizioni al contorno

Quit @D;
A = DSolve @8v '''' @zD  0, v@0D  0, v '@0D  0, v@LD  1, v '@LD  0<, v@zD, zD
::v@zD

3 L z2 2 z3
L3

>>

Capitolo 4: Il metodo degli elementi finiti e i telai

112

H2 = Simplify @v@zD . A @@1DDD


H3 L 2 zL z2
L3

Expand @H2D
3 z2
L2

2 z3
L3

Si calcola la funzione di hermite


H2 . z
H2 . z
HD@H2,
HD@H2,

0
L
zDL . z 0
zDL . z L

0
1
0
0

si inserisce una valore numerico per L per effettuare il grafico.


L = 10;
Plot @H2, 8z, 0, 10 <D
2

10

-0.2

-0.4

-0.6

-0.8

-1.0

Si ricava la funzione di Hermite per la rotazione in B unitaria operando


l'integrazione con l'equazione differenziale della linea elastica integrata con le
condizioni al contorno

Quit @D;

Capitolo 4: Il metodo degli elementi finiti e i telai

113

A = DSolve @8v '''' @zD  0, v@0D  0, v '@0D  0, v@LD  0, v '@LD  1<, v@zD, zD
::v@zD

L z2 z3
L2

>>

H2 = Simplify @v@zD . A @@1DDD


HL zL z2
L2

Expand @H2D
z2
L

z3
L2

Si calcola la funzione di hermite


H2 . z
H2 . z
HD@H2,
HD@H2,

0
L
zDL . z 0
zDL . z L

0
0
0
1

si inserisce una valore numerico per L per effettuare il grafico.


L = 10;
Plot @H2, 8z, 0, 10<D
2

10

-0.2
-0.4
-0.6
-0.8
-1.0
-1.2
-1.4

Si ricava la funzione di forma per la trave con carico uniformemente distribuito

Capitolo 4: Il metodo degli elementi finiti e i telai

114

Quit @D;
A = DSolve @8v '''' @zD  q EI, v@0D  0, v '@0D  0, v@LD  0, v '@LD  0<, v@zD, zD
::v@zD

L 2 q z 2 2 L q z 3 + q z4
24 EI

>>

Hq = Simplify @v@zD . A @@1DDD


q HL zL2 z2
24 EI
Expand @HqD
L2 q z2
24 EI

L q z3
12 EI

q z4
24 EI

Si calcola la funzione di hermite ai limiti


Hq . z
Hq . z
HD@Hq,
HD@Hq,

0
L
zDL . z 0
zDL . z L

0
0
0
0

si inserisce una valore numerico per L per effettuare il grafico.


L = 5;
EI = 2 10 ^ 5;
q = 10;
Plot @Hq, 8z, 0, 5<D
1
-0.00002

-0.00004

-0.00006

-0.00008

Capitolo 4: Il metodo degli elementi finiti e i telai

115

4.8 Applicazioni
4.8.1

Applicazione 1: telaio risolto con il metodo agli elementi finiti

Telaio, costituito da N 8 elementi e da N 8 nodi, risolto con il metodo degli


elementi finiti.

Gli elementi (1 2 3 4 5), cio i ritti, sono realizzati con profilato tipo HE 220A.
Gli elementi (6 7 8 ), cio i traversi, sono realizzati con profilato tipo IPE 200.
I nodi 1 e 2 sono incastri esterni, mentre, il nodo 3 una cerniera esterna.
I nodi dal numero 4 al numero 8 sono incastri relativi.
La Soluzione ottenuta per assemblaggio della matrice di rigidezza e del
vettore delle forze nodali.
Le condizioni al contorno sono inserite per imposizione di condizioni
omogenee (componenti di
spostamento nulle) utilizzando una matrice di contrazione.

Matrice di rigidezza nella forma piana estesa nel riferimento locale

In[267]:=

EA
L

12 EI

6 EI

L3

L2

6 EI

4 EI
L

Kloc =

L2
EA
L

0
12 EI
L3

6 EI
L2

EA
L

6 EI
L2

2 EI
L

12 EI
L3

L2

6 EI

2 EI
L

EA
L

12 EI
L3

L2

6 EI
L2

6 EI

6 EI
L2

4 EI
L

Capitolo 4: Il metodo degli elementi finiti e i telai

116

Matric1 di rigidezza dei singoli elementi finiti.


In[268]:=

In[276]:=

Out[276]=

Out[277]=

Out[278]=

Out[279]=

Out[280]=

K1loc
K2loc
K3loc
K4loc
K5loc
K6loc
K7loc
K8loc

=
=
=
=
=
=
=
=

Kloc
Kloc
Kloc
Kloc
Kloc
Kloc
Kloc
Kloc

Row@8"K1loc
Row@8"K2loc
Row@8"K3loc
Row@8"K4loc
Row@8"K5loc
Row@8"K6loc
Row @8"K7loc
Row@8"K8loc

K1loc =

K2loc =

K3loc =

K4loc =

K5loc =

.
.
.
.
.
.
.
.

EA
EA
EA
EA
EA
EA
EA
EA

=",
=",
=",
=",
=",
=",
=",
=",

K1
K2
K3
K4
K5
K6
K7
K8

EA1
EA2
EA3
EA4
EA5
EA6
EA7
EA8
=
=
=
=
=
=
=
=

.
.
.
.
.
.
.
.

EI
EI
EI
EI
EI
EI
EI
EI

EI1
EI2
EI3
EI4
EI5
EI6
EI7
EI8

.
.
.
.
.
.
.
.

L
L
L
L
L
L
L
L

L1;
L2;
L3;
L4;
L5;
L6;
L7;
L8;

MatrixForm @K1loc D<D


MatrixForm @K2loc D<D
MatrixForm @K3locD<D
MatrixForm @K4locD<D
MatrixForm @K5locD<D
MatrixForm @K6locD<D
MatrixForm @K7loc D<D
MatrixForm @K8loc D<D

149 520.
0

0
765.056

0
153 011.

149 520.
0

0
765.056

0
153 011.

0
149 520.
0

153 011.
0
765.056

4.0803 107
0
153 011.

0
149 520.
0

153 011.
0
765.056

2.04015 107
0
153 011.

153 011.

2.04015 107

153 011.

4.0803 107

149 520.
0

0
765.056

0
153 011.

149 520.
0

0
765.056

0
153 011.

0
149 520.
0

153 011.
0
765.056

4.0803 107
0
153 011.

0
149 520.
0

153 011.
0
765.056

2.04015 107
0
153 011.

153 011.

2.04015 107

153 011.

4.0803 107

149 520.
0

0
765.056

0
153 011.

149 520.
0

0
765.056

0
153 011.

0
149 520.
0

153 011.
0
765.056

4.0803 107
0
153 011.

0
149 520.
0

153 011.
0
765.056

2.04015 107
0
153 011.

153 011.

2.04015 107

153 011.

4.0803 107

149 520.
0

0
765.056

0
153 011.

149 520.
0

0
765.056

0
153 011.

0
149 520.
0

153 011.
0
765.056

4.0803 107
0
153 011.

0
149 520.
0

153 011.
0
765.056

2.04015 107
0
153 011.

153 011.

2.04015 107

153 011.

4.0803 107

149 520.
0

0
765.056

0
153 011.

149 520.
0

0
765.056

0
153 011.

0
149 520.
0

153 011.
0
765.056

4.0803 107
0
153 011.

0
149 520.
0

153 011.
0
765.056

2.04015 107
0
153 011.

153 011.

2.04015 107

153 011.

4.0803 107

Capitolo 4: Il metodo degli elementi finiti e i telai

Out[281]=

Out[282]=

Out[283]=

K6loc =

K7loc =

K8loc =

117

149 520.
0

0
765.056

0
153 011.

149 520.
0

0
765.056

0
153 011.

0
149 520.
0

153 011.
0
765.056

4.0803 107
0
153 011.

0
149 520.
0

153 011.
0
765.056

2.04015 107
0
153 011.

153 011.

2.04015 107

153 011.

4.0803 10

149 520.
0

0
765.056

0
153 011.

149 520.
0

0
765.056

0
153 011.

0
149 520.
0

153 011.
0
765.056

4.0803 107
0
153 011.

0
149 520.
0

153 011.
0
765.056

2.04015 107
0
153 011.

153 011.

2.04015 107

153 011.

4.0803 107

149 520.
0

0
765.056

0
153 011.

149 520.
0

0
765.056

0
153 011.

0
149 520.
0

153 011.
0
765.056

4.0803 107
0
153 011.

0
149 520.
0

153 011.
0
765.056

2.04015 107
0
153 011.

153 011.

2.04015 107

153 011.

4.0803 107

Cambio di riferimento della matrice di rigidezza dal locale al globale.


attraverso la matrice di cambio di riferimento.
In[284]:=

In[285]:=

Hvettore delle rotazioniL


Vr = 81 = Pi 2; 2 = Pi 2; 3 = Pi 2; 4 = Pi 2; 5 = Pi 2; 6 = 0; 7 = 0; 8 = 0<;
H matrice di cambio di riferimento L

Cos@D
Sin@D
0
0
0
0

Q=

In[286]:=

Q1
Q2
Q3
Q4
Q5
Q6
Q7
Q8

=
=
=
=
=
=
=
=

Q
Q
Q
Q
Q
Q
Q
Q

.
.
.
.
.
.
.
.

Sin@D
Cos@D
0
0
0
0

1;
2;
3;
4;
5;
6;
7;
8;

0
0
1
0
0
0

0
0
0
Cos@D
Sin@D
0

0
0
0
Sin@D
Cos@D
0

0
0
0
;
0
0
1

Capitolo 4: Il metodo degli elementi finiti e i telai

In[294]:=

Out[294]=

Out[295]=

Out[296]=

Out[297]=

Row@8"Q1
Row@8"Q3
Row@8"Q5
Row@8"Q7

",
",
",
",

Q1
Q3
Q5
Q7

Q1 =

0
1
0
0
0
0

1
0
0
0
0
0

0
0
1
0
0
0

0
0
0
0
1
0

0
0
0
1
0
0

Q3 =

0
1
0
0
0
0

1
0
0
0
0
0

0
0
1
0
0
0

0
0
0
0
1
0

Q5 =

0
1
0
0
0
0

1
0
0
0
0
0

0
0
1
0
0
0

0
0
0
0
1
0

Q7 =

1
0
0
0
0
0

=
=
=
=

0
1
0
0
0
0

0
0
1
0
0
0

0
0
0
1
0
0

MatrixForm,
MatrixForm,
MatrixForm,
MatrixForm,

0
0
0
0
1
0

";
";
";
";

118
=
=
=
=

"Q2
"Q4
"Q6
"Q8

0
0
0
; Q2 =
0
0
1

0
1
0
0
0
0

1
0
0
0
0
0

0
0
1
0
0
0

0
0
0
0
1
0

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

0
0
0
1
0
0

0
0
0
; Q4 =
0
0
1

0
1
0
0
0
0

1
0
0
0
0
0

0
0
1
0
0
0

0
0
0
0
1
0

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

0
0
0
1
0
0

0
0
0
; Q6 =
0
0
1

1
0
0
0
0
0

0
0
0
; Q8 =
0
0
1

1
0
0
0
0
0

0
1
0
0
0
0

0
1
0
0
0
0

0
0
1
0
0
0

0
0
1
0
0
0

0
0
0
1
0
0

",
",
",
",

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

Q2
Q4
Q6
Q8

",
",
",
",

0
0
0
0
1
0

MatrixForm
MatrixForm
MatrixForm
MatrixForm

<D
<D
<D
<D

0
0
0
0
0
1

0
0
0
0
0
1

Matrici di rigidezza dei singoli EF nel riferimento globale


In[298]:=

In[306]:=

Out[306]=

K1g
K2g
K3g
K4g
K5g
K6g
K7g
K8g

=
=
=
=
=
=
=
=

Transpose @Q1D.K1loc.Q1;
Transpose @Q2D.K2loc.Q2;
Transpose@Q3D.K3loc.Q3;
Transpose@Q4D.K4loc.Q4;
Transpose@Q5D.K5loc.Q5;
Transpose @Q6D.K6loc.Q6;
Transpose @Q7D.K7loc.Q7;
Transpose @Q8D.K8loc.Q8;

Row@8"K1g
Row@8"K2g
Row@8"K3g
Row@8"K4g
Row@8"K5g
Row@8"K6g
Row@8"K7g
Row@8"K8g

K1g =

=",
=",
=",
=",
=",
=",
=",
=",

MatrixForm @K1gD<D
MatrixForm @K2gD<D
MatrixForm @K3gD<D
MatrixForm @K4gD<D
MatrixForm @K5gD<D
MatrixForm @K6gD<D
MatrixForm @K7gD<D
MatrixForm @K8gD<D

765.056
0.

0.
149 520.

153 011.
0.

765.056
0.

0.
149 520.

153 011.
0.

153 011.
765.056
0.

0.
0.
149 520.

4.0803 107
153 011.
0.

153 011.
765.056
0.

0.
0.
149 520.

2.04015 107
153 011.
0.

153 011.

0.

2.04015 107

153 011.

0.

4.0803 107

Capitolo 4: Il metodo degli elementi finiti e i telai

Out[307]=

Out[308]=

Out[309]=

Out[310]=

Out[311]=

Out[312]=

Out[313]=

K2g =

K3g =

K4g =

K5g =

K6g =

K7g =

K8g =

119

765.056
0.

0.
149 520.

153 011.
0.

765.056
0.

0.
149 520.

153 011.
0.

153 011.
765.056
0.

0.
0.
149 520.

4.0803 107
153 011.
0.

153 011.
765.056
0.

0.
0.
149 520.

2.04015 107
153 011.
0.

153 011.

0.

2.04015 107

153 011.

0.

4.0803 107

765.056
0.

0.
149 520.

153 011.
0.

765.056
0.

0.
149 520.

153 011.
0.

153 011.
765.056
0.

0.
0.
149 520.

4.0803 107
153 011.
0.

153 011.
765.056
0.

0.
0.
149 520.

2.04015 107
153 011.
0.

153 011.

0.

2.04015 107

153 011.

0.

4.0803 107

765.056
0.

0.
149 520.

153 011.
0.

765.056
0.

0.
149 520.

153 011.
0.

153 011.
765.056
0.

0.
0.
149 520.

4.0803 107
153 011.
0.

153 011.
765.056
0.

0.
0.
149 520.

2.04015 107
153 011.
0.

153 011.

0.

2.04015 107

153 011.

0.

4.0803 107

765.056
0.

0.
149 520.

153 011.
0.

765.056
0.

0.
149 520.

153 011.
0.

153 011.
765.056
0.

0.
0.
149 520.

4.0803 107
153 011.
0.

153 011.
765.056
0.

0.
0.
149 520.

2.04015 107
153 011.
0.

153 011.

0.

2.04015 107

153 011.

0.

4.0803 107

149 520.
0.

0.
765.056

0.
153 011.

149 520.
0.

0.
765.056

0.
153 011.

0.
149 520.
0.

153 011.
0.
765.056

4.0803 107
0.
153 011.

0.
149 520.
0.

153 011.
0.
765.056

2.04015 107
0.
153 011.

0.

153 011.

2.04015 107

0.

153 011.

4.0803 107

149 520.
0.

0.
765.056

0.
153 011.

149 520.
0.

0.
765.056

0.
153 011.

0.
149 520.
0.

153 011.
0.
765.056

4.0803 107
0.
153 011.

0.
149 520.
0.

153 011.
0.
765.056

2.04015 107
0.
153 011.

0.

153 011.

2.04015 107

0.

153 011.

4.0803 107

149 520.
0.

0.
765.056

0.
153 011.

149 520.
0.

0.
765.056

0.
153 011.

0.
149 520.
0.

153 011.
0.
765.056

4.0803 107
0.
153 011.

0.
149 520.
0.

153 011.
0.
765.056

2.04015 107
0.
153 011.

0.

153 011.

2.04015 107

0.

153 011.

4.0803 107

Capitolo 4: Il metodo degli elementi finiti e i telai

120

Matrici booleane o di connettivit o di congruenza o di compatibilit degli elementi


finiti. Legano il vettore degli elementi finiti nella numerazione nodale globale
(dimensione (N nodi *3) x1) al vettore dell'elemen to finito nella numerazione
locale (dimensione 6x1). Nel nostro caso la matrice di connettivit ha, dunque,
dimensione 6x24.
Si nota che le matrici di connessione sono state scritte in maniera diretta
nella presente applicazione, ma esse sono generabili in aniera automatica come
sar fatto in esempi pi complessi.

In[314]:=

Hmatrice di connessione del primo elemento finito.


collega gli spostamenti del primo nodo locale al il primo nodo globale
e gli spostamenti del secondo nodo locale con il quarto nodo globaleL

C1 =

1
0
0
0
0
0

0
1
0
0
0
0

0
0
1
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
1
0
0

0
0
0
0
1
0

0
0
0
0
0
1

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
;
0
0
0

Solo per la matrice C1 si riportano le componenti di spostamento di tutti i nodi.


In[315]:=

Grid @88, Row@8" N. 1 ", " N. 2 ", " N. 3 ", " N. 4 ", " N. 5 ",
" N. 6 ", " N. 7 ", " N. 8 "<D<,
8, Row@8"1", " 2", " 3", " 4", " 5", " 6", " 7", " 8", " 9", " 10",
" 11", " 12", " 13", " 14",
" 15", " 16", " 17", " 18", " 19", " 20", " 21", " 22",
" 23", " 24"<D<,
8Column @8"uloc11", "uloc12", "uloc13", "uloc21", "uloc22", "uloc23"<D,
MatrixForm @C1D<<D
N. 1
1

Out[315]=

In[316]:=

In[317]:=

uloc11
uloc12
uloc13
uloc21
uloc22
uloc23

1
0
0
0
0
0

0
1
0
0
0
0

0
0
1
0
0
0

0
0
0
0
0
0

N. 2
5

0
0
0
0
0
0

0
0
0
0
0
0

N. 3

0
0
0
0
0
0

0
0
0
0
0
0

N. 4

N. 5

N. 6

N. 7

N. 8

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

0
0
0
0
0
0

0
0
0
1
0
0

0
0
0
0
1
0

0
0
0
0
0
1

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

C2 =

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

1
0
0
0
0
0

0
1
0
0
0
0

0
0
1
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
1
0
0

0
0
0
0
1
0

0
0
0
0
0
1

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
;
0
0
0

C3 =

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

1
0
0
0
0
0

0
1
0
0
0
0

0
0
1
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
1
0
0

0
0
0
0
1
0

0
0
0
0
0
1

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
;
0
0
0

0
0
0
0
0
0

Capitolo 4: Il metodo degli elementi finiti e i telai

In[318]:=

In[319]:=

In[320]:=

In[321]:=

In[322]:=

121

C4 =

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

1
0
0
0
0
0

0
1
0
0
0
0

0
0
1
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
1
0
0

0
0
0
0
1
0

0
0
0
0
0
1

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
;
0
0
0

C5 =

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

1
0
0
0
0
0

0
1
0
0
0
0

0
0
1
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
1
0
0

0
0
0
0
1
0

0
0
0
;
0
0
1

C6 =

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

1
0
0
0
0
0

0
1
0
0
0
0

0
0
1
0
0
0

0
0
0
1
0
0

0
0
0
0
1
0

0
0
0
0
0
1

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
;
0
0
0

C7 =

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

1
0
0
0
0
0

0
1
0
0
0
0

0
0
1
0
0
0

0
0
0
1
0
0

0
0
0
0
1
0

0
0
0
0
0
1

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
;
0
0
0

C8 =

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

0
0
0
0
0
0

1
0
0
0
0
0

0
1
0
0
0
0

0
0
1
0
0
0

0
0
0
1
0
0

0
0
0
0
1
0

0
0
0
;
0
0
1

Si procede ora all' assemblaggio delle matrici di rigidezza dei singoli elementi
finiti per formare la matrice di rigidezza della struttura libera da vincoli.
La matrice di rigidezza globale cio dell'intera struttura una matrice (N nodi *
3)x (N nodi * 3), nel nostro caso 24x24.
In[323]:=

K = Transpose @C1D.K1g.C1 + Transpose @C2D.K2g.C2 + Transpose @C3D.K3g.C3 +


Transpose @C4D.K4g.C4 + Transpose @C5D.K5g.C5 + Transpose @C6D.K6g.C6 +
Transpose @C7D.K7g.C7 + Transpose @C8D.K8g.C8;
MatrixForm @KD;

Singolarit della matrice di rigidezza globale del modello a elementi finiti (questa
matrice di rigidezza risulta semidefinita positiva per il moto rigido che le
consentito, poich non sono ancora assegnate le condizioni al contorno)
In[325]:=
Out[325]=

Det@KD
1.44822 1084

Vettori delle forze nodali applicate sui singoli nodi nel riferimento globale.
In[326]:=

VFA1 = 80, 0, 0<; VFA2 = 80, 0, 0<; VFA3 = 80, 0, 0<; VFA4 = 8F1, 0, 0<;
VFA5 = 80, 0, 0<; VFA6 = 80, 0, 0<; VFA7 = 8F2, 0, 0<; VFA8 = 80, 0, 0<;

Capitolo 4: Il metodo degli elementi finiti e i telai

122

Assemblaggio forze nodali applicate nei singoli nodi per otenere il vettore delle
forze nodali applicate per il modello a elementi finiti
In[328]:=
Out[328]=

VFA = Join @ VFA1, VFA2, VFA3, VFA4, VFA5, VFA6, VFA7, VFA8 D
80, 0, 0, 0, 0, 0, 0, 0, 0, F1, 0, 0, 0, 0, 0, 0, 0, 0, F2, 0, 0, 0, 0, 0<

Forze nodali equivalenti nel riferimento locale dei singoli elementi finiti
In[329]:=

F1loc
F2loc
F3loc
F4loc
F5loc

=
=
=
=
=

80,
80,
80,
80,
80,

0,
0,
0,
0,
0,

0,
0,
0,
0,
0,

F6loc = :0,

q1 L6

F7loc = :0,

q2 L7

F8loc = :0,

q3 L8

0,
0,
0,
0,
0,
,

0,
0,
0,
0,
0,

0< ;
0< ;
0<;
0<;
0<;

q1 L62

, 0,

12
,

q2 L7

q1 L6

2
2

, 0,

12
q3 L82

q2 L7

12
,

2
q3 L8

q1 L62

q2 L7

>;

>;

12
q3 L82

>;
2
12
2
12
F7loc =", MatrixForm @F7loc D,
Row@8"F6loc =", MatrixForm @F6loc D, "
"
F8loc =", MatrixForm @F8loc D<D

Out[337]=

F6loc =

, 0,

1
L6 H5L1
2
1
L62 H5L1
12

1
L7 H5L2
2
1
L72 H5L2
12

1
L8 H5L3
2
1
L82 H5L3
12

0
1
2

L6 H5L1

1
12

F7loc =

L6 H5L1

F8loc =

1
2

L7 H5L2

1
2

1
12

1
12
L82 H5L3

L7 H5L2

L8 H5L3

vettori forze nodali equivalenti del nodo trasferite dal riferimento locale
al riferimento globale
In[338]:=

In[346]:=

Out[346]=

F1g
F2g
F3g
F4g
F5g
F6g
F7g
F8g

=
=
=
=
=
=
=
=

Transpose @Q1D.F1loc;
Transpose @Q2D.F2loc;
Transpose@Q3D.F3loc;
Transpose@Q4D.F4loc;
Transpose@Q5D.F5loc;
Transpose @Q6D.F6loc;
Transpose @Q7D.F7loc;
Transpose @Q8D.F8loc;

Row@8"F6loc =", MatrixForm @F6gD, "


"
F8loc =", MatrixForm @F8gD<D

F6loc =

F7loc =", MatrixForm @F7gD,

1
L6 H5L1
2
1
L62 H5L1
12

1
L7 H5L2
2
1
L72 H5L2
12

1
L8 H5L3
2
1
L82 H5L3
12

0
1
2

L6 H5L1

1
12

L6 H5L1

F7loc =

F8loc =

1
2

L7 H5L2

1
2

1
12

1
L82 H5L3
12

L7 H5L2

L8 H5L3

Capitolo 4: Il metodo degli elementi finiti e i telai

123

Assemblaggio forze nodali equivalenti dei singoli elementi finiti per otenere il
vettore forza nodale equivalente del modello a elementi finiti
In[347]:=

VFE = Transpose @C1D.F1g + Transpose @C2D.F2g + Transpose @C3D.F3g +


Transpose @C4D.F4g + Transpose @C5D.F5g + Transpose @C6D.F6g +
Transpose @C7D.F7g + Transpose @C8D.F8g;

Per ottenere il vettore delle forze nodali necessario per la risoluzione del problema
basta sommare il vettore delle forze applicate VFA con il vettore delle forze nodali
equivalenti VFE
In[348]:=

F = VFA + VFE;
MatrixForm @FD;

Vettore spostamenti nodali della struttura


In[350]:=

U = 8U1, U2, 3, U4, U5, 6, U7, U8, 9, U10, U11, 12, U13, U14, 15,
U16, U17, 18, U19, U20, 21, U22, U23, 24 <;

PER IMPORRE LE CONDIZIONI VINCOLARI A SPOSTAMENTO NULLO.


Della matrice di rigidezza occorre effettuare la contrazione eliminando le righe 1,
2, 3, 4, 5, 6, 7, 8 e le rispettive colonne. Si applica un operatore di contrazione
mettendo tutti zeri alle colonne da cancellare.
L'operatore di contrazione una matrice (24 - 8)x24. Anche
quest'operatore ovviamente generabile in maniera automatica come sar fatto
su esempi pi complessi.

In[351]:=

OpContr =

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0
0
0
0
0
0
0
0
;
0
0
0
0
0
0
0
1

Capitolo 4: Il metodo degli elementi finiti e i telai

In[352]:=

Out[356]=

124

Kcontr = OpContr.K.Transpose @OpContr D;


Ucontr = OpContr.U;
Fcontr = OpContr.F;
MatrixForm @Kcontr D;
Row@8"Ucontratto = ", MatrixForm @Ucontr D,
"
Fcontratto = ", MatrixForm @Fcontr D<D

Ucontratto =

9
U10
U11
12
U13
U14
15
U16
U17
18
U19
U20
21
U22
U23
24

0
F1
1
L6 H5L1
2
1
L62 H5L1
12

0
1
2

L6 H5L1 +

1
12

1
2

L7 H5L2

L6 H5L1 +

1
12

L72 H5L2

0
Fcontratto =

1
2

L7 H5L2
1

12 L72 H5L2
F2
1
L8 H5L3
2
1
L82 H5L3
12

0
1
2

L8 H5L3

1
12
L82 H5L3

Per proseguire conviene introdurre i dati numerici della struttura altrimenti


Mathematica inpiegherebbe moto tempo per risolvere il problema in forma
simbolica.
Dati numerici.
Come abbiamo gi detto all'inizio dell'esercizio i profilati impiegati sono:
HE220A per i ritti;
IPE200 per i traversi.
Le unit di misura utilizzate sono kg e cm.
In[357]:=

RITTI;
L1 = L2 = L3 = L4 = L5 = H = 300;
EA1 = EA2 = EA3 = EA4 = EA5 = 2.1 106 64.34;
EI1 = EI2 = EI3 = EI4 = EI5 = 2.1 106 5410;
TRAVERSI;
L6 = L7 = L8 = 400;
EA6 = EA7 = EA8 = 2.1 106 28.5;
EI6 = EI7 = EI8 = 2.1 106 1943;
CARICHI;
q1 = q2 = q3 = 5;
FORZE;
F1 = F2 = 100;

Capitolo 4: Il metodo degli elementi finiti e i telai

125

Kcontr la (vera) matrice di rigidezza della struttura con i vincoli e non risulta
singolare ed definita positiva e quindi a determinante non nullo e positivo.

In[369]:=
Out[369]=

Det@Kcontr D
9.1599 1094

Matrice della cedibilit della struttura nel riferimento globale


In[370]:=

In[373]:=

Ucontr = OpContr.U;
Fcontr = OpContr.F;
MatrixForm @Kcontr D;
Cced = Inverse @Kcontr D;
MatrixForm @Cced D;

Matricce di rigidezza globale


In[375]:=

MatrixForm @Kcontr D;

Si controlla che la matrice di rigidezza della struttura vincolata


(Kcontr) sia simmetrica.
In[376]:=
Out[376]=

Kcontr Transpose @Kcontr D  0 IdentityMatrix @16D


True

Vettore contratto degli spostamenti nel riferimento globale.


In[377]:=

UcontrSOL = Cced.Fcontr;
MatrixForm @UcontrSOL D

Out[378]//MatrixForm=

0.00118103
0.194092
0.0115938
0.000810685
0.194463
0.0221621
0.000521649
0.19375
0.00637254
0.000908926
0.445615
0.0178089
0.00130335
0.44407
0.0293232
0.000783581

Capitolo 4: Il metodo degli elementi finiti e i telai

126

Vettore non contratto degli spostamenti nel riferimento globale.


In[379]:=

Out[381]=

USOLgl = Transpose @OpContr D.UcontrSOL;


uuu = Table @HUg.iL, 8i, 24<D;
Row@8 MatrixForm @uuuD, MatrixForm @USOLgl D<D
Ug.1
Ug.2
Ug.3
Ug.4
Ug.5
Ug.6
Ug.7
Ug.8
Ug.9
Ug.10
Ug.11
Ug.12
Ug.13
Ug.14
Ug.15
Ug.16
Ug.17
Ug.18
Ug.19
Ug.20
Ug.21
Ug.22
Ug.23
Ug.24

0.
0.
0.
0.
0.
0.
0.
0.
0.00118103
0.194092
0.0115938
0.000810685
0.194463
0.0221621
0.000521649
0.19375
0.00637254
0.000908926
0.445615
0.0178089
0.00130335
0.44407
0.0293232
0.000783581

Dal vettore USOLgl otteniamo il vettore degli spostamenti per ogni elemento nel
riferimento globele grazie alle matrici di connessione e quello degli spostamenti
nel rifierimento locale grazie alla matrice di rotazione.
In[614]:=

Vmcon = 8C1, C2, C3, C4, C5, C6, C7, C8<;


VQ = 8Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8 <;
Uegl = Table @ VMcon @@iDD.VUgl, 8i, 8<D;
Ueloc = Table @ VQ@@iDD.Uegl @@iDD, 8i, 8<D;

Spostamenti nel riferimento locale


In[618]:=

Ueloc MatrixForm

Out[618]//MatrixForm=

0.
0.
0.
0.00407889
0.00702914
0.0504978
0.0513767
0.144202

0.
0.
0.
0.0504978
0.0513767
0.00407889
0.00702914
0.00616211

0.
0.
0.000427789
0.000363638
0.000312404
0.000363638
0.000312404
0.000593582

0.00407889
0.00702914
0.00221405
0.00702914
0.00221405
0.144202
0.141849
0.141849

0.0504978
0.0513767
0.0500549
0.0513767
0.0500549
0.00616211
0.00938663
0.00938663

0.000363638
0.000312404
0.000355029
0.000312404
0.000355029
0.000593582
0.000173812
0.000173812

Capitolo 4: Il metodo degli elementi finiti e i telai

Per automatizzare la realizzazione


definiscono i seguenti vettori:
In[644]:=

127

dei

diagrammi

delle

sollecitazioni

VL = 8300, 300, 300, 300, 300, 400, 400, 400 <;


Vr = 8Pi 2, Pi 2, Pi 2, Pi 2, Pi 2, 0, 0, 0<;
VEI = 8EI1, EI2, EI3, EI4, EI5, EI6, EI7, EI8<;
Vq = 80, 0, 0, 0, 0, 5, 5, 5<;
Velem = 8880, 0<, 80, 300<<, 88400, 0<, 8400, 300 <<,
88800, 0<, 8800, 300 <<, 880, 300<, 80, 600<<, 88400, 300 <, 8400, 600 <<,
880, 300<, 8400, 300 <<, 88400, 300 <, 8800, 300 <<, 880, 600 <, 8400, 600 <<<;

si

Capitolo 4: Il metodo degli elementi finiti e i telai

128

Ora scriviamo la procedura automatizzata per disegnare i deagrammi delle


sollecitazioni.
In[720]:=

FMom = Table @8<, 8i, 8<D;


FTag = Table @8<, 8i, 8<D;
MomGraph = Table@8<, 8i, 8<D;
TagGraph = Table@8<, 8i, 8<D;
ForAi = 1, i 8, i ++,
A = Ueloc@@i,
B = Ueloc@@i,
rA = Ueloc@@i,
rB = Ueloc@@i,
L = VL@@iDD;
q = Vq@@iDD;
EI = VEI@@iDD;

2DD;
5DD;
3DD;
6DD;

Hpolinomi di hermite per


il calcolo delle funzioni spostamentoL
A1 = NDSolve@8v ''''@zzD  0, v@0D  A, v '@0D  rA, v@LD  B, v '@LD  rB<,
v@zzD, 8zz, 0, L<D;
H1 = Simplify@v@zzD . A1@@1DDD;
A2 = NDSolve@8v ''''@zzD  q EI, v@0D  0,
v '@0D  0, v@LD  0, v '@LD  0<, v@zzD, 8zz, 0, L<D;
H1q = Simplify@v@zzD . A2@@1DDD;
Vtot = H1 + H1q;
rot = D@Vtot, zzD;
Mom = D@rot EI, zzD;
Tag = D@Mom, zzD;
FMom@@iDD = Mom;
FTag@@iDD = Tag;
r = RotationTransform @Vr@@iDDD;
t = TranslationTransform @Velem@@i, 1DDD;
Msca = 0.001;
Tsca = 0.1;
MomGraph@@iDD = Table@8j, H Mom . zz jL Msca<, 8j, 0, L, 10<D;
TagGraph@@iDD = Table@8j, HTag . zz jL Tsca<, 8j, 0, L, 10<D;
PrependTo@MomGraph@@iDD, 80, 0<D;
AppendTo@MomGraph@@iDD, 8L, 0<D;
PrependTo@TagGraph@@iDD, 80, 0<D;
AppendTo@TagGraph@@iDD, 8L, 0<D;
iterm = Length@MomGraph@@iDDD;
itert = Length@TagGraph@@iDDD;
MomGraph@@iDD = Table@t@r@MomGraph@@i, jDDDD, 8j, 1, iterm<D;
TagGraph @@iDD = Table @t@r@TagGraph @@i, jDDDD, 8j, 1, itert <D;
E;

Capitolo 4: Il metodo degli elementi finiti e i telai

Diagramma del momento flettente

129

Capitolo 4: Il metodo degli elementi finiti e i telai

Diagramma del taglio

130

Capitolo 4: Il metodo degli elementi finiti e i telai

Diagramma dello sforzo normale

131

Capitolo 4: Il metodo degli elementi finiti e i telai

Deformata elastica

132

Capitolo 5 : Introduzione alluso del software Mathematica

5.1 Premessa
Questi appunti sono scritti per introdurre alluso del software Mathematica, utilissimo
strumento per il calcolo analitico.
Ulteriori approfondimenti si possono trovare consultando il manuale ufficiale The
Mathematica Book di Stephen Wolfram, vivamente consigliato a chi vuole conoscere
tutto ci che Mathematica capace di fare. The M athematica B ook interamente
disponibile on line nellHelp Browser.
Mathematica scritto in linguaggio C, in grado di svolgere calcoli numerici e
simbolici. Il calcolo numerico un qualsiasi calcolo il cui risultato un numero. Il calcolo
simbolico un calcolo il cui risultato pu essere un formula, ad esempio (a + b)2 il cui
risultato (a2 + 2ab + b2).
Mathematica in grado di: risolvere sistemi lineari, equazioni algebriche, integrali
numerici, integrali indefiniti, limiti, derivate e non solo; manipolare liste di dati e di
produrre grafici in due o tre dimensioni che si possono esportare in vari formati ad esempio
Pdf, Excel, Word, Jpg ecc. E inoltre possibile scrivere veri e propri programmi in
linguaggio Mathematica con una sintassi molto simile al C++ oppure usare Matematica
come word processor per scrivere testi in cui compaiono tabelle, formule, grafici etc.

Capitolo 5: Introduzione alluso del software Mathematica

134

Mathematica dispone di un enorme numero di funzioni predefinite, disponibili ogni


volta che si avvia il software, e di numerosi pacchetti di funzioni (packages) che
contengono funzioni e definizioni relative a particolati settori scientifici della matematica,
fisica, chimica, statistica, grafica avanzata etc. per utilizzare questi pacchetti bisogna
caricarli con il comando Get[nomepackage], e per sapere quali package sono stati
caricati bisogna digitare il comando $Packages.
I file creati da Mathematica si chiamano notebook e hanno lestensione .nb. Un
notebook costituito da una successione di celle, ognuna delle quali indicata con una
parentesi quadra a destra, e pu contenere linee di comandi, immagini, testi. Per fare
qualsiasi operazione si digita dalla tastiera linput e si preme il comando shift+invio oppure
Enter nella tastiera numerica. Mathematica esegue quanto richiesto e fornisce il risultato in
una cella di output.
Linput deve seguire una precisa sintassi. Tutte le funzioni vanno inserite con la
prima lettera maiuscola. Inoltre sono molto importanti le parentesi graffe, quadre e tonde.
Le parentesi tonde ( ) servono solo per raccogliere gli addendi nelle espressioni algebriche,
le parentesi quadre [ ] servono per racchiudere la lista dei parametri di input, le parentesi
graffe { } servono per creare liste, vettori e matrici.
Numerosi esempi sulluso del software sono riportati nella guida utente oppure sono
disponibili alla pagina http://www.wolfram.com.

5.2 Calcolo numerico


Mathematica una calcolatrice molto pi potente di quelle tradizionali. I simboli di
addizione +, sottrazione -, divisione /, moltiplicazione *, elevato a potenza ^, e il fattoriale
!, hanno lusuale significato. Il prodotto si pu indicare anche con uno spazio per esempio
(2 3) lo stesso di (2*3).

Capitolo 5: Introduzione alluso del software Mathematica

135

Mathematica conosce un gran numero di costanti matematiche predefinite. Per


esempio:
Pi (* Pi greco *)
Pi // N
E (* E numero di Nepero *)
E // N
EulerGamma (* costante di Eulero *)
EulerGamma // N
Infinity
1 / Infinity
E^-Infinity
1^Infinity

Quando si usa il comando //N Mathematica visualizza 6 cifre dopo la virgola ma ne


considera molte di pi. E possibile specificare la precisione e quindi il numero di cifre del
risultato. Per esempio si vogliamo calcolare con 35 cifre o con 200 cifre scriveremo:
N[Pi, 35]
N[Pi, 200]

Con il simbolo % si indica lultimo output prodotto, con %% il penultimo e con % n


si indica loutput numero n.
Sqrt[4]
%
%3 (* terzo output *)
%%% (* terzultimo output *)
(%3 + %5) * %%%
Numerator[%] (*numeratore dell' espressione precedente *)
Denominator[%%] (*denominatore della penultima espressione *)

I numeri possono essere di vari formati:


Integer (numeri interi esatti, esempio 123);
Rational (quoziente di due numeri interi);

Capitolo 5: Introduzione alluso del software Mathematica

136

Real (numeri reali approssimati che si distinguono dagli interi per la presenza di un
punto, per esempio 123. ;
Complex (numeri complessi nella forma (a + b I). Con I si denota lunit
immaginaria tale che I2 = -1).
Una sequenza finita di caratteri, racchiusi da un doppio apice, una stringa (String).
Incontreremo spesso liste (List) di oggetti cio una successione ordinata e finita di
elementi (numeri, stringhe, simboli) racchiusi tra { } e separati da una virgola.
lista = {a, 4, ssss, ciao}
lista[[1]] (* estraggo il primo elemento della lista *)
a
lista [[2]] (* estraggo il secondo elemento della lista *)
4

Il testo racchiuso tra (* *) rappresenta i commenti inseriti nelle celle che quindi non
vengono elaborati.

5.3 Calcolo simbolico


Come abbiamo gi sottolineato, una delle caratteristiche di Mathematica la possibilit di
eseguire calcoli simbolici cio calcoli dove loutput non un numero.
Se si vuole mantenere inalterata unespressione i comandi da usare sono Hold[expr]
e HoldForm[expr]. La differenza che Hold viene scritto nelloutput mentre HoldForm
invisibile, mentre il comando ReleaseHold elimina i comandi precedenti in modo che le
espressioni vengano calcolate, per esempio
Hold[-1 + 2 x + x^3 - 5 x]
HoldForm[-1 + 2 x + x^3 - 5 x]
ReleaseHold[%]
Hold [-1 + 2 x + x3- 5 x]
-1 + 2 x + x3 - 5 x
-1 - 3 x + x3

Capitolo 5: Introduzione alluso del software Mathematica

137

Di solito i calcoli algebrici non vengono sviluppati, a meno che non glielo chiediamo
esplicitamente, per esempio, con il comando //Expand
(x-y)^5
(x-y) (x+y)
(x-y)^5//Expand
x5-5 x4 y+10 x3 y2-10 x2 y3+5 x y4-y5
(x-y) (x+y)//Expand
x2-y2

Per semplificare unespressione si usa il comando //Simplify, //FullSimplify o


//Factor.
In questo elaborato non verranno ricordate tutte le operazioni algebriche disponibili,
per ulteriori specifiche si pu consultare Help alla voce Algebraic Calculation.
Se non si vuole visualizzare il risultato di una operazione si mette ; , Mathematica
esegue il comando ma non lo visualizza. Ci pu essere molto utile se il risultato di
unespressione molto lungo e non necessario visualizzarlo.

5.4 Le funzioni elementari


Le funzioni matematiche pi comuni sono Exp[x], Sqrt[x], Log[x], Log[b,x], quelle
trigonometriche sono Sin[x], Cos[x], Tan[x], le loro inverse ArcSin[x], ArcCos[x],
ArcTan[x], quelle iperboliche sono Sinh[x], Cosh[x], Tanh[x], i valore assoluto si indica
con Abs[x]. Queste funzioni sono predefinite e si possono consultare nellHelp alla voce
Elementary function.

5.5 Definire funzioni


In Mathematica si possono definire delle funzioni personalizzate, ad esempio, per definire
la funzione f(x) = x^2 si usa il seguente comando:
f[x_] : = x^2

Capitolo 5: Introduzione alluso del software Mathematica

138

f[3]
3^2 = 9

notate il segno di sottolineature dopo la x (x_) che sostanzialmente informa


Mathematica che la variabile x un parametro destinato ad essere sostituito di volta in
volta, quando si richiama la funzione.
Allo stesso modo si possono definire funzioni a pi variabili, per esempio,
f[x_,y_] : = x^2+y^2

oppure funzioni a valori vettoriali


f[x_,y_] : = {x^2, y^2}

5.6 Disegnare funzioni di una variabile (Grafici 2D)


Il comando per disegnare una funzione f nellintervallo (a, b) Plot[ f[x],{x, a, b}] oppure
Plot[ {f1[x], f2[x], .}, {x, a, b}] per disegnare due o pi funzioni contemporaneamente ,
ad esempio,
Plot[Sin[x],{x,0,2 Pi}]
1.0

0.5

0.5

1.0

Plot[{Sin[x],Sin[2 x],Sin[3 x]},{x,0,2 Pi}]

Capitolo 5: Introduzione alluso del software Mathematica

139

1.0

0.5

0.5

1.0

come si pu notare loutput un oggetto grafico.


Quando la curva del piano rappresentata in forma parametrica allora di deve usare
il comando ParametricPlot[ f[x], {x, a, b}]
ParametricPlot[{Sin[t],Cos[t]},{t,0,2 Pi}, AspectRatio->Automatic]
1.0

0.5

1.0

0.5

0.5

1.0

0.5

1.0

Per ottenere scale di rappresentazione diverse per i due assi si imposta lopzione
grafica AspectRatio 1, per avere la stessa scala si imposta AspectRatio Automatic , per
esempio,
ParametricPlot[{Sin[t],Cos[t]},{t,0,2 Pi},AspectRatio-> 1/2]

Capitolo 5: Introduzione alluso del software Mathematica

140

1.0

0.5

1.0

0.5

0.5

1.0

0.5
1.0

Per il comando Plot esistono diverse opzioni che possono essere impostate come
stato fatto per lopzione AspectRatio. Di seguito si riportano alcune delle opzioni
disponibili con una breve descrizione degli effetti:

AspectRatio: come gi anticipato serve ad impostare la scala di


rappresentazione sui due assi;

Frame: serve a disegnare una cornice intorno al grafico .Pu essere impostata
su (True o False);

Gridlines: serve a disegnare una griglia automatica oppure si pu anche


scegliere la posizione delle linee verticali e orizzontali. Accetta come
parametri (Automatic oppure {{x1,x2},{y1,y2}});

Axes: specifica quali assi coordinati deve disegnare. Si pu impostare su


True (disegna entrambe gli assi), False (non disegna gli assi), {True,False}
(disegna lasse delle x ma non quello delle y) o su {False, True} (disegna
lasse delle y ma non quello delle x);

AxesLabel: serve ad inserire il nome agli assi.

AxesOrigin: specifica che gli assi si incontrino nel punto di coordinate {xo,
yo};

Se si vogliono disegnare pi funzioni in un solo oggetto grafico si pu utilizzare il


comando Show[Plot1, Plot2, ..] che disegna uno o pi grafici contemporaneamente. Nel

Capitolo 5: Introduzione alluso del software Mathematica

141

seguente esempio si creano due grafici plot1 e plot2 che saranno poi visualizzati insieme
con il comando Show.
plot1=Plot[Sin[x],{x,-Pi/2,Pi/2];
plot2=Plot[ArcSin[x],{x,-1,1}];
Show[{plot1,plot2}]
1.0

0.5

1.5

1.0

0.5

0.5

1.0

1.5

0.5

1.0

Questo comando molto utile nel nostro campo quando si vogliono disegnare le
deformate di due o pi tratti in un unico grafico. Di seguito si riportano solo i diagrammi
dellesercizio1 presentato nel Capitolo 1.
Diagramma degli spostamenti del primo tratto:
Plot1=Plot[-v1, {z,0,L}]
0.025
0.020
0.015
0.010
0.005

100

200

300

400

500

Diagramma degli spostamenti del secondo tratto:


Plot2=Plot[-v2, {z,0,L}]

Capitolo 5: Introduzione alluso del software Mathematica

100

200

300

142

400

500

0.05
0.10
0.15
0.20
0.25
0.30

Ora per unire i due diagrammi in un solo disegno si deve prima traslare il secondo
lungo lasse delle x di una quantit pari alla lunghezza del primo tratto (cio di 500),
questo passaggio e stato effettuato cambiando la variabile (z) nella legge (v2) come segue:
z=f-500;

ora plottando la legge (v2) in funzione di (f) si ottiene il seguente diagramma:


600

700

800

900

1000

0.05
0.10
0.15
0.20
0.25
0.30

che come si pu vedere identico a quello precedente a meno dellintervallo di


definizione, prima era (0, 500) ora (500, 1000).
Adesso dobbiamo solo plottare i due diagrammi insieme per vedere lintera
deformata della trave.

Capitolo 5: Introduzione alluso del software Mathematica

143

Show[{Plot1,Plot2}, PlotRange -> {{0,1200},{-0.4,0.05}}]

200

400

600

800

1000

1200

0.1

0.2

0.3

0.4

5.7 Liste e vettori


Pu essere molto utile raccogliere insieme singoli oggetti e trattarli come uno solo. Una
Lista una successione ordinata di elementi racchiusi tra { } . La lista {3, 5, 1} una
collezione di 3 oggetti cos come la lista {3, a, al}.
Le Functions, se applicate ad una lista, restituiscono la lista dei valori che la funzione
assume su ogni elemento della lista, per esempio:
lista={1,2,3,4}
{1,2,3,4}
Cos[Pi/lista]

1
{-1,0,1/2, 2 }
Sqrt[lista]
{1,

2 , 3 ,2}

Pu essere utile imparare a manipolare gli elementi di una lista. Se abbiamo una lista
possiamo facilmente aggiungere un oggetto alla fine o allinizio della lista con i comandi
Append[lista, e lem] e Prepend[lista, e lem] . Questi comandi non modificano la lista
iniziale.
lista={1,2,3,4}
Append[lista, 5]

Capitolo 5: Introduzione alluso del software Mathematica

144

{1,2,3,4,5}
Prepend[lista, 5]
{5,1,2,3,4}

se richiamiamo la lista ottengo:


lista
{1,2,3,4}

Se invece si vuole modificare la lista iniziale si possono usare i comandi


AppendTo[lista, 5] o PrependTo[lista, 5]
lista={1,2,3,4}
AppendTo[lista, 5]
lista
{1,2,3,4,5}
PrependTo[lista, 5]
lista
{5,1,2,3,4,5}

Per conoscere il numero di elementi che costituiscono la lista:


Length[lista]

Per estrarre un elemento dalla lista si possono usare i seguenti comandi:


lista[[2]]
Part[lista, 3]

Per estrarre il primo o lultimo elemento:


First[lista]
Last[lista]

Per eliminare un elemento dalla lista:


lista = {1,23,2,6,5}
Delete[lista, 3]
lista
{1,23,6,5}

Per inserire un elemento nella lista alla posizione desiderata:


lista = {1,23,2,6,5}

Capitolo 5: Introduzione alluso del software Mathematica

145

Inset[lista,10, 3]
lista
{1,23,10,2,6,5}

Si possono costruire liste a partire da una espressione usando il comando


Table[expr[i],{i,1,n}] :
lista1 = Table[i^2, {i,1,3}]
{1, 4, 9}
Lista2 = Table[i^3, {i,1,3}]
{1, 8, 27}

Si possono eseguire molte altre operazioni sulle liste, ad esempio, si possono


concatenare pi liste con il comando:
Join[lista1, lista2]
{1,4,9,1,8,27}

Si possono unire pi liste eliminando i termini uguali con il comando:


lista3 = Union[lista1, lista2]
{1,4,9,8,27}

Si possono ordinare gli elementi di una lista con il comando:


Sort[lista3]
{1,4,8,9,27}

Se vogliamo trasformare una lista in una lista di liste si pu utilizzare il comando:


lista = {1,4,8,9,27,30}
Partition[lista,2]
{{1,4},{8,9},{27,30}}

Se invece si vuole passare da una lista di liste ad una lista si pu utilizzare il


comando:
lista = {{1,4},{8,9},{27,30}}
Flatten[lista]
{1,4,8,9,27,30}

Capitolo 5: Introduzione alluso del software Mathematica

146

5.8 Matrici
Dato che una lista pu contenere altre liste, rappresentiamo una matrice come una lista di
liste ovvero una matrice e rappresentata come la lista delle sue righe:
m = {{a,b},{c,d}} (* m una matrice 2x2 *)
m // MatrixForm

a b

c d
Il comando MatrixForm serve a rappresentare la matrice nella forma tradizionale.
Per creare le matrici si pu usare il comando Table[ ] , per esempio, se vogliamo
costruire una matrice 3x2 si pu procedere nel seguente modo:
m1 = Table[{i, i+1}, {i, 3}]
{{1,2},{2,3},{3,4}}

Per creare una matrice 2x3 invece:


m1 = Table[ i j, {i, 2},{j, 3}]
{{1,2,3},{2,4,6}}

Possiamo effettuare altre importanti operazioni come il calcolo dellinversa, del


determinante, degli auto valori e della dimensione della matrice. Inoltre di possono
effettuare il prodotto righe per colonne tra matrici e vettori o tra due matrici.
m = {{a,b},{c,d}}
Inverse[m]
{{d/(-b*c +a*d),-b/(-b*c +a*d)},{-c/(-b*c +a*d),a/(-b*c +a*d)}}
Transpose[m]
{{a,c},{b,d}}
Det[m]
-b c+a d
Dimensions[m]
{2,2}
Eigenvalues[m]
v = {x, y}

Capitolo 5: Introduzione alluso del software Mathematica

147

m.v
{a*x +b*y, c*x +d*y}

5.9 Risoluzione di equazioni e di sistemi


Unespressione come (x^2 +2*x -70) rappresenta una equazione. In Mathematica per
indicare il segno di uguale si usa == (due volte uguale) e non = che invece si usa per
assegnare un valore ad una variabile o ad una costante. Per risolvere unequazione
algebrica rispetto alla variabile x, si possono usare i comandi Solve[x+3==5,x] oppure
Roots[x+3==5,x]. Con questi comandi Mathematica cerca di fornire una espressione
esplicita della soluzione. Se consideriamo un polinomio in una variabile di grado al pi 4
allora questo sempre possibile. Mathematica per giungere alla soluzione utilizza le
formule di Cardano e di Ludovico Ferrari.
Solve[x +3==5, x]
{{x->2}}
Roots[x+35,x]
x==2

Nel caso di equazioni con parametri, devo specificare rispetto a quali variabili
risolviamo l'equazione:
Solve[a*x +b*y ==0, y]
Solve[a*x +b*y ==0, x]

Solo con il comando solve si possono risolvere equazioni non algebriche come:
Solve[Log[Sqrt[x]]== Sqrt[Log[x]], x]

Come anticipato prima se si tenta di risolvere un polinomio di grado maggiore al 4


Mathematica non riesce a trovare la soluzione esatta, in questi casi conviene usare il
comando NSolve[ ]

oppure NRoot[ ] che risolvono direttamente lequazione cercando

numericamente le soluzioni e non le soluzioni esatte.

Capitolo 5: Introduzione alluso del software Mathematica

148

Bisogna fare attenzione perch a volte compare un messaggio che ci avvisa che
stiamo perdendo delle soluzioni oppure che Mathematica non riesce a trovare le soluzioni.
Una possibile alternativa per ottenere le soluzioni usare il comando FindRoot[ ]
che cerca, usando il metodo delle tangenti di Newton, una soluzione numerica
dellequazione di partenza partendo dallapprossimazione x = xo. Questo comando trova al
pi una radice e converge solo se xo vicino a una soluzione.

5.10 Sistemi lineari


Se dobbiamo risolvere un sistema lineare generico con n equazioni e m incognite nella
forma M.x = B possiamo usare i seguenti comandi:
M={{1,5},{2,1}};
B={a,b};
X=LinearSolve[M,B]
{1/9 (-a+5 b),1/9 (2 a-b)}
Inverse[M].B
{-a/9+(5 b)/9,(2 a)/9-b/9}

Per verificare che la matrice M non singolare basta calcolare il determinante:


Det[M]

5.11 Uso di If e Which


Mathematica fornisce vari strumenti per specificare se una particolare espressione venga
calcolata solo se determinate condizioni sono soddisfatte.
Il comando If[p,then,else,other] fornisce il valore then se p True e il valore else se
p False. Se p non n True ne False fornisce come risultato other.
f[x_]:=If[x>0,x^2,-x^2]
Plot[f[x],{x,-2,2},AxesLabel->{x,y}]

Capitolo 5: Introduzione alluso del software Mathematica

149

y
4

Il comando If permette di scegliere tra due alternative. Se si hanno pi alternative o si


usano

pi

If

incapsulati

oppure

si

usa

la

funzione

Which[cond1,result1,cond2,result2,..] che valuta condi e ritorna resulti. Se nessuna


condizione verificata non assegna nessun valore.
h[x_]:=Which[x<0,x^2,x>1,x^3,True,1];
Plot[h[x],{x,-1,2}]
8

1.0

0.5

0.5

1.0

1.5

2.0

5.12 Uso di Do, While, For


Per ripetere molte volte la stessa operazione ci sono diversi comandi.
Il comando Do[ ] agisce come lanalogo comando in C, la sintassi esatta e la
seguente:
Do[expr,{i,imax}] che esegue expr ripetutamente per i=1,.,imax;
Do[expr,{i,imin,imax}] che esegue expr per i=imin,.,imax;

Capitolo 5: Introduzione alluso del software Mathematica

150

Do[expr,{i,imin,imax,di}] che varia da i=imin,.,imax con step di;


Do[Print[i],{i,3}]
1
2
3

Il comando While[test,body] esegue ripetutamente test e body fino a che non


verificato. Se body costituito da pi termini, questi si separano da punto e virgola, per
esempio:
n=0;While[n<4,n=n+1;Print[n]]
1
2
3
4

Il comando For[start,test,incr,body] esegue start poi ripetutamente esegue test e


quindi calcola body e incr e si ferma appena test non pi verificato. Se start e body sono
costituiti da pi termini, questi si separano da ; . Sia While che For prima eseguono il
test di verifica e poi eseguono il comando. Vediamo un esempio:
For[i=1;a=1,i<6,i++,a=a/i];
a
1/120

Capitolo 5: Introduzione alluso del software Mathematica

151

For[t=1,t<19,t*=2,Print[t]]
1
2
4
8
16

5.13 Uso di Module


Abbiamo gi visto come si costruiscono delle semplici funzioni personalizzate. Se la
funzione da costruire pi complessa, pu essere utile il comando Module, che usa anche
variabili locali cio variabili che non interferiscono al si fuori del comando Module. La
sintassi f[x_,y_,] : = Module[{lista di variabili locali}, expr1; exprn]. Dei vari calcoli
effettuati lultimo quello ritornato effettivamente.
Consideriamo una variabile globale:
t = 10

mentre t allinterno del comando Module una variabile locale che pu essere
trattata indipendentemente della variabile globale t:
Module[{t}, t=25; t]
25

se richiamiamo la variabile globale t vedremo che questa ha il valore assegnato


inizialmente:
t
10

Il modo in cui Module lavora molto semplice: ogni volta che si richiama il
comando, ad ogni variabile locale associato un nome della forma nome variabile locale
seguito da $ e seguito da un numero identificativo cio x$nn. Quindi x variabile globale e
x$nn variabile locale sono variabile distinte.

Capitolo 5: Introduzione alluso del software Mathematica

152

5.14 Propriet delle funzioni predefinite


Se vogliamo informazioni su una funzione predefinite da noi usiamo il comando ?f. I
comando ??f descrive pi in dettaglio la definizione e le propriet di f. Attibute[f] mostra le
propriet della funzione f, per esempio:
Attributes[Log]
{Listable, NumericFunction, Protencted}

Listable vuol dire che Log[{a1,a2,.}] fornisce come risultato {Log[a1],


Log[a2],};
NumericFunction vuol dire che Log[a1] un valore numerico se a un numero;
Protected vuol dire che la definizione di Log non pu essere modificata.
Tutte le Built-in F unction sono protette ovvero hanno la propriet (Attribute)
Protected. E possibile togliere la protezione e forzare la definizione. Per esempio la
funzione log(5xy) non viene scritta da Mathematica come log5+logx+logy. Possiamo per
imporre questa regola nel seguente modo:
Log[5xy]
Unprotect[Log]
Log[a_b_] : = Log[a]+Log[b]
Protect[Log ]

Ora ripuliamo la funzione Log dalle modifiche apportate:


Log[5xy]
Unprotect[Log]
Clear[Log]
Protect[Log]

Questa versatilit di Mathematica pu essere pericolosa. Se definiamo delle regole


sbagliate, Matematica fornir risposte sbagliate.
Quando definiamo una funzione f[x_,y_]=expr questa deve essere sempre richiamata
con due argomenti. Se richiamiamo f con un solo argomento Mathematica ci avverte con
un messaggio di errore.

Capitolo 5: Introduzione alluso del software Mathematica

153

Si possono definire funzioni dipendenti da un certo numero di argomenti che, se non


indicati, assumono un prestabilito valore di default. La notazione x_v indica una
espressione in cui, se non indicato, x assume il valore di default v. Per esempio
f[x_,k_:v]:=expr una tipica funzione in cui il secondo argomento k opzionale. Si pu
richiamare f con uno o due argomenti. Quando il secondo argomento omesso
Mathematica assume k = v. Per esempio:
f[x_:1] : = 2 x;
{f1[ ], f1[y]}
{2, 2y}

5.15 Funzioni pure


Consideriamo la funzione:
f[x_]:= x^3

In realt non importante che la funzione si chiami f o che largomento, che verr di
volta in volta sostituito, si chiami x. Lunica cosa che importa la regola elevato al cubo.
In alcuni casi pu essere utile definire funzioni usando una sintassi leggermente diversa da
quella usata fino ad ora cio usando la funzioni pure. Cos una funzione pura?
Per esempio Cos una funzione pura laddove Cos[a] calcola la funzione pura in a.
Un primo metodo indicare la funzione con Function[x,body] se funzione di una
variabile e Function[{x,y,},body] se funzione di pi variabili.
Quindi la funzione :
Cos[x]+Sin[x]

diventa:
Function[x,Cos[x]+Sin[x]]

Questo modo di definire funzioni pu essere utile se, ad esempio, la funzione deve
essere usata solo una volta e non necessario darle un nom. Se serve richiamarla pi volte
si pu definire nel modo seguente:

Capitolo 5: Introduzione alluso del software Mathematica

154

f[x_]:= Function[x,Cos[x]+Sin[x]]

e richiamata poi:
f[x]
f[5]

Un altro modo di definire funzioni pure, pi semplice sia da scrivere che da leggere,
quello di definire funzioni dove largomento sostituito dal simbolo #. Se ci sono pi
variabili, queste sono indicate con #1, #2 e cos via. La fine della definizione seguita da
& cio body &. Per esempio la funzione x^2 definita come:
#^2&

la calcolo in 5:
#^2&[5]

e la disegno:
Plot[#^2&[x], {x, -2, 2}]

5.16 Derivate
Il comando per calcolare la derivata prima di f(x) rispetto a x D[f[x], x] oppure f[x]. Per
calcolare la derivata di ordine n il comando D[f[x],{x, n}] oppure D[f[x],{x,x}]. Se f
una funzione di pi variabili, f(x1,.,xn), la derivata parziale si calcola con il comando
D[f[x1,,xn],{x1,n1,,xn,nn}].
f[x_]:= Cos[x];
D[f[x], {x,1}]

(*derivata prima*)

D[f[x], {x,2}]

(*derivata seconda*)

D[f[x], {x,3}]

(*derivata terza*)

f[x]

(*derivata prima*)

f[x]

(*derivata seconda*)

f[x]

(*derivata terza*)

Capitolo 5: Introduzione alluso del software Mathematica

155

5.17 Integrali
Il comando Integrate[f[x], x] calcola

f ( x)dx

cio calcola una primitiva della funzione f.

Lintegrale indefinito, cio linsieme di tutte la primitive, si ottiene aggiungendo una


costante c.
Integrate[x^2 Sin[x], x]
Integrate[1/(x^2-1), x]
Integrate[Sin[x^n], x]

Ogni simbolo diverso dalla variabile di integrazione viene trattato come una costante.
Mathematica conosce molte funzioni e quindi in grado di calcolare un gran numero
di integrali, ma non sempre cos. Il comando Integrate calcola una primitiva esattamente,
esprimendola eventualmente in termini di funzioni speciali.
Integrate[Cos[Sin[x]], x]

Se questa primitiva non conosciuta Mathematica non calcola nulla.


b

Per calcolare lintegrale definito

f ( x)dx

si usa il comando Integrate[ f [x], {x, a,

b}].
Integrate[x^3 Cos[x], {x, 0, 4Pi}]

Oppure per il calcolo di integrali doppi estesi a domini normali si usa il comando
Integrate[ f[x], {x, a, b}, {y, c, d} ]. Attenzione allordine con cui si scrive {x,a,b},{y,c,d}.
b

Calcoliamo dx f ( x, y )dy :
Integrate[f[x, y], {x, a, b}, {y, c, d}]
d

Calcoliamo dy f ( x, y )dx :
Integrate[f[x, y], {y, c, d}, {x, a, b}]

Capitolo 5: Introduzione alluso del software Mathematica

156

5.18 Equazioni Differenziali Ordinarie


Mathematica riesce anche a risolvere alcune equazioni differenziali. Il comando
DSolve[eqn,y[x], x ] dove y[x] la funzione incognita e x e la variabile indipendente
oppure DSolve[eqn,y,x] la cui soluzione y una funzione pura. Per esempio, consideriamo
una equazione del secondo ordine a coefficienti costanti:
DSolve[y[x] + y[x] ==1, y[x], x]

isoliamo la soluzione y[x] con la regola di sostituzione immediate /.


DSolve[y[x] + y[x] ==1, y[x], x]
y[x] /. %
DSolve[y[x] + y[x] ==1, y, x]
y /. %
DSolve[y[x] + 3y[x] ==1, y[x], x]
Sol = y[x] /. %

Mathematica fornisce lintegrale generale chiamando C[1] e C[2] le costanti


arbitrarie. Una soluzione particolare data da:
sol/.{C[1] -> 1, C[2] -> 3}

Si possono anche assegnare arbitrariamente le condizioni iniziali. Per esempio:


NDsolve[{y[x]^2==y[x]^2, y[0]^2==4}, y, {x, -1, 1}]

5.19 Grafici 2D
Abbiamo fino ad ora incontrato i comandi Plot, ParametricPlot, e ListPlot per disegnare
grafici bidimensionali. Vediamo ora com possibile creare immagini anche in modo
diverso.
Mathematica rappresenta tutti i grafici in termini di insieme di primitive grafiche. Le
primitive grafiche sono oggetti astratti nel senso che contengono le istruzioni per costruire
limmagine stessa. Per trasformare una primitiva grafica in un oggetto grafico si usa il

Capitolo 5: Introduzione alluso del software Mathematica

157

comando Graaphics[{lista di pr imitive}]. Per visualizzare loggetto grafico si usa il


comando Show[Graphics[{lista di oggetti}]].
Le primitive grafiche maggiormente usate sono:

Point[{x, y}]: rappresenta un punto nella posizione {x, y};

Line[{{x1, y1}, {xn, yn}}]: rappresenta una linea che unisce i punti {x1,
y1},, {xn, yn};

Rectangle[{{xmin, ymin},{xmax, ymax}}]: rappresenta un rettangolo pieno di


estremi assegnati.

Polygon[{{x1, y1},..,{xn, yn}}]: rappresenta un poligono pieno di n la ti con


vertici assegnati;

Circle[{x,y},r]: rappresenta un cerchio di centro {x,y}e raggio r;

Circle[{x,y}, {a,b}]: rappresenta una ellisse di centro {x,y} e semiassi a e b;

Disk[{x,y},r]: rappresenta un disco di centro {x,y} e raggio r.

Text[expr, {x,y}]: scrive expr centrato nella posizione {x,y}.

Le direttive grafiche (PointSize, Dashing, RGBColor etc.) si specificano allinterno


di Graphics, cio prima che Mathematica crei loggetto grafico. La sintassi
Graphics[{direttiva gr afica, pr imitiva gr afica}]. La regola che una particolare direttiva
grafica agisca su tutti gli elementi successivi della lista in cui contenuta.
Le opzioni grafiche (AspectRatio, AxesLabel, PlotRange etc.) che riguardano
modifiche

globali

allintero

grafico,

si

possono

indicare

Show[Graphics[{lista di primitive}], opzione - > valore].


Disegnamo tre punti nel piano nelle posizioni (0,0),(1,0)(2,0):
p1=Point[{0,0}]; p2=Point[{1,0}]; p3=Point[{2,0}];
Show[Graphics[{p1,p2,p3}]]

in

Show

cio

Capitolo 5: Introduzione alluso del software Mathematica

158

Se li vogliamo ingrandire usiamo la direttiva grafica PointSize[d], dove d la


frazione della larghezza complessiva del grafico. Dato che per default d=0.008, per
raddoppiare la dimensione scriviamo 0.016 e cos via.
Show[Graphics[{{p1}, {PointSize[0.025],p2},{PointSize[0.05],p3}}]]

Disegnamo una linea punteggiata che congiunge (-1,-1) e (1,1):


lineapunteggiata={Dashing[{.01,.05,.03}],Line[{{-1,-1},{1,1}}]};
scritta=Text["linea tratteggiata",{0,0}];
Show[Graphics[{lineapunteggiata,scritta}]]

linea tratteggiata

t1=Graphics[Text["triangolo vuoto",{1/2,1}]];
g1=Graphics[Line[{{0,0},{1,0},{1/2,2},{0,0}}]];

Capitolo 5: Introduzione alluso del software Mathematica

159

Show[{g1,t1},Axes -> True]


2.0

1.5

1.0

triangolo vuoto

0.5

0.2

0.4

0.6

0.8

1.0

I grafici possono essere salvati su file per poi essere esportati in un altro testo. Per
salvare un grafico in formato PDF sufficiente selezionare il grafico e scegliere nel men
File>Print Selection e poi Save as PDF. Per salvare il grafico in un formato specifico si
usa il comando Export[file,Expr,formato] che esporta dati numerici, grafici e suoni
convertendoli nel formato scelto.
Export["sinplot2.gif", g, "GIF"] (*salva in formato grafico GIF*)
Export["sinplot2.EPS", g, "EPS"] (*salva in formato EPS*)
Export["sinplot2.PDF", g, "PDF"] (*salva in formato PDF*)
Export["sinplot2.PICT", g, "PICT"] (*salva in formato PICT*)

5.20 Grafici 3D
Le funzioni di una variabile se rappresentano come curve nel piano. Le funzioni f(x,y) si
visualizzano come superfici nello spazio. Per fare questo Mathematica ha

diversi

strumenti a disposizione. Lanalogo comando del Plot Plot3D[f,{x, x min,xmax},


{y,ymin,ymax}].

Capitolo 5: Introduzione alluso del software Mathematica

160

Plot3D[Sin[x+Sin[y]],{x,-5,5},{y,-5,5}]

Mathematica crea un oggetto grafico che denota con SurfaceGraphics.


Le opzioni per disegnare i grafici tri-dimensionali son molte, alcune delle quali
analoghe a quelle viste nel caso bi-dimensionale. Vediamone alcune tra le pi comuni. Per
una lista completa rimandiamo allHelp Browser.
Possiamo chiedere a Mathematica di disegnare un grafico pi accurato cio
specificando, prima di disegnare il grafico, il numero di punti in ogni direzione in cui
calcolare la funzione. Per far questo usiamo la direttiva grafica PlotPoint - >{nx,ny}.
g1=Plot3D[Sin[x + Sin[y]],{x,-5,5}, {y,-5,5}, PlotPoints-> 40]

Lopzione PlotRange- > {a,b} mostra la parte di grafico con a<z<b. Se vogliamo
essere sicuri di visualizzare tutto il grafico scegliamo PlotRange - > All.
Possiamo dare un nome agli assi con il comando AzesLabel- > {nome1,
nome2,nome3}.
Possiamo ridisegnare il grafico da un altro punto di vista con lopzione VewPoint - >
{x0, y0, z0} .
AspectRatio - > r : analoga allopzione vista nel caso 2D;

Capitolo 5: Introduzione alluso del software Mathematica

161

Axes - > False: se non vogliamo visualizzare gi assi coordinati


Boxed - > False: se non vogliamo disegnare la scatola che contiene la superficie;
Mesh - > None: per impedire che una griglia xy compaia sulla superficie disegnata;
Lighting - > False: per non colorare le ombre del grafico in bianco e nero;
HiddenSurface - > False: per disegnare la superficie trasparente;
g1=Plot3D[Sin[x+Sin[y]],{x,-5,5},{y,-5,5},Mesh -> None]

5.21 Costruzione di uninterfaccia


In Mathematica si possono realizzare delle interfacce personalizzate grazie ai molti oggetti
di controllo disponibili.
Alla base di una interfaccia vi sono i contenitori, cio, finestre capaci di contenere
altri oggetti. I contenitori che si hanno a disposizione sono:

CreateWindow[DialogNotebook[ {lista di oggetti}]]: genera un Notebook di


dialogo capace di contenere altri oggetti di controllo;

CreateDialog[{lista di ogge tti}]: genera una finestra di dialogo che pu


contenere espressioni e altri oggetti di controllo

CreateDialog[{TextCell["Click OK to close"],DefaultButton[]}];

Capitolo 5: Introduzione alluso del software Mathematica

162

MessageDialog[expr]: genera una finestra di messaggio con lespressione e


un tasto OK

MessageDialog["text"];

ChoiceDialog["expr]: genera una finestra di scelta standard che visualizza


lespressione con i pulsanti OK e Annulla e restituisce True se si preme OK e
False se si preme Annulla

ChoiceDialog["Make a choice..."]

Gli oggetti di controllo maggiormente utilizzati per la realizzazione delle interfacce


sono:

Button[label, ac tion]: rappresenta un bottone con etichetta uguale a label e


ogni volta che viene premuto esegue lazione action,

Button["Click Here",Print[10!]]

Click Here

InputField[x]: rappresenta un campo modificabile di input che inizialmente


contiene x

ActionMenu: rappresenta un men a tendina che esegue lazione associata al


nome del comando che si sceglie, per sempio:

Capitolo 5: Introduzione alluso del software Mathematica

163

ActionMenu["Print Factorials",{"4!"-> Print[4!],"7!"-> Print[7!],


"10!"->Print[10!]}]

Checkbox[ ]: rappresenta una casella di controllo.

{Checkbox[Dynamic[x]],Dynamic[x]}

Vediamo come si realizza una piccola interfaccia per eseguire una semplice
operazione:
CreateDialog[Grid[{
{
TextCell["INSERIMENTO DATI"],SpanFromLeft
},
{
Spacer[30],TextCell["base"],Spacer[10],
InputField[Dynamic[b],Number,FieldSize->{3,1},
Background-> White],Spacer[30]
},
{
Spacer[30],TextCell["altezza"],Spacer[10],
InputField[Dynamic[a],Number,FieldSize->{3,1},
Background-> White],Spacer[30]
},
{
Button["calcola",{area=b*a}],SpanFromLeft
},
{
Spacer[30],TextCell["area"],Spacer[10],

Capitolo 5: Introduzione alluso del software Mathematica

164

InputField[Dynamic[area],Number,FieldSize->{3,1},
Background-> White],Spacer[30]
}
}],WindowTitle-> "AREA DEL QUADRATO"]

In questo piccolo esempio sono stati usati altri comandi come Grid[] che realizza una
griglia nella quale verranno posizionati gli oggetti, TextCell[expr] che rappresenta una
casella di testo in sola lettura, Spacer[10] che inserisce uno spazio vuoto tra due oggetti,
SpanFromLeft che serve ad unire le celle della griglia.
Esistono moti altri oggetti di controllo come: Manipulate, SlideView, Slider2D,
Locator, LocatorPane etc. che ci consentono di realizzare delle interfacce molto avanzate.
Mathematica mette a disposizione anche dei comandi che riconoscono le azioni del
mouse come: MousePosition (restituisce la posizione del mouse in termini di coordinate),
Mouseover (esegue unazione quando il mouse si trova sopra loggetto specificato),
EventHandler (riconosce diversi tipi di comandi MouseOver, MouseDown,
MouseClicked etc).
Anche in questo caso per ulteriori approfondimenti si consiglia di consultare il
manuale ufficiale The Mathematica Book.

Capitolo 6 : Programma realizzato D-FEM

6.1 Premessa
Il programma D-FEM una semplice applicazione scritta in Mathematica capace di
risolvere strutture intelaiate (frame) o strutture reticolari (truss) applicando, in modo
automatico, il metodo agli elementi finiti, metodo di cui si gi parlato nei capitoli 3 e 4.
In questa versione possibile, per ora, inerire elementi finiti con caratteristiche meccaniche
costanti.
Il programma stato strutturato nella maniera moderna di composizione di un codice
di calcolo agli elementi finiti. Le fasi informatiche elaborate sono: preprocessor, solution e
postprocessor.
I risultati del calcolo sono gli spostamenti nodali e i diagrammi delle sollecitazioni
che vengono visualizzati a video e possono essere esportati, in file Excel, dxf per Autocad
o immagini jpg.
La struttura da risolvere pu essere generata (preprocessing) in differenti modi: 1)
automaticamente scegliendo alcuni parametri geometrici richiesti mediante un menu
interattivo, 2) importata mediante un file dxf, 3) costruita con un file testo .txt e 4)
modellata impiegando linterfaccia grafica del programma.

Capitolo 6 : Programma realizzato D-FEM

166

I file che costituiscono il modello nella completezza del preprocessing sono dei file
testo .txt, contenenti la geometria, i carichi e i vincoli della struttura, che si possono
agevolmente aprire e modificare in qualsiasi momento con un comune editor di testo.

6.2 Avvio e struttura del programma


Per utilizzare il programma occorre istallare il software Mathematica della Wolfram
Research Inc., aprire il file (D-FEM.nb) o (D-FEM.m) e lanciarne lesecuzione che fa
aprire la seguente finestra principale del programma

La finestra dotata degli elementi standard di Windows: barra del titolo, barra dei
men, barra dei pulsanti, area di lavoro, barra di stato. Inoltre si ha a disposizione una barra
per lo zoom, due slidebar e la funzione pan attivata cliccando con il tasto destro del mouse
sullarea di lavoro.

Capitolo 6 : Programma realizzato D-FEM

167

6.3 Creazione di un nuovo progetto


Per iniziare un nuovo progetto dalla barra dei menu cliccare File > nuovo, si apre la
seguente finestra:

dalla quale possiamo creare un nuovo modello strutturale costituito da: 1) un progetto
vuoto

da

implementare

successivamente

in

varie

modalit

come

accennato

nellintroduzione, 2) un telaio (frame) oppure 3) una struttura reticolare (truss).


6.3.1

Realizzazione del modello strutturale dallopzione Vuoto

Nella scelta Vuoto larea di lavoro non visualizza nulla ma vengono inizializzate tutte le
variabili che dovranno contenere i dati del problema e possiamo compiere due scelte:
disegnare la struttura in modalit interattiva utilizzando il mouse oppure importare la
struttura da un file .dxf.
Disegnare il modello strutturale a mano: per disegnare gli elementi geometrici della
struttura dal menu del programma D-FEM cliccare Modifica>inserisci elemento che apre
la seguente finestra:

Capitolo 6 : Programma realizzato D-FEM

168

in cui si inseriscono manualmente le coordinate dei due nodi componenti lasta generica
oppure, se sono presenti altri nodi precedentemente creati, possiamo assegnare al nuovo
elemento due nodi gi esistenti. Una volta inserite le coordinate cliccando sul pulsante
Inserisci lelemento verr aggiunto alla struttura senza chiudere la finestra onde procede
con linserimento di un nuovo elemento asta iterando la procedura. Cliccando sul pulsante
Fatto si chiuder la finestra.
Importare il modello strutturale da file .dxf : per importare la geometria del modello
strutturale da un file .dxf cliccare File>importa.dxf che apre la seguente finestra:

Capitolo 6 : Programma realizzato D-FEM

169

in cui possiamo selezionare la directory e quindi il file .dxf desiderato. Nella foto sopra si
scelto di importare il file telaio.dxf. Per completare loperazione cliccare sul pulsante Apri
che chiude la finestra di importazione file. A questo punto limportazione terminata e
sullarea di lavoro verr visualizzata la struttura importata:

Si nota che con questa opzione possibile costruire modelli strutturali di telai con forme
generiche e quindi con tratti inclinati, differenti piani di imposta dei vincoli, tratti diagonali
etc.
6.3.2

Realizzazione del modello dallopzione Frame

Nella scelta Frame si avvia una procedura guidata (Wizard) per la realizzazione del telaio.
Questa procedura richiede limmissione dei dati attraverso una serie di finestre, la prima
la seguente

Capitolo 6 : Programma realizzato D-FEM

170

in cui si inseriscono il numero di piani e il numero di campate.


Cliccando sul pulsante esci si annulla la procedura automatica di costruzione del telaio.
Cliccando sul pulsante inserisci si apre la finestra sotto

in cui si inseriscono le altezze dei vari piani in (cm), di default verr impostata una altezza
di 300 cm.
Cliccando ancora sul pulsante inserisci si apre la finestra sotto

in cui si inseriscono le larghezze delle varie campate in (cm), di default verr impostata
una larghezza di 400 cm.
Cliccando nuovamente sul pulsante inserisci la procedura automatica di realizzazione del
telaio pu costruire sia gli elementi geometrici sia gli elementi grafici che caratterizzano la
struttura. Inoltre verranno automaticamente assegnati e visualizzati i numeri dei nodi
globali (N.i) e il numero degli elementi (E.i).
A questo punto la procedura automatica terminata e sullarea di lavoro verr
visualizzata la struttura creata:

Capitolo 6 : Programma realizzato D-FEM

6.3.3

171

Realizzazione del modello dallopzione Truss.

Nella scelta Truss si avvier una procedura guidata (Wizard) per la realizzazione di una
struttura reticolare. Questa procedura richiede limmissione dei dati attraverso la seguente
finestra:

in cui si inseriscono, il numero di divisioni, la lunghezza e laltezza delle divisioni in (cm),


di default verr impostato un numero di divisioni pari a 1 e una dimensione di 300cm per
la lunghezza e laltezza delle divisioni.
Cliccando sul pulsante inserisci la procedura automatica costruisce sia gli elementi
geometrici sia gli elementi grafici che caratterizzano la struttura. Inoltre verranno
automaticamente assegnati e visualizzati i numeri dei nodi globali (N.i) e il numero degli
elementi (E.i).

Capitolo 6 : Programma realizzato D-FEM

172

A questo punto la procedura automatica terminata e sullarea di lavoro si visualizza


la struttura creata:

6.4 Modifica del modello strutturale.


Dopo aver generato il modello strutturale si possono sempre apportare delle modifiche ad
esempio se al telaio realizzato nel paragrafo 6.3.2 si vuole eliminare un piano sulla seconda
campata basta cliccare Modifica>elimina elemento che apre la seguente finestra:

selezionare lelemento da eliminare e cliccare il pulsante Elimina. Dopo aver iterato


loperazione per tutti gli elementi da eliminare cliccare Fatto per chiudere la finestra.

Capitolo 6 : Programma realizzato D-FEM

173

Supponiamo inoltre di voler aggiungere un altro piano sulla prima campata e magari
inserire qualche balcone, quindi dal menu cliccare Modifica>inserisci elemento che apre la
seguente finestra:

dopo aver inserito tutti gli elementi che vogliamo con la stessa procedura illustrata nel
paragrafo 6.3.1 clicchiamo il pulsante Fatto che chiude la finestra di inserimento elementi
e aggiorna larea di lavoro. Nel nostro caso il risultato ottenuto il seguente:

Se vogliamo modificare la posizione di un o pi nodi, ad esempio, per aumentare le


dimensioni della seconda campata clicchiamo dal menu Modifica>coordinate nodo che
apre la seguente finestra:

Capitolo 6 : Programma realizzato D-FEM

174

in cui possiamo, selezionare il nodo da modificare cliccando sulle frecce in alto, digitando
il numero del nodo manualmente oppure cliccando con il mouse direttamente sul nodo,
leggere il valore delle coordinate attuali, inserire il valore delle nuove coordinate, cliccare
sul pulsante Modifica che applica le modifiche e le visualizza aggiornando lare di lavoro
oppure cliccare sul pulsante Annulla che chiude la finestra senza applicare le modifiche.
Nel nostro caso il risultato il seguente:

Capitolo 6 : Programma realizzato D-FEM

175

6.5 Salvataggio dei progetti


Prima di procedere con la fase successiva a completamento del preprocessing
(assegnazione dei carichi, dei vincoli, dei materiali e delle sezioni) si salva il progetto dal
menu File>salva che apre la classica finestra di salvataggio di Windows in cui si inserisce
il nome da assegnare al file e la directory in cui archiviarlo:

Se un progetto non mai stato salvato sulla barra del titolo compare D-FEM File senza
nome

in questo caso i comandi File>salva e File>salva c on nom e sono equivalenti cio in


entrambe i casi si apre la finestra Salva con no me. Se invece il progetto stato gi stato
salvato sulla barra del titolo compare D-FEM percorso e nome file.txt

in questo caso con il comando File>salva si vanno a salvare le modifiche apportate al


modello strutturale nel file .txt senza aprire alcuna finestra mentre con il comando
File>salva c on nom e si pu salvare il progetto aperto con un nuovo nome attraverso la
finestra Salva con nome.

Capitolo 6 : Programma realizzato D-FEM

176

6.6 Completamento della fase di preprocessor.


6.6.1

Assegnare i vincoli.

Una volta definito il modello strutturale bisogna assegnare i vincoli che garantiscono
lequilibrio. Per assegnare un vincolo ad un nodo dal menu del programma D-FEM
cliccare Assegna>nodo vincolo che apre la seguente finestra:

in cui possiamo selezionare il nodo cliccando sulle frecce in alto, inserendo il numero del
nodo manualmente oppure cliccando con il mouse sul nodo stesso. Il nodo selezionato
viene evidenziato con un punto di colore rosso come si mostra dalla seguente foto:

Clicchiamo sullelenco a discesa (il pulsante con la freccia nera rivolta verso il basso) per
scegliere il tipo di vincolo da assegnare:

Capitolo 6 : Programma realizzato D-FEM

177

una volta selezionato il vincolo clicchiamo sul pulsante prosegui che chiude la finestra per
linserimento dei vincoli e aggiorna larea di lavoro che visualizza il vincolo assegnato.
Nellimmagine seguente sono stati assegnati ai nodi 1, 3 e 7 i vincoli incastro, cerniera e
carrelloy :

Capitolo 6 : Programma realizzato D-FEM

6.6.2

178

Assegnare le caratteristiche meccaniche.

Assegnare le caratteristiche meccaniche e geometriche ad un elemento del modello


significa assegnare a questo una sezione geometrica. Le sezioni hanno caratteristiche
meccaniche differenti a seconda della forma, della dimensione e del materiale che le
compone. In modo particolare le caratteristiche che ci interessano sono: la rigidezza assiale
(EA) che dipende dal modulo elastico del materiale e dallarea della sezione trasversale
retta; la rigidezza flessionale (EI) secondo i due assi che dipende dal modulo elastico del
materiale e dalla forma della sezione e il peso per unit di lunghezza che dipende dal tipo
di materiale e dalla dimensione della sezione.
Il programma D-FEM assegna di default a tutti gli elementi creati una sezione tipo
IPE160, per assegnare una sezione, diversa, a un elemento dal menu del programma DFEM clicchiamo Assegna>tratto sezione che apre la seguente finestra:

In cui possiamo selezionare lelemento cliccando sulle frecce in alto, inserendo


manualmente il numero dellelemento oppure cliccando con il mouse sullelemento stesso.
Lelemento selezionato viene evidenziato con il colore rosso come si pu vedere dalla
figura seguente:

Capitolo 6 : Programma realizzato D-FEM

179

cliccando sullelenco a discesa compare una lista di sezioni preimpostate

chiaro che si possono inserire tutte le sezione dei profilati che si trovano in commercio
oppure creare sezioni personalizzate come nel caso del calcestruzzo. Dopo aver selezionato
la sezione desiderata clicchiamo sul pulsante prosegui che chiude la finestra e aggiorna
larea di lavoro che visualizza il nome della nuova sezione in corrispondenza dellelemento
modificato.
6.6.3 Inserire le forze concentrate nodali.
Per applicare delle forze concentrate ad un nodo dal menu del programma D-FEM
clicchiamo Assegna>nodo forze che apre la seguente finestra:

Capitolo 6 : Programma realizzato D-FEM

180

anche in questo caso il nodo pu essere selezionato con le stesse modalit viste per
lassegnazione dei vincoli. Una volta selezionato il nodo possiamo inserire, una forza
agente in direzione x (FX), una forza agente in direzione y (FY) e una coppia agente in
direzione z (MZ) digitando nelle rispettive caselle di testo lintensit in (kg) (le forze
vengono inserite secondo il riferimento globale). Clicchiamo il tasto prosegui che chiude la
finestra per linserimento delle forze e aggiorna larea di lavoro che visualizza le forze
inserite.
Nellimmagine seguente stata assegnata ai nodi 2, 5 e 10 una forza orizzontale (FX) di
intensit pari a 100 kg:

Capitolo 6 : Programma realizzato D-FEM

6.6.4

181

Inserire i carichi distribuiti.

Per applicare un carico distribuito a un elemento dal menu del programma D-FEM
clicchiamo Assegna>tratto carico che apre la seguente finestra:

gli elementi possono essere selezionati con le stesse modalit viste per lassegnazione della
seione. Possiamo assegnare carichi distribuiti agenti in direzione x (qx) o in direzione y
(qy) oppure coppie distribuite (qz) digitando nella rispettive caselle di testo lintensit del
carico in (kg/cm) (i carichi distribuiti vengono inseriti secondo il riferimento globale).
Clicchiamo il pulsante prosegui che chiude la finestra di inserimento carichi e aggiorna
larea di lavoro che visualizza i carichi inseriti.
Nellimmagine seguente ad ogni traverso stato applicato un carico distribuito (qy) di
intensit pari a -5kg/m:

Capitolo 6 : Programma realizzato D-FEM

182

6.7 Propriet degli oggetti.


Per visualizzare le propriet degli elementi asta clicchiamo Propriet>elemento che apre la
seguente finestra:

in cui possiamo selezionare lelemento, cliccando sulle frecce in alto, inserendo


manualmente il numero dellelemento oppure cliccando con il mouse sullelemento stesso.
Lelemento selezionato viene evidenziato con il colore rosso come si pu vedere dalla
figura sopra. La finestra delle propriet riporta le seguenti informazioni: Lunghezza,
Rotazione, Coordinate dei punti iniziale finale, Numero identificativo dei nodi globali
interessati, Carichi distribuiti applicati e Sezione tipo. Nella zona dedicata ai carichi
presente un pulsate che ci consente di aprire la finestra di inserimento carichi vista nel
paragrafo (6.6.4) per inserire un nuovo carico o per modificare quelli presenti, anche per la
sezione si ha a disposizione un pulsante che apre la finestra delle caratteristiche
meccaniche vista nel paragrafo (6.6.2) per assegnare una sezione diversa. Per chiudere la
finestra clicchiamo il pulsante Fatto.

Capitolo 6 : Programma realizzato D-FEM

183

Per visualizzare le propriet dei nodi clicchiamo Propriet>nodo che apre la


seguente finestra:

in cui sono riportate le seguenti informazioni: coordinate, forze applicate e vincolo


assegnato. Inoltre abbiamo a disposizione tre pulsanti, il primo in corrispondenza delle
coordinate che apre la finestra MODIFICA NODO vista nel paragrafo (6.4), il secondo in
corrispondenza delle forze che apre la finestra INSERIMENTO FORZE vista nel paragrafo
(6.6.3), il terzo in corrispondenza del vincolo che apre la finestra INSERIMENTO
VINCOLI vista nel paragrafo (6.6.1). Per chiudere la finestra clicchiamo il pulsante Fatto.

6.8 Impostazioni grafiche.


Larea di lavoro pu essere personalizzata modificando le dimensioni delle etichette, dei
vincoli, delle frecce che rappresentano le forze concentrate e dei carichi distribuiti. Inoltre
possiamo scegliere se visualizzare oppure no un righello, una griglia automatica, le
etichette, le forze e i carichi.

Capitolo 6 : Programma realizzato D-FEM

184

Per modificare le dimensioni degli oggetti grafici clicchiamo dal menu


impostazioni>scala oggetti che apre la seguente finestra:

in cui possiamo inserire i valori manualmente oppure lasciare i valori calcolati in modo
automatico.
Per visualizzare i vari oggetti clicchiamo dal menu Visualizza che apre il seguente
menu a tendina:

in cui possiamo selezionare o deselezionare le checkbox degli oggetti da visualizzare o


nascondere.

Capitolo 6 : Programma realizzato D-FEM

185

Selezioniamo la checkbox RIGHELLO e la checkbox GRIGLIA per visualizzare sia il


righello che la griglia automatica nellarea di lavoro ottenendo il seguente risultato:

questi strumenti sono utili per avere un rapido riscontro sulle dimensioni del modello
strutturale.
Se il modello strutturale complesso come il seguente:

Capitolo 6 : Programma realizzato D-FEM

186

conviene visualizzare solo gli oggetti che ci interessano onde evitare di appesantire
graficamente il modello.
Nascondiamo le etichette delle sezioni e degli elementi. Clicchiamo dal menu
Visualizza e deselezioniamo le checkbox E t_sezioni e Et_elememti ottenendo il seguente
risultato:

che risulta pi chiaro e leggibile del precedente.

6.9 Barra dello zoom


La barra dello zoom composta da una slidbar per effettuare uno zoom dinamico, da due
pulsanti che incrementano o decrementano il fattore di scala di due unit per ogni click, da
un pulsante zoom t utto che adatta le dimensione del modello alle dimensioni delarea di
lavoro modificando il fattore di scala automaticamente e da un pulsante zoom finestra che
ci consente di tracciare, cliccando con il mouse sullarea di lavoro, una finestra
rettangolare di colore azzurro che individua larea da ingrandire come si vede dalla
seguente figura:

Capitolo 6 : Programma realizzato D-FEM

187

il risultato dello zoom finestra il seguente:

6.10 Analisi del modello creato (solution).


Per definire la modalit di analisi clicchiamo dal menu del programma D-FEM Opzioni
analisi che apre il seguente menu a tendina:

Capitolo 6 : Programma realizzato D-FEM

188

in cui possiamo scegliere, selezionando o deselezionando la checkbox Peso Proprio,


di includere o escludere dal calcolo il peso proprio dei vari elementi che compongono la
struttura. Se vogliamo considerare i vincoli interni incastri relativi selezioniamo la
checkbox F rame se invece vogliamo considerare i vincoli interni cerniere relative
selezioniamo la checkbox Truss.
Ora siamo pronti a lanciare la soluzione quindi clicchiamo il pulsante ESEGUI
ANALISI che avvia lalgoritmo di risoluzione richiamando la seguente funzione:

Capitolo 6 : Programma realizzato D-FEM

189

RISOLUTORE TRUSS
Si riporta la funzione contenente l'algoritmo che consente la risoluzione del
problema automatizzando il metodo agli elementi finiti.
risolutoretelai @numelem1_ , numnodi1_ D :=
ModuleB8numelem = numelem1, numnodi = numnodi1<,

H*definizione delle matrici di, rigidezza locale,


rotazione, rigidezza globale, connessione, del singolo elemento*L
VKeloc = Table@8<, 8i, numelem<D;
VQe = Table@8<, 8i, numelem<D;
VKegl = Table@8<, 8i, numelem<D;
VMcon = Table@8<, 8i, numelem<D;

H*definizione della matrice di rigidezza globale per l'intera struttura*L


Kg = Table@0, 8i, 3 numnodi<, 8j, 3 numnodi<D;

H*creazione della matrice di rigidezza e della matrice di rotazione dell' elemento iesimo *L
ForBi = 1, i numelem , i ++,
:Mcon = Table@0, 8i, 6<, 8j, 3 numnodi<D,
EA = VEAEI@@i, 1DD, EI = VEAEI@@i, 2DD, l = VL@@iDD,
EA
l

12 EI

6 EI

l3

l2

6 EI

4 EI
l

EA
l

6 EI
l2

12 EI
l3

Keloc =

l2

EA
l

0
0

12 EI
l3

6 EI
l2

EA
l
0

2 EI
l

12 EI
l3

l2

6 EI

2 EI
l

l2

6 EI

6 EI
l2

6 EI
l2

4 EI
l

VKeloc@@iDD = Keloc,
R = VR@@iDD,

Qe =

Cos@RD
Sin@RD
0
0
0
0

Sin@RD
Cos@RD
0
0
0
0

0
0
1
0
0
0

0
0
0
Cos@RD
Sin@RD
0

0
0
0
Sin@RD
Cos@RD
0

0
0
0
,
0
0
1

VQe@@iDD = Qe,
H*costruzione della matrice di connettivit dell'elemento iesimo*L
For@n = 1, n 2, n ++,
8nod = elempoint @@i, nDD,
ind = Hnod 1L 3 + 1,

Capitolo 6 : Programma realizzato D-FEM


H
L
If@n == 1, riga = 1, riga = 4D,
colonna = ind,
For@k = 1, k 3, k ++,
8Mcon@@riga, colonnaDD = 1,
riga = riga + 1,
colonna = colonna + 1
<D
<D,
Keg = Transpose@QeD.Keloc.Qe,
Kg = Kg + Transpose@MconD.Keg.Mcon,
VKegl@@iDD = Keg,
VMcon@@iDD = Mcon,

>F;

H*costruzione dell'operatore di contrazione*L


nrighe = Count@VU, 1D;
OpCon = Table@0, 8i, nrighe<, 8j, numnodi 3<D;
nrig = 1;
For@j = 1, j numnodi 3, j ++,
8If@VU@@j DD  1,
8OpCon@@nrig, jDD = 1,
nrig = nrig + 1<D
<D;
H*passaggio alla matrice Kcontratta,
al vettore degli spostamenti VUcontratto e al vettore delle forze nodali VFcontratto*L
IfAOpCon  8<, VRv = Chop@H VFNL, 10 ^ 6D; VUgl = Array@0 &, numnodi 3D,
Kcontr = OpCon.Kg.Transpose@OpConD;
VUcontr = OpCon.VU;
VFcontr = OpCon.VF;
MatrixForm @KcontrD;
MatrixForm @VUcontrD;
MatrixForm @VFcontrD;

H*CONTROLLO DELLA LABILITA'*L


determinante = Det@KcontrD;
If@determinante  0, 8MessageDialog @"LA STRUTTURA E' LABILE"D, Abort@D<D;

H*matrice della cedevolezza*L


Mced = Inverse@KcontrD;
Mced MatrixForm;

H*vettore degli spostamenti nodali contratto*L


VUcontrattosoluzione = Flatten@Mced.VFcontrD;

H*vettore degli spostamenti nodali non contratto*L

190

Capitolo 6 : Programma realizzato D-FEM

VUgl = Transpose @OpConD.VUcontrattosoluzione ;


uuu = Table@HUg.iL, 8i, numnodi 3<D;
8MatrixForm @uuuD, NumberForm @MatrixForm @Chop@VUgl, 10 ^ 5DD, 810, 8<D<;
VUgln = Chop@Partition @VUgl, 3DD;
E;

H*componenti di spostamento Hx,yL di ogni nodo*L


VUglxy = Chop@Partition@VUgl, 2, 3D, 10 ^ 6D;
VUglxy1 = Partition@VUgl, 2, 3D;

H*vettore degli spostamenti nodali non contratto*L


Forze = Kg.VUgl;
rrr = Table@HRg.iL, 8i, numnodi 3<D;
8MatrixForm @rrrD, NumberForm @MatrixForm @Chop@Forze, 10 ^ 6DD, 830, 2<D<;
VRv1 = Partition @Forze, 3D;
VRv = Chop @H VRv1 VFNL, 10 ^ 6D;
F;

191

Capitolo 6 : Programma realizzato D-FEM

192

dalla quale si ottengono gli spostamenti nodali nel riferimento globale che ci consentono di
definire tutte le funzioni da noi ricercate e che vedremo nella fase di postprocessor.
Allinterno della funzione stato predisposto un controllo sulla labilit della
struttura, pi precisamente, si valuta il determinante della matrice di rigidezza globale
contratta e se questo uguale a 0 il programma ci avvisa con un messaggio che la
struttura labile e contemporaneamente arresta la funzione. Questo controllo non ci
consente di risolvere strutture labili in equilibrio ma solo strutture isostatiche o
iperstatiche.

6.11 Visualizzare i risultati (postprocessor).


Per visualizzare i risultati ottenuti dalla fase di solution basta cliccare sui pulsanti posti
sulla sinistra dellare di lavoro dove troviamo anche una casella di testo che ci indica
qual la finestra attiva. Inizialmente viene attivata la vista della struttura.
6.11.1 Reazioni vincolari.
Per visualizzare le reazioni vincolari clicchiamo sul pulsante REAZ VINCOLARI che attiva
la seguente vista:

Capitolo 6 : Programma realizzato D-FEM

193

se i valori delle reazioni sono poco leggibili possiamo effettuare uno zoom f inestra
ottenendo il seguente risultato:

6.11.2 Deformata.
Per visualizzare la deformata cinematica clicchiamo sul pulsante DEF CINEMATICA che
attiva la seguente vista:

Capitolo 6 : Programma realizzato D-FEM

194

Per visualizzare la deformata elastica clicchiamo sul pulsante DEF ELASTICA che
attiva la seguente vista:

in cui vengono visualizzate la struttura iniziale in grigio, la struttura deformata in blu e i


nodi in rosso. Se vogliamo visualizzare il campo di spostamento di un nodo posizioniamo
il mouse su di esso e grazie alla funzione Tooltip si ottiene il seguente risultato:

in cui possiamo leggere sia il valore dello spostamento in direzione x e y sia la rotazione
effettuata dal nodo.

Capitolo 6 : Programma realizzato D-FEM

195

6.11.3 Diagrammi.
I diagrammi delle sollecitazioni sono stati tracciati considerando la seguente convenzione
sui segni:

Convensione sui segni:

+
Forze e
Momenti

+
Trazione, Taglio e Momento flettente

Per visualizzare i diagrammi del momento flettente clicchiamo sul pulsante


MOMENTO che attiva la seguente vista:

in cui possiamo vedere il diagramma del momento flettente di ogni elemento tracciato in
rosso quando le fibre tese si trovano dal lato delle y positive nel riferimento locale e in
verde quando le fibre tese si trovano dal lato delle y negative nel riferimento locale.

Capitolo 6 : Programma realizzato D-FEM

196

Per visualizzare il diagramma del taglio clicchiamo sul pulsante TAGLIO che attiva
la seguente vista:

in cui possiamo vedere il diagramma del taglio di ogni elemento tracciato in rosso per i
valori negativi e in verde per i valori positivi.
Per visualizzare i diagrammi dello sforzo normale clicchiamo sul pulsante
NORMALE che attiva la seguente vista:

Capitolo 6 : Programma realizzato D-FEM

197

in cui possiamo vedere il diagramma dello sforzo normale di ogni elemento tracciato in
rosso se negativo e in verde se positivo.
Se i diagrammi in alcuni punti non sono visibili clicchiamo dal menu
Impostazioni>scala diagrammi che apre la seguente finestra:

in cui possiamo selezionare la checkbox per impostare un fattore di scala automatico


oppure deselezionare la checkbox e inserire il fattore di scala manualmente.
Impostiamo per il diagramma del momento flettente un fattore di scala pari a 0.001 e
clicchiamo il pulsante prosegui che applica le modifiche e aggiorna larea di lavoro
ottenendo il seguente risultato:

Se ci posizioniamo con il mouse sui diagrammi compare unetichetta contenente il valore


della sollecitazione in quel punto come si mostra nella seguente figura:

Capitolo 6 : Programma realizzato D-FEM

198

6.11.4 Animazione.
Per visualizzare lanimazione della deformata clicchiamo sul pulsante ANIMAZIONE che
apre la seguente finestra:

in cui inseriamo il valore minimo e massimo del moltiplicatore dei carichi orizzontali e il
valore dellincremento del moltiplicatore, minore lincremento inserito e migliore la
qualit dellanimazione. Per creare lanimazione stato utilizzato un ciclo For[] che per
ogni ciclo incrementa di 0.5 il moltiplicatore, esegue lanalisi della struttura e salva in un
vettore i valori della deformata ottenuta, fino a quando questo non uguale a 2. Dopo aver
salvato tutte le deformate calcolate queste verranno visualizzate in sequenza generando
lanimazione in una finestra secondaria.

Capitolo 6 : Programma realizzato D-FEM

199

6.12 Esportazione in altri formati.


I risultati ottenuti dallanalisi della struttura possono essere esportati in altri formati per
consentire ulteriori elaborazioni. Immaginiamo ad esempio di dover progettare un telaio in
calcestruzzo armato, dopo aver calcolato le sollecitazioni agenti sulla struttura si dovranno
effettuare delle verifiche sulle sezioni pi sollecitate e si dovranno redigere delle tavole
grafiche contenenti i diagrammi delle sollecitazioni. Quindi molto importante poter
esportare i risultati sia in forma numerica che in forma grafica.
Per esportare i dati in un foglio di Excel clicchiamo dal menu Esporta>xls che crea
nella stessa directory dove si trova il file .txt un file con lo stesso nome del progetto ma
con estensione .xls. Nel nostro caso stato creato il file esempio telaio da dxf dati.xls
come si vede dalla seguente figura:

che contiene un foglio per ogni sollecitazione pi un foglio per gli spostamenti nodali. I
fogli delle sollecitazioni sono strutturati nel seguente modo:

Capitolo 6 : Programma realizzato D-FEM

200

in cui per ogni elemento troviamo una colonna (x) delle ascisse e una colonna (M)
contenente i valori della sollecitazione corrispondente. Il foglio degli spostamenti nodali
il seguente:

dove troviamo lelenco dei nodi nella numerazione globale e con i rispettivi valori dello
spostamento.
Per esportare i diagrammi delle sollecitazioni in formato .dxf clicchiamo dal menu
Espota>dxf che crea nella stessa directory dove si trova il file esempio t elaio.txt i
seguenti file: esempio te laio DEFORMATA.dxf; esempio t elaio MOMENTO.dxf;
esempio t elaio SFORZO N ORMALE.dxf; esempio t elaio TAGLIO.dxf; come si vede
dalla seguente figura:

Capitolo 6 : Programma realizzato D-FEM

201

Apriamo il file esempio telaio MOMENTO.dxf per vedere i risultati:

Se ci occorre inserire i risultati in una relazione possiamo esportare i diagrammi delle


sollecitazioni direttamente in .pdf, clicchiamo dal menu Esporta>pdf che crea nella
stessa directory dove si trova il file D-FEM.nb i seguenti file: esempio t elaio
DEFORMATA.pdf; esempio t elaio MOMENTO.pdf; esempio t elaio SFORZO
NORMALE.pdf esempio telaio TAGLIO.pdf;
come si vede dalla seguente figura:

Si riportano di seguito i file .pdf creati per vedere i risultati.

Capitolo 6 : Programma realizzato D-FEM

File esempio telaio DEFORMATA.pdf:

202

Capitolo 6 : Programma realizzato D-FEM

File esempio telaio MOMENTO.dxf:

203

Capitolo 6 : Programma realizzato D-FEM

File esempio telaio TAGLIO.dxf:

204

Capitolo 6 : Programma realizzato D-FEM

File esempio telaio SFORZO NORMALE.dxf:

205

Capitolo 6 : Programma realizzato D-FEM

206

6.13 Esempi realizzati


6.13.1 Esempio 1: capriata polonceau
Il modello strutturale analizzato una capriata polonceau di seguito riportata:
LEGENDA
Sezioni elementi

750 kg
500 kg
400 kg
700 kg

200 kg

2U 160
TUB(88.9x3.6)

500 kg

TUB(60.3x3.6)
700 kg

150 kg

200 cm
500 kg

500 kg

200 kg

150 kg

200 kg
150 kg

100 cm

1000 cm

La capriata stata disegnata con il software Autocad


programma D-FEM ottenendo il seguente risultato:

e poi importata nel

Capitolo 6 : Programma realizzato D-FEM

207

dopo aver importato il modello procediamo con lassegnazione dei carichi e delle sezioni.
Modello strutturale dal programma D-FEM:

Si riportano di seguito i risultati ottenuti dallanalisi.


Diagramma del momento flettente:

Capitolo 6 : Programma realizzato D-FEM

Diagramma del taglio:

Diagramma dello sforzo normale:

208

Capitolo 6 : Programma realizzato D-FEM

Deformata elastica:

209

Capitolo 6 : Programma realizzato D-FEM

210

6.13.2 Esempio 2: telaio


Il modello strutturale analizzato il seguente telaio:
15 kg/cm

8 kg/cm

10 kg/cm

150 cm

20 kg/cm

200 cm

150 cm

10 kg/cm

LEGENDA
Sezioni elementi

4 kg/cm

IPE 160
IPE 180
HEA 160

300 cm

HEA 180

5 kg/cm

400 cm

200 cm

400 cm

Capitolo 6 : Programma realizzato D-FEM

211

Il telati stato disegnato con il software Autocad e poi importato nel programma
D-FEM ottenendo dio seguente risultato:

dopo aver importato il modello procediamo con lassegnazione dei carichi e delle sezioni.
Modello strutturale dal programma D-FEM:

Si riportano di seguito i risultati ottenuti dallanalisi.

Capitolo 6 : Programma realizzato D-FEM

Diagramma del momento flettente:

Diagramma del taglio:

212

Capitolo 6 : Programma realizzato D-FEM

Diagramma dello sforzo normale:

Deformata elastica:

213

Conclusioni

Obiettivo preposto.
Lobiettivo di questa tesi stato quello di applicare le multivoche e potenti capacit del
software Mathematica per la realizzazione di un programma di calcolo strutturale, basato
sul Metodo agli Elementi Finiti, dedicato alla risoluzione di strutture Frame o Truss in 2D.
Nella fase di programmazione dellalgoritmo, necessario alla risoluzione delle
strutture, si da subito evidenziata la facilit con la quale si riesce a creare e a manipolare
sia vettori che matrici. Questi ultimi sono gli elementi base del metodo utilizzato, FEM, ma
soprattutto sono elementi che si prestano bene alla realizzazione di procedure cicliche.
Nella realizzazione dellinterfaccia si potuto far riferimento ad unampia libreria di
oggetti grafici, messi a disposizione da Mathematica, che hanno semplificato in modo
notevole le varie operazioni di compilazione.
Molte funzioni sono state aggiunte, rimosse o adattate al fine di migliorare e
semplificare le procedure di calcolo ed il sistema per linserimento dei dati da parte
dellutente per la caratterizzazione del modello strutturale.
Gli obiettivi prefissati sono stati raggiunti con relativa semplicit grazie alle ampie
possibilit della procedural programming insite nel software Mathematica e al suo help
online ricco di esempi necessari alla migliore comprensione delle possibilit offerte.

Conclusioni

215

Sviluppi possibili.
Lapplicazione realizzata potrebbe essere migliorata ampliando le capacit attuali. Per
esempio si potrebbero realizzare nuove funzioni per: inserimento di elementi a sezione
variabile; inserimento di carichi variabili; inserimento di vincoli inclinati; inserimento di
vincoli interni misti; inserimento di diverse condizioni di carico. Si potrebbe inoltre
estendere lapplicazione al caso di telai 3D.
Inoltre possibile lestensione al calcolo elasto-plastico dei telai (step-by-step
procedure) procedendo ad un ciclo di calcoli elastici modificando la struttura quando in
una o pi sezioni si crea una cerniera plastica.
Il programma D-FEM attualmente funziona solo in ambiente Mathematica quindi
non un software eseguibile autonomamente.
Mathematica mette a disposizione dei sottoprogrammi, detti Add-on, che gli
consentono di interagire con altri ambienti di programmazione come il C, il Java, il
.NET ed altri ancora. Grazie a questi sottoprogrammi si potrebbe trasformare il
programma realizzato in un file .exe quindi eseguibile in qualsiasi computer anche se
sprovvisto del software Mathematica.

Bibliografia

Riferimenti bibliografici

Codegone M., Metodi m atematici pe r l' ingegneria, Zanichelli Editore, Bologna,


1995;

Cook R. D., Finite element for stress analysis, John Wiley & Sons., 1995;

Nunziante L., Scienza delle Costruzioni - Il Continuo, Jovene, Napoli, 2000;

Nunziante L., Tralli A., Gambarotta L., Scienza de lle c ostruzioni, McGraw-Hill
Companies, 2007;

William A. Nash, Strength of Materials 2nd edition, McGraw-Hill, 1982;

McMahon D. & Topa D. M., A B eginner's G uide T o M athematica, Chapman &


Hall, 2006;

Gesualdo A., Appunti de l c orso di St rumenti e M etodi A utomatici pe r i l C alcolo


Strutturale, Napoli, 2009;

Wolfram S., The Mathematica book, Wolfram Media, Inc., USA, 2009 ;

Trott M., The Mathematica GuideBook for Symbolics, Springer, USA, 2005;

Trott M., The Mathematica GuideBook for Numerics, Springer, USA, 2005;

Trott M., The Mathematica GuideBook for Programming, Springer, USA, 2004;

Trott M., The Mathematica GuideBook for Graphics, Springer, USA, 2004;

Carpinteri A., Calcolo automatico delle strutture, Pitagora, Bologna, 1997;

Viola E., Fondamenti di analisi matriciale delle strutture, Pitagora, Bologna, 1996;

Wolfram S., A new kind of science, Wolfram Media, Inc., USA, 2002;

Bibliografia

217

Wellin P. R., Gaylord S. N. K., An introduction to programming with Mathematica,


Cambridge University Press, UK, 2005;

Bhatti M. A., Fundamental f inite e lement analysis and appl

ication: w ith

Mathematica and Matlab computations, John Wiley & Sons., New Jersey 2005;

Bhatti M. A., Advanced t opics i n finite e lement anal ysis of s tructures: with
Mathematica and Matlab computations, John Wiley & Sons., New Jersey 2006;

Capurso M., Introduzione al calcolo automatic delle strutture, Zanichelli-ESAC,


Bologna, 1986;