Ebook

Capitolo 3

Uso dell’IA per la modellazione di ordine ridotto di sistemi complessi


La complessità dei sistemi è in continuo aumento. I sistemi autonomi consentono ai veicoli di navigare in ambienti imprevedibili. Le turbine eoliche si monitorano tramite i gemelli digitali per stabilire l’eventuale necessità di interventi di manutenzione. I dispositivi smart personali sono in grado di misurare il sonno, etichettare foto e addirittura di pianificare gli allenamenti. I dispositivi medici monitorano i pazienti, diagnosticano malattie e prevedono esiti personalizzati.

In queste applicazioni, gli algoritmi basati sull’IA fanno spesso parte di un sistema più complesso.

Talvolta il modello di IA è pensato per essere distribuito come parte di quel sistema, ma può essere utilizzato anche per la modellazione di ordine ridotto (ROM). La ROM è una tecnica per ridurre la complessità o i requisiti di archiviazione di un modello virtuale di un sistema, preservandone al contempo la fedeltà prevista entro un margine di errore controllato.

Gli ingegneri spesso iniziano a modellare i componenti dei loro sistemi servendosi dei principi primi. Il valore reale di un modello basato sui principi primi sta nel fatto che in genere i risultati hanno un significato fisico chiaro ed esplicabile. In più, spesso è possibile parametrizzare i comportamenti.

In molti casi, però, un modello ad alta fedeltà risulta troppo impegnativo dal punto di vista computazionale per poter essere utilizzato nella progettazione a livello di sistema, soprattutto se si usano i test HIL o PIL che richiedono l’esecuzione del modello in tempo reale. I modelli ad alta fedeltà possono anche richiedere tempi di derivazione molto lunghi.

In questi casi, si può prendere in considerazione l’idea di creare un modello di ordine ridotto basato sull’IA.

Un modello ad alta fedeltà di un’automobile fa parte di una simulazione che include blocchi per i controller, l’ambiente e il conducente, i quali creano una simulazione complessa e lenta. Viene visualizzato anche un modello alternativo di ordine ridotto basato sull’IA che sostituisce l’automobile.

Crea una ROM sostituendo il modello del motore di un’automobile basato sui principi primi con un algoritmo veloce e basato sull’IA. Le simulazioni ROM sono più rapide ma garantiscono comunque un livello di precisione accettabile per il test a livello di sistema degli algoritmi di controllo.

sezione

Sviluppo di modelli di ordine ridotto basati sull’IA

Sono tanti gli approcci che si possono adottare per creare delle ROM, inclusa l’IA:

  • Modelli di riduzione basati sulla fisica
  • Tecniche basate sui modelli
  • Modelli Simulink non lineari che vengono linearizzati in corrispondenza di determinati punti operativi
  • Approcci basati sui dati, tra cui:
    • Approcci statici come l’adattamento delle curve e le tabelle di lookup
    • Approcci dinamici come i modelli basati sull’IA

La ROM può essere uno strumento davvero prezioso. È possibile utilizzarla per:

  • Accelerare la simulazione desktop Simulink influenzata da un modello ad alta fedeltà di terze parti.
  • Abilitare i test Hardware-In-the-Loop (HIL) riducendo la complessità di un modello ad alta fedeltà.
  • Portare i modelli 2D e 3D provenienti da altri strumenti nei modelli di simulazione a livello di sistema in Simulink.
  • Sviluppare un modello di sensore virtuale basato sull’IA da utilizzare nei software di controllo, per il rilevamento guasti o la manutenzione predittiva.
  • Progettare sistemi di controllo.
  • Accelerare le ottimizzazioni o i calcoli software per la fluidodinamica computazionale (CFD) e l’analisi degli elementi finiti (FEA).

Se si sceglie di adottare la tecnica ROM basata sull’IA serve fare delle valutazioni in termini di progettazione. Per creare un modello di IA preciso servono molti dati di alta qualità. Nonostante siano precisi, si tende a paragonare i modelli di IA a delle “scatole nere” o, in alcuni casi, a delle “scatole grigie”. Vale a dire che l’esito del modello potrebbe non essere sempre esplicabile o parametrizzabile. Inoltre, un modello di IA non consente all’ingegnere di integrare con facilità le conoscenze della fisica della macchina nel modello.

I modelli seguono uno spettro di spiegabilità che va dalle cosiddette “scatole nere”, che non offrono alcuna visibilità in merito alle decisioni di output, alle “scatole grigie”, che offrono alcune informazioni, fino alla trasparenza completa di un modello basato sui principi primi.

I modelli seguono uno spettro di spiegabilità che va dalle cosiddette “scatole nere”, che non offrono alcuna visibilità in merito alle decisioni di output, alle “scatole grigie”, che offrono alcune informazioni, fino alla trasparenza completa di un modello basato sui principi primi.

sezione

Sostituzione del modello di motore basato sui principi primi di terze parti con una ROM basata sull’IA

Immaginiamo che tu faccia parte di un team che sta lavorando su un veicolo di nuova progettazione. Devi simulare la velocità del veicolo in base a diversi input e condizioni. Per farlo dovrai creare un modello comprensivo di componenti che rappresentano il conducente, le condizioni stradali, i controller e il motore dell’auto.

Un collega ha fornito un sottosistema di un motore di veicolo modellato con strumenti di terze parti. La simulazione che ne deriva corrisponderà al sistema del mondo reale caratterizzato da un alto livello di fedeltà, ma anche da tempi di esecuzione lunghi.

Un modello ad alta fedeltà include un conducente, un ambiente, dei controller e un’automobile con un modello di motore complesso.

Se il modello del motore è un modello complesso basato sui principi primi, la simulazione della velocità del veicolo sarà lenta da eseguire.

Per accelerare le simulazioni e al contempo sviluppare e affinare altri componenti del sistema, è possibile sostituire questo costoso modello di motore di terze parti con un modello di ordine ridotto o surrogato. Può essere sviluppato utilizzando varie tecniche, tra cui metodi basati sulla fisica (ad esempio, utilizzando Simulink e Simscape) o sull'intelligenza artificiale. Nel caso di un modello di intelligenza artificiale, gli input includerebbero la velocità del motore, la messa in fase all'accensione, la posizione della valvola a farfalla e i valori della valvola wastegate, mentre l'output rappresenterebbe la coppia del motore.

Le varianti consentono di passare facilmente da un componente all'altro costruito con tecniche diverse.  Con le varianti è possibile confrontare le opzioni di progettazione, bilanciando precisione e prestazioni, senza dover convertire in commento parti del modello. Questo aiuta a comprendere le differenze e a prendere decisioni sulla scelta dei componenti.

sezione

Generazione di dati e addestramento del modello di IA

Per creare un modello di IA, occorre addestrarlo utilizzando un set di dati che diversifichi gli input pertinenti e produca l’output desiderato. È possibile utilizzare un set pubblico di dati o dei dati sperimentali derivanti dalla configurazione del proprio sistema fisico.

Per generare i dati è anche possibile utilizzare la propria simulazione ad alta fedeltà. Per procedere, occorre prima di tutto progettare una serie di esperimenti scegliendo i parametri del modello e variarne gli intervalli. Ad esempio, velocità, messa in fase dell’accensione e posizione dell’acceleratore avranno ciascuno degli intervalli variabili. Usa la progettazione di esperimenti (DoE) per creare una tabella con le possibili combinazioni di parametri, quindi procedi con la simulazione e raccogli i dati.

Il modello di motore complesso nella simulazione del sistema viene sostituito da un modello di IA che si serve degli stessi input, ovvero velocità del motore, messa in fase dell’accensione, posizione dell’acceleratore e valvola wastegate e produce lo stesso output, ovvero la coppia del motore.

Sostituisci un modello ad alta fedeltà con un modello di IA.

Per creare il modello di IA è possibile utilizzare tecniche diverse. Ad esempio, è possibile utilizzare MATLAB per applicare i metodi di Machine Learning o di Deep Learning come le reti LSTM (reti Long Short-Term Memory, reti neurali ricorrenti in grado di apprendere le dipendenze degli ordini nei problemi di previsione delle sequenze), le ODE neurali (operazioni di Deep Learning definite dalla soluzione di un’equazione differenziale ordinaria) oppure i modelli ARX non lineari (modelli che usano funzioni non lineari flessibili, come una rete wavelet o sigmoidea, per modellare comportamenti non lineari complessi).

È inoltre possibile interagire con altri framework open-source utilizzati per addestrare un modello di IA.

sezione

Distribuzione di una ROM basata sull’IA per l’esecuzione di test a livello di sistema

Una volta creata la propria ROM basata sull’IA, è possibile procedere alla distribuzione per eseguire i test a livello di sistema.

Se l’obiettivo prefissato è quello di testare la progettazione e le prestazioni di altri componenti nel proprio sistema, sarà utile eseguire i componenti che si stanno progettando sull’hardware target ed eseguire il modello di IA sul desktop. Una potenziale configurazione di tipo Hardware-In-the-Loop (HIL) prevede i seguenti passaggi:

  • Distribuzione dei componenti sulle piattaforme hardware target
  • Esecuzione del modello di IA su un sistema informatico in tempo reale
  • Collegamento dei vari sistemi ed esecuzione della simulazione, monitoraggio dei segnali e regolazione dei parametri

Una volta sviluppato, il modello di IA è modulare e riutilizzabile. Anche i colleghi, che si trovino nella stessa sede o siano dislocati in altre sedi, potranno utilizzare il tuo modello di IA nelle loro simulazioni e nei test dei componenti, il che agevola una potenziale accelerazione delle fasi di progettazione e sviluppo in parallelo del sistema.

I sistemi embedded vengono distribuiti su hardware target. La ROM basata sull’IA viene distribuita su un computer in tempo reale. I sistemi interagiscono in Simulink per i test a livello di sistema.

Esegui simulazioni e test a livello di sistema con i controller che stai testando in esecuzione sull’hardware target e con la ROM basata sull’IA che supporta il modello di impianto (in questo caso l’automobile) in esecuzione su un computer.

sezione

Selezione di una tecnica di IA

Se il tempo lo consente, è possibile creare diversi modelli di IA usando tecniche diverse e servirsi poi di Simulink per affinarli. Ad esempio, è possibile utilizzare Simulink Profiler per capire qual è la velocità di esecuzione di ciascun modello su un computer desktop. È inoltre possibile confrontare l’output ottenuto dal modello ad alta fedeltà con i modelli di IA per misurarne la precisione.

Per stabilire il modello migliore per la propria applicazione, occorrerà distribuire i modelli e raccogliere tutte le metriche.

La scelta di un modello non si basa sempre soltanto sulla precisione. Altri aspetti da prendere in considerazione potrebbero essere la velocità di addestramento, l’interpretabilità, la velocità di inferenza o le dimensioni del modello. Metodologie diverse produrranno risultati diversi e ciascuna ROM specifica produrrà pro e contro diversi.

Grafico in cui vengono messe a confronto le prestazioni di una rete LSTM, di un’ODE neurale e di due modelli ARX non lineari. Il modello ARX non lineare presenta buonissimi livelli di velocità di inferenza, di dimensioni del modello e di precisione, una buona interpretabilità e una velocità di addestramento inferiore rispetto agli altri.

I vari modelli di IA della ROM del motore del veicolo hanno diversi profili prestazionali.

Testa le tue conoscenze