Periodico bimestrale
Anno XXII, numero 102
gen/feb 2021
ISSN 1128-3874
MACHINE LEARNING

Benefici dell’utilizzo del Machine Learning in unione ai software CAE

Stefano Marchiori

Il Computer-Aided Engineering (CAE) consiste nell’utilizzo di software informatici per migliorare la progettazione del prodotto e semplificare la soluzione dei problemi di progettazione. Nello sviluppo di prodotti o progetti è indispensabile ripetere molte volte calcoli complessi, variando i parametri di progetto e studiandone gli effetti. Queste analisi servono per studi parametrici, studi di verifica e per ottenere una ottimizzazione del prodotto o di parti di esso, ma possono impiegare parecchio tempo, soprattutto in caso di problemi complessi. Per velocizzare le fasi di verifica ed ottimizzazione, si può tuttavia ricorrere alle tecniche di machine learning, ed è per questo che sono stati quindi sviluppati dei software come ODYSSEE Lunar.

Stampa pdf rivista

Introduzione
Lunar è in grado di prevedere i risultati di una simulazione, a partire dai dati degli esperimenti passati, riducendo notevolmente i tempi di calcolo. I dati possono provenire sia da simulazioni CAE, sia da prove sperimentali, e sono generalmente sotto forma di curve tempo varianti. Quello che influenza ogni simulazione o prova sono i parametri di progetto, ed al variare di questi varierà la risposta del sistema. Pertanto, avendo a disposizione i risultati delle simulazioni precedenti, Lunar costruirà un modello predittivo. Questo è totalmente svincolato dalla fisica del problema, ma sarà in grado di conoscere la risposta del sistema per ogni tipo di variazione dei parametri. La forza dei software di machine learning come Lunar è essere in grado di prevedere con ottima precisione ed in pochissimo tempo l’esito di una simulazione CAE o sperimentale, senza che questa venga effettivamente svolta.

Il funzionamento di Lunar

Condizione fondamentale per poter utilizzare Lunar è che i problemi in studio abbiano una o più curve di risposta del sistema che siano funzioni del tempo, e che abbiano uno o più parametri (o variabili) che influenzano tale risposta. Utilizzando questi parametri ed i valori compresi nel range di variazione, si genera quindi un file di input X in cui vi sono N set contenenti ognuno una combinazione diversa dei valori delle variabili presenti nel problema. Questo file è chiamato Design of Experiments o DOE (figura1).


Verranno quindi eseguite N simulazioni, con un software CAE o sperimentali, per ottenere un file di input Y, contenente N risposte nel tempo di una grandezza di interesse per il problema.
Successivamente Lunar applica gli algoritmi di machine learning al file di input X, ed al file di input Y, per costruire il modello predittivo. Questo è chiamato modello ridotto, o Reduced Order Modelling (ROM), poiché per la sua generazione, vengono utilizzati solo i dati statisticamente più rilevanti.
Questo fa si che il modello predittivo sia leggero, richiedendo una potenza di calcolo limitata e tempi ridotti per la sua esecuzione.
Utilizzando quindi un nuovo set di variabili (Validation file), contenente una combinazione di valori non utilizzata nel file di input X, sarà possibile predire una o più risposte del sistema.
In Lunar è anche possibile svolgere delle ottimizzazioni, ossia andare alla ricerca di precisi parametri di input, tali per cui sia verificato un determinato output del problema (seguire una curva specifica, ottenere una curva a valore costante, min / max, tempo - valore o risposta in uno specifico corridoio, ecc.), scegliendo fra molteplici opzioni, algoritmi e criteri di errore, che sono disponibili nella finestra di dialogo.
Attraverso Lunar si lancia così il risolutore Nova, che esegue l’ottimizzazione. Questa è eseguita seguendo un ciclo che parte da un set di parametri, di solito al centro del DOE nel file di input X.
Viene quindi calcolata una funzione di risposta utilizzando il ROM, e viene valuta la differenza fra il target che si vuole raggiungere e la curva ottenuta come primo tentativo. Se la differenza è grande, si cambiano i valori dei parametri e si ripete il ciclo, altrimenti i processo è terminato. In ultimo è possibile eseguire in Lunar delle animation recostruction.
Con questo si intende la ricostruzione animata del problema, generalmente della sua deformata, calcolata a partire dalle animazioni precedenti. Pertanto, è una animazione ottenuta in ambiente Lunar, applicando le tecniche di machine learning ai file specifici delle animazioni, non più alle curve. Questo permette di visualizzare l’esito di una simulazione in un tempo estremamente ridotto rispetto a quello necessario per una animazione in ambiente CAE.

