Jump to content
ELFORUM - Forumul electronistilor

CNC cu motoare DC, ce precizie se poate obtine la nivel home


Recommended Posts

Salut!Urmeaza sa incep constructia unui cnc pe 3 axe cu motoare dcSistemul de comanda al motoarelor dc se face printr-un sistem cu dsc proiectat de mineMentionez ca pe langa encoderul de pe motor o sa mai pun inca un encoder de 4000cpr pe suruburi pentru a corecta pozitionareaIntrebarea mea, pentru cei care au astfel de masini sau au lucrat cu asa ceva, ce precizie as obtine?motoare :http://db.sanyodenki.co.jp/sanmotion_pdf/e/767-7_WEB.pdf encoder 1000 cpr, tahometru

Link to comment
  • Replies 7
  • Created
  • Last Reply

Top Posters In This Topic

Faci o eroare de baza de reglare. NU poti sa reglezi pozitia atat la axul motorului cat si la surub pentru ca ele au aceelasi element de executie(motorul) si reprezinta aceeasi stare si vor lupta una impotriva celeilalte. Gandeste-te ca atunci cand ai pozitionat corect axul surubului inevitabil va fi o eroare la axul motorului pe care cealalta bucla de reglare va incerca sa o compenseze ceea ce va duce la o eroare la axul surubului.Deci sa nu faci asta niciodata!

Controlul in cascata (multiloop in engleza sau nested loop) se face regland marimi diferite(marimi de stare).

Pentru motoarele DC in general se folosesc 3 bucle de reglare: de curent(algoritm PI) viteza(tot PI) si pozitie un PID. Daca vrei sa mai rafinezi si sa mai imbunatatesti viteza de raspuns poti sa faci o compensare de tip feedforward de viteza sau, daca stii(dar cred ca nu), sa aplici algoritmi mai noi de reglare numerici cum ar fi un RST, LQR sau Fuzzy dar nu var rostul.

Ce ai putea sa faci, daca vrei neaparat 2 encodere, este urmatorul lucru: Folosesti encoderul de la motor pentru o bucla de reglare de viteza si cel de pe ax pentru pozitite. Dar nu are rost dupa parerea mea deoarece poti sa masori viteza direct de la encoderul de pe surub, deci folosirea a 2 encodere este redundanta. Ai nevoie doar de cel de pe surub pentru precizie maxima. Cand se folosesc traductoare liniare, encoderul de pe motor se mentine dar e folosit la masurarea turatiei/vitezei nu la pozitie.

In plus, ce soft vrei sa folosesti? Daca vrei Mach 3, renunta la cel de 4000 cpr deoarece acest soft da maxim 35000 pulsuri/sec deci nu o sa obtii viteze mari cu el(ceea ce e o tampenie ca doar d-aia pui servo pe masina). Ca sa obtii viteze mari trebuie sa faci electronic gearing (adica pentru un puls al softului mach 3 sa numeri mai multe pulsuri de encoder) si toata precizia care teoretic o obtineai se duce si n-are rost sa dai banii pe un encoder mai scump. Pentru mach 3 un encoder de 500 pulsuri/rev e arhisuficient(poti sa obtii cu el 2000 de incremente daca numeri si pe fronturile descrescatoare - modul x4). Chiar daca folosesti un reductor intre motor si surub tot nu ai voie sa relglezi pozitia atat la axul motorului cat si la axul surubului.

In plus fiind o metoda de masura indirecta, depinzi de precizia surubului si de asemenea nu se mertia encoder de 4000 cpr deoarece precizia surubului e mult mai slaba. Ca un exemplu, cu 4000 cpr la un surub cu pas de 5mm inseamna o precizie de 1.25 um (iar daca il folosesti in mod x4 ai 16000 cpr si atunci ai 0.3125 um) iar un surub roluit C7 are eroarea max 50 um pe 300 mm , plus ca mai apar niste jocuri in piulita si lagare pe care le compensezi in soft dar nu te apopii nici pe departe de micronul ala(nici de sutime nu prea te apropii, tine mult de aliniere montare etc). Iar daca ai un surub cu adevarat precis de la C3 in jos cu lagaruire adecvata (o solutie de peste 1000E/axa), nu vad ce te mai chinui cu solutia asta, pentru ca aveai deja bani sa iti iei servo brushless cu driver cu tot.

