BLDC, controllo motori con LPC1700

Nuovo appuntamento con la Rubrica Firmware Reload di Elettronica Open Source. I motori DC Brushless (BLDC) stanno crescendo sempre di più in termini di popolarità. Offrono una maggior durata e richiedono una minor manutenzione rispetto ai tradizionali motori in corrente continua. In questo articolo, dopo aver analizzato i dettagli di un motore DC Brushless, illustreremo esempi di IC per il controllo dei motori e, in particolare, la famiglia LPC1700 dotata di un controllo PWM dedicato che riduce l’utilizzo della CPU durante la gestione del motore.

Introduzione

La macchina brushless a magneti permanenti, dal punto di vista costruttivo, può essere sostanzialmente vista come una macchina sincrona, nella quale sia stato sostituito all’avvolgimento di eccitazione, disposto come noto sul rotore, un insieme di magneti permanenti in grado di instaurare al traferro un campo magnetico del tutto simile a quello prodotto dall’avvolgimento di eccitazione. L’aggettivo brushless (senza spazzole) deriva appunto dal fatto che, non essendoci un avvolgimento di eccitazione sul rotore, viene a mancare la necessità di predisporre un sistema strisciante per addurre corrente al rotore, come ad esempio il sistema spazzole-anelli. Questo tipo di macchina si differenzia in due tipologie: DC-brushless (Direct Current - corrente continua) e AC-brushless (Alternate Current - corrente alternata); la differenza sostanziale risiede nel fatto che nella prima tipologia il campo al traferro ha un andamento di tipo trapezoidale, tipico delle macchine in corrente continua, mentre nella seconda tipologia ha un andamento sinusoidale, come nelle macchine in corrente alternata, nello specifico la macchina sincrona.

Costruttivamente, le due tipologie si differenziano con il fatto che, mentre le macchine DC-brushless sono caratterizzate dall’avere gli avvolgimenti di statore concentrati, necessari a produrre un campo trapezoidale, quelle AC-brushless hanno invece un avvolgimento di tipo distribuito, indispensabile per produrre un campo sinusoidale. Per effettuare il controllo vettoriale della macchina AC-brushless è necessario conoscere con precisione la posizione del rotore, mentre nella macchina DC-brushless è sufficiente sapere quando il rotore supera ben determinate posizioni. Questo fatto che può rappresentare un vantaggio per la macchina DC-brushless in termini di una maggiore semplicità del sistema di stima della posizione del rotore, diventa uno svantaggio quando si rende necessario indebolire il campo prodotto dai magneti permanenti, nel qual caso è fondamentale poter indurre un campo smagnetizzante con una direzione ben precisa. In definitiva, la macchina AC-brushless presenta i vantaggi di avere un’oscillazione di coppia inferiore e la possibilità di imporre il regime di indebolimento di campo, mentre gli svantaggi sono una coppia specifica leggermente inferiore e una maggiore complessità del convertitore, dei sensori e del controllo.

IL MOTORE BRUSHLESS DC

I sostanziali vantaggi del brushless (Figura 1) rispetto al motore in corrente continua sono: assenza di manutenzione delle spazzole e del collettore di commutazione; elevato grado di protezione, con possibile funzionamento in ambienti polverosi o esplosivi; momento d’inerzia sensibilmente inferiore, infatti, i magneti permanenti vengono allocati sulla superficie esterna del rotore cercando di svuotarne l’interno al fine di ridurne l’inerzia; velocità più alte; minore limitazione di coppia alle alte velocità per effetto del commutatore, non è necessario infatti limitare la corrente alle alte velocità. Il motore brushless può essere comandato con onda quadra (brushless DC motor) o con onda sinusoidale (brushless AC synchronous motor), a seconda della forma d’onda di corrente imposta dal convertitore; f.c.e.m. (forza contro elettro motrice) di fase, dipendente dalla disposizione degli avvolgimenti statorici e dalla disposizione/forma dei magneti rotorici. Tale macchina elettrica richiede di essere comandata con una forma d’onda di corrente differente a seconda che si tratti di un motore brushless AC o DC. Mentre in quest’ultimo il controllo del convertitore di potenza deve essere progettato in modo che in ogni fase venga imposta una corrente ad onda quadra, un motore brushless AC richiede che in ogni fase gli venga imposta una corrente di tipo sinusoidale. Per quanto riguarda la f.c.e.m., in un motore brushless DC, essa presenta una forma d’onda di tipo trapezoidale.

Per ottenere tale andamento della f.c.e.m. a vuoto, i magneti dei motori brushless DC dovrebbero realizzare una distribuzione di induzione al traferro il più possibile ad onda quadra, per cui ciascun magnete permanente disposto sulla superficie del rotore dovrebbe ricoprire un passo polare. In realtà, i magneti hanno un’estensione lungo la periferia del rotore che ricopre circa il 90% di esso. In direzione assiale, invece, la loro estensione è pari alla lunghezza del pacco lamellare di statore. Dal punto di vista costruttivo si possono ottenere buoni risultati utilizzando strutture rotoriche con tegole magnetiche incurvate oppure con sbarrette magnetiche. I magneti permanenti possono essere in ferrite o a terre rare e sono applicati sulla superficie esterna del rotore.

