Table of Contents
Panoramica dei microcontrollori PIC per il controllo del motore
I microcontrollori PIC, sviluppati da Microchip Technology, sono tra i più diffusi controller incorporati nell'elettronica industriale e di consumo. Le loro periferiche integrate, moduli PWM, timer ad alta velocità, ADC multicanale e una gestione flessibile dell'interruzione, li rendono particolarmente adatti per le applicazioni di controllo del motore.
Il PIC MCUs fornisce le necessarie funzionalità di calcolo e hardware per implementare algoritmi a ciclo chiuso come PID (proporzionale-integrale-derivativo) senza richiedere componenti esterni. Inoltre, il loro basso consumo energetico, ampia gamma di tensione operativa e un vasto ecosistema di strumenti di sviluppo e note applicative riducono il rischio di progettazione e il tempo di mercato.
Tipi di motori e loro requisiti di controllo
La comprensione di questi requisiti è il primo passo nella scelta del microcontroller PIC giusto e nella progettazione del driver e dell'algoritmo appropriati.
Motori a spazzola continua
I motori spazzolati DC sono semplici, economici e facili da controllare. La velocità è regolata variando la tensione media applicata, tipicamente attraverso modulazione della larghezza di impulso (PWM). La direzione è controllata da un'inversione della polarità tramite un H-bridge. Il controllo della velocità di chiusura-loop può essere raggiunto con un tachimetro o un encoder che si alimentano all'unità di cattura di ingresso del PIC.
Motori stepper
I motori passo passo passo passo passo passo passo passo passo passo passo passo passo passo passo passo passo passo passo passo passo passo passo passo passo passo passo passo passo passo passo, rendendoli ideali per il controllo di posizione senza un sensore di feedback (open-loop). Il PIC deve generare sequenze precise di impulsi al driver motore (ad esempio, A4988 o DRV8825).
Motori a corrente continua senza spazzole (BLDC)
I motori BLDC sono più efficienti e durevoli dei tipi spazzolati ma richiedono commutazione elettronica. Il PIC deve conoscere la posizione del rotore (tramite i sensori Hall o il rilevamento back-EMF) e stimolare i corretto avvolgimenti in sequenza. Ciò comporta la commutazione a sei fasi o il controllo avanzato del campo (FOC).
Caratteristiche chiave PIC per il controllo del motore
Per implementare un controllo efficiente del motore, un progettista deve sfruttare appieno il set periferico del microcontrollore.
Modulazione della larghezza di impulso (PWM)
PWM è la spina dorsale del controllo della velocità e della coppia del motore. I microcontrollori PIC offrono più canali PWM con frequenza regolabile, ciclo di dovere e tempo morto (per la prevenzione delle riprese H-bridge). Dispositivi come la PIC16F1789 sono dotati di quattro moduli PWM, mentre le famiglie dsPIC33C forniscono PWM ad alta risoluzione con risoluzione fino a 250 ps.
Convertitore analogico-digitale (ADC)
Il controllo a ciclo chiuso richiede feedback da sensori: resistenze a senso corrente, divisori di tensione, sensori a effetto Hall o codificatori ottici. La maggior parte dei MCU PIC include ADC a 10 bit o a 12 bit con canali di ingresso multipli. La serie dsPIC33 offre ADC a 12 bit con velocità di conversione fino a 3,5 MS/s, consentendo il campionamento simultaneo di due correnti di fase per FOC.
Timer e Cattura di input
Il modulo di acquisizione dell'ingresso può misurare le larghezze di impulso da encoder o convertitori di frequenza-tensione. Questo è fondamentale per la misurazione della velocità del motore (RPM) o per la decodifica dei segnali di codifica quadratura. Alcuni PIC hanno moduli QEI (Quadrature Encoder Interface) che maneggiano la posizione, la velocità e la direzione automaticamente, scaricando la CPU.
Interruzioni
I microcontrollori PIC supportano molteplici priorità di interruzione, permettendo routine cronometrate (ad esempio, aggiornamento PWM) per premettere compiti di bassa priorità. La latenza di interrompi dei PIC moderni è nell'intervallo di 5-20 cicli di clock, sufficiente per velocizzare le operazioni di commutazione.
Comparatori e amplificatori Op-Amps
Molti recenti dispositivi PIC integrano comparatori analogici e amplificatori operativi, che possono essere utilizzati per il rilevamento overcurrent, il rilevamento back-EMF per il controllo BLDC senza sensore e per la costruzione di semplici filtri analogici.
Selezione del Microcontroller PIC destro
La scelta di PIC dipende dal tipo di motore, dalla complessità dell'algoritmo di controllo e dal set periferico richiesto. Microchip offre famiglie che vanno dalla linea di base a 8 bit ai dispositivi basati su MIPS a 32 bit.
PIC a 8 bit per il controllo di base
Le famiglie PIC16F e PIC18F sono adatte per applicazioni motorie semplici e spazzolate DC. Il PIC16F1847 fornisce due canali PWM, 10 bit ADC e un oscillatore interno fino a 64 MHz. Per i driver stepper, il PIC18F25K40 include più timer e un modulo PWM dedicato, soluzioni convenienti per giocattoli, piccole pompe e semplice automazione.
PIC24 a 16 bit e dsPIC33 per il controllo avanzato
Per i motori BLDC e FOC, i controller digitali del segnale dsPIC33 (DSC) sono la scelta migliore. Combinano un nucleo MCU a 16 bit con un motore DSP per la matematica veloce (multiply-accumulate, divide). Le caratteristiche chiave includono il PWM ad alta risoluzione (250 ps), ADC a 12 bit con fino a 6 MSPS, e RAM a doppio porto per il campionamento simultaneo.
PIC32 a 32 bit per sistemi complessi
Quando l'algoritmo di controllo diventa estremamente compute-intensivo (ad esempio, il controllo multi-assistico con EtherCAT), i microcontrollori PIC32MZ con core MIPS 200 MHz forniscono la necessaria produttività.
Progettazione del sistema di controllo motore
Un sistema di controllo motore è costituito da tre blocchi principali: il microcontrollore PIC, la fase di alimentazione (driver e H-bridge), e i sensori di feedback.
Attuazione hardware
Per i motori a bassa tensione DC, i sensori L293D o TB6612FNG (fino a 1.2 A) sono popolari. Per i motori BLDC, i driver a tre fasi come il DRV8301 (fino a 2.5 A per fase) integrano driver di cancello e amplificatori a corrente costante.
Posizionare i diodi TVS attraverso i terminali motore, un fusibile rapido sull'ingresso di potenza e un diodo di protezione contro la polarità inversa. I pin di ingresso analogici PIC devono essere bloccati con diodi Schottky se si interfacciano con circuiti ad alta tensione.
Architettura del software
Il firmware di controllo viene solitamente utilizzato come macchina di stato. Il loop principale inizializza le periferiche, quindi entra in un loop infinito. Le routine di servizio interrotta (ISR) gestiscono compiti critici: aggiornamento FOWM, completamento di conversione ADC, viaggio overcurrent e conteggio di impulsi encoder. Per un controller di velocità PLD, l'ISR calcola l'errore, calcola l'output e aggiorna il ciclo di dovere di PWM 10 volte.
Utilizzare il Configuratore di codice di Microchip (MCC) per generare il codice di configurazione periferica iniziale, che riduce gli errori manuali. Il MPLAB X IDE fornisce un simulatore e un debugger per testare il loop di controllo senza hardware.
Attuazione degli algoritmi di controllo
Controllo PID
L'algoritmo PID rimane il metodo più utilizzato per il controllo del motore a ciclo chiuso.
Per evitare il riavvolgimento integrale, blocca il termine integrale ad un valore massimo. Il calcio derivato viene minimizzato applicando il derivato al segnale misurato piuttosto che all'errore. L'output u(k) viene scalato al ciclo di dovere PWM (0–100%).
Controllo BLDC senza sensore
Per BLDC senza sensore, la posizione del rotore è stimata dal back-EMF. Durante la fase aperta, lo zero-crossing della tensione di fase rispetto al punto neutro indica l'istante di commutazione. Il modulo di comparatore e i timer di PIC sono utilizzati per rilevare questi eventi.
Controllo orientato al campo (FOC)
Il sistema di controllo di Clarke e Park, i controllori PI nel telaio di riferimento dq e la trasformazione di un parco inverso. Il motore DSP di dsPIC33 esegue queste trasformazioni in pochi microsecondi. Microchip fornisce una libreria software FOC gratuita (Reference Designs[FFFF]]
Considerazioni pratiche di progettazione
Telaio PCB
Piani di terra analogici e digitali separati, collegandoli ad un unico punto sotto il PIC. Posizionare condensatori di decoupling (0.1 μF + 10 μF) vicino a ogni pin di potenza. Tenere tracce ad alta corrente (potenza del motore) larghe e lontano da segnali analogici sensibili.
Mitigazione del rumore
Il commutatore del motore genera rumori ad alta frequenza che possono corrompere le letture ADC del PIC e causare interruzioni spuriose. Utilizzare perline ferrite sulle linee di potenza del motore, cavi di codifica dello schermo, e aggiungere filtri RC a basso passaggio su ingressi analogici (frequenza di taglio sotto la frequenza di commutazione PWM).
Gestione termica
Se la temperatura ambiente supera gli 85 °C, considerare l'estensione della gamma di temperature varianti PIC. Una semplice routine di arresto termico può essere implementata utilizzando l'indicatore interno della temperatura PIC (se disponibile) per ridurre il dovere PWM o arrestare il motore.
Strumenti di sviluppo e risorse
Il sistema di controllo di microchip MPLAB X IDE] e XC8/XC16/XC32 i compilatori sono liberi per le dimensioni di codice fino a 1 KB (XC8) o 30 KB (XC16) e completamente funzionali per lo sviluppo del controllo del motore.
Per il debug, l'emulatore in circuito MPLAB ICE 4 fornisce il monitoraggio in tempo reale delle tracce e della tensione. Un oscilloscopio con sonde isolate è essenziale per la visualizzazione dei segnali di gate PWM e delle correnti di fase.
Conclusioni
La progettazione di sistemi di controllo motore efficienti con microcontrollori PIC è una scelta pratica per gli ingegneri che vanno dagli hobbisti ai professionisti industriali. L'ampia integrazione periferica, il basso costo e l'ecosistema di sviluppo maturo consentono una rapida prototipazione e una produzione affidabile.