Sei sulla pagina 1di 76

Universita degli Studi di Roma Tor Vergata

Corso di Laurea Magistrale in Ingegneria Meccanica

COSTRUZIONE DI MACCHINE
Esercitazioni del corso
a.a. 2013-2014

Alfredo Patrizi
matr. 194329 - Ing. Meccanica
email: alfredo.patrizi@gmail.com

27 febbraio 2014
Indice
1 Dischi di spessore costante 1
1.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 Oggetto e scopo . . . . . . . . . . . . . . . . . . . . . . 1
1.1.2 Geometria, materiale, condizioni di carico . . . . . . . 1
1.1.3 Metodologia e riferimenti . . . . . . . . . . . . . . . . . 2
1.2 Calcolo dello stato di tensione nel disco centrale . . . . . . . . 2
1.2.1 Risoluzione analitica . . . . . . . . . . . . . . . . . . . 2
1.2.2 Risoluzione numerica (FEM) . . . . . . . . . . . . . . . 6
1.3 Studio dellaccoppiamento albero-mozzo . . . . . . . . . . . . 8

2 Disco iperbolico: Risoluzione analitica e numerica 11


2.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.1 Oggetto e scopo . . . . . . . . . . . . . . . . . . . . . . 11
2.1.2 Geometria, materiale, condizioni di carico . . . . . . . 12
2.1.3 Metodologia e riferimenti . . . . . . . . . . . . . . . . . 12
2.2 Calcolo dello stato di tensione nel disco centrale . . . . . . . . 13
2.2.1 Risoluzione analitica . . . . . . . . . . . . . . . . . . . 13
2.2.2 Metodo di Timoshenko-Grammel . . . . . . . . . . . . 15
2.2.3 Metodo di Manson . . . . . . . . . . . . . . . . . . . . 17
2.2.4 Metodo agli elementi finiti . . . . . . . . . . . . . . . . 19
2.3 Confronto tra i metodi di discretizzazione . . . . . . . . . . . . 21

3 Duomo sferico 23
3.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.1.1 Oggetto e scopo . . . . . . . . . . . . . . . . . . . . . . 23
3.1.2 Geometria, materiale, condizioni di carico . . . . . . . 24
3.1.3 Metodologia e riferimenti . . . . . . . . . . . . . . . . 24
3.2 Problema 3a: duomo con chiusura a lanterna . . . . . . . . . . 26
3.2.1 Dimensionamento del guscio . . . . . . . . . . . . . . . 26
3.2.2 Dimensionamento dellanello di rinforzo . . . . . . . . . 29
3.3 Problema 3b: duomo a sesto pieno . . . . . . . . . . . . . . . . 31
3.3.1 Dimensionamento del guscio . . . . . . . . . . . . . . . 31
3.3.2 Dimensionamento dellanello di rinforzo . . . . . . . . . 35

Bibliografia 37

A Listati in ambiente Matlab 39


Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

Esercitazione 1
Dischi di spessore costante
1.1 Introduzione
1.1.1 Oggetto e scopo
Si richiede di eseguire il calcolo delle tensioni vigenti nel disco centrale di
spessore costante del rotore in acciaio di cui si riporta una vista in sezione in
Figura 1.1. Il rotore e soggetto a sollecitazioni da campo centrifugo dovuto
alla rotazione e a distribuzioni di carico di superficie al raggio interno del
mozzo e al raggio esterno della corona. Deve compiersi la verifica di resistenza
rispetto alla tensione di snervamento del materiale.
Si richiede inoltre il calcolo dellinterferenza di calettamento tra albe-
ro e mozzo necessaria a garantire, in condizioni desercizio, la distribuzio-
ne di pressione agente al raggio interno del disco, nonche della velocita di
scioglimento dellaccoppiamento.

1.1.2 Geometria, materiale, condizioni di carico


a
Grandezze geometriche:
rm = 60 mm r c

ri = 110 mm
re = 300 mm
rc = 400 mm
a = 100 mm
b = 140 mm h
rc

h = 25 mm
re

Caratteristiche del materiale:


E = 210 GP a r m
ri
rm

= 0.3
= 7.85 kg/dm3 b

sn = 700 M P a Figura 1.1

Condizioni di carico:
velocita di rotazione: n = 5400 rpm

D
Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

forza di superficie al raggio interno del mozzo: rm = 10 M P a


forza di superficie al raggio esterno della corona: rm = 50 M P a

1.1.3 Metodologia e riferimenti


Si e seguito preliminarmente un approccio analitico per la verifica a sner-
vamento, secondo la metodologia proposta in Vullo e Vivio 2013. La struttura
rispetta le condizioni di validita dellipotesi di assialsimmetria generalizza-
ta e presenta spessori piccoli rispetto alle dimensioni radiali: in questa fase,
pertanto, e stata introdotta lipotesi di stato piano di tensione. I calcoli sono
stati eseguiti attraverso un apposito script in ambiente di programmazione
Matlab, il cui listato e riportato in calce alla presente.
I risultati cos ottenuti sono stati successivamente confrontati con un mo-
dello numerico agli elementi finiti, in termini di tensione radiale, circonfe-
renziale e tensione equivalente secondo i criteri di resistenza della tensione
tangenziale massima e dellenergia di distorsione massima.
E stato infine svolto il calcolo dellinterferenza di calettamento e della
velocita di scioglimento dellaccoppiamento, secondo le relazioni proposte in
Vullo 2014 per strutture composite di solidi cilindrici coassiali, specializzate
nel caso di dischi rotanti.

1.2 Calcolo dello stato di tensione nel disco


centrale
1.2.1 Risoluzione analitica
Introduzione
Segue lesposizione dellanalisi delle tensioni secondo il metodo proposto
in Vullo e Vivio 2013: il rotore si considera composto di tre dischi di spessore
costante, mozzo-disco-corona, in corrispondenza delle cui interfacce dovranno
corrispondentemente imporsi:
- equilibrio in senso radiale: r h = cost
- congruenza degli spostamenti: ui ( = 1) = ui+1 ( = i )
Si osserva che tale approccio introduce unapprossimazione forte nel calcolo
poiche non tiene conto della triassialita intrinseca dello stato di tensione
in corrispondenza delle interfacce. Tuttavia, i risultati che possono in tal
modo ottenersi per il disco centrale di spessore costante continuano ad avere
validita dal punto di vista ingegneristico in virtu del principio di De Saint
Venant, per il quale gli effetti della ridistribuzione delle tensioni nelle sezioni

2 Esercitazione 1: Dischi di spessore costante


Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

estremali sono trascurabili a distanze superiori alle dimensioni lineari delle


sezioni stesse.
Stante lapprossimazione di cui sopra, per ciascuno dei dischi valgono1 :

2 2
r = A B/ C

t = A + B/2 D 2

u = r t = rEe [A (1 ) + B/2 (1 + ) (D C) 2 ]

Nelle costanti A, B verranno computati, in virtu del principio di sovrappo-


sizione degli effetti, i contributi delle tre sollecitazioni agenti: tensione radiale
al raggio interno, tensione radiale al raggio esterno, campo centrifugo.
re ri 2 3 +
A= 2
+ 0 (1 + 2 )
1 8
2 3+
B = (re ri ) 2
+ 0 2
1 8

Calcolo e risultati
Dalle equazioni di equilibrio alle interfacce mozzo-disco e disco-corona si
ricavano
m d
r,r i
= r,ri
h/b
c d
r,re = r,re h/a
e imponendo le condizioni al contorno
r = rm per r = rm
r = rc per r = rc
e infine possibile impostare la risoluzione del sistema delle equazioni di con-
gruenza alle medesime interfaccia nelle sole incognite. Valgono2 :
- uri ,m = uri ,d , con
2

ri h 1 2 2m
uri ,m = r,ri 2
(1 + (1 + ) m ) rm 2
+
E b 1 m 1 m
1 2
 
3+ 2 2
+ 0,m (1 + m ) (1 ) + m (1 + )
8 3+
2
  
re 2 d (1 + )
uri ,d = d r,re r,ri 1+ +
E 1 d2 1 d2 d2
1 2 2
 
3+ 2
+ 0,d (1 + d ) (1 ) + (1 + ) d
8 3+
1
Si e introdotta la variabile adimensionalizzata = r/re ; le costanti C, D valgono
C = 3+
8 0 e D =
1+3
8 0 , essendo 0 = 2 re2 la tensione di riferimento
2
Le tensioni r,ri , r,re si intendono di seguito riferite al disco centrale

1.2. Calcolo dello stato di tensione nel disco centrale 3


Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

- ure ,d = ure ,c , con

2d2

ri 1 2
ure ,d = r,re (1 + (1 + ) d ) r,ri +
E 1 d2 1 d2
1 2
 
3+ 2 2
+ 0,d (1 + d ) (1 ) + d (1 + )
8 3+
c2
  
rc 2 h (1 + )
ure ,c = c rc r,re 1+ +
E 1 c2 a 1 c2 c2
1 2 2
 
3+ 2
+ 0,c (1 + c ) (1 ) + (1 + ) c
8 3+

Loutput dello script interfacesRadialStress.m risulta:


sigmaRI = -10.0000 521.6905 88.0624
sigmaRE = 93.1590 352.2494 50.0000
Si ottengono pertanto r,ri = 521.69 M P a, r,re = 352.25 M P a; per il
disco centrale valgono di conseguenza:
(
r = 431.65 (13.79)/2 93.19 2
t = 431.65 + (13.79)/2 53.66 2

In Figura 1.2(a) si riportano le distribuzioni delle tensioni radiale e cir-


conferenziale nel disco, mentre la Figura 1.2(b) mostra gli andamenti della
massima tensione di taglio e della tensione equivalente secondo il criterio
della massima energia di distorsione.
La condizione piu critica si ha al raggio interno, per = d , dove valgono:

r,ri = 521.69 M P a
t,ri = 321.87 M P a

In condizioni stazionarie, il carico puo considerarsi applicato in manie-


ra statica: il fattore di sicurezza relativo alla tensione di snervamento del
materiale, secondo il criterio della massima tensione di taglio, puo calcolarsi:

max,ri = 260.85 M P a smax = sn /e = 2.68

mentre applicando il criterio della massima energia di distorsione si ha:

e,ri = 455.90 M P a sEDmax = sn /e = 1.54

4 Esercitazione 1: Dischi di spessore costante


Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

(a) Tensioni radiale e circonferenziale.

(b) Tensioni equivalenti.

Figura 1.2: Stato di tensione nel disco centrale.

1.2. Calcolo dello stato di tensione nel disco centrale 5


Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

1.2.2 Risoluzione numerica (FEM)


Introduzione
Lanalisi statica del rotore e stata condotta attraverso il software FEMAP
v10.3, con solutore NX Nastran 8.1; in virtu della simmetria del problema,
la modellazione e stata limitata alla sola geometria di una porzione pari a un
quarto del disco. Si sono imposti vincoli alla traslazione in senso circonferen-
ziale sui contorni estremali, oltre al vincolo alla traslazione in senso assiale, e
sono stati applicati sia i carichi distribuiti ai raggi interno ed esterno, sia la
distribuzione di forze volumiche da campo centrifugo dovuto alla rotazione.

Figura 1.3: Modello agli elementi finiti, tipo plate.

Calcolo e risultati
Un primo modello e stato realizzato adottando elementi piani a 4 nodi,
con due g.d.l. per nodo. Condividendo tale schematizzazione il medesimo
livello di approssimazione del metodo di risoluzione analitico di cui al para-
grafo precedente, si ha una pressoche rigorosa corrispondenza dei rispettivi
risultati, entrambi riportati in Figura 1.4.
Per poter indagare riguardo allo stato di tensione agente alle interfacce
tra i tratti a diverso spessore, e stato dunque realizzato un modello con ele-
menti solidi, preparando una Hex-Mesh strutturata di elementi esaedrici a 8

6 Esercitazione 1: Dischi di spessore costante


Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

Figura 1.4: Confronto tra risultati numerici e analitici.

nodi. La geometria e stata preparata introducendo un raccordo in corrispon-


denza delle interfacce mozzo-disco e disco-corona; il raggio di raccordo e stato
dimensionato per successivi tentativi calcolando di volta in volta il corrispon-
dente fattore di concentrazione delle tensioni rispetto alla tensione nominale
calcolata in ipotesi di stato piano di tensione (e,ri = 455.90 M P a): come
si evince dalla tabella sotto riportata, un raccordo di raggio pari a 8 mm e
sufficiente a non raggiungere le condizioni di snervamento.

r e ri Kt
4 797.3 1.75
6 750.5 1.65
8 562.8 1.23
10 558.8 1.23

La Figura 1.5 mostra leffetto della triassialita sulleffettiva distribuzio-


ne delle tensioni allinterfaccia. Si hanno differenze significative solo local-
mente, in corrispondenza delle interfacce; nella zona centrale del disco, le
distribuzioni ottenute coincidono a meno di un errore inferiore al 5 %.

1.2. Calcolo dello stato di tensione nel disco centrale 7


Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

Figura 1.5: Modello agli elementi finiti, tipo solid.

1.3 Studio dellaccoppiamento albero-mozzo


In condizioni desercizio, si richiede uninterferenza effettiva albero-mozzo
tale da generare una distribuzione di pressione pf = ri al raggio interno
del mozzo. Pertanto, la differenza tra lo spostamento radiale allinterfaccia
pensata appartenente rispettivamente al mozzo e allalbero, dovra valere:

2 pf rm ri2
i = uri ,m uri ,a = = 0.0081 mm
E (ri2 rm2 )

Per poter computare linterferenza iniziale di calettamento, pertanto, oc-


corre aggiungere a quella effettiva richiesta laliquota i necessaria a compen-
sare gli effetti delle sollecitazioni vigenti in condizioni desercizio. In partico-
lare, sul tratto a spessore costante adiacente allalbero saranno da computarsi
sia il contributo del campo centrifugo direttamente agente nel suo volume,
sia il contributo della tensione radiale dinterazione con il disco centrale adia-
cente: questultima inglobera gli effetti sia della rotazione del gruppo disco-
corona, sia della tensione radiale di trazione agente al raggio esterno della
corona, alla quale sono dovuti spostamenti radiali positivi al raggio interno.
A tal proposito, rispetto alla procedura analitica qui proposta, e doveroso
porre la seguente osservazione: la rmi agente sul mozzo e calcolata imponendo
m d
r,ri
b = r,r i
h soffre dellapprossimazione di stato di tensione piano. Co-
me discusso gia al paragrafo precedente, infatti, allinterfaccia questultima

8 Esercitazione 1: Dischi di spessore costante


Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

perde validita, e le tensioni calcolate a valle di questa risultano significative,


per il principio di De Saint Venant, solo oltre la distanza destinzione della
perturbazione locale indotta dalla triassialita: essendo lo spessore del mozzo
persino maggiore della sua estensione in senso radiale, la distribuzione delle
tensioni calcolabili con la teoria dei dischi e lassociato campo di spostamenti
risente inevitabilmente di tale approssimazione.
Stante la precedente, puo calcolarsi

i = i() + i(rc )
= u(,
ri ,m
rc )
u()
ri ,a

La struttura e stata pertanto ricalcolata applicando i medesimi carichi


del caso precedente a meno della distribuzione di pressione al raggio interno
del mozzo; analogamente, lalbero e stato analizzato come un rotore pieno
sottoposto alla sola azione del campo centrifugo. Risultano:
(, ) ()
i = uri ,mrc uri ,a = 0.0837 mm
i0 = i + i = 0.0911 mm

A parziale riferimento dellentita dellapprossimazione introdotta, puo cal-


colarsi il valore dellinterferenza totale come differenza tra gli spostamenti
dovuti allazione simultanea del campo centrifugo e dei carichi di superficie
pf e rc :
(, ,p ) (,p )
itot = uri ,mrc f uri ,a f
con un errore dell8.8 % rispetto al valore di i0 .
Linterferenza di calettamento i0 puo ottenersi imponendo, ad esempio,
una tolleranza daccoppiamento H7/s6; la pressione corrispondente risulta
2
i E (ri2 rm )
pf 0 = 2
= 112.95 M P a
2 rm ri
p
cui e associata una tensione circonferenziale al raggio interno t,rf0i =
208.63 M P a.

1.3. Studio dellaccoppiamento albero-mozzo 9


Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

Esercitazione 2
Disco iperbolico:
Risoluzione analitica e numerica
2.1 Introduzione
2.1.1 Oggetto e scopo
Si richiede di eseguire il calcolo delle tensioni vigenti nel disco centra-
le di profilo iperbolico del rotore in acciaio di cui si riporta una vista in
sezione in Figura 2.1. Il disco suddetto presenta spessore variabile definito
dallequazione di Stodola:
h = C ra
con C, a costanti. Il rotore e soggetto a sollecitazioni da campo centrifugo
dovuto alla rotazione e a distribuzioni di carico di superficie al raggio interno
del mozzo e al raggio esterno della corona. Deve compiersi una verifica di
resistenza della suddetta struttura rispetto alla tensione di snervamento del
materiale.
Si richiede inoltre di realizzare il suddetto calcolo anche secondo i metodi
numerici di Timoshenko-Grammel e di Manson, nelle formulazioni proposte
in Vullo e Vivio 2013, con lobiettivo di determinare il numero minimo di
tronchi discreti sufficiente a garantire un errore inferiore all 1 % nelle tensioni
radiale e circonferenziale.

11
Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

2.1.2 Geometria, materiale, condizioni di carico


a
Grandezze geometriche:
rc
rm = 120 mm
ri = 200 mm
re = 800 mm
rc = 1000 mm
a = 80 mm he
b = 120 mm
hi = 80 mm

rc
he = 20 mm hi

re
Caratteristiche del materiale:
E = 210 GP a rm

ri
rm
= 0.3
= 7.85 kg/dm3 b

sn = 700 M P a Figura 2.1

Condizioni di carico:
velocita di rotazione: n = 3000 rpm
forza di superficie al raggio interno del mozzo: rm = 10 M P a
forza di superficie al raggio esterno della corona: rm = 50 M P a

2.1.3 Metodologia e riferimenti


A Si e seguito preliminarmente un approccio analitico per la verifica a sner-
vamento, secondo la metodologia proposta in Vullo e Vivio 2013. La struttura
rispetta le condizioni di validita dellipotesi di assialsimmetria generalizza-
ta e presenta spessori piccoli rispetto alle dimensioni radiali: in questa fase,
pertanto, e stata introdotta lipotesi di stato piano di tensione. I calcoli sono
stati eseguiti attraverso un apposito script in ambiente di programmazione
Matlab, il cui listato e riportato in calce alla presente.
Successivamente, sono stati implementati gli algoritmi per la discretiz-
zazione del problema dellanalisi delle tensioni nel disco centrale di spessore
variabile secondo le metodologie sopracitate, sia seguendone le procedure di
calcolo originali sia procedendo allinversione numerica delle matrici dei
sistemi di equazioni lineari ad essi associate.

12 Esercitazione 2: Disco iperbolico: Risoluzione analitica e numerica


Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

2.2 Calcolo dello stato di tensione nel disco


centrale
2.2.1 Risoluzione analitica
Introduzione

Segue lesposizione dellanalisi delle tensioni secondo il metodo proposto


in Vullo e Vivio 2013. Valgono tutte le considerazioni gia esposte nel capitolo
precedente riguardo allo studio del rotore pensato composto di mozzo-disco-
corona e allandamento delle tensione nei tronchi a spessore costante.
Per il disco di profilo iperbolico, le costanti dellequazione di Stodola
valgono:
log(hi /he )
a=
log(ri /re )
C = he /rea

definite dunque le costanti1 :


p
p = a/2 + p1 a + a2 /4
q = a/2 1 a + a2 /4
3+
C = 8+(3+)a 0
1+3
D = 8+(3+)a 0

e introdotta la variabile adimensionalizzata = r/re , valgono le seguenti:



p1
r = A
+ B q1 C 2
t = q A p1 p B q1 D 2

u = rEe [(q + ) A p1 (p + ) B q1 (D C) 2 ]

Nelle costanti A, B verranno computati, in virtu del principio di sovrap-


posizione degli effetti, i contributi delle tre sollecitazioni agenti: tensione ra-
diale al raggio interno, tensione radiale al raggio esterno, campo centrifugo.
Risultano:
r r q1 q1 + 2
A = i p1 e q1 + C p1
q1
p1 p1
r ri + 2
B = e p1 + C
q1 p1 q1
1
Vale ancora 0 = 2 re2 tensione di riferimento

2.2. Calcolo dello stato di tensione nel disco centrale 13


Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

Calcolo e risultati

Dalle equazioni di equilibrio alle interfacce mozzo-disco e disco-corona si


ricavano
m d
r,r i
= r,ri
h/b
c d
r,re = r,r e
h/a

e imponendo le condizioni al contorno

r = rm per r = rm
r = rc per r = rc

e infine possibile impostare la risoluzione del sistema delle equazioni di con-


gruenza alle medesime interfaccia nelle sole incognite. Se ne omette per bre-
vita lesposizione, del tutto analoga a quella presentata nel capitolo preceden-
te a meno dei coefficienti delle tensioni agenti nel disco di profilo iperbolico
e dei termini noti dovuti al campo centrifugo.
Loutput dello script interfacesRadialStress.m risulta:
sigmaRI = -10.0000 225.0493 139.7602
sigmaRE = 150.0328 559.0408 50.0000

Figura 2.2: Stato di tensione nel disco centrale.

14 Esercitazione 2: Disco iperbolico: Risoluzione analitica e numerica


Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

Si ottengono pertanto r,ri = 225.05 M P a, r,re = 559.04 M P a; per il


disco centrale valgono di conseguenza:
(
r = 914.19 0.745 7.00 1.745 348.15 2
t = 0.745 914.19 0.745 1.745 (7.00) 1.745 200.45 2

In Figura 2.2 si riportano le distribuzioni delle tensioni radiale e circon-


ferenziale nel disco, insieme alla tensione equivalente calcolata secondo il
criterio della massima energia di distorsione.
La condizione piu critica si ha al raggio esterno, per = 1, dove valgono2 :

r,re = 559.04 M P a
t,re = 492.83 M P a
e,re = 529.05 M P a
sEDmax = sn /e = 1.32

2.2.2 Metodo di Timoshenko-Grammel


Introduzione
Lapproccio suggerito da Timoshenko a partire dalla prima formulazione
elaborata da Grammel propone di dividere il disco di spessore arbitraria-
mente variabile in un determinato numero di dischi anulari consecutivi, con
profilo definito da una legge per la quale sia conosciuta soluzione in forma
chiusa del problema dellequilibrio elastico; per semplicita, ed e il caso anche
della presente, si utilizzano piu frequentemente dischi di spessore costante. Il
profilo reale viene dunque sostituito da un profilo discretizzato in tronchi a
spessore costante. Laddove necessario per alleggerire il carico computaziona-
le dellalgoritmo risolutivo, sarebbe opportuno infittire la discretizzazione in
corrispondenza delle regioni in cui lo spessore vari piu rapidamente; unat-
tenzione di questo tipo, tuttavia, esula dallo scopo del presente elaborato,
nel quale pertanto verra proposta una discretizzazione omogenea.
Definiti gli n dischi parziali in cui viene diviso il disco, note le condizioni al
contorno da imporre sulle tensioni radiali al raggio interno del primo tronco
e al raggio esterno dellultimo tronco, il problema si riconduce al calcolo delle
2n incognite costituite dagli n1 valori delle tensioni radiali alle interfacce tra
due dischi consecutivi e dagli n + 1 valori delle tensioni circonferenziali nelle
medesime interfacce: possono infatti scriversi un totale di 2n equazioni, di
cui n + 1 equazioni di equilibrio per imporre che il prodotto r h si mantenga
costante ad ogni interfaccia e n 1 equazioni di compatibilita per imporre
2
Anche in questo caso, valgono le osservazioni poste nellesercitazione precedente

2.2. Calcolo dello stato di tensione nel disco centrale 15


Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

luguaglianza degli spostamenti radiali di dischi adiacenti in corrispondenza


del raggio comune.
Il codice dispone dellalgoritmo per linversione della matrice associata
al sistema lineare di cui sopra nello script constantThicknessDisks.m, il
quale estende lo script gia utilizzato per il calcolo delle tensioni alle inter-
facce della struttura mozzo-disco-corona al caso generale di n tronchi con-
secutivi di spessore costante. Tuttavia, e stato realizzato un secondo script
(timoshenkoGrammel.m) che implementa lalgoritmo di calcolo proposto
nella formulazione originale degli autori del metodo, secondo la procedura
esposta in Vullo e Vivio 2013. In tal modo, il calcolo prescinde dallinver-
sione della matrice 2n 2n: i risultati ottenuti a partire da una preliminare
assunzione di un valore di primo tentativo della tensione circonferenziale al
raggio interno vengono corretti con i risultati ottenuti per il disco non rotante
imponendo al raggio interno valore nullo alla tensione radiale e lo stesso va-
lore di primo tentativo alla tensione circonferenziale; il coefficiente costante
della combinazione lineare cos ottenuta puo dunque determinarsi a parti-
re dallimposizione della condizione al contorno al raggio esterno dellultimo
tronco. I risultati ottenuti con ciascuna delle procedure proposte coincidono
correttamente gli uni con gli altri.

Calcolo e risultati

Si riportano, a titolo di esempio, i risultati ottenuti per il disco centrale


di profilo iperbolico prevedendone una discretizzazione in n = 20 tronchi
di spessore costante, nei termini delle tensioni radiale, circonferenziale ed
equivalente secondo il criterio della massima energia di distorsione.
I primi due e gli ultimi due valori dei raggi della discretizzazione proposta
definiscono rispettivamente lestensione del mozzo e della corona, entrambi
a spessore costante anche nella struttura reale. Nel dominio del disco di
profilo iperbolico, lo spessore di ciascun tronco e imposto pari alla media degli
spessori valutati ai raggi che lo delimitano. Il massimo errore percentuale
rispetto ai risultati analitici e dell8.41 %.
Lo script timoshenkoGrammel.m ha un tempo di esecuzione di 0.036 s,
mentre lo script constantThicknessDisks.m termina in 0.018 s: lalgorit-
mo dinversione della matrice quadrata associata al sistema e stato infatti
programmato riscrivendo la matrice stessa in forma bandata (con banda pari
a 3), sfruttandone lintrinseca sparsita.

16 Esercitazione 2: Disco iperbolico: Risoluzione analitica e numerica


Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

Figura 2.3: Metodo di Timoshenko-Grammel, n = 20.

2.2.3 Metodo di Manson


Introduzione

Il metodo di Manson e un metodo numerico alle differenze finite in grado


di tener conto delle variazioni in senso radiale di spessore, temperatura e
caratteristiche del materiale (modulo elastico, coefficiente despansione ter-
mica, densita, modulo di Poisson). Le equazioni differenziali di equilibrio e
compatibilita vengono infatti sostituite da equazioni alle differenze finite ne-
gli n tronchi definiti dagli n + 1 valori della variabile adimensionalizzata ,
secondo il metodo implicito del mid-point: per la generica variabile y() nel
tronco compreso tra ri1 e ri (con i = 1, ..., n), il valore locale viene sostituito
dal valore medio (yi + yi1 )/2, mentre la derivata dy/d viene sostituita con
il rapporto incrementale (yi yi1 )/(i i1 ). Stante le medesime conside-
razioni poste nel paragrafo precedente, nel caso in esame e stata realizzata
una discretizzazione omogenea del disco centrale di profilo iperbolico.
Si ottiene dunque ancora un sistema di 2n equazioni lineari in 2n incogni-
te, costituite dagli n 1 valori incogniti delle tensioni radiali alle interfaccia
e dalle n + 1 tensioni circonferenziali.
Ancora, sono stati realizzati due script per la soluzione del problema: in
manson.m, si procede allinversione della matrice associata al sistema, mentre

2.2. Calcolo dello stato di tensione nel disco centrale 17


Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

in mansonOriginal.m viene implementato lalgoritmo originale sviluppato


dallautore del metodo per computazione tabulare, nella formulazione espo-
sta in Vullo e Vivio 2013. In questultimo caso, la procedura consiste nel
successivo calcolo di un set di costanti definite per ciascun tronco, a partire
dallimposizione della tensione radiale al raggio interno del primo di questi;
a valle della successiva imposizione della condizione al contorno al raggio
esterno dellultimo tronco rimane definito lo stato di tensione nellintero di-
sco. Anche in questo caso, i risultati ottenuti con ciascuna delle procedure
proposte coincidono correttamente gli uni con gli altri.

Calcolo e risultati
Si riportano, a titolo di esempio, i risultati ottenuti discretizzando il disco
in n = 20 tronchi di spessore costante, nei termini delle tensioni radiale,
circonferenziale ed equivalente secondo il criterio della massima energia di
distorsione agenti nel disco centrale di profilo iperbolico.

Figura 2.4: Metodo di Manson, n = 20.

I primi due e gli ultimi due valori dei raggi della discretizzazione proposta
definiscono rispettivamente lestensione del mozzo e della corona, entrambi a
spessore costante anche nella struttura reale. Linterfaccia tra mozzo e disco
centrale e stata computata due volte, sia con lo spessore del primo tratto, sia

18 Esercitazione 2: Disco iperbolico: Risoluzione analitica e numerica


Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

con lo spessore interno del disco iperbolico; analogamente per linterfaccia tra
questultimo e la corona. Il massimo errore percentuale rispetto ai risultati
analitici e del 4.53 %.
Lo script mansonOriginal.m ha un tempo di esecuzione di 0.008 s, men-
tre lo script manson.m termina in 0.017 s: la matrice quadrata associata al
sistema e ancora sparsa ed e stata riscritta in forma bandata, ma la banda
in questo caso risulta pari a 5.

2.2.4 Metodo agli elementi finiti


Introduzione

Lanalisi statica del rotore e stata condotta attraverso il software FEMAP


v10.3, con solutore NX Nastran 8.1; in virtu della simmetria del problema,
la modellazione e stata limitata alla sola geometria della sezione del disco,
schematizzata attraverso elementi assialsimmetrici, in modo da alleggerire
significativamente la discretizzazione e al tempo stesso riuscire a cogliere
la triassialita dello stato di tensione in prossimita delle interfacce. E stato
pertanto imposto il solo vincolo alla traslazione in senso assiale e sono stati
applicati sia i carichi distribuiti ai raggi interno ed esterno, sia la distribuzione
di forze volumiche da campo centrifugo dovuto alla rotazione.

Calcolo e risultati

Dopo una prima analisi condotta a partire dalla sezione originale del
rotore come da Figura 2.1, la geometria e stata ripreparata introducendo
un raccordo in corrispondenza delle interfacce mozzo-disco e disco-corona;
il raggio di raccordo e stato dimensionato per successivi tentativi calcolan-
do di volta in volta il corrispondente fattore di concentrazione delle tensioni
rispetto alla tensione nominale calcolata in ipotesi di stato piano di tensio-
ne (e,re = 529.05 M P a): come si evince dalla tabella sotto riportata, un
raccordo di raggio pari a 16 mm e necessario per evitare di raggiungere le
condizioni di snervamento.

r e re Kt
4 866.9 1.64
6 719.9 1.36
8 659.9 1.25
10 615.1 1.16

2.2. Calcolo dello stato di tensione nel disco centrale 19


Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

(a) Distribuzione delle tensioni nella sezione.

(b) Andamento delle tensioni con il raggio.

Figura 2.5: Modello agli elementi finiti, tipo axisymmetric.

20 Esercitazione 2: Disco iperbolico: Risoluzione analitica e numerica


Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

Ancora, rispetto ai risultati analitici ottenuti in ipotesi di stato piano di


tensione si hanno differenze significative solo localmente, in corrisponden-
za delle interfacce; nella zona centrale del disco, le distribuzioni ottenute
coincidono a meno di un errore inferiore al 5 %.
La Figura 2.5 riporta i risultati ottenuti nel disco con raggio di raccorto
pari a 25 mm.

2.3 Confronto tra i metodi di discretizzazione


E stato implementato nello script in linguaggio Matlab lalgoritmo per
il calcolo della discretizzazione minima necessaria a garantire che lerrore
percentuale rispetto al risultato analitico non superasse l1 %. Il calcolo dello
stato di tensione viene ripetuto dal codice ciclicamente per ciascuno dei due
metodi in esame, con numero crescente di raggi di discretizzazione fino al
soddisfacimento della condizione richiesta: ad ogni step di calcolo, si richiede
che il massimo degli errori percentuali associati alla tensione radiale e alla
tensione circonferenziale non superi il valore di soglia.
Sui risultati ottenuti con il metodo di Timoshenko-Grammel, il controllo
e stato eseguito sul valore delle tensioni in tutto il dominio di definizione
del disco di profilo iperbolico, puntualmente (a meno ovviamente dello step
incrementale nel calcolo della coordinata radiale). Con il metodo di Manson,
la soluzione approssimata e disponibile in corrispondenza dei soli raggi di
discretizzazione scelti: il controllo e stato in tal caso eseguito sui soli valori
delle tensioni ad essi associati.
Loutput dello script CM Ex 2.m risulta:
Metodo di Timoshenko-Grammel:
e TG = 0.0099436 per n TG = 153 tronchi discreti.
Metodo di Manson:
e M = 0.0099285 per n M = 74 tronchi discreti.
Complessivamente, lo script timoshenkoGrammel.m e stato eseguito per
un totale di 3.325 s, mentre lo script manson.m per 0.047 s. Il tempo comples-
sivo necessario alla definizione dei raggi di discretizzazione, effettuata nello
script script discretizedStodola.m, e pari a 0.123 s.
Prevedendo piuttosto una interpolazione lineare dei risultati ottenuti con
il metodo di Manson per valori del raggio compresi tra quelli imposti nella
discretizzazione, chiaramente risulta necessario allo script un numero consi-
derevolmente piu elevato di raggi di discretizzazione per poter soddisfare la
condizione imposta sullerrore massimo; in tal caso, si ha infatti:
Metodo di Manson:
e M = 0.0099956 per n M = 1046 tronchi discreti.

2.3. Confronto tra i metodi di discretizzazione 21


Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

(a) Metodo di Timoshenko-Grammel, n = 153.

(b) Metodo di Manson, n = 74.

Figura 2.6: Risultati da metodi numerici con errore inferiore all1 %.

22 Esercitazione 2: Disco iperbolico: Risoluzione analitica e numerica


Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

Esercitazione 3
Duomo sferico
3.1 Introduzione
3.1.1 Oggetto e scopo
Si richiede di eseguire il dimensionamento dei due gusci sferici rappresen-
tati in sezione meridiana nella Figura 3.1 e dei rispettivi anelli di rinforzo,
in entrambi i casi tenendo in considerazione il peso proprio delle strutture;
il calcolo deve contemplare la variazione dellangolo su cui insistono gli archi
delle rispettive curve meridiane entro un intervallo definito. Il duomo di Fi-
gura 3.1(b) e sottoposto inoltre a un carico da neve sinusoidale, mentre nel
guscio di Figura 3.1(a) e presente una luce con un secondo anello di rinforzo,
sul quale insiste un carico esterno concentrato.
Si richiede inoltre di discutere la possibilita di evitare effetti flessionali
locali in corrispondenza delle giunzioni con gli anelli di rinforzo, ancora al
variare dellangolo sotteso dalle curve meridiane.

P P
q

0
R
R

(a) Duomo con chiusura a lanterna. (b) Duomo a sesto pieno.

Figura 3.1: Viste in sezione meridiana delle strutture.

23
Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

3.1.2 Geometria, materiale, condizioni di carico


Grandezze geometriche:
R = 5000 mm
0 = 15
= 40 120

Caratteristiche del materiale:


E = 210 GP a
= 0.3
= 7.85 kg/dm3
sn = 240 M P a

Condizioni di carico:
carico concentrato:
P = 1 kN/m
carico da 1 m di neve:
40 6 6 90: 
/2
q = q cos
90 6 6 120 :

q = q cos (q = neve g 1 m; neve = 500 kg/m3 )

3.1.3 Metodologia e riferimenti


Le strutture in esame sono da considerarsi gusci di rivoluzione in parete
sottile, ed i carichi e vincoli esterni ad essi associati rispettano le condizio-
ni di validita dellipotesi di assialsimmetria. Il calcolo delle tensioni e stato
svolto svolto utilizzando i risultati della teoria di Donnell-Mushtari-Vlasov,
a partire dalle medesime ipotesi poste dalla teoria di Kirchhoff-Love per le
piastre sottili soggette a piccole deformazioni: a meno degli eventuali effetti
flessionali locali in corrispondenza delle giunzioni estremali con gli anelli di
rinforzo, si sono pertanto considerate agenti nella struttura le sole sollecita-
zioni membranali, in particolare le azioni normali dirette lungo i meridiani,
N , e lungo i paralleli, N .1
Con riferimento alla trattazione proposta in Timoshenko e Woinowsky-
Krieger 1959, il problema si riconduce alla soluzione delle equazioni di equi-
librio:
2r N sin + Q = 0
N /r1 + N /r2 = Z
1
N ed N sono da intendersi, di seguito, come sollecitazioni normali per unita di
lunghezza.

24 Esercitazione 3: Duomo sferico


Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

essendo: langolo di colatitudine del generico punto della superficie media


del guscio posto sul parallelo di raggio r; r1 , r2 i raggi di curvatura prin-
cipali della superficie media nel medesimo punto (rispettivamente nel piano
meridiano e in quello perpendicolare alla curva meridiana); Q la risultante
dei carichi esterni lungo la direzione dellasse di rivoluzione; Z la compo-
nente delle azioni superficiali esterne in direzione normale alla superficie, da
considerarsi positiva se orientata in verso uscente.
Dalle equazioni di equilibrio, possono dunque ricavarsi le espressioni per
le tensioni meridiana, circonferenziale ed equivalente secondo il criterio della
massima energia di distorsione:
= N /s
= q
N /s
e = 2 + 2

Il dimensionamento deve essere eseguito rispetto al massimo valore della


tensione equivalente nel dominio, imponendo al guscio, per ciascun valore
dellangolo allinterno dellintervallo [40 , 120 ], uno spessore tale che la
suddetta tensione massima eguagli la tensione di snervamento del materiale,
al netto dellopportuno coefficiente di sicurezza.

s = s() : max [e (, s)] = sn /X


In generale, sia la tensione massima, sia lo spessore calcolato di conseguenza


risultano funzioni dellangolo sotteso dalla curva meridiana. Lobiettivo della
presente rimane dunque determinare landamento di eM AX (), s() con .
Si e assunto, per il fattore di sicurezza, un valore X = 4, essendo il calcolo
delle strutture limitato alle sole sollecitazioni membranali.
A valle del dimensionamento del guscio di rivoluzione e del calcolo dello
stato di tensione ad esso associato, sono stati dimensionati, ancora in funzione
di gli anelli di rinforzo; in particolare, laddove possibile, si e imposta la
condizione di compatibilita con gli spostamenti dei paralleli del guscio in
corrispondenza delle interfacce di giunzione, in modo da evitare linsorgenza
di effetti flessionali:
R sin
ushell shell
= = R sin ,= = (N N )
Es
H
uring = R sin ring
= R sin
Esr
sr = sr () : ushell
= = u
ring

essendo H = N, = cos la componente di N, = scaricata sullanello e


sr = sr () lo spessore di questultimo.

3.1. Introduzione 25
Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

I calcoli sono stati eseguiti attraverso un apposito script in ambiente di


programmazione Matlab, il cui listato e riportato in calce alla presente.

3.2 Problema 3a: duomo con chiusura a lan-


terna
3.2.1 Dimensionamento del guscio
Introduzione
Il problema risulta piu semplice di quello del caso del guscio soggetto
a carico sinusoidale da neve in virtu del fatto che langolo non compare
esplicitamente nellespressione di Q, e dunque neanche nelle espressioni per
N , N . La tensione equivalente massima e lo spessore ad essa associato
rimangono tuttavia in generale funzioni di , il quale infatti definisce il limite
superiore del dominio di entro il quale sono definite la superficie media del
guscio e le espressioni per le sollecitazioni in esso agenti.
Valgono2 :
Z = p cos
Z
Q= p (2R sin ) (R d) + 2R sin 0 P
/2

= 2R2 p(cos 0 cos ) + 2R sin 0 P

Calcolo e risultati
Risolvendo le equazioni di equilibrio, si ha:
 
cos 0 cos sin 0
N = pR 2 P 2
sin sin
 
cos 0 cos sin 0
N = pR 2 cos + P 2
sin sin
La Figura 3.2 mostra gli andamenti delle funzioni:
cos 0 cos
fa () =
sin2
cos 0 cos
fb () = cos
sin2
sin 0
fc () =
sin2
2
Si pone di seguito p = s, essendo s lo spessore del guscio.

26 Esercitazione 3: Duomo sferico


Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

Figura 3.2: Le funzioni fa , fb , fc .

Le condizioni critiche si verificano sempre in prossimita della luce, per


= 0 , essendo la tensione equivalente decrescente con nel dominio; lo
spessore minimo necessario a rispettare la condizione di snervamento s risulta
pertanto costante in e vale:

s = 0.1109 mm

Si riportano in Figura 3.3 gli andamenti delle sollecitazioni normali a unita


di lunghezza e delle tensioni ad esse associate.
A parziale riscontro della correttezza dei calcoli svolti, si e calcolata la
reazione lungo lasse di rivoluzione V offerta dal vincolo esterno nel caso
in cui = 90 , come risultante del peso della struttura di spessore pari al
valore appena determinato e dellazione del carico concentrato P . In tal caso,
infatti, deve essere |N,=/2 | = V . Risulta:

N,=/2 = 0.3001 N/mm


2
V = 2R s cos 0 + P sin 0 = 0.3001 N/mm

3.2. Problema 3a: duomo con chiusura a lanterna 27


Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

(a) Sollecitazioni normali a unita di lunghezza.

(b) Tensioni normali.

Figura 3.3: Stato di tensione nel guscio di spessore s = 0.1109 mm.

28 Esercitazione 3: Duomo sferico


Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

3.2.2 Dimensionamento dellanello di rinforzo

Introduzione

Condizione necessaria per poter imporre la compatibilita degli spostamen-


ti radiali nel parallelo di giunzione tra guscio ed anello e che le dilatazioni
lineari delle due strutture siano di segno concorde.
Laddove tale condizione sia rispettata, si impone luguaglianza di cui al
paragrafo 3.1.3. Occorre inoltre dimensionare laltezza radiale r dellanello
rispetto alle condizioni di snervamento (considerando in tal caso un fattore
di sicurezza pari a 1.2) e, se soggetto a sollecitazione di compressione, alle
condizioni di instabilita euleriana. In tal caso, facendo riferimento ai risultati
esposti in Vullo e Vivio 2013 e Vullo 2014, dovranno dunque essere:

H
sr =
E,shell
q
! H
1 16 Es r
r = max R H
1 ,R q
1 sn sr 1 12 16 Es H
r

Si osserva che le condizioni imposte nel tipo di calcolo in esame conducono


alla definizione di un anello di spessore assiale consistentemente piu piccolo
(diversi ordini di grandezza) rispetto allestensione in senso radiale.

Calcolo e risultati

La Figura 3.4 mostra landamento di s() ottenuto imponendo diretta-


mente le condizioni appena descritte. La compatibilita degli spostamenti puo
dunque imporsi fino a < 90 : oltre tale valore, infatti, lo script restituisce
risultati negativi per lo spessore, indice del fatto che per > 90 i segni di
shell
e ring
divengono discordi. Del resto, come si deduce dalla Figura 3.3(a),
la N risulta negativa (e dunque di compressione) in tutto il dominio: vicever-
sa, in = 90 , la componente H della reazione scaricata sullanello subisce
uninversione del segno, cos che questo non risulta piu sottoposto a trazione,
bens a compressione.
La Figura 3.5 mostra infine landamento di r ().

3.2. Problema 3a: duomo con chiusura a lanterna 29


Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

Figura 3.4: Spessore sr per la compatibilita degli spostamenti.

Figura 3.5: Altezza radiale r dellanello.

30 Esercitazione 3: Duomo sferico


Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

3.3 Problema 3b: duomo a sesto pieno


3.3.1 Dimensionamento del guscio
Introduzione
Essendo gia il carico distribuito q funzione dellangolo secondo la re-
lazione gia vista, il calcolo e stato specializzato per 40 6 < 90 e per
90 6 6 120 . Lintegrale che definisce la risultante in direzione dellasse
dei carichi esterni presenta infatti formulazioni distinte nei due casi:

- 40 6 < 90 :
 
q = q cos
2  
Z = p cos q cos cos
Z  2
 
Q= p + q cos (2R sin ) (R d) =
0 2
= 2R2 p(1 cos )+
2R2 q h    i
+ 2 1 cos cos sin sin
1 2 2 2
2

- 90 6 6 120 :
per il tratto con [0 , 90 ], valgono

q = q cos
Z = p cos q cos2
Z
Q= (p + q cos ) (2R sin ) (R d) + =
0
  
2 1 1
= 2R p(1 cos ) + q cos(2)
4 4

per il successivo tratto con (90 , ] valgono

Z = p cos
Z
Q= p (2R sin ) (R d) 2RN, =/2 =
/2
h q i
= 2R2 p(1 cos ) +
2

3.3. Problema 3b: duomo a sesto pieno 31


Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

Calcolo e risultati
Risolvendo le equazioni di equilibrio, si ha:
- 40 6 < 90 :



1 1 cos cos 2 2 sin sin 2
N = pR qR h i 2
1 + cos 2
1 2 sin
 
1
N = pR cos +
1 + cos

1 cos cos  sin sin   
+ qR h 2  i2 2
cos cos
2 2 2
1 2 sin

- 90 6 6 120 :
per il tratto con [0 , 90 ], valgono
1 qR
N = pR
1 + cos 2
   
1 1 2
N = pR cos + qR cos
1 + cos 2

per il successivo tratto con [90 , ] valgono


1 qR
N = pR
1 + cos 2 sin2
 
1 qR
N = pR cos +
1 + cos 2 sin2

La Figura 3.6 mostra gli andamenti delle funzioni3 :


1
fa () =
1 + cos

 
1 cos cos 2 2 sin sin 2

fb () = h i
2
sin2

1 2
1
fc () = cos
1 + cos

 
1 cos cos 2 2 sin sin 2
 
fd () = h i cos cos
2 2
sin2

1 2

32 Esercitazione 3: Duomo sferico


Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

Figura 3.6: Le funzioni fa , fb , fc , fd .

In Figura 3.7 sono riportati gli andamenti delle tensioni agenti nel guscio
sferico. In particolare, il calcolo e stato eseguito, a titolo desempio, per tre
valori dellangolo :

- = 40 s = 0.358 mm

- = 90 s = 0.205 mm

- = 120 s = 0.484 mm

In corrispondenza dellasse, per = 0 , risulta correttamente N = N .


Il valore di N si mantiene negativo in tutto il dominio; in particolare, per
> 90 , esso si mantiene costante in > 90 , per poi evolvere verso valori di
compressione piu elevati. N presenta inversione del segno in 0 = 0 () <
90 , passando da valori di compressione a valori di trazione.
La Figura 3.8 mostra landamento dello spessore s = s(). I risultati sono
del tutto concordi con le distribuzioni delle tensioni mostrate in Figura 3.7:
in prossimita del limite inferiore per , le condizioni critiche si hanno sempre
3
Per fb , fd e stato assunto, e.g., = 60

3.3. Problema 3b: duomo a sesto pieno 33


Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

(a) Sollecitazioni normali a unita di lunghezza.

(b) Tensioni normali.

Figura 3.7: Stato di tensione nel duomo sferico.

34 Esercitazione 3: Duomo sferico


Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

sullasse; per valori di superiori, la massima tensione equivalente si registra


in corrispondenza del parallelo di giunzione con lanello di rinforzo ( ).

Figura 3.8: Andamento delle funzioni s(), sr ().

3.3.2 Dimensionamento dellanello di rinforzo


Introduzione

Valgono ancora le medesime considerazioni gia poste nel paragrafo 3.2.2.


Ancora, facendo riferimento ai risultati esposti in Vullo e Vivio 2013 e Vullo
2014, devono essere:

H
sr =
E,shell
q
! H
1 16 Es r
r = max R H
1 ,R q
1 sn sr
1
1 2 16 Esr H

3.3. Problema 3b: duomo a sesto pieno 35


Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

Calcolo e risultati
La Figura 3.8 mostra landamento di sr () ottenuto imponendo diret-
tamente le condizioni di compatibilita. Come verificato anche negli esempi
mostrati in Figura 3.7(a), in corrispondenza del parallelo di giunzione tra
duomo sferico e anello si ha sempre Ntheta > 0: il guscio subisce una dilata-
zione radiale e, per < 90 , puo dimensionarsi lanello in modo da garantire
la compatibilita degli spostamenti allinterfaccia. Per > 90 , anche in que-
sto caso, lo script restituisce valori negativi per lo spessore, indice del fatto
che i segni di shell
e ring
sono divenuti discordi. Del resto, come si deduce
sempre dalla Figura 3.7(a), la N risulta negativa (e dunque di compressio-
ne) in tutto il dominio: in = 90 , la componente H della reazione scaricata
sullanello subisce uninversione del segno, cos che questo non risulta piu
sottoposto a trazione, bens a compressione.
La Figura 3.9 mostra infine landamento di r ().

Figura 3.9: Altezza radiale r dellanello.

36 Esercitazione 3: Duomo sferico


Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

Bibliografia
Flugge, W. (1973). Stresses in Shells. Springer.
Timoshenko, S.P. e S. Woinowsky-Krieger (1959). Theory of Plates and
Shells. McGraw Hill.
Vullo, V. (2014). Circular Cylinders and Pressure Vessels. Springer.
Vullo, V. e F. Vivio (2013). Rotors: Stress Analysis and Design. Springer.

37
Alfredo Patrizi Costruzione di Macchine a.a. 2013-14

Appendice A
Listati in ambiente Matlab

39
19/02/14 9.21 D:\MatLab_Files\CM\CM_Ex_1.m 1 of 2

1 clear all
2 clc
3 close all
4 %format short;
5
6 %% Title
7 % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
8 % %
9 % EX 1 - Crown-ring Design: Costant Thickness Disks %
10 % Author: Alfredo Patrizi %
11 % %
12 % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
13 sTitle = 'EX 1 - Crown-ring Design: Costant Thickness Disks';
14
15 %% Global Variables
16 global E; global ni; global gamma; global alpha;
17 global steps; global n;
18
19 %% Integration parameters
20 steps = 1000;
21
22 %% Material data
23 E = 2.1 * 10 ^ 5; % [MPa]
24 ni = .3;
25 gamma = 7.85 * 10 ^ (-9); % [Mg/mm^3 = 10^(-12) kg/m^3]
26 alpha = 0;
27 sigmaY = 700; % [MPa]
28
29 %% Geometry and working condition
30 n = 3;
31 omega = 5400 * 2 * pi / 60; % [rad/s]
32 sigmaR_int = - 10; % [MPa]
33 sigmaR_ext = 50; % [MPa]
34 [radii, heights] = Ex_1();
35
36 %% Problem
37 % Stress state in central constant thickness disk
38 [sigmaRI, sigmaRE] = interfacesRadialStresses(@Ex_1, n, radii, heights, sigmaR_int,
sigmaR_ext, omega);
39 disk = classConstantThicknessDisk(gamma, ni, E, radii(2), radii(2 + 1), sigmaRI(2),
sigmaRE(2), omega);
40 shaft = classConstantThicknessDisk(gamma, ni, E, 0, radii(1), 0, sigmaRI(1), omega);
41 hub = classConstantThicknessDisk(gamma, ni, E, radii(1), radii(1 + 1), sigmaRI(1),
sigmaRE(1), omega);
42
43 % Interference-fit assembly calculation
44 [sigmaRI_r, sigmaRE_r] = interfacesRadialStresses(@Ex_1, n, radii, heights, 0,
sigmaR_ext, omega);
45 hub_r = classConstantThicknessDisk(gamma, ni, E, radii(1), radii(1 + 1), sigmaRI_r
(1), sigmaRE_r(1), omega);
46 shaft_r = classConstantThicknessDisk(gamma, ni, E, 0, radii(1), 0, sigmaRI_r(1),
omega);
47 i = - 2 * sigmaR_int * radii(1) * radii(1 + 1) ^ 2 / (E * (radii(1 + 1) ^ 2 - radii
(1) ^ 2));
48 delta_i = u_r(hub_r, hub_r.beta) - u_r(shaft_r, 1);
49 i_0 = i + delta_i;
50 i_tot = u_r(hub, hub.beta) - u_r(shaft, 1);
51 err = (i_0 - i_tot)/i_0;
52 pF_0 = i_0 * E * (radii(1 + 1) ^ 2 - radii(1) ^ 2) / (2 * radii(1) * radii(1 + 1) ^
2); %pF = i * E * (radii(1 + 1) ^ 2 - radii(1) ^ 2) / (2 * radii(1) * radii(1 + 1) ^ 2)
53 hub_pF0 = classConstantThicknessDisk(gamma, ni, E, radii(1), radii(1 + 1), -pF_0, 0,
0);
54 [sigmaR_pf0, sigmaT_pf0] = stresses(hub_pF0, hub_pF0.beta);
55 fprintf(['Calcolo interferenza di calettamento: \n i = ', num2str(i), '\n delta_i =
', num2str(delta_i),...
19/02/14 9.21 D:\MatLab_Files\CM\CM_Ex_1.m 2 of 2

56 '\n i_0 = ', num2str(i_0), '\n pF_0 = ', num2str(pF_0), '\n sigmaT_pf0 = ',
num2str(sigmaT_pf0),...
57 '\n\n i_tot = ', num2str(i_tot), '\n err = ', num2str(err), '\n\n']);
58
59 % Equivalent stresses
60 [sigmaR, sigmaT] = stressesPlot(disk, steps);
61 sigmaE(1, :) = trescaPlot(disk, steps, sigmaR, sigmaT, zeros(steps + 1));
62 sigmaE(2, :) = vonMisesPlot(disk, steps, sigmaR, sigmaT, zeros(steps + 1));
63 u = uPlot(disk, steps);
64
65 %% Plotting
66 rho = (disk.beta : (1 - disk.beta) / steps : 1);
67
68 figure;
69 plot(rho, sigmaR, '-b', rho, sigmaT, '-r', 'LineWidth', 1.5);
70 grid on;
71 axis([disk.beta, 1, 100, 600]);
72 xlabel('\rho', 'FontWeight', 'bold');
73 ylabel('\sigma_r , \sigma_t [MPa]','FontWeight','bold');
74 legend('\sigma_r', '\sigma_t');
75 title('Ex. 1 - Stress state in the central disk', 'FontWeight','bold');
76 hold off;
77
78 figure;
79
80 plot(rho, sigmaE(1, :), '-c', rho, sigmaE(2, :), '-g', 'LineWidth', 1.5);
81 grid on;
82 axis([disk.beta, 1, 100, 600]);
83 xlabel('\rho', 'FontWeight','bold');
84 ylabel('\tau_{max} , \sigma_e [MPa]','FontWeight','bold');
85 legend('\tau_{max}','\sigma_e');
86 title('Ex. 1 - Equivalent stresses', 'FontWeight','bold');
87 %[sTMax,ix] = max(sigmaE(1, :));
88 %[sEDMax,jx] = max(sigmaE(2, :));
89 %text(rho(jx), sEDMax, ' \leftarrow Maximum equivalent stress)',
'HorizontalAlignment','left');
90
91 fid = fopen('Ex1_planeResults_MATLAB.txt', 'wt');
92 fprintf(fid, '%f, %f, %f, %f, %f \n', [rho; sigmaR; sigmaT; sigmaE(1, :); sigmaE(2,
:)]);
93
19/02/14 9.21 D:\MatLab_Files\CM\CM_Ex_2.m 1 of 3

1 clear all
2 clc
3 close all
4 %format short;
5
6 %% Title
7 % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
8 % %
9 % EX 2 - Hyperbolic Disk: Analytical and Numerical Results %
10 % Author: Alfredo Patrizi %
11 % %
12 % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
13 sTitle = 'EX 2 - Hyperbolic Disk - Analytical and Numerical Results';
14
15 %% Global Variables
16 global E; global ni; global gamma; global alpha;
17 global steps;
18
19 %% Integration parameters
20 steps = 1000;
21 plotWholeDisk = 0;
22
23 %% Material data
24 E = 2.1 * 10 ^ 5; % [MPa]
25 ni = .3;
26 gamma = 7.85 * 10 ^ (-9); % [Mg/mm^3 = 10^(-12) kg/m^3]
27 alpha = 0;
28 sigmaY = 700; % [MPa]
29
30 %% Geometry and working condition
31 n = 3;
32 omega = 3000 * 2 * pi / 60; % [rad/s]
33 sigmaR_int = - 10; % [MPa]
34 sigmaR_ext = 50; % [MPa]
35 gHandle = @Ex_2;
36 [radii, heights] = Ex_2();
37
38 e_tG = 1;
39 e_m = 1;
40 e_max = .01;
41
42 %% Problem
43 % Analitical solution
44 [sigmaRI, sigmaRE] = interfacesRadialStresses(@Ex_2, n, radii, heights, sigmaR_int,
sigmaR_ext, omega);
45 disk = classHyperbolicDisk(gamma, ni, E, radii(2), radii(2 + 1), heights(3),
heights(3 + 1), sigmaRI(2), sigmaRE(2), omega);
46 [sigmaR, sigmaT] = stressesPlot(disk, steps);
47 sigmaE = vonMisesPlot(disk, steps, sigmaR, sigmaT, zeros(steps + 1));
48 rho = (disk.beta : (1 - disk.beta) / steps : 1);
49
50 % Comparison of Timoshenko-Grammel's and Manson's numerical methods
51 fHandle = @timoshenkoGrammel;
52 sE_tG(steps + 1) = 0;
53 sigmaT_int = 10;
54 n_tG = 4;
55 while e_tG > e_max
56 e_tG = 0;
57 [r, h] = discretizedStodola(n_tG, radii, heights, fHandle);
58 [sigmaR_tG, sigmaT_tG] = fHandle(n_tG, r, h, sigmaR_int, sigmaR_ext, omega,
sigmaT_int);
59 for i = 1 : size(sigmaR_tG, 2)
60 sE_tG(i) = vonMises([sigmaR_tG(i), sigmaT_tG(i), 0]);
61 e_tG = max([e_tG, abs((sigmaR(i) - sigmaR_tG(i)) / sigmaR(i)), abs((sigmaT
(i) - sigmaT_tG(i)) / sigmaT(i))] ); % , abs((sigmaE(i) - sE_tG(i)) / sigmaE(i))] );
19/02/14 9.21 D:\MatLab_Files\CM\CM_Ex_2.m 2 of 3

62 end
63 n_tG = n_tG + 1;
64 end
65 n_tG = n_tG - 1;
66 e_tG;
67 fprintf(['Metodo di Timoshenko-Grammel: \n e_TG = ', num2str(e_tG), ' per n_TG = ',
num2str(n_tG), ' tronchi discreti.\n\n']);
68
69 fHandle = @mansonOriginal; %fHandle = @manson;
70 n_m = 6;
71 if plotWholeDisk == 0
72 while e_m > e_max
73 e_m = 0;
74 [r, h] = discretizedStodola(n_m, radii, heights, fHandle);
75 [sigmaR_m, sigmaT_m] = fHandle(n_m, r, h, sigmaR_int, sigmaR_ext, omega,
plotWholeDisk);
76 sE_m(size(sigmaR_m, 2)) = 0;
77 for i = 1 : size(sigmaR_m, 2)
78 [sR, sT] = stresses(disk, r(i + 2) / disk.r_ext);
79 sE = vonMises([sR, sT, 0]);
80 sE_m(i) = vonMises([sigmaR_m(i), sigmaT_m(i), 0]);
81 e_m = max([e_m, abs((sR - sigmaR_m(i)) / sR), abs((sT - sigmaT_m(i)) /
sT)] ); % , abs((sE - sE_m(i)) / sE)] );
82 end
83 n_m = n_m + 1;
84 end
85 rho_m = (disk.beta : (1 - disk.beta) / (n_m - 5) : 1);
86 else
87 rho_m = rho;
88 while e_m > e_max
89 e_m = 0;
90 [r, h] = discretizedStodola(n_m, radii, heights, fHandle);
91 [sigmaR_m, sigmaT_m] = fHandle(n_m, r, h, sigmaR_int, sigmaR_ext, omega,
plotWholeDisk);
92 sE_m(size(sigmaR_m, 2)) = 0;
93 for i = 1 : size(sigmaR_m, 2)
94 sE_m(i) = vonMises([sigmaR_m(i), sigmaT_m(i), 0]);
95 e_m = max([e_m, abs((sigmaR(i) - sigmaR_m(i)) / sigmaR(i)), abs((sigmaT
(i) - sigmaT_m(i)) / sigmaT(i))] ); % , abs((sigmaE(i) - sE_m(i)) / sigmaE(i))] );
96 end
97 n_m = n_m + 1;
98 end
99 end
100 n_m = n_m - 1;
101 e_m;
102 fprintf(['Metodo di Manson: \n e_M = ', num2str(e_m), ' per n_M = ', num2str(n_m),
' tronchi discreti.\n\n']);
103
104 %% Plotting
105 figure;
106 plot(rho, sigmaR, '-b', rho, sigmaT, '-r', rho, sigmaE, '-g', 'LineWidth', 1.2);
107 grid on;
108 axis([disk.beta, 1, 100, 700]);
109 xlabel('\rho', 'FontWeight', 'bold');
110 ylabel('\sigma_r , \sigma_t, \sigma_e [MPa]', 'FontWeight', 'bold');
111 legend('\sigma_r', '\sigma_t', '\sigma_e');
112 title('Ex. 2 - Stress state in the hyperbolic disk, Analitical Results',
'FontWeight', 'bold');
113 hold off;
114
115 figure;
116 plot(rho, sigmaR_tG, '-b', rho, sigmaT_tG, '-r', rho, sE_tG, '-g', 'LineWidth',
1.2);
117 grid on;
118 axis([disk.beta, 1, 100, 700]);
19/02/14 9.21 D:\MatLab_Files\CM\CM_Ex_2.m 3 of 3

