Giulia Deolmi, Fabio Marcuzzi;
Università di Padova, Padova (Italy)
Email : [email protected]
Silvia Poles;
ESTECO, Padova (Italy)
Sergio Marinetti;
Istituto per le Tecnologie della Costruzione, CNR Padova (Italy)
Enginsoft CAE users’ meeting 2007 - 25-26 Ottobre 2007 Villa Caroli Zanchi Stezzano (BG)
z
• Lastra metallica di materiale e
dimensioni noti
z0
q
l
o
y
d
• Interagisco solo con una faccia S,
dotata di una matrice di sensori termici
z=0
x
q
-z0
q
y
l
S
Dc
o
= sensori termici
Investo S con un flash termico q e
raccolgo i dati sperimentali
• La corrosione è uniforme lungo z  2D
• Dc / S adiabatico
• N  numero di sensori su S  Sh
SCOPO: ricostruire il profilo di
d
corrosione incognito a partire dai dati
x
d
sperimentali
 suddivisione più fine di S: S
h
Enginsoft CAE users’ meeting 2007 - 25-26 Ottobre 2007 Villa Caroli Zanchi Stezzano (BG)
• Il profilo di corrosione è descritto
da una funzione a scalino f
Sia G la griglia costruita su Dc a
partire da Sh e con passo costante dy
q
y
S
l
altezza scalino
=
Dc
profondità
della
corrosione
nell’intervallo
f(x)
d
o
d
x
= sensori termici  suddivisione più fine di S: Sh
Griglia ottimale
S
Dc
Dobbiamo determinare   Sh tale che i
nodi di  siano i punti di discontinuità di f.
f(x)
d
o
Ricostruire il profilo reale di corrosione
equivale a determinare f tale che i
residui siano minimi
OSSERVAZIONE: se N>>1 è impensabile
usare Sh !!!
y
l
Costruisco su G un modello numerico
FEM che risolva l’equazione del calore
 ho una stima delle temperature su Sh
d
= suddivisione ottimale di S
x
A partire da  costruiamo G’ e usiamo
il modello FEM su questa
Enginsoft CAE users’ meeting 2007 - 25-26 Ottobre 2007 Villa Caroli Zanchi Stezzano (BG)
OSSERVAZIONE: dapprima consideriamo una lastra non
corrosa (f 0), registriamo le temperature sperimentali e
stimiamo i residui, per avere un valore di riferimento che
rappresenta la precisione massima del nostro modello
• La corrosione non modifica il modello FEM ma solamente il
dominio Dc
f è identificata dalla suddivisione  e dalla profondità di
ogni scalino, quindi i problemi da appontare sono:
1) Determinare  che descrive f con il
minor numero di nodi: OUTER LOOP
2) Per ogni  fissato, determinare la
profondità di ogni scalino : INNER LOOP
Ottimizzazione non lineare
Strumenti fondamentali
Raffinamento locale
Algoritmi genetici
Enginsoft CAE users’ meeting 2007 - 25-26 Ottobre 2007 Villa Caroli Zanchi Stezzano (BG)
Ad ogni parametro corrisponde una precisa zona spaziale
del profilo di corrosione
L’ampiezza di questa zona non può essere troppo grande
per assicurare la convergenza ad una stima
sufficientemente accurata del profilo di corrosione
Consideriamo la situazione di parametri non sovrapposti
Il ciclo interno si basa su un metodo di ottimizzazione non
lineare: Prediction Error Method (PEM).
Detto e il residuo della stima delle
temperature sperimentali, l’algoritmo
cerca il profilo che minimizza la
funzione di costo non lineare:
Per approfondimenti sul PEM si veda ad esempio [1].
Enginsoft CAE users’ meeting 2007 - 25-26 Ottobre 2007 Villa Caroli Zanchi Stezzano (BG)
1) Il metodo della bisezione: esempio di raffinamento
locale
Ipotesi: 0  Sh , f0 0
Sia i-1 ={0,xi-1,1,…, xi-1,k,...,1 } suddivisione all’iterazione i-1.
Iterazione i: applico il PEM a i-1.
 k t.c. la corrosione stimata in [xi-1,k,xi-1,(k+1)]
sia maggiore dell’iterazione i-1, e |xi-1,k-xi-1,(k+1)|>dx,
i=i-1 1/2(xi-1,k+xi-1,(k+1))
y
y
l
S
applico PEM:
l
Dc
o
= suddivisione iniziale  0
S
l
d
Dc
d
Parto con corrosione nulla
x
o
d
S
Dc
x
o
Stimo la corrosione su ogni
segmento
Enginsoft CAE users’ meeting 2007 - 25-26 Ottobre 2007 Villa Caroli Zanchi Stezzano (BG)
d
= nuova suddivisione
Raffino localmente la suddivisione
dove c’è corrosione maggiore
dell’iterazione precedente
x
2) Gli algoritmi genetici
Sottoinsiemi  della
suddivisione più fine
Sh={0,x1,…, xk,…, xN-2,1 }
c. b.
Successioni binarie di N
elementi, 
OBIETTIVI: cerco  ottimale t.c.
1) Il corrispondente  abbia il numero minimo di nodi;
2) Minimizzi la funzione di costo, cioè la norma del vettore
N dimensionale dei residui calcolati a partire da  e
dalla stima dei parametri.
Per approfondimenti sugli AG si veda per esempio [2].
Enginsoft CAE users’ meeting 2007 - 25-26 Ottobre 2007 Villa Caroli Zanchi Stezzano (BG)
Aspetti fondamentali
• La parametrizzazione copre tutto il dominio, quindi
la copertura avviene in modo DETERMINISTICO
• L’outer loop deve SOLO a regolare
l’adattamento della parametrizzazione
• Come vedremo algoritmi genetici confrontati col
raffinamento locale risultano troppo costosi
Enginsoft CAE users’ meeting 2007 - 25-26 Ottobre 2007 Villa Caroli Zanchi Stezzano (BG)
Per problemi
di piccola
dimensione:
suddivisione = (1 ,0 ,1 ,1 ,0 ,0 ,1 ,1 ,1, 1, 1)
Segmenti su cui stimo i parametri
-
gli 1 definiscono , cioè i nodi della mesh più fine
che considero
-
ogni parametro rappresenta la profondità sul
segmento compreso tra due 1 del vettore.
Enginsoft CAE users’ meeting 2007 - 25-26 Ottobre 2007 Villa Caroli Zanchi Stezzano (BG)
Applichiamo i metodi allo stesso problema simulato
numericamente, con N=11.
Il profilo di corrosione da stimare
è indicato in figura e la
suddivisione ottima è:
 = (1,0,1,1,0,0,1,1,1,1,1)
