strojenie serva

Dyskusje dotyczące serwonapędów i napędów serwokrokowych.

ma555rek
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 6
Posty: 1214
Rejestracja: 15 paź 2007, 00:45
Lokalizacja: nie ważne

#11

Post napisał: ma555rek » 08 kwie 2015, 06:42

kamar pisze:. Ważny jest tylko stosunek prędkości obrotowych
Zamiast kombinować z matematyką i sterować prędkością ustaw servo w trybie pozycji.
a stosunek prędkości ustawisz mnożnikiem kroków. Źródłem będzie wzorcowy enkoder.


Pasjonat

Tagi:


Autor tematu
kamar
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 8
Posty: 16281
Rejestracja: 18 wrz 2010, 06:17
Lokalizacja: Kozienice
Kontakt:

#12

Post napisał: kamar » 08 kwie 2015, 07:09

ma555rek pisze: Zamiast kombinować.
Robiłeś tak ? Działa ? Bo na luźne pomysły to już mi się gęsi kończą :)

P.s.
Rebe, co robić - gęsi mi zdychają ?
- karm ich tylko żytem
Rebe, nie pomogło, zdechła połowa gęsi
- karm ich tylko pszenicą
Rebe, nie pomogło, zdechła reszta
-A to szkoda bo jeszcze kilka pomysłów miałem.


ma555rek
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 6
Posty: 1214
Rejestracja: 15 paź 2007, 00:45
Lokalizacja: nie ważne

#13

Post napisał: ma555rek » 08 kwie 2015, 08:19

Rebe, Ty poczytaj w instrukcji serva czy jest ograniczenie częstotliwości na wejściu kierunkowym. Raczej być nie powinno, albo takie samo jak na step.
A w palucha nie muszę się uderzyć by wiedzieć. Wiesz, siła teorii.
Pasjonat

Awatar użytkownika

ArturM
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 2
Posty: 160
Rejestracja: 12 kwie 2008, 07:53
Lokalizacja: Kozienice
Kontakt:

#14

Post napisał: ArturM » 08 kwie 2015, 10:04

ma555rek pisze:
kamar pisze:. Ważny jest tylko stosunek prędkości obrotowych
Zamiast kombinować z matematyką i sterować prędkością ustaw servo w trybie pozycji.
a stosunek prędkości ustawisz mnożnikiem kroków. Źródłem będzie wzorcowy enkoder.
No ale wtedy będzie 'nadganiać' nie?
Jeżeli ustawię stosunek kroków i potem zmienię przełożenie (znaczy ten stosunek) to serwo dojedzie samo na nową pozycję bo zmieni się zadana wartość kroków. A my tak nie chcemy. Ma stać.
Potem jak ruszy to ma się kręcić z nowym stosunkiem prędkości.
Ma się zachowywać jak przełożenie na kołach zębatych, ale to przełożenie ma być suwakiem zmieniane :D

No i w sumie to działa - ale po kilkudziesięciu (czy nawet kilkuset) obrotach mi się rozjeżdża.

Ale mam jeszcze parę pomysłów :D


ma555rek
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 6
Posty: 1214
Rejestracja: 15 paź 2007, 00:45
Lokalizacja: nie ważne

#15

Post napisał: ma555rek » 08 kwie 2015, 12:12

pisze:
No ale wtedy będzie 'nadganiać' nie?
Nie, będzie stać na pozycji lub bedzie iść zgodnie z podanym krokiem - jak krokówka

Jeżeli ustawię stosunek kroków i potem zmienię przełożenie (znaczy ten stosunek) to serwo dojedzie samo na nową pozycję bo zmieni się zadana wartość kroków. A my tak nie chcemy. Ma stać.
Jak ustawisz stosunek to bedzie tak szło. Gdy zmienisz proporcję to bedzie iść wolniej lub szybciej od chwili zmiany. Przecież nie zmieniasz w trakcie biegu tylko gdy stoi.

Potem jak ruszy to ma się kręcić z nowym stosunkiem prędkości.
A nie rusza z tym nowym ustawieniem?