I Test case affrontati con Lunar

Per valutare l’utilizzabilità del machine learning in ogni contesto, sono stati eseguiti 6 test case, usando dati provenienti da tre software CAE differenti: MSC Marc-Mentat, MSC Cradle scFlow ed MSC Adams.
Il primo test case, svolto con Lunar ed il software FEM Marc-Mentat, riguarda un pezzo formato da due parti (figura 2):

una piastra forata, e da una piastra più sottile presente in basso, entrambe costituite da un materiale elastico isotropico (Modulo di Young: 34473,79 Mpa, Coefficiente di Poisson: 0.3). L’oggetto è poi vincolato su due nodi e le due piastre sono incollate tra di loro, tranne che nella parte esattamente sotto al foro. Al centro di questo è applicato uno spostamento verso il basso fissato. Lo scopo del problema è studiare l’andamento della forza di reazione, esercitata dal materiale adesivo interposto fra le due parti, al variare dello spostamento applicato, e della cohesive energy posseduta dal materiale stesso.
Utilizzando quindi un DOE formato da 10 punti, è stato possibile ottenere il modello predittivo in Lunar.
In figura 3, tratta direttamente da Lunar, oltre alle 10 curve del DOE, vi è inoltre la curva rossa predetta dal software utilizzando dei nuovi valori di cohesive energy ed opening displacement, e la curva blu, che è stata ottenuta attraverso il processo di ottimizzazione. È stato infatti richiesto al software di trovare la curva con il picco a pari 600 N, ed i parametri per cui la curva passa per quel punto.

 

Figura 3


Una volta inserite le 10 curve all’interno di Lunar il modello ridotto è stato creato in pochissimi secondi, ed anche il risultato dell’ottimizzazione è stato calcolato in un tempo molto ridotto.Infine, per verificare che i risultati fossero corretti, si sono eseguite due simulazioni in Marc utilizzando i parametri contenuti nel Validation file, utilizzati per la previsione della curva rossa, e quelli trovati come esito dell’ottimizzazione svolta in Lunar. Il risultato sono le due curve verdi tratteggiate, che ricalcano esattamente le curve previste, e questo da conferma degli ottimi risultati ottenibili con il machine learning.
Infine, è stata testata l’animation recostruction inserendo Lunar i dieci files .h5 contenti i risultati delle varie simulazioni FEM, ed ottenendo una soluzione stimata identica a quella ottenibile con Marc.
Il secondo test case è stato eseguito utilizzando dati provenienti da simulazioni eseguite con il software CFD Cradle scFlow.
In questo caso si è studiato l’andamento della velocità di un fluido in un punto all’interno di un condotto in cui scorre acqua alla temperatura di 20°C, ed è presente uno scalino che genera della turbolenza.

 

Figura 4


Pertanto, si è generato un DOE con 15 curve relative all’andamento della velocità nel punto 1, al variare dell’inclinazione dello scalino (30°, 45° e 90° - figura 4), e della velocità finale raggiunta dal fluido durante la simulazione. La velocità del fluido partiva da 0 m/s fino al raggiungimento dopo un andamento a rampa di uno dei seguenti valori di velocità: 1 m/s; 1.5 m/s; 2 m/s; 2.5 m/s; 3 m/s.
Successivamente le 15 curve sono stati inserite in Lunar (figura 5) ed è stata chiesta una previsione relativa all’andamento della velocità nel punto 1 nel caso di scalino inclinato di 35°, e con una velocità finale raggiunta dal fluido pari a 2,1 m/s.
Il risultato è la curva rossa presente in figura 5. Successivamente per verificare se la previsione di Lunar fosse corretta, è stata eseguita una simulazione all’interno di scFlow, il cui risultato è la curva verde (figura 5), che ha un andamento molto simile a quello trovato con il machine learning.

 

 

 

