Servomotor rotacny a linearny encoder

kamil11111
Příspěvky: 38
Registrován: 5. 3. 2017, 4:22

6. 2. 2022, 3:54

Priklad: Servomotor riadi os za pomoci svojho rotacneho encoderu.
Pri zmene teplot (zohreje sa skrutka gulickoveho prevodu) pocas prace dochadza k chybe.
Chyba nieje velka: Stroj chce odist na urcitu vzdialenost 100,00 mm. V skutocnosti ale odide na 100,01 mm. V tomto momente prichadza na radu linearny encoder a poda systemu informaciu o chybe a ten vzdialenost proste skoriguje a cuvne o jednu stotinu naspat. Je tu niekto kto by mi toto vedel potvrdit alebo vysvetlit ze to fugnuje inak?
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

6. 2. 2022, 4:32

Ono těch možností je víc, jako u všeho v životě.
Ale snad nejsnadněji vychází to, že vůbec nejezdíš podle toho rotačního enkodéru (tj. nepřímé odměřování), ale jezdíš jenom podle toho pravítka (tj. přímé odměřování).
A ten rotační enkodér případně použiješ jenom pro řízení komutace serva, nikoli k odměřování.
kamil11111
Příspěvky: 38
Registrován: 5. 3. 2017, 4:22

6. 2. 2022, 4:41

Aha, no aj som si myslel že ten rotačny enkoder v podsate prekaza. A ze vzhladom na presnost by som ocakaval ze sa poloha serva kontroluje priamo linearom. Mozes mi prosim este vysvetlit ten termin "komutace serva" ?
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

6. 2. 2022, 4:53

No však ano, jezdí to podle lineáru. Vždyť jsem to tam psal.

Komutace serva - běžné AC servo je BLDC/BLAC/PMSM motor. Tedy motor bez mechanického komutátoru (bez uhlíků). Takže komutaci, tj. řízení proudu do jednotlivých cívek, musí řídit driver.
Ten driver potřebuje vědět, jak je rotor v každém okamžiku natočený, aby podle toho mohl pouštět proud do příslušných cívek.
No a jako tu zpětnou vazbu použije informaci z enkodéru.

U jednoduchých BLDC motorů s nízkými nároky na přesnost se dají použít i třeba Hallovy sondy, které můžeš brát jako hodně řídký absolutní enkodér.

U DC serva pak nic takového nepotřebuješ, tam se komutace dělá mechanicky komutátorem, po kterém jezdí uhlíky.
kamil11111
Příspěvky: 38
Registrován: 5. 3. 2017, 4:22

6. 2. 2022, 5:02

Prepac som amater v tom a nechapal som naco su tam v podsate dve merania ale uz rozumiem a dakujem za vysvetlenie. Ten servo motor musi stale podavat informaciu driveru o tom ako je práve natoceny. Ak by tam bol len obycajny krokovy motor tak by to rotacny encoder nepotrebovalo, predpokladam. Proste by sa to len posunulo o krok (kroky) aky je potrebny na dosiahnutie ciela.
kamil11111
Příspěvky: 38
Registrován: 5. 3. 2017, 4:22

6. 2. 2022, 5:16

Este jedna otazka... Ako prebieha tá kontrola zalozena na tom lineare? Je tam nastaveny nejaky krok kedy to ten linearny encoder (pravitko) kontroluje, napriklad kazdych 0,001 mm sa vykonava kontrola aktualnej polohy aj ked prave prachadza z bodu A do bodu B ktory je vzdialeny aj 1000mm ? Alebo je tam nejaky iny princip ?
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

6. 2. 2022, 6:00

Je tam regulační smyčka. Ta v každém cyklu, tj. třeba 1000x za sekundu, zkontroluje rozdíl mezi požadovanou polohou a skutečnou polohou.
Jako další parametry do té smyčky vstupují informace o maximální povolené rychlosti a maximálním povoleném zrychlení.
No a PID regulátor podle toho v každém cyklu vypočítá, jak se má v dalším cyklu točit motor, který to pohání.

V principu jsou tam nad sebou 3 smyčky a regulátory.
Nejvýš a nejpomalejší je polohový regulátor. To je ten výše popsaný, který vyhodnocuje odchylku polohy a pracuje řekněme 1000-2000x za sekundu.
Pod ním je rychlostí regulátor, který dostává pokyny z toho polohového. Ten podle zadání točí určenou rychlostí motorem. Měl by být ideálně tak nejmíň 2x rychlejší než polohový.
No a úplně dole je momentový regulátor, který zase dostává zadání od toho rychlostního a řídí přidělování proudu jednotlivých cívkám. Ten by opět měl být rychlejší než ten rychlostní.

To, co popisuju, je základní princip. Pak do toho případně vstupují ještě další věci jako Feed-forward a tak.
kamil11111
Příspěvky: 38
Registrován: 5. 3. 2017, 4:22

6. 2. 2022, 6:08

Nemáte k tomu pre lepsiu predstavu aj nejake graficke zobrazenie ?
Uživatelský avatar
robokop
Site Admin
Příspěvky: 22371
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

