Con “Machine Learning” (ML), traducibile come “apprendimento automatico”, ci si riferisce a una branca dell’Intelligenza Artificiale (IA) che permette ai calcolatori di apprendere informazioni sulla base di dati di partenza, ma senza essere programmati per farlo in modo esplicito e dettagliato. In altre parole, con il ML si possono sfruttare algoritmi che migliorino progressivamente le proprie prestazioni in un’attività specifica, che sia vincere ad un certo gioco, oppure riconoscere immagini o identificare connessioni nascoste nella fisica di un dato fenomeno.
di Giorgio De Pasquale ed Elena Perotti
Il ML sta progressivamente entrando in diversi ambiti e applicazioni di vita quotidiana, dalla finanza, alla medicina, al marketing. Ovviamente, questa tecnologia sta affiancando anche il panorama della progettazione industriale, offrendo agli ingegneri strumenti innovativi per ottimizzare i processi, creare soluzioni innovative e affrontare sfide molto complesse con maggiore efficienza. In ambito industriale, gli algoritmi di ML possono essere efficacemente sfruttati per progettare strutture più resistenti e sostenibili, sistemi energetici più efficienti e prodotti personalizzati. Altre applicazioni possono riguardare l’ottimizzazione del progetto di componenti e sistemi, l’analisi predittiva dei guasti in piani di manutenzione, la simulazione avanzata di materiali, la interpretazione di risultati sperimentali su prototipi e campagne di prova. Queste nuove possibilità si basano soprattutto sulla capacità di questi algoritmi di analizzare grandi volumi di dati, identificare modelli nascosti al loro interno e prendere decisioni basate su informazioni concrete.
Tipologie e applicazioni nell’ingegneria industriale
Gli algoritmi di ML si suddividono nelle seguenti tre macro-categorie.
a) Algoritmi di apprendimento supervisionato. L’apprendimento supervisionato è una tipologia di ML in cui si sottopone all’algoritmo un set di dati di addestramento, che include sia gli input che gli output desiderati. L’algoritmo impara quindi a correlare gli input ai corrispondenti output, consentendo di fare previsioni su nuovi dati non visti in precedenza.
b) Apprendimento non supervisionato. Con l’apprendimento non supervisionato, invece, agli algoritmi viene fornito solamente un set di dati di input, senza target predefiniti. L’algoritmo deve quindi identificare autonomamente modelli e strutture all’interno dei dati.
c) Apprendimento per rinforzo. In questo ultimo caso, l’algoritmo interagisce con uno specifico ambiente di calcolo o simulazione e da esso apprende, attraverso prove ed errori, a compiere azioni sempre più corrette, le quali sono valutate attraverso una sorta di parametro di ricompensa da massimizzare.
Applicazioni del Machine Learning supervisionato
Nell’ambito dell’ingegneria industriale, gli algoritmi di apprendimento supervisionato sono già applicati in soluzioni commerciali, ad esempio software di simulazione, come vedremo nel seguito dell’articolo. Essi sono già strumenti preziosi per ottimizzare la progettazione, analizzare dati complessi e prendere decisioni informate. Questi algoritmi, “allenati” su set di dati etichettati, riescono a individuare modelli e relazioni nascoste. Fra le applicazioni più promettenti, alcune delle quali come detto sono già disponibili, possiamo citare sicuramente le seguenti.
– Ottimizzazione di progetto: algoritmi come la regressione lineare e modelli basati su alberi decisionali possono essere utilizzati per ottimizzare la forma di componenti meccanici, massimizzandone la resistenza, la rigidezza, l’efficienza aerodinamica, e altre proprietà, con vincoli di massa e dimensioni.
– Sviluppo di materiali innovativi: utilizzando dati relativi a proprietà di materiali esistenti, gli algoritmi possono aiutare a prevedere le proprietà di nuovi materiali compositi, accelerandone il percorso di sviluppo.
– Manutenzione preventiva: analizzando i dati misurati mediante sensori installati su macchine e impianti, questi algoritmi, come per esempio modelli predittivi basati su reti neurali, possono identificare i fenomeni precursori dei guasti, permettendo una manutenzione preventiva ed evitando fermi macchina non programmati.
– Ottimizzazione di prestazioni: analizzando i dati di funzionamento di sistemi complessi, gli algoritmi possono individuare inefficienze e ottimizzare parametri operativi per migliorare prestazioni, consumo energetico e durata di vita.
– Controllo e simulazione di sistemi: algoritmi specifici possono essere utilizzati per sviluppare sistemi di controllo autonomi (controllo “adattivo”) in grado di adattarsi a condizioni operative mutevoli e ottimizzare le prestazioni dell’impianto in tempo reale.
– Simulazione di scenari complessi: utilizzando modelli addestrati su dati reali, gli algoritmi possono simulare il comportamento di sistemi meccanici in scenari complessi, facilitando la valutazione di alternative progettuali e la predizione del comportamento in condizioni operative estreme.
Come progettare un profilo alare con il machine learning
Proviamo ad esemplificare l’approccio di utilizzo di un algoritmo di ML per la progettazione di un componente reale, come l’ala di un aeromobile, con l’obiettivo di renderla il più possibile leggera e resistente, con una elevata efficienza aerodinamica (Figura 1). In un approccio tradizionale, il progettista potrebbe basarsi sulla sua esperienza e su modelli di calcolo, uniti a simulazioni, per generare diverse geometrie alari e poi valutarne le prestazioni. Questo processo comporta un certo dispendio di tempo ed è oneroso dal punto di vista computazionale. Inoltre, con questo metodo non vengono esplorate tutte le possibili soluzioni ottimali della nostra ala. Sfruttando gli algoritmi di ML invece si possono ottenere alcuni vantaggi.
Le leggi utili a progettare un profilo alare
Questo tipo di progettazione si basa sulle medesime leggi ed equazioni che utilizzerebbe il progettista, ma in questo caso esse sono applicate iterativamente, fino ad ottenere una soluzione ottimizzata.
Tra queste leggi sono comprese ad esempio quelle fluidodinamiche (come l’equazione di Bernoulli) per il calcolo della portanza dell’ala, utilizzabile per valutare la differenza di pressione fra le superfici dell’ala:
in cui ΔP è la differenza di pressione tra la superficie superiore e inferiore dell’ala, p è la densità dell’aria, varia è la velocità dell’aria sulla superficie inferiore dell’ala e vmax è la velocità dell’aria sulla superficie superiore dell’ala.
Sono inoltre comprese nella progettazione le leggi che descrivono la resistenza dei materiali, fra le quali troviamo per esempio come la legge di Hooke generalizzata:
in cui ε sono le deformazioni di dilatazione, У le deformazioni di distorsione, E è il modulo elastico normale, G il modulo elastico tangenziale, σ le tensioni normali, τ le tensioni tangenziali, α il coefficiente di dilatazione termica e ΔT la differenza di temperatura.
Oltre a queste, sono da considerare le leggi per il calcolo delle sollecitazioni, della dinamica del volo e altre. Vediamo quindi di seguito come può procedere, almeno dal punto di vista metodologico, un software basato su algoritmi di ML, utilizzando ciascuna delle tre categorie citate in precedenza.
Progetto mediante algoritmi di apprendimento supervisionato
L’apprendimento supervisionato (Figura 2) può essere utilizzato in questo modo.
a) Raccolta e preparazione dei dati. Vengono raccolti dati di progetto da un certo numero di simulazioni o modelli numerici (ad esempio simulazioni fluidodinamiche agli elementi finiti) riferite a diverse geometrie alari, fra le quali variano la forma dell’ala, le proprietà dei materiali con cui è realizzata e le condizioni di volo. A seguire, questi dati vengono associati (“etichettati”) alle relative prestazioni di massa, resistenza, efficienza aerodinamica (per esempio portanza, dissipazione, etc.) mediante appositi parametri prefissati.
b) Scelta e addestramento dell’algoritmo. Un algoritmo di apprendimento supervisionato adatto, come ad esempio una rete neurale, viene selezionato in base alla complessità del problema e alla disponibilità e numerosità dei dati di partenza. Quindi, l’algoritmo viene addestrato sui dati disponibili, consentendogli di imparare a correlare le geometrie alari con le loro prestazioni strutturali e aerodinamiche.
c) Ottimizzazione del progetto. A questo punto l’algoritmo, che è stato addestrato, può essere utilizzato per esplorare nuove geometrie alari che non erano incluse in quelle dei dati di addestramento. Ogni nuova variante concepita viene messa a confronto con i dati di partenza e se ne predicono le prestazioni strutturali e aerodinamiche, senza effettuare le consuete simulazioni numeriche o fluidodinamiche. Si possono in questo modo identificare le soluzioni con le migliori caratteristiche sulla base di correlazioni fra geometria e prestazioni che l’algoritmo ha riconosciuto nella fase di addestramento.
I vantaggi degli algoritmi di apprendimento supervisionato
Come si può notare, i vantaggi di questo approccio risiedono nell’efficienza del metodo, poiché l’algoritmo può esplorare un numero elevato di geometrie alari in un tempo relativamente breve, rispetto a un approccio tradizionale. Inoltre, dal punto di vista dell’accuratezza del risultato l’algoritmo può apprendere correlazioni e schemi complessi insiti nei dati di partenza, potenzialmente identificando soluzioni migliori rispetto a quelle ottenute con metodo tradizionale. Infine, l’algoritmo può eseguire una ottimizzazione multi-obiettivo, considerando contemporaneamente diversi criteri di progettazione e trovando le soluzioni di compromesso che bilanciano al meglio le diverse specifiche.
Progetto mediante algoritmi di apprendimento non supervisionato
Utilizziamo questa volta un algoritmo di apprendimento non supervisionato (Figura 3). L’obiettivo rimane quello di creare un’ala leggera, resistente ed efficiente dal punto di vista aerodinamico.
Nel parallelo con l’approccio tradizionale, questa volta l’ingegnere si troverebbe di fronte a un compito diverso, poiché i dati disponibili non includono informazioni relative alle prestazioni strutturali e aerodinamiche. L’algoritmo deve quindi estrarre autonomamente modelli e relazioni nascoste dai dati di geometria alare per identificare le configurazioni più promettenti. Il processo di ML in questo caso potrebbe svolgersi in questo modo:
a) Raccolta e preparazione dei dati. Vengono raccolti dati da simulazioni e modelli numerici di diverse geometrie alari, includendo la forma dell’ala, le proprietà dei materiali e le condizioni di volo. Ma, a differenza dell’apprendimento supervisionato, questa volta i progetti iniziali non vengono associati (“etichettati”) con le relative proprietà strutturali e prestazioni aerodinamiche.
b) Scelta e addestramento dell’algoritmo e identificazione di gruppi di geometrie. Un algoritmo adatto, come ad esempio un algoritmo di clustering o di riduzione della dimensionalità, viene selezionato in base alla natura dei dati e con l’obiettivo di identificare gruppi di geometrie di profili alari con caratteristiche simili. Nuove varianti geometriche del profilo alare vengono elaborate e poi raggruppate in base alle loro caratteristiche, identificando gruppi di forme simili. L’analisi di questi gruppi potrà rivelare al progettista relazioni tra la geometria e le potenziali prestazioni aerodinamiche.
c) Selezione di geometrie promettenti. Sulla base dei raggruppamenti identificati dall’algoritmo dei profili alari, l’ingegnere può selezionare le geometrie più promettenti da ciascun gruppo per ulteriori valutazioni e approfondimenti. Ad esempio, queste geometrie selezionate possono essere sottoposte a simulazioni dettagliate per valutare le loro prestazioni strutturali e aerodinamiche effettive.
I vantaggi degli algoritmi di apprendimento non supervisionato
In questo caso, i vantaggi offerti dagli algoritmi di ML di apprendimento non supervisionato sono di tipo diverso. Anzitutto, consentono di esplorare per categorie i progetti ed esplorare nuove soluzioni che il progettista potrebbe aver trascurato, portando alla scoperta di geometrie potenzialmente promettenti. Inoltre, rispetto all’apprendimento supervisionato, questi algoritmi sono molto più efficienti computazionalmente perché non richiedono di etichettare i dati iniziali con le loro prestazioni ingegneristiche, la cui valutazione resta a discrezione del progettista. Di contro, l’interpretazione dei risultati con algoritmi non supervisionati è più complessa e il contributo del progettista è molto più incisivo. Servono generalmente simulazioni aggiuntive a posteriori per la valutazione delle prestazioni ingegneristiche delle soluzioni individuate.
La scelta di algoritmi di apprendimento supervisionato o non supervisionato dipende da diversi fattori, come la natura dei dati disponibili, la complessità del problema e le risorse computazionali a disposizione. In entrambi i casi, il ML offre strumenti potenti per migliorare l’efficienza del processo di progettazione.
Progetto mediante algoritmi di apprendimento per rinforzo
Vediamo ora come si può effettuare lo stesso progetto di un’ala mediante un algoritmo di apprendimento per rinforzo. L’obiettivo rimane quello di creare un’ala leggera, resistente ed efficiente dal punto di vista aerodinamico. In questo caso, il nostro algoritmo sarà in grado di interagire direttamente con un ambiente di simulazione, imparando per tentativi ed errori a modificare la geometria dell’ala per ottenere le migliori prestazioni. Ecco come potrebbe svolgersi il processo:
a) Definizione dell’ambiente di simulazione. Viene creato un modello dell’ala per effettuarne la simulazione virtuale, che comprenderà la dinamica del volo, le proprietà aerodinamiche, la distribuzione di tensioni e deformazioni, e così via. L’algoritmo di apprendimento per rinforzo può interagire con questo ambiente di simulazione, modificando la geometria di partenza dell’ala.
b) Scelta e configurazione dell’algoritmo. Un algoritmo adatto, basato ad esempio su reti neurali o su Q-learning, viene selezionato in base alla complessità del problema e alle caratteristiche dell’ambiente di simulazione. Molto importante è la definizione della “funzione di ricompensa” (o della “funzione di penalizzazione”) con cui si consente all’algoritmo di distinguere un comportamento “buono” (ad esempio una riduzione della resistenza aerodinamica) da uno “cattivo” (aumento della massa). Occorre definire anche la strategia di esplorazione, che definisce la propensione dell’algoritmo a provare nuove geometrie e valutarne le prestazioni.
c) Apprendimento per rinforzo. L’algoritmo inizia a interagire con l’ambiente di simulazione, modificando la geometria dell’ala e osservando i risultati prodotti in termini di prestazioni. L’algoritmo riceve una ricompensa basata sulla funzione che abbiamo definito, imparando ad associare determinate azioni a risultati positivi o negativi. Nel tempo, l’algoritmo migliora la sua strategia, imparando a modificare la geometria dell’ala in modo da massimizzare la ricompensa cumulativa, ovvero ottenere le migliori prestazioni dell’ala. Il design finale può essere ovviamente oggetto di valutazioni di dettaglio o di ulteriori simulazioni da parte del progettista.
I vantaggi degli algoritmi di apprendimento per rinforzo
I vantaggi degli algoritmi di apprendimento per rinforzo risiedono soprattutto nel loro apprendimento autonomo: l’algoritmo non richiede una conoscenza esplicita delle relazioni tra geometria e prestazioni ma impara autonomamente queste correlazioni attraverso l’interazione con l’ambiente di simulazione. Altro vantaggio è la ottimizzazione continua, poiché l’algoritmo può continuare ad apprendere e a migliorare la sua strategia anche dopo aver raggiunto un risultato già soddisfacente, inglobando nuove condizioni operative o modifiche in corso d’opera dei vincoli o di dettagli del progetto imposti dall’esterno. Questi algoritmi, infine, sono sicuramente più robusti rispetto alle incertezze dei dati di addestramento rispetto agli altri approcci. Il limite principale è la onerosità computazionale, poiché il loro addestramento richiede di eseguire simulazioni in numero elevato, seppure automatizzato. Altro limite è la difficoltà ad interpretare i risultati, o meglio, le ragioni che stanno dietro a questi risultati, poiché i modelli appresi da questi algoritmi sono difficilmente razionalizzabili.
Software supportati da algoritmi di ML
Il panorama dei software CAD che integrano l’apprendimento automatico (ML) per la progettazione di componenti meccanici è in continua evoluzione, con diverse soluzioni che offrono funzionalità e vantaggi fra loro differenti. Di seguito vi riportiamo una panoramica, seppure parziale, dei principali software disponibili sul mercato, con una descrizione dei loro punti di forza e di debolezza, e la tipologia di algoritmi di ML implementato. Questi software includono le seguenti principali funzionalità, in misura più o meno sviluppata per ciascuno di essi:
– modellazione 3D per la creazione di modelli complessi basati su criteri parametrici;
– assemblaggi e gestione prodotto con cui gestire assiemi molto complessi comprendenti fino a migliaia di componenti e definendo le relazioni di dipendenza tra di essi;
– simulazione integrata con cui il software valuta le prestazioni dei progetti mediante analisi strutturali, termiche, fluidiche, cinematiche, e altre;
– strumenti CAM per predisporre i modelli 3D alla produzione mediante fresatura, tornitura, stampa 3D e altre lavorazioni;
– progettazione di PCB per applicazioni elettroniche di circuiti stampati;
– funzioni di collaborazione per lavorare in team su progetti in tempo reale con funzionalità cloud;
– disegno 2D per la messa in tavola di disegni tecnici con annotazioni, quote e viste esplose.
Vediamo alcuni di questi software in maggiore dettaglio.
Autodesk Fusion 360
Si tratta di un software CAD-CAM-CAE per progettazione meccanica ed elettronica basato su cloud, e sviluppato da Autodesk (Figura 5). È impiegato in vari ambiti dell’ingegneria come soluzione completa per lo sviluppo di sistemi e prodotti, con una gamma integrata di strumenti per l’intero processo di progettazione, dalla concettualizzazione alla produzione. Fusion 360 integra algoritmi di ML di apprendimento supervisionato e di apprendimento per rinforzo in diverse aree, fra cui in particolare la progettazione generativa. Si tratta di uno strumento di esplorazione di progettazioni a più obiettivi che consente di scoprire nuovi modi per progettare parti con vincoli geometrici, di fattibilità e prestazioni. Da pochi input iniziali, fornisce automaticamente più soluzioni di progettazione modificabili utilizzando una singola soluzione cloud. La progettazione generativa consente di progettare oltre i limiti dell’immaginazione umana e sviluppare soluzioni pronte per la produzione che non verrebbero altrimenti prese in considerazione.
Altri algoritmi presenti nel software supportano la ottimizzazione topologica, strumento con cui è possibile ottimizzare forma e topologia di un dato componente, ad esempio, per ridurne il peso e migliorarne le prestazioni. E’ presente anche una funzione, supportata da ML, di riconoscimento delle immagini, con cui il software estrae automaticamente features e geometrie a partire da immagini e schizzi. Infine, si può usufruire di una assistenza alla progettazione, che consiste nel ricevere suggerimenti di azioni e correzioni durante il processo di progettazione.
PTC Creo
PTC Creo (Figura 6) è un sistema CAD 3D, anch’esso posizionato fra i software leader nel settore e dotato di molteplici strumenti per la progettazione, l’analisi e la produzione di prodotti in svariati settori industriali. La casa produttrice dichiara che i processi di ML integrati nelle soluzioni per Internet of Things (IoT) di PTC Creo consentono all’utente di prendere decisioni di servizio critiche sulla base di un modello predittivo intelligente. Questi modelli aiutano a identificare i parametri che potrebbero causare cedimenti e a prevedere quale componente andrà incontro a collasso, oltre al motivo e alle tempistiche di tale collasso, così da prevenire i fermi impianto e ridurre gli interventi in emergenza.
L’obiettivo ambizioso è quello di gestire in qualche misura il controllo delle prestazioni e della robustezza del prodotto in sviluppo, mediante modelli predittivi, con l’ausilio di una piattaforma IoT che consenta la raccolta e l’apprendimento dai dati di prestazione reali. Con l’utilizzo, i sistemi industriali gestiti mediante IA riconoscono le variabili di processo e sono in grado di gestirle e prevederle. In modo integrato, quindi il software si propone di prevedere le necessità di manutenzione, migliorare l’efficienza complessiva del prodotto e ottimizzarne la produzione.
Siemens Solid Edge
Siemens Digital Industries Software ha lanciato Solid Edge 2024 (Figura 7), una nuova versione del suo software di progettazione che introduce funzionalità di IA per accelerare e ottimizzare i processi di design. Queste applicazioni includono una interfaccia utente intelligente basata sull’IA e l’automatizzazione di operazioni di lavorazione. Inoltre, il software supporta la collaborazione tra i team di progettazione grazie a nuove funzionalità basate sul cloud. Gli utenti possono condividere e accedere ai dati del progetto in modo più efficiente, accelerando i tempi di sviluppo.
Un’interfaccia utente basata su IA apprende i modelli di utilizzo per presentare comandi pertinenti e un’altra funzione di modifica delle operazioni, assistita sempre da IA, può guidare gli utenti attraverso il processo di modifica delle operazioni di lavorazione. Teamcenter Share è un set di funzionalità basate su cloud che consentono la collaborazione con colleghi, partner e clienti. Solid Edge Design Configurator Connect consente inoltre la configurazione istantanea online del prodotto. Altre novità includono miglioramenti delle prestazioni per i grandi assemblaggi e nuovi ambienti realistici.
Altre funzioni di AI sono state integrate per supportare l’esperienza dell’utente. Ad esempio, durante la sostituzione di alcune parti delle parti di un assieme, una funzionalità guidata individua in modo intelligente le alternative valide e le suggerisce al progettista.
Altri aggiornamenti recenti basati su IA e progettazione generativa consentono di eliminare azioni ripetitive del lavoro e velocizzare la creazione dei modelli, consentendo all’utente di concentrarsi sulla parte fondamentale del progetto. Ci sono poi implementazioni dell’interfaccia utente, basate su AI, che riconoscono ed apprendono gli schemi di utilizzo del software da parte del singolo utilizzatore, in modo da suggerire i comandi più pertinenti in un determinato posizionamento del cursore in un dato contesto.
Dassault Systèmes SolidWorks
Il software si adegua alle evoluzioni in tema di ML come per i suoi competitor e si osserva come questi algoritmi siano messi a supporto dell’automatizzazione di attività ripetitive, come la selezione di linee e bordi e la creazione di accoppiamenti, liberando tempo per compiti più creativi e strategici. Ad esempio, nella selezione di alcune features durante il lavoro su un modello CAD, mediante la attivazione della opzione “Selection Helper” nel Design Assistant, si possono ricevere suggerimenti su una serie di altre possibilità basate su forma, dimensioni e orientamento della struttura. L’utente inizia ad interagire con questo algoritmo grazie alle scelte che opera di volta in volta e così facendo nel tempo le previsioni e i suggerimenti del software diventano sempre più pertinenti e anche personalizzati.
SolidWorks è basato su cloud e sfrutta algoritmi di apprendimento automatico (ML) per automatizzare attività ripetitive e suggerire soluzioni alternative. Poiché i ruoli di SolidWorks Cloud sono basati sulla interazione multi-utente, anche gli algoritmi sono pensati per adattarsi in tempo reale ai flussi di lavoro e a produrre suggerimenti sempre aggiornati al crescere degli input processati. Questi supporti sono diretti ad operazioni basilari, ripetitive e dispendiose, con l’obiettivo di liberare tempo per la progettazione vera e propria.