Realizzare un'applicazione per un motore BLDC funzionante in meno di un'ora con un pacchetto combinato di hardware e software.
Contributo di Editori nordamericani di DigiKey
2019-07-31
Nei settori della difesa, industriale e della robotica esistono molte applicazioni che richiedono che un sistema embedded utilizzi un motore c.c. brushless (BLDC). Anche se azionare un motore può sembrare una cosa banale, di fatto non lo è e la complessità del processo può rallentare un progetto. Lo sviluppatore deve infatti occuparsi di molti dettagli: velocità del motore, coppia, caratteristiche elettriche e proprietà elettromagnetiche, nonché delle misurazioni del feedback di corrente.
Ciò presume che abbia già scelto l'hardware idoneo su cui eseguire l'algoritmo che comanderà il motore con un controllo regolare dell'intera gamma di movimento dell'applicazione, affidandosi a un numero minimo di componenti.
Serve una soluzione più rapida: un pacchetto hardware e software all-in-one in grado di ridurre notevolmente i tempi di sviluppo, lasciando che gli sviluppatori si concentrino sull'applicazione finale, senza entrare troppo nel merito del controllo motore.
Questo articolo presenterà un pacchetto realizzato da Texas Instruments che, alla parte hardware rappresentata da un microcontroller e da un kit di sviluppo, abbina i suoi strumenti e il suo software di controllo motori a orientamento di campo InstaSPIN™. Verrà poi mostrato come uno sviluppatore anche alle prime armi può usare questa combinazione per determinare facilmente i parametri del motore e far girare un motore BLDC complesso in meno di un'ora.
Cos'è InstaSPIN-FOC ed è davvero così facile da usare?
La particolarità della soluzione InstaSPIN di Texas Instruments è quella di permettere a uno sviluppatore di partire da zero e arrivare a far girare un motore in meno di un'ora. Se ha già usato la soluzione anche solo una volta, i tempi potrebbero ridursi addirittura a meno di dieci minuti. Inoltre, poiché il kit utilizza un controllo a orientamento di campo (FOC) al posto di un encoder, basta collegare l'alimentazione e la terra al motore e quindi collegare ogni fase dell'azionamento. A questo punto, la parte elettrica è già completata. Non servono encoder, né altri componenti elettronici complessi.
Ovviamente, oltre al FOC ci sono altri meccanismi di controllo che non usano sensori o encoder, come la temporizzazione zero-crossing f.c.e.m. InstaSPIN monitora il flusso del motore per determinare quando effettuarne la commutazione. Lo sviluppatore può osservare il segnale del flusso in una finestra del tracciato e impostare il cursore "Flux Threshold" per specificare a quale livello di flusso deve essere commutato il motore. Osservando la tensione di fase e le forme d'onda della corrente, visualizzate anch'esse, si può verificare se la commutazione è ottimale.
La soluzione InstaSPIN-FOC consta di quattro elementi principali:
- Una scheda a microcontroller
- Una scheda driver per motori
- Un'interfaccia grafica utente (GUI) InstaSPIN-FOC
- Un motore BLDC
La scheda a microcontroller fornisce l'intelligenza per eseguire gli algoritmi FOC e dire al driver del motore quando attivare e disattivare le varie fasi. Gestisce inoltre la comunicazione con la GUI in cui lo sviluppatore può vedere i livelli del flusso e altri parametri. Il driver del motore costituisce l'interfaccia per pilotare il motore vero e proprio. I circuiti elettrici presenti servono a proteggere il microcontroller da tensioni elevate, effettuare misurazioni e rilevare anche eventuali guasti del motore.
InstaSPIN-FOC è una GUI universale presente nella galleria di sviluppo online di Texas Instruments. Gli sviluppatori possono eseguirla direttamente da un browser Web oppure possono scaricare una versione eseguibile localmente sul proprio computer.
L'ultimo dei componenti fondamentali è il motore BLDC trifase a magneti permanenti.
Esaminiamo nei dettagli ognuna di queste aree e cerchiamo una potenziale soluzione hardware per rendere funzionante un motore BLDC.
Driver per motore BLDC e microcontroller
Per rendere funzionante un motore BLDC, gli sviluppatori dispongono di diverse soluzioni, per cui non devono cercare molto: InstaSPIN-FOC e l'SDK MotorControl di TI sono accoppiati con il LaunchPad TMS320F280049C LAUNCHXL-F280049C (Figura 1) e il LaunchPad Booster Pack BOOSTXL-DRV8323RS. LaunchPad TMS320F28049C è una scheda di sviluppo a basso costo che include un debugger XDS110, basette di espansione e il microcontroller F280049CPMS TMS320F280049C Piccolo™.
Figura 1: Il LaunchPad TMS320F280049C contiene una sonda di debug USB XDS110 isolata, un microcontroller F280049C Piccolo e l'elettronica per alimentare due booster pack utilizzabili per hardware specifico per l'applicazione. (Immagine per gentile concessione di Texas Instruments)
Il microcontroller TMS320F280049C usa un core C2000 e include 256 kB di flash, 100 kB di RAM e viene eseguito a 100 MHz. TMS320F280049C include anche algoritmi di controllo motori FOC di TI integrati nella ROM che evitano di sprecare prezioso spazio di codice.
LaunchPad TMS320F280049C non è l'unico modo in cui gli sviluppatori possono sfruttare il microcontroller TMS320F280049C. Esiste anche la scheda di controllo TMDSCNCD280049C per il microcontroller TMS320F280049C (Figura 2). Questa scheda può essere utilizzata nella fase di prototipazione o se gli sviluppatori vogliono poter sostituire il microcontroller che stanno utilizzando nell'applicazione oppure desiderano una maggiore espandibilità. Se invece vogliono accedere all'I/O del microcontroller, possono posizionarla in una docking station.
Figura 2: La scheda di controllo TMS320F280049C assicura le capacità di controllo motori in un piccolo modulo che può essere utilizzato con una docking station per accedere all'I/O del microcontroller. (Immagine per gentile concessione di Texas Instruments)
Il LaunchPad Booster Pack DRV8323RS è una scheda di espansione installata sopra il LaunchPad TMS320F280049C e aggiunge l'altro hardware richiesto per pilotare un motore BLDC (Figura 3).
Figura 3: Il LaunchPad Booster Pack DRV8323RS contiene il controller di azionamento del motore, FET e altri circuiti per pilotare un motore BLDC. (Immagine per gentile concessione di Texas Instruments)
La scheda DRV8232RS può essere inserita nell'area di espansione della posizione 1 o 2, ma gli esempi dell'SDK MotorControl presumono che si trovi nella posizione 1. Gli sviluppatori possono collegare il motore BLDC alla scheda tramite tre connettori a morsetto e quindi fornire alla scheda l'alimentazione esterna per pilotare il motore. Anche il LaunchPad Booster Pack DRV8232RS alimenta la scheda TMS320F280049C. La scheda contiene dei LED che indicano se l'alimentazione è attiva e un LED di rilevamento errori.
Il cuore del LaunchPad Booster Pack DRV8232RS è il gate driver intelligente trifase DRV8230. Il gate driver fornisce il rilevamento della corrente low-side e l'azionamento diretto per i MOSFET classificati per funzionare fino a 60 V.
Con il LaunchPad TMS320F280049C e il LaunchPad Booster Pack DRV8232RS, gli sviluppatori possono pilotare una vasta gamma di motori BLDC. Un ottimo motore da cui partire è QBL4208-41-04-006 di Trinamic (Figura 4).
Il motore Trinamic ha un'alimentazione a 24 V, un massimo di 4000 rivoluzioni al minuto (RPM) e fornisce una coppia di 62,5 mNm.
Figura 4: Il motore BLDC Trinamic QBL4208-41-04-006 4000 RPM ha un'alimentazione di 24 V e produce una coppia di 62,5 mNm. (Immagine per gentile concessione di Trinamic Motion Control GmbH)
Dopo aver definito la dotazione minima di cui ha bisogno per iniziare a lavorare con il controllo motori BLDC, come passo successivo lo sviluppatore deve sapere come identificare i parametri del motore usando la GUI InstaSPIN-FOC.
Identificare i parametri di un motore BLDC e metterlo in funzione
Prima che la GUI InstaSPIN-FOC possa azionare un motore, deve capirne le caratteristiche così da riuscire a eseguire il controllo FOC della velocità o della coppia. A tale fine, l'algoritmo deve conoscere caratteristiche come:
- Resistenza
- Induttanza
- Flusso del motore
- Corrente magnetizzante
Tutte queste caratteristiche possono essere determinate automaticamente in pochi minuti tramite la GUI InstaSPIN-FOC. La GUI può essere eseguita da un browser e, per impostazione predefinita, caricherà il Lab 5 dell'SDK MotorControl progettato per funzionare con TMS320F280049C e con la scheda di espansione DRV8232. Lab 5 dimostra come uno sviluppatore può identificare un motore e ottenerne i parametri. Tutti i dettagli sono disponibili nella Guida rapida alla GUI e nel manuale del lab.
Per prima cosa, occorre aprire la GUI InstaSPIN-FOC tramite il sito degli sviluppatori TI. All'interno dell'ambiente GUI c'è un pulsante di esecuzione, come in qualsiasi IDE di sviluppo. Facendo clic su questo pulsante, il codice identificativo del motore verrà scaricato nel LaunchPad e verrà fatto un tentativo di eseguirlo.
All'inizio non accade nulla di interessante perché lo sviluppatore deve prima abilitare il software. Per farlo, occorre spuntare la casella di controllo "Enable System" all'interno della GUI. Il codice di identificazione del motore non verrà eseguito nemmeno ora, poiché è necessario selezionare anche la casella di controllo "Run". Quando "Run" è stato abilitato, il codice inizierà a eseguire una sequenza progettata per identificare il motore. Effettuerà le misurazioni necessarie per ottenere i parametri richiesti per il suo azionamento. L'intero processo di identificazione richiede diversi minuti durante i quali il motore si avvierà, quindi si spegnerà e funzionerà a bassa velocità per alcuni minuti.
Al termine del processo, la GUI potrebbe essere simile a quella riportata nella Figura 5.
Figura 5: La GUI InstaSPIN-FOC subito dopo l'identificazione di un motore. (Immagine per gentile concessione di Jacob Beningo)
Nella Figura 5 si può vedere che nell'angolo in alto a destra della GUI sono presentati diversi valori. Si tratta dei parametri del motore da registrare per poterli utilizzare in seguito per azionare il motore in modalità coppia o velocità. Si noterà anche, a sinistra, che l'indicatore "Motor Identified" è passato da grigio a verde. A questo punto si può controllare la velocità del motore direttamente tramite la GUI.
Per farlo basta cambiare la casella speedRef(Hz) nella GUI. Tenere presente che l'accelerazione del motore tramite questo controllo di riferimento è molto rapida. La decelerazione, invece, richiede l'immissione di più setpoint posti a speedRef decrescenti. Il motore può essere arrestato completamente in un attimo deselezionando la casella di controllo "Run".
Suggerimenti e consigli per l'utilizzo di un motore BLDC con InstaSPIN-FOC di TI
Di seguito sono riportate alcune best practice che gli sviluppatori devono tenere in considerazione quando lavorano con motori BLDC e con la soluzione InstaSPIN-FOC di TI:
- Scegliere un microcontroller con gli algoritmi del motore integrati nella sua flash interna. In questo modo si riduce lo spazio di codice utilizzato per gli algoritmi del motore e si possono anche migliorare le prestazioni di esecuzione.
- Nel LaunchPad F280049C, usare la posizione 1 come posizione predefinita per il LaunchPad Booster Pack DRV8323RS. Per usare la posizione 2 occorrerà aggiornare il software.
- Dedicare un po' di tempo all'esame di tutti i 13 laboratori di esempio forniti come parte dell'SDK MotorControl di TI. Questi laboratori coprono tutti gli aspetti, dall'identificazione dei parametri del motore al controllo di un motore attraverso il controllo della velocità e della coppia.
- Utilizzare l'esempio del laboratorio 5 per trovare i parametri del proprio motore. Se si utilizza MOTOR_TYPE_PM, per compilare correttamente il laboratorio assicurarsi di aggiungere anche la seguente definizione, quindi utilizzare il valore ottimizzato:
define #define USER_MOTOR_INERTIA_Kgm2 (7.06154e-06)
- Iniziare la sperimentazione del BLDC utilizzando la GUI online InstaSPIN-FOC.
Conclusione
Azionare un motore BLDC con il controllo della coppia o della velocità può essere complesso e può facilmente rivelarsi un compito che va oltre le conoscenze di un ingegnere del software embedded, rallentando lo sviluppo del progetto. Come è stato dimostrato, gli sviluppatori che lavorano con InstaSPIN, con l'SDK MotorControl di Texas Instruments e con il relativo hardware possono rendere operativo un motore BLDC in modo facile e veloce anche avendo una conoscenza molto limitata dell'ingegneria dei controlli.

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.