Si tratta di una informazione falsa.
Ma, perché falsa?
- Perché è una teoria che non trova giustificazioni nel modello teorico del motore.
- Perché lo affermano in modo esplicito i produttori (qui, qui, qui, qui).
- Perché si scontra con l'esperienza comune di (quasi) tutti gli utenti.
- Perché è facile confutarla con un semplice esperimento.
- Perché i micropassi non arrivano al motore, si fermano al driver: perché il motore dovrebbe reagire in modo differente se i segnali che lo pilotano sono pressoché identici?
Le frasi dei produttori sono chiare, non penso che abbiano bisogno di ulteriori commenti. Sono tutti concordi nell’affermare che l’utilizzo di micropassi non pone limiti prestazionali al motore.
Viceversa, in letteratura non si trova neanche un documento che affermi esplicitamente il contrario. Se l’effetto del micropasso fosse così penalizzante come affermato, ogni produttore di motori lo evidenzierebbe in modo estremamente chiaro.
La teoria
Come mostrato dalle curve coppia/rpm presenti in ogni datasheet dei motori stepper, le prestazioni del motore sono legate alla velocità di rotazione dell’asse. La coppia diminuisce all’aumentare della frequenza di rotazione con andamento più o meno lineare.
A cosa è dovuto questo comportamento?
Lo stepper è una macchina sincrona, l’asse del motore si muove in modo sincrono al campo magnetico generato dagli avvolgimenti. Il rapporto tra le loro velocità di rotazione è dato dal numero di poli del motore. Nel caso specifico di uno stepper che abbia 200 passi/giro, in ogni avvolgimento scorrerà una corrente la cui frequenza è 50 volte (50=200/4) la frequenza di rotazione dell’albero motore.
[perché diviso 4? Perché servono quattro passi prima che il ciclo si ripeta: A+ B+ A- B-
Uno stepper da 200 passi/giro ha 100 poli o 50 coppie polari]
In una macchina elettromagnetica, forza elettromotrice è dovuta alla corrente che scorre negli avvolgimenti.
Se il driver fosse sempre in grado di portare istantaneamente la corrente ai valori desiderati, il motore potrebbe avere sempre la stessa corrente (e quindi coppia) a prescindere dalla velocità di rotazione.
Nel mondo reale, gli avvolgimenti del motore hanno sempre una componente induttiva. Sappiamo che l’induttanza si oppone naturalmente alle variazioni di corrente e che l’effetto dell’induttanza è proporzionale alla frequenza del segnale. Per questa ragione, all’aumentare della frequenza, diminuisce la corrente che il driver è in grado di erogare al motore. E, minore corrente significa minore coppia.
Come mostrano chiaramente i datasheet, si può aumentare la coppia ad alti rpm aumentando la tensione di alimentazione, ma l’andamento decrescente della coppia al crescere della velocità rimane.
Per approfondire il concetto, questo sito descrive molto meglio di quanto potrei fare io quanto detto ed il ruolo della tensione nel facilitare il raggiungimento della corrente nominale.
https://linuxcnc.org/docs/devel/html/in ... ppers.html
Dalla teoria alla pratica
Abbiamo stabilito che le prestazioni del motore sono legate principalmente alla frequenza di rotazione del campo magnetico (ovvero la frequenza delle correnti negli avvolgimenti).
La domanda che dobbiamo porci è: se due configurazioni dei driver generano correnti che hanno la stessa frequenza, perché le prestazioni del motore dovrebbero essere differenti?
Ora, qualunque sia il micropasso impostato sul driver, data una frequenza di rotazione dell'albero motore (ad es. 150 rpm), avremo sempre la stessa frequenza del segnale sugli avvolgimenti motore.
Stessa frequenza della corrente degli avvolgimenti = stesse perfomance.
Ecco un esempio pratico: le immagini qui sotto mostrano la corrente di un avvolgimento con due differenti impostazioni del driver:
- micropasso: 1/4, 2000 pps in ingresso al driver, 125 Hz in uscita al driver;
- micropasso 1/32, 16000 pps in ingresso al driver, 125 Hz in uscita al driver.
La frequenza di rotazione del motore è, ovviamente, la stessa.
Come si può notare, l’unica differenza tra le due curve è l’aspetto, leggermente più squadrettato nel primo caso in cui si possono distinguere i 16 scalini (micropassi) che compongono un ciclo completo (un ciclo completo = quattro passi: A+ B+ A- B-; 4 passi x 4 micropassi = 16).
Quindi non ho limiti al microstepping?
TL;DR Si, ci sono limiti legati legati alle performance di controller e driver.
In questo approfondimento ci siamo limitati a verificare l’effetto (inesistente!) dei micropassi sul motore.
Ma l’intero sistema di controllo è composto anche da un controllore e da un driver.
Aumentare i micropassi comporta la generazione di impulsi a frequenze molto maggiori. Nell’esempio precedente, per avere 150 rpm passiamo da 2kHz (1/4 passo) a 16kHz (1/32 passo).
Sia il controllore che il driver hanno dei limiti di frequenza ben definiti che potrebbero essere superati con maggiore facilità nel caso di micropassi elevati.
A titolo di esempio riporto delle discussioni relative a due popolari SW basati su Arduino:
Qui https://www.grbl.org/single-post/how-fast-can-it-go il limite di frequenza per GRBL (Arduino, 8 bit)
Qui https://reprap.org/wiki/Step_rates il limite di frequenza per Marlin (ATMega 16MHz)
Parliamo di 30kHz nel primo caso e di 10kHz (fino a 40kHz in quad stepping) nel secondo. Come si vede, frequenze molto basse.
Un sistema di test
Nel caso si voglia verificare l’effetto dei micropassi su un motore, è necessario mettere in piedi un sistema che non sia affetto dai suddetti limiti. Inoltre è necessario effettuare tutti i test con lo stesso driver, variando solamente la configurazione dei micropassi, altrimenti si aggiunge una ulteriore variabile che falsa i risultati.
Ad esempio, se sostituisco il driver, come posso essere sicuro che sto applicando la identica corrente?
Per questa ragione i test che ho effettuato si sono basati sull’utilizzo di un controllore a 32 bit (eps32), con uno sketch apposito, capace di erogare passi fino a 200kHz (libreria FastAccelStepper) ed un piccolo driver DRV8825 che, da specifiche, è in grado di ricevere fino a 150kHz in ingresso.
Infine, la velocità di rotazione del motore è stata raggiunta con una rampa abbastanza dolce, in modo che nono fosse l’accelerazione a rappresentare un collo di bottiglia.
Contribuire alla discussione
In questo post ho cercato di spiegare la teoria che rende ridicola l'affermazione che il micropasso possa influire sulle prestazioni del motore ed ho portato affermazioni di costruttori che affermano esplicitamente la stessa cosa.
Microstepping has two principal benefits: it provides increased resolution without a sacrifice in top speed, and it provides smoother low speed motion.
In many applications microstepping can increase system performance, and lower system complexity and cost, compared to full- and half-step driving techniques. Microstepping can be used to solve noise and resonance problems, and to increase step accuracy and resolution.
Qualora si voglia contribuire alla discussione, o confutare queste affermazioni, mi aspetto che vengano fornite prove altrettanto forti. Non generiche formule o grafici mal-interpretati, ma testi che affermino in modo espicito che le prestazioni del motore si riducano in modo proporzionale al micropasso e, soprattutto, spieghino quale sia la teoria che giustifica un tale fenomeno.There are still compelling reasons other than high resolution for microstepping. They include:
reduced Mechanical Noise.
gentler Actuation Mechanically
reduces Resonances Problems
In summary, although Microstepping gives the designer more resolution, improved accuracy is not realized. Reduction in mechanical and electromagnetically induced noise is, however, a real benefit. The mechanical transmission of torque will also be much gentler and resonance problems reduced. This gives better confidence in maintaining synchronization of the open loop system and less wear and tear on the mechanical transmission system.
Perché non basta affermare che un fenomeno esista, ma va dimostrato. E quanto più incredibile è l'affermazione, tanto più devono essere solide le prove a supporto.
Scusate per il post un po' lunghetto.



