Controlli a loop chiusa per motori stepper

I motori passo-passo (o motori stepper) sono impiegati in applicazioni industriali ad ampio raggio. Sono poco costosi, semplici da utilizzare e offrono una coppia elevata a basse […]

I motori passo-passo (o motori stepper) sono impiegati in applicazioni industriali ad ampio raggio. Sono poco costosi, semplici da utilizzare e offrono una coppia elevata a basse velocità. Tuttavia, questa tipologia di motorizzazione, presenta alcuni inconvenienti che devono essere considerati in fase di progettazione; possono perdere il passo se la coppia richiesta è maggiore di quella disponibile, la coppia cala drasticamente all’aumentare della velocità, hanno alte frequenze di risonanza e un elevato consumo energetico anche con il solo motore fermo. Galil ha tre metodi di pilotaggio a loop chiusa per minimizzare questi inconvenienti. Correzione sul punto finale del posizionamento, controllo microstepping a loop chiusa, pilotaggio del motore come un brushless a 2 fasi.

Motore Stepper o Passo Passo
Fonte: http://www.vincenzov.net/tutorial/passopasso/stepper.htm 

Le basi di un motore passo passo

Lo statore è un insieme di avvolgimenti ed il circuito magnetico è costituito da 4 o, più frequentemente, 8 “espansioni polari” (otto in quello mostrato fotografia). All’interno dello statore sono presenti piccoli denti che si affacciano a quelli del rotore. Gli avvolgimenti quando sono percorsi da corrente generano un campo magnetico. All’esterno arrivano i fili di alimentazioni dei vari avvolgimenti dello statore; le fasi possono essere avvolte secondo due schemi: nei motori bipolari ci sono 2 soli avvolgimenti e escono 2 coppie di fili; nei motori unipolari ci sono 4 avvolgimenti avvolti a coppie in antiparallelo sulle espansioni polari.

Il rotore appare come una coppia di ruote dentate massicce e identiche tra loro, affiancate e solidali all’albero costituite da un nucleo magnetico; le due ruote sono magnetizzate, una come NORD, l’altra come SUD; i “denti” delle ruote sono in materiale ferromagnetico. Il numero di denti è variabile, 50 è il più frequente. Tra le due ruote è presente uno sfasamento esattamente pari ad 1/2 del passo dei denti: il dente di una delle due sezione corrisponde quindi alla valle dell’altra. Per far ruotare l’albero gli avvolgimenti vengono eccitati in una sequenza specifica. La Figura 2 mostra una semplificazione di questo processo in un motore bifase. Ogni sequenza corrisponde alla rotazione di uno step del rotore. Tipicamente ci sono 200 step per giro. Dal controllo escono 2 segnali, quello denominato Step che è un segnale ad onda quadra ad ogni impulso corrisponde uno spostamento di uno step fisico del motore; il secondo segnale è la Direzione che viene imposta dallo stato alto/basso del segnale.

Fig. 2 – Sample full-step current and rotor position

I motori passo passo non sono immuni da difetti. Il primo è che il motore opera con la massima corrente in ogni condizione, portando a sprecare energia e aumentandone la temperatura di funzionamento. Il secondo difetto è l’introduzione di vibrazioni causate quando il rotore si sposta da uno step al successivo. Quando la frequenza di cambiamento tra step successivi equivale alla frequenza di risonanza del motore, l’ampiezza delle vibrazioni aumenta portando alla perdita della posizione. Una condizione comune a tutti i motori è la drastica diminuzione della coppia all’aumento della velocità. È molto comune sbagliare la scelta del motore se non viene considerata questa caratteristica in fase di progettazione. Come ultimo inconveniente, nell’impiego dei motori passo passo, è la bassa risoluzione derivante dal numero di step per giro. Qualora si rendesse necessaria una maggiore risoluzione l’impiego della tecnologia microstepping può essere una valida soluzione.

Fig. 3 – 24VDC Stepper MotorSpeed-Torque Curve

Microstepping

Il pilotaggio dei motori passo passo in microstepping è un metodo per suddividere il passo intero in incrementi più piccoli. Partendo da un microinterpolazione di 2 si può arrivare a 256 microinterpolazioni per passo intero, il che significa che un motore da 200 passi giro può avere una risoluzione sino a 51200 microstepping per giro. Nella Figura 4 si vede il dettaglio della forma d’onda della corrente per un singolo step incrementando il numero di microinterpolazioni.

Fig. 4 – Current Waveform during Microstepping

