Motore passo passo RPi con anti-risonanza

I motori passo passo sono diventati indispensabili nella progettazione delle moderne apparecchiature elettromeccaniche. Si possono trovare ovunque, dalle stampanti 3D agli hard disk e ai robot. Nonostante la loro popolarità, i motori stepper hanno anche un lato oscuro, compreso il loro comportamento risonante e la scarsa efficienza. Questo articolo mostrerà come si possono combattere tali problemi, aumentandone l'efficienza e diminuendo le instabilità.

Introduzione

I motori passo passo sono disponibili in tutte le misure, offrendo un'ampia gamma di passo, di frequenze e di profilo fisico, per adattarsi a ogni applicazione. I motori passo passo ibridi sono sempre più utilizzati nelle stampanti 3D, per fornire movimenti lineari utilizzando i mandrini. Spesso operano in condizioni non ottimali, ad esempio ad alte frequenze e bassi carichi, dove gli effetti della risonanza meccanica e delle vibrazioni sono più evidenti che mai. Per ottenere un funzionamento ottimizzato del motore passo passo ed, eventualmente, contrastare tali problemi, è importante tenere conto di questi fenomeni. Questo progetto ha lo scopo di realizzare un controller dedicato al motore stepper per il Raspberry Pi che combina avanzate tecniche di anti-risonanza e di pilotaggio, assieme a uno stadio di potenza.

Risonanza

Per i motori passo passo, viene fatta una distinzione tra auto-risonanza e instabilità parametrica. Le auto-risonanze si verificano a frequenze comprese tra 1 e 300 Hz e possono essere controllate mediante contromisure meccaniche (cambio degli ingranaggi, smorzamento, ecc). Operando in questo intervallo, un motore passo passo non supera, in genere, un rendimento del 10%. Sopra i  300 Hz (o passi al secondo) la risonanza parametrica si presenta in alcune bande di frequenza. Le oscillazioni della rotazione del rotore danno luogo a un comportamento risonante (vedi figura 1).

Figura 1: tipiche oscillazioni del rotore nei piccoli motori passo passo rispetto alla frequenza misurata. Senza misure anti-risonanza, la frequenza di oscillazione del rotore è di 34 Hz. Dopo un'oscillazione incontrollata il motore si blocca.

Figura 1: tipiche oscillazioni del rotore nei piccoli motori passo passo rispetto alla frequenza misurata. Senza misure anti-risonanza, la frequenza di oscillazione del rotore è di 34 Hz. Dopo un'oscillazione incontrollata il motore si blocca.

Tali vibrazioni possono accumularsi e raggiungere importanti ampiezze a causa della risonanza, rendendo così il rotore non più sincronizzato con la frequenza di controllo; esso può perdere passi e alla fine fermarsi. Senza adeguate contromisure, la soluzione è quella di far funzionare il motore con una corrente al di sotto del suo valore massimo, in modo che non sia possibile sfruttare l'intera potenza (vedi  figura 2).

Figura 2: la potenza meccanica del motore in watt a I=0.4 A/Ph e ED=30%. La curva tratteggiata mostra il comportamento che si ottiene senza un circuito anti-risonanza. Si triplica, in tal modo, la potenza alle frequenze più significative.

Figura 2: la potenza meccanica del motore in watt a I=0.4 A/Ph e ED=30%. La curva tratteggiata mostra il comportamento che si ottiene senza un circuito anti-risonanza. Si triplica, in tal modo, la potenza alle frequenze più significative.

La linea continua in figura 3 mostra la coppia ideale sulla frequenza operativa e la linea tratteggiata mostra sia la coppia che la frequenza di controllo, senza contromisure. Essa rimane troppo al di sotto di certi limiti.

Figura 3: coppia su frequenza. La linea continua mostra l'enorme miglioramento con il circuito anti-risonanza.

Figura 3: coppia su frequenza. La linea continua mostra l'enorme miglioramento con il circuito anti-risonanza.

Una soluzione

È possibile neutralizzare le risonanze medie usando un circuito di feedback. Per misurare i fenomeni di risonanza è possibile intercettare i segnali prodotti dalle oscillazioni, utilizzando un resistore shunt (la caduta di tensione prodotta è proporzionale alla corrente attraverso l'avvolgimento del rotore). La figura 4 illustra le ideali relazioni di fase del rotore e i segnali di controllo.

Figura 4: relazione tra la fase dei segnali di controllo del motore. A: velocità del rotore; B: angolo del carico rotore; C: U=f (IT), in fase con il segnale B; D: Clock-In (fO), dal generatore di frequenza; E: segnale a dente di sega e U'dopo il filtro, 90° fuori fase; F: PWM; G: Clock PM.

Figura 4: relazione tra la fase dei segnali di controllo del motore. A: velocità del rotore; B: angolo del carico rotore; C: U=f (IT), in fase con il segnale B; D: Clock-In (fO), dal generatore di frequenza; E: segnale a dente di sega e U'dopo il filtro, 90° fuori fase; F: PWM; G: Clock PM.

La figura 5 mostra il principio di una possibile contromisura, sviluppata e descritta nel 1986 da Pierre Boillat [1], il cui brevetto, nel frattempo, è scaduto. Per i motori passo passo più piccoli le oscillazioni si verificano tipicamente nell'intervallo da 5 a 80 Hz. Dopo aver filtrato e amplificato il segnale shunt, esso viene utilizzato per controllare un modulatore di fase dell'impulso. Il segnale di uscita CLK-PM controlla l'ingresso del sequencer dello stadio del motore con un rapporto di fase corretto. Un tale modulatore può essere utilizzato se il generatore di clock attuale (di solito un microcontrollore) non è in grado o non è progettato per eseguire il processo di modulazione di fase. Utilizzando questo approccio hardware è possibile ottenere velocità di passo molto elevate, fino a 15000 passi/s, il che consente, anche al motore passo passo, di funzionare con maggiore efficienza. Un altro vantaggio di questo approccio è che non è necessario rispettare rampe di accelerazione per pilotare il motore attraverso la regione d'instabilità. Vale la pena ricordare che questo metodo di stabilizzazione non è collegato ai regolatori di potenza chopper che a volte si trovano integrati in alcuni chip driver stepper disponibili oggi.

Figura 5: circuito di principio per l'anti-risonanza. Il segnale di retroazione sullo shunt viene utilizzato per sfasare gli impulsi di controllo.

Figura 5: circuito di principio per l'anti-risonanza. Il segnale di retroazione sullo shunt viene utilizzato per sfasare gli impulsi di controllo.

Il circuito anti-risonanza

Come dimostrazione pratica del principio, è stato sviluppato il circuito in figura 6. Il PCB ha la forma di una scheda di espansione (HAT) che si collega al Raspberry Pi A+. Il segnale di clock proveniente da un microcontrollore esterno è collegato a CLK-IN al pin 3 della morsettiera a vite X2. Il segnale è squadrato con uno degli inverter di Schmitt di IC7 e attiva IC3A sui fronti negativi. Il segnale di uscita di IC3A su Q è costituito da una serie d'impulsi con larghezza costante di circa 30 us.

Questi impulsi servono per scaricare il condensatore C2 tramite il MOSFET T2 del convertitore a onda quadra o dente di sega, costruito con IC1A, T1, T2 e T3. La sorgente di corrente costante, costituita da T1, fa sì che C2 venga caricato al suo valore massimo (dopo il suo scaricamento tramite T2) producendo una forma d'onda a rampa di tensione lineare crescente. Il risultato è un segnale di sega abbastanza pulito sull'ingresso positivo (pin 3) del comparatore IC2A. Insieme al segnale di modulazione U', all'ingresso negativo (pin 2) si possono vedere gli impulsi in uscita (pin 1) con la modulazione di fase (lineare) desiderata. Per garantire un'ampia gamma di frequenze, l'ampiezza del dente di sega deve essere indipendente dalla frequenza. Per ottenere ciò, la sorgente di corrente formata da T1 è controllata tramite IC1A. L'ampiezza viene mantenuta costante utilizzando il valore medio (componente DC) del dente di sega riportando il segnale a T3 e filtrando tramite passa basso con R7 e C1, per fornire una tensione di retroazione applicata all'ingresso invertente di IC1A. Il segnale di uscita viene quindi alimentato tramite D1 per controllare il generatore di corrente.

Figura 6: il circuito anti-risonanza implementato come RPi-HAT.

Figura 6: il circuito anti-risonanza implementato come RPi-HAT.

Con uno sweep molto rapido (da 0 Hz a 4 kHz in soli 200 ms), il loop di controllo è troppo lento a causa della costante di tempo di R7/C1. In questo caso, l'ampiezza del dente di sega si tronca, "perdendo" impulsi. Questo può causare errori di posizionamento del motore o attuatore. Al fine di prevenire una mancanza d'impulsi, il segnale viene inviato al circuito composto dalle porte NAND IC4 e IC5. Il monoflop IC3B è necessario perché solo i fronti del segnale positivo sono modulati e alcuni driver si innescano sul fronte negativo. Il segnale di uscita /CLK-PM è pilotato dalla configurazione a collettore aperto di T6. Il livello di tensione di modulazione U' viene prodotto sui resistori di pilotaggio-shunt da R24 a R27 e filtrato da un filtro passa-banda formato da R12, C3, C4, R15 e amplificato da IC1B. In rari casi potrebbe essere necessario regolare la banda passante (a seconda dell'inerzia del rotore del motore). Il guadagno può essere regolato tra 1 e 250 volte, utilizzando il resistore R18. La pratica ha dimostrato che un guadagno di circa 50 è sufficiente. I pad sulla scheda da SJ1 a SJ4 servono come punti di test per una sonda dell'oscilloscopio per lo studio delle forme d'onda. Le forme d'onda mostrate in figura 7 possono essere regolate usando resistori R10, R18 e R19. La resistenza R19 viene utilizzata per regolare il livello DC all'uscita di IC1B. Il livello misurato a SJ3 dovrebbe essere la metà del valore di picco del dente di sega SJ1 e nell'intervallo da 1 a 1.3 V.

Figura 7: segnali del circuito anti-risonanza con un angolo di 15° a 901.75 Hz. C1: 30 μs di impulsi su SJ4; C2: dente di sega su SJ1; C3: segnale PWM a SJ2; C4: segnale shunt, U = f (IT) su X2-6.

Figura 7: segnali del circuito anti-risonanza con un angolo di 15° a 901.75 Hz. C1: 30 μs di impulsi su SJ4; C2: dente di sega su SJ1; C3: segnale PWM a SJ2; C4: segnale shunt, U = f (IT) su X2-6.

Per alimentare il motore passo passo viene utilizzato un chip driver integrato di Allegro (IC8) [2]. L'IC A3967SLB contiene un sequencer, un chopper controllo PWM per il micropasso e uno stadio di amplificatore di potenza a transistor bipolare da 0.75 A/Ph. La tensione di riferimento sul pin 1 di IC8 può essere regolata con il partitore di tensione R31/R32 per impostare la corrente del convertitore di frequenza. Questo dovrebbe essere regolato in base alla corrente del motore utilizzato.

Caratteristiche tecniche

  • Tensione operativa: da 7 V to 24 V;
  • Frequenza di controllo burst: 1 mHz ... 25 kHz;
  • Tempo di ritardo CLK-In/Out: approssivamente 5 ms a 1 kHz;
  • Corrente massima di fase: 0.75 A/Ph.

Il prototipo

Il PCB RPi HAT per questo progetto è mostrato in figura 8. Si collega direttamente a una scheda RPi A+ tramite il connettore GPIO 2x20 pin. Questo può essere utilizzato per generare il segnale di controllo necessario per il motore, per qualunque tipo di applicazione pratica. Per fare ciò, gli impulsi di clock a 3.3V generati dall'RPi vengono inviati attraverso la porta GPIO23 e T5 al circuito anti-risonanza dell'HAT, che funziona usando i livelli logici di 5V. Il segnale CLK-IN utilizza un resistore di pull-up (R22) per convertire il livello del segnale d'ingresso di 3.3 V in un segnale a 5 V. Gli altri due segnali di controllo /ENABLE (abilitazione motore, attivo basso) e DIR CW/CCW (senso di rotazione) utilizzano la stessa configurazione di livello tramite i transistori T7 e T8. L'ingresso del motore ENABLE su GPIO16 è attivo in stato logico alto. Se si sta utilizzando il circuito con un RPi saranno necessari quattro bulloni, distanziatori e viti per il supporto meccanico. Il controllore del motore deve essere alimentato indipendentemente dall'RPi (usare allo scopo due alimentatori separati). Per il test risulterà adatto qualsiasi motore passo passo a 2 fasi, bipolare o unipolare. Esso dovrebbe possedere una resistenza di avvolgimento compresa tra 5 ohm a 100 ohm con una potenza da 1 a 15 watt. I cavi del motore non dovrebbero mai essere scollegati mentre esso è in funzione. Sebbene IC8 sia stato progettato per motori passo passo bipolari, le versioni unipolari possono anche essere utilizzate e collegate alla morsettiera a vite X1. In questo caso il polo centrale per le bobine corrisponde alla posizione 1 (+24 V) di X1. Sul sito Web Elektor si possono trovare tutti i dettagli [3]. I dati tecnici sono disponibili nella tabella adiacente.

