Sterowniki Małego Serwa BLDC DIY

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

Autor tematu
Windforce85
Czytelnik forum poziom 1 (min. 10)
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

#1

Post napisał: Windforce85 » 07 lut 2015, 10:17

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



Tagi:


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

#2

Post napisał: ma555rek » 07 lut 2015, 13:18

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
Interesujące jest sterowanie w niskich wartościach tzn jedziemy, zatrzymujemy, a teraz trzeba wykonać poprawkę pozycji - do przodu o parę jednostek.
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
Windforce85
Czytelnik forum poziom 1 (min. 10)
Czytelnik forum poziom 1 (min. 10)
Posty w temacie: 5
Posty: 11
Rejestracja: 07 lut 2015, 09:43
Lokalizacja: Mińsk Mazowiecki

#3

Post napisał: Windforce85 » 07 lut 2015, 14:01

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.


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

#4

Post napisał: ma555rek » 07 lut 2015, 14:16

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ń.
Pasjonat


Autor tematu
Windforce85
Czytelnik forum poziom 1 (min. 10)
Czytelnik forum poziom 1 (min. 10)
Posty w temacie: 5
Posty: 11
Rejestracja: 07 lut 2015, 09:43
Lokalizacja: Mińsk Mazowiecki

#5

Post napisał: Windforce85 » 07 lut 2015, 14:33

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...


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

#6

Post napisał: ma555rek » 07 lut 2015, 15:22

Masz już coś zrobione?
Wiesz, jeden ogląda pornosy i go nie odciągniesz a ja podobnie się ślinię na mechanikę.
Jakieś zdjęcia może???? :grin:
Pasjonat


Autor tematu
Windforce85
Czytelnik forum poziom 1 (min. 10)
Czytelnik forum poziom 1 (min. 10)
Posty w temacie: 5
Posty: 11
Rejestracja: 07 lut 2015, 09:43
Lokalizacja: Mińsk Mazowiecki

#7

Post napisał: Windforce85 » 07 lut 2015, 16:45

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:

Obrazek

Obrazek

Obrazek

Obrazek

A my tu, w Polsce, sterować będziemy takim oto cudem:

Obrazek


Autor tematu
Windforce85
Czytelnik forum poziom 1 (min. 10)
Czytelnik forum poziom 1 (min. 10)
Posty w temacie: 5
Posty: 11
Rejestracja: 07 lut 2015, 09:43
Lokalizacja: Mińsk Mazowiecki

#8

Post napisał: Windforce85 » 21 kwie 2015, 14:57

Naprawdę nikt nie spotkał się ze sterownikami do małych serw BLDC? Nie wierzę że produkuje się tyle serw na silnikach bezszczotkowych np. do robotyki a nie ma na rynku normalnie kosztujących sterowników? :)

Trinamic, Elmo, Leadshine, Wobit, coś gdzieś jeszcze?

ODPOWIEDZ Poprzedni tematNastępny temat

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