Per motori sinusoidali gli avvolgimenti sono distribuiti il più possibile sinusoidalmente, nonostante la presenza delle cave. Ciò comporta avvolgimenti a più strati ed a passo generalmente raccorciato. Per motori trapezoidali l’avvolgimento è più semplice: le spire sono diametrali, in ogni cava ci sono conduttori di una sola fase, si usano in generale due strati - per ragioni di simmetria - nelle richiusure frontali. Il convertitore, che controlla coppia e velocità del motore, è contraddistinto da: configurazione di potenza indipendente dalle due tecniche citate; elettronica di controllo e trasduttore di posizione rotorica dipendente dalla specifica tecnica di controllo attuata; funzionamento reversibile (o bidirezionale), ossia capacità di erogare energia motrice ed assorbire energia frenante per entrambi i sensi di rotazione del motore. In un motore in c.c. a spazzole l’avvolgimento rotorico (indotto) è alimentato dall’esterno attraverso le spazzole e le lamelle di collettore.

La rotazione del rotore determina lo spostamento relativo delle spazzole sul collettore e la conseguente alimentazione delle spire opportune. Il collettore a lamelle, insieme alle spazzole, funge da commutatore automatico dell’alimentazione sugli avvolgimenti rotorici. Nel motore brushless il collettore viene sostituito da un commutatore elettronico controllato. Ciò rende possibile lo scambio delle posizioni tra rotore e statore, ovvero il campo viene ora generato da magneti permanenti posti sul rotore, mentre gli avvolgimenti sono realizzati sullo statore. Un’evoluzione ha portato alla realizzazione di questa macchina con tre avvolgimenti statorici posti a 120° meccanici.

Figura 1: Motore DC Brushless

Figura 1: Motore DC Brushless

PANORAMICA SU IC PER CONTROLLO MOTORE

Un esempio di controllore è rappresentato dal DRV8840 della Texas Instruments che rappresenta una buona soluzione per il controllo di motori per stampanti e scanner. Il dispositivo presenta un driver H-bridge ed è ovviamente destinato a pilotare motori DC. La capacità del driver H-bridge è quella di pilotare in avanti e indietro il motore a qualsiasi velocità, utilizzando una sorgente di alimentazione indipendente. Un progetto per driver H-bridge può essere implementato con transistor bipolari oppure utilizzando dei FET/MOSFET. Il DRV8840 è in grado di fornire corrente fino a 5 A di picco o 3,5 A come corrente di uscita; saranno necessari opportuni dissipatori di calore.

La corrente massima che attraversa l’avvolgimento è regolata da una frequenza fissa PWM. Quando il driver H-bridge è abilitato, la corrente aumenta attraverso l’avvolgimento ad una velocità dipendente dalla tensione DC e induttanza dell’avvolgimento stesso. Quando la corrente raggiunge la soglia, il driver H-bridge disabilita la corrente fino al successivo ciclo PWM. Per motori DC la regolazione della corrente è utilizzata per limitare l’avviamento e la corrente di stallo del motore stesso. Il controllo della velocità è tipicamente eseguito attraverso un segnale PWM esterno ai pin ENBLx. E’ possibile disattivare la funzione di regolazione della velocità collegando i pin iSense direttamente a massa e il pin VREG al pin V3P3.

LPC1700

L’integrato LPC1700 è un microcontrollore basato su ARM Cortex-M3 per applicazioni embedded che richiedono un elevato livello di integrazione e bassa dissipazione di potenza. L’ARM Cortex-M3 è un microcontrollore di nuova generazione che offre miglioramenti del sistema quali funzionalità di debug e un più elevato livello di supporto per l’integrazione di blocco fino a 120 MHz di frequenza della CPU. L'LPC1700 comprende fino a 512 kB di memoria flash, fino a 64 kB di SRAM, MAC Ethernet, un’interfaccia USB che può essere configurata come Host, un dispositivo OTG, 8 canali di uso generale per controller DMA, 4 UART, 2 canali CAN, 2 controller SSP, interfaccia SPI, 3 interfacce I2C, l’interfaccia I2S, 8 canali ADC 12-bit, controllo motore PWM, interfaccia encoder in quadratura, 4 timer per impieghi generici a 32 bit, 6-output general purpose PWM, RTC con alimentazione a batteria separata e fino a 70 pin di I/O sempre ad uso generico.