Figura 8: il prototipo del controller anti-risonanza per motore passo passo per RPI modello A+.

Figura 8: il prototipo del controller anti-risonanza per motore passo passo per RPI modello A+.

Fattori da considerare e altri dettagli

Nel 2014 l'autore utilizzava una stampante 3D; molti dei suoi alberi di trasmissione erano dotati di motori passo passo ibridi bipolari con gli avvolgimenti collegati in serie. Le frequenze di controllo utilizzate per azionare i motori erano comprese, purtroppo, in intervalli di frequenza per cui l'alloggiamento della stampante mostrava forti risonanze meccaniche. I grandi motori passo passo ibridi si sarebbero potuti sostituire con versioni più piccole. Molti utenti si rivolgono spesso alla modalità microstepping per ridurre vibrazioni nella gamma dell'autorisonanza e anche per ottenere un grado di risoluzione più elevato. Una risoluzione più fine, da sola, non significa necessariamente maggiore precisione di posizionamento. La ragione di ciò sta negli errori nella geometria del motore (statore, perdite di flusso magnetico e scostamenti del valore di corrente).  Usando la stessa frequenza di pilotaggio per il sequencer con otto micropassi, si riduce la velocità dell'albero motore di un fattore di 8. Nella formula per la potenza meccanica in uscita:

Pmech = Mdx ω

la velocità angolare ω dell'albero motore e la coppia (Md) giocano un ruolo importante: il carico deve posizionarsi il più rapidamente possibile. Per aiutare a raggiungere tale posizione, il microcontrollore dovrebbe prevedere uno o più generatori d'impulsi. E' importante che il controller abbia memoria sufficiente (NV-RAM o Flash) per memorizzare tabelle di valori per generare frequenze, numero di conteggi di burst e generazioni per segnali a dente di sega. Questo non è un problema per i SoC usati nel RPi. Per permettere un più semplice utilizzo dei motori passo passo, i produttori dovrebbero documentare chiaramente l'efficienza e il rapporto tra potenza elettrica assorbita e potenza meccanica prodotta in funzione della frequenza di controllo, in modo da poter scrivere algoritmi complessi per definire i profili di accelerazione e decelerazione. Ovviamente ciò richiede uno sforzo maggiore per la programmazione. Inoltre si deve evitare di pilotare il motore a frequenze che corrispondono al suo valore di risonanza naturale. Questo vale anche per l'installazione meccanica del motore: assicurarsi che il supporto del motore abbia un livello elevato di smorzamento integrale. Per quanto riguarda l'azionamento o la trasmissione a cinghia dentata, è importante considerare il relativo rapporto costi-benefici. Forse in futuro vedremo circuiti integrati con driver a basso costo caratterizzati da un'uscita in classe D, con possibilità di prevedere funzioni trigonometriche e filtri per il motore. Sarebbe anche vantaggioso se i materiali dello statore avessero basse magnetizzazioni e perdite d'isteresi. Al giorno d'oggi è facile vedere azionare i motori passo passo con frequenze di chopper fino a 18 kHz.

>>>Leggi anche: Algoritmi più intelligenti migliorano le prestazioni dei motori passo-passo

Web links

[1] Pierre Boillat, "Restraining the instability of a stepper motor", US-Patent US4673855 and US4683409.
[2] Allegro A3967: https://bit.ly/2UoRnk1
[3] Article support page: www.elektormagazine.com/180279-01

 

Elektor Post

3 Commenti

  1. Giovanni Di Maria Giovanni Di Maria 18 giugno 2019
  2. Giordana Francesca Brescia Giordana Francesca Brescia 19 giugno 2019
  3. Alessandro Alessandro 19 giugno 2019

Scrivi un commento