Capitolo 2
Uso dell’IA per progettare e distribuire algoritmi embedded
Se si sceglie di adottare un approccio tradizionale allo sviluppo di algoritmi, occorre scrivere un programma capace di elaborare un input per produrre l’output desiderato. Talvolta, però, derivare le equazioni dai principi primi è troppo complesso, distribuirle è troppo impegnativo a livello computazionale oppure procedere a una misurazione desiderata è impossibile o troppo costoso a livello fisico.
In questi casi, vale la pena prendere in considerazione l’idea di creare un modello di IA. Gli algoritmi di IA embedded supportano:
- Sistemi di controllo
- Manutenzione predittiva
- Assistenza alla guida avanzata (ADAS)
- Pianificazione di percorsi
- Elaborazione del linguaggio naturale
- Elaborazione di segnali
- Sensori virtuali
- Rilevamento oggetti
Creazione di un sensore virtuale basato sull’IA: esempio di stima dello stato di carica delle batterie
Le batterie agli ioni di litio oggi sono dappertutto, dai dispositivi elettronici indossabili, ai telefoni cellulari, ai laptop fino ai veicoli elettrici e le smart grid. I sistemi di gestione delle batterie (BMS) garantiscono un uso sicuro ed efficiente di tali batterie. Un’attività fondamentale del BMS consiste nello stimare lo stato di carica (SOC).
Per svariati motivi, non è fisicamente possibile realizzare un sensore distribuibile per misurare direttamente lo stato si carica. Questa difficoltà accomuna molti sistemi di settori diversi, non riguarda soltanto le batterie.
In molte applicazioni i sensori possono essere:
- Imprecisi
- Costosi
- Lenti
- Rumorosi
- Fragili
- Inaffidabili
- Fisicamente impossibili
Al posto di un sensore fisico, è possibile crearne uno virtuale.
Una possibilità invitante consiste nello stimare lo stato di carica con un filtro di Kalman esteso (EKF). L’EKF può essere estremamente preciso, ma necessita di un modello matematico non lineare di una batteria, che non è sempre disponibile o realizzabile. I filtri di Kalman possono anche essere costosi dal punto di vista computazionale e, se lo stato iniziale è errato o il modello non è corretto, possono generare risultati non corretti.
In alternativa, è possibile sviluppare un sensore virtuale utilizzando l’IA. L’IA potrebbe riuscire a generalizzare meglio rispetto a un filtro di Kalman e a fornire risultati precisi, purché sia addestrata con i dati giusti.
Per creare un sensore virtuale basato sull’IA, occorrono dati con cui addestrare il modello di IA. Raccogliendo le letture della batteria in un ambiente controllato in laboratorio, è possibile calcolare con precisione i valori del SOC integrando le correnti (tecnica chiamata Coulomb Counting).
Questo metodo è anche semplice ed economico dal punto di vista computazionale. Perché non usarlo nel BMS per stimare il SOC? Attenzione, perché se non viene svolto in laboratorio, dove la corrente può essere misurata con precisione, è soggetto a errori per cui utilizzarlo nel BMS per stimare il SOC non sarebbe una buona idea. Tuttavia, è un modo efficace per ottenere i dati necessari per realizzare un sensore virtuale robusto.
Dopo aver raccolto i dati di input/output ottenuti con precisione, sarà possibile utilizzarli per addestrare un modello di sensore virtuale basato sull’IA da distribuire come parte del sistema di gestione delle batterie.
Esistono tre modi per creare e integrare un modello di IA in Simulink:
1. Eseguire l’addestramento nel framework di Machine Learning in MATLAB.
2. Importare il modello da TensorFlow o PyTorch.
3. Eseguire l’addestramento nel framework di Deep Learning in MATLAB.
Il modello di IA ha il vantaggio di poter essere addestrato direttamente sui dati misurati. I dati di addestramento acquisiscono le relazioni complesse tra lo stato di carica e gli input quali la corrente, la tensione, la temperatura e la media mobile di corrente e temperatura, integrando l’intelligenza nel modello.
Di conseguenza, il modello di IA potrebbe essere sia più veloce che più preciso di un modello matematico basato su principi primi.
Dopo aver investito nella creazione di un set di dati di addestramento di alta qualità, sarà possibile utilizzare MATLAB® o altri strumenti per creare svariati modelli di IA usando diverse tecniche di Machine Learning o di Deep Learning. Per scoprire quali modelli offrono le migliori prestazioni, basta integrarli in Simulink e valutarli l’uno a fianco all’altro.
Nota su come ottenere i dati
Raccogliere dati di addestramento di qualità è un’impresa ardua. Nel campo dell’IA, i set di dati pubblicamente disponibili hanno spronato la ricerca sull’IA. Utilizzando gli stessi set di dati, i ricercatori possono fare confronti in modo semplice e individuare dei benchmark in diverse tecniche di IA. I modelli e i set di dati condivisi stanno facilitando la riproducibilità e la creazione di fiducia nell’IA.
Nel settore industriale, tuttavia, i dati spesso provengono da set di dati selezionati con cura, talvolta prodotti tramite banchi di prova specializzati del mondo reale o simulazioni complesse ad alta fedeltà basate sui principi primi. Tali esperimenti possono richiedere molto tempo e denaro, ma il valore di un modello di IA ben addestrato può effettivamente valere l’investimento iniziale. Gli ingegneri esperti nel settore possono aggiungere valore durante la creazione del modello di IA progettando esperimenti che producano dati di addestramento di alta qualità.
Simulazione e test di un sensore virtuale basato sull’IA
Una volta addestrati i modelli di IA, è possibile integrarli in Simulink e testarli. Simulink consente di capire qual è il modello di IA più efficiente e di stabilire se questo garantisce risultati migliori rispetto alle alternative, come l’approccio EKF non basato sull’IA. Come anticipato, il filtro di Kalman necessita di un modello di batteria interno, che potrebbe non essere disponibile.
Questo esempio comprende un EKF più tre modelli di IA, tutti addestrati con gli stessi dati ma adottando approcci di IA differenti:
- Albero di regressione di precisione: approccio basato sul Machine Learning che costruisce un albero di valori di indicatori sempre più specifici utilizzati per interpretare i dati di input. Un albero di regressione di precisione è costituito da molte foglie piccoline che garantiscono una risposta altamente flessibile.
- Rete feed-forward (DL-FFN): sistema adattivo di Deep Learning che apprende servendosi di nodi interconnessi che raggruppano in cluster o classificano gli input. Le informazioni viaggiano in avanti attraverso la rete, mai all’indietro, durante l’inferenza.
- Rete long short-term memory (DL-LSTM): sistema adattivo di Deep Learning basato su nodi interconnessi, che usa il feedback attraverso la rete per elaborare non solo i singoli input ma anche le sequenze interconnesse di input.
Per valutare i modelli, esegui confronti simultanei in Simulink. Visualizza e misura la precisione e adatta l’output di ciascun modello in base a un set di dati di convalida. Queste informazioni consentono di determinare se i modelli rispettano i requisiti di precisione prima della distribuzione sull’hardware di sistema.
È inoltre possibile utilizzare i propri modelli di IA insieme ad altri algoritmi per una simulazione a livello di sistema. Ad esempio, è possibile eseguire il modello di IA nell’ambito di una simulazione di sistema complessiva che includa il sottosistema del BMS che lavora insieme ad altri sottosistemi, come il motore o la trasmissione. È inoltre possibile testare e affinare i modelli e altri componenti integrati per assicurarsi che interagiscano tra di loro e rispondano ai requisiti a livello di sistema.
La fase successiva consiste nel testare il proprio modello di IA sull’hardware su cui dovrà essere distribuito. In questa fase è possibile completare la valutazione nel mondo reale delle prestazioni del modello.
Usa gli strumenti di generazione di codice di MATLAB e Simulink per generare codice C/C++ senza librerie per reti di Deep Learning o modelli di Machine Learning. Distribuisci quel codice sul tuo processore per testarne il funzionamento nell’ambito di un test Processor-In-the-Loop (PIL) in cui il processore è interconnesso all’impianto simulato (sviluppato con i componenti di Simscape™ e Simscape Electrical™) che, in questo caso, è la dinamica della batteria simulata.
Una volta superati i test PIL, il modello è pronto per essere distribuito sull’hardware di produzione. È su questo hardware che verrà eseguito il sistema di gestione delle batterie nel veicolo.
Dai test PIL emergono i tradeoff prestazionali che saranno pertinenti per il proprio sistema nel mondo reale. Ad esempio, sebbene il modello dell’albero di regressione di precisione aggiunga interpretabilità che potrebbe essere utile nella risoluzione dei problemi, le sue dimensioni e la sua precisione potrebbero non rispondere ai requisiti di progetto. In un caso di questo tipo, la scelta migliore potrebbe essere una rete feed-forward.
Altri attributi pertinenti sono:
- Velocità di inferenza, ovvero il tempo impiegato dal modello di IA per calcolare una previsione
- Velocità di addestramento, ovvero il tempo necessario per addestrare il modello di IA con i dati di addestramento
- Impegno in termini di pre-elaborazione, in quanto alcuni modelli necessitano di calcoli supplementari, come le medie mobili, per ottenere dati di previsione sul passato
La compressione del modello è un tradeoff che richiede analisi, comprensione, iterazione e ottimizzazione. Ma per gli ingegneri che si occupano di software embedded, spesso rappresenta una necessità poiché, in alcuni casi, il modello di IA ha dimensioni che superano i limiti di memoria dell’hardware.
Gli ingegneri sono alla ricerca di nuovi modi per l’ingombro dei modelli adottando tecniche quali il pruning, la quantizzazione e la conversione a virgola fissa.
Un nuovo metodo per ridurre le dimensioni dei modelli disponibile in Deep Learning Toolbox™ comprime una rete di Deep Learning mediante proiezione. Questa tecnica ci consente di trovare un compromesso tra dimensioni del modello, velocità di inferenza e precisione. Per quanto riguarda questo esempio, non vi è una perdita significativa in termini di precisione. La compressione mediante i livelli di proiezione ha ridotto il footprint di memoria del 91% e ha raddoppiato la velocità di inferenza.
Gotion, un’azienda che si dedica alle tecnologie per l’accumulo di energia di prossima generazione, voleva creare un modello di rete neurale per stimare lo stato di carica durante la carica di un veicolo elettrico. Il modello doveva avere un livello di precisione con un margine del 3% e doveva essere abbastanza piccolo da poterlo distribuire in produzione. Inoltre, il modello doveva essere verificato mediante un test a bordo veicolo.
Deep Learning Toolbox ha messo a disposizione del team un approccio low-code per addestrare una rete neurale sulla base dei dati storici relativi alla carica delle celle. Il team ha avviato un workflow iterativo per simulare, migliorare e convalidare il modello. Con Simulink, gli ingegneri hanno integrato e testato il modello con il resto del sistema. È stato utilizzato Simulink Test™ per assicurarsi che il modello rispettasse i requisiti di precisione durante la simulazione.
Una volta ottenuto un modello dalle prestazioni desiderate, è stato generato automaticamente il codice per i test HIL e a bordo veicolo.
Gli ingegneri che hanno usato MATLAB e Simulink hanno riscontrato questi vantaggi chiave:
- Integrazione dell’IA nel workflow di verifica e convalida esistente grazie a Requirements Toolbox, Deep Learning Toolbox, Simulink, Embedded Coder e Simulink Test
- Possibilità di eseguire un workflow completo, dall’acquisizione dei requisiti allo sviluppo del modello, l’integrazione nel sistema, la distribuzione del modello e l’hardware di produzione
- Sicurezza, durante la simulazione e i test HIL, che il modello avrebbe soddisfatto i requisiti di precisione prima della distribuzione
- Codice generato automaticamente dalla rete neurale con un ingombro ridotto (ROM <2 KB, RAM <100 B)
Testa le tue conoscenze
Vero o falso: è possibile integrare in Simulink modelli di IA da strumenti open-source come TensorFlow™ o PyTorch™.
Ci hai provato! È possibile realizzare modelli di IA utilizzando MATLAB o uno strumento open-source e integrarlo in Simulink.
Esatto! È possibile realizzare modelli di IA utilizzando MATLAB o uno strumento open-source e integrarlo in Simulink.
Seleziona un sito web
Seleziona un sito web per visualizzare contenuto tradotto dove disponibile e vedere eventi e offerte locali. In base alla tua area geografica, ti consigliamo di selezionare: .
Puoi anche selezionare un sito web dal seguente elenco:
Come ottenere le migliori prestazioni del sito
Per ottenere le migliori prestazioni del sito, seleziona il sito cinese (in cinese o in inglese). I siti MathWorks per gli altri paesi non sono ottimizzati per essere visitati dalla tua area geografica.
Americhe
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)