Sommario v
1 Introduzione 1
1.1 Inquadramento generale della tesi . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Software libero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Struttura della tesi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
i
ii Indice
10 Conclusioni 147
Bibliografia 157
iv Indice
Sommario
Abstract
The study of the transonic flutter mechanism has been for a long time a very active and fruitful
research field in Computational Aeroelasticity (CA), since a sudden and significant drop of
flutter velocity is experienced in the transonic regime, also known as transonic dip.
With the advent of more powerful computers and more efficient algorithms, it is nowa-
days possible to choose the more accurate mathematical models and numerical methods of
Computational Fluid Dynamics (CFD), rather than the often unreliable in the transonic regime
classical aeroelastic analysis tools.
The main challenge of this thesis work is to show that a toolbox of procedures similar to
that presented in [9] to effectively solve transonic aeroelastic problems in a research or industrial
environment can be built using only free software. For instance the free finite element (FEM)
structural solver Code Aster is coupled with the free finite volume (FV) aerodynamic solver
OpenFOAM. In order to assess the accuracy of the implemented toolbox, the classical aeroelastic
test problem of computing the flutter boundary for AGARD 445.6 wing is eventually tackled.
v
Capitolo 1
Introduzione
Come descritto in §1.1, fino ad oggi la soluzione di problemi aeroelastici di interesse accade-
mico ed industriale in regime di moto transonico è stata affrontata nell’ambito dell’aeroelasti-
cità computazionale accoppiando strumenti commerciali consolidati per l’analisi strutturale ed
aerodinamica, quali rispettivamente MSC.Nastran e FLUENT.
L’obiettivo di questo lavoro di tesi consiste nel dimostrare che è possibile costruire un toolbox
analogo, utilizzando esclusivamente strumenti di analisi liberi secondo la filosofia presentata in
§1.2, quali rispettivamente Code Aster e OpenFOAM.
1
2 Introduzione
Interfaccia Aeroelastica
Interpolazione composita
Solutore Aeroelastico
Figura 1.1: Schema a blocchi della struttura del toolbox di analisi aeroelastica costruito utilizzando
esclusivamente software liberi.
Libertà 2: libertà di redistribuire copie del programma in modo tale da aiutare il prossimo: più
in particolare, oltre al codice sorgente devono essere forniti pacchetti binari precompilati;
Figura 1.2: Simbolo della Free Software Foundation (FSF) (sinistra) e del progetto collaborativo
GNU/Linux (destra).
Tuttavia la parola libero non implica la possibilità di utilizzare il software in maniera in-
discriminata, ma esso è soggetto ad una licenza d’uso studiata opportunamente per favorire
la condivisione del sapere senza espropriare gli autori della proprietà intellettuale (ad esempio
gli autori originali o copyright holders devono essere sempre menzionati in tutte le versioni
modificate e successivamente distribuite del programma).
La maggiore parte del software libero è distribuito secondo la licenza GNU General Public
License (GPL) [29], scritta da R. Stallman e E. Moglen nel 1985 per garantire legalmente a tutti
gli utenti le quattro libertà fondamentali: tale licenza è considerata molto restrittiva, poichè
impone che ogni applicazione derivata sia a sua volta distribuita con la medesima licenza. In
alternativa esiste una versione meno restrittiva chiamata GNU Lesser General Public License
(LGPL) che consente di utilizzare il programma anche nell’ambito di software proprietari.
Secondo i sostenitori del software libero, esso presenta numerosi vantaggi rispetto al software
proprietario: grazie alla disponibilità del codice sorgente, è infatti possibile adattare in modo
flessibile il programma alle particolari esigenze dell’utente; inoltre dal momento che il codice
sorgente è sottoposto alla continua revisione di una base di utenti molto ampia, è possibile velo-
cizzare notevolmente il processo di individuazione e corrrezione degli errori e di ottimizzazione
dell’efficienza di calcolo. Tuttavia è innegabile che esistano anche limitazioni e svantaggi rispet-
to al software proprietario, ad esempio la documentazione eventualmente disponibile è spesso
incompleta o non aggiornata.
Come sottolineato nella GNU General Public License (GPL) [29], i programmi liberamente
disponibili in rete sono forniti as is ed at your own risk, ovvero senza nessuna garanzia relati-
vamente alle prestazioni ed alla qualità dei risultati. Di conseguenza è innanzitutto fondamen-
tale verificarne l’efficienza e l’accuratezza affrontando alcuni problemi di verifica di complessità
crescente e confrontando i risultati con quelli ottenuti mediante gli analoghi programmi com-
merciali. Nel Capitolo 4 è cosı̀ possibile osservare che il solutore strutturale libero Code Aster è
del tutto paragonabile al solutore strutturale commerciale MSC.Nastran.
Dopo avere presentato più in dettaglio il problema aerodinamico, nel Capitolo 5 le ca-
ratteristiche e le potenzialità fondamentali del solutore aerodinamico libero OpenFOAM sono
confrontate con quelle del solutore aerodinamico commerciale FLUENT; analogamente sono illu-
strati il funzionamento del generatore di griglie libero Gmsh e del post–processore ParaView con
riferimento rispettivamente al generatore di griglie commerciale Gambit ed al post–processore
commerciale Tecplot.
Tuttavia è possibile osservare che il solutore aerodinamico libero OpenFOAM non è del tutto
soddisfacente per affrontare problemi aerodinamici impegnativi in regime di moto transonico e
supersonico; di conseguenza nel Capitolo 6.8.1 è descritta l’implementazione in linguaggio C++
di un nuovo solutore aerodinamico chiamato AeroFoam, che utilizza le librerie del programma
OpenFOAM per la gestione delle strutture dati relative alla griglia di calcolo ed alla soluzione
numerica e per le fasi di pre/post–processing.
Il solutore aerodinamico sviluppato AeroFoam è quindi messo alla prova nel Capitolo 7,
affrontando alcuni problemi di verifica di complessità crescente ed in un campo il più ampio
possibile di regimi di moto, con riferimento ai risultati numerici ottenuti mediante il solutore
aerodinamico commerciale FLUENT.
Successivamente nel Capitolo 8 è affrontato il problema di come costruire uno schema di in-
terfaccia aeroelastica robusto e flessibile che consenta di realizzare praticamente la connessione
ad anello chiuso tra il sistema strutturale ed il sistema aerodinamico; inoltre è presentata l’im-
plementazione numerica delle condizioni al contorno di traspirazione in modo tale da riprodurre
gli effetti geometrici e cinematici del movimento del contorno senza effettivamente deformare la
griglia di calcolo.
Dopo avere opportunamente verificato il corretto funzionamento dei singoli strumenti del
toolbox, nel Capitolo 9 è infine affrontato il tipico problema di verifica aeroelastico in regime di
moto transonico dell’ala AGARD 445.6, confrontando i risultati numerici ottenuti con i risultati
sperimentali e numerici disponibili in Letteratura.
Scritto in LATEX
6 Introduzione
Capitolo 2
In questo Capitolo, dopo avere fornito un inquadramento generale del problema aeroelastico
in §2.1, sono descritti più in dettaglio il sistema strutturale ed il sistema aerodinamico rispet-
tivamente in §2.2 e §2.3, soffermandosi in particolare sullo studio dei modelli matematici e dei
metodi numerici che è opportuno utilizzare per la soluzione del problema aerodinamico in regime
di moto transonico.
L’interazione ad anello chiuso tra il sistema strutturale ed il sistema aerodinamico, oppor-
tunamente connessi tra loro mediante lo schema di interfaccia presentato in §2.4, costituisce il
nucleo fondamentale del sistema aeroelastico, le cui equazioni di governo sono ricavate in §2.5
nel dominio del tempo e delle frequenze.
Infine in §2.6 si sofferma l’attenzione sul fenomeno aeroelastico più caratteristico, ovvero
il flutter, e sono presentati i metodi numerici consolidati per la soluzione di tale problema nel
dominio delle frequenze (aeroelasticità classica) e del tempo (aeroelasticità moderna).
7
8 Analisi del problema aeroelastico
Il fenomeno aeroelastico più caratteristico è il flutter, che dal punto di vista fisico corrisponde
all’insorgere di oscillazioni autoeccitate divergenti dalle conseguenze spesso catastrofiche, men-
tre dal punto di vista matematico corrisponde alla condizione limite di stabilità dinamica del
sistema aeroelastico tempo-invariante linearizzato per piccoli spostamenti nell’intorno di una
condizione di equilibrio di riferimento. Data la pericolosità di tale fenomeno per l’integrità della
struttura, è opportuno analizzare le proprietà di stabilità in piccolo del sistema aeroelastico
al variare di parametri che definiscono la condizione di volo di riferimento, quale ad esempio il
numero di Mach M∞ e la pressione dinamica q∞ .
Solo dopo avere svolto l’analisi di stabilità dinamica del sistema aeroelastico (in realtà del
solo sistema strutturale, mentre è possibile osservare sperimentalmente che il sistema aerodina-
mico non si instabilizza mai almeno per intervalli di tempo di lunghezza significativa dal punto
di vista ingegneristico) è possibile affrontare i problemi di risposta, quali lo studio dei carichi
da raffica e da manovra [5].
Nonostante la natura intrinsecamente multidisciplinare del problema aeroelastico, può risul-
tare ancora conveniente studiare separatamente il sistema strutturale ed il sistema aerodinamico,
delegando successivamente allo schema di interfaccia il compito di interconnetterli in modo fles-
sibile: cosı̀ facendo è infatti possibile continuare ad utilizzare i modelli matematici ed i metodi
numerici consolidati ed ormai tipici di ciascuna disciplina [11].
dove la funzione di forma N i (x), dipendente unicamente dalla variabile spaziale x e scelta a
priori, è l’i-esimo termine di uno sviluppo completo e rispettoso delle condizioni al contorno
essenziali, mentre la coordinata libera qi (t), dipendente unicamente dalla variabile temporale t,
è l’i-esimo spostamento generalizzato incognito del problema [15, 27].
Il sistema strutturale 9
Tale tecnica di separazione delle variabili permette di passare da un sistema di equazioni dif-
ferenziali alle derivate parziali (PDE) al seguente sistema di equazioni differenziali alle derivate
ordinarie (ODE):
[ M ] {q̈} + [ C ] {q̇} + [ K ] {q} = {Q} , (2.2)
dove [ M ], [ C ] e [ K ] ∈ RNs ×Ns sono rispettivamente le matrici di massa, smorzamento e
rigidezza generalizzati e {Q(t)} è il vettore delle forze esterne generalizzate. Nel caso di problemi
aeroelastici esso corrisponde al vettore delle forze aerodinamiche generalizzate o Generalized
Aerodynamic Forces (GAF), costruito proiettando i carichi aerodinamici sulle funzioni di forma
strutturali nel seguente modo:
I
a
{Q (t)} = [ N (x) ]T f a (x, t) dS, (2.3)
S
dove f a (x, t) è il campo delle forze aerodinamiche per unità di superficie dS. Nell’ambito della
aeroelasticità classica esiste un insieme di metodi numerici consolidati per calcolare i carichi
aerodinamici in modo relativamente semplice direttamente nel dominio delle frequenze; può
essere dunque utile riscrivere il problema strutturale (2.2) nel dominio di Laplace come:
s2 [ M ] + s [ C ] + [ K ] {q} = {Q} , (2.4)
dove {q(s)} e {Q(s)} sono rispettivamente le trasformate di Laplace del vettore degli spostamenti
generalizzati e delle forze esterne generalizzate.
Per risolvere numericamente il problema strutturale lo sviluppo completo delle funzioni di
forma (2.1) deve essere opportunamente specificato ed in seguito troncato ad un numero finito
di termini, pari al numero di gradi di libertà strutturali Ns , scelto in funzione del grado di
accuratezza desiderato e delle caratteristiche di convergenza delle funzioni di forma. Più in
particolare è possibile distinguere le seguenti strategie risolutive:
- Innanzitutto è possibile scegliere come termini dello sviluppo completo le funzioni di base
polinomiali lagrangiane a supporto compatto del metodo degli elementi finiti (FEM),
come descritto in §3.1.1: in questo caso le coordinate libere del problema corrispondono
agli spostamenti strutturali valutati in corrispondenza dei nodi della griglia di calcolo,
convenzionalmente indicati come {us (t)}. Tuttavia il numero di gradi di libertà strutturali
che è necessario utilizzare per garantire una buona accuratezza della soluzione numerica
è in generale molto elevato.
- In alternativa e specialmente nelle prime fasi di progetto, è possibile scegliere come termini
dello sviluppo completo i modi propri della struttura, come descritto in §3.1.2. La scelta
di tali funzioni di forma globali consente di condensare significativamente le dimensioni del
problema, rappresentando correttamente la soluzione anche con relativamente pochi ter-
mini dello sviluppo completo. Inoltre, grazie alle proprietà di ortogonalità dei modi propri,
le matrici di massa e rigidezza generalizzate [ M ] e [ K ] sono diagonali; un discorso ana-
logo vale anche per la matrice di smorzamento generalizzato [ C ] nel caso in cui si adotti
un modello proporzionale, energeticamente equivalente alla reale dinamica (non lineare)
dello smorzamento strutturale. Un ulteriore vantaggio della scelta di una base modale
consiste nella possibilità di aggiungere od eliminare (e residualizzare) facilmente i modi
rigidi associati alle superfici di comando. Infine è possibile validare e tarare tale model-
lo strutturale confrontandolo con i risultati delle prove di vibrazione a terra o Ground
Vibration Test (GVT).
replacemen
10 Analisi del problema aeroelastico
{F as } {us } , {u̇s }
FEM
E
Modi propri
Base ibrida
Figura 2.2: Schematizzazione del sistema strutturale mediante il legame ingresso-uscita come nell’ambito
della teoria dei sistemi. Pensando ad una discretizzazione ad elementi finiti (FEM) del problema, il blocco
E riceve in ingresso il vettore delle risultanti delle forze aerodinamiche agenti sui nodi strutturali {F as (t)}
e restituisce in uscita il vettore degli spostamenti e delle velocità dei nodi strutturali {us (t)} ed {u̇s (t)}.
- Tuttavia i modi propri non garantiscono una rapida convergenza della soluzione numerica
in presenza di carichi concentrati, a meno di utilizzare un numero elevato di termini dello
sviluppo oppure il metodo dei modi di accelerazione: si preferisce allora estendere la base
modale aggiungendo opportune deformate statiche. La scelta di una base ibridizzata com-
porta che le matrici di massa, smorzamento (se proporzionale) e rigidezza generalizzati
[ M ], [ C ] e [ K ] non siano più diagonali, fatto che comunque non costituisce una pena-
lizzazione significativa: infatti il vantaggio principale della condensazione modale non è
tanto quello di diagonalizzare le matrici del problema, ma la capacità di fornire un mo-
dello strutturale efficiente (fondamentale anche per l’eventuale progettazione di sistemi di
controllo attivo).
- Il limite inferiore del regime di moto transonico è il numero di Mach critico inferiore
M∞, cr , definito come quel numero di Mach della corrente asintotica tale per cui, in seguito
all’espansione della corrente sul dorso del profilo alare, si raggiungono in un punto P in
prossimità dell’ascissa di massimo spessore condizioni localmente soniche ovvero MP = 1.
tsIl sistema aerodinamico 11
000000000000000
111111111111111 111111111111111
000000000000000 111111111111111
000000000000000
000000000000000
111111111111111 000000000000000
111111111111111
000000000000000
111111111111111
M <1 000000000000000
111111111111111
000000000000000
111111111111111
Figura 2.3: Evoluzione qualitativa del campo di moto transonico attorno ad un profilo alare non
simmetrico, all’aumentare del numero di Mach della corrente asintotica M∞ .
Ovviamente tale valore dipende fortemente dalla forma del corpo e dall’angolo di incidenza
e qualitativamente tende a diminuire al crescere dello spessore massimo del profilo alare
e dell’angolo di incidenza.
- Per M∞ > M∞, cr , in corrispondenza del punto P si inizia a formare una regione local-
mente supersonica, immersa in una corrente subsonica e delimitata da una linea sonica,
chiamata bolla supersonica. Le onde di espansione che si generano lungo il tratto accele-
rante del dorso del profilo alare si riflettono sulla linea sonica (a pressione costante) come
onde di compressione tra loro convergenti, che possono eventualmente coalescere prima di
raggiungere la superficie del corpo e formare un’onda d’urto.
- Al crescere ulteriormente di M∞ l’estensione della bolla supersonica sul dorso aumenta,
l’onda d’urto corrispondente si intensifica e si sposta verso valle. Contemporaneamente
anche sul ventre inizia a formarsi una bolla supersonica e si sviluppa rapidamente fino a che
la relativa onda d’urto si posiziona in corrispondenza del bordo d’uscita del profilo alare.
Se in precedenza le ipotesi di omoentropicità ed irrotazionalità della corrente si potevano
ancora ritenere soddisfatte in modo approssimato, quando l’intensità e la curvatura delle
onde d’urto divengono significative esse cadono definitivamente.
- Infine per M∞ > 1 la topologia della corrente cambia radicalmente: a monte del profilo
alare si forma infatti un urto curvo staccato a valle del quale il flusso è subsonico, mentre
è supersonico in tutto il resto del campo di moto. Al crescere ulteriormente di M∞ la
regione subsonica si riduce progressivamente di dimensioni, ma senza scomparire del tutto
a meno che il bordo d’attacco del profilo alare sia affilato. Contrariamente a quanto visto
in precedenza, non esiste un’altrettanto chiara definizione del limite superiore del regime
di moto transonico.
Di conseguenza il principale tratto distintivo del regime di moto transonico consiste nel-
la presenza simultanea all’interno del campo di moto attorno al velivolo di regioni localmente
subsoniche e regioni localmente supersoniche (all’interno delle quali cambiano le proprietà ma-
tematiche delle equazioni di governo, rispettivamente ellittiche ed iperboliche), eventualmente
separate da fenomeni irreversibili quali onde d’urto.
Il campo di moto è reso ulteriormente complesso da fenomeni fortemente non lineari, quali
l’interazione dell’onda d’urto con lo strato limite o con il movimento strutturale. Ad esempio
l’onda d’urto può favorire la transizione al regime di moto turbolento o addirittura la sepa-
razione dello strato limite, che può assumere carattere non stazionario ed indurre oscillazioni
significative sul sistema strutturale (buffeting); inoltre tale fenomeno può accoppiarsi con il mo-
vimento strutturale e produrre fenomeni di instabilità del sistema aeroelastico, come ad esempio
oscillazioni significative delle superfici di controllo (aileron buzz ).
12 Analisi del problema aeroelastico
dove ρ(x, t), v(x, t) e E t (x, t) sono la densità, la velocità e l’energia totale specifica per
unità di volume, P (x, t), τ (x, t) e q(x, t) sono la pressione termodinamica, il tensore degli
sforzi viscosi e la potenza ceduta per conduzione termica ed infine [ I ] ∈ RNd ×Nd è la
matrice identità.
Affinché il problema (2.5) sia chiuso è necessario specificare l’equazione di stato per la pres-
sione termodinamica P (x, t) e le leggi costitutive per il tensore degli sforzi viscosi τ (x, t)
e per la potenza ceduta per conduzione termica q(x, t). Ipotizzando di approssimare il
comportamento dell’aria mediante il modello termodinamico di gas ideale politropico, ov-
vero a composizione costante e caratterizzato da un rapporto costante γ = CP /CV tra
i calori specifici a pressione e volume costanti, l’equazione di stato assume la seguente
forma molto semplice:
1
P = (γ − 1) E con E = Et − ρ |v|2 , (2.7)
2
dove E(x, t) è l’energia interna specifica per unità di volume. Alternativamente è possibile
adottare modelli termodinamici più complessi, ma validi in un intervallo di temperature
più ampio, quali i modelli di equilibrio e non equilibrio termochimico [17].
Il sistema aerodinamico 13
Adottando inoltre l’ipotesi di fluido newtoniano, per cui il tensore simmetrico degli sforzi
viscosi è proporzionale alla velocità di deformazione, e l’ipotesi di Fourier, per cui il flusso
termico è allineato con il gradiente della temperatura, è possibile scrivere:
µ h i
τ = (∇ ⊗ v) + (∇ ⊗ v)T + λ ∇ · v [ I ] e q = −κ ∇T, (2.8)
2
dove µ(T ), λ(T ) e κ(T ) sono rispettivamente i coefficienti di viscosità dinamica, viscosità
di volume e conduzione termica.
Affinché il problema (2.5) sia ben posto è necessario assegnare opportune condizioni iniziali
e condizioni al contorno, definendo rispettivamente il valore assunto dalla soluzione in tutto
il dominio V all’istante iniziale t = 0 ovvero u(x, 0) = u0 (x) ed il valore assunto dalla
soluzione su tutto il contorno del dominio S = ∂V ad ogni istante di tempo t ∈ T ovvero
u(x ∈ S, t) = b(t). Ad esempio in corrispondenza di un contorno solido S b , quale la
superficie di un’ala investita da una corrente fluida, è necessario imporre la condizione al
contorno di perfetta adesione, ovvero l’annullamento della velocità locale a parete v|S b = 0.
Tale modello matematico fornisce risultati in buon accordo con i dati sperimentali per
correnti sia laminari che turbolente; in questo secondo caso, per risolvere in modo sod-
disfacente la dinamica del campo di moto caratterizzato da fluttuazioni delle variabili
fisiche anche su scale molto piccole, è fondamentale adottare una discretizzazione del do-
minio computazionale molto raffinata ad un costo computazionale ancora troppo elevato.
Per risolvere il problema si può allora pensare di applicare al sistema di equazioni (2.5)
l’operatore di media temporale locale nello spazio, ottenendo cosı̀ le equazioni Reynolds
Averaged Navier-Stokes (RANS). In tale formulazione le incognite del problema diventano
le variabili fisiche caratteristiche del moto medio della corrente, mentre gli effetti diffusivi
delle fluttuazioni turbolente sono raggruppati all’interno del tensore simmetrico degli sfor-
zi di Reynolds τ R (x, t), solo dimensionalmente assimilabile ad uno sforzo. Per esplicitare
le 6 componenti del tensore degli sforzi di Reynolds in funzione delle sole quantità medie
è possibile adottare vari modelli di differente complessità, a partire da semplici modelli
algebrici (ad esempio Mixing-Length), fino a modelli più complessi che aggiungono una o
più equazioni differenziali (ad esempio Spalart-Allmaras, κ − ω, RSM ) [1].
Equazioni di Eulero Nello studio delle correnti a numero di Reynolds Re elevato attorno a corpi
di forma aerodinamica è possibile considerare gli effetti dinamici della diffusione viscosa
e della conduzione termica confinati in uno strato sottile adiacente al corpo, detto strato
limite. Per risolvere il campo di moto all’esterno dello strato limite è possibile adottare
il modello semplificato di fluido non viscoso (µ = 0 e λ = 0) e non conducente (κ = 0);
tali ipotesi consentono di trascurare nelle equazioni di bilancio della quantità di moto
e dell’energia i contributi associati al tensore degli sforzi viscosi e della potenza ceduta
per conduzione termica. Il sistema di equazioni differenziali alle derivate parziali (PDE)
iperboliche e non lineari che governa la dinamica di una corrente comprimibile di fluido
ideale può essere scritto secondo un approccio euleriano in forma differenziale conservativa
nel seguente modo:
∂u
+ ∇ · f(u) = 0 ∀ (x, t) ∈ V × T , (2.9)
∂t
dove V ⊆ RNd e T ⊆ R+ sono il dominio spaziale e temporale del problema; il vettore
delle variabili conservative u(x, t) e dei flussi inviscidi f(u) sono sempre definiti nella
relazione (2.6).
14 Analisi del problema aeroelastico
∂Φ |v|2 c2 V2 c2
+ + = ∞+ ∞ . (2.11)
∂t 2 γ−1 2 γ −1
Il sistema aerodinamico 15
Affinché il problema (2.10) sia ben posto è necessario assegnare opportune condizioni
iniziali ed al contorno; ad esempio in corrispondenza di un contorno solido S b , quale la
superficie di un’ala investita da una corrente fluida, è necessario imporre la condizione
al contorno di non compenetrazione, ovvero l’annullamento del gradiente del potenziale
proiettato nella direzione normale al bordo (∇Φ · n b )|S b = 0. Nel caso di corpi portanti è
inoltre fondamentale ricordare che in corrispondenza del bordo d’uscita dell’ala si genera
una scia vorticosa S w di spessore infinitesimo sede di una discontinuità del potenziale ∆Φ.
Tale salto è successivamente trasportato convettivamente verso valle, come è possibile
dimostrare imponendo la condizione al contorno di scia scarica, ovvero ∆Cp |S w = 0.
dove la frequenza ridotta complessa p = sLa /V∞ = h + ik dipende dal valore della lunghezza
aerodinamica di riferimento La (spesso assunta pari a metà della corda media aerodinamica)
e della velocità di volo V∞ . È inoltre esplicitata la dipendenza funzionale della matrice delle
funzioni di trasferimento aerodinamiche dal numero di Mach M∞ e dal numero di Reynolds Re.
In realtà [ Ham (p) ] = [ Ham (ik) ] = [ Ham (k) ] è calcolata numericamente solo lungo l’asse
immaginario Im del campo complesso C ed è dunque necessario utilizzare opportuni metodi
numerici per estenderne la conoscenza a tutto il campo complesso.
Nell’ipotesi di sistema aerodinamico asintoticamente stabile (verificata sperimentalmente)
e di ingressi causali è possibile fornire una rappresentazione equivalente alla relazione (2.13)
nel dominio del tempo, scrivendo il vettore delle forze aerodinamiche generalizzate {Qa (t)}
come l’integrale di convoluzione della matrice delle risposte impulsive del sistema aerodinamico
[ ham (t) ] ∈ RNs ×Ns con il vettore degli spostamenti generalizzati {q(t)}, ovvero:
Z ∞
′ ′
{Qa (t)} = q∞ ham (t − t′ , M∞ , Re) q(t ) dt . (2.14)
0
Supponendo che il vettore dei gradi di libertà associati alle superfici di controllo {δ} sia
compreso all’interno del vettore degli spostamenti generalizzati {q}, le relazioni (2.13) ed (2.14)
consentono di modellare automaticamente anche il contributo dei carichi aerodinamici associato
al movimento dei comandi di volo.
Viceversa è comodo trattare separatamente la variazione non stazionaria dei carichi ae-
rodinamici rispetto ad una condizione di equilibrio di riferimento conseguente al movimento
dell’aria, che convenzionalmente è chiamato raffica oppure turbolenza rispettivamente nel caso
in cui esso sia modellato secondo un approccio deterministico oppure stocastico. Tale contri-
buto è di fondamentale importanza per la soluzione dei problemi di risposta e dunque per la
certificazione dei velivoli, dato che le normative correnti richiedono di considerare in fase di
progetto come condizioni di carico potenzialmente dimensionanti la risposta alla raffica ed alla
turbolenza. Come in precedenza è possibile scrivere il vettore delle forze aerodinamiche genera-
lizzate conseguenti al movimento dell’aria {Qg } in funzione del vettore delle velocità di raffica
oppure del vettore delle velocità di fluttuazione turbolenta valutate in corrispondenza dei nodi
aerodinamici appartenenti al contorno del corpo {v ga } come:
{v ga }
{F aa } {ua } , {u̇a }
A
Potenziale
Eulero
Navier-Stokes
Figura 2.4: Schematizzazione del sistema aerodinamico mediante il legame ingresso-uscita come nel-
l’ambito della teoria dei sistemi. Pensando ad una discretizzazione a volumi finiti (FV) del problema,
il blocco A riceve in ingresso il vettore degli spostamenti e delle velocità dei nodi aerodinamici appar-
tenenti al contorno del corpo {ua (t)} ed {u̇a (t)} e restituisce in uscita il corrispondente vettore delle
forze aerodinamiche {F aa (t)}. Nell’ambito dei problemi di risposta è inoltre necessario aggiungere, come
un disturbo esterno agente sul sistema, il vettore delle velocità di raffica agenti sui nodi aerodinamici
appartenenti al contorno del corpo {v ga (t)}.
Per quanto riguarda il regime di moto transonico, in base alle osservazioni fatte in precedenza
relativamente alla variabilità delle proprietà matematiche delle equazioni di governo ed alle forti
non linearità che complicano notevolmente anche il campo di moto attorno ad un semplice profilo
alare, non sembra possibile ricondurre il calcolo dei carichi aerodinamici ad un ambito lineariz-
zato simile a (2.13). In realtà, se il campo di moto relativo alla condizione di equilibrio di rife-
rimento è certamente sede di fenomeni non lineari quali onde d’urto, lo stesso discorso non vale
per la variazione non stazionaria dei carichi aerodinamici conseguente al movimento strutturale.
Nell’ipotesi di piccoli spostamenti è infatti possibile osservare che un modello linearizzato nel-
l’intorno della soluzione stazionaria fornisce un’approssimazione in generale buona ed in molti
casi ottima [10, 28] del reale comportamento del sistema aerodinamico.
Pur in un ambito linearizzato, l’utilizzo di metodi numerici appartententi alla classe del-
la fluidodinamica computazionale (CFD) consente di incrementare notevolmente l’accuratez-
za dei risultati rispetto ai metodi numerici consolidati nell’ambito dell’aeroelasticità classica.
La soluzione stazionaria è infatti calcolata risolvendo le equazioni di governo non lineari; inoltre
è possibile includere nella matrice delle funzioni di trasferimento aerodinamiche l’influenza della
deformabilità strutturale sulla posizione e sull’intensità dell’onda d’urto o gli effetti associati a
manovre ad angoli di incidenza elevati.
Per calcolare la matrice delle funzioni di trasferimento aerodinamiche [ Ham (k) ] utilizzando i
metodi numerici appartenenti alla classe della fluidodinamica computazionale (CFD) è necessa-
rio svolgere un esperimento numerico concettualmente identico alla procedura sperimentale per
identificare in galleria del vento un modello di ordine ridotto o Reduced Order Model (ROM)
dei carichi aerodinamici.
Innanzitutto è necessario determinare la soluzione stazionaria del problema aeroelastico,
accoppiando la soluzione numerica del problema aerodinamico e la soluzione numerica del pro-
blema strutturale ad esempio mediante un metodo iterativo: l’insieme dei carichi aerodinamici
e della deformata strutturale a convergenza costituisce la condizione di equilibrio o trim di
riferimento per la linearizzazione (numerica) dei carichi aerodinamici.
18 Analisi del problema aeroelastico
È quindi possibile calcolare numericamente la variazione non stazionaria del vettore delle
forze aerodinamiche generalizzate {Qa (t)} conseguente ad una legge di movimento assegnata del
solo i-esimo elemento del vettore degli spostamenti generalizzati qi (t), mentre i rimanenti ele-
menti sono nulli. La i-esima colonna della matrice delle funzioni di trasferimento aerodinamiche
[ Ham (k)|i ] corrisponde allora al rapporto tra le trasformate di Fourier del segnale in uscita ed
in ingresso al sistema aerodinamico, ovvero rispettivamente il vettore delle forze aerodinamiche
generalizzate {Qa (t)} e l’i-esimo spostamento generalizzato qi (t):
Fk ( {Qa (t)} )
[ Ham (k)|i ] = , (2.17)
Fk ( qi (t) )
Ingresso armonico Innanzitutto si può pensare di fornire come segnale in ingresso al sistema
aerodinamico una legge di movimento armonica di frequenza ridotta kq ed ampiezza
massima Aq assegnate. Per il teorema della risposta in frequenza, valido per un siste-
ma dinamico lineare tempo-invariante ed asintoticamente stabile, il segnale in uscita dal
sistema aerodinamico è anche esso armonico ed isofrequenziale; di conseguenza è possibile
calcolare numericamente la i-esima colonna della matrice delle funzioni di trasferimento
aerodinamiche [ Ham (kq )|i ] solo in corrispondenza della frequenza ridotta kq .
Tale strategia comporta un costo computazionale molto elevato, dato che è necessario
risolvere numericamente il campo di moto non stazionario attorno al velivolo per tutte le
frequenze ridotte di interesse.
Tale strategia comporta un costo computazionale elevato, dato che è necessario utiliz-
zare un intervallo di integrazione temporale molto ridotto in prossimità dell’origine per
rappresentare in modo soddisfacente l’impulso reale; inoltre, a meno di prolungare note-
volmente la simulazione numerica del campo di moto non stazionario attorno al velivolo,
è problematico recuperare accuratamente il guadagno statico e la dinamica relativa alle
basse frequenze del sistema aerodinamico.
Ingresso a scalino Per recuperare accuratamente anche il guadagno statico e la dinamica rela-
tiva alle basse frequenze del sistema aerodinamico, si può pensare di fornire come segnale
in ingresso uno scalino ideale di ampiezza massima Aq assegnata.
Tale strategia è adeguata per quanto riguarda il solo contributo geometrico delle condi-
zioni al contorno, proporzionale all’i-esimo spostamento generalizzato qi (t); viceversa il
contributo cinematico delle condizioni al contorno, proporzionale anche all’i-esima velocità
generalizzata q̇i (t), corrisponde ad un impulso ideale difficile da realizzare numericamente.
Inoltre la trasformata di Fourier del segnale in uscita è generalmente caratterizzata da fe-
nomeni oscillatori di Gibbs, che impediscono di recuperare accuratamente la dinamica
relativa alle alte frequenze del sistema aerodinamico.
Per calcolare numericamente la i-esima colonna della matrice delle funzioni di trasferimen-
to aerodinamiche [ Ham (k)|i ] si preferisce allora depurare il segnale in uscita del valore a
regime introducendo la deficency del vettore delle forze aerodinamiche generalizzate:
{Qa∞ } + ik Fk ( {D a (t)} )
[ Ham (k)|i ] = . (2.19)
Aq
Ingresso a scalino raccordato Infine per migliorare la descrizione del transitorio aerodinamico
e di conseguenza l’identificazione del modello di ordine ridotto (ROM) per la variazione
non stazionaria dei carichi aerodinamici conseguente al movimento strutturale, è possibile
assegnare all’i-esimo spostamento generalizzato qi (t) la seguente legge di movimento a
scalino raccordato:
Aq [1 − cos(kq τ )]
se τ < τq
qi (τ ) = 2 (2.20)
A
q se τ ≥ τq ,
1.2 1.2
1 1
0.8 0.8
q(τ)/Aq [1/s]
q(τ)/Aq [−]
0.6 0.6
0.4 ˙ 0.4
0.2 0.2
τq τq
0 0
0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10
τ [−] τ [−]
Figura 2.5: Ingresso a scalino raccordato: è rappresentato l’andamento in funzione del tempo adi-
mensionale τ dello spostamento generalizzato qi (τ ) (sinistra) e della velocità generalizzata q̇i (τ ) (destra).
{||u̇s ||}max
= ε ≪ 1, (2.23)
V∞
4 ε La
Aq = . (2.24)
[ ||U |i || ]max kmax
Per calcolare numericamente la i-esima colonna della matrice delle funzioni di trasferimen-
to aerodinamiche [ Ham (k)|i ] è sempre preferibile utilizzare la relazione (2.19), ricordando
il contributo al denominatore della trasformata di Fourier della deficency dell’i-esimo
spostamento generalizzato.
In Figura 2.6 è riportato lo schema a blocchi dell’algoritmo per costruire la matrice delle
funzioni di trasferimento aerodinamiche [ Ham (k) ]. Ipotizzando di disporre di un modello det-
tagliato ad elementi finiti (FEM) del sistema strutturale condensato mediante una base modale
efficiente ed opportunamente interfacciato con un modello dettagliato a volumi finiti (FV) del
sistema aerodinamico, il blocco TRIM relativo al calcolo della condizione di equilibrio trimmata
di riferimento mediante un metodo iterativo ed il blocco GAF relativo al calcolo della variazio-
ne non stazionaria del vettore delle forze aerodinamiche generalizzate conseguente all’i-esimo
spostamento strutturale possono essere ulteriormente dettagliati secondo gli schemi a blocchi
riportati rispettivamente nelle Figure 2.7 e 2.8. Infine l’assemblaggio delle singole colonne del-
la matrice delle funzioni di trasferimento aerodinamiche [ Ham (k)|i ] è realizzato nella fase di
post-processing mediante il programma NAEMO [9].
Esaminando lo schema a blocchi riportato in Figura 2.6 è possibile osservare che le singole
colonne della matrice delle funzioni di trasferimento aerodinamiche [ Ham (k)|i ] possono essere
costruite indipendentemente le une dalle altre: per minimizzare i tempi di calcolo si può dunque
pensare di implementare una strategia di calcolo distribuito su Ns calcolatori.
TRIM
1
0 1
0 1
0 1
0
0
1 0
1 0
1 0
1
i=1 i=2 i = Ns − 1 i = Ns
ASSEMBLAGGIO
[ Ham (k) ]
Figura 2.6: Schema a blocchi dell’algoritmo per costruire la matrice delle funzioni di trasferimento
aerodinamiche [ Ham (k) ].
22 Analisi del problema aeroelastico
Condizioni iniziali
Solutore aerodinamico
NO
∆<ǫ?
SI
Figura 2.7: Schema a blocchi dell’algoritmo per il calcolo della condizione di equilibrio trimmata di
riferimento mediante un metodo iterativo (TRIM).
Il sistema aerodinamico 23
Inizializzazione parametri Aq , kq
(k) (k)
Spostamenti e velocità generalizzati qi , q̇i
( (k)
{us }(k) = [ U ]{1i } qi
Spostamenti e velocità strutturali (k)
{u̇s }(k) = [ U ]{1i } q̇i
(
{ua }(k) = [ I ]{us }(k)
Interfaccia aeroelastica
{u̇a }(k) = [ I ]{u̇s }(k)
NO
∆<ǫ?
SI
{Qa (t)}
Figura 2.8: Schema a blocchi dell’algoritmo per il calcolo della variazione non stazionaria del vettore
delle forze aerodinamiche generalizzate conseguente all’i-esimo spostamento strutturale (GAF).
24 Analisi del problema aeroelastico
Gli ultimi due punti sono particolarmente importanti: infatti l’introduzione o l’assorbimento di
energia spuria da parte dello schema di interfaccia può alterare significativamente le proprietà
di stabilità del sistema aeroelastico (basti pensare al criterio di stabilità energetico di Lyapunov
dE/dt < 0, valido per sistemi dinamici non lineari tali per cui si possa definire un’energia E);
inoltre una scarsa regolarità delle superfici aerodinamiche in seguito alla procedura di interpo-
lazione degli spostamenti strutturali può comportare un degrado dell’accuratezza dei risultati
e delle caratteristiche di convergenza del metodo numerico, associati all’insorgere di instabilità
locali del campo di moto aerodinamico non fisiche.
Il sistema aeroelastico 25
{F as } = [ I ]T {F aa }, (2.27)
ovvero l’operatore lineare che consente di riportare i carichi aerodinamici sui nodi strutturali
b
corrisponde alla matrice di interfaccia calcolata in precedenza trasposta [ I(x) ]T ∈ RNs ×Na .
dove {q(s)} e {Qg (s)} sono rispettivamente le trasformate di Laplace del vettore degli sposta-
menti generalizzati e delle forze aerodinamiche generalizzate conseguenti al movimento dell’aria.
Oltre al contributo delle forze aerodinamiche generalizzate associate alla raffica può essere
conveniente, ad esempio per affrontare problemi aeroservoelastici, esplicitare il contributo delle
forze aerodinamiche generalizzate conseguenti al movimento delle superfici di controllo {Qδ }.
Se i modi rigidi di comando partecipano significativamente alla deformabilità strutturale, è
concettualmente corretto che il relativo vettore dei gradi di libertà {δ} sia compreso all’interno
del vettore degli spostamenti generalizzati {q} (comandi liberi).
replacemen
26 Analisi del problema aeroelastico
{F as } {us } , {u̇s }
FEM
E
Modi propri
Base ibrida
[ I ]T [I ]
{v ga }
{F aa } {ua } , {u̇a }
A
Potenziale
Eulero
Navier-Stokes
Figura 2.9: Schematizzazione del sistema aeroelastico, realizzando praticamente la connessione ad anello
chiuso tra il sistema strutturale ed il sistema aerodinamico rappresentati rispettivamente dai blocchi E e A,
opportunamente interfacciati mediante la procedura di interpolazione rappresentata dalla matrice [ I ].
Viceversa, nel caso in cui il movimento delle superfici di controllo sia sufficientemente lento
rispetto al tempo caratteristico dei modi deformabili del sistema strutturale, è possibile residua-
lizzarne la dinamica trascurando ad esempio il contributo delle forze d’inerzia (comandi bloccati);
più in particolare conviene partizionare il sistema di equazioni algebriche (2.29) nel seguente
modo:
" # " # " #
[ Mqq ] [ M qδ ] [ C qq ] [ 0 ] [ Kqq ] [ 0 ]
s2 +s +
[ Mδq ] [ Mδδ ] [0] [0] [0] [0]
" #!( ) ( ) (2.30)
[ Ham qq (p) ] [ Ham qδ (p) ] {q} {Qg }
−q∞ = ,
[ Ham δq (p) ] [ Ham δδ (p) ] {δ} {H δ }
dove {H δ (s)} è la trasformata di Laplace del vettore dei momenti di cerniera generalizzati asso-
ciati alle superfici di controllo. Trascurando il contributo delle forze d’inerzia [ Mqδ ]{δ̈(t)} ≪ 1,
approssimazione certamente valida per superfici di controllo bilanciate staticamente, è possibile
riscrivere solo le prime Nq equazioni del problema (2.30) come:
s2 [ Mqq ] + s [ Cqq ] + [ Kqq ] − q∞ [ Ham qq (p) ] {q} = {Qg } + q∞ [ Ham qδ (p) ] {δ}
(2.31)
= {Qg } + {Qδ }.
Le ultime Nδ equazioni del sistema (2.30) possono essere quindi trascurate per la soluzione del
problema aeroelastico, ma sono fondamentali nella fase di dimensionamento dei servocomandi
per calcolare il vettore dei momenti di cerniera generalizzati {H δ (t)} e verificare l’attuabilità
della legge di movimento delle superfici di controllo {δ(t)}.
Analogamente, nel caso in cui il tempo caratteristico del sistema aerodinamico Ta = La /V∞
sia sufficientemente piccolo rispetto al tempo caratteristico della dinamica deformabile del
sistema strutturale Ts = 2π/ω, si può pensare di introdurre un’approssimazione quasi-stazio-
naria del sistema aerodinamico mediante una residualizzazione dinamica di ordine opportuno.
Flutter 27
Supponendo che la condizione di volo sia fissata (elimando cosı̀ la dipendenza funzionale dal
numero di Mach M e dal numero di Reynolds Re) e che la matrice delle funzioni di trasferi-
mento aerodinamiche [ Ham (p) ] sia analitica nell’intorno dell’origine p = 0 (ipotesi non sempre
verificata a rigore ma valida ingegneristicamente), è possibile sviluppare la relazione (2.13)
in serie di McLaurin ad esempio fino al secondo ordine nel seguente modo:
p2
{Qa (s)} = q∞ [ Ham (p) ]{q(s)} ≃ q∞ [ Ham (0) ]+ p[ Ham
′
(0) ]+ [ Ham′′
(0) ] {q(s)}
2
(2.32)
La L2
≃ q∞ [ Ka ] +s [ Ca ] + s2 2a [ Ma ] {q(s)},
V∞ V∞
2.6 Flutter
Lo studio del problema di flutter, che dal punto di vista fisico corrisponde all’insorgere di
oscillazioni autoeccitate divergenti dalle conseguenze spesso catastrofiche, dal punto di vista
matematico corrisponde all’analisi delle proprietà di stabilità in piccolo del sistema aeroela-
stico tempo-invariante linearizzato per piccoli spostamenti nell’intorno di una condizione di
equilibrio. Infatti gli autovalori del sistema strutturale, a causa dell’interazione ad anello chiuso
con il sistema aerodinamico, possono spostarsi nel semipiano destro del campo complesso C
a parte reale positiva Re > 0. Viceversa sperimentalmente è possibile osservare che gli au-
tovalori del sistema aerodinamico sono sempre stabili. In tale contesto il flutter corrisponde
alla condizione limite di stabilità dinamica per cui alcuni autovalori del sistema aeroelastico
attraversano l’asse immaginario Im del campo complesso C, ovvero alcuni modi del sistema
aeroelastico sono caratterizzati da uno smorzamento nullo.
L’ipotesi di linearità (eventualmente locale) del sistema aeroelastico è fondamentale per con-
tenere i tempi di calcolo e comporta la necessità di costruire un modello di ordine ridotto (ROM)
lineare del sistema aerodinamico, rappresentato dalla matrice delle funzioni di trasferimento
aerodinamiche [ Ham (p, M∞ , Re) ]. Come descritto in §2.3.3, tale approssimazione è giustifica-
bile anche in regime di moto transonico e nell’ambito dell’aeroelasticità computazionale (CA).
28 Analisi del problema aeroelastico
ωθ V∞ [m/s]
Modo torsionale 0 VF
0
ω [rad/s]
Modo torsionale
g [−]
ωh Modo flessionale
Modo flessionale
0
0 VF
V∞ [m/s]
che ammette soluzioni non banali se e solo se la matrice dei coefficienti [ A(ω, V∞ ) ] è singolare.
Imponendo l’annullamento della parte reale e della parte immaginaria del determinante della
matrice dei coefficienti [ A(ω, V∞ ) ] è possibile determinare la frequenza di flutter ωF e la velocità
di flutter VF ; successivamente è possibile determinare anche il modo di flutter {q(ωF , VF )},
fondamentale per comprendere quali modi del sistema strutturale vi partecipano maggiormente
e sono dunque critici per la stabilità del sistema aeroelastico.
Flutter 29
Più in generale conviene analizzare il comportamento degli autovalori del sistema aeroelastico
s = σ + iω al variare di un parametro che definisce la condizione di volo di riferimento, ad
esempio la velocità V∞ . È allora necessario risolvere il seguente sistema di equazioni algebriche
omogeneo:
s2 [ M ] + s [ C ] + [ K ] − q∞ [ Ham (p, M∞ , Re) ] {q} = 0, (2.35)
che ammette soluzioni non banali se e solo se la matrice dei coefficienti [ A(s, V∞ ) ] è singolare
ed è chiuso nelle incognite σ ed ω a patto di assegnare a priori la velocità V∞ . Mediante
un’opportuna procedura di inseguimento, che può essere facilmente inizializzata alla velocità
V∞ = 0 in corrispondenza della quale le frequenze, lo smorzamento ed i modi del sistema
aeroelastico coincidono con quelli del solo sistema strutturale, è possibile costruire il luogo
delle radici del sistema aeroelastico in funzione del parametro V∞ . Convenzionalmente tali
informazioni sono riassunte nei diagrammi V∞ − ω e V∞ − g qualitativamente √ rappresentati in
Figura 2.10, dove il fattore di smorzamento g è definito come: g = 2ξ = 2σ/ ω 2 + σ 2 .
La principale difficoltà dello studio del problema di flutter consiste nel fatto che, a meno
di ricorrere ad un’approssimazione quasi-stazionaria del sistema aerodinamico, la matrice delle
funzioni di trasferimento aerodinamiche [ Ham (p, M∞ , Re) ] è nota numericamente solamente
lungo l’asse immaginario Im del campo complesso C per cui p = ik e non come funzione analitica
della frequenza ridotta complessa p; se anche tale funzione analitica fosse disponibile in forma
esplicita, essa non sarebbe polinomiale. Di conseguenza la relazione (2.35) non rappresenta un
problema agli autovalori classico, ma è necessario ricorrere a metodi numerici ad hoc [5].
Metodo PK L’ipotesi fondamentale alla base di tale metodo è che la matrice delle funzioni
di trasferimento aerodinamiche [Ham (p)], calcolata per modi puramente armonici per cui
p = ik, fornisca una buona approssimazione anche per modi debolmente smorzati per cui
p = ε + ik con ε ≪ 1(approssimazione certamente valida in prossimità della velocità di
flutter VF ). Introducendo l’ulteriore ipotesi di analiticità, analogamente all’approssima-
zione quasi-stazionaria del sistema aerodinamico, è possibile sviluppare la matrice delle
funzioni di trasferimento aerodinamiche [ Ham (p) ] in serie di Taylor attorno a p0 = ik0 .
Troncando ad esempio lo sviluppo in serie di Taylor al secondo ordine (per non distrug-
gere la simmetria con il problema strutturale), è possibile ricavare la seguente relazione,
solo formalmente identica all’approssimazione quasi-stazionaria del sistema aerodinamico:
′ 1 ′′
[ Ham (p) ] ≃ [ Ham (ik0 ) ] + [ Ham (ik0 ) ](p − ik0 ) + [ Ham (ik0 ) ](p − ik0 )2
2
(2.36)
La L2
≃ [ Ka ] + s [ Ca ] + s2 a2 [ Ma ].
V∞ V∞
Metodo non lineare Il problema di flutter (2.35) può essere interpretato come un sistema
di Ns equazioni non lineari omogenee negli Ns modi {q} ed 1 autovalore s incogniti;
dal momento che i modi sono definiti a meno di una costante moltiplicativa, è possibile
aggiungere 1 ulteriore equazione di normalizzazione (opportunamente pesata mediante la
matrice [ W ] ∈ RNs ×Ns ) che consente di chiudere il problema:
[ A(s, V∞ ) ]{q} = 0
1 . (2.37)
{q}T [ W ]{q} = 1
2
Il sistema di equazioni non lineari cosı̀ ottenuto può essere risolto mediante il metodo nu-
merico di Newton-Raphson, eventualmente nella versione modificata per contenere i tempi
di calcolo. Linearizzando il problema (2.37) nell’intorno di una soluzione di riferimento
{q0 } ed s0 e svolgendo i conti, è possibile scrivere in forma compatta:
∂[ A(s, V∞ ) ]
[ A(s0 , V∞ ) ]
{q0 } {∆q} − [ A(s0 , V∞ ) ]{q0 }
∂s s = (2.38)
0
{q0 }T [ W ] 0
∆s 1 − 1 {q0 }T [ W ]{q0 }
2
La L2
{Qa } = [ Ca ]{xa } + [ Da 0 ]{q} + [ Da 1 ]{q̇} + 2a [ Da 2 ]{q̈}. (2.40)
V∞ V∞
In questo Capitolo i modelli matematici ed i metodi numerici comunemente utilizzati per la so-
luzione del problema strutturale sono presentati in §3.1, soffermandosi in particolare sul metodo
degli elementi finiti (FEM) e sulla tecnica di condensazione modale.
Prendendo come riferimento il solutore strutturale commerciale MSC.Nastran che costituisce
lo strumento di analisi forse più utilizzato nell’ambito dell’industria aeronautica, in §3.2 sono
definiti i requisiti che un solutore strutturale alternativo liberamente disponibile in rete deve
soddisfare. In base a tali considerazioni è possibile scegliere il solutore strutturale Code Aster,
le cui caratteristiche fondamentali sono presentate in §3.3 insieme ad un esempio di utilizzo ed
un esempio di programmazione in linguaggio Python.
Per gestire griglie di calcolo 1D, 2D, 3D di complessità arbitraria ed eventualmente ibride,
visualizzare ed elaborare i risultati numerici è fondamentale disporre di un pre/post-processore
flessibile quale ad esempio il programma Salomé gratuitamente disponibile in rete, le cui carat-
teristiche fondamentali sono presentate in §3.4.
dove V ⊆ RNd è il dominio spaziale del problema delimitato dal contorno S = ∂V ⊆ RNd −1 .
Il campo delle forze esterne di superficie f (x, t), di volume F (x, t) e di inerzia ρ(x, t)s̈(x, t),
dove ρ(x, t) è la densità del materiale, lavorano per l’incremento virtuale del campo di sposta-
menti s(x, t); analogamente il vettore {Σ(x, t)}, che raccoglie le sei componenti indipendenti
del tensore di sforzo simmetrico di Piola-Kirchhoff II, è energeticamente coniugato con l’incre-
mento virtuale del vettore {∈ (x, t)}, che raccoglie le sei componenti indipendenti del tensore
di deformazione simmetrico di Green-Lagrange.
33
34 Scelta del solutore strutturale
Il vettore di sforzo {Σ(x, t)} può essere collegato al vettore di deformazione {∈ (x, t)}
mediante una legge costitutiva visco-elastica lineare, ovvero interpretando il materiale come
un sistema micromeccanico che restituisce in uscita il vettore di sforzo {Σ(x, t)} calcolato
come l’integrale di convoluzione della matrice delle risposte impulsive del materiale [ d(t) ]
con il vettore di deformazione {∈ (x, t)} in ingresso:
Z ∞
{Σ(x, t)} = [ d(t − τ ) ] {∈ (x, τ )} dτ. (3.2)
0
La scelta di una legge costitutiva del materiale visco-elastica comporta dunque la nascita di
un termine di smorzamento viscoso lineare. Tuttavia un modello di questo tipo non consen-
te di rappresentare fedelmente la reale dinamica dello smorzamento strutturale dominata da
fenomeni locali e non lineari, come ad esempio la dissipazione coulombiana conseguente al
micro-scorrimento relativo fra le parti delle giunzioni: di conseguenza generalmente si preferisce
tarare il termine di smorzamento sulla base dei risultati delle prove sperimentali in modo tale
da ottenere una dissipazione energeticamente equivalente alla dissipazione media reale.
Per risolvere numericamente il problema strutturale (3.4) è possibile applicare un metodo
alla Ritz, che consiste nell’approssimare il campo di spostamenti s(x, t) mediante la tecnica di
separazione delle variabili come il prodotto di una base completa di funzioni di forma [ N (x) ],
dipendenti dalla sola variabile spaziale x e scelte a priori in modo tale da rispettare le con-
dizioni al contorno essenziali, e di un vettore di coordinate libere {q(t)} dipendenti dalla sola
variabile temporale t ed incognite, ovvero: s(x, t) ≃ [ N (x) ] {q(t)}. Viceversa applicando la
tecnica di integrazione per parti è possibile dimostrare che le condizioni al contorno naturali
sono automaticamente soddisfatte scrivendo il problema strutturale (3.4) in forma variazionale.
Ad esempio il metodo degli elementi finiti (FEM) può essere inquadrato nell’ambito dei
metodo alla Ritz e consente di costruire un modello strutturale raffinato ed adatto allo studio
anche della dinamica strutturale locale. Successivamente per disporre di un modello efficiente
(fondamentale per la progettazione di un sistema di controllo attivo) è conveniente applicare
la tecnica di condensazione modale, calcolando numericamente i modi propri e le frequenze
naturali del sistema strutturale relativi alla banda di frequenze di interesse [15, 27].
Definizione del problema strutturale 35
scegliendo come termini dello sviluppo completo [ N (x) ] le funzioni di base polinomiali lagran-
giane a supporto compatto di ordine opportuno e come coordinate libere incognite gli sposta-
menti strutturali valutati in corrispondenza dei nodi della griglia di calcolo {us (t)}.
Sostituendo la relazione (3.5) nella (3.4) e svolgendo i conti, conviene innanzitutto ricordare
che i vettori degli spostamenti, velocità ed accelerazioni nodali {us (t)}, {u̇s (t)} ed {üs (t)}
sono indipendenti dalla variabile spaziale x e possono essere dunque portati fuori dal segno di
integrale; infine, sfruttando l’arbitrarietà del vettore degli spostamenti nodali virtuali δ {us }T ,
è possibile ricavare il seguente sistema di equazioni differenziali ordinarie (ODE):
Supponendo che la soluzione esatta sia sufficientemente regolare, è possibile dimostrare che
la soluzione numerica calcolata mediante il metodo degli elementi finiti (FEM) è caraterrizzata
da un ordine di accuratezza pari a O(hp ), dove h è la dimensione caratteristica degli elementi
di griglia e p è l’ordine delle funzioni di base polinomiali lagrangiane a supporto compatto [32].
Per garantire una buona accuratezza della soluzione numerica è in generale necessario utilizzare
un numero di gradi di libertà strutturali NF EM molto elevato: di conseguenza è fondamentale
avere gli strumenti necessari per gestire in modo efficiente matrici sparse di grandi dimensioni.
[r c r] = [ U ]T [ CF EM ] [ U ] ,
(3.11)
[r k r] = [ U ]T [ KF EM ] [ U ] ,
{Q} = [ U ]T {QF EM } .
A rigore, grazie alla proprietà di ortogonalità dei modi propri, solo le matrici di massa e rigidez-
za generalizzate [r m r] e [r k r] sono di struttura diagonale (scegliendo inoltre di normalizzare a
massa generalizzata unitaria i modi propri del sistema strutturale, noti a meno di una costante
moltiplicativa, è possibile scrivere: [r m r] = [r 1 r] e [r k r] = [r ω02 r]). Tuttavia sperimental-
mente è possibile osservare che la matrice di smorzamento generalizzata [r c r] ha una struttura
tendenzialmente diagonale; tale considerazione giustifica in parte la scelta molto comune di mo-
dellare il contributo dello smorzamento strutturale come proporzionale alle matrici di massa e
di rigidezza, ovvero a partire dal modello dettagliato ad elementi finiti:
[ CF EM ] = α[ MF EM ] + β[ KF EM ], (3.12)
dove i coefficienti α e β sono tarati sulla base dei risultati delle prove sperimentali in modo
tale da ottenere una dissipazione energeticamente equivalente alla dissipazione media reale.
Supponendo che il campo delle forze esterne superficiali e di volume agenti sul sistema
sia sufficientemente regolare nello spazio, è possibile dimostrare che i modi propri del sistema
strutturale costituiscono una base molto efficiente. Viceversa, in presenza di carichi concentrati,
l’ordine di convergenza della soluzione numerica degrada rapidamente e conviene ibridizzare
la base modale, aggiungendovi opportune deformate statiche.
Requisiti del solutore strutturale 37
- capacità di gestire in modo flessibile griglie di calcolo 1D, 2D e 3D, di complessità arbi-
traria ed eventualmente ibride, create nella fase di pre-processing mediante un opportuno
generatore di griglia e memorizzate secondo un formato standard;
- disponibilità di una libreria il più possibile ampia di elementi finiti (FEM) di ordine
opportuno ad esempio di trave, di piastra o membrana e di volume con cui discretizzare
numericamente il sistema strutturale;
- capacità di costruire, a partire dal modello dettagliato ad elementi finiti (FEM) del sistema
strutturale, un modello condensato modale eventualmente ibridizzato mediante opportune
basi statiche;
- capacità di risolvere problemi di risposta statica e dinamica lineari e non lineari di inte-
resse industriale, sia nel dominio del tempo che nel dominio delle frequenze, e recuperare
successivamente le sollecitazioni strutturali;
Il solutore strutturale Code Aster [47] soddisfa al meglio i requisiti presentati; contrariamente
al solutore strutturale MSC.Nastran non sono tuttavia disponibili moduli per risolvere numeri-
camente problemi di aeroelasticità statica e dinamica in ambito linearizzato, ma solo un’inter-
faccia con il solutore fluidodinamico Code Saturne per la soluzione di problemi di interazione
fluido-struttura (FSI) all’interno di condotti.
38 Scelta del solutore strutturale
- creare una base di utenti il più possibile ampia per velocizzare il processo di individuazione
e correzione degli errori e di ottimizzazione dell’efficienza di calcolo e contemporaneamente
per arricchire il database di problemi test di verifica;
Il solutore strutturale Code Aster è principalmente scritto nei linguaggi Fortran 77 e Python;
inoltre alcune routines per la gestione del calcolatore (processore, memoria e protocolli di
comunicazione) sono scritte in linguaggio C ed infine alcune routines di basso livello per cui
è richiesta un’efficienza computazionale particolarmente elevata sono scritte direttamente in
linguaggio CAL (CRAY Assembly Language).
L’architettura generale del solutore strutturale Code Aster si basa sul requisito fondamentale
che il programma sia costituito da un insieme di controlli, ovvero funzionalità e comandi, indi-
pendenti che devono potere scambiare tra loro concetti, ovvero oggetti e dati, in modo flessibile
e che l’utente può connettere a piacere. Per soddisfare tale requisito è dunque fondamentale
disporre dei seguenti elementi costitutivi:
Catalogue (catalogo) ovvero un modulo scritto in linguaggio Python in cui sono elencate le
definizioni di tutti i comandi disponibili; più in particolare è possibile distinguere i comandi
per la gestione dell’esecuzione del programma principale, i comandi di base per la soluzione
del problema strutturale (ad esempio la libreria degli elementi finiti) ed infine i macro-
comandi che raccolgono una serie di istruzioni di base per semplificarne l’utilizzo da parte
dell’utente (ad esempio le routines per l’assemblaggio delle matrici globali).
Comando #N
FIN( )
Figura 3.1: Schema a blocchi che riassume il funzionamento del solutore strutturale Code Aster.
TestProblem.mail in cui sono memorizzati in formato di testo i nodi, gli elementi, la connet-
tività e gli eventuali gruppi di nodi ed elementi della griglia di calcolo; alternativamente
nel caso di geometrie particolarmente complesse conviene appoggiarsi a programmi esterni
per la generazione della griglia di calcolo che forniscono in uscita i files in formato binario
TestProblem.msh (ad esempio Gmsh [7]) o TestProblem.med (ad esempio Salomé [52]);
TestProblem.comm ovvero un modulo scritto in linguaggio Python in cui sono elencati i macro-
comandi insieme ai relativi commenti, che successivamente il Superviseur si preoccupa di
tradurre nella lista dei comandi elementari o Jeu de Commandes (JDC). La scrittura
di tale file è facilitata mediante la Graphical User Interface (GUI) Eficas, che svolge un
primo controllo della sintassi; tuttavia per aggiungere nuovi macro-comandi ed istruzioni
in linguaggio Python è comunque necessario modificare manualmente tale file.
Durante l’esecuzione del programma sono inoltre creati all’interno della cartella di lavoro i files
relativi ai risultati numerici (in formato di testo TestProblem.resu o binario TestProblem.med)
e alla lista degli eventuali messaggi di errore TestProblem.erre.
z z
sx = 0 11111111111
00000000000
00000000000
11111111111
sy = 0 00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
sz = 0
y m, I, EJ, GJ 11111111111
00000000000
00000000000
11111111111
00000000000
11111111111
θx = 0 00000000000
11111111111y
11
00
00
11 e 11111111111
00000000000
00000000000
11111111111
00
11 00000000000
11111111111
00
11 x F 00000000000
11111111111
R
00000000000
11111111111
M 00000000000
11111111111
00000000000
11111111111
= 00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
L
sx =0
=
s =0
11
00 y
00
11
00
11 sz
=0
00
11
θx =0
Figura 3.2: Schematizzazione del problema molto semplice scelto per illustrare meglio il funzionamento
del solutore strutturale Code Aster.
Solutore strutturale Code Aster 41
Per valutare la bontà del solutore strutturale Code Aster si richiede inoltre confrontare i
modi propri e le frequenze naturali calcolate numericamente con la soluzione esatta delle equa-
zioni differenziali alle derivate parziali (PDE) che governano la dinamica flessionale e torsionale
della trave, ovvero:
r r
2 i2 π 2 EJ
Flessione: zi (x) = sin(iπx) e ωz i = 2 (3.13a)
mL L m
r r
2 iπ GJ
Torsione: θi (x) = sin(iπx) e ωθ i = , (3.13b)
IL L I
dove i modi propri sono normalizzati a massa generalizzata unitaria. Analogamente si richiede di
confrontare la deformata statica flessionale e torsionale calcolata numericamente con la soluzione
esatta delle equazioni differenziali ordinarie (ODE) del metodo della linea elastica, ovvero:
F 3 2 3 L
Flessione: z(x) = L x−x se x≤ (3.14a)
12EJ 4 2
M L
Torsione: θ(x) = x se x≤ . (3.14b)
2GJ 2
Sono di seguito riportati, insieme ad una breve descrizione dei macro-comandi e delle variabili
maggiormente utilizzate, tutti i files che l’utente deve fornire in ingresso al solutore strutturale
Code Aster per risolvere numericamente tale problema test.
TestProblem.export
Definizione dei parametri relativi alla compilazione e all’esecuzione del programma principale.
P actions make_etude
P version STA9.1
P debug nodebug
P mode interactif
A rep_mat ~/Aster/STA9.1/materiau
Definizione dei parametri relativi alle risorse del calcolatore da destinare alla soluzione del
problema, ovvero numero di processori ncpu, memoria riservata memjeveux e tempo massimo
si calcolo tpmax.
P ncpus 1
A memjeveux 8.0
A tpmax 60
Definizione del tipo, del percorso assoluto e dell’unità di accesso dei files in ingresso relativi alla
griglia di calcolo TestProblem.mail e alla lista dei comandi TestProblem.comm.
F mail $MYPATH/TestProblem/TestProblem.mail D 20
F comm $MYPATH/TestProblem/TestProblem.comm D 1
Definizione del tipo, del percorso assoluto e dell’unità di accesso dei files in uscita relativi agli
eventuali messaggi di errore TestProblem.erre ed ai risultati numerici TestProblem.resu.
F mess $MYPATH/Example/TestProblem.mess R 6
F erre $MYPATH/Example/TestProblem.erre R 9
F resu $MYPATH/Example/TestProblem.resu R 8
42 Scelta del solutore strutturale
TestProblem.mail
Definizione dei gruppi di nodi TOUT NO, INCASTRO, ESTREMO e MEZZERIA e del gruppo di elementi
TOUT MA della griglia di calcolo, termine del file.
GROUP_NO NOM = TOUT_NO
N01 N02 N03 N04 N05 N06 N07 N08
N09 N10 N11 N12 N13 N14 N15 N16
N17 N18 N19 N20 N21
FINSF
GROUP_MA NOM = TOUT_MA
E01 E02 E03 E04 E05 E06 E07 E08
E09 E10 E11 E12 E13 E14 E15 E16
E17 E18 E19 E20
FINSF
GROUP_NO NOM = INCASTRO
N01
FINSF
GROUP_NO NOM = ESTREMO
N21
FINSF
GROUP_NO NOM = MEZZERIA
N11
FINSF
FIN
TestProblem.comm
Calcolo delle matrici di rigidezza MATLOCK e di massa MATLOCM locali, definizione della numera-
zione globale dei gradi di libertà ed assemblaggio delle matrici di rigidezza MATASSK e di massa
MATASSM globali.
MATLOCK = CALC_MATR_ELEM( MODELE = MO,
CHARGE = CHBC,
CARA_ELEM = CAELE,
CHAM_MATER = CHMAT,
OPTION = ’RIGI_MECA’ )
MATLOCM = CALC_MATR_ELEM( MODELE = MO,
CHARGE = CHBC,
CARA_ELEM = CAELE,
CHAM_MATER = CHMAT,
OPTION = ’MASS_MECA’ )
NUM = NUME_DDL( MATR_RIGI = MATLOCK )
MATASSK = ASSE_MATRICE( MATR_ELEM = MATLOCK,
NUME_DDL = NUM )
MATASSM = ASSE_MATRICE( MATR_ELEM = MATLOCM,
NUME_DDL = NUM )
Calcolo dei primi NMAX FREQ modi propri e relative frequenze naturali MD mediante il metodo di
Lanczos TRI DIAG e normalizzazione a massa generalizzata unitaria MASS GENE.
MD = MODE_ITER_SIMULT( MATR_A = MATASSK,
MATR_B = MATASSM,
METHODE = ’TRI_DIAG’,
CALC_FREQ = _F( OPTION = ’PLUS_PETITE’,
NMAX_FREQ = 10 ) )
MD = NORM_MODE( reuse = MD,
MODE = MD,
NORME = ’MASS_GENE’ )
Calcolo della risposta statica SOL del modello di trave MO soggetto alle condizioni al contorno
CHBC e alle condizioni di carico CHLO.
SOL = MECA_STATIQUE( MODELE = MO,
CHAM_MATER = CHMAT,
CARA_ELEM = CAELE,
EXCIT = ( _F( CHARGE = CHBC ),
_F( CHARGE = CHLO ) ) )
Solutore strutturale Code Aster 45
Scrittura in formato di testo sul file Example.resu dei risultati numerici dell’analisi modale MD
e dell’analisi statica SOL, termine dell’applicazione.
Per lanciare il solutore strutturale Code Aster è necessario porsi all’interno della cartella
di lavoro $MYPATH/TestProblem ed eseguire dal terminale dei comandi la seguente istruzione:
∼/Aster/ASTK/ASTK SERV/bin/as run TestProblem.export, che richiede un tempo di calcolo
pari a CPUtime = 3.67 s su un computer ASUS M6000 con processore Intel Pentium-M da
1.8 GHz di frequenza massima, 1 Gbyte di memoria RAM, 2 M byte di cache L2 e sistema
operativo Linux con kernel aggiornato alla versione 2.6.17.
Infine sono di seguito riportati i risultati numerici relativi al calcolo dei modi propri e
delle deformate statiche flessionale e torsionale della trave rappresentata in Figura 3.2 ottenuti
mediante il solutore strutturale Code Aster; esaminando la Tabella 3.1 e le Figure 3.3 e 3.4
è possibile osservare che sussiste un ottimo accordo con le rispettive soluzioni analitiche.
Tabella 3.1: Confronto tra i risultati numerici ottenuti mediante il solutore strutturale Code Aster
e la soluzione analitica.
× 10−2 × 10−1
3.5 2.5
3
2
2.5
1.5
2
ϑ1 [−]
z1 [−]
1.5
1
1
0.5
0.5
0 0
0 2 4 6 8 10 0 2 4 6 8 10
x [m] x [m]
Figura 3.3: Confronto tra i risultati numerici (◦) e la soluzione analitica (−) per la prima forma
modale flessionale z1 (x) (sinistra) e la prima forma modale torsionale θ1 (x) (destra) normalizzate a
massa generalizzata unitaria.
46 Scelta del solutore strutturale
× 10−4 × 10−4
12 3.5
10 3
2.5
8
2
z [m]
ϑ [°]
6
1.5
4
1
2 0.5
0 0
0 2 4 6 8 10 0 2 4 6 8 10
x [m] x [m]
Figura 3.4: Confronto tra i risultati numerici (◦) e la soluzione analitica (−) per la deformata statica
flessionale z(x) (sinistra) e la deformata statica torsionale θ(x) (destra).
6
1 2
5
0.5 1
4
Mx [Nm]
My [Nm]
Tz [N]
0 3 0
2
-0.5 -1
1
-1 -2
0
-1.5 -1 -3
0 2 4 6 8 10 0 2 4 6 8 10 0 2 4 6 8 10
x [m] x [m] x [m]
Figura 3.5: Confronto tra i risultati numerici EndB (◦) e la soluzione analitica (−) per le azioni interne
di taglio Tz (x) (sinistra), momento flettente My (x) (centro) e momento torcente Mx (x) (destra).
TestProblem.comm
Assegnamento alle variabili PATH e FILENAME del percorso assoluto rispettivamente della car-
tella di lavoro e del file TestProblem.load, caricamento del nuovo macro-comando AFFE LOAD
scritto in linguaggio Python nel file affe load.py.
PATH = ’$MYPATH/TestProblem/’
FILENAME = PATH + ’TestProblem.load’
import sys
sys.path.append(PATH)
from affe_load import AFFE_LOAD
TestProblem.load
Definizione delle forze FX, FY, FZ e dei momenti MX, MY, MZ concentrati in corrispondenza di
ogni ID NO nodo della griglia di calcolo.
% ID_NO FX FY FZ MX MY MZ
N11 0. 0. 2500. 5000. 0. 0.
affe load.py
Caricamento del catalogo dei macro-comandi Cata del solutore strutturale Code Aster, accesso
ai comandi di base F ed UTMESS.
from Cata.cata import *
from Accas import _F
from Utilitai.Utmess import UTMESS
Definizione della funzione ausiliaria read load scritta in linguaggio Python, che riceve in
ingresso il nome del file relativo alla condizione di carico NOM FICHIER e restituisce in uscita la
struttura load.
def read_load(NOM_FICHIER):
Definizione della funzione che implementa il corpo principale della nuova macro affe load ops
scritta in linguaggio Python, che riceve in ingresso il modello MODELE, il nome del file relati-
vo alla condizione di carico NOM FICHIER ed infine il flag relativo al livello di verbosità INFO
e restituisce in uscita la condizione di carico CHLO, richiamando al suo interno il macro-comando
AFFE CHAR MECA.
# Get dimensions
N_n = len(load[’node’][:])
Solutore strutturale Code Aster 49
# Print info
if INFO == 2:
print ’------------------------------------------------------------------’
print ’ AFFE_LOAD ’
print ’------------------------------------------------------------------’
print ’ NOM_FICHIER = ’ + NOM_FICHIER
print ’ ’
for k in range(0, N_n):
print ’ ’ + load[’node’][k]
print ’ Fx = ’ + str(load[’Fx’][k])
print ’ Fy = ’ + str(load[’Fy’][k])
print ’ Fz = ’ + str(load[’Fz’][k])
print ’ Mx = ’ + str(load[’Mx’][k])
print ’ My = ’ + str(load[’My’][k])
print ’ Mz = ’ + str(load[’Mz’][k])
print ’ ’
print ’------------------------------------------------------------------’
Creazione del nuovo macro-comando AFFE LOAD, integrazione della funzione affe load ops
scritta in linguaggio Python, definizione del nome e del tipo delle variabili in ingresso, ovvero
il modello MODELE, il nome del file relativo alla condizione di carico NOM FICHIER ed infine il
flag relativo al livello di verbosità INFO.
AFFE_LOAD = MACRO( nom ="AFFE_LOAD",
op =affe_load_ops,
sd_prod =char_meca,
fr ="Read from file the nodal load ditribution",
MODELE =SIMP( statut = ’o’,
typ = modele_sdaster ),
NOM_FICHIER = SIMP( statut = ’f’,
typ = ’TXM’,
fr = "Name of the NOM_FICHIER" ),
INFO = SIMP( statut = ’f’,
typ = ’I’,
defaut = 1 ,
into = (1,2) ) )
50 Scelta del solutore strutturale
Figura 3.6: Esempio di utilizzo del modulo Geometry (sinistra) e del modulo Post-Pro (destra) del
pre/post-processore Salomé.
Capitolo 4
In questo Capitolo il solutore strutturale Code Aster è messo alla prova affrontando alcuni
problemi di verifica di complessità crescente, in Nd = 2 e Nd = 3 dimensioni spaziali su griglie
di calcolo in generale poliedriche strutturate e non strutturate. Più in particolare l’obiettivo
è valutare l’accuratezza dei risultati numerici ottenuti con riferimento ai risultati sperimentali
e numerici eventualmente reperibili in Letteratura ed ai risultati numerici ottenuti mediante il
solutore strutturale commerciale MSC.Nastran [45].
Dapprima in §4.1 la soluzione numerica della deformata statica del modello strutturale
ad elementi finiti (FEM) di trave (per i correnti) e di piastra (per i pannelli e le centine)
di un cassone alare è confrontata con i risultati numerici ottenuti mediante MSC.Nastran;
successivamente in §4.2 è affrontato il problema della taratura del modello strutturale ad ele-
menti finiti (FEM) di piastra dell’ala AGARD 445.6 con riferimento ai risultati sperimentali
delle prove di vibrazione a terra o Ground Vibration Test (GVT) riportati in [8].
Tali problemi strutturali di verifica sono risolti su un computer ASUS M6000 con processore
Intel Pentium-M da 1.8 Ghz di frequenza massima, 1 Gbyte di memoria RAM, 2 M byte di cache
L2 e sistema operativo Linux con kernel aggiornato alla versione 2.6.17.
51
52 Problemi di verifica strutturali
Nel modello ad elementi finiti (FEM) costruito in FEMAP per il solutore strutturale com-
merciale MSC.Nastran sono inoltre aggiunti elementi di connessione rigida RBE3 per trasferire i
carichi in modo distribuito alle centine; una strategia analoga è teoricamente realizzabile in
Code Aster mediante l’opzione LIAISON MAIL del macro-comando AFFE CHAR MECA, ma non
fornisce risultati soddisfacenti e si preferisce dunque applicare i carichi in modo concentrato
in corrispondenza del nodo più vicino al baricentro geometrico di ogni centina.
Il tempo di esecuzione per la soluzione numerica del problema è pari a CPUtime = 3.73 s.
Nelle Figure 4.3 e 4.4 sono presentati i risultati numerici relativi alla deformata statica ed
agli sforzi equivalenti di Von Mises sul cassone alare; è possibile osservare un ottimo accordo
con i risultati numerici ottenuti mediante il solutore strutturale MSC.Nastran (con un tempo
di esecuzione del tutto confrontabile); le piccole discrepanze che è possibile osservare sono
imputabili alla differente modalità di applicazione dei carichi (effetti vicini).
3.0 mm
2.0 mm
00000000000000000000
11111111111111111111
F2 = 13200 N
00000000000000000000
11111111111111111111
00000000000000000000
11111111111111111111
00000000000000000000
11111111111111111111
00000000000000000000
11111111111111111111
00000000000000000000
11111111111111111111
00000000000000000000
11111111111111111111
00000000000000000000
11111111111111111111
F3 = 13200 N 11
00
00
11
1.5 mm 11
00 1.5 mm 11
00
00
11
y 00000000000000000000
11111111111111111111
00000000000000000000
11111111111111111111
00000000000000000000
11111111111111111111
00000000000000000000
11111111111111111111 00
11 00
11
00
11 00
11
=
F4 = 6600 N 2.5 mm
111
000
000
111 111
000 111
000 111
000
000
111 1111111
0000000 yb
000
111 000
111 000
111 000
111 0000000
1111111 111111111
000000000
3.2 mm
=
0000000
1111111 000000000
111111111
yb
m
0000000
1111111 000000000
111111111
m
200 mm 200 mm
25 mm
300 mm
0000000
1111111 000000000
111111111
00
25 mm
=
x
b
16
0000000
1111111
x
b
000000000
111111111
11
00
300 mm
11
00 0000000
1111111 000000000
111111111
000000000
111111111
11
00 0000000
1111111
=
00
11
00
11 00
11 00
11
00
11 0000000
1111111 000000000
111111111
00
11 x
25 mm
z 20 mm
600 mm
Figura 4.2: Confronto tra la griglia di calcolo del modello strutturale ad elementi finiti (FEM) costrui-
ta mediante Salomé peril solutore strutturale libero Code Aster (sinistra) e quella costruita mediante
FEMAP per il solutore strutturale commerciale MSC.Nastran (destra).
Taratura del modello strutturale dell’ala AGARD 445.6 53
Figura 4.3: Confronto tra i risultati numerici ottenuti mediante Code Aster (sinistra) e quelli ottenuti
mediante MSC.Nastran (destra) relativi alla deformata statica del cassone alare.
Figura 4.4: Confronto tra i risultati numerici ottenuti mediante Code Aster (sinistra) e quelli ottenuti
mediante MSC.Nastran (destra) relativi agli sforzi equivalenti di Von Mises sul cassone alare.
la particolare distribuzione degli spessori delle piastre t adottata è definita dalla forma del
profilo alare NACA 65A004 e comporta un errore numerico sulla massa totale rispetto ai dati
sperimentali pari a circa keM k = kM FEM − M exp k/kM exp k ≃ 9%.
Analogamente si richiede di costruire in Code Aster un modello strutturale ad elementi fi-
niti (FEM) di piastra ortotropa a singola lamina, utilizzando le proprietà del materiale e la
distribuzione degli spessori delle piastre presentati in [3]; la pianta alare è discretizzata utiliz-
zando la stessa distribuzione di Nn = 121 nodi dei modelli sperimentali e numerico presentati
in [8] connessi mediante Ne = 2 × 10 × 10 elementi non più quadrangolari, ma triangolari,
in modo tale da facilitare la costruzione dello schema di interfaccia aeroelastica come descritto
più dettagliatamente in §8.1.
Nella Tabella 4.1 e nelle Figure 4.6–4.11 sono presentati i risultati numerici ottenuti me-
diante Code Aster relativi alle frequenze proprie ed alle forme modali dell’ala AGARD 445.6;
è possibile osservare un buon accordo con i risultati numerici riportati in [3], ma solo un discre-
to accordo con i risultati sperimentali riportati in [8]. Più in particolare l’errore massimo sulle
frequenze proprie è pari a circa kef2 k ≃ 3% e sulle forme modali è pari a circa keU 3 k ≃ 2%.
Come in [3] la particolare distribuzione di spessori delle piastre t adottata comporta un errore
numerico sulla massa totale rispetto ai dati sperimentali pari a circa keM k ≃ 9%. Si potrebbe
allora pensare di utilizzare tale margine residuo per riprodurre numericamente in modo migliore
le frequenze proprie e le forme modali sperimentali. Scegliendo ad esempio come parametri di
progetto l’incremento ∆t > 0 valutato in corrispondenza dei baricentri geometrici degli elemen-
ti della griglia di calcolo rispetto alla distribuzione degli spessori delle piastre t di riferimento,
è possibile minimizzare il seguente funzionale ad esempio mediante il programma GenOpt scritto
in SciLab che implementa l’algoritmo di ottimizzazione genetica presentato in [18]:
4 4
kM FEM − M exp k X kfiFEM − fiexp k X kU FEM
i − U exp
i k
J = WM exp
+ W f i exp + W U i exp , (4.2)
kM k kfi k kU i k
i=0 i=0
dove tutti i pesi sono scelti unitari ad eccezione di Wf1 = Wf2 = WU 1 = WU 2 = 10; in questo
modo è possibile ridurre l’errore numerico sulla massa totale rispetto ai dati sperimentali fino
a circa keM k ≃ 5%; tuttavia il margine di miglioramento sulle frequenze proprie e sulle forme
modali è molto ridotto.
f1 [ Hz ] f2 [ Hz ] f3 [ Hz ] f4 [ Hz ]
Tabella 4.1: Confronto tra i risultati sperimentali e numerici disponibili in Letteratura [3, 8]
ed i risultati numerici ottenuti mediante Code Aster relativi alle prime quattro frequenze proprie dell’ala
AGARD 445.6.
56 Problemi di verifica strutturali
0.6 0.6
0.5 0.5
0.4 0.4
0.3 0.3
0.2 0.2
0.1 0.1
0 0
Figura 4.6: Confronto tra i risultati sperimentali (sinistra) ed i risultati numerici ottenuti mediante
Code Aster (destra) relativi alla forma modale n◦ 1.
0.45 0.45
0.4 0.4
0.35 0.35
0.3 0.3
0.25 0.25
0.2 0.2
0.15 0.15
0.1 0.1
0.05 0.05
0 0
Figura 4.7: Confronto tra i risultati sperimentali (sinistra) ed i risultati numerici ottenuti mediante
Code Aster (destra) relativi alla forma modale n◦ 2.
0.35 0.35
0.3 0.3
0.25 0.25
0.2 0.2
0.15 0.15
0.1 0.1
0.05 0.05
0 0
Figura 4.8: Confronto tra i risultati sperimentali (sinistra) ed i risultati numerici ottenuti mediante
Code Aster (destra) relativi alla forma modale n◦ 3.
Taratura del modello strutturale dell’ala AGARD 445.6 57
0.4 0.4
0.35 0.35
0.3 0.3
0.25 0.25
0.2 0.2
0.15 0.15
0.1 0.1
0.05 0.05
0 0
Figura 4.9: Confronto tra i risultati sperimentali (sinistra) ed i risultati numerici ottenuti mediante
Code Aster (destra) relativi alla forma modale n◦ 4.
0.009 0.035
0.008
0.03
0.007
0.025
0.006
0.005 0.02
0.004 0.015
0.003
0.01
0.002
0.005
0.001
0 0
Figura 4.10: Errore relativo tra i risultati sperimentali ed i risultati numerici ottenuti mediante
Code Aster relativi alla forma modale n◦ 1 (sinistra) e n◦ 2 (destra).
0.06 0.09
0.08
0.05
0.07
0.04 0.06
0.05
0.03
0.04
0.02 0.03
0.02
0.01
0.01
0 0
Figura 4.11: Errore relativo tra i risultati sperimentali ed i risultati numerici ottenuti mediante
Code Aster relativi alla forma modale n◦ 3 (sinistra) e n◦ 4 (destra).
58 Problemi di verifica strutturali
Capitolo 5
dove V ⊆ RNd è il dominio spaziale del problema delimitato dal contorno S = ∂V ⊆ RNd −1 ,
b (x, t) è il versore normale al contorno S convenzionalmente assunto positivo se uscente.
mentre n
59
60 Scelta del solutore aerodinamico
dove ρ(x, t), v(x, t) e E t (x, t) sono la densità, la velocità e l’energia totale specifica per unità di
volume, P (x, t) è la pressione termodinamica, che per chiudere il problema deve essere espressa
in funzione delle variabili conservative mediante un’opportuna equazione di stato (ad esempio
la legge dei gas ideali), ed infine [ I ] ∈ RNd ×Nd è la matrice identità.
Affinché il problema (5.1) sia ben posto è necessario assegnare opportune condizioni iniziali
e condizioni al contorno, definendo rispettivamente il valore assunto dalla soluzione in tutto il
dominio V all’istante iniziale t = 0 ovvero u(x, 0) = u0 (x) ed il valore assunto dalla soluzione sul
bordo di inflow S inf low , che corrisponde alla porzione del contorno lungo cui β · n b < 0, dove β
è la velocità locale di advezione, ad ogni istante di tempo t ∈ T ovvero u(x ∈ S inf low , t) = b(t).
Ai fini della soluzione del problema aeroelastico è fondamentale calcolare il vettore delle
forze aerodinamiche generalizzate agenti sul sistema strutturale. Con riferimento alla relazione
(2.3) e ricordando che nell’ipotesi di fluido ideale i carichi aerodinamici sono costituiti esclusiva-
mente dalla pressione termodinamica P (x, t) agente nella direzione normale al contorno n b (x, t),
è possibile scrivere: I
{Qa (t)} = q∞ [ N (x) ]T Cp (x, t) n
b (x, t) dS, (5.3)
S
P (x, t) − P∞
Cp (x, t) = . (5.4)
q∞
- capacità di gestire in modo flessibile griglie di calcolo 1D, 2D e 3D, di complessità arbi-
traria ed eventualmente ibride, create nella fase di pre-processing mediante un opportuno
generatore di griglia e memorizzate secondo un formato standard;
- creare una base di utenti il più possibile ampia per velocizzare il processo di individuazione
e correzione degli errori, di ottimizzazione dell’efficienza di calcolo e di validazione dei
risultati numerici e contemporaneamente per arricchire la documentazione ed il database
di problemi di verifica (attualmente insufficiente);
Metodi numerici ovvero tutte le librerie relative alla discretizzazione numerica del problema
nello spazio, ad esempio mediante il metodo dei volumi finiti (FV) implementato nella
libreria finiteVolume, e nel tempo, ad esempio mediante il metodo di Runge-Kutta (RK)
implementato nella libreria ODE;
Griglia di calcolo ovvero tutte le librerie relative alla creazione ed alla gestione delle strutture
dati per memorizzare le connettività (solo minimali) della griglia di calcolo (meshTools)
ed alla deformazione dinamica della griglia di calcolo (dynamicMesh);
Solutore aerodinamico OpenFOAM 63
OpenFOAM-1.4.1
applications Applicazioni
solvers Solutori
utilities Utilities
src Librerie
OpenFOAM Kernel
wmake Compilatore
Figura 5.1: Schema a blocchi che riassume l’organizzazione del solutore aerodinamico OpenFOAM.
Kernel ovvero tutte le librerie relative alla definizione delle classi di minimo livello gerarchico,
ad esempio per la gestione dell’esecuzione del programma principale e per la memorizza-
zione delle variabili (OpenFOAM);
Calcolo parallelo ovvero tutte le librerie relative alla decomposizione della griglia di calcolo ed
alla parallelizzazione delle applicazioni sia su calcolatori di architettura SMP (Symmetric
Multi-Processor ) che su cluster di calcolatori opportunamente connessi in rete (PStream);
Modelli fisici ovvero tutte le librerie relative alla definizione dei possibili modelli termodinamici
per approssimare il reale comportamento del fluido di lavoro (thermophysicalModels)
e dei possibili modelli di turbolenza per approssimare il contributo degli sforzi di Reynolds
(turbulenceModels).
system all’interno della quale è necessario definire i files controlDict, fvSchemes e fvSolution
relativi rispettivamente all’intervallo di integrazione temporale, alla discretizzazione nume-
rica del problema mediante il metodo dei volumi finiti (FV) ed ai metodi diretti o iterativi
per la soluzione dei sistemi lineari.
64 Scelta del solutore aerodinamico
$MYPATH/TestProblem
constant Costanti
thermodynamicProperties Termodinamica
points Nodi
faces Facce
owner Celle
0 Condizioni iniziali
P Pressione P
T Temperatura T
U Velocità v
Figura 5.2: Schema a blocchi che riassume l’organizzazione della cartella $MYPATH/TestProblem, ad
esempio per il solutore delle equazioni di Eulero rhoSonicFoam.
Regione
1 Regione
2 Regione
3
2 M2 , P2 , T2
v1 θ v2
h
θ v3
v2
1 M1 , P1 , T1
3 M3 , P3 , T3
α1 α2
1111111111111111111111111111111111111111111111111111
0000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000
1111111111111111111111111111111111111111111111111111
0000000000000000000000000000000000000000000000000000
1111111111111111111111111111111111111111111111111111
Figura 5.3: Dominio di calcolo e soluzione analitica del problema di riflessione dell’urto obliquo.
66 Scelta del solutore aerodinamico
Figura 5.4: Confronto tra le griglie di calcolo per il problema di riflessione dell’urto obliquo utilizzate
per valutare l’ordine di accuratezza spaziale e temporale dei solutori disponibili.
Per valutare l’ordine di accuratezza spaziale e temporale dei solutori disponibili è necessa-
rio calcolare l’errore relativo keh kL1 della soluzione numerica rispetto alla soluzione analitica
aumentando il numero di elementi Ne con cui discretizzare il dominio di calcolo e contempora-
neamente riducendo l’intervallo di integrazione temporale ∆t a pari numero di Courant Comax ;
nel caso in esame sono utilizzate le quattro griglie di calcolo A, B, C, D strutturate ad elementi
quadrangolari ortogonali (ottimali per il programma OpenFOAM) rappresentate in Figura 5.4
rispettivamente di passo hA = 1/10 m, hB = 1/20 m, hC = 1/40 m, hD = 1/80 m e gli intervalli
di integrazione temporale ∆tA = 4 · 10−5 s, ∆tB = 2 · 10−5 s, ∆tC = 1 · 10−5 s, ∆tD = 5 · 10−6 s.
Per valutare l’efficienza computazionale dei solutori disponibili è necessario calcolare il tempo
di esecuzione per una singola iterazione temporale CPUtime; nel caso in esame è utilizzato un
computer AMD64 3500+ con processore AMD Athlon 64 da 2.2 GHz di frequenza massima,
1 Gbyte di memoria RAM, 512 Kbyte di cache L2 e sistema operativo Linux con kernel aggiornato
alla versione 2.6.18.
Per tutti i solutori considerati sono di seguito riportati i risultati numerici relativi al campo
della pressione termodinamica P e della densità ρ, all’ordine di accuratezza spaziale e tem-
porale ed all’efficienza computazionale ottenuti lasciando invariati rispetto ai tutorials i files
controlDict, fvSchemes e fvSolution, ad eccezione eventualmente dei parametri relativi
all’algoritmo Pressure Implicit with Splitting Operators (PISO).
rhoSonicFoam.C
solve
(
fvm::ddt(rho)
+ fvm::div(phiv, rho)
);
p = rho/(R*T);
solve
(
fvm::ddt(rhoU)
+ fvm::div(phiv, rhoU)
==
- fvc::grad(p)
);
U = rhoU/rho;
solve
(
fvm::ddt(rhoE)
+ fvm::div(phiv, rhoE)
==
- fvc::div(phiv2, p)
);
T = ( rhoE - 0.5*rho*magSqr(rhoU/rho) )/Cv/rho;
Figura 5.5: Soluzione numerica del problema C ottenuta mediante il solutore aerodinamico rhoSonicFoam
relativa al campo della pressione termodinamica P ; inoltre per evidenziare la topologia della corrente sono
rappresentate 20 isolinee del campo della densità ρ equispaziate tra il valore minimo ρmin = 1.225 kg/m3
ed il valore massimo ρmax = 3.250 kg/m3 della soluzione analitica.
68 Scelta del solutore aerodinamico
× 10−3 × 10−3
100 100
10 10 O(∆t)
O(h)
||eh||L1 [−]
||eh||L1 [−]
1 1
O(h2) O(∆t2)
0.1 0.1
0.001 0.01 0.1 1 1 10 100
h[m] ∆t [ s ] × 10−6
Figura 5.6: Errore relativo keh kL1 della soluzione numerica rispetto alla soluzione analitica relativa al
campo della pressione temodinamica P (•), temperatura T (•) e velocità v (•) al diminuire del passo
di griglia h (sinistra) e dell’intervallo di integrazione temporale ∆t (destra).
× 10−2
100
CPU time [ s ]
Ne EE CN
10
CPUtime [ s ]
Figura 5.7: Tempo di esecuzione per una singola iterazione temporale CPUtime relativo agli schemi
di discretizzazione temporale Eulero Esplicito () e Crank Nicholson () all’aumentare del numero di
elementi della griglia di calcolo Ne .
A differenza del caso precedente sono implementati un ciclo di correzione esterno per recuperare
almeno parzialmente l’informazione relativa all’accoppiamento del sistema di equazioni ed un
ciclo di correzione interno per correggere la pressione termodinamica P secondo l’algoritmo
Pressure Implicit with Splitting Operators (PISO) [21, 43], opportunamente esteso al caso
comprimibile nonostante esso sia generalmente utilizzato solo nel caso incomprimibile.
rhopSonicFoam.C
Ciclo di correzione esterno per recuperare l’accoppiamento delle equazioni del problema.
for ( int outerCorr = 0; outerCorr < nOuterCorr; outerCorr++ )
{
Ciclo di correzione interno secondo l’algoritmo Pressure Implicit with Splitting Operators
(PISO) [21, 43], opportunamente esteso al caso comprimibile.
for ( int corr=0; corr < nCorr; corr++ )
{
70 Scelta del solutore aerodinamico
fvScalarMatrix pEqn
(
fvm::ddt(psi, p)
+ mvConvection.fvcDiv(phiv, rho)
+ fvc::div(phiGradp)
- fvm::laplacian(rrhoUAf, p)
);
pEqn.solve();
rho = p/(R*T);
rhoU = HbyA - rrhoUA*fvc::grad(p);
rhoU.correctBoundaryConditions();
}
}
Figura 5.8: Soluzione numerica del problema C ottenuta con il solutore aerodinamico rhopSonicFoam
relativa al campo della pressione termodinamica P ; inoltre per evidenziare la topologia della corrente sono
rappresentate 20 isolinee del campo della densità ρ equispaziate tra il valore minimo ρmin = 1.225 kg/m3
ed il valore massimo ρmax = 3.250 kg/m3 della soluzione analitica.
× 10−3 × 10−3
100 100
10 10 O(∆t)
O(h)
||eh||L1 [−]
||eh||L1 [−]
1 1
O(h2) O(∆t2)
0.1 0.1
0.001 0.01 0.1 1 1 10 100
h[m] ∆t [ s ] × 10−6
Figura 5.9: Errore relativo keh kL1 della soluzione numerica rispetto alla soluzione analitica relativa al
campo della pressione temodinamica P (•), temperatura T (•) e velocità v (•) al diminuire del passo
di griglia h (sinistra) e dell’intervallo di integrazione temporale ∆t (destra).
Valutazione dei solutori aerodinamici disponibili 71
× 10−2
100
CPU time [ s ]
Ne EE CN
10
CPUtime [ s ]
Figura 5.10: Tempo di esecuzione per una singola iterazione temporale CPUtime relativo agli schemi
di discretizzazione temporale Eulero Esplicito () e Crank Nicholson () all’aumentare del numero di
elementi della griglia di calcolo Ne .
sonicFoam.C
solve
(
fvm::ddt(rho, U)
+ fvm::div(phi, U)
- fvm::laplacian(mu, U)
==
- fvc::grad(p)
);
solve
(
fvm::ddt(rho, e)
+ fvm::div(phi, e)
- fvm::laplacian(mu, e)
==
- p*fvc::div(phi/fvc::interpolate(rho))
+ mu*magSqr(symm(fvc::grad(U)))
);
T = e/Cv;
Ciclo di correzione interno secondo l’algoritmo Pressure Implicit with Splitting Operators
(PISO) [21, 43], opportunamente esteso al caso comprimibile.
fvScalarMatrix pEqn
(
fvm::ddt(psi, p)
+ fvm::div(phid, p, "div(phid,p)")
- fvm::laplacian(rho*rUA, p)
);
pEqn.solve();
rho = p/(R*T);
U = U - rUA*fvc::grad(p);
U.correctBoundaryConditions();
}
Valutazione dei solutori aerodinamici disponibili 73
Figura 5.11: Soluzione numerica del problema C ottenuta mediante il solutore aerodinamico sonicFoam
relativa al campo della pressione termodinamica P ; inoltre per evidenziare la topologia della corrente sono
rappresentate 20 isolinee del campo della densità ρ equispaziate tra il valore minimo ρmin = 1.225 kg/m3
ed il valore massimo ρmax = 3.250 kg/m3 della soluzione analitica.
× 10−3 × 10−3
100 100
10 10 O(∆t)
O(h)
||eh||L1 [−]
||eh||L1 [−]
1 1
O(h2) O(∆t2)
0.1 0.1
0.001 0.01 0.1 1 1 10 100
h[m] ∆t [ s ] × 10−6
Figura 5.12: Errore relativo keh kL1 della soluzione numerica rispetto alla soluzione analitica relativa al
campo della pressione temodinamica P (•), temperatura T (•) e velocità v (•) al diminuire del passo
di griglia h (sinistra) e dell’intervallo di integrazione temporale ∆t (destra).
× 10−2
100
CPU time [ s ]
Ne EE CN
10
CPUtime [ s ]
Figura 5.13: Tempo di esecuzione per una singola iterazione temporale CPUtime relativo agli schemi
di discretizzazione temporale Eulero Esplicito () e Crank Nicholson () all’aumentare del numero di
elementi della griglia di calcolo Ne .
74 Scelta del solutore aerodinamico
Solutori A p Rh B q R∆t
Figura 5.14: Esempio di utilizzo del generatore di griglie Gmsh (sinistra) e del post-processore
ParaView (destra).
76 Scelta del solutore aerodinamico
Capitolo 6
Progetto ed implementazione
del solutore aerodinamico
77
78 Progetto ed implementazione del solutore aerodinamico
Sh = ∂Vh
00000000
11111111
1111111
0000000
0000000
1111111
00000000
11111111
000000000000
111111111111
000000000000
111111111111
0000000
1111111
00000000
11111111
0000000
1111111
00000000
11111111
0000000
1111111
00000000
11111111
S = ∂V
000000000000
111111111111 0000000
1111111
00000000
11111111
000000000000
111111111111 0000000
1111111
00000000
11111111
0000000
1111111
00000000
11111111
000000000000
111111111111 0000000
1111111
00000000
11111111
000000000000
111111111111
000000000000
111111111111 0000000
1111111
00000000
11111111
000000000000
111111111111 0000000
1111111
00000000
11111111
000000000000
111111111111 0000000
1111111
00000000
11111111
0000000
1111111
00000000
11111111
000000000000
111111111111 00000000000000
11111111111111
0000000
1111111 0
1
00000000
11111111
000000000000
111111111111
000000000000
111111111111 00000000000000
11111111111111
0000000
1111111 0
1
000000000000
111111111111 00000000000000
11111111111111
0000000
1111111 0
1
000000000000
111111111111 00000000000000
11111111111111
0000000
1111111 0
1
000000000000
111111111111
000000000000
111111111111
000000000000
111111111111
iΩ Ω 00000000000000
11111111111111
0000000
1111111
0000000
1111111
j 0000000
1111111
0000000
1111111
0
1
0000000000000
1111111111111
00000000000000
11111111111111
0
1
0000000000000
1111111111111
0000000
1111111 0
1
0000000000000
1111111111111
0000000000
1111111111
000000000000
111111111111
0000000000
11111111110000000000
11111111110000000
1111111 0
1
0000000000000
1111111111111
00000000001111111
1111111111
0001111111111
111
0000000000
1111111111
000
11100000000000000000 0
1
0000000000000
1111111111111
0000000000
1111111111 0000000
1111111
00000000001111111
1111111111
0001111111111
111 0
1
0000000000000
1111111111111
0
1
0000000
0000000000000
1111111111111
0000000000
1111111111
000
111
0000000000
1111111111
000
111
0000000000
1111111111
111
0000000000
1111111111
Γ
0000000000
0000000000
1111111111
ij
1111111111
0001111111111
0000000000
b
n
0000000
1111111
ij
0000000
1111111
0000000
0
1
0000000000000
1111111111111
0
1
0000000000000
1111111111111
00000000001111111 0
1
0000000000000
1111111111111
000
111
0000000000
1111111111 0000000
1111111 0
1
0000000000000
1111111111111
00000000001111111
1111111111
0001111111111
111
00000000
11111111
0000000000
1111111111
000
111
00000000
11111111 00000000000000000 0
1
000
111
00000000
11111111 0000000000
11111111110000000
1111111
0000000
1111111
0001111111111
111
00000000
11111111 0000000000
00000000001111111
11111111110000000
000
111
00000000
11111111
0001111111111
111
00000000
11111111 0000000
1111111
00000000001111111
1111111111
000
111
00000000
11111111 00000000000000000
000
111
00000000
11111111 00000000001111111
11111111110000000
0000000
1111111
000
111
00000000
11111111
000
111
00000000
11111111
000
111
00000000
11111111
000
111
00000000
11111111
000
111
00000000
11111111
000
111
00000000
11111111
000
111
00000000
11111111
nG
R(b ij )
y, v
L x, u
b ij
n
Ωi
Y, v Y
z, w
Γij
G X, v X
Z, v Z
1 0 0 0 0
0 n
bX n Y
bij n Z
bij 0
ij
n
bYij n
bX
ij
0
nGij ) = 0 − q
R(b q 0 , (6.6)
1 − (bnZij )2 1 − (b nZij )2
q
n
bX · n bZ n
bYij · n
bZij
0 − q ij ij −q nZij )2
1 − (b 0
1 − (bnZij )2 1 − (b nZij )2
0 0 0 0 1
dove nb Gij = (b
nXij , n
bYij , n
bZij ) sono le componenti del versore normale all’interfaccia Γij valutate nel
sistema di riferimento globale G (X − Y − Z). Ovviamente è necessario trattare separatamente
il caso particolare in cui il versore normale all’interfaccia n b ij sia allineato con il versore b
eZ del
sistema di riferimento globale.
In corrispondenza di ogni interfaccia Γij è allora possibile esprimere in modo semplice
il vettore dei flussi numerici FL ij (t) nel nuovo sistema di riferimento locale L (x − y − z)
in funzione dei vettori delle variabili conservative mediate UL i (t) = RUi (t) e Uj (t) = RUj (t);
G L G
successivamente per determinare il vettore dei flussi numerici Fij (t) nel sistema di riferimento
G
FGij = R−1 FL
ij ( R Ui , R Uj ).
G G
(6.7)
3. il problema linearizzato (6.8) deve essere equivalente al problema originale scritto in forma
conservativa (6.5) e di conseguenza la matrice A b deve soddisfare l’identità:
b (uj − ui ).
f(uj ) − f(ui ) ≡ A (6.9)
Flussi numerici del primo ordine 81
Nel caso in esame di gas ideale politropico (PIG) le matrici degli autovettori destri R(u)
e degli autovalori Λ(u) della matrice Jacobiana proiettata del vettore delle funzioni di flusso
A(u) sono rispettivamente pari a:
1 1 1 1 1 u−c 0 0 0 0
u−c u u u u + c 0 u 0 0 0
v v v−c v v 0 0 u 0 0 ,
R= e Λ=
w w w w−c w 0
0 0 0 u
|v|2 |v|2 |v|2
t
h − uc − vc t
− wc h + uc 0 0 0 0 u+c
2 2 2
dove la velocità del suono c(x, t) può essere espressa in funzione delle variabili velocità v(x, t)
ed entalpia totale specifica per unità di massa ht (x, t), di cui è noto lo stato intermedio secondo
Roe, nel seguente modo:
2 t 1 2
c = (γ − 1) h − |v| . (6.13)
2
Uno svantaggio della linearizzazione di Roe è che la soluzione approssimata del problema di
Riemann risultante a cavallo di ogni interfaccia Γij tra le celle di calcolo Ωi ed Ωj è composta
unicamente dalla combinazione di soluzioni elementari discontinue e mai di onde di rarefazione:
tutto ciò può comportare una violazione della condizione di entropia [24, 25]. Di conseguenza
può essere necessario introdurre una correzione sugli autovalori del problema linearizzato (6.8)
chiamata Entropy Fix (EF), cosicché la soluzione numerica sia sempre fisicamente accettabile.
La strategia correttiva più comunemente utilizzata è state proposta da A. Harten e J. M. Hyman
(HH) e consiste nel modificare ogni q-esimo elemento della matrice degli autovalori |Λ| b secondo
il seguente algoritmo:
b 2
b EF 1 |λ q| bq | < εq ,
|λq | = + εq se |λ (6.14)
2 εq
82 Progetto ed implementazione del solutore aerodinamico
bq − λiq , λjq − λ
dove il coefficiente εq = max(0, λ bq ) non è altro che la massima differenza positiva
tra il q-esimo autovalore valutato in corrispondenza dello stato intermedio secondo Roe λ bq
e degli stati a monte λiq ed a valle λjq . Esiste un’ulteriore variante proposta da V. Selmin che
prevede di introdurre una pesatura in funzione del numero di Mach [16].
dove cij = (ci + cj )/2 è la velocità del suono mediata in corrispondenza dell’interfaccia Γij ,
mentre le funzioni empiriche f1 (Mij ) e f2 (Mij ) del numero di Mach Mij mediato in corrispon-
denza dell’interfaccia Γij secondo la relazione Mij = (ui + uj )/(ci + cj ) sono definite nel seguente
modo:
a + 3 − 2a M 2 + a − 1 M 4 se |M | < 1
0 0 ij 0 ij ij
f1 (Mij ) = 2 2 (6.19a)
|Mij | se |Mij | > 1
1 Mij ( 3 − M 2 ) se |Mij | < 1
ij
f2 (Mij ) = 2 (6.19b)
sign(Mij ) se |Mij | > 1;
il coefficiente a0 che compare nella relazione (6.19a) può essere interpretato come una mano-
polina che regola la dissipazione numerica e deve essere tarato sperimentalmente in funzione del
particolare regime di moto in esame (ad esempio in regime di moto transonico è consigliabile
imporre a0 = 1/4).
dove le velocità di propagazione Si e Sj delle onde acustiche possono essere espresse ad esempio
secondo la seguente strategia proposta da R. LeVeque, che consente di risolvere esattamente i
fenomeni d’urto:
biq , λ
Si = min( min( λ bjq ) ) e biq , λ
Sj = max( max( λ bjq ) ). (6.21)
q q
Tale metodo non consente di risolvere in modo soddisfacente eventuali discontinuità di contatto,
in corrispondenza delle quali è introdotta troppa dissipazione numerica; per correggere tale
difetto E. F. Toro, M. Spruce e W. Speares hanno proposto un metodo alternativo chiamato
Harten–Lax–vanLeer Contact (HLLC), la cui idea di base consiste nell’approssimare la soluzione
esatta del problema di Riemann (6.8) nel dominio spazio-tempo x − t con due stati intermedi
b
ui ed b
uj separati dagli stati discontinui assegnati ui ed uj mediante tre onde acustiche.
84 Progetto ed implementazione del solutore aerodinamico
0000000
1111111
00000000
11111111
0000000
1111111
00000000
11111111
111111111111
000000000000 0000000
1111111
00000000
11111111
0000000
1111111
00000000
11111111
000000000000
111111111111
000000000000
111111111111 0000000
1111111
00000000
11111111
000000000000
111111111111 0000000
1111111
00000000
11111111
0000000
1111111
00000000
11111111
000000000000
111111111111
000000000000
111111111111 0000000
1111111
00000000
11111111
000000000000
111111111111 0000000
1111111
00000000
11111111
0000000
1111111
00000000
11111111
000000000000
111111111111
000000000000
111111111111 0000000
1111111
00000000
11111111
000000000000
111111111111 0000000
1111111
00000000
11111111
00000000000000
11111111111111
0
1
000000000000
111111111111 0000000
1111111
00000000
11111111
00000000000000
11111111111111
0000000
1111111 0
1
000000000000
111111111111
000000000000
111111111111
P P
00000000000000
11111111111111
0000000
1111111 0
1
000000000000
111111111111
000000000000 i
111111111111
Ω i Ω 1111111111111111111
0000000000000000000
Ω j
0000000
1111111
j
00000000000000
11111111111111
0000000
1111111 0
1
00000000000000
11111111111111
0000000
1111111
0000000000000
11111111111110
1
0000000000000000000
1111111111111111111
000000000000
111111111111
i
000000000000
111111111111
∗
0000000000
1111111111
000000000000
111111111111
0000000000
1111111111
000
111
111111111111
000000000000
0000000000
1111111111
0000000
1111111
0000000
1111111
00000000000000
11111111111111
0000000
1111111
0000000000000
1111111111111
Ω
0000000000000
1111111111111
0
1
0
1
0000000000000000000
1111111111111111111
0000000000001111111111111111111
111111111111
0000000000
11111111110000000
1111111
0000000
1111111 j
0000000000000
1111111111111
∗
0000000000000
1111111111111
0
1
0
1
0000000000
1111111111
111
0000000000
1111111111
000
111
0000000000
1111111111
000
111
1111111111
0001111111111
000000000000
111111111111
0000000000 0000000000000000000
00000000001111111
0000000
0000000
1111111
00000000001111111
1111111111
0000000000000
1111111111111
0000000000000
1111111111111
0
1
0
1
0000000000000000000
1111111111111111111
0000000000
1111111111
111
0000000000
1111111111
000
111 000000000000
111111111111
0000000000
1111111111
0001111111111
0000000000
0000000
b
n
0000000
11111110000000000000
1111111111111
0000000000000
1111111111111
0
1
0
1
Γ 1111111111111111111
0000000000000000000
0000000000
1111111111
0000000000
1111111111
000
111
00000000
11111111
0000000000
1111111111
000
111
00000000
11111111
000000000000
111111111111
ij
0000000000
ij
0000000
1111111
00000000001111111
1111111111
0001111111111
111 0000000
000000000000
111111111111
11111111110000000
1111111
00000000001111111
0000000
0000000000000
1111111111111
0000000000000
1111111111111
0
1
0
1
0000000000000000000
1111111111111111111
0
1
000
111
00000000
11111111
0000000000
1111111111
0001111111111
111
00000000
11111111
111111111111
0000000000 0000000000000000000
1111111111111111111
0000000000001111111111111111111
0000000
1111111
0000000
1111111
0001111111111
111
00000000
11111111
000
111
00000000
11111111
1111111111
000000000000
111111111111
0000000000 0000000000000000000
00000000001111111
0000000
0000000
1111111
000
111
00000000
11111111
0000000000001111111111111111111
111111111111
0001111111111
111
00000000
11111111
000
111
00000000
11111111
0000000000 0000000000000000000
00000000001111111
11111111110000000
0000000
1111111
000
111
00000000
11111111
000
111
00000000
11111111
000
111
00000000
11111111
000000000000
111111111111
000000000000
111111111111
000
111
00000000
11111111
000
111
00000000
11111111
000
111
00000000
11111111 000000000000
111111111111
Figura 6.3: Costruzione delle celle di calcolo estese Ωi∗ ed Ωj∗ mediante l’algoritmo A (•) poco efficace
e l’algoritmo B (•) viceversa efficace.
Flussi numerici per l’alta risoluzione 85
dove Rb e Λ b sono rispettivamente le matrici degli autovettori destri e degli autovalori della
matrice Jacobiana proiettata del vettore delle funzioni di flusso valutata in corrispondenza
dello stato intermedio secondo Roe A, b mentre ∆t = t(k+1) − t(k) e ∆x = kxj − xi k sono
rispettivamente l’intervallo di integrazione temporale e spaziale; infine il vettore del salto delle
b Φ = Φ ∆W = Φ R
variabili caratteristiche ∆W b −1 (Uj − Ui ) opportunamente limitato ad esempio
mediante la strategia proposta da B. vanLeer è pari a:
b Φ = ∆W |∆Q| + ∆Q |∆W| ,
∆W (6.25)
∆Q + ∆W + ε
dove ε è un parametro positivo piccolo per evitare problemi numerici di divisione per zero,
mentre il r-esimo elemento del vettore del salto upwind delle variabili caratteristiche ∆Q = ∆Q|r
è pari a:
Rb −1 |r (Uj ∗ − Uj ) se br > 0
λ
∆Q = (6.26)
Rb −1 |r (Ui − Ui∗ ) se br ≤ 0.
λ
dove ǫ(2) = κ(2) max( νi , νj ) ed ǫ(4) = max( 0, κ(4) − ǫ(2) ) sono i coefficienti che regolano la
dissipazione numerica rispettivamente del secondo e quarto ordine; essi dipendono dai parametri
empirici validi in regime di moto transonico κ(2) = 1/4 e κ(4) = 1/256 e dai sensori della
pressione termodinamica νi e νj definiti in corrispondenza delle celle di calcolo Ωi ed Ωj nel
seguente modo:
|Pj − 2 Pi + Pi∗ | |Pj ∗ − 2 Pj + Pi |
νi = e νj = . (6.28)
Pj + 2 Pi + Pi∗ Pj ∗ + 2 Pj + Pi
dove il coefficiente Ψ(Ui , Uj ; Ui∗ , Uj ∗ ) chiamato slope limiter consente di limitare la pendenza
della ricostruzione lineare della soluzione numerica in modo tale da prevenire l’insorgere di
oscillazioni spurie in prossimità delle eventuali discontinuità, mentre (∇u)|Ωi è un’opportuna
approssimazione numerica del gradiente della soluzione valutata in corrispondenza della cella
e i |Γ (t) = U
di calcolo Ωi . È allora possibile calcolare gli stati U e i (xij , t) ed U
e j |Γ (t) = U
e j (xij , t)
ij ij
immediatamente a monte ed a valle dell’interfaccia Γij e successivamente costruire il vettore dei
flussi numerici Fij (Ue i |Γ , U
e j |Γ ).
ij ij
dove i coefficienti Umax ed Umin sono rispettivamente i valori massimo e minimo della variabile U
all’interno della bolla di celle di calcolo B(Ωi ). Solo apparentemente le informazioni relative
alle celle estese Ωi∗ e Ωj ∗ non sono necessarie: in realtà esse sono fondamentali per costruire
un’opportuna approssimazione numerica del gradiente della soluzione (∇u)|Ωi in corrispondenza
della cella di calcolo Ωi ; mediante un’approssimazione centrata accurata al primo ordine ad
esempio è possibile scrivere:
Uj − Ui∗
(∇u)|Ωi = . (6.31)
xi − xi∗
Discretizzazione temporale 87
dove Ns è il numero di stadi del metodo ed infine asj , bs e cs definiscono univocamente lo schema
e sono generalmente raccolti in forma tabulare nell’array di Butcher. Più in particolare sono
stati implementati i seguenti schemi di integrazione temporale:
Runge-Kutta 2 (RK2) ovvero un metodo a Ns = 2 stadi, caratterizzato da un numero di
Courant massimo pari a Comax = 2 e da un ordine di accuratezza massimo pari a O(∆t2 )
e definito nel seguente modo:
1 1
{U}(k+1) = {U}(k) + ∆t K1 + K2
2 2
(k)
K = R( t , {U} )(k) (6.37)
1
3 3
2.5 2.5
RK3
2 2
RK4
RK2
Im
Im
1.5 1.5
1 1
EE
AB2
0.5 0.5
0 0
-3 -2.5 -2 -1.5 -1 -0.5 0 -3 -2.5 -2 -1.5 -1 -0.5 0
Re Re
Figura 6.4: Regioni di assoluta stabilità dei metodi di integrazione temporale di Eulero Esplicito (EE)
ed Adams-Bashforth (AB2) (sinistra) e di Runge-Kutta (RK2, RK3, RK4) (destra); le regioni sono
simmetriche rispetto all’asse reale Re.
- se 0 < Nbc ≤ Nd + 2 si impongono Nbc condizioni al contorno fisiche sulle prime Nbc
variabili primitive ordinate secondo la gerarchia temperatura T , velocità v e pressione P
e quindi si ricavano Nd + 2 − Nbc condizioni al contorno numeriche imponendo che il salto
delle variabili caratteristiche in corrispondenza della ghost cell ΩGC
j sia pari al salto delle
variabili caratteristiche in corrispondenza del volume finito interno più vicino Ωi ;
- se Nbc = 0 si impone che il vettore delle variabili conservative mediate UGC j valutato in
corrispondenza della ghost cell ΩGC
j sia pari al vettore delle variabili conservative mediate
Ui valutato in corrispondenza del volume finito interno più vicino Ωi .
11111111111111
00000000000000
00000000000000
11111111111111
00000000000000
11111111111111
00000000000000
11111111111111
00000000000000
11111111111111
00000000000000
11111111111111
00000000000000
11111111111111
ΩGC
00000000000000
11111111111111
00000000000000
11111111111111
j∗
00000000000000
11111111111111 v 00000000000000
11111111111111
00000000000000
1111111111111100000000
11111111
0000000
1111111 ij
0000000000000
1111111111111
0000000
1111111 00000000000000
11111111111111
00000000000000
11111111111111
0000000
1111111
00000000000000
1111111111111100000000
11111111
0000000
1111111
0000000000000
1111111111111
0000000
1111111
00000000
11111111 00000000000000
11111111111111
0000000
1111111 0000000
1111111
0000000000000
1111111111111
0000000
1111111
00000000
11111111 00000000000000
11111111111111
0000000
1111111 0000000
1111111
0000000000000
1111111111111
0000000
1111111
00000000
11111111 00000000000000
11111111111111
0000000
1111111 0000000
1111111
0000000000000
1111111111111
0000000
1111111
00000000
11111111 u 00000000000000
11111111111111
0000000
1111111 0000000
1111111
0000000000000
1111111111111
0000000
1111111
00000000
11111111 ij
0000000
1111111
0000000
1111111 0000000
1111111
0000000000000
1111111111111
0000
1111
0000000
1111111
00000000
11111111
0000000
1111111 0000000
1111111
0000000000000
1111111111111
0000
1111
0000000
1111111
00000000
11111111 Ω GC
0000000
1111111 0000000
1111111
0000000000000
1111111111111
0000
1111
0000000
1111111
00000000
11111111 j
0000000
1111111 0000000
1111111
0000000000000
1111111111111
0000
1111
0000000
1111111
00000000
11111111 b ij
n
0000000
1111111 0000000
1111111
0000000000000
1111111111111
Ω1111111
0000000
00000000
11111111
0000000
1111111
0000000000000
1111111111111
Ω
0000000
1111111
0000000
1111111 i∗ 0000000
1111111
00000000
11111111
i
0000000
1111111
0000000000000
1111111111111
0000000
1111111
00000000
11111111
0000000
1111111
00000000000000
11111111111111
0
10000000
1111111
0000000000000
1111111111111
0000000
1111111
00000000
11111111
Γij
0000000
1111111
00000000000000
11111111111111
0
10000000
1111111
0000000000000
1111111111111
0000000
1111111
00000000
11111111
0000000
1111111
00000000000000
11111111111111
0
1 0000000000000
1111111111111
0000000
1111111
00000000
11111111
0000000000000
1111111111111
0000000
1111111
00000000000000
11111111111111
0
1 0000000
1111111
00000000
11111111
0000000000000
1111111111111
0000000
1111111
00000000000000
0000000000000
11111111111110
1
11111111111111 0000000
1111111
00000000
11111111
0000000000000
1111111111111
0000000
1111111
00000000000000
11111111111111
0000000000000
11111111111110
1 0000000
1111111
00000000
11111111
0000000
1111111
00000000000001
11111111111110 0000000
1111111
0000000000000
11111111111110
1 0000000
1111111
0000000000000
11111111111110
1 0000000
1111111
0000000000000
11111111111110
1 0000000
1111111 Sh = ∂Vh
0000000000000
11111111111110
1 0000000
1111111
0000000
1111111
0000000000000
11111111111110
1 0000000
1111111
0000000000000
11111111111110
1 0000000
1111111
0000000000000
11111111111110
1 0000000
1111111
00000000000001
11111111111110
0
1 0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
Figura 6.5: Implementazione numerica delle condizioni al contorno mediante le ghost cells.
Condizioni iniziali ed al contorno 91
Corrente supersonica
v ij · n
b ij > cij Nd + 2 T, v, P −
S inflow (SupersonicInlet)
v ij · n
b ij < 0
Corrente subsonica
v ij · n
b ij < cij Nd + 1 T, v P
(Inlet)
Corrente supersonica
v ij · n
b ij > cij 0 − T, v, P
S outflow (ExtrapolatedOutlet)
v ij · n
b ij > 0
Corrente subsonica
v ij · n
b ij < cij 1 T v, P
(Outlet)
in corrispondenza delle ghost cells Ωj ed Ωj ∗ in funzione delle soluzioni note Ui e Ui∗ relative
GC GC
ej = v j − (v j · n
v b ij ) n
b ij + Vn n
b ij . (6.40)
Ovviamente è necessario aggiornare il valore dell’energia totale specifica per unità di volume Ejt
per tenere conto della variazione dell’energia cinetica nel seguente modo:
ejt = Ejt − 1 ρj |v j |2 + 1 ρj |e
E v j |2 . (6.41)
2 2
Tabella 6.2: Parametri relativi agli schemi di discretizzazione spaziale, discretizzazione temporale,
estrapolazione delle condizioni al contorno e valutazione del residuo del solutore aerodinamico sviluppa-
to AeroFoam: più in particolare per esplicitare il vettore dei flussi numerici è utilizzato l’Approximate
Riemann Solver (ARS) di Roe con l’entropy fix di Harten ed Hyman (HH) combinato con il metodo
ad alta risoluzione di Lax-Wendroff (LW) opportunamente limitato mediante i flux limiters di
B. vanLeer (VL); infine è utilizzato lo schema di integrazione temporale di Runge-Kutta a 2 stadi (RK2).
Valutazione del solutore aerodinamico AeroFoam 93
Figura 6.6: Soluzione numerica del problema C ottenuta mediante il solutore aerodinamico AeroFoam
relativa al campo della pressione termodinamica P ; inoltre per evidenziare la topologia della corrente sono
rappresentate 20 isolinee del campo della densità ρ equispaziate tra il valore minimo ρmin = 1.225 kg/m3
ed il valore massimo ρmax = 3.250 kg/m3 della soluzione analitica.
× 10−3 × 10−3
100 100
10 10 O(∆t)
O(h)
||eh||L1 [−]
||eh||L1 [−]
1 1
O(h2) O(∆t2)
0.1 0.1
0.001 0.01 0.1 1 1 10 100
h[m] ∆t [ s ] × 10−6
Figura 6.7: Errore relativo keh kL1 della soluzione numerica rispetto alla soluzione analitica relativa al
campo della pressione temodinamica P (•), temperatura T (•) e velocità v (•) al diminuire del passo
di griglia h (sinistra) e dell’intervallo di integrazione temporale ∆t (destra).
× 10−2
100
CPU time [ s ]
Ne EE RK2
10
CPUtime [ s ]
Figura 6.8: Tempo di esecuzione per una singola iterazione temporale CPUtime relativo agli schemi
di discretizzazione temporale Eulero Esplicito () e Runge-Kutta 2 () all’aumentare del numero di
elementi della griglia di calcolo Ne .
94 Progetto ed implementazione del solutore aerodinamico
7 Speedup
6
Ne
5
400 1.049 3.076 3.897
S [−]
4
1600 0.950 2.855 3.446
3
Figura 6.9: Fattore di Speedup S del solutore sviluppato AeroFoam rispetto ai solutori disponibili
rhoSonicFoam (), rhopSonicFoam () e sonicFoam () in funzione del numero di elementi della griglia
di calcolo Ne .
Solutori A p Rh B q R∆t
Il fatto che il solutore aerodinamico sviuppato AeroFoam converga con un ordine di accura-
tezza spaziale e temporale medio non esattamente quadratico non deve stupire: infatti il metodo
ad alta risoluzione di Lax-Wendroff (LW) è accurato al secondo ordine solo nelle regioni di cor-
rente regolare, mentre in prossimità delle eventuali discontinuità il metodo è accurato solo al
primo ordine a causa della dissipazione numerica introdotta localmente mediante i flux limiters
per prevenire la formazione di oscillazioni spurie [13]. Inoltre il fatto che l’ordine di accuratezza
spaziale e temporale cresca progressivamente da lineare a quasi quadratico con il numero di ele-
menti della griglia di calcolo Ne può essere giustificato osservando che la viscosità numerica µh
dipende dal passo di griglia h [32].
Infine la Figura 6.8 relativa all’efficienza computazionale mostra che il solutore aerodinamico
sviluppato AeroFoam è caratterizzato da un tempo di esecuzione per ogni singola iterazione
CPUtime dipendente in modo sublineare dal numero di elementi Ne della griglia di calcolo e
significativamente inferiore rispetto al tempo di esecuzione per ogni singola iterazione CPUtime
dei solutori aerodinamici disponibili in OpenFOAM. Esaminando la Figura 6.9 è infatti possibile
osservare che il solutore sviluppato AeroFoam consente di raggiungere un fattore di Speedup
mediamente pari a S = 1.298 rispetto al solutore rhoSonicFoam, S = 5.016 rispetto al solutore
rhopSonicFoam ed infine S = 3.444 rispetto al solutore sonicFoam, leggermente superiori anche
rispetto a quelli dell’analogo solutore aerodinamico CentralFoam presentato in [14].
96 Progetto ed implementazione del solutore aerodinamico
Capitolo 7
In questo Capitolo il solutore aerodinamico sviluppato AeroFoam è messo alla prova affrontando
alcuni problemi di verifica di complessità crescente, in Nd = 2 e Nd = 3 dimensioni spaziali
su griglie di calcolo in generale poliedriche strutturate e non strutturate. Più in particolare
l’obiettivo è valutare l’accuratezza dei risultati numerici ottenuti con riferimento alla soluzione
analitica se disponibile, ai risultati numerici e sperimentali reperibili in Letteratura ed infine
ad i risultati numerici ottenuti mediante il solutore aerodinamico commerciale FLUENT [43],
in un campo il più ampio possibile di regimi di moto (da basso subsonico ad alto supersonico).
Per quanto riguarda i problemi bidimensionali (Nd = 2) in §7.1 la soluzione numerica della
corrente stazionaria subsonica (al limite incomprimibile) inviscida attorno ad un cilindro è con-
frontata con la soluzione analitica della teoria del potenziale; in §7.2 la soluzione numerica della
corrente stazionaria subsonica e transonica inviscida attorno ad un profilo alare NACA 0012
è confrontata con i risultati sperimentali e numerici; in §7.3 la soluzione numerica della corrente
non stazionaria transonica inviscida attorno ad un profilo alare lenticolare soggetto ad una raffi-
ca a scalino è confrontata con la soluzione analitica; in §7.4 la soluzione numerica della corrente
stazionaria all’interno ed all’esterno di un ugello convergente-divergente è confrontata con la
soluzione analitici della teoria quasi-1D e delle caratteristiche; in §7.5 la soluzione numerica
della corrente non stazionaria supersonica inviscida nel condotto di Woodward e Colella è con-
frontata con i risultati numerici. Per quanto riguarda i problemi tridimensionali (Nd = 3) in §7.6
e §7.7 le soluzioni numeriche delle correnti stazionarie transoniche attorno all’ala ONERA M6
ed al velivolo completo RAE A sono confrontate con i risultati sperimentali e e numerici.
Tali problemi aerodinamici di verifica sono risolti su un computer AMD64 3500+ con proces-
sore AMD Athlon 64 da 2.2 GHz di frequenza massima, 1 Gbyte di memoria RAM, 512 Kbyte
di cache L2 e sistema operativo Linux con kernel aggiornato alla versione 2.6.18.
7.1 Cilindro
Si richiede di risolvere numericamente il campo di moto bidimensionale attorno ad un cilindro
di raggio R = 0.5 m investito da una corrente asintotica uniforme subsonica di fluido ideale con
γ = 1.4 e R = 287.05 kgJK caratterizzata da una pressione termodinamica P∞ = 101325 P a,
una temperatura T∞ = 288.15 K, un numero di Mach M∞ = 0.1 ed infine un angolo di
incidenza α = 0◦ .
Tale problema di verifica semplice è fondamentale per valutare le prestazioni del solutore
aerodinamico sviluppato AeroFoam in prossimità del limite incomprimibile. Infatti, per numeri
di Mach della corrente asintotica inferiori a M∞ < 0.3, i solutori che si appoggiano ad una
97
98 Problemi di verifica aerodinamici
Figura 7.1: Definizione qualitativa del problema (sinistra) e dettaglio della griglia di calcolo (destra).
3.5
2.5
2
−Cp [−]
1.5
0.5
-0.5
-1
-1 -0.5 0 0.5 1
x/R [−]
Figura 7.2: Isolinee del coefficiente di pressione Cp attorno al cilindro (sinistra) e confronto tra i
risultati numerici ottenuti mediante AeroFoam (◦) e la soluzione analitica (−) relativi alla distribuzione
del coefficiente di pressione Cp sulla superficie del cilindro (destra).
Profilo alare NACA 0012 99
In Figura 7.1 sono presentati i risultati numerici relativi alla distribuzione del coefficiente di
pressione Cp sulla superficie del cilindro ottenuti imponendo i parametri relativi agli schemi di
discretizzazione spaziale, discretizzazione temporale, estrapolazione delle condizioni al contorno
e valutazione del residuo riportati in Tabella 6.2; è possibile osservare un ottimo accordo con la
soluzione analitica calcolata secondo la teoria del potenziale [1], ovvero:
11111111111111111111111111111
00000000000000000000000000000
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
∞
00000000000000000000000000000
11111111111111111111111111111 S
b
n
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
y
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
c
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
b
M∞ 00000000000000000000000000000
11111111111111111111111111111
00000000000
11111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000
11111111111
S x
00000000000000000000000000000
11111111111111111111111111111
00000000000
11111111111
t
00000000000000000000000000000
11111111111111111111111111111
00000000000
11111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000
11111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000
11111111111
00000000000000000000000000000
11111111111111111111111111111
P∞ 00000000000000000000000000000
11111111111111111111111111111
Slip
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
T∞ 00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
R
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
∞
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
Riemann
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
Figura 7.3: Definizione qualitativa del problema (sinistra) e dettaglio della griglia di calcolo (destra).
100 Problemi di verifica aerodinamici
In Figura 7.4 e nelle Figure 7.5–7.7 sono presentati i risultati numerici relativi rispet-
tivamente alle isolinee del coefficiente di pressione Cp attorno al profilo alare NACA 0012
ed alla distribuzione del coefficiente di pressione Cp sulla superficie del profilo alare NACA
0012 ottenuti imponendo i parametri relativi agli schemi di discretizzazione spaziale, discretiz-
zazione temporale, estrapolazione delle condizioni al contorno e valutazione del residuo riportati
in Tabella 6.2; è possibile osservare un ottimo accordo con i risultati numerici ottenuti mediante
il solutore aerodinamico commerciale FLUENT (con un tempo di esecuzione per ogni singola
iterazione temporale CPUtime del tutto confrontabile) ed un soddisfacente accordo con i dati
sperimentali riportati in [40]; ovviamente le discrepanze che è possibile osservare in prossimità
delle onde d’urto normali che si formano sul dorso del profilo alare per M∞ = 0.75 ed α ≥ 2◦
sono dovute all’azione degli sforzi viscosi che tendono ad addolcire le eventuali discontinuità.
Figura 7.4: Isolinee del coefficiente di pressione Cp attorno al profilo alare NACA 0012 per M∞ = 0.75
ed α = 4◦ calcolate mediante AeroFoam (sinistra) e FLUENT (destra).
1 1
0.5 0.5
−Cp [−]
−Cp [−]
0 0
-0.5 WT -0.5 WT
FLUENT FLUENT
AeroFoam AeroFoam
-1 -1
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
x/c [−] x/c [−]
Figura 7.5: Confronto tra i risultati numerici ottenuti mediante AeroFoam (), i risultati numerici
ottenuti mediante FLUENT () ed i dati sperimentali WT (◦) relativi alla distribuzione del coefficiente
di pressione Cp sulla superficie del profilo alare NACA 0012 per M∞ = 0.5 (sinistra) e M∞ = 0.75
(destra) ed α = 0◦ .
Risposta temporale ad una raffica a scalino di un profilo alare lenticolare 101
1.5 1.5
Upper Surface
1 1
Upper Surface
0.5 0.5
−Cp [−]
−Cp [−]
Lower Surface Lower Surface
0 0
WT WT
-0.5 -0.5
FLUENT FLUENT
AeroFoam AeroFoam
-1 -1
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
x/c [−] x/c [−]
Figura 7.6: Confronto tra i risultati numerici ottenuti mediante AeroFoam (), i risultati numerici
ottenuti mediante FLUENT () ed i dati sperimentali WT (◦) relativi alla distribuzione del coefficiente
di pressione Cp sulla superficie del profilo alare NACA 0012 per M∞ = 0.5 (sinistra) e M∞ = 0.75
(destra) ed α = 2◦ .
1.5 1.5
Upper Surface
1 1
Upper Surface
0.5 0.5
−Cp [−]
−Cp [−]
WT WT
-0.5 -0.5
FLUENT FLUENT
AeroFoam AeroFoam
-1 -1
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
x/c [−] x/c [−]
Figura 7.7: Confronto tra i risultati numerici ottenuti mediante AeroFoam (), i risultati numerici
ottenuti mediante FLUENT () ed i dati sperimentali WT (◦) relativi alla distribuzione del coefficiente
di pressione Cp sulla superficie del profilo alare NACA 0012 per M∞ = 0.5 (sinistra) e M∞ = 0.75
(destra) ed α = 4◦ .
Tale problema di verifica semplice è fondamentale per valutare l’accuratezza del soluto-
re aerodinamico sviluppato AeroFoam nel risolvere numericamente il transitorio aerodinamico
(fondamentale ai fini dell’analisi aeroelastica) nei regimi di moto subsonico, transonico e super-
sonico, confrontando i risultati numerici ottenuti con la soluzione analitica calcolata secondo la
teoria dei profili sottili [6].
Il dominio spaziale V è rappresentato in Figura 7.8 ed è costituito da un profilo alare S b
in corrispondenza del quale sono imposte le condizioni al contorno di non compenetrazione e
da una circonferenza esterna S ∞ di raggio R∞ = 25 m ≫ c in corrispondenza della quale sono
imposte le condizioni al contorno di Riemann. La griglia di calcolo aerodinamica è rappresentata
in Figura 7.8 ed è costituita da Nv = 6498 volumi finiti triangolari e da Nn = 6740 nodi con un
passo di griglia minimo pari a h = 0.01 m in corrispondenza del profilo alare.
11111111111111111111111111111
00000000000000000000000000000
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
∞
S
00000000000000000000000000000
11111111111111111111111111111
b
n
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
y
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
c
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
v
00000000000000000000000000000
11111111111111111111111111111
g b
00000000000000000000000000000
11111111111111111111111111111
S
00000000000000000000000000000
11111111111111111111111111111
M∞ 00000000000000000000000000000
11111111111111111111111111111 x
00000000000000000000000000000
11111111111111111111111111111
0000000000000
1111111111111
t
00000000000000000000000000000
11111111111111111111111111111
0000000000000
1111111111111
00000000000000000000000000000
11111111111111111111111111111
0000000000000
1111111111111
00000000000000000000000000000
11111111111111111111111111111
0000000000000
1111111111111
P∞ 00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
Slip
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
T∞ 00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
R
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
∞
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
Riemann
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
00000000000000000000000000000
11111111111111111111111111111
Figura 7.8: Definizione qualitativa del problema (sinistra) e dettaglio della griglia di calcolo (destra).
1.6 1.6
1.4 1.4
M∞=1.0
M∞=0.7
1.2 1.2
CL/α/2π [−]
CL/α/2π [−]
1 1
M∞=0.5
M∞=1.2
0.8 0.8
0.6 0.6
0.4 0.4
0 2 4 6 8 10 12 14 16 0 2 4 6 8 10 12 14 16
τ [−] τ [−]
Figura 7.9: Confronto tra i risultati numerici ottenuti mediante AeroFoam (◦) con la soluzione analitica
calcolata secondo la teoria dei profili sottili (−) relativi alla variazione non stazionaria della pendenza della
curva di portanza CL/α (τ ) in funzione del tempo adimensionale τ = t V∞ /La di un profilo alare lenticolare
soggetto ad una raffica a scalino in direzione trasversale di ampiezza massima vg /V∞ = tan(1◦ ).
Ugello convergente-divergente 103
10000000000000000000000000000000000000000000000000000000
0111111111111111111111111111111111111111111111111111111110
0
1
0
1 S ∞ 1010
0
1 1010
0
1 1010
0
1
0
1
0
1 10
0
1 h 1010
0
1 ∞
10
0
1
0
1 1010
0
1
0
1 1010
0
1 10
0
1
0
1 Riemann 1010
Riemann
01111111111111111111111111111111111111111111111
10000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
1111111111111111111111111111111111111111111111 10
0000000000000000000000000000000000000000000000
1111111111111111111111111111111111111111111111
b
n
0000000000000000000000000000000000000000000000
1111111111111111111111111111111111111111111111 1010
0000000000000000000000000000000000000000000000
1111111111111111111111111111111111111111111111 1010
0000000000000000000000000000000000000000000000
1111111111111111111111111111111111111111111111
l i p
0000000000000000000000000000000000000000000000
1111111111111111111111111111111111111111111111
S
0000000000000000000000000000000000000000000000
1111111111111111111111111111111111111111111111
x 10
1010
0
1
0
10000000000000000000000000000000000000000000000
1111111111111111111111111111111111111111111111
01111111111111111111111111111111111111111111111
0000000000000000000000000000000000000000000000
SupersonicInlet
10000000000000000000000000000000000000000000000
1111111111111111111111111111111111111111111111
b 1010
0
1
0
1
S
0000000000000000000000000000000000000000000000
1111111111111111111111111111111111111111111111 10
0
10000000000000000000000000000000000000000000000
1111111111111111111111111111111111111111111111 1010
0
1
0
1 t 1010
0
1 P hT h(x)
0
1 10
0
1 t 1010
0
1
0
1 T x 1010
0
1 T
0
1 10
0
1 SymmetryPlane
01111111111111111111111111111111111111111111111
10000000000000000000000000000000000000000000000 00000
11111 1100
0000000000000000000000000000000000000000000000
1111111111111111111111111111111111111111111111 0000010
11111
L L∞
Figura 7.10: Definizione qualitativa del problema (sinistra) e dettaglio della griglia di calcolo (destra).
Nelle Figure 7.11 e 7.12 sono presentati i risultati numerici relativi alle isolinee del numero di
Mach M all’interno ed all’esterno del condotto convergente-divergente (7.2) ed alla distribuzione
della pressione termodinamica P e del numero di Mach M lungo l’asse di simmetria del condotto
convergente-divergente ottenuti imponendo i parametri relativi agli schemi di discretizzazione
spaziale, discretizzazione temporale, estrapolazione delle condizioni al contorno e valutazione
del residuo riportati in Tabella 6.2; è possibile osservare un ottimo accordo con la soluzione
analitica calcolata secondo la teoria quasi-1D e la teoria delle caratteristiche [34]. Inoltre, dato
che la pressione atmosferica Pa è inferiore alla pressione termodinamica in corrispondenza della
sezione di efflusso Pe ovvero Pa < Pe , l’ugello è detto sottoespanso ed esternamente ad esso si
genera una serie periodica teoricamente infinita (in assenza di dissipazione viscosa o numerica)
di onde di espansione e compressione delimitate da una discontinuità di contatto di spessore
teoricamente infintesimo (in assenza di dissipazione viscosa o numerica).
2.00
1.50
1.00
0.50
0.00
0.00 2.00 4.00 6.00 8.00 10.00 12.00 14.00 16.00 18.00 20.00
Figura 7.11: Isolinee del numero di Mach M all’interno ed all’esterno del condotto convergente-
divergente (7.2) calcolate mediante AeroFoam (in alto) e secondo la teoria delle caratteristiche [34]
(al centro). È inoltre riportato (in basso) il reticolo delle linee caratteristiche della famiglia C + ()
e della famiglia C − () su cui è nota la soluzione analitica; sono inoltre messe in evidenza le porzioni del
contorno in corrispondenza delle quali si impone la condizione al contorno sulla velocità (−) piuttosto
che sulla pressione (−).
Scalino di Woodward-Colella 105
1 3
2.5
0.8
2
0.6
P/P0 [−]
M [−]
1.5
0.4
1
0.2
0.5
xT xT
0 0
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
x/L [−] x/L [−]
Figura 7.12: Confronto tra i risultati numerici ottenuti mediante AeroFoam (◦) con la soluzione analitica
calcolata secondo la teoria quasi-1D () e delle caratteristiche () relativi alla distribuzione della pres-
sione termodinamica P (sinistra) e del numero di Mach (destra) lungo l’asse di simmetria del condotto
convergente-divergente.
y
Slip
011011111111111111111111111111111111111111111111111
00000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000001010
11111111111111111111111111111111111111111111111
1010 1010
ExtrapOutlet
L
SupersonicInlet
1010 1010
1010 M ∞ 1010
h
1010 P∞ 1010
1010 T 1010
1010 ∞ Slip
00000000000000000000000000000000000000
11111111111111111111111111111111111111 1010
1010 x 00000000000000000000000000000000000000
11111111111111111111111111111111111111
S 00000000000000000000000000000000000000
11111111111111111111111111111111111111
h x nb
101111111111
000000000000000000000000000000000000000000000000
11111111111111111111111111111111111111
S
000000000011111111111111111111111111111111111111
111111111100000000000000000000000000000000000000
Figura 7.13: Definizione qualitativa del problema (in alto a sinistra) e dettaglio della griglia di calcolo
A non strutturata a volumi finiti triangolari (in alto a destra), della griglia di calcolo B strutturata a
volumi finiti quadrangolari ortogonali (in basso a sinistra) e della griglia di calcolo C non strutturata a
volumi finiti poligonali (in basso a destra). La griglia di calcolo C è generata a partire dalla griglia di
calcolo A mediante il programma Tri2Poly scritto in linguaggio SciLab.
Figura 7.14: Confronto tra la soluzione numerica relativa al campo di velocità v e 30 isolinee equispaziate
del campo di densità ρ ottenuta mediante CentralFoam sulla griglia di calcolo B riportata in Letteratura
[14] (in alto a sinistra) con quella ottenuta mediante AeroFoam sulla griglia di calcolo A (in alto a destra),
B (in basso a sinistra) e C (in basso a destra).
6
7 Geometria Sezioni y/b
5
AR 3.8 1 0.20
4
b 1.196 m 2 0.44
3
M∞ c ΛLE 30◦ 3 0.65
b
2
ΛT E 15.8◦ 4 0.80
y
λ 0.562 5 0.90
1111111111111111
0000000000000000
1
0000000000000000
1111111111111111
ΛLE 1111111111111111
0000000000000000
ΛT E
0000000000000000
1111111111111111 c 0.646 m 6 0.95
0000000000000000
1111111111111111 x
0000000000000000
1111111111111111
111111111111111111111111111111
000000000000000000000000000000
111111111111111111111111111111
000000000000000000000000000000 S 1.506 m2 7 0.99
0.44 cr
cr
Figura 7.15: Geometria dell’ala ONERA M6.
Figura 7.16: Griglia di calcolo (sinistra) e dettaglio della griglia di calcolo (destra).
In Figura 7.17 e nelle Figure 7.18–7.19 sono presentati i risultati numerici relativi rispettiva-
mente alle isolinee del campo di pressione termodinamica P ed alla distribuzione del coefficiente
di pressione Cp valutati in corrispondenza della superficie dell’ala ONERA M6 ottenuti impo-
nendo i parametri relativi agli schemi di discretizzazione spaziale, discretizzazione temporale,
estrapolazione delle condizioni al contorno e valutazione del residuo riportati in Tabella 6.2;
è possibile osservare un ottimo accordo con i risultati numerici ottenuti mediante il solutore
aerodinamico commerciale FLUENT (con un tempo di esecuzione per ogni singola iterazione
temporale CPUtime del tutto confrontabile) ed un soddisfacente accordo con i dati sperimentali
riportati in [35]; ovviamente le discrepanze che è possibile osservare in prossimità delle onde
d’urto normali che si formano sulla superficie alare sono dovute all’azione degli sforzi viscosi
che tendono ad addolcire le eventuali discontinuità.
Figura 7.17: Isolinee del campo di pressione termodinamica P sulla superficie dell’ala ONERA M6 e
sul piano di simmetria del dominio esterno calcolate mediante AeroFoam (sinistra) e FLUENT (destra).
× 10−4 1.5
100 y/b = 0.20
ρ
m 1
10 Upper Surface
Et
0.5
−Cp [−]
||∆||L1 [−]
1
0 Lower Surface
0.1 WT
-0.5
FLUENT
AeroFoam
0.01 -1
0.001 0.01 0.1 1 10 100 1000 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
t[s] × 10−4 x/c [−]
Figura 7.18: Convergenza temporale della soluzione numerica ottenuta mediante AeroFoam relativa alla
densità ρ (), quantità di moto m () e energia totale specifica per unità di volume E t () (sinistra) e
confronto tra i risultati numerici ottenuti mediante AeroFoam (), i risultati numerici ottenuti mediante
FLUENT () ed i dati sperimentali WT (◦) relativi alla distribuzione del coefficiente di pressione Cp in
corrispondenza delle sezioni alari definite in Figura 7.15 (destra).
Ala ONERA M6 109
1.5 1.5
y/b = 0.44 y/b = 0.65
1 1
Upper Surface Upper Surface
0.5 0.5
−Cp [−]
−Cp [−]
0 Lower Surface 0 Lower Surface
WT WT
-0.5 -0.5
FLUENT FLUENT
AeroFoam AeroFoam
-1 -1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x/c [−] x/c [−]
1.5 1.5
y/b = 0.80 y/b = 0.90
1 1
Upper Surface Upper Surface
0.5 0.5
−Cp [−]
−Cp [−]
0 Lower Surface 0
Lower Surface
WT WT
-0.5 -0.5
FLUENT FLUENT
AeroFoam AeroFoam
-1 -1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x/c [−] x/c [−]
1.5 1.5
y/b = 0.95 y/b = 0.99
1 1
Upper Surface Upper Surface
0.5 0.5
−Cp [−]
−Cp [−]
0 0 Lower Surface
Lower Surface
WT WT
-0.5 -0.5
FLUENT FLUENT
AeroFoam AeroFoam
-1 -1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x/c [−] x/c [−]
Figura 7.19: Confronto tra i risultati numerici ottenuti mediante AeroFoam (), i risultati numerici
ottenuti mediante FLUENT () ed i dati sperimentali WT (◦) relativi alla distribuzione del coefficiente
di pressione Cp in corrispondenza delle sezioni alari definite in Figura 7.15.
110 Problemi di verifica aerodinamici
L = 1.928 m
xw = 0.609 m
1
x
11111111
00000000
00000000 ϕ
11111111 c b = 0.457 m
00000000
11111111
00000000
11111111
3
00000000
11111111
00000000
11111111
00000000
11111111
4
00000000
11111111 5
ct = 0.076 m
Figura 7.20: Geometria del corpo assisimmetrico e dell’ala RAE A; sono inoltre messe in evidenza
le sezioni alari e della fusoliera in corrispondenza delle quali sono rilevati mediante prese di pressione
i risultati sperimentali riportati in [41].
Ala RAE A e corpo assisimmetrico 111
Figura 7.21: Griglia di calcolo (sinistra) e dettaglio della griglia di calcolo (destra).
In Figura 7.22 e nelle Figure 7.23–7.24 sono presentati i risultati numerici relativi rispettiva-
mente alle isolinee del campo di pressione termodinamica P ed alla distribuzione del coefficiente
di pressione Cp valutati in corrispondenza della superficie del corpo assisimmetrico e dell’ala
RAE A ottenuti imponendo i parametri relativi agli schemi di discretizzazione spaziale, di-
scretizzazione temporale, estrapolazione delle condizioni al contorno e valutazione del residuo
riportati in Tabella 6.2; è possibile osservare un ottimo accordo con i risultati numerici otte-
nuti mediante il solutore aerodinamico commerciale FLUENT (con un tempo di esecuzione per
ogni singola iterazione temporale CPUtime del tutto confrontabile) ed un soddisfacente accordo
con i dati sperimentali riportati in [41]; ovviamente le discrepanze che è possibile osservare in
prossimità delle onde d’urto normali che si formano sulla superficie alare sono dovute all’azione
degli sforzi viscosi che tendono ad addolcire le eventuali discontinuità.
Figura 7.22: Isolinee del campo di pressione termodinamica P sulla superficie del corpo assisimmetrico
e dell’ala RAE A calcolate mediante AeroFoam (sinistra) e FLUENT (destra).
112 Problemi di verifica aerodinamici
× 10−4 0.4
10
ϕ = +15°
ρ
0.2
m
0
Et
1
−Cp [−]
||∆||L1 [−]
-0.2
ϕ = −15°
-0.4
0.1
-0.6 WT
-0.8 FLUENT
AeroFoam
0.01 -1
0.001 0.01 0.1 1 10 100 1000 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
t[s] × 10−4 x/L [−]
0.4 0.4
ϕ = +30° ϕ = +45°
0.2 0.2
0 0
ϕ = −45°
ϕ = −30°
−Cp [−]
−Cp [−]
-0.2 -0.2
-0.4 -0.4
-0.6 WT -0.6 WT
0.4 0.4
ϕ = +60° ϕ = +90°
0.2 0.2
0 0
ϕ = −60° ϕ = −90°
−Cp [−]
−Cp [−]
-0.2 -0.2
-0.4 -0.4
-0.6 WT -0.6 WT
Figura 7.23: Convergenza temporale della soluzione numerica ottenuta mediante AeroFoam relativa
alla densità ρ (), quantità di moto m () e energia totale specifica per unità di volume E t () (alto
a sinistra) e confronto tra i risultati numerici ottenuti mediante AeroFoam (), i risultati numerici
ottenuti mediante FLUENT () ed i dati sperimentali WT (◦) relativi alla distribuzione del coefficiente
di pressione Cp in corrispondenza delle sezioni longitudinale del corpo assisimmetrico.
Ala RAE A e corpo assisimmetrico 113
1 1
y/b = 0.25 y/b = 0.40
Upper Surface
Upper Surface
0.5 0.5
Lower Surface
−Cp [−]
−Cp [−]
Lower Surface
0 0
-0.5 WT -0.5 WT
FLUENT FLUENT
AeroFoam AeroFoam
-1 -1
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
x/c [−] x/c [−]
1 1
y/b = 0.60 y/b = 0.75
−Cp [−]
-0.5 WT -0.5 WT
FLUENT FLUENT
AeroFoam AeroFoam
-1 -1
0 0.2 0.4 0.6 0.8 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x/c [−] x/c [−]
1 1
y/b = 0.85 y/b = 0.925
−Cp [−]
-0.5 WT -0.5 WT
FLUENT FLUENT
AeroFoam AeroFoam
-1 -1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x/c [−] x/c [−]
Figura 7.24: Confronto tra i risultati numerici ottenuti mediante AeroFoam (), i risultati numerici
ottenuti mediante FLUENT () ed i dati sperimentali WT (◦) relativi alla distribuzione del coefficiente
di pressione Cp in corrispondenza delle sezioni alari definite in Figura 7.20.
114 Problemi di verifica aerodinamici
Capitolo 8
Interfaccia aeroelastica
115
116 Interfaccia aeroelastica
Figura 8.1: Griglia di calcolo del modello strutturale ad elementi finiti (FEM) di piastra (sinistra) e
contorno della griglia di calcolo del modello aerodinamico a volumi finiti (FV) tetraedrici (destra) per il
problema aeroelastico di verifica dell’ala AGARD 445.6 [8].
{F as } = [ I ]T {F aa }, (8.2)
∆b
nj
us, j2
b 0, j
n
bj
n
xs, j3 e s, j (x)
u
ua, i
us, j1
x⊥
a, i
xs, j1
us, j3
Ωj xs, j2
Figura 8.2: Partizionamento della griglia di calcolo aerodinamica dell’ala AGARD 445.6 distinguendo
rispettivamente in () e () facce di contorno appartenenti ad elementi strutturali differenti (sinistra)
e schema di interpolazione lineare sul j-esimo elemento strutturale Ωj (destra).
Indicando con j1 , j2 e j3 gli indici con riferimento alla numerazione globale dei gradi di
libertà dei nodi strutturali xs, j1 , xs, j2 e xs j3 che corrispondono ai vertici del j-esimo elemento
strutturale Ωj e con us, j1 , us, j2 e us, j3 i relativi spostamenti, è possibile costruire la seguente
funzione interpolante ad esempio al primo ordine:
dove φk (x) sono opportune funzioni di base polinomiali lagrangiane tali per cui φk (xjk ) ≡ 1.
Supponendo che il versore normale ad ogni j-esimo elemento strutturale Ωj sia parallelo al
versore beZ del sistema di riferimento globale, come nel caso in esame del problema aeroelastico
di verifica dell’ala AGARD 445.6, la k-esima funzione di base assume la seguente forma:
φk (x) = ak + bk x + ck y, (8.4)
[ I|i, jk ] = φk (x⊥
a, i ). (8.6)
Infine è opportuno osservare che tale schema di interpolazione lineare a tratti del campo
degli spostamenti e delle velocità strutturali corrisponde ad uno schema di interpolazione co-
stante a tratti del campo delle variazioni ∆b n=n b−n b 0 dei versori normali deformati rispetto
alla configurazione indeformata: infatti ogni i-esima faccia di contorno della griglia di calcolo
aerodinamica il cui baricentro geometrico proiettato x⊥ a, i cada all’interno dello stesso elemento
strutturale Ωj è caratterizzata dalla variazione del versore normale ∆b ni = ∆bnj ∀ xa, i ∈ Ωj .
118 Interfaccia aeroelastica
Per verificare il corretto funzionamento di tale schema di interfaccia nelle Figure 8.3–8.6
sono rappresentate la griglia di calcolo strutturale ad elementi finiti (FEM) di piastra ed il
contorno della griglia di calcolo aerodinamica a volumi finiti (FV) tetraedrici opportunamente
deformate mediante la libreria motionSolver del programma OpenFOAM secondo le prime
quattro forme modali sperimentali dell’ala AGARD 445.6 riportate in [8]: è possibile osservare
che la ricostruzione delle superfici mediante lo schema di interpolazione lineare composita (8.3)
è sempre più che soddisfacente.
Figura 8.3: Confronto tra la griglia di calcolo strutturale ad elementi finiti (FEM) di piastra (sinistra)
ed il contorno della griglia di calcolo aerodinamica a volumi finiti (FV) tetraedrici (destra) deformate
secondo la forma modale sperimentale n◦ 1 (flessionale) dell’ala AGARD 445.6.
Figura 8.4: Confronto tra la griglia di calcolo strutturale ad elementi finiti (FEM) di piastra (sinistra)
ed il contorno della griglia di calcolo aerodinamica a volumi finiti (FV) tetraedrici (destra) deformate
secondo la forma modale sperimentale n◦ 2 (torsionale) dell’ala AGARD 445.6.
Schema di interfaccia aeroelastica 119
Figura 8.5: Confronto tra la griglia di calcolo strutturale ad elementi finiti (FEM) di piastra (sinistra)
ed il contorno della griglia di calcolo aerodinamica a volumi finiti (FV) tetraedrici (destra) deformate
secondo la forma modale sperimentale n◦ 3 (flessionale) dell’ala AGARD 445.6.
Figura 8.6: Confronto tra la griglia di calcolo strutturale ad elementi finiti (FEM) di piastra (sinistra)
ed il contorno della griglia di calcolo aerodinamica a volumi finiti (FV) tetraedrici (destra) deformate
secondo la forma modale sperimentale n◦ 4 (torsionale) dell’ala AGARD 445.6.
La regolarità del campo degli spostamenti e delle velocità interpolate in corrispondenza dei
nodi aerodinamici appartenenti al contorno del corpo dipende significativamente dalla scelta del-
la funzione peso; tipicamente sono utilizzate le Radial Basis Functions (RBF) a supporto com-
patto e di grado minimo espresse nella forma W (r/δ), dove r = kx−xs, j k e δ è un fattore di scala
che consente di modificare localmente le dimensioni Nj del supporto dei nodi strutturali xs, j ,
considerandone solo un numero minimo sufficiente di relativamente vicini e scartando viceversa
quelli più distanti in modo tale da contenere il costo computazionale. In [9] sono ad esempio
utilizzate le seguenti funzioni peso radiali a supporto compatto di grado minimo:
D’altronde è opportuno ricordare che per contenere i tempi di calcolo lo studio del problema
di flutter corrisponde all’analisi delle proprietà di stabilità in piccolo del sistema aeroelasti-
co tempo-invariante (localmente) linearizzato per spostamenti infinitesimi nell’intorno di una
condizione di equilibrio, come descritto più dettagliatamente in §2.6. Una strategia alternativa
molto più efficiente e coerente con tale linearizzazione consiste nel mantenere inalterata la griglia
di calcolo aerodinamica e viceversa modificare la condizione al contorno di non compenetrazio-
ne assegnando un valore non nullo della velocità normale Vn , detta velocità di traspirazione, in
modo tale da riprodurre gli effetti geometrici e cinemtatici del movimento del contorno.
dx(ξ, η, t)
v(ξ, η, t) ≡ = −V ∞ + ṡ(ξ, η, t). (8.12)
dt
Viceversa per quanto riguarda il versore normale alla superficie del corpo nella configu-
razione deformata nb (ξ, η, t), esso è definito nel sistema di riferimento globale solidale con la
configurazione indeformata nel seguente modo:
dove il versore normale alla superficie del corpo nella configurazione indeformata nb 0 (ξ, η, t)
e la variazione del versore normale conseguente alla deformazione strutturale ∆b
n(ξ, η, t) sono
definiti come:
x0/ξ × x0/η
b 0 (ξ, η, t) =
n (8.15a)
kx0/ξ × x0/η k
Sostituendo le relazioni (8.12) e (8.14) nella definizione della condizione al contorno di non
compenetrazione e trascurando i termini di ordine superiore al primo in s(ξ, η, t) è possibile
scrivere:
(v · n
b )|S b = (−V ∞ + ṡ) · (b n) = −V ∞ · n
n0 + ∆b b 0 − V ∞ · ∆b b 0 + O(s2 ),
n + ṡ · n (8.16)
dove i vettori riga [ A(ξ, η) ] e [ B(ξ, η) ] che moltiplicano rispettivamente i vettori degli spo-
stamenti (contributo geometrico) e delle velocità (contributo cinematico) generalizzate {q(t)} e
{q̇(t)} sono definiti come:
(x0/ξ × [ N /η ]) − (x0/η × [ N /ξ ])
[ A(ξ, η) ] = −V ∞ · [ I ] − n b0 ·
b0 n (8.19a)
kx0/ξ × x0/η k
[ B(ξ, η) ] = [ N (ξ, η) ] · n
b 0. (8.19b)
Condizioni al contorno di traspirazione 123
G C
[ Ham (k) ] = [ Ham (k) ] + ik [ Ham (k) ]. (8.20)
∆b b (ξ, η, t) − n
n(ξ, η, t) = n b 0 (ξ, η, t). (8.21)
Vn = −V ∞ · ∆b
n + ṡ · n
b 0 + ṡ · ∆b
n. (8.23)
124 Interfaccia aeroelastica
Anche in questo caso è opportuno osservare che se gli spostamenti strutturali sono effettiva-
mente molto piccoli, la velocità di traspirazione Vn risulta linearizzata numericamente dal mo-
mento che il contributo non lineare geometrico-cinematico è trascurabile rispetto al contributo
singolarmente geometrico e cinematico.
Nonostante tale strategia non sia del tutto coerente con la linearizzazione dei carichi aerodi-
namici nell’intorno di una condizione di equilibrio di riferimento presentata in §2.3, l’espressione
non lineare (8.23) della velocità di traspirazione Vn è caratterizzata da un campo di validità
in termini di numeri di Mach della corrente asinotica M∞ , angoli di incidenza α e spessori
percentuali t/c più ampio rispetto all’approssimazione linearizzata (8.17).
CL [−]
CL [−]
0.6 0.6 0.6
0 0 0
0 1 2 3 4 5 6 0 1 2 3 4 5 6 0 1 2 3 4 5 6
α [°] α [°] α [°]
Figura 8.7: Confronto tra i risultati numerici ottenuti imponendo la condizione al contorno di non
compenetrazione (•) e di traspirazione () relativi alla curva di portanza CL −α per M∞ = 0.5 (sinistra),
M∞ = 0.75 (centro) e M∞ = 1.0 (destra).
0.08 0.14
0.07 0.12
0.06 0.1
||eC || [−]
||eC || [−]
0.05 0.08
D
L
0.04 0.06
0.03 0.04
0.02 0.02
0.01 0
0.5 0.6 0.7 0.8 0.9 1 0.5 0.6 0.7 0.8 0.9 1
M∞ [−] M∞ [−]
Figura 8.8: Errore relativo tra i risultati numerici ottenuti imponendo la condizione al contorno di
non compenetrazione e di traspirazione sul coefficiente di portanza keCL k (sinistra) e sul coefficiente di
resistenza keCD k (destra) per M∞ = 0.5 (•), M∞ = 0.75 (•) e M∞ = 1.0 (•).
2 2
1.5 1.5
1 1 Upper Surface
Upper Surface
−Cp [−]
−Cp [−]
0.5 0.5
0 Lower Surface 0
Lower Surface
Figura 8.9: Confronto tra i risultati numerici ottenuti ottenuti imponendo la condizione al contorno di
non compenetrazione (•) e di traspirazione (•) relativi alla distribuzione del coefficiente di pressione Cp
sulla superficie del profilo alare NACA 0012 per M∞ = 0.5 ed α = 2◦ (sinistra) e α = 4◦ (destra).
126 Interfaccia aeroelastica
2 2
1.5 1.5
−Cp [−]
0.5 0.5
Lower Surface
0 0 Lower Surface
Figura 8.10: Confronto tra i risultati numerici ottenuti ottenuti imponendo la condizione al contorno di
non compenetrazione (•) e di traspirazione (•) relativi alla distribuzione del coefficiente di pressione Cp
sulla superficie del profilo alare NACA 0012 per M∞ = 0.75 ed α = 2◦ (sinistra) e α = 4◦ (destra).
Problema P∞ [ P a ] T∞ [ K ] M∞ [ − ]
Nelle Figure 8.11 e 8.12 sono presentati i risultati numerici relativi alle curve di portanza
CL − α ed agli errori relativi keCL k e keCD k rispettivamente sul coefficiente di portanza CL
e sul coefficiente di resistenza CD dell’ala AGARD 445.6 al variare del numero di Mach della
corrente asintotica M∞ , imponendo i parametri relativi agli schemi di discretizzazione spaziale,
discretizzazione temporale, estrapolazione delle condizioni al contorno e valutazione del residuo
riportati in Tabella 6.2. Come nel caso precedente è possibile osservare che in regime di moto
subsonico il metodo di traspirazione tende a sovrastimare il coefficiente di portanza CL , mentre
in regime di moto supersonico tale tendenza si inverte. In ogni caso l’errore relativo sul coeffi-
ciente di portanza keCL k cresce all’aumentare dell’angolo di incidenza α e del numero di Mach
della corrente asintotica M∞ ed è sempre inferiore a circa keCL k < 4%; l’errore relativo sul
coefficiente di resistenza keCD k mostra un comportamento analogo ma è leggermente superiore.
Il fatto che l’errore relativo massimo sia sul coefficiente di portanza keCL kmax che sul coeffi-
ciente di resistenza keCD kmax siano inferiori per l’ala AGARD 445.6 rispetto al profilo alare
NACA 0012 non deve stupire, dal momento che il profilo alare supercritico NACA 65A004
dell’ala AGARD 445.6 è caratterizzato da uno spessore percentuale t/c inferiore.
CL [−]
CL [−]
0 0 0
0 1 2 3 4 5 6 0 1 2 3 4 5 6 0 1 2 3 4 5 6
α [°] α [°] α [°]
Figura 8.11: Confronto tra i risultati numerici ottenuti imponendo la condizione al contorno di non
compenetrazione (•) e di traspirazione () relativi alla curva di portanza CL − α per M∞ = 0.678
(sinistra), M∞ = 0.960 (centro) e M∞ = 1.14 (destra).
0.04 0.05
0.03 0.04
||eC || [−]
||eC || [−]
0.02 0.03
D
L
0.01 0.02
0 0.01
0.6 0.7 0.8 0.9 1 1.1 1.2 0.6 0.7 0.8 0.9 1 1.1 1.2
M∞ [−] M∞ [−]
Figura 8.12: Errore relativo tra i risultati numerici ottenuti imponendo la condizione al contorno di
non compenetrazione e di traspirazione sul coefficiente di portanza keCL k (sinistra) e sul coefficiente di
resistenza keCD k (destra) per M∞ = 0.678 (•), M∞ = 0.960 (•) e M∞ = 1.140 (•).
128 Interfaccia aeroelastica
0.6 0.8
y/b = 0.10 y/b = 0.35
0.4 0.6
Upper Surface Upper Surface
0.4
0.2
−Cp [−]
−Cp [−]
0.2
0
0 Lower Surface
-0.2
Lower Surface
-0.2
Figura 8.13: Confronto tra i risultati numerici ottenuti ottenuti imponendo la condizione al contorno
di non compenetrazione (•) e di traspirazione (•) relativi alla distribuzione del coefficiente di pressione
Cp in corrispondenza delle sezioni y/b = 0.1 (sinistra) e y/b = 0.35 (destra) dell’ala AGARD 445.6.
1 1.2
y/b = 0.70 y/b = 0.95
0.8 1
Upper Surface 0.8
0.6 Upper Surface
0.6
0.4
−Cp [−]
−Cp [−]
0.4
0.2
0.2
0 Lower Surface
0 Lower Surface
-0.2
-0.2
Non Compenetrazione Non Compenetrazione
-0.4 -0.4
Traspirazione Traspirazione
-0.6 -0.6
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
x/c [−] x/c [−]
Figura 8.14: Confronto tra i risultati numerici ottenuti ottenuti imponendo la condizione al contorno
di non compenetrazione (•) e di traspirazione (•) relativi alla distribuzione del coefficiente di pressione
Cp in corrispondenza delle sezioni y/b = 0.7 (sinistra) e y/b = 0.95 (destra) dell’ala AGARD 445.6.
Infine nelle Figure 8.13 e 8.14 sono presentati i risultati numerici relativi alla distribuzione
del coefficiente di pressione Cp in corrispondenza delle sezioni y/b = 0.1, y/b = 0.35, y/b = 0.7
ed infine y/b = 0.95 dell’ala AGARD 445.6 per M∞ = 0.960 ed α = 6◦ : come nel caso precedente
è possibile osservare che il metodo di traspirazione tende a sovrastimare la posizione in corda
delle eventuali onde d’urto.
Capitolo 9
Applicazioni aeroelastiche
129
130 Applicazioni aeroelastiche
ct
M∞ c
b
y
1111111111111111
0000000000000000
2
NACA 65A004
Λc/4
1
x
0000000000000000000000000000000
1111111111111111111111111111111
0000000000000000000000000000000
1111111111111111111111111111111
0000000000000000000000000000000
1111111111111111111111111111111
cr /4
cr
Inoltre in [11, 23] si ossserva che solo i primi due modi, rispettivamente flessionale e torsiona-
le, sono effettivamente responsabili del meccanismo di flutter, mentre il terzo ed il quarto modo
proprio hanno un’influenza secondaria solamente per numeri di Mach della corrente asintotica
superiori all’unità M∞ > 1. Contrariamente a quanto fatto in [23] le forme modali non sono
proiettate nella direzione del versore normale alla pianta alare, ma sono conservate anche le
componenti fuori dal piano del vettore degli spostamenti.
Figura 9.2: Griglia di calcolo strutturale ad elementi finiti (FEM) di piastra dell’ala AGARD 445.6
deformata secondo la forma modale n◦ 1 (flessionale) di frequenza propria f1 = 9.60 Hz (sinistra)
e secondo la forma modale n◦ 2 (torsionale) di frequenza propria f2 = 38.17 Hz (destra).
Figura 9.3: Griglia di calcolo strutturale ad elementi finiti (FEM) di piastra dell’ala AGARD 445.6
deformata secondo la forma modale n◦ 3 (flessionale) di frequenza propria f1 = 48.35 Hz (sinistra)
e secondo la forma modale n◦ 4 (torsionale) di frequenza propria f2 = 91.54 Hz (destra).
132 Applicazioni aeroelastiche
Figura 9.4: Griglia di calcolo (sinistra) e dettaglio della griglia di calcolo (destra).
Condizione di equilibrio di riferimento 133
per tutti i numeri di Mach della corrente asintotica di interesse M∞ ∈ [ 0.678, 1.140 ]; la solu-
zione numerica del campo di moto non stazionario attorno all’ala AGARD 445.6 è prolungata
fino al tempo massimo adimensionale τ∞ = t∞ V∞ /La = 12 dove La = c = 0.463 m.
I parametri relativi agli schemi di discretizzazione spaziale, discretizzazione temporale, estra-
polazione delle condizioni al contorno e valutazione del residuo sono riportati in Tabella 6.2.
Il tempo di esecuzione per ogni singola iterazione temporale è pari a CPUtime = 1.11 s
su un computer AMD64 3500+ con processore AMD Athlon 64 da 2.2 GHz di frequenza mas-
sima, 1 Gbyte di memoria RAM, 512 Kbyte di cache L2 e sistema operativo Linux con kernel
aggiornato alla versione 2.6.18; nel seguito sono risportati solo i tempi di esecuzione complessivi.
Problema P∞ [ P a ] T∞ [ K ] M∞ [ − ]
0.8
0.6
0.4
0.2 1.2
0.8 1
0.4 0.6
0 0.2
0
Figura 9.5: Isolinee del campo di pressione termodinamica P sulla superficie dell’ala AGARD 445.6 e
sul piano di simmetria del dominio esterno (sinistra) e distribuzione del coefficiente di pressione Cp sul
dorso () e sul ventre () in corrispondenza delle sezioni y/b = 0.1, y/b = 0.35, y/b = 0.7 e y/b = 0.95
dell’ala AGARD 445.6 (destra) per M∞ = 0.678 e α = 0◦ .
0.6
0.4
0.2
0
-0.2
-0.4
0.8
0.6
0.4
0.2 1.2
0.8 1
0.4 0.6
0 0.2
0
Figura 9.6: Isolinee del campo di pressione termodinamica P sulla superficie dell’ala AGARD 445.6 e
sul piano di simmetria del dominio esterno (sinistra) e distribuzione del coefficiente di pressione Cp sul
dorso () e sul ventre () in corrispondenza delle sezioni y/b = 0.1, y/b = 0.35, y/b = 0.7 e y/b = 0.95
dell’ala AGARD 445.6 (destra) per M∞ = 0.960 ed α = 0◦ .
Condizione di equilibrio di riferimento 135
Figura 9.7: Isolinee del numero di Mach relative alla soluzione numerica presentata in Letteratura [23]
(sinistra) e alla soluzione numerica ottenuta mediante AeroFoam (destra) per M∞ = 0.960.
0.6
0.4
0.2
0
-0.2
-0.4
0.8
0.6
0.4
0.2 1.2
0.8 1
0.4 0.6
0 0.2
0
Figura 9.8: Isolinee del campo di pressione termodinamica P sulla superficie dell’ala AGARD 445.6 e
sul piano di simmetria del dominio esterno (sinistra) e distribuzione del coefficiente di pressione Cp sul
dorso () e sul ventre () in corrispondenza delle sezioni y/b = 0.1, y/b = 0.35, y/b = 0.7 e y/b = 0.95
dell’ala AGARD 445.6 (destra) per M∞ = 1.140 ed α = 0◦ .
Figura 9.9: Isolinee del numero di Mach relative alla soluzione numerica presentata in Letteratura [23]
(sinistra) e alla soluzione numerica ottenuta mediante AeroFoam (destra) per M∞ = 1.140.
136 Applicazioni aeroelastiche
× 10−3 × 10−1
4 0
3.5
-0.5
3
-1
2.5
Q11 [ m2 ]
q1 [ m ]
2 -1.5
1.5
-2
1
(1) -2.5 (1)
0.5
(2) (2)
0 -3
0 0.5 1 1.5 2 2.5 3 0 0.5 1 1.5 2 2.5 3
τ[−] τ[−]
Figura 9.10: Leggi di movimento a scalino assegnate degli spostamenti generalizzati q1(1) (τ ) e q1(2) (τ )
(sinistra) e relative forze generalizzate Q(1) (2)
11 (τ ) e Q11 (τ ) (destra) per M∞ = 0.678.
0.6
0.4
0.2
0
-0.2
-0.4
0.8
0.6
0.4
0.2 1.2
0.8 1
0.4 0.6
0 0 0.2
Figura 9.11: Isolinee del campo di pressione termodinamica P sulla superficie dell’ala AGARD 445.6 e
sul piano di simmetria del dominio esterno (sinistra) e distribuzione del coefficiente di pressione Cp sul
dorso () e sul ventre () in corrispondenza delle sezioni y/b = 0.1, y/b = 0.35, y/b = 0.7 e y/b = 0.95
dell’ala AGARD 445.6 (destra) per M∞ = 0.678 ed α = 0◦ .
Condizione di equilibrio di riferimento 137
× 10−3 × 10−1
4 0
3.5
3 -0.5
2.5
Q11 [ m2 ]
q1 [ m ]
2 -1
1.5
1 -1.5
(1) (1)
0.5
(2) (2)
0 -2
0 0.5 1 1.5 2 2.5 3 0 0.5 1 1.5 2 2.5 3
τ[−] τ[−]
Figura 9.12: Leggi di movimento a scalino assegnate degli spostamenti generalizzati q1(1) (τ ) e q1(2) (τ )
(sinistra) e relative forze generalizzate Q(1) (2)
11 (τ ) e Q11 (τ ) (destra) per M∞ = 0.960.
0.6
0.4
0.2
0
-0.2
-0.4
0.8
0.6
0.4
0.2 1.2
0.8 1
0.4 0.6
0 0 0.2
Figura 9.13: Isolinee del campo di pressione termodinamica P sulla superficie dell’ala AGARD 445.6 e
sul piano di simmetria del dominio esterno (sinistra) e distribuzione del coefficiente di pressione Cp sul
dorso () e sul ventre () in corrispondenza delle sezioni y/b = 0.1, y/b = 0.35, y/b = 0.7 e y/b = 0.95
dell’ala AGARD 445.6 (destra) per M∞ = 0.960 ed α = 0◦ .
× 10−3 × 10−1
4 0
3.5
3 -0.5
2.5
Q11 [ m2 ]
q1 [ m ]
2 -1
1.5
1 -1.5
(1) (1)
0.5
(2) (2)
0 -2
0 0.5 1 1.5 2 2.5 3 0 0.5 1 1.5 2 2.5 3
τ[−] τ[−]
Figura 9.14: Leggi di movimento a scalino assegnate degli spostamenti generalizzati q1(1) (τ ) e q1(2) (τ )
(sinistra) e relative forze generalizzate Q(1) (2)
11 (τ ) e Q11 (τ ) (destra) per M∞ = 1.140.
138 Applicazioni aeroelastiche
0.6
0.4
0.2
0
-0.2
-0.4
0.8
0.6
0.4
0.2 1.2
0.8 1
0.4 0.6
0 0 0.2
Figura 9.15: Isolinee del campo di pressione termodinamica P sulla superficie dell’ala AGARD 445.6 e
sul piano di simmetria del dominio esterno (sinistra) e distribuzione del coefficiente di pressione Cp sul
dorso () e sul ventre () in corrispondenza delle sezioni y/b = 0.1, y/b = 0.35, y/b = 0.7 e y/b = 0.95
dell’ala AGARD 445.6 (destra) per M∞ = 1.140 ed α = 0◦ .
Problema M∞ [ − ] µH [ − ] σH [ − ] keH k [ − ]
Tabella 9.2: Media µH , deviazione standard σH ed errore relativo keH k rispetto al valore teorico
per un sistema dinamico lineare tempo-invariante H exact = 1/2 del rapporto H = Q(1) (2)
11 (τ )/Q11 (τ )
per M∞ = 0.678, M∞ = 0.960 e M∞ = 1.140.
9.3 Flutter
Per contenere i tempi di calcolo, lo studio del problema di flutter è ricondotto all’analisi delle
proprietà di stabilità in piccolo del sistema aeroelastico tempo-invariante linearizzato per piccoli
spostamenti nell’intorno della condizione di equilibrio o trim di riferimento: è allora necessario
costruire un modello di ordine ridotto (ROM) lineare del sistema aerodinamico, rappresentato
dalla matrice delle funzioni di trasferimento aerodinamiche [ Ham (k, M∞ ) ].
Per ogni j-esimo numero di Mach della corrente asinotica M∞, j in corrispondenza del quale
sia nota la soluzione stazionaria di riferimento, è utilizzata la strategia riassunta nelle Figure
2.8 e 2.6 per calcolare l’i-esima colonna della matrice delle funzioni di trasferimento aerodina-
miche [ Ham (k, M∞, j )|i ] come il rapporto tra le trasformate di Fourier del segnale in uscita ed
ingresso al sistema aerodinamico, ovvero rispettivamente il vettore delle forze aerodinamiche
generalizzate {Qa (t)} e l’i-esimo spostamento generalizzato qi (t).
Per eccitare opportunamente il sistema aeroelastico è utilizzato il segnale in ingresso a
scalino raccordato rappresentato in Figura 2.5; per ogni i-esimo spostamento generalizzato qi (t)
l’ampiezza massima della legge di movimento assegnata è calcolata mediante la relazione (2.24)
scegliendo La = c = 0.463 m come lunghezza di riferimento aerodinamica, kmax = 10 come
massima frequenza ridotta di interesse ed infine ε = tan(1◦ ) per rimanere sempre nel campo di
piccole perturbazioni evidenziato mediante le prove di linearità dinamica.
Flutter 139
× 10−1 × 10−1
2 2
1.5 1.5
q1 [ m ]
q2 [ m ]
1 1
0.5 0.5
0 0
0 1 2 3 4 5 0 1 2 3 4 5
τ[−] τ[−]
× 10−1 × 10−1
2 20
1 15
0 10
Q11 [ m2 ]
Q12 [ m2 ]
-1 5
-2 0
-3 -5
-4 -10
0 1 2 3 4 5 0 1 2 3 4 5
τ[−] τ[−]
× 10−1 × 10−1
2 20
1 15
0 10
Q21 [ m2 ]
-1 Q22 [ m2 ] 5
-2 0
-3 -5
-4 -10
0 1 2 3 4 5 0 1 2 3 4 5
τ[−] τ[−]
Figura 9.17: Confronto tra i risultati numerici ottenuti mediante AeroFoam () ed i risultati numerici ot-
tenuti mediante EDGE () relativi alla variazione non stazionaria delle forze aerodinamiche generalizzate
{Qa (τ )} conseguenti al movimento strutturale imposto per M∞ = 0.678.
1 9
6
0
Ham, 11 [ m ]
Ham, 12 [ m ]
3
-1
0
-2 Re Re
-3
Im Im
-3 -6
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
k[−] k[−]
1 9
6
0
Ham, 21 [ m ]
Ham, 22 [ m ]
3
-1
0
-2 Re Re
-3
Im Im
-3 -6
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
k[−] k[−]
Figura 9.18: Confronto tra i risultati numerici ottenuti mediante AeroFoam (), i risultati numerici
disponibili in Letteratura [30] () ed i risultati numerici ottenuti mediante EDGE () relativi alla parte
reale Re (◦) ed immaginaria Im () della matrice delle funzioni di trasferimento aerodinamiche [ Ham (k) ]
per M∞ = 0.678.
Flutter 141
× 10−1 × 10−1
1 15
0 10
Q11 [ m2 ]
Q12 [ m2 ]
-1 5
-2 0
-3 -5
-4 -10
0 1 2 3 4 5 0 1 2 3 4 5
τ[−] τ[−]
× 10−1 × 10−1
1 15
0 10
Q21 [ m2 ]
Q22 [ m2 ]
-1 5
-2 0
-3 -5
-4 -10
0 1 2 3 4 5 0 1 2 3 4 5
τ[−] τ[−]
Figura 9.19: Confronto tra i risultati numerici ottenuti mediante AeroFoam () ed i risultati numerici ot-
tenuti mediante EDGE () relativi alla variazione non stazionaria delle forze aerodinamiche generalizzate
{Qa (τ )} conseguenti al movimento strutturale imposto per M∞ = 0.960.
1 10
0
5
Ham, 11 [ m ]
Ham, 12 [ m ]
-1
0
-2
Re -5 Re
-3
Im Im
-4 -10
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
k[−] k[−]
1 10
0
5
Ham, 21 [ m ]
Ham, 22 [ m ]
-1
0
-2
Re -5 Re
-3
Im Im
-4 -10
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
k[−] k[−]
Figura 9.20: Confronto tra i risultati numerici ottenuti mediante AeroFoam (), i risultati numerici
disponibili in Letteratura [30] () ed i risultati numerici ottenuti mediante EDGE () relativi alla parte
reale Re (◦) ed immaginaria Im () della matrice delle funzioni di trasferimento aerodinamiche [ Ham (k) ]
per M∞ = 0.960.
142 Applicazioni aeroelastiche
× 10−1 × 10−1
1 15
10
0
Q11 [ m2 ]
Q12 [ m2 ]
5
-1
0
-2
-5
-3 -10
0 1 2 3 4 5 0 1 2 3 4 5
τ[−] τ[−]
× 10−1 × 10−1
1 15
10
0
Q21 [ m2 ]
Q22 [ m2 ]
5
-1
0
-2
-5
-3 -10
0 1 2 3 4 5 0 1 2 3 4 5
τ[−] τ[−]
Figura 9.21: Confronto tra i risultati numerici ottenuti mediante AeroFoam () ed i risultati numerici ot-
tenuti mediante EDGE () relativi alla variazione non stazionaria delle forze aerodinamiche generalizzate
{Qa (τ )} conseguenti al movimento strutturale imposto per M∞ = 1.140.
1 10
0
5
Ham, 11 [ m ]
Ham, 12 [ m ]
-1
0
-2
Re -5 Re
-3
Im Im
-4 -10
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
k[−] k[−]
1 10
0
5
Ham, 21 [ m ]
Ham, 22 [ m ]
-1
0
-2
Re -5 Re
-3
Im Im
-4 -10
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
k[−] k[−]
Figura 9.22: Confronto tra i risultati numerici ottenuti mediante AeroFoam (), i risultati numerici
disponibili in Letteratura [30] () ed i risultati numerici ottenuti mediante EDGE () relativi alla parte
reale Re (◦) ed immaginaria Im () della matrice delle funzioni di trasferimento aerodinamiche [ Ham (k) ]
per M∞ = 1.140.
Flutter 143
9.3.2 Diagrammi V∞ − ω e V∞ − g
VF ωF
Iv = √ e Iω = , (9.1)
La ω α µ ωα
100 0.6
0.4
80 0.2
0
60
f [ Hz ]
-0.2
g[−]
-0.4
40
-0.6
20 -0.8
-1
VF VF
0 -1.2
200 220 240 260 280 300 200 220 240 260 280 300
V∞ [ m/s ] V∞ [ m/s ]
Figura 9.23: Diagramma V∞ − ω (sinistra) e diagramma V∞ − g (destra) per i modi propri n◦ 1 (•),
n◦ 2 (), n◦ 3 (H) e n◦ 4 (N) dell’ala AGARD 445.6 per M∞ = 0.678.
100 0.2
0.1
80
0
60
f [ Hz ]
g[−]
-0.1
40
-0.2
20
-0.3
VF VF
0 -0.4
200 250 300 350 400 200 250 300 350 400
V∞ [ m/s ] V∞ [ m/s ]
Figura 9.24: Diagramma V∞ − ω (sinistra) e diagramma V∞ − g (destra) per i modi propri n◦ 1 (•),
n◦ 2 (), n◦ 3 (H) e n◦ 4 (N) dell’ala AGARD 445.6 per M∞ = 0.960.
100 0.05
80
0
60
f [ Hz ]
g[−]
-0.05
40
-0.1
20
VF VF
0 -0.15
300 350 400 450 500 550 600 650 300 350 400 450 500 550 600 650
V∞ [ m/s ] V∞ [ m/s ]
Figura 9.25: Diagramma V∞ − ω (sinistra) e diagramma V∞ − g (destra) per i modi propri n◦ 1 (•),
n◦ 2 (), n◦ 3 (H) e n◦ 4 (N) dell’ala AGARD 445.6 per M∞ = 1.140.
Flutter 145
0.8 0.7
Experimental Experimental
CFL3D CFL3D
0.7 EDGE 0.6 EDGE
FLUENT FLUENT
AeroFoam AeroFoam
0.6 0.5
Iω [ − ]
Iv [ − ]
0.5 0.4
0.4 0.3
0.3 0.2
0.6 0.7 0.8 0.9 1 1.1 1.2 0.6 0.7 0.8 0.9 1 1.1 1.2
M∞ [ − ] M∞ [ − ]
Figura 9.26: Confronto tra l’andamento in funzione del numero di Mach della corrente asinotica M∞
del rapporto delle frequenze Iω (sinistra) e dell’indice della velocità di flutter Iv (destra) calcolati nume-
ricamente mediante AeroFoam (•), mediante FLUENT (H), mediante EDGE (N), mediante CFL3D ()
con i dati sperimentali (◦) riportati in [8].
0.45 0.7
0.55
Experimental
0.4 0.6
Iω [ − ]
Iω [ − ]
Iω [ − ]
Experimental
0.3 0.4
Experimental
0.45
0.25 0.3
0.7
0.45 0.35
Experimental 0.6
Experimental
Iv [ − ]
Iv [ − ]
Iv [ − ]
0.4 0.3
0.5
Figura 9.27: Confronto tra i risultati numerici ottenuti mediante AeroFoam (•), i risultati numerici
presentati in Letteratura [23] (•) ed i dati sperimentali [8] relativi alla sensitività del rapporto delle
frequenze Iω (in alto) e dell’indice della velocità di flutter Iv (in basso) in funzione del numero Ns di
modi propri utilizzati per M∞ = 0.678, M∞ = 0.960 e M∞ = 1.140.
146 Applicazioni aeroelastiche
Capitolo 10
Conclusioni
In questo lavoro di tesi è stato sviluppato un toolbox per la soluzione di problemi aeroelastici
in regime di moto transonico in ambito accademico ed industriale, utilizzando (forse per la
prima volta) esclusivamente strumenti di analisi liberamente disponibili in rete, non solo per la
soluzione del problema strutturale ed aerodinamico, ma anche per le fasi di pre/post–processing.
Più in particolare per risolvere il problema strutturale sono stati utilizzati il solutore strut-
turale libero ad elementi finiti (FEM) Code Aster ed il pre/post–processore Salomé ; affrontando
alcuni problemi di verifica di complessità crescente è stato possibile dimostrare che le prestazioni
in termini di accuratezza dei risultati ed efficienza di calcolo del programma Code Aster sono del
tutto confrontabili con quelle del solutore strutturale commerciale di riferimento MSC.Nastran.
Analogamente per risolvere il problema aerodinamico sono stati utilizzati il solutore aerodi-
namico libero a volumi finiti (FV) OpenFOAM, il generatore di griglie triangolari e tetraedriche
Gmsh ed il post–processore ParaView; affrontando un problema di verifica molto semplice è
stato tuttavia possibile dimostrare che le prestazioni in termini di accuratezza dei risultati ed
efficienza di calcolo dei solutori aerodinamici disponibili rhoSonicFoam, rhopSonicFoam ed infine
SonicFoam non sono del tutto soddisfacenti con riferimento al solutore aerodinamico commer-
ciale FLUENT. Di conseguenza si è scelto di progettare e sviluppare in linguaggio C++ un
nuovo solutore aerodinamico chiamato AeroFoam, utilizzando solo le librerie del programma
OpenFOAM per la gestione delle strutture dati relative alla griglia di calcolo ed alla soluzione
numerica e per le fasi di pre/post–processing.
Successivamente è stato affrontato il problema di come costruire uno schema di interfaccia
aeroelastica robusto e flessibile che consenta di realizzare praticamente la connessione ad anello
chiuso tra il sistema strutturale ed il sistema aerodinamico; per contenere i tempi di calcolo si è
scelto di simulare gli effetti geometrici e cinematici del movimento del corpo mediante le condi-
zioni al contorno di traspirazione sia nella formulazione linearizzata analitica che non lineare per
differenze finite (delle quali sono stati valutati numericamente i campi di applicabilità), senza
implementare un algoritmo di deformazione della griglia di calcolo.
Dopo avere opportunamente verificato il corretto funzionamento dei singoli strumenti del
toolbox, è stato infine affrontato il tipico problema di verifica aeroelastico in regime di moto
transonico dell’ala AGARD 445.6: è stato possibile osservare un discreto accordo con i risultati
sperimentali disponibili in Letteratura ed un buon accordo con i risultati numerici ottenuti
ad esempio mediante i solutori aerodinamici EDGE e FLUENT. Tuttavia il limite principale
del solutore aerodinamico sviluppato AeroFoam è costituito dal tempo di calcolo molto elevato
conseguente alla scelta obbligata di uno schema di integrazione temporale esplicito.
147
148 Conclusioni
Appendice A
In questa Appendice sono riportati per completezza tutti i risultati numerici ottenuti mediante
il solutore aerodinamico sviluppato AeroFoam relativi alle Ns × Ns = 16 forze aerodinamiche
generalizzate {Qa (t)} conseguenti al movimento strutturale imposto ed i relativi elementi della
matrice delle funzioni di trasferimento aerodinamiche [ Ham (k, M∞ ) ].
2 2 2 2
q1 [ m ]
q2 [ m ]
q3 [ m ]
q4 [ m ]
1 1 1 1
0 0 0 0
0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5
τ[−] τ[−] τ[−] τ[−]
149
150 Matrici delle funzioni di trasferimento aerodinamiche
1 15 5 4
0 10 0 2
Q11 [ m2 ]
Q12 [ m2 ]
Q13 [ m2 ]
Q14 [ m2 ]
-1 5 -5 0
-2 0 -10 -2
-3 -5 -15 -4
-4 -10 -20 -6
0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5
τ[−] τ[−] τ[−] τ[−]
1 15 5 4
0 10 0 2
Q21 [ m2 ]
Q22 [ m2 ]
Q23 [ m2 ]
Q24 [ m2 ]
-1 5 -5 0
-2 0 -10 -2
-3 -5 -15 -4
-4 -10 -20 -6
0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5
τ[−] τ[−] τ[−] τ[−]
1 15 5 4
0 10 0 2
Q31 [ m2 ]
Q32 [ m2 ]
Q33 [ m2 ]
Q34 [ m2 ]
-1 5 -5 0
-2 0 -10 -2
-3 -5 -15 -4
-4 -10 -20 -6
0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5
τ[−] τ[−] τ[−] τ[−]
1 15 5 4
0 10 0 2
Q41 [ m2 ]
Q42 [ m2 ]
Q43 [ m2 ]
Q44 [ m2 ]
-1 5 -5 0
-2 0 -10 -2
-3 -5 -15 -4
-4 -10 -20 -6
0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5
τ[−] τ[−] τ[−] τ[−]
Figura A.2: Confronto tra i risultati numerici ottenuti mediante AeroFoam () ed i risultati numerici ot-
tenuti mediante EDGE () relativi alla variazione non stazionaria delle forze aerodinamiche generalizzate
{Qa (τ )} conseguenti al movimento strutturale imposto per M∞ = 0.678.
Risultati numerici 151
4
0 10 0
2
-1 5 -4
Q11 [ m2 ]
Q12 [ m2 ]
Q13 [ m2 ]
Q14 [ m2 ]
0
-2 0 -8
-2
-3 -5 -12
-4
-4 -10 -16 -6
0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5
τ[−] τ[−] τ[−] τ[−]
4
0 10 0
2
-1 5 -4
Q21 [ m2 ]
Q22 [ m2 ]
Q23 [ m2 ]
Q24 [ m2 ]
0
-2 0 -8
-2
-3 -5 -12
-4
-4 -10 -16 -6
0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5
τ[−] τ[−] τ[−] τ[−]
4
0 10 0
2
-1 5 -4
Q31 [ m2 ]
Q32 [ m2 ]
Q33 [ m2 ]
Q34 [ m2 ]
0
-2 0 -8
-2
-3 -5 -12
-4
-4 -10 -16 -6
0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5
τ[−] τ[−] τ[−] τ[−]
4
0 10 0
2
-1 5 -4
Q41 [ m2 ]
Q42 [ m2 ]
Q43 [ m2 ]
Q44 [ m2 ]
0
-2 0 -8
-2
-3 -5 -12
-4
-4 -10 -16 -6
0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5
τ[−] τ[−] τ[−] τ[−]
Figura A.3: Confronto tra i risultati numerici ottenuti mediante AeroFoam () ed i risultati numerici ot-
tenuti mediante EDGE () relativi alla variazione non stazionaria delle forze aerodinamiche generalizzate
{Qa (τ )} conseguenti al movimento strutturale imposto per M∞ = 0.960.
152 Matrici delle funzioni di trasferimento aerodinamiche
4
10
0 0
2
5
Q11 [ m2 ]
Q12 [ m2 ]
Q13 [ m2 ]
Q14 [ m2 ]
-1 -5 0
0
-2
-2 -10
-5
-4
-3 -10 -15 -6
0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5
τ[−] τ[−] τ[−] τ[−]
4
10
0 0
2
5
Q21 [ m2 ]
Q22 [ m2 ]
Q23 [ m2 ]
Q24 [ m2 ]
-1 -5 0
0
-2
-2 -10
-5
-4
-3 -10 -15 -6
0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5
τ[−] τ[−] τ[−] τ[−]
4
10
0 0
2
5
Q31 [ m2 ]
Q32 [ m2 ]
Q33 [ m2 ]
Q34 [ m2 ]
-1 -5 0
0
-2
-2 -10
-5
-4
-3 -10 -15 -6
0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5
τ[−] τ[−] τ[−] τ[−]
4
10
0 0
2
5
Q41 [ m2 ]
Q42 [ m2 ]
Q43 [ m2 ]
Q44 [ m2 ]
-1 -5 0
0
-2
-2 -10
-5
-4
-3 -10 -15 -6
0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5
τ[−] τ[−] τ[−] τ[−]
Figura A.4: Confronto tra i risultati numerici ottenuti mediante AeroFoam () ed i risultati numerici ot-
tenuti mediante EDGE () relativi alla variazione non stazionaria delle forze aerodinamiche generalizzate
{Qa (τ )} conseguenti al movimento strutturale imposto per M∞ = 1.140.
Risultati numerici 153
1 9 2 6
1 4
6
0
0 2
Ham, 11 [ m ]
Ham, 12 [ m ]
Ham, 13 [ m ]
Ham, 14 [ m ]
3
-1 -1 0
0
-2 -2
-2
-3
Re Re -3 Re -4 Re
Im Im Im Im
-3 -6 -4 -6
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
k[−] k[−] k[−] k[−]
1 9 2 6
1 4
6
0
0 2
Ham, 21 [ m ]
Ham, 22 [ m ]
Ham, 23 [ m ]
Ham, 24 [ m ]
3
-1 -1 0
0
-2 -2
-2
-3
Re Re -3 Re -4 Re
Im Im Im Im
-3 -6 -4 -6
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
k[−] k[−] k[−] k[−]
1 9 2 6
1 4
6
0
0 2
Ham, 31 [ m ]
Ham, 32 [ m ]
Ham, 33 [ m ]
Ham, 34 [ m ]
3
-1 -1 0
0
-2 -2
-2
-3
Re Re -3 Re -4 Re
Im Im Im Im
-3 -6 -4 -6
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
k[−] k[−] k[−] k[−]
1 9 2 6
1 4
6
0
0 2
Ham, 41 [ m ]
Ham, 42 [ m ]
Ham, 43 [ m ]
Ham, 44 [ m ]
3
-1 -1 0
0
-2 -2
-2
-3
Re Re -3 Re -4 Re
Im Im Im Im
-3 -6 -4 -6
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
k[−] k[−] k[−] k[−]
Figura A.5: Confronto tra i risultati numerici ottenuti mediante AeroFoam (), i risultati numerici
disponibili in Letteratura [30] () ed i risultati numerici ottenuti mediante EDGE () relativi alla parte
reale Re (◦) ed immaginaria Im () della matrice delle funzioni di trasferimento aerodinamiche [ Ham (k) ]
per M∞ = 0.678.
154 Matrici delle funzioni di trasferimento aerodinamiche
1 10 4 8
0 2
5 4
Ham, 11 [ m ]
Ham, 12 [ m ]
Ham, 13 [ m ]
Ham, 14 [ m ]
-1 0
0 0
-2 -2
-5 -4
-3 -4
Re Re Re Re
Im Im Im Im
-4 -10 -6 -8
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
k[−] k[−] k[−] k[−]
1 10 4 8
0 2
5 4
Ham, 21 [ m ]
Ham, 22 [ m ]
Ham, 23 [ m ]
Ham, 24 [ m ]
-1 0
0 0
-2 -2
-5 -4
-3 -4
Re Re Re Re
Im Im Im Im
-4 -10 -6 -8
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
k[−] k[−] k[−] k[−]
1 10 4 8
0 2
5 4
Ham, 31 [ m ]
Ham, 32 [ m ]
Ham, 33 [ m ]
Ham, 34 [ m ]
-1 0
0 0
-2 -2
-5 -4
-3 -4
Re Re Re Re
Im Im Im Im
-4 -10 -6 -8
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
k[−] k[−] k[−] k[−]
1 10 4 8
0 2
5 4
Ham, 41 [ m ]
Ham, 42 [ m ]
Ham, 43 [ m ]
Ham, 44 [ m ]
-1 0
0 0
-2 -2
-5 -4
-3 -4
Re Re Re Re
Im Im Im Im
-4 -10 -6 -8
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
k[−] k[−] k[−] k[−]
Figura A.6: Confronto tra i risultati numerici ottenuti mediante AeroFoam (), i risultati numerici
disponibili in Letteratura [30] () ed i risultati numerici ottenuti mediante EDGE () relativi alla parte
reale Re (◦) ed immaginaria Im () della matrice delle funzioni di trasferimento aerodinamiche [ Ham (k) ]
per M∞ = 0.960.
Risultati numerici 155
1 10 4 8
0 2
5 4
Ham, 11 [ m ]
Ham, 12 [ m ]
Ham, 13 [ m ]
Ham, 14 [ m ]
-1 0
0 0
-2 -2
-5 -4
-3 -4
Re Re Re Re
Im Im Im Im
-4 -10 -6 -8
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
k[−] k[−] k[−] k[−]
1 10 4 8
0 2
5 4
Ham, 21 [ m ]
Ham, 22 [ m ]
Ham, 23 [ m ]
Ham, 24 [ m ]
-1 0
0 0
-2 -2
-5 -4
-3 -4
Re Re Re Re
Im Im Im Im
-4 -10 -6 -8
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
k[−] k[−] k[−] k[−]
1 10 4 8
0 2
5 4
Ham, 31 [ m ]
Ham, 32 [ m ]
Ham, 33 [ m ]
Ham, 34 [ m ]
-1 0
0 0
-2 -2
-5 -4
-3 -4
Re Re Re Re
Im Im Im Im
-4 -10 -6 -8
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
k[−] k[−] k[−] k[−]
1 10 4 8
0 2
5 4
Ham, 41 [ m ]
Ham, 42 [ m ]
Ham, 43 [ m ]
Ham, 44 [ m ]
-1 0
0 0
-2 -2
-5 -4
-3 -4
Re Re Re Re
Im Im Im Im
-4 -10 -6 -8
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
k[−] k[−] k[−] k[−]
Figura A.7: Confronto tra i risultati numerici ottenuti mediante AeroFoam (), i risultati numerici
disponibili in Letteratura [30] () ed i risultati numerici ottenuti mediante EDGE () relativi alla parte
reale Re (◦) ed immaginaria Im () della matrice delle funzioni di trasferimento aerodinamiche [ Ham (k) ]
per M∞ = 1.140.
156 Matrici delle funzioni di trasferimento aerodinamiche
Bibliografia
[1] A. Baron. Alcune Note sul Corso di Fluidodinamica. Politecnico di Milano, 2001.
[2] P. Batten, N. Clarke, C. Lambert, e D. M. Causon. “On the Choice of Wavespeeds for the
HLLC Riemann Solver”. SIAM Journal of Scientific Computing, 1996.
[7] C. Geuzaine and J. F. Remacle. “Gmsh v.2.2 User’s Guide”. www.geuz.org/gmsh, 2008.
[8] E. Carson Yates. “AGARD Standard Aeroelastic Configurations for Dynamic Response.
Candidate Configuration I Wing 445.6”. NASA Technical Memorandum 100492, 1987.
[14] L. Gasparini. “Some Results Using a New Compressible Flow Solver for OpenFOAM”.
Fondmetal Technologies, 2007.
157
158 Bibliografia
[17] R. J. Hirsch. Numerical Computation of Internal and External Flows. Wiley & Sons, 1989.
[19] A. Jameson. “Analysis and Design of Numerical Schemes for Gas Dynamics 1: Arti-
ficial Diffusion, Upwind Biasing, Limiters and Their Effect on Accuracy and Multigrid
Convergence”. NASA Contractor Report 196477, 1994.
[20] A. Jameson. “Analysis and Design of Numerical Schemes for Gas Dynamics 2: Artificial
Diffusion and Discrete Shock Structure”. NASA Contractor Report 196476, 1994.
[21] H. Jasak. “Error Analysis and Estimation for the Finite Volume Method with Application
to Fluid Flows”. Ph.D. Thesis, Imperial College, London, 1996.
[24] R. J. LeVeque. Numerical Methods for Conservation Laws. Birkäuser Verlag, 1992.
[25] R. J. LeVeque. Finite Volume Methods for Hyperbolic Problems. Cambridge University
Press, 2002.
[26] M. S. Liou e C. J. Steffen. “A New Flux Splitting Scheme: AUSM”. NASA Technical
Memorandum 104404, 1991.
[28] M. Martegani. “Un Metodo per il Calcolo del Flutter Linearizzato in Regime Transonico”.
Tesi di Laurea, Politecnico di Milano, 2003.
[29] E. Moglen e R. Stallman. “The GNU General Public License (GPL)”. Free Software
Foundation Inc., 1991.
[31] G. Quaranta. “Manuale di utilizzo di MASSA (Modern Aeroelastic State Space Analysis)”.
Politecnico di Milano, 2004.
[35] V. Schmitt e F. Charpin. “Experimental Data Base for Computer Program Assessment:
Pressure Distribution on the ONERA M6 Wing at Transonic Mach Numbers”. AGARD
Advisory Report 138, 1979.
[37] A. H. Shapiro. Dynamics and Termodynamics of Compressible Fluid Flows. Crieger, 1983.
[39] C. H. Stephens. “Modeling the Benchmark Active Control Technology Wind-Tunnel Model
for Application To Flutter Suppression”. M.Sc. Thesis, Oklahoma State University, 1995.
[47] Various Authors. “Code Aster v.9.1 User’s Guide”. www.code-aster.org, 2007.
[54] M. R. Waszak. “Modeling the Benchmark Active Control Technology Wind-Tunnel Model
for Application To Flutter Suppression”. AIAA Technical Paper 1996-3437, 1996.