L’accuratezza raggiungibile con questa tecnica di controllo dipende in gran parte dalla forza esterna applicata. L’accuratezza raggiungibile è di un passo intero, qualora l’errore di posizione fosse maggiore di mezzo passo intero si determinerebbe lo stallo del motore. Se l’attrito, la gravità o qualsiasi altra forza sono abbastanza grandi da impedire il movimento tra due microstepping si incorre in un errore di posizione. La Figura 5 mostra un posizionamento punto a punto in un sistema comandato da un motore stepper con encoder. La linea rossa è la posizione teorica, la linea viola rappresenta il comando verso il motore e la linea blu è la posizione misurata tramite l’encoder. La linea nera indica quando il controllo attiva il profilo di moto. A causa degli attriti la posizione finale del motore non equivale a quella comandata, causando uno stato di errore stazionario.

Fig. 5 – Microstepping

Correzione sul punto finale

Impiegando un encoder come feedback è possibile riconoscere questa situazione di errore di posizione; la posizione finale può essere corretta imponendo un comando addizionale tale da portare la posizione reale a equivalere a quella voluta. Galil chiama questo modo di pilotaggio Stepper Position Maintenance o SPM. Il motore viene sempre pilotato in microstepping ma l’accuratezza del punto finale può essere verificata e aggiustata. Si compara infatti la posizione comandata con la posizione reale prima che il posizionamento sia finito. La Figura 6 mostra lo stesso sistema come in Figura 5 ma con pilotaggio SPM. Alla fine del movimento viene riconosciuto l’errore di posizione e viene inviato un comando di correzione in modo tale da portare il motore nella posizione voluta.

Fig. 6 – Stepper position maintenance mode

Aggiungendo l’encoder il controllo può riconoscere e correggere l’errore presente nel sistema. Lo stesso movimento, che prima risultava in uno stato di errore di posizione stabile dovuto agli attriti presenti, può essere ora corretto.

Pilotaggio microstepping a loop chiusa

Il controllo tramite Stepper Position Maintenance mode è ideale per sistemi che richiedono precisione di posizionamento solo sul punto finale. Quando è necessaria una continua correzione dell’errore di posizione, Galil suggerisce l’impiego del sistema denominato Closed Loop Microstepping o CLS. La Figura 7 mostra un posizionamento in CLS mode. Oltre alla posizione comandata e alla posizione reale dell’encoder, un segnale di errore di posizione viene generato internamente al controllo, linea verde, e impiegato per controllare continuamente la posizione comandata. E’ importante sottolineare che con CLS mode la posizione viene monitorata dall’encoder ma il comando del motore viene generato dal controllo.

Fig. 7 – Closed loop microstepping

Il segnale di errore viene analizzato dal filtro interno di Galil che compensa ogni errore di posizione modulando gli step di comando verso il drive. Closed Loop Microstepping è un sistema reale a loop chiusa ed è un’ ottima soluzione per comandare un motore passo passo in modo tradizionale. La chiusura del loop di posizione implica il rischio di avere delle instabilità se i guadagni del filtro interno non vengono opportunamente tarati. Resta comunque il fatto che si tratta di un sistema inefficiente dal punto di vista energetico e presenta una bassa banda passante comparato ad un classico sistema con motori servo. Si deve considerare che la banda passante può essere ulteriormente abbassata   qualora si impieghino driver di terze parti con caratteristiche non lineari.

Pilotaggio motore stepper come un motore brushless bifase

Per raggiungere il massimo delle prestazioni il motore stepper può essere controllato come un servo motore brushless bifase. La corrente al motore viene controllata in funzione dell’errore di posizione esattamente come con un motore servo. Il sistema di controllo che impiega Galil viene definito come 2 Phase Brushless mode o 2PB. In Figura 8 il dettaglio di un motore stepper comandato in questo modo. Anziché gli step, un comando analogico in torque mode (linea marrone) viene generato dal controllo, e inviato a uno degli azionamenti che possono essere integrati nel controllo.

Fig. 8 – 2-Phase brushless mode

Comandando un motore stepper in questo modo si aumenta la banda passante riducendo il tempo di posizionamento. Il motore diventa analogo ad un servo motore con riduttore. Grazie al comportamento come servo, il range completo del filtro Galil può essere impiegato, compreso il filtro di notch, pole e feedforward. Per ottenere il massimo delle prestazioni il drive deve essere più sofisticato per poter generare istantaneamente la corrente necessaria al pilotaggio. Dal punto di vista energetico si ottiene una maggior efficienza e il motore genererà meno calore.