August 22, 2013

Encoder

La misura della velocità del motore è effettuata mediante lo “encoder”, che permette di generare un segnale proporzionale alla velocità dell’asse dell’albero motore. Esistono altri metodi, ad esempio la dinamo tachimetrica, ma per le loro grandi dimensioni non sono stati presi in considerazione i testi in bibliografia.

L’encoder è un trasduttore di posizione, che fornisce un segnale elettrico proporzionale allo spostamento angolare dell’albero motore su cui è montato. E’ molto usato in ambito industriale e robotico, per la sua robustezza ed affidabilità.

In particolare un encoder incrementale è un dispositivo elettromeccanico per la misura del movimento o della posizione. La maggior parte degli encoder utilizza sensori ottici per trasmettere segnali elettrici sotto forma di treni di impulso in grado di essere trasformati in movimento, direzione o posizione. L’encoder è costituito da un disco ottico su cui possono essere riportate una o due tracce i cui settori sono trasparenti e opachi (in numero uguale nelle due tracce). Il più usato è quello ad una traccia, che ha un costo inferiore. Il corpo ottico di lettura è costituito da una doppia coppia di emettitori e ricevitori, disposti in quadratura. La presenza delle due coppie consente di rilevare, oltre allo spostamento dell’albero su cui è montato, anche il verso di rotazione (in figura).

Encoder Diagram

Encoder Diagram

La risoluzione di un encoder incrementale è vincolata dalla quantità di settori presenti sul disco e dalla precisione di montaggio sull’albero motore, in quanto una imprecisione nel montaggio può portare un errore di misura del 30% circa. Il modello della “US Digital” dispone di un kit di assemblaggio, che permette di allineare le varie componenti con grande precisione, in figura si può notare la procedura di assemblaggio.

Assemblaggio Encoder

Assemblaggio Encoder

Principio di funzionamento

L’albero trasmette il moto al disco, con la rotazione del disco si hanno ripetute variazioni di intensità del fascio di luce, generato dall’emettitore, che raggiunge il ricevitore. Questa variazione di intensità genera all’uscita del ricevitore un segnale digitale che varia a seconda della posizione dell’albero.

Utilizzando due ricevitori (A e B) spostati di 90 gradi e fuori fase, è possibile ottenere, dai due canali di output dell’encoder di quadratura, sia la posizione che la direzione della rotazione. Se A precede B, ad esempio, il disco ruota in senso orario. Se B precede A, invece, il disco ruota in senso antiorario. Quindi, monitorando sia il numero degli impulsi che la fase dei segnali A e B, è possibile tracciare la posizione e la direzione della rotazione.

Fasi encoder

Fasi encoder

L’utilizzo di un encoder digitale, come si può vedere nella figura, permette nei microcontrollori di avere un dato già disponibile a livello digitale. Sono necessari pochi componenti, da un flip-flop ed un contatore digitale per avere l’informazione di quanti passi sono stati effettuati.

La misura della posizione sarà quindi così definita:

\large \Delta\theta = n\cdot\theta_{c} \qquad \theta_{c} = \frac{2\pi}{n_{\theta}}

Dove:

  • n è il numero di passi contati;
  • \theta_{c} è l’angolo relativo ad ogni impulso dell’encoder;
  • n_{\theta} il numero di celle presenti sull’encoder, tenendo conto del moltiplicatore dovuto al conteggio.

Per il calcolo della velocità dell’attuatore è necessaria la presenza di un contatore che permetta di calcolare il tempo trascorso tra il passaggio da una cella a quella successiva. La velocità misurata viene calcolata secondo la formula:

\omega_{m}=\frac{n\cdot\theta_{c}}{T}

La misura è soggetta ad un errore di quantizzazione, dovuto alla precisione dello strumento di misura dove l’errore \left|\epsilon_{\theta}\right|<\theta_{c}:

\theta_{m}=n\cdot\theta_{c}\pm\epsilon_{\theta}

l’errore relativo ad ogni impulso dell’encoder risulta essere:

