Tutorial · Intermedio · 35 min
Motori passo-passo: angolo di ritardo e passi persi
Un motore passo-passo trascina il rotore dietro un campo rotante: così si spiegano microstepping, passi persi e l'errore sulla posizione reale.
La frase che rende comprensibili i motori passo-passo
Un motore passo-passo non compie passi discreti.
Sembra un trucco, ma è la singola cosa più utile da sapere sul componente. Quello che il driver del motore fa davvero è ruotare un campo magnetico all’interno del motore a piccoli incrementi. Il rotore è un magnete permanente dotato di denti e segue il campo come l’ago di una bussola segue un magnete: non perché glielo ordinino, ma perché viene attratto.
Il rotore è quindi sempre indietro rispetto al campo. Deve esserlo: se fosse perfettamente allineato al campo non ci sarebbe alcuna forza su di lui e non potrebbe vincere l’attrito o azionare un carico. L’angolo fra la direzione del campo e la posizione effettiva del rotore ha un nome, l’angolo di ritardo, talvolta chiamato angolo di carico, e quasi tutto ciò che un motore passo-passo fa in modo sorprendente dipende da quell’angolo.
L’intero modello, messo per iscritto, è una riga:
T = T_peak × sin(δ)
dove δ è l’angolo di ritardo in gradi elettrici. Tutto ciò che segue ne è una conseguenza.
Gradi elettrici e il motore da 1.8°
I motori passo-passo sono catalogati in gradi meccanici: un «motore da 1.8°» sposta l’albero di 1.8° per ogni passo completo, dando 200 passi completi per rivoluzione. Ma il ciclo magnetico si ripete molto più rapidamente dell’albero. Un motore ibrido standard ha 50 denti di rotore, quindi il ciclo magnetico si ripete 50 volte per ogni rivoluzione dell’albero:
| Grandezza | Meccanica | Elettrica |
|---|---|---|
| Un passo completo | 1.8° | 90° |
| Una rivoluzione | 360° | 18 000° (50 cicli) |
| Coppia massima a | 1.8° indietro | 90° indietro |
| Intervallo stabile | ±1.8° | ±90° |
Questa è l’unica aritmetica necessaria: un passo completo equivale sempre a 90 gradi elettrici, su ogni motore da 1.8°. L’intervallo stabile, cioè quello in cui restare più indietro fa tirare indietro il rotore con più forza, è quindi ±1 passo completo, e il punto di non ritorno a 180° è solo due passi completi indietro.
Perché i motori passo-passo perdono passi
Osserva di nuovo la curva sinusoidale. Fra −90° e +90° il motore si comporta come una molla: se cade più indietro, viene tirato con più forza. È un equilibrio stabile ed è il motivo per cui un motore passo-passo può funzionare ad anello aperto, senza encoder e senza retroazione. Il rotore si autocorregge.
Oltre 90°, la sinusoide si capovolge. Se ora cade più indietro, la coppia che lo tira in avanti diventa minore. Questo lo fa cadere ancora più indietro. La coppia si indebolisce ulteriormente e, a 180°, cambia segno e inizia a spingere il rotore verso il polo successivo anziché verso quello corrente. Da lì il rotore scivola finché non si ferma sul dente stabile successivo, a un intero ciclo elettrico di distanza.
I 90° sono quindi il punto in cui un carico stabile esaurisce la strada: oltre non esiste alcun equilibrio in cui fermarsi, soltanto una pendenza. Una breve escursione oltre 90° può ancora essere superata se il rotore ha lo slancio per tornare indietro: il funzionamento a passo completo lo fa esattamente a ogni fronte del passo, superando l’angolo fino a circa 100° e recuperando ogni volta. Un carico che resta oltre 90°, però, sta già cadendo.
Questo è un passo perso e ha tre proprietà da ricordare:
- È silenzioso. Non c’è alcun encoder. Il driver del motore continua a contare gli impulsi, il firmware continua a credergli e l’idea che la macchina abbia della propria posizione è ora sbagliata in modo permanente. Ogni movimento successivo a questo passo è sfalsato.
- Avviene in gruppi di quattro. Il rotore si ferma sul punto stabile successivo, a un ciclo elettrico di distanza, cioè 360 gradi elettrici, ossia quattro passi completi. Un motore passo-passo non perde mai un solo passo. Ne perde quattro, otto o cento.
- Non si corregge mai. Perdere passi in direzione opposta più avanti non li annulla, salvo per caso.
Il simulatore del motore passo-passo integra questo comportamento direttamente anziché scriptarlo: nulla nel codice cerca la perdita di passi. L’equazione del moto del rotore è la legge sinusoidale qui sopra e, quando sin(δ) va oltre il massimo, il rotore esce di sincronismo da solo; la perdita riportata emerge sempre come multiplo di quattro.
Che cosa fa crescere l’angolo di ritardo
Tre fattori, e distinguerli è il modo per diagnosticare una macchina.
Carico. In movimento costante, l’angolo di ritardo si stabilisce dove la coppia prodotta è uguale a quella richiesta:
sin(δ) = torque demanded ÷ peak torque available
Un carico al 43% del massimo si trova a 26 gradi elettrici. Un carico al 71% si trova a 45°. Un carico al 100% si trova a 90°, proprio sul ciglio e con margine nullo. Ecco perché il consiglio abituale è dimensionare un motore passo-passo a circa metà della coppia disponibile: non per una superstizione sul fattore di sicurezza, ma perché metà coppia corrisponde a 30 gradi elettrici di ritardo e lascia 60° di margine per il transitorio che non hai modellato.
Accelerazione. Mettere in moto il rotore richiede coppia anch’essa, e quella coppia proviene dalla stessa riserva. Durante l’accelerazione la richiesta è load + J × α, quindi l’angolo di ritardo è peggiore sulla rampa, non alla velocità finale. Ordina a un motore fermo di raggiungere subito la velocità massima e il campo comandato si allontanerà a spron battendo mentre il rotore si sta ancora raccogliendo: il ritardo supera 90° entro uno o due millisecondi e, senza nulla che lo riporti indietro, continua a crescere e il motore si limita a ronzare fermo. Quel limite ha un nome: la velocità di innesto, la massima frequenza di passo che puoi comandare da fermo senza una rampa.
Velocità. Questo è il fattore meno ovvio e la causa più comune dei guasti reali; ha una sezione tutta sua.
La coppia diminuisce con la velocità e la coppia di tenuta è un numero di marketing
Il numero sull’etichetta di un motore, «0.44 N·m di coppia di tenuta», viene misurato con l’albero fermo e la corrente nominale negli avvolgimenti. Non dice quasi nulla su un motore in movimento.
Un avvolgimento è un induttore. Per produrre coppia, il driver del motore deve imporre corrente all’avvolgimento e poi inverterla, ripetutamente e sempre più rapidamente man mano che il motore accelera. Due fatti si oppongono:
- Reattanza. L’opposizione dell’avvolgimento alla variazione della corrente aumenta in proporzione alla frequenza elettrica, e la frequenza elettrica è 50× la velocità dell’albero.
- Back-EMF. Un rotore a magneti permanenti in rotazione genera una tensione propria che si oppone all’alimentazione. Oltre una certa velocità, l’alimentazione semplicemente non riesce più a spingere corrente al suo interno.
Questo produce le due regole che contano quando una macchina non riesce a raggiungere la velocità sufficiente:
| Sintomo | Che cosa modificare | Motivo |
|---|---|---|
| Si blocca sotto carico a velocità bassa | Aumenta il limite di corrente | Sotto la velocità di spigolo, la corrente imposta direttamente la coppia |
| Si blocca soltanto ad alta velocità | Aumenta la tensione di alimentazione | Oltre la velocità limite in curva, è la tensione a forzare la corrente |
| Si blocca ovunque | Motore sbagliato oppure carico troppo grande | Nessuna impostazione salva un motore sottodimensionato |
Più ampere danno coppia. Più volt danno velocità. Aumentare la corrente per risolvere un blocco ad alta velocità non serve a nulla, perché oltre la velocità di spigolo il driver del motore non raggiungeva comunque la corrente impostata: ottieni soltanto un motore caldo.
Microstepping: che cosa fa e che cosa non fa
Il microstepping consiste nel ruotare il campo in frazioni di un passo completo mescolando le correnti delle due fasi, invece di attivarle e disattivarle completamente. Con passo 1/16, un impulso STEP fa avanzare il campo di 5.625 gradi elettrici anziché di 90.
Quello che corregge davvero è l’oscillazione. Il rotore è una massa su una molla magnetica con pochissimo smorzamento. Se lo spingi di 90 gradi elettrici alla volta, supera la posizione, oscilla e si stabilizza in modo udibile e visibile. È il rumore prodotto da un motore a passo completo e l’ondulazione che lascia sulla finitura della superficie. Dividi la spinta per sedici e l’eccitazione scompare quasi completamente.
Puoi misurarlo. Aziona lo stesso asse alla stessa velocità con lo stesso carico e registra quanto il carro si discosta dal percorso comandato:
| Microstepping | Dimensione del passo (cinghia GT2) | Deviazione massima dal percorso | Errore a regime dovuto al carico |
|---|---|---|---|
| Passo completo | 0.200 mm | 0.127 mm | 0.049 mm |
| 1/2 | 0.100 mm | 0.082 mm | 0.045 mm |
| 1/4 | 0.050 mm | 0.061 mm | 0.044 mm |
| 1/8 | 0.025 mm | 0.050 mm | 0.044 mm |
| 1/16 | 0.0125 mm | 0.045 mm | 0.044 mm |
Confronta fra loro le ultime due colonne, perché costituiscono l’intero argomento. Sedici volte la risoluzione migliora l’inseguimento di circa 2.8× e poi smette di migliorare, mentre l’errore a regime causato dal carico non cambia affatto. È 0.044 mm a passo completo e 0.044 mm a passo sedicesimo. La curva nella terza colonna si appiattisce sulla quarta e la quarta non è fatta di risoluzione.
Quello che il microstepping non corregge è l’angolo di ritardo. Con questo carico il rotore si trova circa 20 gradi elettrici dietro il campo, pari a 0.4 gradi meccanici, che su questo asse corrispondono a 0.044 mm di errore di posizione. A passo completo è un quarto di passo e nessuno se ne accorge. Con passo 1/16, gli stessi 0.044 mm equivalgono a 3.5 microstep e il driver del motore segnala con falsa convinzione una posizione in cui non si trova affatto. Dividere il passo ha reso l’errore più grande misurato in passi; non ha prodotto alcun effetto sull’errore.
Vale la pena spiegare chiaramente il motivo. Per mantenere la posizione a un microstep dal dente di fermo, il motore produce T_peak × sin(90° ÷ microsteps): la coppia disponibile per microstep crolla man mano che aumenti la divisione:
| Microstepping | Coppia per mantenere un microstep | Frazione della coppia di tenuta |
|---|---|---|
| Passo completo | sin(90°) | 100% |
| 1/8 | sin(11.25°) | 19.5% |
| 1/16 | sin(5.625°) | 9.8% |
| 1/256 | sin(0.352°) | 0.61% |
L’ultimo valore coincide con quello citato nella letteratura sul driver del motore per il passo 1/256, ed è tutta la storia: con divisioni fini, la coppia che distingue un microstep dal successivo è minore dell’attrito nella macchina. Il rotore non può fisicamente distinguerli. Si muove quando il comando accumulato è abbastanza grande da vincere l’attrito, e allora si muove di più microstep alla volta.
Quindi: esegui il microstepping per regolarità e silenziosità, non per la precisione. Se ti serve la posizione corretta, devi avere margine di coppia sufficiente oppure un encoder.
Come osservarlo accadere
L’esperimento più utile è anche il più economico. Nel simulatore del motore passo-passo, esegui due volte uno spostamento di 60 mm mantenendo identiche tutte le condizioni tranne la rampa:
| Con una rampa di accelerazione | Comando diretto a piena velocità | |
|---|---|---|
| Angolo di ritardo massimo | 25°, confortevole | oltre 90° a 1.2 ms, superato entro 3.0 ms |
| Passi completi persi | 0 | 280 |
| Dove termina l’asse | 60.00 mm | 4.0 mm |
Stesso motore, stesso driver del motore, stesso limite di corrente, stesso bersaglio. L’unica differenza è che la frequenza dei passi è stata aumentata gradualmente, e la differenza fra i due casi è l’intero movimento. Ecco perché i profili di movimento non sono un perfezionamento di una macchina a passo-passo: sono ciò che le permette di funzionare.
Quando va storto
| Sintomo | Causa probabile | Che cosa fare |
|---|---|---|
| Il motore ronza forte e non gira | Frequenza dei passi comandata superiore alla velocità di innesto | Aggiungi una rampa di accelerazione; controlla la velocità iniziale |
| Deriva di pochi millimetri a ogni stampa, sempre nella stessa direzione | Perdita di passi sulla rampa | Riduci l’accelerazione, aumenta la corrente oppure rallenta |
| Funziona a bassa velocità, ma si blocca quando accelera | Oltre la velocità limite in curva | Aumenta la tensione di alimentazione: la corrente non aiuta |
| La posizione è sbagliata di un multiplo di quattro passi completi | Slittamento classico del polo | Trova quale movimento lo sovraccarica; il conteggio indica quanti passi hai perso |
| Il motore è caldo abbastanza da scottare | Limite di corrente troppo alto oppure il motore sta svolgendo lavoro reale | 60–80 °C è normale; confronta il limite con il valore nominale |
| Rumoroso, con vibrazioni a una velocità specifica | Risonanza nella banda intermedia | Cambia il microstepping, aggiungi smorzamento oppure evita quella velocità |
| Due avvolgimenti collegati come una coppia | Abbinamento errato dei fili | Misura la resistenza: una coppia legge pochi ohm, un abbinamento errato un circuito aperto |
Dove porta tutto questo
Una volta che l’angolo di ritardo è chiaro nella tua testa, il resto del mondo dei motori passo-passo smette di essere un insieme di regole scollegate. Impostare il limite di corrente di un A4988 significa impostare T_peak. Scegliere una cinghia o una vite senza fine significa scegliere quanti gradi elettrici costa ogni millimetro di errore. Eseguire l’homing contro un interruttore di fine corsa è il modo in cui una macchina ad anello aperto recupera la posizione assoluta che non potrà mai misurare. E un profilo di movimento è ciò che mantiene l’angolo di ritardo entro ±90° per tutto lo spostamento.
Sono quattro facce della stessa curva sinusoidale.
Esplora il grafo
Fa parte di queste costruzioni
Progetti e percorsi di apprendimento che includono questo tutorial.
Per approfondire