119 xlabel('\rho', 'FontWeight', 'bold');


120 ylabel('\sigma_r^{TG} , \sigma_t^{TG}, \sigma_e^{TG} [MPa]', 'FontWeight', 'bold');
121 legend('\sigma_r^{TG}', '\sigma_t^{TG}', '\sigma_e^{TG}');
122 title(['Ex. 2 - Timoshenko-Grammel`s Method Results, n = ', num2str(n_tG)],
'FontWeight', 'bold');
123 hold off;
124
125 figure;
126 plot(rho_m, sigmaR_m, '-b', rho_m, sigmaT_m, '-r', rho_m, sE_m, '-g', 'LineWidth',
1.2);
127 grid on;
128 axis([disk.beta, 1, 100, 700]);
129 xlabel('\rho', 'FontWeight', 'bold');
130 ylabel('\sigma_r^{M} , \sigma_t^{M} [MPa], \sigma_e^{M} [MPa]', 'FontWeight',
'bold');
131 legend('\sigma_r^{M}', '\sigma_t^{M}', '\sigma_e^{M}');
132 title(['Ex. 2 - Manson`s Method Results, n = ', num2str(n_m)], 'FontWeight',
'bold');
133 hold off;
19/02/14 9.21 D:\MatLab_...\classConstantThicknessDisk.m 1 of 2

1 classdef classConstantThicknessDisk
2 %% Title
3 %
4 % CLASS CONSTANTTHICKNESSDISK
5 % Author: Alfredo Patrizi
6 %
7 % This class defines the generic constant thickness disk subjected to
8 % centrifugal body load due to rotation and surface loads at the inner
9 % and outer radii. The methods allow to determine the stress state and
10 % the radial displacements in the whole disk, according to Vullo and
11 % Vivio 2013 formulation.
12
13 properties
14 ni;
15 E;
16 gamma;
17 r_int;
18 r_ext;
19 sigmaR_int;
20 sigmaR_ext;
21 omega;
22 beta;
23 sigma_0;
24 A;
25 B;
26 C;
27 D;
28 end
29 methods
30 function obj = classConstantThicknessDisk(gamma, ni, E, r_int, r_ext,
sigmaR_int, sigmaR_ext, omega)
31 obj.gamma = gamma;
32 obj.ni = ni;
33 obj.E = E;
34 obj.r_int = r_int;
35 obj.r_ext = r_ext;
36 obj.sigmaR_int = sigmaR_int;
37 obj.sigmaR_ext = sigmaR_ext;
38 obj.omega = omega;
39 obj.beta = r_int / r_ext;
40 obj.sigma_0 = gamma * omega ^ 2 * r_ext ^ 2;
41 obj.A = (sigmaR_ext - sigmaR_int * obj.beta ^ 2) / (1 - obj.beta ^ 2) +
(3 + ni) / 8 * obj.sigma_0 * (1 + obj.beta ^ 2);
42 obj.B = (sigmaR_ext - sigmaR_int) * obj.beta ^ 2 / (1 - obj.beta ^ 2) +
(3 + ni) / 8 * obj.sigma_0 * obj.beta ^ 2;
43 obj.C = (3 + ni) / 8 * obj.sigma_0;
44 obj.D = (1 + 3 * ni) / 8 * obj.sigma_0;
45 end
46 function [sigmaR, sigmaT] = stresses(obj, rho)
47 sigmaR = obj.A - obj.B / rho ^ 2 - obj.C * rho ^ 2;
48 sigmaT = obj.A + obj.B / rho ^ 2 - obj.D * rho ^ 2;
49 end
50 function [sigmaR, sigmaT] = stressesPlot(obj, steps)
51 sigmaR(steps + 1) = 0;
52 sigmaT(steps + 1) = 0;
53 i = 1;
54 for rho = obj.beta : (1 - obj.beta) / steps : 1
55 [sigmaR(i), sigmaT(i)] = stresses(obj, rho);
56 i = i + 1;
57 end
58 end
59 function [sigmaE] = vonMisesPlot(obj, steps, sigmaR, sigmaT, sigmaZ)
60 sigmaE(steps + 1) = 0;
61 i = 1;
62 for rho = obj.beta : (1 - obj.beta) / steps : 1
19/02/14 9.21 D:\MatLab_...\classConstantThicknessDisk.m 2 of 2

63 sigmaE(i) = vonMises([sigmaR(i), sigmaT(i), sigmaZ(i)]);


64 i = i + 1;
65 end
66 end
67 function [sigmaE] = trescaPlot(obj, steps, sigmaR, sigmaT, sigmaZ)
68 sigmaE(steps + 1) = 0;
69 i = 1;
70 for rho = obj.beta : (1 - obj.beta) / steps : 1
71 sigmaE(i) = tresca([sigmaR(i), sigmaT(i), sigmaZ(i)]);
72 i = i + 1;
73 end
74 end
75 function u = u_r(obj, rho)
76 u = obj.r_ext / obj.E * rho * (obj.A * (1 - obj.ni) + obj.B / rho ^ 2 *
(1 + obj.ni) - (obj.D - obj.ni * obj.C) * rho ^ 2);
77 end
78 function u = uPlot(obj, steps)
79 u(steps + 1) = 0;
80 i = 1;
81 for rho = obj.beta : (1 - obj.beta) / steps : 1
82 u(i) = u_r(obj, rho);
83 i = i + 1;
84 end
85 end
86 end
87 end
19/02/14 9.22 D:\MatLab_Files\CM\classHyperbolicDisk.m 1 of 1

1 classdef classHyperbolicDisk < classConstantThicknessDisk


2 %% Title
3 %
4 % CLASS HYPERBOLICDISK
5 % Author: Alfredo Patrizi
6 %
7 % This class inherits classConstantThicknessDisk attributes and methods
8 % specializing the equations for the stress state and the displacements
9 % to the case of hyperbolic disk.
10
11 properties
12 h_int;
13 h_ext;
14 a;
15 p;
16 q;
17 end
18 methods
19 function obj = classHyperbolicDisk(gamma, ni, E, r_int, r_ext, h_int, h_ext,
sigmaR_int, sigmaR_ext, omega)
20 obj = obj@classConstantThicknessDisk(gamma, ni, E, r_int, r_ext,
sigmaR_int, sigmaR_ext, omega);
21 obj.h_int = h_int;
22 obj.h_ext = h_ext;
23 obj.a = log(h_int / h_ext) / log(r_int / r_ext);
24 obj.p = - obj.a / 2 + sqrt(1 - ni * obj.a + obj.a ^ 2 / 4);
25 obj.q = - obj.a / 2 - sqrt(1 - ni * obj.a + obj.a ^ 2 / 4);
26 obj.A = (sigmaR_int - sigmaR_ext * obj.beta ^ (obj.q - 1)) / (obj.beta ^
(obj.p - 1) - obj.beta ^ (obj.q - 1)) + (3 + ni) / (8 + (3 + ni) * obj.a) * obj.sigma_0
* (obj.beta ^ 2 - obj.beta ^ (obj.q - 1)) / (obj.beta ^ (obj.p - 1) - obj.beta ^ (obj.q
- 1));
27 obj.B = (sigmaR_ext * obj.beta ^ (obj.p - 1) - sigmaR_int) / (obj.beta ^
(obj.p - 1) - obj.beta ^ (obj.q - 1)) + (3 + ni) / (8 + (3 + ni) * obj.a) * obj.sigma_0
* (obj.beta ^ (obj.p - 1) - obj.beta ^ 2) / (obj.beta ^ (obj.p - 1) - obj.beta ^ (obj.q
- 1));
28 obj.C = (3 + ni) / (8 + (3 + ni) * obj.a) * obj.sigma_0;
29 obj.D = (1 + 3 * ni) / (8 + (3 + ni) * obj.a) * obj.sigma_0;
30 end
31
32 function [sigmaR, sigmaT] = stresses(obj, rho)
33 sigmaR = obj.A * rho ^ (obj.p - 1) + obj.B * rho ^ (obj.q - 1) - obj.C *
rho ^ 2;
34 sigmaT = - obj.q * obj.A * rho ^ (obj.p - 1) - obj.p * obj.B * rho ^
(obj.q - 1) - obj.D * rho ^ 2;
35 end
36
37 function u = u_r(obj, rho)
38 u = obj.r_ext / obj.E * rho * ( - (obj.q + obj.ni) * obj.A * rho ^ (obj.
p - 1) - (obj.p + obj.ni) * obj.B * rho ^ (obj.q - 1) - (obj.D - obj.ni * obj.C) * rho
^ 2);
39 end
40
41 function u = uPlot(obj, steps)
42 u(steps + 1) = 0;
43 i = 1;
44 for rho = obj.beta : (1 - obj.beta) / steps : 1
45 u(i) = u_r(obj, rho);
46 i = i + 1;
47 end
48 end
49 end
50 end
19/02/14 9.22 D:\MatLab_Fi...\interfacesRadialStresses.m 1 of 2

1 function [sigmaRI, sigmaRE] = interfacesRadialStresses(gHandle, n, radii, heights,


sigmaR_int, sigmaR_ext, omega)
2 %% Global Variables
3 global ni; global gamma;
4
5 %% Calculation procedure
6 % Solving compatibility and equilibrium equations at the interfaces
7 if isequal(gHandle, @Ex_2)
8 beta(n) = 0;
9 sigma_0(n) = 0;
10 for i = 1 : n
11 beta(i) = radii(i) / radii(i + 1);
12 sigma_0(i) = gamma * omega ^ 2 * radii(i + 1) ^ 2; % [MPa]
13 end
14 a = log(heights(2 * 2 - 1) / heights(2 * 2)) / log(radii(2) / radii(2 + 1));
15 p = - a / 2 + sqrt(1 - ni * a + a ^ 2 / 4);
16 q = - a / 2 - sqrt(1 - ni * a + a ^ 2 / 4);
17 M(1, 1) = 1 / (1 - beta(1) ^ 2) * (1 - ni + (1 + ni) * beta(1) ^ 2) * radii
(1 + 1) + ...
18 heights(2 * 2 - 2) / heights(2 * 2 - 1) * ((q + ni) * beta(2) ^ (p
- 1) - (p + ni) * beta(2) ^ (q - 1)) / (beta(2) ^ (p - 1) - beta(2) ^ (q - 1)) * radii
(2 + 1) * beta(2); % coefficient for sigmaRE(1)
19 M(1, 2) = - ((q + ni) * beta(2) ^ (p + q - 1) - (p + ni) * beta(2) ^ (p + q
- 1)) / (beta(2) ^ (p - 1) - beta(2) ^ (q - 1)) * radii(2 + 1); % coefficient for
sigmaRE(2)
20 M(2, 1) = heights(2 * 2 - 2) / heights(2 * 2 - 1) * (p - q) / (beta(2) ^ (p
- 1) - beta(2) ^ (q - 1)) * radii(2 + 1); % coefficient for sigmaRE(1)
21 M(2, 2) = ((q + ni) * beta(2) ^ (q - 1) - (p + ni) * beta(2) ^ (p - 1)) /
(beta(2) ^ (p - 1) - beta(2) ^ (q - 1)) * radii(2 + 1) + ...
22 heights(3 * 2 - 2) / heights(3 * 2 - 1) * beta(3) ^ 2 / (1 - beta
(3) ^ 2) * (1 - ni + (1 + ni) / beta(3) ^ 2) * radii(3 + 1) * beta(3); % coefficient
for sigmaRE(2)
23 N(1) = 1 / (8 + (3 + ni) * a) * radii(2 + 1) * sigma_0(2) / (beta(2) ^ (p -
1) - beta(2) ^ (q - 1)) * ( - (q + ni) * (3 + ni) * (beta(2) ^ 2 - beta(2) ^ (q - 1)) *
beta(2) ^ p - (p + ni) * (3 + ni) * (beta(2) ^ (p - 1) - beta(2) ^ 2) * beta(2) ^ q -
(1 - ni ^ 2) * beta(2) ^ 3 * (beta(2) ^ (p - 1) - beta(2) ^ (q - 1))) ...
24 - (3 + ni) / 8 * radii(1 + 1) * sigma_0(1) * ((1 + beta(1) ^ 2) * (1
- ni) + (1 + ni) * beta(1) ^ 2 - (1 - ni ^ 2) / (3 + ni)) + ...
25 sigmaR_int * 2 * beta(1) ^ 2 / (1 - beta(1) ^ 2) * radii(1 + 1); %
known term
26 N(2) = (3 + ni) / 8 * ((1 + beta(3) ^ 2) * (1 - ni) + 1 + ni - (1 - ni ^ 2)
/ (3 + ni) * beta(3) ^ 2) * radii(3 + 1) * beta(3) * sigma_0(3) - ...
27 1 / (8 + (3 + ni) * a) * radii(2 + 1) * sigma_0(2) / (beta(2) ^ (p -
1) - beta(2) ^ (q - 1)) * ( - (q + ni) * (3 + ni) * (beta(2) ^ 2 - beta(2) ^ (q - 1)) -
(p + ni) * (3 + ni) * (beta(2) ^ (p - 1) - beta(2) ^ 2) - (1 - ni ^ 2) * (beta(2) ^ (p
- 1) - beta(2) ^ (q - 1))) + ...
28 sigmaR_ext * 2 / (1 - beta(3) ^ 2) * radii(3 + 1) * beta(3);
29 sigmaRE = M \ N';
30 sigmaRI(2) = sigmaRE(1) * heights(2 * 2 - 2) / heights(2 * 2 - 1);
31 sigmaRI(3) = sigmaRE(2) * heights(3 * 2 - 2) / heights(3 * 2 - 1);
32 else
33 B(n - 1, 3) = 0;
34 N(n - 1) = 0;
35 for i = 1 : n - 1
36 beta(1) = radii(i) / radii(i + 1);
37 beta(2) = radii (i + 1) / radii(i + 2);
38 sigma_0(1) = gamma * omega ^ 2 * radii(i + 1) ^ 2; % [MPa]
39 sigma_0(2) = gamma * omega ^ 2 * radii(i + 2) ^ 2; % [MPa]
40 N(i) = (3 + ni) / 8 * (((1 + beta(2) ^ 2) * (1 - ni) + 1 + ni - (1 - ni
^ 2) / (3 + ni) * beta(2) ^ 2) * radii(i + 2) * beta(2) * sigma_0(2) - ((1 + beta(1) ^
2) * (1 - ni) + (1 + ni) * beta(1) ^ 2 - (1 - ni ^ 2) / (3 + ni)) * radii(i + 1) *
sigma_0(1)); % known term
41 if i > 1
42 B(i - 1, 1) = - heights(i - 1) / heights(i) * 2 * beta(1) ^ 2 / (1 -
beta(1) ^ 2) * radii(i + 1); % coefficient for sigmaRE(i - 1)
19/02/14 9.22 D:\MatLab_Fi...\interfacesRadialStresses.m 2 of 2