Ma się zachowywać jak przełożenie na kołach zębatych, ale to przełożenie ma być suwakiem zmieniane :D
i zapewne w zakresie liczb rzeczywistych? Dokładnie jak w przekładni? Czy może jednak w proporcji iloczynu liczb całkowitych

No i w sumie to działa - ale po kilkudziesięciu (czy nawet kilkuset) obrotach mi się rozjeżdża.
NIEMOŻLIWE - albo gubisz impulsy albo liczysz oczka w swetrze.
Albo też podajesz impuls zanegowany dla logiki serva czyli wój stan spocznij to jest aktywny dla serva. I tu polegniesz na liczeniu zboczy przy częstym nawrocie. I rozjazd pozycji gotowy.

Ale mam jeszcze parę pomysłów
Nie ma innych - albo własne sterowanie liniowe prędkością albo idziesz z pełną dynamiką serva na zadaną pozycję.
Róznica jest tylko taka że przy serowaniu pozycją opierasz się tylko na PID serva a przy własnym sterowaniu predkością na PID serva nakładasz dodatkowo własne pomysły niekoniecznie dobrze dostrojone :D
Pasjonat


Autor tematu
kamar
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 8
Posty: 16281
Rejestracja: 18 wrz 2010, 06:17
Lokalizacja: Kozienice
Kontakt:

#16

Post napisał: kamar » 08 kwie 2015, 13:04

ma555rek pisze:[ I tu polegniesz na liczeniu zboczy przy częstym nawrocie. I rozjazd pozycji gotowy.
Może jednak sobie odpuść, pojęcia nie masz o co chodzi a teoretyzujesz. Nudzisz się ?


ma555rek
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 6
Posty: 1214
Rejestracja: 15 paź 2007, 00:45
Lokalizacja: nie ważne

#17

Post napisał: ma555rek » 08 kwie 2015, 13:19

Może dla innych przybliżę o czym pisałem
Gdy fazy impulsu są zgodne to:
-sterowanie wystawia impulsy STEP i pozycja powinna się zmieniać - silnik się przesuwa.
- zmiana kierunku następuje w fazie step =0
- następne kroki ponownie są liczone i silnik wraca na zero.

Gdy fazy są niezgodne to
-sterowanie wystawia impuls np 10x ale silnik widzi tylko 9 przerw miedzy impulsami.
-zmiana kierunku widziana jest przez servo jako zmiana po 9 impulsie i dodatkowo w trakcie jego trwania - nie ma szans wrócić na poz zero.

Kapiszi? Czy za trudne?
Pasjonat

Awatar użytkownika

ArturM
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 2
Posty: 160
Rejestracja: 12 kwie 2008, 07:53
Lokalizacja: Kozienice
Kontakt:

#18

Post napisał: ArturM » 08 kwie 2015, 13:31

Trochę dziwna szkoła cytowania ale spróbuję ogarnąć :D
ma555rek pisze:
ArturM pisze: No ale wtedy będzie 'nadganiać' nie?
Nie, będzie stać na pozycji lub bedzie iść zgodnie z podanym krokiem - jak krokówka
ma555rek pisze:
ArturM pisze: Jeżeli ustawię stosunek kroków i potem zmienię przełożenie (znaczy ten stosunek) to serwo dojedzie samo na nową pozycję bo zmieni się zadana wartość kroków. A my tak nie chcemy. Ma stać.
Jak ustawisz stosunek to bedzie tak szło. Gdy zmienisz proporcję to bedzie iść wolniej lub szybciej od chwili zmiany. Przecież nie zmieniasz w trakcie biegu tylko gdy stoi.
Uhum. Ale mam np. serwo w pozycji 100, pozycja zadana z enkodera2 jest też 100.
Gra i stoi.
Teraz zmieniam przełożenie, zadana pozycja enkodera2 robi się 20.
Co zrobi serwo? Będzie stało na 100 przy zadanej 20 czy mi zatańczy? :D

ma555rek pisze: NIEMOŻLIWE - albo gubisz impulsy albo liczysz oczka w swetrze.
Albo też podajesz impuls zanegowany dla logiki serva czyli wój stan spocznij to jest aktywny dla serva. I tu polegniesz na liczeniu zboczy przy częstym nawrocie. I rozjazd pozycji gotowy.
Niemożliwe, niemożliwe. Jakby było możliwe to bym dawno zrobił. A nad rzeczami niemożliwymi muszę chwilę posiedzieć :D
Nie ma częstych nawrotów - ja w ogóle nie mam nawrotów - to trochę jak wrzeciono (a nawet całkiem jak wrzeciono) - kręci się ciągle i praktycznie zawsze w jedną stronę.
ma555rek pisze: Nie ma innych - albo własne sterowanie liniowe prędkością albo idziesz z pełną dynamiką serva na zadaną pozycję.
Róznica jest tylko taka że przy serowaniu pozycją opierasz się tylko na PID serva a przy własnym sterowaniu predkością na PID serva nakładasz dodatkowo własne pomysły niekoniecznie dobrze dostrojone :D
Nie chcę nigdzie iść pełną dynamiką serwa - jak mi nadgania albo zwalnia to mi pieprzy robotę - chcę żeby serwo kręciło się z pewnym przełożeniem w stosunku do zewnętrznego enkodera.
Tylko tyle i aż tyle :D

Mam dostępną prędkość enkodera2 (czyli obroty freza), i mam prędkość z enkodera serwa (czyli obroty stołu).
Raz ustalone przełożenie mi się podczas pracy nie zmienia - więc nie potrzebuję jakiejś wypaśnej regulacji. Se umyśliłem że przeliczę w HALu prędkości i przełożenie na napięcie -10 - 10V i w ten sposób zadam wymaganą prędkośc serwu. A ono sobie już pełną dynamiką i swoim PIDem zrobi co każę.

No i kółko plastikowe 48z nacięte. Zaraz będę nacinał stalowe 24z :D
Niemożliwe wygląda powoli na coraz bardziej realne :D


ma555rek
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 6
Posty: 1214
Rejestracja: 15 paź 2007, 00:45
Lokalizacja: nie ważne

#19

Post napisał: ma555rek » 08 kwie 2015, 14:06

Mam dostępną prędkość enkodera2 (czyli obroty freza), i mam prędkość z enkodera serwa (czyli obroty stołu).
No i na tym się rzeba oprzeć.
Jeżeli nie chcesz zmieniać nastaw bezpośrednio w servie - Modbasem czy inaczej to steruj servem w trybie pozycji step/dir. Przecież inne napedy w takim trybie się Wam nie rozjeżdżają!. Jak ma iść to idzie a gdy stać to stoi.
Weź strumień z enkodera2 i podziel go do oczekiwanej proporcji którą ma wykonać servo na swoim enkoderze. To wszystko.
Kwiatki wysapią tylko gdy trafisz z proporcją impulsów grubo poza sensowny zakres.
W Twoim przypadku szukałbym dużej ilości impulsów dla enkodera2 - np 10000/obr lub dodatkowo jeszcze je zmultiplikował aby do serva wysyłać tylko dzielenie, bo dużo łatwiej. - nie wytsępuje problem z częstotliwością nadmiarowych impulsów w przypadku mnożenia.
Co tu ma nie działać?
Jeszcze lepszym rozwiazaniem byłoby wpisywanie podziału bezpośrednio w sterowniku serva a impulsy serujace brać bezpośrednio z enkodera.

Jeżeli w takim przypadku coś się rozjeżdża to tylko po stronie żródła impulsów.
Pasjonat


GumiRobot
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 1
Posty: 689
Rejestracja: 21 mar 2005, 18:51
Lokalizacja: Trójmiasto

#20

Post napisał: GumiRobot » 08 kwie 2015, 14:10

przepraszam że się "wtrancam", ale czy komponent hal-a "encoder_ratio - An electronic gear to synchronize two axes" został oglodnięty.

Poza tym gwintowanie na tokarce jest w ten sposób realizowane w LinuxCNC, spojrzeć w źródła.

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Serwomotory / Serwonapędy / Napędy Serwokrokowe”