PID e motori stepper

Aug 29, 2007 2 Replies

Ho la necessit=E0 di posizionare accuratamente uno o piu assi movimentati da motori stepper: il problema =E8 che la non idealit=E0 del sistema meccanico come giochi o eccentricit=E0 non garantisce un movimento preciso e l'entit=E0 dell'errore non =E8 facilmente prevedibile quindi non mappabile. Utilizzo un controller custom e pensavo di modificarlo per chiudere il sistema ad anello con un algoritmo di tipo PID. Cercando tra i controllori commerciali non sono riuscito a trovarne alcuno che lavorasse ad anello chiuso oppure non era ben chiaro il funzionamento. Ho qualche dubbio sul corretto funzionamento di un PID per motori stepper: quello che non mi convince =E8 la granulosit=E0 intrinseca di questo tipo di motori che mi immagino possa instaurare vibrazioni indesiderate impossibili da eliminare; il mio dubbio =E8 fondato secondo voi ? Dimensionando correttamente la risoluzione dell'encoder e la costante mm/passi-motore il problema verrebbe risolto ? Se il controllo PID =E8 possibile quale grandezza usare per il controllo ? In ingresso ovviamente la posizione mentre in uscita mi sembra pi=F9 semplice usare la velocit=E0 ovvero la frequenza di eccitazione. In pratica semplificando al solo caso proporzionale il motore andrebbe piu o meno veloce in base al valore assoluto dell'errore di posizione e direzione dipendente dal segno. Pu=F2 funzionare ? Grazie in anticipo a tutti.



Simone Navari.



snipped-for-privacy@gmail.com ha scritto:

funziona. In genere si controlla proprio la frequenza. Per evitare tremolii si usa una dead band intorno al punto finale (margine entro cui il PID non regola): i controller piu' evoluti usono due o tre set di parametro PID in funzione della velocita' (Regolazione a fermo, o regolazione in operazione per basse velocita e ad alte velocita')

Ad ogni modo i controller per stepper attuali possono frazionare anche a

1/4000step (microstep) con controllo delle correnti negli avvolgimenti , anche i controller piu' economici fanno almeno il frazionamento microstep a 1/10 ..1/50step, per cui in genere non si pone il problema della precisione. Ad es con uno stepper standard da 200passi (1.8gradi/step) e un frazionamento 1/50 ottieni una precisione di (360/(200*50))=0,036gradi/microstep.

brix

Questo documento:

formatting link
riporta le caratteristiche di uno step controller che ha l'ingresso encoder.. ciao delo

ha scritto nel messaggio news: snipped-for-privacy@o80g2000hse.googlegroups.com... Ho la necessità di posizionare accuratamente uno o piu assi movimentati da motori stepper: il problema è che la non idealità del sistema meccanico come giochi o eccentricità non garantisce un movimento preciso e l'entità dell'errore non è facilmente prevedibile quindi non mappabile. Utilizzo un controller custom e pensavo di modificarlo per chiudere il sistema ad anello con un algoritmo di tipo PID. Cercando tra i controllori commerciali non sono riuscito a trovarne alcuno che lavorasse ad anello chiuso oppure non era ben chiaro il funzionamento. Ho qualche dubbio sul corretto funzionamento di un PID per motori stepper: quello che non mi convince è la granulosità intrinseca di questo tipo di motori che mi immagino possa instaurare vibrazioni indesiderate impossibili da eliminare; il mio dubbio è fondato secondo voi ? Dimensionando correttamente la risoluzione dell'encoder e la costante mm/passi-motore il problema verrebbe risolto ? Se il controllo PID è possibile quale grandezza usare per il controllo ? In ingresso ovviamente la posizione mentre in uscita mi sembra più semplice usare la velocità ovvero la frequenza di eccitazione. In pratica semplificando al solo caso proporzionale il motore andrebbe piu o meno veloce in base al valore assoluto dell'errore di posizione e direzione dipendente dal segno. Può funzionare ? Grazie in anticipo a tutti.

Simone Navari.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required