Il primo uso pratico di un motore elettrico è stato registrato nel 1834, da parte di Thomas Davenport che lo utilizzò per far funzionare una locomotiva su un breve tragitto. Ad oggi i motori sono alla base dei trasporti elettrificati, dell’automazione industriale e dei prodotti commerciali e di consumo. Uno studio dell’Agenzia internazionale per l’energia (IEA) stima che il 40–45% dell’elettricità generata nel mondo viene consumata da sistemi azionati tramite motori.
Negli ultimi decenni, i motori brushless hanno acquisito sempre più popolarità per via dei loro livelli di efficienza, affidabilità e densità di potenza più elevati. Con la diffusione dei motori brushless, le tecniche di controllo si sono sviluppate sempre di più affinché tali motori potessero essere controllati in modo preciso ed essere ancora più efficienti.
Il controllo Field-Oriented (FOC) è una di queste tecniche di controllo che garantisce un controllo preciso sull’intero intervallo di coppia e velocità dei motori brushless.
Come mostrato nello schema che precede, il controllo Field-Oriented si basa sull’uso di controller PI per i loop di controllo di velocità, Iq e Id. I controller PI sono semplici e facili da implementare ma possono essere difficoltosi da sincronizzare in situazioni caratterizzate dalla presenza di incertezze e disturbi esterni. Ecco alcuni esempi:
- Incertezze a livello dei parametri del motore e della dinamica del sistema
- Cambiamenti a livello dei parametri del motore (resistenza, induttanza, forza controelettromotrice, ecc.) dovuti all’usura, al passare del tempo e alla temperatura di esercizio
- Fluttuazioni a livello della tensione di input e della coppia di carico
- Cambiamenti a livello della regione di funzionamento e dell’isteresi nel comportamento del motore
Oltre a prendere in considerazione questi fattori, occorre tenere anche conto della necessità di procedere a una nuova sincronizzare dei controller qualora i motori venissero ridimensionati per la propria applicazione. Questo processo è molto impegnativo. Per far fronte a queste problematiche, è possibile utilizzare algoritmi di controllo avanzato per progettare controller Field-Oriented in grado di tener conto di questi fattori migliorando al contempo la precisione del controllo motori, i tempi di risposta e l’efficienza, anche in ambienti difficili.
Questo white paper consente di comprendere come si progettano i controller Field-Oriented. Nel paper saranno descritti gli strumenti disponibili in MATLAB® e Simulink® da usare quando si lavora con le seguenti tecniche di controllo:
- Controllo di reiezione dei disturbi attivi (ADRC)
- Controllo predittivo basato su modelli (MPC)
- Reinforcement Learning (RL)
La tabella che segue presenta una panoramica delle caratteristiche di questi metodi di controllo avanzato per metterli a confronto tra loro e con il controllo PID.
ADRC | MPC | RL | Controllo PID | |
Come funziona? | Usa un osservatore di stato esteso (ESO) per stimare e compensare le incertezze e i disturbi in tempo reale | Usa le previsioni basate su un modello per ottimizzare le azioni di controllo su un orizzonte di predizione | Apprende le politiche di controllo ottimali direttamente dai dati attraverso tentativi ed errori | Calcola il segnale di controllo sulla base di azioni proporzionali, integrali e derivative sul segnale di errore |
Come si può descrivere la gestione delle non linearità del sistema, delle incertezze e dei disturbi esterni che viene effettuata? — Buona |
|
|
|
|
Muovere i primi passi e ottenere buoni risultati è facile o difficile? — Facile |
|
|
|
|
È possibile verificare le prestazioni rispetto a metriche lineari standard come i margini di fase e guadagno? | Sì | No | No | Sì |
Questa tecnica può essere la migliore alternativa al PID quando: | Una reiezione dei disturbi robusta è l’ideale in presenza di dinamica incerta, disturbi non noti e parametri del motore variabili senza la necessità di un modello di motore dettagliato. | Casi in cui si ha a che fare con vincoli/limiti operativi dei motori e/o è necessario eseguire un controllo basato sulle previsioni. | Caratterizzare la dinamica del motore e le condizioni operative è difficile e risulta più pratico apprendere le politiche di controllo direttamente dai dati. | — |
Il controllo di reiezione dei disturbi attivi amplia il controllo PID offrendo un notevole vantaggio, ovvero quello di gestire una gamma più vasta di incertezze, tra cui disturbi e dinamiche non note, mantenendo al contempo le prestazioni del controller invariate.
L’algoritmo utilizza un’approssimazione del modello della dinamica di sistemi noti e raggruppa dinamiche e disturbi sconosciuti come uno stato esteso dell’impianto. Per stimare questo stato e implementare il controllo di reiezione dei disturbi viene utilizzato un osservato di stato esteso. Ciò viene ottenuto riducendo l’effetto del disturbo stimato sul sistema e indirizzando il sistema verso il comportamento desiderato.
Nelle applicazioni ad alta velocità dei bracci robotici industriali, il controllo preciso dei motori brushless che azionano gli snodi e i raccordi del robot è fondamentale per garantire un moto e un posizionamento accurati. Tuttavia, gli elementi strutturali di molti robot presentano livelli di flessione molto bassi, il che introduce ulteriore dinamica che determina il verificarsi di oscillazioni e vibrazioni indesiderate.
I controller PID faticano a gestire questa dinamica flessibile e possono necessitare di operazioni complesse di modellazione e sincronizzazione per riuscire a mantenere gli stessi livelli di stabilità e prestazioni. Un’alternativa efficace per gestire la dinamica di snodi e raccordi flessibili è l’ADRC. Tali risultati vengono ottenuti stimando e compensando il disturbo causato dalla dinamica aggiuntiva in tempo reale, senza fare uso di un modello esplicito del sistema.
Simulink Control Design™ mette a disposizione il blocco Simulink Active Disturbance Rejection Control, che permette agli utenti di progettare il controller. Gli utenti testano il controller in una simulazione a livello di sistema includendo un inverter, un motore e altre dinamiche elettriche e meccaniche. Una volta testato il controller con la simulazione, è possibile generare codice C/C++ da questo blocco predefinito usando Embedded Coder®. Con requisiti di memoria e throughput simili a quelli di un controller PID, il codice per l’ADRC può essere distribuito su hardware di controller di motori esistenti. Ciò permette di implementare l’ADRC in maniera estremamente semplice, soprattutto per coloro che conoscono ancora poco questa tecnica.
Il grafico che segue mette a confronto le prestazioni di tracking di riferimento della velocità dell’ADRC (blu) e del controllo PID (arancione). I guadagni PID sono stati sincronizzati usando il metodo convenzionale con parametri del motore stimati. L’ADRC è caratterizzato da transitori più uniformi e un overshoot inferiore rispetto al PID. In più, l’ADRC mostra prestazioni migliori di reiezione dei disturbi a 2 secondi in presenza di una variazione del carico sul motore (5 al 50% della coppia nominale). Si noti che il modello di simulazione utilizzato non modella l’accoppiamento incrociato dell’asse d e q.
Tipo di controller | Tempi di esecuzione |
Controller PI come controller di corrente | 13,1 μsec |
Controller ADRC come controller di corrente | 14,65 μsec |
Ulteriori informazioni
- Controllo di reiezione dei disturbi attivi - Documentazione
- Implementazione del controllo della velocità di un PMSM mediante controllo di reiezione dei disturbi attivi su Texas Instruments C2000 - Esempio
- Progettazione del controllo di reiezione dei disturbi attivi per il controllo della velocità di un BLDC mediante PWM - Esempio
Il controllo predittivo basato su modelli è una tecnica di controllo basata sull’ottimizzazione inizialmente sviluppata per le industrie di processo, come gli impianti chimici e le raffinerie, negli anni ‘80. Da allora, i progressi fatti nel campo delle tecnologie dei microcontroller, dell’elaborazione dei segnali digitali e degli algoritmi di ottimizzazione, hanno permesso di applicare l’MPC all’elettronica di potenza. Pertanto nei prossimi anni ci si aspetta un aumento dei livelli di adozione dell’MPC.
Il principio alla base dell’MPC prevede l’utilizzo di un modello matematico di predizione per prevedere gli stati futuri del sistema controllato su un orizzonte di predizione. Successivamente il controller calcola una sequenza di azioni di controllo ottimali per tenere traccia della traiettoria di riferimento desiderata rispettando al contempo i vincoli. L’algoritmo svolge questa funzione risolvendo un problema di ottimizzazione in tempo reale. La prima azione di controllo viene applicata al sistema e le azioni successive vengono ignorate. Questo processo viene ripetuto nella fase temporale successiva.
L’MPC offre un notevole vantaggio rispetto al PID per il controllo Field-Oriented in quanto gestisce in modo esplicito i limiti operativi e i vincoli del motore, tenendo conto dell’accoppiamento incrociato tra i loop. Ciò significa che il controller è in grado di prendere in considerazione limiti fisici, come la saturazione della coppia, limiti di corrente e tensione e limiti correlati al tasso di variazione. Integrando questi vincoli nel problema di ottimizzazione, l’MPC è in grado di impedirne la violazione, minimizzando al contempo una funzione di costo che rappresenta gli obiettivi di controllo. In applicazioni quali il controllo di un motore di trazione di un veicolo elettrico, vincoli quali i limiti della coppia del motore, i limiti della corrente della batteria e i limiti termici sono essenziali per garantire un funzionamento sicuro e impedire che i componenti si danneggino. I controller PID non hanno un modo esplicito per gestire i vincoli, il che può portare a un comportamento di tracking indesiderato, come la saturazione di velocità, coppia o overshoot oppure, in alcuni casi, a instabilità.
L’MPC ha una funzionalità di anteprima, che permette di ottimizzare le azioni di controllo sulla base della conoscenza del segnale di riferimento futuro, il che determina un conseguente miglioramento in termini di reattività ai riferimenti di tracking. Al contrario, i controller PI presentano delle limitazioni nel rispondere agli errori di stato del sistema corrente. Inoltre, il componente di controllo integrale nei controller PI può introdurre un ritardo che mostra la risposta dinamica al loop di controllo.
Model Predictive Control Toolbox™ semplifica il processo di configurazione di un controller predittivo basato su modello per applicazioni FOC in MATLAB fornendo algoritmi e blocchi Simulink integrati. Grazie all’uso dei blocchi MPC integrati, è possibile configurare il loop interno di un FOC. Questo controllo del loop interno prevede il calcolo delle tensioni dello statore di asse d e q per azionare il motore alla velocità desiderata minimizzando al contempo la funzione di costo che rappresenta il tradeoff tra gli obiettivi di controllo.
Le prestazioni del controller MPC possono essere valutate simulandole in un loop chiuso con il sistema motore in MATLAB o Simulink. Dopo la valutazione iniziale, è possibile affinare la progettazione del controller tramite la regolazione dei parametri e testando diversi scenari di simulazione.
Una volta che il controller sarà stato testato in una simulazione, è possibile usare Simulink Coder™ per generare codice C e C++ dal blocco MPC da distribuire sul proprio hardware del controller embedded.
Tipo di controller | Tempi di esecuzione |
Controller PI come controller di corrente | 13,1 μsec |
Controller MPC come controller di corrente (a 5 KHz) | 134 μsec |
Sebbene l’MPC offra diversi vantaggi per il controllo Field-Oriented, ci sono anche alcuni svantaggi che occorre prendere in considerazione. Una delle problematiche principali è rappresentata dalla complessità computazionale e dall’implementazione in tempo reale dell’algoritmo. L’MPC può essere una tecnica onerosa dal punto di vista computazionale e di uso della memoria, il che ne complica l’esecuzione su hardware con risorse limitate. Inoltre, la precisione del modello di predizione è funzionale alle sue prestazioni e il modello potrebbe dover essere aggiornato o rielaborato in caso di modifiche al motore o alla dinamica del carico. Quando si progetta un sistema di controllo motori basato su MPC, è necessario prendere in considerazione questi fattori.
Ulteriori informazioni
Il Reinforcement Learning è una tecnica di Machine Learning che permette a un computer (agente) di imparare a prendere decisioni interagendo con un ambiente e ricevendo ricompense o penalizzazioni in base alle sue azioni. L’obiettivo dell’agente è quello di apprendere una politica che massimizzi l’accumulo di ricompense nel tempo. Questo risultato si ottiene tramite una serie di tentativi ed errori, con un costante aggiornamento della politica sulla base del feedback ricevuto. L’apprendimento avviene senza alcun intervento dell’uomo e si basa esclusivamente sulle osservazioni dell’ambiente da parte dell’agente.
Il Reinforcement Learning offre un’alternativa al controllo lineare quando dinamiche non lineari complesse e ambienti operativi incerti rendono difficile monitorare le prestazioni in modo soddisfacente. Ciò è particolarmente utile quando risulta difficile caratterizzare i motori e le relative condizioni operative per sincronizzare i controller.
Ad esempio, uno stesso macchinario agricolo con PMSM può essere utilizzato in ambienti diversi e complicati, su terreni irregolari, tipi di suoli e con livelli di umidità variabili, così come di compattazione diversificati. Queste variazioni ambientali sono difficili da caratterizzare, il che a sua volta rende difficile sincronizzare i controller Field-Oriented basati su PI affinché forniscano prestazioni di tracking della coppia soddisfacenti. Una politica di Reinforcement Learning addestrata in modo adeguato è in grado di adattarsi a queste variazioni e di garantire le funzioni di tracking necessarie per tali applicazioni.
Il Reinforcement Learning offre diversi vantaggi. Ad esempio, è possibile utilizzare un unico controller per regolare le correnti e la velocità del motore, piuttosto che dover sincronizzare controller PID separati per ciascuno di questi loop in corrispondenza di diversi punti operativi. Inoltre, il Reinforcement Learning è in grado di gestire più input e output provenienti da svariati sensori e attuatori
Con MATLAB e Reinforcement Learning Toolbox™, è possibile configurare un controller basato su Reinforcement Learning per il controllo Field-Oriented. Il toolbox mette a disposizione delle funzioni e un blocco Simulink reinforcement learning agent per implementare il controllo tramite Reinforcement Learning, nonché algoritmi personalizzati e integrati con cui addestrare il controller.
Dopo l’addestramento, è possibile utilizzare Embedded Coder per generare codice C++ per distribuire la politica ottimale su piattaforme embedded.
Tipo di controller | Tempi di esecuzione |
Controller PI come controller di corrente | 13,1 μsec |
Controller basato su Reinforcement Learning come controller di corrente (a 5 KHz) | 85 μsec |
Si noti che, nonostante il Reinforcement Learning sia una valida alternativa ai controller tradizionali come i controller PID, si tratta di una soluzione costosa dal punto di vista computazionale e che, per addestrare il controller, occorrono tempo e dati. È fondamentale prendere in considerazione questi tradeoff, quando si sceglie il Reinforcement Learning, e la decisione dovrebbe essere presa sulla base delle esigenze specifiche dell’applicazione, tenendo conto di fattori quali le risorse, il tempo e i dati a disposizione. In alcuni casi, può risultare vantaggioso abbinare il Reinforcement Learning ai controller PI. Integrando i due approcci, un agente di Reinforcement Learning è in grado di generare segnali di correzione, complementari ai segnali di controllo dei controller PI. Questa combinazione consente al sistema di gestire condizioni complesse, non lineari o impreviste che non rientrano nel range nominale dei controller PI.
In sintesi, questo white paper presenta delle strategie di controllo alternative per i controller Field-Oriented nei motori elettrici, focalizzandosi sul controllo di reiezione dei disturbi attivi, il controllo predittivo basato su modelli e il Reinforcement Learning. Queste tecniche di controllo avanzato garantiscono una maggiore precisione del controllo motori, tempi di risposta e livelli di efficienza migliorati, anche in ambienti complicati.
MATLAB, Simulink e i toolbox associati mettono a disposizione una piattaforma accessibile per progettare e implementare queste tecniche di controllo avanzato per le applicazioni di controllo motori. Tuttavia, nel selezionare una strategia di controllo appropriata per un’applicazione specifica è essenziale tenere in considerazione i tradeoff correlati alla complessità computazionale, all’implementazione in tempo reale e ai requisiti in termini di dati.
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)