V=\frac{n\cdot\theta_{c}\pm\epsilon_{\theta}}{T}=\frac{n\cdot\theta_{c}}{T}\pm\frac{\epsilon_{\theta}}{T}= \frac{n \cdot\theta_{c}}{T}\left(1\pm\frac{\epsilon_{\theta}}{n \cdot \theta_{c}}\right)

tale misura risulterà problematica alle basse velocità dove l’errore sarà: \frac{\epsilon_{\theta}}{\theta_{c}}

Tuttavia, nel nostro caso, questo errore è trascurabile adottando delle procedure di correzione e stima.

Metodi per calcolare la velocità

Esistono due modi per poter calcolare la velocità, un primo che tenuto il tempo costate si contano il numero di celle passate in quel periodo, ed un secondo complementare che tenuto il numero di celle costante si conta l’intercalare del tempo tra esse.

  1.  V = \frac{N_\theta\theta_c + \epsilon_\theta}{T}
  2.  V = \frac{N_\theta\theta_c}{T + \epsilon_T}

Perché l’errore sia più piccolo possibile, l’errore deve essere ovviamente più piccolo possibile.

Fissato un tempo di campionamento T = N_cT_c

Sviluppando in serie di Taylor il secondo punto

  1.  V = \frac{N_\theta\theta_c + \epsilon_\theta}{N_cT_c} = \frac{N_\theta\theta_c}{N_cT_c} + \frac{\epsilon_\theta}{N_cT_c} = \frac{N_\theta\theta_c}{N_cT_c}(1 + \frac{\epsilon_\theta}{N_\theta\theta_c})
  2.  V = \frac{N_\theta\theta_c}{N_cT_c + \epsilon_T} \simeq \frac{N_\theta\theta_c}{N_cT_c} - \frac{N_\theta\theta_c}{(N_cT_c)^2}\epsilon_T = \frac{N_\theta\theta_c}{N_cT_c}(1 - \frac{\epsilon_T}{N_cT_c})

Perché la velocità effettiva sia più affidabile possibile l’errore in entrambi casi deve essere il più possibile nullo.

Perché l’errore sia più piccolo possibile

  1. Il motore deve girare a grandi velocità
  2. Il motore deve girare a basse velocità

Per il robot è stato scelto il secondo modello di calcolo della velocità, questo perché il robot sarà più spesso impegnato a muoversi in ambienti stretti e con poche possibilità di andare a grandi velocità

Componente scelto

Encoder ruota

Encoder ruota

Encoder Sensor

Encoder Sensor

L’encoder della US Digital da 300 CPR è costituito da due parti, la prima immagine costituita dal disco ottico permette di generare i segnali, come trattato precedentemente e la seconda immagine costituita da una doppia coppia di emettitori e ricevitori, disposti in quadratura. La presenza delle due coppie consente di rilevare, oltre allo spostamento dell’albero su cui è montato, anche il verso di rotazione.

Per il robot è stata scelta la configurazione in modalità di conteggio degli impulsi “x4”, n_c = \text{CPR}\cdot K_r è il numero delle celle presenti sulla traccia, permettendo quindi una risoluzione dell’angolo di:

n_\theta = n_c \cdot 4 = 300\cdot 30 \cdot 4 = 36000

Questo in quanto la rotazione sull’asse uscente della ruota è data dai CPR dell’encoder per il rapporto di moltiplicazione del motore e dalla codifica effettuata dalla periferica (x4).

\theta_c = \frac{2pi}{4\cdot n_c} = \frac{2\pi}{36000} \approx 1.74532925199 \cdot 10^{-4} rad
channels A and B

channels A and B

Bibliografia

  1. E. Doebelin, Strumenti e metodi di misura, 2nd ed. McGraw-Hill, 2008.
  2. P. R. G. Magnani, G. Ferretti, Tecnologie dei sistemi di controllo, 2nd ed. McGraw-Hill, 2007.

Copyright © 2013. All Rights Reserved.

2 thoughts on “Encoder

Leave a Reply