Per il controllo robotico, utilizzate schede per dispositivi di alimentazione con driver integrati per la gestione dei motori
Contributo di Editori nordamericani di DigiKey
2016-07-07
La traiettoria e la posizione desiderate dell'azione successiva del braccio robotico sono state determinate sulla base dei dati provenienti da sorgenti video, da altri sensori, dall'obiettivo del progetto e da altri dettagli dell'applicazione. Ora, rimane un solo problema: convertire la posizione target desiderata nei comandi specifici che azioneranno il motore del braccio con l'accelerazione, la velocità e la decelerazione desiderate così che raggiunga in modo regolare il punto finale, senza sovraelongazione e senza problemi elettrici in caso di ostacoli meccanici.
La trasformazione dei segnali digitali di basso livello dal processore di sistema in direzioni dettagliate e specifiche per il motore è un processo sfaccettato. Inoltre, questi segnali digitali non hanno le alte tensioni e correnti di cui ha solitamente bisogno il motore. Pertanto, serve una serie di fasi di comando e conversione tra le istruzioni e il controllo del motore effettivo (Figura 1).
Figura 1: Il percorso completo dei segnali di controllo del motore è costituito dalle funzioni digitali e dal processore (1, 2, 3) oltre che da circuiti analogici e di potenza (4, 5) che richiedono una competenza di progettazione molto diversa e pongono requisiti tecnici complessi. (Schema disegnato utilizzando Scheme-it di Digi-Key)
Queste fasi intermedie sono il percorso critico tra l'I/O utente (riquadro 1) che richiama il compito complessivo ("Sposta la tazza da A a B e svuota il contenuto") e il motore o i motori che di fatto svolgono il lavoro (riquadro 6). Queste sono:
- Un processore di supervisione per convertire gli obiettivi di alto livello in passi specifici come "sposta il braccio in avanti di 5 cm, ruotalo in senso orario di 180⁰, quindi arresta" (riquadro 2) per uno o più motori;
- Un processore degli algoritmi di controllo del movimento (riquadro 3). Questo definisce come deve essere eseguito ogni passo rispetto a fattori della traiettoria del movimento desiderato, ad esempio la velocità di accelerazione e l'arco di tempo, la velocità della corsa, la velocità di decelerazione e l'arco di tempo, e il punto finale. Determina poi in che modo gli avvolgimenti del motore devono essere pilotati per implementare questi dettagli. Anche in questo caso, un singolo processore può farlo per più motori, specie quando le loro azioni sono collegate.
- I segnali digitali di livello basso da (3) arrivano ai driver MOSFET/IGBT (riquadro 4) che forniscono le tensioni e correnti specifiche richieste per attivare e disattivare i MOSFET/IGBT degli interruttori di potenza. Questi driver sono l'interfaccia tra il mondo semplice dei segnali digitali di livello basso e quello difficile della gestione di alta potenza. I driver devono essere abbinati ai parametri di azionamento esclusivi richiesti dai MOSFET/IGBT in termini di tensione, corrente, velocità di variazione e periodi di attivazione/disattivazione. Inoltre fanno fronte ai problemi comuni di transitori di commutazione, surriscaldamento e anche cortocircuiti che i MOSFET/IGBT potrebbero incontrare.
- Gli interruttori di potenza – MOSFET o IGBT – controllano poi il flusso della corrente agli avvolgimenti del motore (riquadro 5), relativamente ai livelli di corrente/tensione richiesti dal motore (riquadro 6). Tenere presente che molte, ma non tutte, le applicazioni usano anche un qualche tipo di feedback del sensore dal motore (effetto Hall, encoder, resolver) per informare il processore della situazione effettiva del rotore del motore; alcuni algoritmi, come il Controllo a orientamento di campo (FOC), non richiedono questo feedback ma comportano ulteriori esigenze di calcolo e di una possibile riduzione della precisione.
A seconda del motore e dell'applicazione, le tensioni possono essere a cifra singola, doppia o superiore, mentre l'intervallo di corrente va da poche centinaia di milliampere a decine di ampere e più. I driver dei MOSFET/IGBT devono essere abbinati ai loro MOSFET/IGBT, che a loro volta devono essere abbinati al motore.
Vengono usati molti tipi diversi di motore, compresi quelli passo-passo, brushless c.c. (BLDC) o a induzione c.a., ognuno dei quali ha caratteristiche e applicazioni particolari. Anche se non esistono linee guida assolute sui tipi di motore più idonei rispetto all'applicazione, i motori passo-passo spesso sono usati a livelli di potenza inferiori quando è richiesto un movimento start-stop preciso; i motori BLDC sono idonei per intervalli di potenza medio-bassi specie quando serve la rotazione (e quindi il movimento) continua; i motori a induzione c.a. in genere sono quelli più economici ma hanno una precisione e ripetibilità inferiori.
Partizionamento della soluzione
Sebbene le funzioni eseguite dai blocchi da 2 a 5 nella figura vengano indicate come separate, in pratica possono essere combinate in vari modi a seconda dei livelli di potenza del sistema e dei requisiti delle prestazioni. Di seguito alcune delle possibilità:
- Le funzioni del processore di supervisione (2) e la funzione del processore degli algoritmi di controllo del movimento (3) possono essere svolte da una singola CPU. Questo in genere è fattibile solo se il processore è abbastanza potente, in quanto gli algoritmi di solito sono complessi e richiedono una quantità significativa di calcoli in tempo reale.
- Il processore degli algoritmi di controllo del movimento (3) e i driver MOSFET/IGBT (4) possono trovarsi su una singola scheda a circuiti stampati. Questa è una soluzione particolarmente attraente quando il motore di destinazione è monotipo e di taglia unica e non fa parte di una famiglia o di una serie, e così anche i MOSFET/IGBT usati sono di una sola misura. Anche qui vi sono delle considerazioni termiche, dato che il processore degli algoritmi di controllo del movimento probabilmente sarà un CI a dissipazione maggiore e anche i driver sono dispositivi a dissipazione relativamente superiore.
- Infine, i driver dei MOSFET/IGBT (4) e i MOSFET/IGBT (5) possono trovarsi su una singola scheda circuitale che si interfaccia tra il processore (3) e il carico del motore (6). Questa è una configurazione comune perché spesso la combinazione può fungere da "soluzione drop-in" alla sfida del passaggio da segnali digitali ad alta velocità di basso livello ai requisiti del mondo reale di interfacce di motori e alle numerose problematiche che ogni motore comporta.
Alcune schede di azionamento sono progettate per supportare più motori, dato che la maggior parte delle applicazioni robotizzate sono a più assi, con molti gradi di libertà (spesso tra tre e sei). In questo modo, il processore degli algoritmi può fornire indicazioni di controllo per il motore tramite un'unica interfaccia.
Qual è l'approccio migliore? Come in tutte le decisioni di carattere tecnico, vi sono dei compromessi basati su molti fattori: facilità d'uso, rischio del progetto, tempo di immissione sul mercato, flessibilità, adattabilità, installazione e costi, oltre alle prestazioni. Molti utenti scelgono di usare una soluzione integrata (un modulo o una scheda) che combina i driver dei MOSFET/IGBT e i MOSFET/IGBT stessi. Questo approccio riduce al minimo quello che, per la maggior parte dei progettisti, è l'aspetto più rischioso e problematico: assicurare che i driver siano compatibili con i componenti di commutazione MOSFET/IGBT che devono controllare.
Permette inoltre all'utente di concentrarsi sugli algoritmi e sulle interfacce a circuiti digitali di basso livello, come pure sugli inevitabili dettagli della sua specifica applicazione. In forma di moduli, schede a circuiti stampati o progetti di riferimento dei fornitori, questi accoppiamenti di driver con MOSFET/IGBT possono essere il modo più rapido per un team di progettazione per portare avanti rapidamente l'applicazione e concentrarsi sulle prestazioni.
Queste piattaforme combinate incorporano la maggior parte o tutti i dettagli di cui un circuito di pilotaggio dei motori ben studiato ha bisogno per essere sicuro e affidabile, come la protezione da cortocircuiti, l'esclusione per sottotensione e lo spegnimento per sovratemperatura. L'approccio combinato semplifica anche il supporto di una famiglia di motori di diverse dimensioni pur usando lo stesso processore e software, utilizzando schede intermediarie diverse tra il processore e il motore.
L'utente ha un ventaglio molto ampio di opzioni
Per gestire la varietà dei tipi di motore e delle esigenze è disponibile una gamma variegata di accoppiamenti di driver e MOSFET/IGBT. L'intenzione è quella di semplificare le sfide progettuali per permettere al team di concentrarsi sul firmware dell'applicazione e sulle sue inevitabili idiosincrasie.
Alcuni esempi illustrano questi punti. Per i motori c.a. di potenza medio-alta come quelli degli elettrodomestici (lavatrici, frigoriferi, condizionatori, macchine da cucire), scegliere i componenti SLLIMM™ (Small Low-Loss Intelligent Molded Module) di STMicroelectronics.
Questi moduli di potenza integrati (IPM) sono studiati per inverter trifase e hanno valori nominali di 8 A/600 V. Includono un trio di IGBT controllati da driver isolati high-side e low-side per la configurazione a ponte inverter standard; pertanto gli utenti non devono più provvedere all'isolamento (cosa che implica un maggior numero di componenti e fa salire i costi, oltre alle problematiche relative alla conformità a rigidi requisiti normativi).
Il diagramma a blocchi SLLIMM semplificato, Figura 2, nasconde la vera complessità del dispositivo. Il diagramma dell'applicazione, Figura 3, è più rivelatore dato che mostra che l'utente deve aggiungere solo una manciata di economici condensatori e resistori; tutti gli altri componenti richiesti - come diodi a recupero dolce, traslatori di livello, isolamento e protezione - sono incorporati nel modulo e sono trasparenti agli utenti.