Daca totusi vrei sa obtii precizie mare, solutia ar fi sa folosesti un traductor liniar de rezolutie 5um (sau mai bun daca iti permiti), care nu e mult mai scump ca un encoder de 4000 cpr dar obtii sigur o precizie incrementala de 5um dar chiar si in acest caz nu stii care e precizia pe distante lungi(absoluta) deoarece chinezii nu o ofera, iar firmele care o ofera te usuca la bani si nu se justifica.

In plus, conteaza foarte mult structura mecanica a masinii. 1m de aluminiu se dilata/contracta cu o zecime de mm la o variatie de 5 grade. Otelul ar avea 6 sutimi la 5 grade pt 1m. La o masina CNC hobby mult mai importanta este repetabilitatea nu atat precizia absoluta. Nu o sa reusesti nici in vis sa faci CNC la micron si sutimea e aproape imposibil de atins la modul absolut (masurata pe piesa) mai ales pe distante mai mari. Conteaza foarte mult( un aspect pe care multi oameni nu il iau in calcul si vor sa faca masini super precise) bataia radiala a motorului de frezare (spindle) care daca e precis e foarte scump si multi nu iti garanteaza precizie comparabila cu ce vrei tu sa obtii acolo.

Link to comment

Vad ca trebuie sa dau lamuriri suplimentare....1) Nu te-ai exprimat bine in primul post, nu era vorba de doua bucle de pozitie (cum bine am intuit) ci de un algoritm de reglare PID cu 2 grade de libertate si anume variantele PD-I si I-PD. Bucla interna(de la encoderul intern) este desigur o bucla de viteza.Ceea ce este foarte amuzant este cum tipul de acolo prezinta aceste solutii ca fiind inventate de ei, dar ce ciudat, eu le-am invatat la facultate dintr-o carte veche de 20 de ani. Hmmm...... La final cu acele raspunsuri in frecventa vorbea cam verzi si uscate, dar sa trecem peste.2) Solutia nu prea se aplica in cazul tau. Ea este buna pentru sisteme cu timp mort mare (reprezentat aici de backlash). In cazul tau, singurul backlash pe care l-ai compensa cu metoda asta este cel din angrenajul dintre axul motorului si al surubului, DAR nu elimina deloc backlashul din piulita surubulu care este de asemenea important, de obicei e cel mai mare. De asemena nici jocul din lagarul radial-axial de fixare al surubului. Deci nu castigi mare lucru cum spuneam. Metoda era buna daca marimea reglata era o marime de rotatie. Mult mai util ar fi aici, in cazul tau un traductor liniar dupa cum spuneam. Cum configurezi buclele ramane la latitudinea ta. O metoda mai generala si mai buna decat cea prezentata, tot cu doua grade de libertate este regulatorul RST, dar necesita sa stii ceva matematica pentru a calcula unul.3) Problema cu instabilitatea apare in 2 situatii: - backlashul este foarte mare (in exemplul lui era 10 grade) ceea ce nu e cazul aici. Poti foarte bine sa mergi cu encoderul de pe axul surubului daca compensezi corect PID-ul(dar nu e asa simplu). - cel care calculeaza PID-ul nu stie prea bine ce face, deoarece in cazul sistemelor cu timp mort metoda nu mai e asa simpla, mai trebuie si ceva matematica pe acolo folosita. 4) Personal cred ca investitia intr-un nou encoder doar pentru rezolvarea acestei probleme este o problema prost pusa din start. Se poate rezolva eroarea data de acel backlash folosind un algoritm de reglare mai destept fosolind un singur encoder. Spre exmplu cauta despre reglarea cu predictor Smith, care ajuta la eliminarea problemei instabilitatii data de timpul mort din sistem.

Link to comment

In Romania:

http://www.masiniunelte-optimum.ro/prod ... index.html

Pretul de 180E este cel minim, cred ca e pentru cea mai scurta, pentru celelalte intreaba.

 

Pe littlemachineshop.com exista acest sistem complet la un pret foarte bun zic eu, dar nu trebuie uitate taxele pt produsele din america:

http://www.littlemachineshop.com/produc ... 1536942993

 

E-bay mai este un loc unde se gasesc(cauta linear scale):

http://shop.ebay.com/i.html?_nkw=linear ... m270.l1313

 

Mai cauta pe google si pe ebay.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines