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)