Figura 2: Integrando quasi tutti i circuiti per controllare un potente motore a induzione c.a. tramite IGBT in un modulo sigillato, compreso l'isolamento galvanico obbligatorio, SLLIMM di STMicroelectronics trasforma questa sfida dell'alta tensione in un progetto abbordabile. (Fonte dell'immagine: STMicroelectronics)

Figura 3: SLLIMM è un'interfaccia quasi completa tra un microcontroller di basso livello e il motore a induzione c.a., richiede solo componenti passivi economici e non critici (per lo più condensatori, alcuni resistori, nessun induttore) per l'installazione finale. (Fonte dell'immagine: STMicroelectronics)
Gli ingressi a questo modulo sono segnali TTL/CMOS standard a 3,3/5 V, ma il modulo assicura 1500 V di isolamento tra ingressi e uscite, come richiesto per il funzionamento, la sicurezza e conformemente ai dettami normativi. Malgrado la sua potenza nominale abbastanza alta, il modulo ha dimensioni contenute: solo 38 mm di lunghezza e 25 mm di larghezza e soli 3,5 mm di spessore.
Per applicazioni con più motori BLDC, considerare il kit di valutazione CY8CKIT-037 PSoC 4 Motor Control di Cypress Semiconductor, in grado di gestire fino a quattro motori tramite MOSFET disposti nella comune configurazione a ponte H (Figura 4). I motori possono essere di tipo sincrono a magneti permanenti (PMSM), passo-passo e brushless c.c. (BLDC). Il kit è studiato per essere azionato da una scheda microcontroller Arduino e consente all'utente di implementare e valutare algoritmi di controllo del motore.

Figura 4: Il kit di valutazione CY8CKIT-037 PSoC 4 Motor Control di Cypress Semiconductor include tutto ciò che serve per progetti di controllo del movimento, incluse le alimentazioni, il motore, il cavo e persino un cacciavite. (Fonte dell'immagine: Cypress Semiconductor)
La scheda di pilotaggio, Figura 5 e Figura 6, si collega ai motori; contiene il circuito di alimentazione c.c./c.c., un doppio circuito a ponte H, circuito di elaborazione e di campionamento della corrente del motore e della tensione del bus, circuito di protezione, circuito di configurazione dell'utente e connettori alla sua scheda controller.
La scheda controller CY8CKIT-042 associata riceve i segnali dalla scheda Arduino, implementa l'algoritmo della strategia di controllo e genera poi i segnali di controllo alla scheda driver per controllare i motori. Il kit supporta anche l'uso di feedback tramite sensori a effetto Hall per aggiornare il controller sulla posizione effettiva (e quindi la velocità e l'accelerazione) dei motori per prestazioni a loop chiuso stretto, ma può essere utilizzato anche con progetti FOC senza sensore.

Figura 5: La scheda driver CY8CKIT-037 è completa di tutti i connettori (con terminali a vite ove appropriato per facilitare l'interconnessione), porta USB, predisposizione per sensori di feedback a effetto Hall e interfaccia Arduino, tutti facilmente accessibili. (Fonte dell'immagine: Cypress Semiconductor)

Figura 6: Il diagramma a blocchi della scheda driver CY8CKIT-037 mostra le numerose funzioni offerte per l'intera interfaccia tra una scheda microcontroller di tipo Arduino e un motore, compresa la gestione di motori a ponte H oltre alla predisposizione per il feedback sulla posizione, se desiderato. (Fonte dell'immagine: Cypress Semiconductor)
Supportando e anche pilotando il trend in applicazioni che usano motori passo-passo di bassa potenza, Big Easy Driver ROB-12859 di SparkFun è una scheda driver per motori passo-passo con valori nominali tra 1,4 e 1,7 A per fase e può arrivare a 2 A con una dissipazione di calore modesta (Figura 7). Il cuore di questa scheda è rappresentato dal driver su circuito integrato per motore passo-passo Allegro A4988, che supporta sia la modalità a passo intero che quella a micropassi con 2, 4, 8 e 16 micropassi/passo.

Figura 7: Il driver Big Easy ROB-12859 di SparkFun usa il CI Allegro A4988 come componente principale per assicurare il controllo di motori passo-passo di piccola/media potenza fino a 30 V nominali. (Fonte dell'immagine: SparkFun)
L'interconnessione tra la scheda microcontroller associata (come una Arduino) e Big Easy Driver è semplice. Richiede solo due segnali di controllo dalla scheda (uno per il "passo" e uno per la "direzione") e produce i segnali di potenza sincronizzati per l'eccitazione e lo stepping del motore, il che riduce fortemente il carico di elaborazione del microcontroller. Può accettare una tensione di comando motore massima di circa 30 V e include regolazione su scheda di 5/3,3 V in modo che non richieda più di una sola fonte di alimentazione.
Conclusione
Per molti team di progettazione, un aspetto impegnativo e frustrante dello sviluppo di una soluzione di controllo del movimento/motore per un braccio robotico o un'applicazione simile è l'interfacciamento del circuito digitale col motore di destinazione. Questo sforzo richiede intrinsecamente una diversa competenza di progettazione per poter gestire il campo dei livelli di potenza (correnti e tensioni), problemi analogici, vincoli di layout, funzioni di protezione dei circuiti e per assicurare la compatibilità tra il motore fisico e i suoi MOSFET/IGBT, oltre che tra MOSFET/IGBT e i loro driver.
Fortunatamente, i progettisti ora dispongono di numerose opzioni che agevolano enormemente questo aspetto del progetto. Sono disponibili moduli e schede di più fornitori che assicurano la funzione base di interfaccia, assieme agli elementi di sicurezza e protezione necessari, oltre a rispondere ai vari livelli di potenza e ai vari tipi di motori.
Esonero della responsabilità: le opinioni, le convinzioni e i punti di vista espressi dai vari autori e/o dai partecipanti al forum su questo sito Web non riflettono necessariamente le opinioni, le convinzioni e i punti di vista di DigiKey o le sue politiche.