Quali sono i risultati dei due metodi?
Bisezione
0.09
Dopo qualche decina di minuti il metodo
converge alla soluzione:
0.08
0.07
0.06
0.05
non individua la  ottimale, pur
0.04
0.03
stimando correttamente i parametri
0.02
0.01
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Enginsoft CAE users’ meeting 2007 - 25-26 Ottobre 2007 Villa Caroli Zanchi Stezzano (BG)
Algoritmi genetici
Utilizziamo MOGA implementato in modeFRONTIER
La mesh ottimale sta sul fronte di Pareto (è il punto 257)
inoltre le generazioni tendono a convergere al fronte.
PROBLEMA: il metodo è molto lento (diverse ore per un
problema di dimensione ridotta)
Enginsoft CAE users’ meeting 2007 - 25-26 Ottobre 2007 Villa Caroli Zanchi Stezzano (BG)
mesh_index
mesh_index
mesh_index
mesh_index
= 28
===527
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
0(last)
6
7
1
2
3
4
8
9
0.09
0.09
0.09
0.08
0.08
0.08
0.07
0.07
0.07
0.06
0.06
0.06
0.05
0.05
0.05
0.04
0.04
0.04
0.03
0.03
0.03
0.02
0.02
0.02
0.01
0.01
0.01
000
000
0.1
0.1
0.1
0.2
0.2
0.2
0.3
0.3
0.3
0.4
0.4
0.4
0.5
0.5
0.5
0.6
0.6
0.6
0.7
0.7
0.7
0.8
0.8
0.8
0.9
0.9
0.9
Dati sperimentali forniti dal CNR
Enginsoft CAE users’ meeting 2007 - 25-26 Ottobre 2007 Villa Caroli Zanchi Stezzano (BG)
111
Bisezione
• E’ un algoritmo veloce
• tende a raffinare troppo, allontanandosi dalla
suddivisione ottimale
• non riconosce i minimi locali (non è robusto)
• è puramente deterministico
Algoritmi genetici
• Forniscono una visione globale del problema,
attraverso il fronte di Pareto
• Sono in grado di gestire i minimi locali
• la convergenza al fronte di Pareto è molto
lenta
• Hanno una componente probabilistica
Enginsoft CAE users’ meeting 2007 - 25-26 Ottobre 2007 Villa Caroli Zanchi Stezzano (BG)
Vorremmo ridurre il tempo di convergenza degli
algoritmi genetici
Se si conosce con sufficiente
accuratezza il valore di costo
della  ottimale, si può utilizzare
un solo obiettivo e imporre che la
funzione di costo stia in un certo
intervallo molto piccolo. Tuttavia
un approccio di questo tipo non
risolve in modo sostanziale il
problema.
ABBIAMO BISOGNO DI UNA STRATEGIA DIVERSA
Enginsoft CAE users’ meeting 2007 - 25-26 Ottobre 2007 Villa Caroli Zanchi Stezzano (BG)
Aspetti fondamentali
• Per limitare il carico computazionale il numero di
parametri deve restare contenuto
• la zona spaziale di ogni parametro non può essere troppo
grande
QUINDI
La copertura avviene in modo PROBABILISTICO
•L’ outer loop deve trovare un modo efficiente per
analizzare TUTTO il dominio, con basso margine di rischio,
mediante parametrizzazioni SPARSE
•QUI GLI ALGORITMI GENETICI DANNO UN CONTRIBUTO
FONDAMENTALE NEL TROVARE IN MODO EFFICIENTE
ZONE CORROSE SU UN DOMINIO ESTESO
Enginsoft CAE users’ meeting 2007 - 25-26 Ottobre 2007 Villa Caroli Zanchi Stezzano (BG)
Per problemi di grande dimensione siamo in presenza di
vettori sparsi quindi un approccio come quello
precedentemente introdotto non è corretto perché
tenderebbe a mediare la corrosione presente in un intervallo
ampio del dominio.
Per problemi
di grande
dimensione:
suddivisione = (0 ,0 ,0 ,0 ,0 ,0 ,0 ,1 ,0, 0, 1)
pixel = (1 ,0 ,0 ,0 ,0 ,0 ,1 ,1 ,0, 1, 1)
-
gli 1 in pixel definiscono , cioè i nodi della mesh
più fine che considero
-
Se un elemento in suddivisione è 1 vado a stimare
la corrosione SOLO sul segmento della mesh più
fine subito a sinistra
Enginsoft CAE users’ meeting 2007 - 25-26 Ottobre 2007 Villa Caroli Zanchi Stezzano (BG)
1) Creo una popolazione iniziale random e sparsa
OUTER-LOOP:
2) su ogni individuo della popolazione corrente eseguo l’INNER-LOOP, che
trasforma la popolazione iniziale:
3) stimo i valori dei parametri col PEM;
4) per ogni parametro maggiore di TOLL ( = corrosione
significativa):
5) facciamo un arricchimento locale di parametri;
6) stimo valori dei parametri (arricchiti)
7) itero da 5) finché non soddisfo un criterio di arresto
NB: le operazioni “5...7” possono essere compiute in parallelo.
8) raccolgo le informazioni dell’inner loop in un vettore “costanti” che
inizializzo a –1 e ne modifico le componenti rispettivamente in 1 e 0 a
seconda che nell’intervallo a sinistra ci sia o meno corrosione.
9) A partire dalla popolazione trasformata, con gli operatori creo una nuova
popolazione corrente ed itero da 2).
[3] Per approfondire NSGA-II
Enginsoft CAE users’ meeting 2007 - 25-26 Ottobre 2007 Villa Caroli Zanchi Stezzano (BG)
Applichiamo NSGA-II modificato per un problema simulato
numericamente, con N=51. Il profilo di corrosione da
stimare è il seguente:
temperatura del modello (Tsigma) --- it=100 flash(%)=5.6847e-007
0.3
120
100
0.2
80
60
0.1
40
20
Fronte a cui converge NSGA 2 modificato
7
0
0.2
0.4
0.6
segmento S
0.8
1
NSGA-II modificato
converge al profilo di
corrosione già nelle prime
generazioni. La
popolazione stimata
nell’ultima generazione è:
6
5
numero 1
0
4
3
2
1
0
0
0.01
0.02
0.03
0.04 0.05 0.06
funzione di costo
Enginsoft CAE users’ meeting 2007 - 25-26 Ottobre 2007 Villa Caroli Zanchi Stezzano (BG)
0.07
0.08
0.09
0.1
Supponiamo di considerare il vettore di zeri v e
imponiamo v(9)=v(16)=v(33)=1.
Vediamo come opera il raffinamento locale.
Stimo la corrosione,
La
la
Ecco
corrosione
corrosione
Stimo
Stimo
ilpartire
Raffino
profilo
per
la
la Raffino
corrosione
Raffino
corrosione
stimata
nuovamente
decidere
stimata
stimato
attorno
attorno
nei
nei
con
dove
nella
nella
nuovi
nuovi
attorno
ilaaapplicare
raffinamento
mesh
mesh
v(33)
v(16)
segmenti
segmenti
a raffinata
raffinata
v(16).
v(33).
raffinamento
èlocale
ènulla
nulla
locale
A
dall'individuo
costruisco
lail mesh
0.1
0.1
0.1
0.09
0.09
0.09
0.08
0.08
0.08
0.07
0.07
0.07
0.06
0.06
0.06
0.05
0.05
0.05
0.04
0.04
0.04
0.03
0.03
0.03
0.02
0.02
0.02
0.01
0.01
0.01
000
000
0.1
0.1
0.1
0.2
0.2
0.2
0.3
0.3
0.3
0.4
0.4
0.4
0.5
0.5
0.5
0.6
0.6
0.6
0.7
0.7
0.7
0.8
0.8
0.8
0.9
0.9
0.9
Enginsoft CAE users’ meeting 2007 - 25-26 Ottobre 2007 Villa Caroli Zanchi Stezzano (BG)
111
Per problemi di piccole dimensioni scegliamo la strada
deterministica, che ci porta ad una accurata stima del
profilo di corrosione su tutto il dominio e in questo caso il
raffinamento locale è una buona scelta
A causa della complessità computazionale, per problemi di
grande dimensione non è pensabile seguire questa strada.
Adottiamo quindi un metodo di indagine probabilistico e in
questo assumono un ruolo fondamentale gli AG
POSSIBILI SVILUPPI:
è possibile perfezionare NSGA-II modificato, per rendere più veloce
la convergenza al profilo di corrosione. Per esempio al vettore
“costanti”, che indica quali sono i segmenti dove non ho ancora
stimato la corrosione, potrebbe essere associata una densità di
probabilità.
Altro sviluppo interessante sarebbe analizzare il problema 3D.
Enginsoft CAE users’ meeting 2007 - 25-26 Ottobre 2007 Villa Caroli Zanchi Stezzano (BG)
[1]
T. McKelvey, “Identification of state-space models from
time and frequency data”, 1995
[2]
Singiresu S. Rao, “Engineering Optimization”, 1996
[3]
N. Srinivas, Kalyanmoy Deb, “Multiobjective Optimization
Using Nondominated Sorting in Genetic
Algorithms” - Evolutionary Computation ,1994
Enginsoft CAE users’ meeting 2007 - 25-26 Ottobre 2007 Villa Caroli Zanchi Stezzano (BG)
Scarica

PPT