Dario Brescia Inserito: lunedì alle 13:24 Segnala Inserito: lunedì alle 13:24 Buongiorno a tutti, ho cercato più volte nelle varie sezioni ma non ho trovato risposta al mio dubbio, se qualcuno ha già discusso di questo ditemi pure dove cercarlo. Spiego la questione: in un sistema composto di motore, riduttore, encoder e meccanica in movimento, come gestire l’accumulo di errore dovuto ai movimenti che non corrispondono a un numero finito di impulsi dell’encoder, se non è possibile utilizzare un sensore di home? Penso a tavole rotanti, nastri a pallet, e applicazioni simili (per nulla eccezionali, direi) che ruotino sempre nella stessa direzione. Grazio in anticipo
Livio Orsini Inserita: lunedì alle 15:02 Segnala Inserita: lunedì alle 15:02 1 ora fa, Dario Brescia ha scritto: come gestire l’accumulo di errore dovuto ai movimenti che non corrispondono a un numero finito di impulsi Io usavo un metodo semplice che cerco di spiegare con un esempio. Immagina di avere un sistema di asse elettrico tra due motori dove il rapporto tra i due encoder sia un numero irrazionale come, ad esempio, 11/7 ==>1,5714285714285714285714285714286.... Per prima cosa esprimo il rapporto in virgola mobile. Moltiplico il contatore dell'encoder slave per il rapporto espresso in virgola mobile con risultato in intero. Con 1000 impulsi, si avrà 1571, con 1.000.000 di impulsi si avrà 1.571.428. L'errore c'è ma è sempre inferiore all'unità. Stesso discorso in caso di posizionamento con quote espresse in unità ingegneristiche. Rimane il problema dei contatori fisici, tipo contatori veloci dei PLC, che in genere valgono al massimo 16 bits; in nquesto caso basta crearsi un contatore viortuale ad intero lungo, o anche su più words, e gestire i trabocchi. Gestendo in questo modo non ho mai avuto problemi di accumulo degli errori.
Dario Brescia Inserita: ieri dalle 12:20 Autore Segnala Inserita: ieri dalle 12:20 Buongiorno, grazie Livio. Quindi, se ho ben capito, anzitutto eliminiamo la virgola dai valori cosicché lavoriamo con numeri interi, e contestualmente l’errore diventa meccanicamente irrilevante. Ma in questo modo non eliminiamo l’errore e a lungo andare lo accumuliamo, per quanto piccolo possa essere…è un ragionamento corretto?
Livio Orsini Inserita: ieri dalle 13:49 Segnala Inserita: ieri dalle 13:49 1 ora fa, Dario Brescia ha scritto: …è un ragionamento corretto? No. L'errore c'è sempre ma non si accumula, almeno nei limiti di precisione di una variabile a virgola mobile. Ci sono anche altre metodologie particolari per ridurre l'errore comulativo nel caso di rapporti che diano risultati irrazionali. Un esempio classico sono le cesoie rotative dove il rapporto tra lunghezza di taglio e sviluppo della cesoia è un numero irrazionale. Se ci fosse solo un semplece taglio ci sarebbe solo un piccolo errore non cumulativo. Differente se il materiale da tagliare ha dei punti fissi di riferimento come, ad esempio, il caso di carta stampata. In casi come questo mano amano che il lavoro procede c'è un progressivo scorrimento del taglio rispetto alla sagoma stampata. In questi casi l'unico modo certo di mantenere la fasatura è un marca di registro che fa da riscontro. Caso tipico delle stampe rotative. C'è anche il metodo più grossolano. Nel momento in cui il controllore riceve i dati di lunghezza, ed esegue i calcoliu per stabilire il rapporto di velocità, calcola ogni quanti tagli l'errore raggiunge, e/o supera, un impulso di encor; quindi ogni tot tagli si aggiunge un impulso virtuale a l conteggio. Così si riduce ciclicamente l'errore.
Dario Brescia Inserita: 4 ore fa Autore Segnala Inserita: 4 ore fa 22 ore fa, Livio Orsini ha scritto: L'errore c'è sempre ma non si accumula, almeno nei limiti di precisione di una variabile a virgola mobile. Ecco, è qui che perdo il filo: se l’errore c’è, per quanto piccolo, come è possibile che non si accumuli, nel caso di comandi ripetitivi? Faccio un esempio concreto: nastro a catena con 42 pallet montati, motore brushless Siemens 1FL2203, encoder 21+12 bit, riduttore 1:100, pignone a 19 denti, passo della singola maglia della catena 19,05 mm, passo tra due pallet 171,45 mm (9 denti). Il nastro ha uno sviluppo totale di 7200,9 mm tra andata e ritorno. La misura del passo (171,45 mm) non corrisponde a un numero finito di impulsi encoder, vale a dire che a ogni movimento il motore si posizionerà appena prima o appena dopo la misura necessaria – se ho fatto bene i calcoli sono 0,0000017 mm, meccanicamente irrilevante – ma perché nel lungo periodo non c’è accumulo?
drn5 Inserita: 2 ore fa Segnala Inserita: 2 ore fa In un simile scenario, senza una posizione di reset meccanico per fare lo "zero" di encoder, l'errore si accumula tanto quanto sono i movimenti. Non vedo come sia possibile matematicamente annullarlo. Che poi sia meccanicamente ininfluente dipende solo da quanti movimenti fa il nastro. E' vero che sono 1,7 micron...
Livio Orsini Inserita: 2 ore fa Segnala Inserita: 2 ore fa 1 ora fa, Dario Brescia ha scritto: La misura del passo (171,45 mm) non corrisponde a un numero finito di impulsi encoder, In questi casi si deve usare il sistema di quote assolute, tipoco dei controlli CNC, che ha propoprio il pregio di non accumulare errori. Il primo oggetto sarà alla quota di 171,45, il secondo alla quota di 342,9, il terzo a 514,35 e così via. Oppure ricadi nel caso della cesoia rotativa con sviluppo frazionario irtazionale rispetto al modulo di taglio. Io non ho voglia di fare i calcoli quidi devi dirmelo tu: a quanti mm corrisponde un impulso di encoder? A parte il fatto che secondo me, i giochi che ci sono in untrasmissione catena pignone causano errori molto maggiori di quelli dovuti alla frazione irrazionale.
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora