Sterowniki Małego Serwa BLDC DIY
-
Autor tematu - Czytelnik forum poziom 1 (min. 10)
- Posty w temacie: 5
- Posty: 11
- Rejestracja: 07 lut 2015, 09:43
- Lokalizacja: Mińsk Mazowiecki
Sterowniki Małego Serwa BLDC DIY
Witam Wszystkich na Forum, to mój pierwszy post!
Buduję napęd teleskopu astronomicznego który będzie służył m.in. do namierzania i śledzenia tzw. "kosmicznych śmieci". Z oczywistych względów projekt napędu jest oparty na miniaturowych serwach BLDC o mocy nominalnej 30W z przekładniami planetarnymi, z dopuszczalnym momentem do 7,5 Nm. Uzyskanie prędkości obrotowej osi rzędu 17 stopni/sekundę nie stanowi żadnego problemu.
Problem za to jest w doborze odpowiedniego sterowania tymi silnikami. Chyba się na tym wyłożyłem. Gotowe drivery są kosztowne, a niestety wymagania są duże. Przede wszystkim potrzebna jest ogromna dynamika zakresu prędkości gdyż potrzebuję sterować prędkością od 0,2 do 2 obr/min w trybie pozycji od 2 do 7000 obr/min w trybie prędkości, z zachowaniem informacji o dokładnej pozycji napędu. Serwa posiadają enkodery inkrementalne 3 kanałowe o rozdzielczości 1000 cpr (nadajnik linii TTL). Przy prędkości obrotowej rzędu 7000 rpm jest co obliczać. Napięcie pracy silników to 24V. Maksymalny prąd silników do 3,2A.
Sterownik ma być kontrolowany z zewnątrz, gdyż obliczenie trajektorii ruchu takiego satelity jest potrzebna bardzo duża moc obliczeniowa, po otrzymaniu informacji o położeniu osi z enkoderów, obliczałby niezbędne przesunięcie i prędkość i kierował to info do poszukiwanego sterownika.
Czy ktoś spotkał się ze sterownikami w rozsądnej cenie (do 500 zł za szt.) które są w stanie wysterować te serwa i obsłużyć taki zakres prędkości i częstotliwości? Jedyne sterowniki w rozsądnej cenie jakie znalazłem to duże analogowe B12A6. Znalazłem też sterownik Trinamic TMCM-1640 który jest maleńki, wydajny ale drogi. Może są jakieś rozwiązania DIY? Na codzień bawię się z audio DIY gdzie jest zatrzęsienie tanich i znakomitych układów budowanych przez amatorów. Są takie w świecie serw CNC? Macie jakieś propozycje?
Dzięki i pozdrawiam
Buduję napęd teleskopu astronomicznego który będzie służył m.in. do namierzania i śledzenia tzw. "kosmicznych śmieci". Z oczywistych względów projekt napędu jest oparty na miniaturowych serwach BLDC o mocy nominalnej 30W z przekładniami planetarnymi, z dopuszczalnym momentem do 7,5 Nm. Uzyskanie prędkości obrotowej osi rzędu 17 stopni/sekundę nie stanowi żadnego problemu.
Problem za to jest w doborze odpowiedniego sterowania tymi silnikami. Chyba się na tym wyłożyłem. Gotowe drivery są kosztowne, a niestety wymagania są duże. Przede wszystkim potrzebna jest ogromna dynamika zakresu prędkości gdyż potrzebuję sterować prędkością od 0,2 do 2 obr/min w trybie pozycji od 2 do 7000 obr/min w trybie prędkości, z zachowaniem informacji o dokładnej pozycji napędu. Serwa posiadają enkodery inkrementalne 3 kanałowe o rozdzielczości 1000 cpr (nadajnik linii TTL). Przy prędkości obrotowej rzędu 7000 rpm jest co obliczać. Napięcie pracy silników to 24V. Maksymalny prąd silników do 3,2A.
Sterownik ma być kontrolowany z zewnątrz, gdyż obliczenie trajektorii ruchu takiego satelity jest potrzebna bardzo duża moc obliczeniowa, po otrzymaniu informacji o położeniu osi z enkoderów, obliczałby niezbędne przesunięcie i prędkość i kierował to info do poszukiwanego sterownika.
Czy ktoś spotkał się ze sterownikami w rozsądnej cenie (do 500 zł za szt.) które są w stanie wysterować te serwa i obsłużyć taki zakres prędkości i częstotliwości? Jedyne sterowniki w rozsądnej cenie jakie znalazłem to duże analogowe B12A6. Znalazłem też sterownik Trinamic TMCM-1640 który jest maleńki, wydajny ale drogi. Może są jakieś rozwiązania DIY? Na codzień bawię się z audio DIY gdzie jest zatrzęsienie tanich i znakomitych układów budowanych przez amatorów. Są takie w świecie serw CNC? Macie jakieś propozycje?
Dzięki i pozdrawiam
Tagi:
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 3
- Posty: 1214
- Rejestracja: 15 paź 2007, 00:45
- Lokalizacja: nie ważne
Interesujące jest sterowanie w niskich wartościach tzn jedziemy, zatrzymujemy, a teraz trzeba wykonać poprawkę pozycji - do przodu o parę jednostek.Windforce85 pisze:potrzebuję sterować prędkością od 0,2 do 2 obr/min w trybie pozycji od 2 do 7000 obr/min w trybie prędkości, z zachowaniem informacji o dokładnej pozycji napędu
Po ilu impulsach/krokach czy czymkolwiek obrotnica wykona jakikolwiek ruch. Czy skacze o niekontrolowaną wartość? Czy też wykona ruch przestawczy o ile ten będzie większy niż....? Czy poprawka wygląda tak że się cofamy i ponownie najazd na nową, kilka impulsów dalej położoną pozycję?
Pasjonat
-
Autor tematu - Czytelnik forum poziom 1 (min. 10)
- Posty w temacie: 5
- Posty: 11
- Rejestracja: 07 lut 2015, 09:43
- Lokalizacja: Mińsk Mazowiecki
Właśnie największy problem jest na tych niskich wartościach. Cały mechanizm pracuje w dwóch trybach. Pierwszym trybem jest praca "sleving to desired position" na pełnej prędkości i z dużą mocą, drugim trybem jest praca "keep desired position" na ultra niskich prędkościach i minimalnym zapotrzebowaniu na moc. O ile w świecie CNC "keeping desired position" oznacza że maszyna robi stop przy zadanej pozycji enkodera, to w świecie astronomii nie jest tak prosto. Sfera niebieska jest w ciągłym ruchu. Oznacza, że serwa obu osi muszą wciąż się powoli obracać aby nadążać za ruchem obrotowym nieba. Ruch ten odbywa się w składowej X oraz Y z tempem zmiennym w czasie (funkcja ta jest dość skomplikowana i po każdorazowym "slev to desired position" musi być obliczana od początku dla pewnej ramy czasowej. W tym trybie nie ma zatrzymań i cofania, tylko obrót w jednym kierunku z, można przyjąć, niemal stałą prędkością.
W tym drugim trybie Serwo ma za zadanie obracać osiami w bardzo powolnym tempie, rzędu jednego obrotu na dobę lub mniej.
Jeżeli to tempo będziemy mierzyć tiknięciami enkoderów na wałkach silników i uznamy je za taktowanie układu napędowego (bitrate), to w przypadku mojego systemu mającego 4000 zboczy na obrót wałka silnika bitrate w drugim trybie będzie wynosił od 10 do 100 Hz. Precyzja tego systemu po przełożeniu jest olbrzymia. Mechanicznie nie jest możliwe jej uzyskanie, backlash, niedostateczna sztywność przeniesienia napędu, niedokładność złożenia, wszystko to sumuje się w błąd o 3 rzędy wielkości większy. Jednak jest to potrzebne ze względów software - po kilkudziesięciu "slev'ach" system nie może się rozjechać nawet o 10 sekund kątowych. No i teraz wyobraźcie sobie, że silnik który trzeba kontrolować przy prędkości obrotowej mniejszej niż jeden na minutę, trzeba rozkręcić i kontrolować jego pozycję w trybie pierwszym przy 7000 obr/min... Bitrate wynosi 0,5 MHz jeśli miałoby być liczone po zboczach. Na szczęście przy trybie "sleving" można wykorzystywać sygnał Index z enkodera i po zatrzymaniu za ostatnim Indexem cofać o zadaną wartość, nawet choćby po to by skompensować backlash.
W tym drugim trybie Serwo ma za zadanie obracać osiami w bardzo powolnym tempie, rzędu jednego obrotu na dobę lub mniej.
Jeżeli to tempo będziemy mierzyć tiknięciami enkoderów na wałkach silników i uznamy je za taktowanie układu napędowego (bitrate), to w przypadku mojego systemu mającego 4000 zboczy na obrót wałka silnika bitrate w drugim trybie będzie wynosił od 10 do 100 Hz. Precyzja tego systemu po przełożeniu jest olbrzymia. Mechanicznie nie jest możliwe jej uzyskanie, backlash, niedostateczna sztywność przeniesienia napędu, niedokładność złożenia, wszystko to sumuje się w błąd o 3 rzędy wielkości większy. Jednak jest to potrzebne ze względów software - po kilkudziesięciu "slev'ach" system nie może się rozjechać nawet o 10 sekund kątowych. No i teraz wyobraźcie sobie, że silnik który trzeba kontrolować przy prędkości obrotowej mniejszej niż jeden na minutę, trzeba rozkręcić i kontrolować jego pozycję w trybie pierwszym przy 7000 obr/min... Bitrate wynosi 0,5 MHz jeśli miałoby być liczone po zboczach. Na szczęście przy trybie "sleving" można wykorzystywać sygnał Index z enkodera i po zatrzymaniu za ostatnim Indexem cofać o zadaną wartość, nawet choćby po to by skompensować backlash.
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 3
- Posty: 1214
- Rejestracja: 15 paź 2007, 00:45
- Lokalizacja: nie ważne
7000/min nie jest problemem o ile nie będziesz chciał iść dokładnie na krok przy tej prędkości. Czytanie ilości impulsów przy częstotliwości kilku MHz to zadanie na poziomie elementarza. A skoro licznik udostępnia słowo np 12 lub 16 bitów to po zgrubnym wytraceniu predkości ( sterujesz wstępną pozycją np wg starszego bajtu) dokładne zatrzymanie wykonasz wg niskiego bajtu - byle licznik pozycji dostępny był równolegle
Reszt to układ nadążny sterujacy napędem za sygnałem komparacji licznika poyzcji i wartosci zadanej.
Inaczej mówiąc rozdziel kontrolę pozycji i napęd.
Większym problemem może być graniczna liczba obrotów enkodera - 7000 to sporo dla popularnych wykonań.
Reszt to układ nadążny sterujacy napędem za sygnałem komparacji licznika poyzcji i wartosci zadanej.
Inaczej mówiąc rozdziel kontrolę pozycji i napęd.
Większym problemem może być graniczna liczba obrotów enkodera - 7000 to sporo dla popularnych wykonań.
Pasjonat
-
Autor tematu - Czytelnik forum poziom 1 (min. 10)
- Posty w temacie: 5
- Posty: 11
- Rejestracja: 07 lut 2015, 09:43
- Lokalizacja: Mińsk Mazowiecki
Enkodery w tym silniku pracują mechanicznie do 8000 obr/min, zaś elektrycznie z częstotliwością do 200 kHz (nadajniki linii, TTL). kanały A i B są zsynchronizowane w fazie 90 stopni, mają też dodatkowe wyjścia w fazie odwrotnej. To bardzo ciekawe serwa Maxon, bezszczotkowe, z przekładnią planetarną, które mam właściwie za darmo, wiem że nowe kosztują majątek...
Tylko problem leży w tym, że w odróżnieniu od krokowców i masy przeróżnych sterowników do nich, nikt do serw BLDC nie robi takich małych i sprytnych sterowników. Jedynym co mi przychodzi do głowy to ten Trinamic:
http://www.trinamic.com/products/module ... /tmcm-1640
Tylko że to kupę pieniędzy kosztuje. Nie wiem czy spełni moje wymagania. Datasheet czytałem, soft i support w tej firmie jest bardzo dobry, ale wciąż nie mam pewności czy po podłączeniu to wszystko uda się skonfigurować i zestroić.
System ten ma być bardzo kompaktowy, w zasadzie "niewidzialny" ale też wydajny. Zasilanie z pakietu Li-Ion przy każdym module silnika i sterownika. Po obliczeniu kinematyki napędu i zapotrzebowania na moc od razu skreśliłem krokowce, choć na biurku leżą piękne Shinano NEMA 23 mające 1,41 Nm momentu trzymającego przy 1,7A. Po prostu nie wytrzymują konkurencji z BLDC...
Tylko problem leży w tym, że w odróżnieniu od krokowców i masy przeróżnych sterowników do nich, nikt do serw BLDC nie robi takich małych i sprytnych sterowników. Jedynym co mi przychodzi do głowy to ten Trinamic:
http://www.trinamic.com/products/module ... /tmcm-1640
Tylko że to kupę pieniędzy kosztuje. Nie wiem czy spełni moje wymagania. Datasheet czytałem, soft i support w tej firmie jest bardzo dobry, ale wciąż nie mam pewności czy po podłączeniu to wszystko uda się skonfigurować i zestroić.
System ten ma być bardzo kompaktowy, w zasadzie "niewidzialny" ale też wydajny. Zasilanie z pakietu Li-Ion przy każdym module silnika i sterownika. Po obliczeniu kinematyki napędu i zapotrzebowania na moc od razu skreśliłem krokowce, choć na biurku leżą piękne Shinano NEMA 23 mające 1,41 Nm momentu trzymającego przy 1,7A. Po prostu nie wytrzymują konkurencji z BLDC...
-
Autor tematu - Czytelnik forum poziom 1 (min. 10)
- Posty w temacie: 5
- Posty: 11
- Rejestracja: 07 lut 2015, 09:43
- Lokalizacja: Mińsk Mazowiecki
Mechaniki jeszcze nie robiłem, mam ogrom pracy przy przekształceniach układów współrzędnych astronomicznych, i pracuję nad algorytmem do ręcznego kontrolera, który tym wszystkim będzie sterował... Dostaje katalog obiektów lub elementy orbitalne satelity, zna ich pozycje w układzie współrzędnych równikowych, potem przekształca w układ topocentryczny, a następnie nakłada korekcję wypoziomowania podstawy teleskopu i modelowanie ugięć, które sobie bierze z gwiazd kalibracyjnych, które mu trzeba wycentrować w polu widzenia. Na bazie tej informacji indexuje sobie enkodery serwa pozycją w astronomicznym układzie współrzędnych. Przecież sterownika serwa nie obchodzi astronomia, on chce wiedzieć tylko o ile przesunąć w X i o ile w Y. Samo przeniesienie napędu jest banalne. Nie ma tu i nie będzie skomplikowanej mechaniki. O dziwo nadzwyczaj dobrze spisuje się moletowana rolka ze stali nierdzewnej zamontowana na wyjściu planetarnej przekładni, która napędza bezpośrednio duże koło wykonane ze sklejki, pokryte cienką warstwą gumy. Poślizg który występuje w tym układzie jest łatwo kontrolowany i przewidywalny - właściwie nie jest zależny od momentu obrotowego obciążającego oś, nie martwię się współczynnikiem temperaturowym, smarowaniem, pyłem, wilgocią, wartością docisku, gdyż np rolka osi obrotu w pionie jest jednocześnie punktem podparcia ciężaru teleskopu. Sztywność przeniesienia napędu jest ogromna, luz niewielki i za te pieniądze nie da się zrobić tego lepiej. Czasem robi się to z pomocą stalowej linki i gładkiej rolki, jak poniżej. Zdjęć jeszcze nie mam, za to poniżej kilka "gotowców" z USA:
A my tu, w Polsce, sterować będziemy takim oto cudem:
A my tu, w Polsce, sterować będziemy takim oto cudem:
-
Autor tematu - Czytelnik forum poziom 1 (min. 10)
- Posty w temacie: 5
- Posty: 11
- Rejestracja: 07 lut 2015, 09:43
- Lokalizacja: Mińsk Mazowiecki