43 else
44 N(i) = N(i) + sigmaR_int * 2 * beta(1) ^ 2 / (1 - beta(1) ^ 2) *
radii(i + 1);
45 end
46 B(i, 2) = 1 / (1 - beta(1) ^ 2) * (1 - ni + (1 + ni) * beta(1) ^ 2) *
radii(i + 1) + heights(i) / heights(i + 1) * beta(2) ^ 2 / (1 - beta(2) ^ 2) * (1 - ni
+ (1 + ni) / beta(2) ^ 2) * radii(i + 2) * beta(2); % coefficient for sigmaRE(i)
47 if i < n - 1
48 B(i + 1, 3) = - 2 / (1 - beta(2) ^ 2) * radii(i + 2) * beta(2); %
coefficient for sigmaRE(i + 1)
49 else
50 N(i) = N(i) + sigmaR_ext * 2 / (1 - beta(2) ^ 2) * radii(i + 2) *
beta(2);
51 end
52 end
53 M = spdiags(B, [-1, 0, 1], n - 1, n - 1);
54 sigmaRE = (full(M) \ N')';
55 sigmaRI(n) = 0;
56 for i = 2 : n
57 sigmaRI(i) = sigmaRE(i - 1) * heights(i - 1) / heights(i);
58 end
59 end
60 sigmaRI(1) = sigmaR_int;
61 sigmaRE(n) = sigmaR_ext;
19/02/14 9.22 D:\MatLab_Files\CM\discretizedStodola.m 1 of 1

1 function [r, h] = discretizedStodola(n, radii, heights, fHandle)


2 % Author: Alfredo Patrizi
3 % This script defines constant spacing discretization of the profile
4 % defined by function fHandle, in a typical hub-disk-crownring design
5 % with constant thickness hub and crown.
6
7 % Preallocating
8 r(n + 1) = radii(4);
9 h(n + 1) = heights(6);
10 % Defining hub and crown edges and heights
11 r(1) = radii(1);
12 r(2) = radii(2);
13 r(n) = radii(3);
14 h(1) = heights(1);
15 h(2) = heights(2);
16 h(n) = heights(5);
17 % Calculating Stodola's profile parameters
18 a = log(heights(3) / heights(4)) / log(radii(2) / radii(3));
19 C = heights(4) / radii(3) ^ a;
20 % Creating discretized geometry
21 if isequal(fHandle, @timoshenkoGrammel)
22 for i = 2 : n - 1
23 r(i + 1) = r(2) + (i - 1) / (n - 2) * (radii(3) - radii(2));
24 h(i) = h_Stodola(((r(i + 1) + r(i)) * .5), C, a);
25 end
26 else
27 r(3) = radii(2);
28 h(3) = heights(3);
29 r(n - 1) = radii(3);
30 h(n - 1) = heights(4);
31 for i = 3 : n - 3
32 r(i + 1) = r(2) + (i - 1) / (n - 2) * (radii(3) - radii(2));
33 h(i + 1) = h_Stodola(r(i + 1), C, a);
34 end
35 end
36
19/02/14 9.23 D:\MatLab_Files\CM\timoshenkoGrammel.m 1 of 2

1 function [sigmaR, sigmaT] = timoshenkoGrammel(n, radii, heights, sigmaR_int,


sigmaR_ext, omega, sigmaT_int)
2 %% Title
3 %
4 % TIMOSHENKO-GRAMMEL'S METHOD
5 % Author: Alfredo Patrizi
6 %
7 % This script computes stresses in disks having arbitrary profile using
8 % Biezeno-Grammel's approach, in the latter formulation by Timoshenko.
9 % The discretized profile is defined by the variables radii and heights,
10 % while sigmaT_int is the tentative value assumed for hoop stresses at the
11 % inner edge of the first partial disk.
12 % - sigmaR(1, :), sigmaT(1, :): system of stresses in the rotating disk,
13 % assumed sigmaT_int
14 % - sigmaR(2, :), sigmaT(2, :): system of stresses in the non-rotating
15 % disk, assumed sigmaT_int = 0
16 % - sigmaR(3, :), sigmaT(3, :): system of stresses in the actual disk
17
18 %% Global Variables
19 global ni; global gamma;
20 global steps;
21
22 %% Geometry and Initial & Boundary conditions
23 sigma_0 = gamma * omega ^ 2 * radii(n + 1) ^ 2; % [MPa]
24 C(1) = (3 + ni) / 8 * sigma_0 / radii(n + 1) ^ 2; % [MPa / mm ^ 2]
25 D(1) = (1 + 3 * ni) / 8 * sigma_0 / radii(n + 1) ^ 2; % [MPa / mm ^ 2]
26 C(2) = 0;
27 D(2) = 0;
28 d_sigmaR(2) = 0;
29 d_sigmaT(2) = 0;
30 A(2, n) = 0;
31 B(2, n) = 0;
32 sigmaR_i = [sigmaR_int, 0];
33 sigmaT_i = [sigmaT_int, sigmaT_int];
34 h = heights(1);
35 plotOnlyDisk = 1;
36
37 %% Calculation procedure
38 for i = 1 : n
39 r_int = radii(i);
40 r_ext = radii(i + 1);
41 dh = heights(i) - h;
42 h = h + dh;
43 for l = 1 : 2
44 d_sigmaR(l) = - sigmaR_i(l) * dh / h;
45 d_sigmaT(l) = ni * d_sigmaR(l);
46 sigmaR_i(l) = sigmaR_i(l) + d_sigmaR(l);
47 sigmaT_i(l) = sigmaT_i(l) + d_sigmaT(l);
48 s = sigmaR_i(l) + C(l) * r_int ^ 2;
49 t = sigmaT_i(l) + D(l) * r_int ^ 2;
50 A(l, i) = .5 * (t + s);
51 B(l, i) = .5 * (t - s) * r_int ^ 2;
52 sigmaR_i(l) = A(l, i) - B(l, i) / r_ext ^ 2 - C(l) * r_ext ^ 2;
53 sigmaT_i(l) = A(l, i) + B(l, i) / r_ext ^ 2 - D(l) * r_ext ^ 2;
54 end
55 end
56 k = (sigmaR_ext - sigmaR_i(1)) / sigmaR_i(2);
57
58 SigmaR(3, steps + 1) = 0;
59 SigmaT(3, steps + 1) = 0;
60
61 if plotOnlyDisk == 1
62 R_int = radii(2);
63 R_est = radii(n);
64 i_start = 2;
19/02/14 9.23 D:\MatLab_Files\CM\timoshenkoGrammel.m 2 of 2

65 i_end = n - 1;
66 else
67 R_int = radii(1);
68 R_est = radii(n + 1);
69 i_start = 1;
70 i_end = n;
71 end
72 for t = 1 : steps + 1
73 r = R_int + (t - 1) * (R_est - R_int) / steps;
74 for i = i_start : i_end
75 if r >= radii(i) && r <= radii(i + 1)
76 for l = 1 : 2
77 SigmaR(l, t) = A(l, i) - B(l, i) / r ^ 2 - C(l) * r ^ 2;
78 SigmaT(l, t) = A(l, i) + B(l, i) / r ^ 2 - D(l) * r ^ 2;
79 end
80 end
81 end
82 SigmaR(3, t) = SigmaR(1, t) + k * SigmaR(2, t);
83 SigmaT(3, t) = SigmaT(1, t) + k * SigmaT(2, t);
84 end
85 sigmaR = SigmaR(3, :);
86 sigmaT = SigmaT(3, :);
87
19/02/14 9.23 D:\MatLab_Files\CM\manson.m 1 of 3

1 function [sigmaR, sigmaT] = manson(n, radii, heights, sigmaR_int, sigmaR_ext,


omega, plotWholeDisk)
2 %% Title
3 %
4 % MANSON'S METHOD
5 % Author: Alfredo Patrizi
6 %
7 % This script computes stresses in disks having arbitrary profile using
8 % Manson's finite-differences approach.
9 % The discretized profile is defined by the variables radii and heights,
10 % while sigmaT_int is the tentative value assumed for hoop stresses at the
11 % inner edge of the first partial disk.
12 % The script builds the band matrix of coefficients of the system of
13 % linear equations of equilibrium and compatibility for the n partial
14 % disks. Once solved the linear system, stress state in the entire disk
15 % is then computed.
16
17 %% Global Variables
18 global E; global ni; global gamma; global alpha;
19 global steps;
20
21 plotOnlyDisk = 1;
22
23 %% Geometry and Initial & Boundary conditions
24 rho = radii / radii(n + 1);
25 temperatures(n + 1) = 0;
26
27 %% Calculation procedure
28 % Building linear system
29 B(2 * n, 5) = 0;
30 I(2 * n) = 0;
31 I(1) = ( - omega ^ 2 * radii(n + 1) ^ 2 * ( rho(2) - rho(1) ) * ...
32 ( gamma * rho(2) ^ 2 * heights(2) + gamma * rho(1) ^ 2 * heights(1) ) )
- ...
33 ( - 2 * rho(1) * heights(1) ) * sigmaR_int;
34 I(2) = ( - 2 * ( alpha * temperatures(2) - alpha * temperatures(1) ) + ...
35 ( rho(2) - rho(1) ) * ( ( alpha - alpha ) * temperatures(2) / rho(2) +
...
36 ( alpha - alpha ) * temperatures(1) / rho(2) ) ) - ...
37 ( 1 / E * ( 2 * ni - ( rho(2) - rho(1) ) * ( 1 + ni ) / rho(1) ) ) *
sigmaR_int;
38 B(1, 2) = ( - 1 / E * ( 2 - ( rho(2) - rho(1) ) * ( 1 + ni ) / rho(2) ) );
39 B(1, 3) = ( - heights(1) * ( rho(2) - rho(1) ) );
40 B(2, 3) = ( - 1 / E * ( 2 * ni + ( rho(2) - rho(1) ) * ( 1 + ni ) / rho (2) )
);
41 B(2, 4) = ( 2 * rho(2) * heights(2) );
42 B(3, 4) = ( 1 / E * ( 2 + ( rho(2) - rho(1) ) * ( 1 + ni ) / rho(2) ) );
43 B(3, 5) = ( - heights(2) * ( rho(2) - rho(1) ) );
44 B(4, 5) = 0;
45 for l = 3 : 2 * n - 2
46 odd = ( ( l / 2 - fix(l / 2) ) * 2 );
47 even = (1 - ( l / 2 - fix(l / 2) ) * 2 );
48 i = fix( l / 2 ) + odd;
49 B(l - 2, 1) = odd * 0 + ...
50 even * ( 1 / E * ( 2 * ni - ( rho(i + 1) - rho(i) ) * ( 1 + ni )
/ rho(i) ) ); % odd: 0; even: F'
51 B(l - 1, 2) = odd * ( - 2 * rho(i) * heights(i) ) + ...
52 even * ( - 1 / E * ( 2 - ( rho(i + 1) - rho(i) ) * ( 1 + ni ) /
rho(i + 1) ) ); % odd: F; even: G'
53 B(l, 3) = odd * ( - heights(i) * ( rho(i + 1) - rho(i) ) ) + ...
54 even * ( - 1 / E * ( 2 * ni + ( rho(i + 1) - rho(i) ) * ( 1 + ni
) / rho (i + 1) ) ); % odd: G; even: C'
55 B(l + 1, 4) = odd * ( 2 * rho(i + 1) * heights(i + 1) ) + ...
56 even * ( 1 / E * ( 2 + ( rho(i + 1) - rho(i) ) * ( 1 + ni ) / rho
(i + 1) ) ); % odd: C; even: D'
19/02/14 9.23 D:\MatLab_Files\CM\manson.m 2 of 3

57 B(l + 2, 5) = odd * ( - heights(i + 1) * ( rho(i + 1) - rho(i) ) ) + ...


58 even * 0;
% odd: D; even: 0
59 I(l) = odd * ( - omega ^ 2 * radii(n + 1) ^ 2 * ( rho(i + 1) - rho(i) )
* ...
60 ( gamma * rho(i + 1) ^ 2 * heights(i + 1) + gamma * rho(i)
^ 2 * heights(i) ) ) + ...
61 even * ( - 2 * ( alpha * temperatures(i + 1) - alpha *
temperatures(i) ) + ...
62 ( rho(i + 1) - rho(i) ) * ( ( alpha - alpha ) *
temperatures(i + 1) / rho(i + 1) + ...
63 ( alpha - alpha ) * temperatures(i) / rho(i + 1) ) );
% odd: H; even: H'
64 end
65 B(2 * n - 2, 1) = 0;
66 B(2 * n - 2, 1) = ( 1 / E * ( 2 * ni - ( rho(n + 1) - rho(n) ) * ( 1 + ni ) /
rho(n) ) );
67 B(2 * n - 2, 2) = ( - 2 * rho(n) * heights(n) );
68 B(2 * n - 1, 2) = ( - 1 / E * ( 2 - ( rho(n + 1) - rho(n) ) * ( 1 + ni ) / rho
(n + 1) ) );
69 B(2 * n - 1, 3) = ( - heights(n) * ( rho(n + 1) - rho(n) ) );
70 B(2 * n, 3) = ( 1 / E * ( 2 + ( rho(n + 1) - rho(n) ) * ( 1 + ni ) / rho(n
+ 1) ) );
71 B(2 * n, 4) = ( - heights(n + 1) * ( rho(n + 1) - rho(n) ) );
72 I(2 * n - 1) = ( - omega ^ 2 * radii(n + 1) ^ 2 * ( rho(n + 1) - rho(n) ) * ...
73 ( gamma * rho(n + 1) ^ 2 * heights(n + 1) + gamma * rho(n) ^ 2 *
heights(n) ) ) - ...
74 ( 2 * rho(n + 1) * heights(n + 1) ) * sigmaR_ext;
75 I(2 * n) = ( - 2 * ( alpha * temperatures(n + 1) - alpha * temperatures(n) ) +
...
76 ( rho(n + 1) - rho(n) ) * ( ( alpha - alpha ) * temperatures(n + 1)
/ rho(n + 1) + ...
77 ( alpha - alpha ) * temperatures(n) / rho(n + 1) ) ) - ...
78 ( - 1 / E * ( 2 * ni + ( rho(n + 1) - rho(n) ) * ( 1 + ni ) / rho (n
+ 1) ) ) * sigmaR_ext;
79 M = spdiags(B, [-2, -1, 0, 1, 2], 2 * n, 2 * n);
80
81 % Solving
82 sigmaI = full(M) \ I';
83 sigmaI = [sigmaR_int; sigmaI; sigmaI(2 * n)];
84 sigmaI(2 * n + 1) = sigmaR_ext;
85
86 %% Output
87 if plotOnlyDisk == 1
88 deltaI = 2;
89 else
90 deltaI = 0;
91 end
92 % memory allocation
93 SigmaR(n + 1 - deltaI * 2) = 0;
94 SigmaT(n + 1 - deltaI * 2) = 0;
95 % printing
96 for i = 1 + deltaI : n + 1 - deltaI
97 SigmaR(i - deltaI) = sigmaI(i * 2 - 1);
98 SigmaT(i - deltaI) = sigmaI(i * 2);
99 end
100
101 if plotWholeDisk == 0
102 sigmaR = SigmaR;
103 sigmaT = SigmaT;
104 else
105 sigmaR(steps + 1) = 0;
106 sigmaT(steps + 1) = 0;
107 for t = 1 : steps + 1
108 r = radii(1 + deltaI) + (t - 1) * (radii(n + 1 - deltaI) - radii(1 +
19/02/14 9.23 D:\MatLab_Files\CM\manson.m 3 of 3

deltaI)) / steps;
109 for i = 1 : n - 2 * deltaI
110 if r >= radii(i + deltaI) && r <= radii(i + deltaI + 1)
111 sigmaR(t) = SigmaR(i) + (SigmaR(i + 1) - SigmaR(i)) / (radii(i
+ deltaI + 1) - radii(i + deltaI)) * (r - (radii(i + deltaI + 1)));
112 sigmaT(t) = SigmaT(i) + (SigmaT(i + 1) - SigmaT(i)) / (radii(i
+ deltaI + 1) - radii(i + deltaI)) * (r - (radii(i + deltaI + 1)));
113 end
114 end
115 end
116 end
19/02/14 9.23 D:\MatLab_Files\CM\mansonOriginal.m 1 of 2

1 function [sigmaR, sigmaT] = mansonOriginal(n, radii, heights, sigmaR_int,


sigmaR_ext, omega, plotWholeDisk)
2 %% Title
3 %
4 % MANSON'S METHOD
5 % Author: Alfredo Patrizi
6 %
7 % This script computes stresses in disks having arbitrary profile using
8 % Manson's finite-differences approach, in its original formulation.
9 % The discretized profile is defined by the variables radii and heights,
10 % while sigmaT_int is the tentative value assumed for hoop stresses at the
11 % inner edge of the first partial disk.
12 % The script follows Manson's original tabular procedure.
13
14
15 %% Global Variables
16 global E; global ni; global gamma; global alpha;
17 global steps;
18
19 plotOnlyDisk = 1;
20
21 %% Geometry and Initial & Boundary conditions
22 rho = radii / radii(n + 1);
23 temperatures(n + 1) = 0;
24
25 %% Calculation procedure
26 % memory allocation
27 Ar(n + 1) = 0;
28 At(n + 1) = 0;
29 Br(n + 1) = 0;
30 Bt(n + 1) = 0;
31
32 % boundary conditions
33 if rho(1) == 0 % solid disk
34 Ar(1) = 1;
35 At(1) = 1;
36 Br(1) = 0;
37 Bt(1) = 0;
38 else % anular disk
39 Ar(1) = 0;
40 At(1) = 1;
41 Br(1) = sigmaR_int;
42 Bt(1) = 0;
43 end
44
45 % tabular computation
46 for i = 1 : n
47 C = 2 * rho(i + 1) * heights(i + 1);
48 D = - heights(i + 1) * ( rho(i + 1) - rho(i) );
49 F = - 2 * rho(i) * heights(i);
50 G = - heights(i) * ( rho(i + 1) - rho(i) );
51 H = - omega ^ 2 * radii(n + 1) ^ 2 * ( rho(i + 1) - rho(i) ) * ( gamma *
rho(i + 1) ^ 2 * heights(i + 1) + gamma * rho(i) ^ 2 * heights(i) );
52 C_ = - 1 / E * ( 2 * ni + ( rho(i + 1) - rho(i) ) * ( 1 + ni ) / rho (i +
1) );
53 D_ = 1 / E * ( 2 + ( rho(i + 1) - rho(i) ) * ( 1 + ni ) / rho(i + 1) );
54 F_ = 1 / E * ( 2 * ni - ( rho(i + 1) - rho(i) ) * ( 1 + ni ) / rho(i) );
55 G_ = - 1 / E * ( 2 - ( rho(i + 1) - rho(i) ) * ( 1 + ni ) / rho(i + 1) );
56 H_ = - 2 * ( alpha * temperatures(i + 1) - alpha * temperatures(i) ) + (
rho(i + 1) - rho(i) ) * ( ( alpha - alpha ) * temperatures(i + 1) / rho(i + 1) + (
alpha - alpha ) * temperatures(i) / rho(i + 1) );
57
58 Z = C * D_ - C_ * D;
59 k = ( D * F_ - D_ * F ) / Z;
60 k_ = ( C_ * F - C * F_ ) / Z;
19/02/14 9.23 D:\MatLab_Files\CM\mansonOriginal.m 2 of 2

61 L = - ( D_ * G - D * G_ ) / Z;
62 L_ = - ( C * G_ - C_ * G ) / Z;
63 M = ( D_ * H - D * H_ ) / Z;
64 M_ = ( C * H_ - C_ * H ) / Z;
65
66 Ar(i + 1) = Ar(i) * k + At(i) * L;
67 At(i + 1) = Ar(i) * k_ + At(i) * L_;
68 Br(i + 1) = Br(i) * k + Bt(i) * L + M;
69 Bt(i + 1) = Br(i) * k_ + Bt(i) * L_ + M_;
70 end
71
72 %% Output
73 if plotOnlyDisk == 1
74 deltaI = 2;
75 else
76 deltaI = 0;
77 end
78 % memory allocation
79 SigmaR(n + 1 - deltaI * 2) = 0;
80 SigmaT(n + 1 - deltaI * 2) = 0;
81 SigmaT_1 = ( sigmaR_ext - Br(n + 1) ) / Ar(n + 1);
82 % printing
83 for i = 1 + deltaI : n + 1 - deltaI
84 SigmaR(i - deltaI) = Ar(i) * SigmaT_1 + Br(i);
85 SigmaT(i - deltaI) = At(i) * SigmaT_1 + Bt(i);
86 end
87
88 if plotWholeDisk == 0
89 sigmaR = SigmaR;
90 sigmaT = SigmaT;
91 else
92 sigmaR(steps + 1) = 0;
93 sigmaT(steps + 1) = 0;
94 for t = 1 : steps + 1
95 r = radii(1 + deltaI) + (t - 1) * (radii(n + 1 - deltaI) - radii(1 +
deltaI)) / steps;
96 for i = 1 : n - 2 * deltaI
97 if r >= radii(i + deltaI) && r <= radii(i + deltaI + 1)
98 sigmaR(t) = SigmaR(i) + (SigmaR(i + 1) - SigmaR(i)) / (radii(i
+ deltaI + 1) - radii(i + deltaI)) * (r - (radii(i + deltaI + 1)));
99 sigmaT(t) = SigmaT(i) + (SigmaT(i + 1) - SigmaT(i)) / (radii(i
+ deltaI + 1) - radii(i + deltaI)) * (r - (radii(i + deltaI + 1)));
100 end
101 end
102 end
103 end
19/02/14 9.24 D:\MatLab_File...\constantThicknessDisks.m 1 of 2

1 function [sigmaR, sigmaT] = constantThicknessDisks(n, radii, heights, sigmaR_int,


sigmaR_ext, omega, fHandle, ~)
2 %% Title
3 %
4 % CONSTANT THICKNESS DISKS (e.g. crown ring design)
5 % Author: Alfredo Patrizi
6 %
7 % This script computes stresses in consecutive constant thickness disks.
8 % The geometry is defined through the function called by @gHandle; B is a
9 % 3 * (n - 1) matrix containing the diagonals indexed -1, 0, 1 of the
10 % sparse matrix associated to the linear system of compatibility equations
11 % of the radial displacements at the n - 1 interfaces between two
12 % consecutive disks; I is the right-hand side of the linear system.
13 % Equilibrium equations have been used to replace radial stress at the
14 % outer radius of each disk with the one at the inner radius of the
15 % subsequent disk: the n - 1 unknowns are then radial stress values at the
16 % inner radii.
17 % The system of stresses for each disk is then computed by imposing the
18 % corresponding boundary conditions
19
20 %% Global Variables
21 global ni; global gamma;
22 global steps;
23
24 %% Geometry and Initial & Boundary conditions
25
26 %% Calculation procedure
27 % Solving compatibility and equilibrium equations at the interfaces
28 B(n - 1, 3) = 0;
29 I(n - 1) = 0;
30 stepsPark = steps;
31 stepsTot = 0;
32 for i = 1 : n - 1
33 stepsTot = stepsTot + round(stepsPark * (radii(i + 1) - radii(i)) / (radii(n
+ 1) - radii(1)));
34 beta(1) = radii(i) / radii(i + 1);
35 beta(2) = radii (i + 1) / radii(i + 2);
36 sigma_0(1) = gamma * omega ^ 2 * radii(i + 1) ^ 2; % [MPa]
37 sigma_0(2) = gamma * omega ^ 2 * radii(i + 2) ^ 2; % [MPa]
38 I(i) = (3 + ni) / 8 * (((1 + beta(2) ^ 2) * (1 - ni) + 1 + ni - (1 - ni ^ 2)
/ (3 + ni) * beta(2) ^ 2) * radii(i + 2) * beta(2) * sigma_0(2) - ((1 + beta(1) ^ 2) *
(1 - ni) + (1 + ni) * beta(1) ^ 2 - (1 - ni ^ 2) / (3 + ni)) * radii(i + 1) * sigma_0
(1)); % known term
39 if i > 1
40 B(i - 1, 1) = - heights(i - 1) / heights(i) * 2 * beta(1) ^ 2 / (1 -
beta(1) ^ 2) * radii(i + 1); % coefficient for sigmaRE(i - 1)
41 else
42 I(i) = I(i) + sigmaR_int * 2 * beta(1) ^ 2 / (1 - beta(1) ^ 2) * radii(i
+ 1);
43 end
44 B(i, 2) = 1 / (1 - beta(1) ^ 2) * (1 - ni + (1 + ni) * beta(1) ^ 2) * radii
(i + 1) + heights(i) / heights(i + 1) * beta(2) ^ 2 / (1 - beta(2) ^ 2) * (1 - ni + (1
+ ni) / beta(2) ^ 2) * radii(i + 2) * beta(2); % coefficient for sigmaRE(i)
45 if i < n - 1
46 B(i + 1, 3) = - 2 / (1 - beta(2) ^ 2) * radii(i + 2) * beta(2); %
coefficient for sigmaRE(i + 1)
47 else
48 I(i) = I(i) + sigmaR_ext * 2 / (1 - beta(2) ^ 2) * radii(i + 2) * beta
(2);
49 end
50 end
51 stepsTot = stepsTot + fix(stepsPark * (radii(n + 1) - radii(n)) / (radii(n + 1)
- radii(1)));
52 M = spdiags(B, [-1, 0, 1], n - 1, n - 1);
53 sigmaRE = full(M) \ I';
19/02/14 9.24 D:\MatLab_File...\constantThicknessDisks.m 2 of 2

54 sigmaRE(n) = sigmaR_ext;
55 sigmaRI(n - 1) = 0;
56
57 % Calculating stresses in the entire disk
58 sigmaR(stepsTot + 1) = 0;
59 sigmaT(stepsTot + 1) = 0;
60 stepsTemp = 0;
61 for i = 1 : n
62 if i > 1
63 sigmaRI(i) = sigmaRE(i - 1) * heights(i - 1) / heights(i);
64 else
65 sigmaRI(i) = sigmaR_int;
66 end
67 steps = round(stepsPark * (radii(i + 1) - radii(i)) / (radii(n + 1) - radii
(1)));
68 stepsTemp = stepsTemp + steps;
69 [sigmaR(stepsTemp - steps + 1 : stepsTemp + 1), sigmaT(stepsTemp - steps + 1
: stepsTemp + 1)] = constantThicknessDisk(1, [radii(i), radii(i + 1)], 0, sigmaRI(i),
sigmaRE(i), omega, 0);
70 if i < n
71 sigmaR(stepsTemp + 1) = [];
72 sigmaT(stepsTemp + 1) = [];
73 end
74 end
75 steps = stepsTot;
19/02/14 9.22 D:\MatLab_Files\CM\Ex_1.m 1 of 1

1 function [radii, heights] = Ex_1()


2 radii = [120/2, 220/2, 600/2, 800/2];
3 heights = [140, 25, 100, 100];
19/02/14 9.22 D:\MatLab_Files\CM\Ex_2.m 1 of 1

1 function [radii, heights] = Ex_2()


2 radii = [120, 200, 800, 1000];
3 heights = [120, 120, 80, 20, 80, 80];
19/02/14 9.22 D:\MatLab_Files\CM\h_Stodola.m 1 of 1

1 function h = h_Stodola(r, C, a)
2 h = C * r ^ a;
19/02/14 9.23 D:\MatLab_Files\CM\tresca.m 1 of 1

1 function sigmaE = tresca(sigma)


2 sigmaE = .5 * max([abs(sigma(1) - sigma(2)), abs(sigma(2) - sigma(3)), abs(sigma
(3) - sigma(1))]);
19/02/14 9.23 D:\MatLab_Files\CM\vonMises.m 1 of 1

1 function sigmaE = vonMises(sigma)


2 sigmaE = sqrt(.5 * ((sigma(1) - sigma(2)) ^ 2 + (sigma(2) - sigma(3)) ^ 2 +
(sigma(3) - sigma(1)) ^ 2));
3 end
20/02/14 20.34 D:\MatLab_Files\CM\CM_Ex_3.m 1 of 6

1 clear all
2 clc
3 close all
4 %format short;
5
6 % Title
7 % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
8 % %
9 % EX 3 - SHELLS IN THE FORM OF SURFACES OF REVOLUTION, MEMBRANE THEORY %
10 % Author: Alfredo Patrizi %
11 % %
12 % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
13 sTitle = 'EX 3 - Shells in the form of surfaces of revolution, membrane theory';
14
15 % Global variables
16 global R; global gamma; global gammaSnow; global sSnow;
17
18 % Integration parameters
19 steps_a = 500;
20 steps = 500;
21
22 % Material data
23 g = 9.80665 * 10 ^ 3; % [mm/s^2 = 10^3 m/s^2]
24 E = 2.1 * 10 ^ 5; % [MPa]
25 ni = .3;
26 gamma = 7.85 * 10 ^ (-9) * g; % [Mg/mm^3 = 10^(-12) kg/m^3] * g
27 gammaSnow = .5 * 10 ^ (-9) * g; % [Mg/mm^3 = 10^(-12) kg/m^3] * g
28 sigmaY = 240; % [MPa]
29 X = 4;
30 sigmaA = sigmaY / X; % [MPa]
31
32 % Geometry and working condition
33 R = 5000; % [mm]
34 phi_0 = 15;
35 P = 1; % [N / mm]
36 sSnow = 1000; % [mm]
37 alphaMin = 40;
38 alphaMAX = 120;
39
40 opening = 0;
41
42 if opening == 1
43 % Functions of sin(phi), cos(phi)
44 f_a = @(phi) ((cos(phi_0 * pi / 180) - cos(phi * pi / 180)) / (sin(phi * pi /
180)) ^ 2);
45 f_b = @(phi) ((cos(phi_0 * pi / 180) - cos(phi * pi / 180)) / (sin(phi * pi /
180)) ^ 2 - cos(phi * pi / 180));
46 f_c = @(phi) (sin(phi_0 * pi / 180) / (sin(phi * pi / 180)) ^ 2);
47 figure;
48 hold on
49 fplot(f_a, [phi_0 alphaMAX], '-b');
50 fplot(f_b, [phi_0 alphaMAX], '-r');
51 fplot(f_c, [phi_0 alphaMAX], '-g');
52 grid on;
53 xlabel('\phi []', 'FontWeight','bold');
54 ylabel('f_a, f_b, f_c','FontWeight','bold');
55 legend('f_a' , 'f_b', 'f_c');
56 title('Ex. 3 - f_a(\phi), f_b(\phi), f_c(\phi)', 'FontWeight','bold');
57 hold off
58
59 % Forces vs phi, s: N_phi(phi, s), N_theta(phi, s)
60 N_phi_s = @(phi, s) ( - gamma * s * R * f_a(phi) - P * f_c(phi) );
61 N_theta_s = @(phi, s) ( gamma * s * R * f_b(phi) + P * f_c(phi) );
62 sigmaE_s = @(phi, s) sqrt( (N_phi_s(phi, s)/ s) ^ 2 + (N_theta_s(phi, s)/ s) ^
2 - N_phi_s(phi, s) * N_theta_s(phi, s) / s ^ 2 );
20/02/14 20.34 D:\MatLab_Files\CM\CM_Ex_3.m 2 of 6

63
64 % Shell and ring thicknesses
65 thickness(steps_a + 1) = 0;
66 eps_theta_1(steps_a + 1) = 0;
67 thicknessRing(steps_a + 1) = 0;
68 delta(steps_a + 1) = 0;
69 i = 1;
70 dalpha = (alphaMAX - alphaMin) / steps_a;
71 for alpha = alphaMin : dalpha : alphaMAX
72 for phi = phi_0 : (alpha - phi_0) / steps : alpha
73 fun_sigmaE = @(s) ( ( (N_phi_s(phi, s)/ s) ^ 2 + (N_theta_s(phi, s)/ s)
^ 2 - N_phi_s(phi, s) * N_theta_s(phi, s) / s ^ 2 ) - sigmaA ^ 2 );
74 thickness(i) = max([thickness(i), fzero(fun_sigmaE, [.001 1000])]);
75 end
76 H = -N_phi_s(alpha, thickness(i)) * cos(alpha * pi / 180);
77 eps_theta_1(i) = 1 / (E * thickness(i)) * (N_theta_s(alpha, thickness(i)) -
ni * N_phi_s(alpha, thickness(i)));
78 thicknessRing(i) = H / (E * eps_theta_1(i));
79 delta(i) = max([R * (1 / (1 - H / thicknessRing(i) / (1.2 * sigmaY)) - 1),
R * (sqrt(16 * H / thicknessRing(i) / E) / (1 - .5 * sqrt(16 * H / thicknessRing(i) /
E)))]);
80 i = i + 1;
81 end
82 s = max(thickness)
83
84 % Forces and stresses
85 N_phi = @(phi) N_phi_s(phi, s);
86 N_theta = @(phi) N_theta_s(phi, s);
87 sigma_phi = @(phi) (N_phi(phi) / s);
88 sigma_theta = @(phi) (N_theta(phi) / s);
89 sigmaE = @(phi) sigmaE_s(phi, s);
90
91 % Constraint check
92 N_phi_halfPi = N_phi(90)
93 V = gamma * R * cos(phi_0 * pi / 180) * s + P * sin(phi_0 * pi / 180)
94
95 % Plot
96 figure;
97 hold on
98 fplot(N_phi, [phi_0 alpha], '-b');
99 fplot(N_theta, [phi_0 alpha], '-r');
100 grid on;
101 xlabel('\phi []', 'FontWeight','bold');
102 ylabel('N_\phi, N_\theta [N/mm]','FontWeight','bold');
103 legend('N_\phi', 'N_\theta');
104 title(['Ex. 3 - N_\phi, N_\theta[MPa], s = ', num2str(s), 'mm'],
'FontWeight','bold');
105 hold off
106
107 figure;
108 hold on
109 fplot(sigma_phi, [phi_0 alpha], '-b');
110 fplot(sigma_theta, [phi_0 alpha], '-r');
111 fplot(sigmaE, [phi_0 alpha], '-g');
112 grid on;
113 xlabel('\phi', 'FontWeight','bold');
114 ylabel('\sigma_\phi, \sigma_\theta, \sigma_e [MPa]','FontWeight','bold');
115 legend('\sigma_\phi', '\sigma_\theta', '\sigma_e');
116 title(['Ex. 3 - \sigma_\phi, \sigma_\theta, \sigma_e, s = ', num2str(s), 'mm'],
'FontWeight','bold');
117 hold off
118
119 figure;
120 hold on
121 plot((alphaMin : dalpha : alphaMAX), thickness, '-b', (alphaMin : dalpha :
20/02/14 20.34 D:\MatLab_Files\CM\CM_Ex_3.m 3 of 6

alphaMAX), thicknessRing, '-r');


122 grid on;
123 xlabel('\alpha', 'FontWeight','bold');
124 ylabel('s, s_{ring} [mm]','FontWeight','bold');
125 legend('s', 's_{ring}');
126 title('Ex. 3 - s, s_{ring} vs alpha', 'FontWeight','bold');
127 hold off
128
129 figure;
130 hold on
131 plot((alphaMin : dalpha : alphaMAX), delta, '-b');
132 grid on;
133 xlabel('\alpha', 'FontWeight','bold');
134 ylabel('\delta_{ring} [mm]','FontWeight','bold');
135 legend('\delta_{ring}');
136 title('Ex. 3 - \delta_{ring} vs alpha', 'FontWeight','bold');
137 hold off
138
139 else % opening == 0
140 % Functions of sin(phi), cos(phi)
141 fun_a = @(phi) (1 / (1 + cos(phi * pi / 180)));
142 fun_b = @(phi, alpha) ( 1 / (1 - (90 / alpha) ^ 2) * (1 - cos(phi * pi / 180) *
cos(90 / alpha * phi * pi / 180) - 90 / alpha * sin(phi * pi / 180) * sin(90 / alpha *
phi * pi / 180)) / ((sin(phi * pi / 180)) ^ 2) );
143 fun_c = @(phi) (fun_a(phi) - cos(phi * pi / 180));
144 fun_d = @(phi, alpha) (fun_b(phi, alpha) - cos(90 / alpha * phi * pi / 180) *
cos(phi * pi / 180));
145 alpha = 40;
146 fun_b_phi = @(phi) fun_b(phi, alpha);
147 fun_d_phi = @(phi) fun_d(phi, alpha);
148 figure;
149 hold on
150 fplot(fun_a, [0 alpha], '-b')
151 fplot(fun_b_phi, [0 alpha], '-r')
152 fplot(fun_c, [0 alpha], '-g')
153 fplot(fun_d_phi, [0 alpha], '-c')
154 grid on;
155 xlabel('\phi []', 'FontWeight','bold');
156 ylabel('fun_a, fun_b, fun_c, fun_d','FontWeight','bold');
157 legend('fun_a', 'fun_b', 'fun_c', 'fun_d');
158 title('Ex. 3 - fun_a(\phi), fun_b(\phi), fun_c(\phi), fun_d(\phi)',
'FontWeight','bold');
159 hold off
160
161
162 % Shell and ring thicknesses
163 thickness(steps_a + 1) = 0;
164 eps_theta_1(steps_a + 1) = 0;
165 thicknessRing(steps_a + 1) = 0;
166 delta(steps_a + 1) = 0;
167 i = 1;
168 dalpha = (alphaMAX - alphaMin) / steps_a;
169 for alpha = alphaMin : dalpha : alphaMAX
170 for phi = alpha / steps : alpha / steps : alpha
171 fun_sigmaE = @(s) ( (N_phi_s_b(phi, alpha, s)/ s) ^ 2 + (N_theta_s_b
(phi, alpha, s)/ s) ^ 2 - N_phi_s_b(phi, alpha, s) * N_theta_s_b(phi, alpha, s) / s ^ 2
- sigmaA ^ 2 );
172 thickness(i) = max([thickness(i), fzero(fun_sigmaE, [.001 1000])]);
173
174 end
175 H = -N_phi_s_b(alpha, alpha, thickness(i)) * cos(alpha * pi / 180);
176 eps_theta_1(i) = 1 / (E * thickness(i)) * (N_theta_s_b(alpha, alpha,
thickness(i)) - ni * N_phi_s_b(alpha, alpha, thickness(i)));
177 thicknessRing(i) = H / (E * eps_theta_1(i));
178 delta(i) = max([R * (1 / (1 - H / thicknessRing(i) / (1.2 * sigmaY)) - 1),
20/02/14 20.34 D:\MatLab_Files\CM\CM_Ex_3.m 4 of 6

R * (sqrt(16 * H / thicknessRing(i) / E) / (1 - .5 * sqrt(16 * H / thicknessRing(i) /


E)))]);
179 i = i + 1;
180 end
181
182 % Forces and stresses
183 sigmaE_s = @(phi, alpha, s) sqrt( (N_phi_s_b(phi, alpha, s)/ s) ^ 2 +
(N_theta_s_b(phi, alpha, s)/ s) ^ 2 - N_phi_s_b(phi, alpha, s) * N_theta_s_b(phi,
alpha, s) / s ^ 2 );
184
185 s_1 = 0;
186 alpha_1 = 90;
187 for phi = alpha_1 / steps : alpha_1 / steps : alpha_1
188 fun_sigmaE = @(s) ( (N_phi_s_b(phi, alpha_1, s)/ s) ^ 2 + (N_theta_s_b(phi,
alpha_1, s)/ s) ^ 2 - N_phi_s_b(phi, alpha_1, s) * N_theta_s_b(phi, alpha_1, s) / s ^ 2
- sigmaA ^ 2 );
189 s_1 = max([s_1, fzero(fun_sigmaE, [.001 1000])]);
190 end
191 N_phi_1 = @(phi) N_phi_s_b(phi, alpha_1, s_1);
192 N_theta_1 = @(phi) N_theta_s_b(phi, alpha_1, s_1);
193 sigma_phi_1 = @(phi) (N_phi_1(phi) / s_1);
194 sigma_theta_1 = @(phi) (N_theta_1(phi) / s_1);
195 sigmaE_1 = @(phi) sigmaE_s(phi, alpha_1, s_1);
196
197 s_2 = 0;
198 alpha_2 = 40;
199 for phi = alpha_2 / steps : alpha_2 / steps : alpha_2
200 fun_sigmaE = @(s) ( (N_phi_s_b(phi, alpha_2, s)/ s) ^ 2 + (N_theta_s_b(phi,
alpha_2, s)/ s) ^ 2 - N_phi_s_b(phi, alpha_2, s) * N_theta_s_b(phi, alpha_2, s) / s ^ 2
- sigmaA ^ 2 );
201 s_2 = max([s_2, fzero(fun_sigmaE, [.001 1000])]);
202 end
203 N_phi_2 = @(phi) N_phi_s_b(phi, alpha_2, s_2);
204 N_theta_2 = @(phi) N_theta_s_b(phi, alpha_2, s_2);
205 sigma_phi_2 = @(phi) (N_phi_2(phi) / s_2);
206 sigma_theta_2 = @(phi) (N_theta_2(phi) / s_2);
207 sigmaE_2 = @(phi) sqrt(sigma_phi_2(phi) ^ 2 + sigma_theta_2(phi) ^ 2 -
sigma_phi_2(phi) * sigma_theta_2(phi));
208
209 s_3 = 0;
210 alpha_3 = 120;
211 for phi = alpha_3 / steps : alpha_3 / steps : alpha_3
212 fun_sigmaE = @(s) ( (N_phi_s_b(phi, alpha_3, s)/ s) ^ 2 + (N_theta_s_b(phi,
alpha_3, s)/ s) ^ 2 - N_phi_s_b(phi, alpha_3, s) * N_theta_s_b(phi, alpha_3, s) / s ^ 2
- sigmaA ^ 2 );
213 s_3 = max([s_3, fzero(fun_sigmaE, [.001 1000])]);
214 end
215 N_phi_3 = @(phi) N_phi_s_b(phi, alpha_3, s_3);
216 N_theta_3 = @(phi) N_theta_s_b(phi, alpha_3, s_3);
217 sigma_phi_3 = @(phi) (N_phi_3(phi) / s_3);
218 sigma_theta_3 = @(phi) (N_theta_3(phi) / s_3);
219 sigmaE_3 = @(phi) sigmaE_s(phi, alpha_3, s_3);
220
221 % Constraint check
222 % N_phi_halfPi = N_phi(90)
223 % V = gamma * R * cos(phi_0 * pi / 180) * s + P * sin(phi_0 * pi / 180)
224
225 % Plot
226 figure;
227 hold on
228 fplot(N_phi_1, [0 alpha_1], '-b');
229 fplot(N_theta_1, [0 alpha_1], '-r');
230 fplot(N_phi_2, [0 alpha_2], ':b');
231 fplot(N_theta_2, [0 alpha_2], ':r');
232 fplot(N_phi_3, [0 alpha_3], '--b');
20/02/14 20.34 D:\MatLab_Files\CM\CM_Ex_3.m 5 of 6

233 fplot(N_theta_3, [0 alpha_3], '--r');


234 grid on;
235 xlabel('\phi []', 'FontWeight','bold');
236 ylabel('N_\phi, N_\theta, [MPa]','FontWeight','bold');
237 legend(['N_\phi, \alpha = ', num2str(alpha_1), ', s = ', num2str(s_1,3), '
mm'],...
238 ['N_\theta, \alpha = ', num2str(alpha_1), ', s = ', num2str(s_1,3), '
mm'],...
239 ['N_\phi, \alpha = ', num2str(alpha_2), ', s = ', num2str(s_2,3), '
mm'],...
240 ['N_\theta, \alpha = ', num2str(alpha_2), ', s = ', num2str(s_2,3), '
mm'],...
241 ['N_\phi, \alpha = ', num2str(alpha_3), ', s = ', num2str(s_3,3), '
mm'],...
242 ['N_\theta, \alpha = ', num2str(alpha_3), ', s = ', num2str(s_3,3), '
mm']);
243 title('Ex. 3 - N_\phi, N_\theta [MPa]', 'FontWeight','bold');
244 hold off
245
246 figure;
247 hold on
248 fplot(sigma_phi_1, [0 alpha_1], '-b');
249 fplot(sigma_theta_1, [0 alpha_1], '-r');
250 fplot(sigmaE_1, [0 alpha_1], '-g');
251 fplot(sigma_phi_2, [0 alpha_2], ':b');
252 fplot(sigma_theta_2, [0 alpha_2], ':r');
253 fplot(sigmaE_2, [0 alpha_2], ':g');
254 fplot(sigma_phi_3, [0 alpha_3], '--b');
255 fplot(sigma_theta_3, [0 alpha_3], '--r');
256 fplot(sigmaE_3, [0 alpha_3], '--g');
257 grid on;
258 xlabel('\phi []', 'FontWeight','bold');
259 ylabel('\sigma_\phi, \sigma_\theta, \sigma_e [MPa]','FontWeight','bold');
260 legend(['\sigma_\phi, \alpha = ', num2str(alpha_1), ', s = ', num2str(s_1,3),
' mm'],...
261 '\sigma_\theta',...
262 '\sigma_e',...
263 ['\sigma_\phi, \alpha = ', num2str(alpha_2), ', s = ', num2str(s_2,3),
' mm'],...
264 '\sigma_\theta',...
265 '\sigma_e',...
266 ['\sigma_\phi, \alpha = ', num2str(alpha_3), ', s = ', num2str(s_3,3),
' mm'],...
267 '\sigma_\theta',...
268 '\sigma_e');
269 title('Ex. 3 - \sigma_\phi, \sigma_\theta, \sigma_e [MPa]',
'FontWeight','bold');
270 hold off
271
272 figure;
273 hold on
274 plot((alphaMin : dalpha : alphaMAX), thickness, '-b');
275 grid on;
276 xlabel('\alpha', 'FontWeight','bold');
277 ylabel('s [mm]','FontWeight','bold');
278 legend('s');
279 title('Ex. 3 - s vs alpha', 'FontWeight','bold');
280 hold off
281
282 figure;
283 hold on
284 plot((alphaMin : dalpha : alphaMAX), thickness, '-b', (alphaMin : dalpha :
alphaMAX), thicknessRing, '-r');
285 grid on;
286 xlabel('\alpha', 'FontWeight','bold');
20/02/14 20.34 D:\MatLab_Files\CM\CM_Ex_3.m 6 of 6

287 ylabel('s, s_{ring} [mm]','FontWeight','bold');


288 legend('s', 's_{ring}');
289 title('Ex. 3 - s, s_{ring} vs alpha', 'FontWeight','bold');
290 hold off
291
292 figure;
293 hold on
294 plot((alphaMin : dalpha : alphaMAX), delta, '-b');
295 grid on;
296 xlabel('\alpha', 'FontWeight','bold');
297 ylabel('\delta_{ring} [mm]','FontWeight','bold');
298 legend('\delta_{ring}');
299 title('Ex. 3 - \delta_{ring} vs alpha', 'FontWeight','bold');
300 hold off
301 end
20/02/14 20.34 D:\MatLab_Files\CM\N_phi_s_b.m 1 of 1

1 function N_phi = N_phi_s_b(phi, alpha, s)


2 % Global variables
3 global R; global gamma; global gammaSnow; global sSnow;
4 fun_a = @(phi) (1 / (1 + cos(phi * pi / 180)));
5 fun_b = @(phi, alpha) ( 1 / (1 - (90 / alpha) ^ 2) * (1 - cos(phi * pi / 180) *
cos(90 / alpha * phi * pi / 180) - 90 / alpha * sin(phi * pi / 180) * sin(90 / alpha *
phi * pi / 180)) / ((sin(phi * pi / 180)) ^ 2) );
6 if alpha < 90
7 N_phi = - gamma * s * R * fun_a(phi) - gammaSnow * sSnow * R * fun_b(phi,
alpha);
8 else
9 N_phi = - gamma * s * R * fun_a(phi) - gammaSnow * sSnow * R / (2 * ( (phi
<= 90).* 1 + (phi > 90).* (sin(phi * pi / 180))^2 ));
10 end
11 end
20/02/14 20.34 D:\MatLab_Files\CM\N_theta_s_b.m 1 of 1

1 function N_theta = N_theta_s_b(phi, alpha, s)


2 % Global variables
3 global R; global gamma; global gammaSnow; global sSnow;
4 fun_a = @(phi) (1 / (1 + cos(phi * pi / 180)));
5 fun_b = @(phi, alpha) ( 1 / (1 - (90 / alpha) ^ 2) * (1 - cos(phi * pi / 180) *
cos(90 / alpha * phi * pi / 180) - 90 / alpha * sin(phi * pi / 180) * sin(90 / alpha *
phi * pi / 180)) / ((sin(phi * pi / 180)) ^ 2) );
6 fun_c = @(phi) (fun_a(phi) - cos(phi * pi / 180));
7 fun_d = @(phi, alpha) (fun_b(phi, alpha) - cos(90 / alpha * phi * pi / 180) *
cos(phi * pi / 180));
8 if alpha < 90
9 N_theta = gamma * s * R * fun_c(phi) + gammaSnow * sSnow * R * fun_d(phi,
alpha);
10 else
11 N_theta = gamma * s * R * fun_c(phi) + gammaSnow * sSnow * R * ( (phi <=
90).*(.5 - (cos(phi * pi / 180))^2) + (phi > 90).*(1 / (2 *(sin(phi * pi / 180))^2))
);
12 end
13 end

Potrebbero piacerti anche