6. 2. 2022, 6:14

Ono je to v praxi v drtive vetsine jeste uplne jinak. Servo je rizeno rychlostne podle regulatoru v systemu ktery jako zpetnou vazbu pouziva pravitko. Servo jako takove si ve svem rychlostnim rezimu meri rychlost svojim encoderem. Toto je typicky zpusob jakym je rizeno obrovske mnozstvi stroju. Druha varianta, modernejsi, je v tom ze pravitko jde primo do driveru kde jsou resene vsechny smycky. Jako polohova tak rychlostni. Pro kazdou se pouziva vlastni snimac jako predtim. Polohova pravitko. Rychlostni encoder. Z duvodu zjednoduseni neuvadim proudovou smycku.
Vsechna prava na chyby vyhrazena (E)
kamil11111
Příspěvky: 38
Registrován: 5. 3. 2017, 4:22

6. 2. 2022, 6:20

K tomu PID regulatoru... Ak som spravne pochopil...
Chcem prejst 1000mm a vieme ze nato je potrebnych 1000 impulzov.
Ale teplotne rozdiely sposobia chybu.
PID regulator zisti uz behom prveho pohybu napriklad rozdiel medzi 1mm a jednym impulzom.
Vypocita chybu napriklad jeden impulz je 0,99mm a nie 1mm.
A podla toho prepocita nasledne impulzy?
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

6. 2. 2022, 6:21

robokop píše: 6. 2. 2022, 6:14 Ono je to v praxi v drtive vetsine jeste uplne jinak. ...
A v čem je prosím to "uplne jinak" proti tomu, co jsem napsal?

Napsal jsi přesto to samé, co jsem napsal v přechozím postu já.
Nikde jsem nepsal, kdo má kterou regulační smyčku řešit. Jestli driver nebo nadřízený systém.
V této teoretické rovině, o kterou se tazatel zajímal, je to jedno.
A v praxi to pak bude podle toho, co má k dispozici.
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

6. 2. 2022, 6:23

kamil11111 píše: 6. 2. 2022, 6:20 K tomu PID regulatoru... Ak som spravne pochopil...
Chcem prejst 1000mm a vieme ze nato je potrebnych 1000 impulzov.
Ale teplotne rozdiely sposobia chybu.
PID regulator zisti uz behom prveho pohybu napriklad rozdiel medzi 1mm a jednym impulzom.
Vypocita chybu napriklad jeden impulz je 0,99mm a nie 1mm.
A podla toho prepocita nasledne impulzy?
Když v praxi potřebuješ ujet 1000mm s nějakou přesností, tak to nebude 1000 pulzů, ale spíš několik milionů pulzů.

Ten PID regulátor neví, kolik jsi reálně ujel. Jeho jedinou informací je poloha z pravítka.
Takže nemá jak zjistit, jestli je jeden pulz v reálu třeba 1um nebo 0.99um. To mu musíš předem nastavit ty.
Naposledy upravil(a) Mex dne 6. 2. 2022, 6:26, celkem upraveno 1 x.
kamil11111
Příspěvky: 38
Registrován: 5. 3. 2017, 4:22

6. 2. 2022, 6:24

Hoši nehádajte sa prosim, som rad ze mi to vysvetlujete :) , obom vam zčasti rozumiem, ale nie uplne este.
kamil11111
Příspěvky: 38
Registrován: 5. 3. 2017, 4:22

6. 2. 2022, 6:25

Mex, to bol len priklad s tymi impulzami. :)
kamil11111
Příspěvky: 38
Registrován: 5. 3. 2017, 4:22

6. 2. 2022, 6:29

Mex píše: 6. 2. 2022, 6:23
kamil11111 píše: 6. 2. 2022, 6:20 K tomu PID regulatoru... Ak som spravne pochopil...
Chcem prejst 1000mm a vieme ze nato je potrebnych 1000 impulzov.
Ale teplotne rozdiely sposobia chybu.
PID regulator zisti uz behom prveho pohybu napriklad rozdiel medzi 1mm a jednym impulzom.
Vypocita chybu napriklad jeden impulz je 0,99mm a nie 1mm.
A podla toho prepocita nasledne impulzy?
Když v praxi potřebuješ ujet 1000mm s nějakou přesností, tak to nebude 1000 pulzů, ale spíš několik milionů pulzů.

Ten PID regulátor neví, kolik jsi reálně ujel. Jeho jedinou informací je poloha z pravítka.
Takže nemá jak zjistit, jestli je jeden pulz v reálu třeba 1um nebo 0.99um. To mu musíš předem nastavit ty.
No hej, dajme tomu ze som to nastavil presne. Ale nesedí to tak či tak kvoli tym rozdielom teplot na skrutke. Tak som si myslel ze ten PID regulator stale meria rozdiel medzi skutočnou potrebou (1000 pulzov na 1mm) a realnou (zistil ze na 1 mm potrebuje len 999 puzlov) a tuto informaciu stale posiela driveru. Pochopil som to spravne? :D
Odpovědět

Zpět na „Servomotory“