Rotacja śledzenia z bardzo wysoką dokładnością

14

Chciałbym śledzić położenie kątowe dość wolno napędzanego ramienia obrotowego z napędem silnikowym (napęd bezpośredni; patrz rysunek poniżej) - ale wymagam dokładności kątowej poniżej 0,05 ° i podobnej rozdzielczości.

Jak zauważył @bulter w komentarzach, jest to równoważne śledzeniu wierzchołka ramienia w pozycji wzdłuż obwodu, z dokładnością (2 × π × 10 cm) / (360˚ / 0,05) = 0,08 mm.

rysunek

Czy istnieje jakiś możliwy do zrealizowania czujnik lub metoda elektroniczna, które mogą osiągnąć ten poziom dokładności w wykrywaniu obrotowym bez wydawania fortuny?


Do tej pory próbowałem, od najprostszych do skomplikowanych:

  • Cyfrowy kompas / magnetometr: Zacząłem od tego; ale oczywiście nigdzie w pobliżu występu, którego szukam.

  • Kodowanie obrotowe: Kodowanie na podstawie potencjometru / czujnika Halla: Nie można uzyskać wystarczającej rozdzielczości i występuje znaczny błąd liniowości.

  • Wizja maszynowa: Próbowałem umieścić znacznik optyczny na końcu ramienia (ponieważ końcówka śledzi najdłuższy łuk) i użyć kamery (OpenCV) do śledzenia pozycji znacznika: nie mogłem tak dobrze rozwiązać bardzo małych obrotów, biorąc pod uwagę zakres obrotu ramienia obszar 10x10 cm.

  • Enkoder magnetyczny: Obecnie badam zastosowanie AS5048, magnetycznego enkodera obrotowego od AMS, umieszczonego ze środkiem czujnika w pozycji wału silnika. Coś takiego:

wprowadź opis zdjęcia tutaj

Sasha
źródło
1
Dlaczego nie rozważyć enkodera wału (może być również magnetyczny)? Kodery kwadraturowe mogą mieć dość wysoką precyzję. Weź jedną z 2000 linii. Po kwadraturze będzie to 8000 impulsów na obrót. Rozdzielczość 360/8000 = 0,045 stopnia
Eugene Sh.
BTW, czy system jest nastawiony?
Eugene Sh.
@EugeneSh: System nie jest ukierunkowany. Napęd bezpośredni. Problem z obrotowymi enkoderami położenia, o ile widziałem, polega na tym, że chociaż ich rozdzielczość jest wysoka, brakuje ich dokładności . Na przykład błąd magnetycznego enkodera obrotowego może wynosić nawet 1 stopień, w oparciu o arkusze danych. Czy kodery optyczne, które widziałeś, są znacznie lepsze w tym sensie?
sasha
Aby sprawdzić, zrozumiałem, obliczam, że chcesz znać pozycję końcówki ramienia do rozdzielczości i dokładności która wynosi 0,008 cm lub 80 µm. Czy to jest poprawne? Czy silnik jest w stanie osiągnąć taką dokładność? (2)×π×10dom)/(360˚/0,05)
żaglowiec
3
Chcesz podzielić się swoim prawdziwym problemem tutaj? Być może rozwiązanie jest znacznie prostsze i leży na innej płaszczyźnie.
Eugene Sh.

Odpowiedzi:

12

To, co robisz, jest możliwe, ale nie rozumiem, jak to zrobisz tanio.

0,05 stopnia (3 minuty łuku) oznacza rozdzielczość 7200 zliczeń / obr. Lub równoważną 13 bitów (8192). Co gorsza, ponieważ próbujesz utworzyć pętlę pozycji, potrzebujesz co najmniej jednej dodatkowej rozdzielczości lub 14-bitowego systemu. Problem polega na tym, że twoja pętla pozycji nie może wykryć błędu mniejszego niż jeden bit, więc jeśli ramię zacznie dryfować, czujnik kąta go nie wykryje, dopóki sygnał wyjściowy nie zostanie wyłączony. Pętla pozycji spowoduje cofnięcie ramienia w drugą stronę i zatrzyma je, gdy błąd spadnie do zera. Pozwoli to jednak na wychylenie ramienia w drugą stronę, dopóki nie zostanie zliczone w przeciwnym kierunku itp. Tak więc, na przykład, jeśli chcesz, aby ramię utrzymywało liczbę czujników równą 100, system może produkować 100, 101, 100 , 99, 100 itp.

Sugeruję, że koder optyczny jest najlepszym rozwiązaniem, ale koder 14-bitowy (16 384 ppr) nie będzie tani. Inną możliwością jest resolver lub synchro, z RDC lub SDC (przelicznik / konwerter cyfrowy lub synchro / cyfrowy konwerter) jako drugą możliwość, ale będzie to kosztować jeszcze więcej. Synchros / resolwery mają 2 wady. Po pierwsze, zostały one ogólnie zastąpione przez kodery optyczne, więc na rynku znajdziesz głównie nadwyżki. Po drugie, dokładność zwykle nie jest wystarczająca. Rozdzielacze rozmiaru 23 są zwykle oceniane na około 5-10 minut łuku, więc potrzebujesz jednostki o wysokiej precyzji i powodzenia w jej znalezieniu.

Inductosyns zapewnia wyjątkową rozdzielczość i dokładność, ale będzie kosztować nawet więcej niż koder optyczny. Zasadniczo potrzebujesz szybkiego RDC do odczytu danych wyjściowych.

Twoje obawy dotyczące dokładności enkodera optycznego opierają się na papierze konkretnego producenta, ale jest to zasadniczo element odstraszający. Możliwości błędu są takie same dla każdego producenta, a powiązany producent nie jest w żaden sposób lepszy niż inni producenci. Zasadniczo w przypadku enkoderów precyzyjnych dokładność jest taka sama jak rozdzielczość.

Chociaż możliwe jest uzyskanie enkoderów optycznych z równoległymi wyjściami, prawdopodobnie lepiej będzie z enkoderem inkrementalnym i przewijaniem własnego licznika góra / dół. Jeśli wybierzesz tę trasę, użyjesz sygnału „home”, aby zresetować licznik pozycji za każdym razem, gdy włączasz system.

WhatRoughBeast
źródło
Dzięki za wyważoną, realistyczną odpowiedź. Wygląda na to, że powinienem dać strzał kodowaniu optycznemu / inkrementalnemu, a jeśli to zadziała, jesteśmy dobrzy. Byłbym również ciekawy, jakie są twoje przemyślenia na temat podejścia, które nakreśliłem w poprzednim akapicie, używając liniowego enkodera magnetycznego wraz z wielobiegunowym pierścieniem magnetycznym zalecanym w arkuszu danych enkodera.
sasha
@sasha - Myślę, że musisz bardzo uważnie przyjrzeć się procesowi wymaganemu do wytworzenia pierścienia magnetycznego. Wątpię, czy będziesz w stanie zrobić to sam. Chociaż karta danych sugeruje, że można zastosować raczej łagodne tolerancje, byłbym bardzo ostrożny wobec każdego takiego „czegoś za nic”. Co więcej, jeśli nie masz możliwości weryfikacji dokładności do 3 min / 80 mikronów, myślę, że lepiej jest pozwolić profesjonalistom radzić sobie z możliwymi nieścisłościami. Pamiętaj o powiązanym papierze.
WhatRoughBeast
Odnotowany! Powiedziawszy to, powinienem był wyjaśnić: zamierzałem użyć kompatybilnego (wielobiegunowego) pierścienia magnetycznego przepisanego przez samą AMS w karcie danych AS5311; to jest pierścień: ams.com/eng/Products/Position-Sensors/Magnets/AS5000-MR10-128
sasha
@sasha - W porządku, ale mam problem z tym, jak zamontować pierścień dokładnie koncentrycznie z osią wału. Każda mimośrodowość pojawi się w odzyskanym kącie.
WhatRoughBeast
4

Myślę, że to, co sugeruje OP, wcale nie jest złym pomysłem. To, czego chce użyć, to gotowy pierścień: http://ams.com/eng/Products/Position-Sensors/Magnets/AS5000-MR10-128 , ma 128 biegunów = 64 pary biegunów. Rozdzielczość wynosi 16 bitów = 65536, maks. 305 obr./min.
Po rozłożeniu enkodera optycznego o wysokiej rozdzielczości okaże się, że ustawienie detektora bez specjalnych narzędzi jest prawie niemożliwe, w rzeczywistości zastosowanie tej nowej metody czyni to bardzo prostym.
Potrzebujesz tokarki, aby dobrze dopasować się do pierścienia, a następnie umieść czujnik w bliskiej odległości, nie jest wymagane specjalne wyrównanie. Sam czujnik występuje w wersjach zestawu już przylutowanych na płytce zabezpieczającej, potrzebny byłby dodatkowy czujnik referencyjny - przerwa z fotodetektorem, po czym można odwoływać się do enkodera w ramach jednej pary biegunów za pomocą kombinacji sygnału wyjściowego + czujnika zewnętrznego odniesienia.

Marko Buršič
źródło
„Dodatkowy czujnik odniesienia” służy tylko do położenia bezwzględnego, prawda? (podobny do wyłącznika krańcowego w przypadku ruchu krokowego CNC). Czy potrafisz także wyjaśnić swoją sugestię dotyczącą zastosowania „tokarki w celu odpowiedniego dopasowania”? Masz na myśli rowek, w którym może usiąść pierścień? Jeśli tak, to jak zapewnić, że rowek znajduje się w idealnej pozycji, skoro samo cięcie CNC może nie być tak dokładne?
sasha
@sasha Tokarka do montażu pierścienia magnetycznego, zewn. czujnik wykrywający odniesienie. Czujnik zewn. + Impuls zerowy z enkodera zapewni, że zawsze będziesz mieć takie samo bezwzględne odniesienie, które w twoim przypadku może nie być potrzebne. Zrobiłem mocowanie LIDAR z wykorzystaniem krokowych mikroprocesorów i przekładni planetarnych, bez sprzężenia zwrotnego - jedynym położeniem absolutnym były wyłączniki krańcowe, aby zapobiec odwróceniu i zerwaniu kabli. Załóżmy, że będziesz musiał odwoływać się do określonego obiektu, a następnie wykonywać ruchy względne, w ten sposób działa LIDAR, jeśli tak nie potrzebujesz pozycji zerowej odniesienia.
Marko Buršič
4

Ponieważ jest to burza mózgów, a WhatRoughBeast wspomniało już o wszystkim, co bym rozważył, dlaczego nie dodać napędów harmonicznych do listy? Teoretycznie (nie sprawdziłem szacunków empirycznych ani pierwszych obliczeń) pozwala to łatwo uzyskać współczynnik przełożenia 20: 1 bez żadnego luzu (częstość 100: 1), zmniejszając liczbę wymaganych kroków do 720 / obr. . Może to być coś, na co warto spojrzeć. Napędy harmoniczne nie są tanie, ale ogólnie są znacznie tańsze niż czujniki o wysokiej rozdzielczości, szczególnie w przypadku tego przełożenia.

Pan Mystère
źródło
3

Jeśli potrzebujesz rozdzielczości na wale wyjściowym odpowiadającej 13-bitowi, potrzebujesz więcej dodatkowych bitów, co najmniej 1-bit dla sterowania w pętli zamkniętej jest koniecznością. Kolejnym problemem jest to, że producenci reklamują rozdzielczość, ale nie reklamują dokładności . Musisz nieustannie prosić o dokładność. Jeśli błąd jest powtarzalny, można poprawić za pomocą korekcji programowej.

Kolejny problem, jeśli potrzebujesz solidnego rozwiązania zewnętrznego. Jeśli tak, enkoder magnetyczny jest opcją. Jednak enkoder magnetyczny może mieć znaczny powtarzalny błąd okresowy, który należy wyeliminować w procesie kalibracji za pomocą innego optycznego enkodera. Potrzebujesz jednak przyrządu o jeszcze większej precyzji.

Interpolacja sin / cos (optyczna lub magnetyczna) zwiększa rozdzielczość, ale także dodaje losowy błąd.

Musisz być w stanie produkować z pożądaną dokładnością, szczególnie koncentrycznością. Należy również wziąć pod uwagę szerokość pasma, ponieważ przy zwiększaniu rozdzielczości szybszy ruch może przekroczyć dozwoloną szerokość pasma (np. Częstotliwość wyjściową kwadratury). Przeciwnie, kontrola ultra zwolnionego tempa jest dyscypliną, w której można znaleźć ciekawe niepublikowane problemy.

Jeśli potrzebujesz obrotu ramienia sterującego (nie tylko położenia gąsienicy), problem stanowi rozdzielczość napędu bezpośredniego i momentu obrotowego. Podwójna pętla pomaga kontrolować, ale wymaga silnika (enkoder w przypadku skrzyni biegów lub liczenia kroków w przypadku silnika krokowego) i wykrywania położenia wału.

Enkoder inkrementalny vs. absolutny jest również podstawową decyzją.

Ogólna rada jest taka: jeśli chcesz zakończyć projekt, użyj profesjonalnych komponentów, które są drogie (np. Enkodery optyczne ATOM firmy Renishaw). Jeśli grasz dla przyjemności, a czas nie jest ważny, możesz odkrywać nowe problemy (ślepa uliczka), odkrywać problemy, których nie można przeszukiwać itp. Sprawdź dwukrotnie, czy możesz produkować aparaty z wymaganą precyzją.

TMa
źródło
3

Wydaje się, że idealnie nadaje się do suwmiarki cyfrowej, zwykle używanej do pomiaru dokładnych odległości, patrz:

Jak działa suwmiarka elektroniczna?

Są one podobne do enkoderów pojemnościowych (które już widzieliście w http://www.digikey.com/en/articles/techzone/2012/apr/a-designers-guide-to-encoders ).

Elektroniczna część liniowego suwmiarki cyfrowej może być prawdopodobnie ponownie użyta, więc wystarczy wykonać tylko ćwierć tarczę z odpowiednim wzorem.

PS: Precyzja pozwala nawet na pracę z gotową liniową.

użytkownik103185
źródło
2

Oto mój nowy pomysł, jeszcze jedna historia silnika krokowego :-)

wprowadź opis zdjęcia tutaj

Kliknij animowany obraz, aby zobaczyć nieskróconą pełną rozdzielczość. Tutaj używasz silnika krokowego jako linijki podróżującej. Na czubku głównej ręki znajduje się magnes. Czerwone linie pokazują oczekiwany kierunek strumienia magnetycznego. Zakładając, że silnik krokowy jest podobny do tego na wikipedii. Ma 3,6 stopnia jednego pełnego kroku. Aby uzyskać możliwie liniową część pola, potrzebujesz 3,6 / 0,05 = 72 kombinacji 7 bitów. Oznacza to, że 10-bitowy ADC zwykłego MCU bardzo dobrze wykona zadanie dla większego zakresu nieliniowego. Po wykonaniu mechanizmu przeanalizuj wzór zbliżeniowy i wybierz najbardziej liniową część, przy pomocy oprogramowania mapującego linearyzuj go i wybierz granice linijki dla tego konkretnego ustawienia.

Silniki krokowe nie są idealne. Według wikipedii mogą wykazywać do 5% wariancji między zębami. Aby zmierzyć błąd, możesz rozszerzyć pierwotne granice linijki o granice drugorzędne, które muszą jedynie podążać za wzorem gradientu z poprzedniej analizy granicy sąsiedniej.

Ponadto powinieneś lepiej prowadzić silnik krokowy z mikrostopem, aby uniknąć przyspieszeń +/-, które mogą wpływać na skale konfiguracji, myślę, że przynajmniej musisz zrobić pół kroku.

Ayhan
źródło
Silniki krokowe raczej nie będą lepsze niż enkodery - a mikrostepowanie jest zwykle nieliniowe.
Chris Stratton,
Mikrostepowanie nie służy do odniesienia do niczego, nie jest wymagane statyczne pośrednie stopniowanie. Służy to unikaniu przyspieszenia. @ChrisStratton
Ayhan
1

Zajmując się mechaniką, najpierw zacznij od mechaniki.

wprowadź opis zdjęcia tutaj

Obracając duży bieg (R2) o kąt, mały bieg (R1) obraca się o kąt R2 / R1 razy większy.

Dlatego jeśli masz do czynienia z bardzo ekstremalną dokładnością kąta na danym promieniu (R), możesz poradzić sobie z n-krotnie większą dokładnością kąta na n-krotnie mniejszym promieniu (tj. R / n).

W twoim przypadku możesz zainstalować duży bieg na osi ramienia i dołączyć mniejszy bieg, a następnie podłączyć mniejszy czujnik do małego.

Wiele innych metod zmiany biegów jest znanych i przydatnych, zacznij od wiki .

asndre
źródło
Wprowadza luz, a problemem jest precyzyjna produkcja. Innymi słowy, zdecydowanie zwiększa dokładność, ale ważna jest dokładność.
TMa
1

Powinieneś zrobić drugi mechanizm na krawędzi dłoni, aby podzielić kroki środka za pomocą mechanizmu liniowego, takiego jak w układzie optycznym sterownika CD-ROM. W ten sposób może być łatwiejsze i bardziej wystarczające wdrożenie całego systemu jako otwartej pętli, również poprzez zastosowanie silnika krokowego na środku i napędzanie go przez mikrostop, aby uniknąć bardzo dużych wielkości przyspieszenia.

Ayhan
źródło
1

Fizyczne ograniczenia przestrzeni wokół ruchomego ramienia mogą wykluczyć to rozwiązanie, ale oto jesteś - kolejne tanie podejście do widzenia maszynowego. Dokładność można regulować, zmieniając powiększenie obiektywu. inne podejście do wizji komputerowej

szulat
źródło
0

Nie wiem, co uważasz za fortunę, ale możesz rozważyć http://www.inductosyn.com/

Pola EM
źródło
+ Już miałem pisać, aby rozważyć resolwery lub RVDT
JonRB
3
To dość słaba odpowiedź, która zasadniczo jest tylko linkiem. Najlepiej, jeśli możesz trochę wyjaśnić, z czym się łączysz.
tcrosley,
@ tcrosley: W tym przypadku, zamiast zapewnić w pełni dopracowany projekt i wyczerpujący opis obwodu, (jak to zwykle mam w zwyczaju) postanowiłem podać link, ponieważ nawiązuje on do urządzenia / systemu zdolnego do rozdzielenia 360 stopni na 7200 części na stopień kąta i pozostawił większość pracy nóg i wysiłku projektowego OP. Dlaczego to sprawia, że ​​jestem złym facetem?
EM Fields
2
@EMFields Mój problem nie polegał na tym, że nie dostarczyłeś własnego projektu, zamiast tego nie jest dobrym pomysłem, aby opublikować tutaj link jako odpowiedź, ponieważ w pewnym momencie może się zepsuć - należy opublikować zarówno link, jak i jakiś tekst towarzyszący, aby czytelnik mógł wyszukać podobny produkt lub technologię, nawet jeśli link nie jest już prawidłowy. W twoim przypadku zamieściłeś link do strony głównej firmy, która rzadziej się zepsuje. Zobacz „Podaj kontekst dla linków” na tej stronie .
tcrosley,
1
@ tcrosley: Doceniam twój punkt widzenia, ale sama nazwa marki „Inductosyn” (która może być już zbliżona do ogólnego terminu) powinna szczerze zapytać o drogę do oświecenia, niezależnie od tego, czy cel łącza jest żywy czy martwy. Google „Inductosyn”, a zobaczysz, że jest o wiele więcej informacji, niż chciałbym spędzić wieczorne papugowanie.
EM Fields
0

Inną bardzo interesującą opcją, jeśli twoje ramię regularnie przechodzi do początkowej (spoczynkowej) pozycji, jest użycie myszy optycznej (do grania), a ściślej systemu wykrywania.

Zamontuj czujnik na czubku ramienia i zapewnij dobre (drobnoziarniste, nie odbijające) tło do przesuwania się. Odczytaj dane za pomocą standardowego interfejsu myszy USB.

Będziesz potrzebował prostego czujnika do kalibracji pozycji początkowej. Trzeba będzie eksperymentować, aby sprawdzić, czy to działa wystarczająco dobrze. Powinien działać głównie niezależnie od pyłu i jest łatwy w utrzymaniu.

użytkownik103185
źródło
0

Być może możesz rozważyć użycie liniowego enkodera optycznego na końcu ramienia obrotowego i użyć elastycznego kodu paskowego, takiego jak ten , który ma do 2000 linii na cal. Jeśli chcesz przejść bardzo tanio, możesz użyć enkodera liniowego takiego jak ten , ale zwiększa on jedynie do 150 linii na cal, a więc rozdzielczość 40 mikronów (ponieważ jest to enkoder kwadraturowy). Jeśli nie jesteś wrażliwy na drgania w systemie napędowym, możesz użyć tego od razu. W przeciwnym razie możesz wyciągnąć ramię pod swoją aplikację i wysunąć kod dalej. Możesz nawet wydrukować własny kod, jeśli masz drukarkę o rozdzielczości DPI 1000 lub większej.

Powodzenia!

Madcowswe
źródło