Figura 5

Occorre tuttavia sottolineare che la previsione in Lunar è stata ottenuta in pochi secondi, mentre è stato necessario molto più tempo per eseguire la simulazione in scFlow. È stato infatti necessario modificare il file relativo alla geometria del condotto, eseguire nuovamente la mesh della geometria, ed infine lanciare una simulazione in Cradle. Questo è richiesto in tutto quindi diversi minuti, contro i pochi secondi necessari al machine learning per predire il risultato.

 

Figura 6

 

Figura 7

Sono stati inoltre eseguiti 4 differenti test case (figura 6) utilizzando il software multi-body MSC Adams. Infatti, ognuno di questi ha una sua specificità, ed ha permesso di testare Lunar nel modo più ampio possibile. In tutti questi casi si è voluto testare oltre che gli algoritmi di machine learning per la creazione del modello ridotto anche il tool di ottimizzazione presente in Lunar.
Per motivi di brevità sarà qui descritto il test case relativo ad una pompa a pistoni assiali, il cui obiettivo è stato quello di ridurre il carico assiale e la velocità di rotazione della pompa.
Per fare questo si è agito su tre parametri geometrici (drive shaft radius, piston length, piston radius), su di un parametro cinematico (shaft speed), su di un parametro legato alla densità del liquido (damping coefficient) e su si un parametro legato al raggiungimento della condizione di regime (full on time).
Usando questi parametri si è generato un DOE con 40 curve, 20 relative alla coppia (figura 7) e 20 relative al carico assiale (figura 8).

 

Figura 8

Successivamente si è ottenuto il modello ridotto per entrambi i tipi di curva, ma se per la curve della coppia esso coincideva perfettamente con la curva di verifica trovata con Adams, si sono riscontrati alcuni problemi nella previsione delle curve con andamento sinusoidale. Pertanto, visto che ai fini del test case era più importante conoscere più precisamente il valore del carico assiale massimo, non l’andamento delle curve, si sono modificate le curve nel seguente modo. Una volta raggiunto il valore del carico massimo le curve sono state mantenute costanti (figura 9). In questo modo è stato più semplice per Lunar prevedere un modello predittivo più preciso per quanto riguarda il valore massimo del carico assiale.
In questo modo è stato possibile eseguire in Lunar l’ottimizzazione, che andasse alla ricerca dei parametri, comuni ai due tipi di curve, che le minimizzassero. Le curve pertanto ottenute sono quelle blu presenti in figura 7 e 9. Questo risultato è stato successivamente verificato in Adams, ottenendo le curve tratteggiate che ricalcano le curve frutto della ottimizzazione.

 

Figura 9


L’ottimizzazione è stata ottenuta su entrambi i tipi di curve contemporaneamente, ed in pochissimi secondi Lunar è stato in grado di trovare i parametri comuni alle due tipologie di curve che rendessero minime entrambe.
I tempi estremamente ridotti in cui questo processo è avvenuto, e la bontà dei risultati, paragonati a quelli ottenuti in Adams, permette di affermare l’efficacia degli algoritmi di machine learning presenti all’interno di Lunar.

Conclusioni

Dato che per poter funzionare Lunar necessita di una base di dati, si sono utilizzati tre differenti software in modo da testare gli algoritmi di machine learning presenti in Lunar con dati il più eterogenei possibili.
Ha inoltre il grande vantaggio di poter funzionare con un numero ridotto di dati input ed infatti, i test case svolti hanno necessitato di un numero esiguo di curve, affinché il modello ridotto potesse essere generato. Un altro grande vantaggio è la possibilità di utilizzare Lunar su laptop tradizionali, dato che richiede potenze di calcolo limitate e tempi esegui per prevedere l’esito di una simulazione anche complessa. In conclusione, si può dire che Lunar è un software che ha dimostrato una grande adattabilità ed una grande efficacia in tutti i contesti valuti.

 

« Indice del n. 101