La famiglia NXP LPC1700 è dotata di un apposito controllo motore PWM (MC-PWM). Questo MC-PWM è ottimizzato per applicazioni di controllo motore trifase AC e DC. L’architettura PWM di controllo del motore è progettata in modo tale che ci siano tre canali indipendenti, di cui ogni canale controlla una coppia di uscita modulata con polarità opposte. Tutti i canali possono essere impostati e controllati in modo indipendente, ma possono essere interconnessi con la "modalità DC trifase" o la "modalità AC trifase". Il MC-PWM supporta diverse modalità di funzionamento. La prima modalità, ad esempio, è la PWM classica. La tecnica denominata P.W.M. (Pulse Width Modulation) consta essenzialmente nel trasmettere l’informazione attraverso un segnale impulsivo mediante la larghezza dell’impulso stesso. Un segnale PWM (Figura 2) può essere utilizzato per controllare un motore DC in modalità ON-OFF o anche per mezzo di un ponte H. La corrente che scorre all’interno del motore risulta proporzionale al duty cycle. In particolare, questa risulta avere un valore costante legato al fatto che il carico è induttivo. Questo significa che può immagazzinare l’energia che farà scorrere la corrente attraverso il motore, anche quando il livello del segnale PWM sarà 0.

Figura 2: Circuito PWM

Figura 2: Circuito PWM

UN’APPLICAZIONE CON LPC1700

Un esempio di applicazione è riportato in Figura 3, utilizza la periferica MC-PWM per controllare l’inverter. Dalla figura si osserva che i canali MC-PWM A sono utilizzati per guidare i FET di commutazione ed i canali MC-PWM B per il Low-side di commutazione dei FET. Per poter ottenere le informazioni necessarie a ricavare la posizione dell’attuatore e la velocità di rotazione, si utilizza un encoder ottico incrementale a quadratura. Per il feedback di orientamento del rotore possono essere scelti sia un sensore Hall o un encoder in quadratura.

Figura 3: Controllo Motore DC Brushless con LPC1700

                                                                             Figura 3: Controllo Motore DC Brushless con LPC1700

I sensori di prossimità sono dei sensori in grado di rilevare la presenza di oggetti nelle immediate vicinanze del "lato sensibile" del sensore stesso, senza che vi sia un effettivo contatto fisico. La distanza entro cui questi sensori rilevano oggetti è definita portata nominale (o campo sensibile). Un encoder è costituito da un disco che ruota solidalmente con l’albero di cui si vuole misurare la posizione angolare; il disco è diviso in settori, ciascuno dei quali, con un opportuno alternarsi di zone conduttrici e zone isolanti, riproduce un diverso numero binario nell’ambito di un codice opportunamente scelto.

Questa informazione viene letta da un sistema di spazzole (o da un sensore nel caso di tecnologia brushless) e trasferita sotto forma di segnali di tensione a due livelli significativi (0 e 1), su una serie di conduttori. Le zone conduttrici e isolanti possono essere sostituite da zone magnetiche e non magnetiche, a seconda del sistema con cui viene effettuato. Come mostrato in Figura 3, inoltre, i pin di feedback sono collegati ad entrambi i pin MCFB e GPIO. L'NXP FET Semiconductors PH20100S N-channel livello logico TrenchMOS viene utilizzato per questo sistema. E' scelto in relazione con il motore selezionato, alimentato con 24 V. Per un 24 V, il MOSFET VDS deve essere di almeno 40 V, mentre la corrente di drain deve essere sufficientemente elevata per affrontare la corrente di spunto del motore (avvio).

Quest’ultima è già ridotta grazie ad un meccanismo ad accelerazione progressiva (a piccoli passi verso la velocità richiesta) implementato via software. I PH20100S possono operare con una corrente massima di drain di 34,3 A e una corrente di picco di 137 A e sono disponibili in un contenitore SMD SOT669 (LFPAK). I Driver MOSFET sono necessari per aumentare il segnale di uscita del regolatore (guidare il MOSFET) al livello di tensione di alimentazione del motore. I PMD3001D e PMGD400UN da NXP Semiconductors, come illustrato in Figura 4, vengono utilizzati per questo esempio di applicazione. I MOSFET utilizzati in questo inverter di potenza sono tarati a 12 V con una frequenza di commutazione di 20 kHz (50 ms) per avere una corrente operativa di sicurezza di circa 40 A.

Figura 4: Mosfet

Figura 4: MOSFET

Pertanto, questa scheda è in grado di pilotare un motore di circa 480 W. Un Maxon EC32 80 W con sensori Hall ed estensione encoder in quadratura è stato implementato come esempio. Gli azionamenti brushless del motore scelto sono particolarmente adatti ad essere utilizzati nei settori in cui è molto importante l’elevata dinamica, quali quelli dell’automazione industriale, della robotica, delle macchine utensili, dei veicoli a propulsione elettrica e ibrida e degli attuatori aerospaziali. Il software scritto per questa nota applicazione è basato sul microcontrollore Cortex, software di interfaccia standard (CMSIS), e quindi utilizza il Firmware Driver Library di periferica standard CMSIS-Compliant.

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend