Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Żyroskop i błąd całkowania

11 Lip 2011 09:12 4405 18
  • Poziom 19  
    Witam,

    Wykorzystuje żyroskop jednoosiowy LISY300AL.
    Podczas całkowania (tak mi się przynajmniej wydaje) akumuluje się błąd.

    Wysterowuje sobie serwo modelarskie (symetryczne wychylenia) i mogę stwierdzić, że po kilku ruchach, aby osiągnąć pozycję neutrum muszę przekręcać żyroskop coraz bardziej w jedną stronę.

    Czym takie zachowanie może być spowodowane?

    Wyliczanie kąta odbywa się w ten sposób:

    α = ω * t + α0

    gdzie t to kwant czasu; przy próbkowaniu 1kHz wynosi 0,001 s

    Jestem otwarty na wszelkie (merytoryczne) propozycje.

    Czytałem, że można użyć filtru Kalmana jednakże tylko o tym czytałem. Czy jego zastosowanie wyeliminowało by błąd?
  • Poziom 35  
    Spowodowane jest to błędami żyroskopów elektronicznych i bez dodatkowych elementów nic na to nie poradzisz.
    Zmiana położenia punktu "zero" w tych żyroskopach jest zależna m.in. od czasu i temperatury, dlatego nie jesteś wstanie tego idealnie skalibrować. Możesz ten błąd wyeliminować poprzez zastosowanie dodatkowo akcelerometru. Żyroskop wtedy przedstawia szybkie zmiany obrotu natomiast akcelerometr stale podaje kierunek grawitacji (o ile na obiekt nie działają inne siły). Dobrym filtrem (np. Kalmana) robisz fuzję obu wyników i otrzymujesz stale dokładny wynik z małymi błędami (ponieważ błąd całkowania po czasie jest eliminowany przez poprawne dane z akcelerometru).

    Jeżeli obroty są wolne i na obiekt nie działają inne znaczne przyśpieszenia to możesz używać tylko akcelerometru, bo żyroskop wtedy nic ciekawego nie wniesie do wyniku.

    Zapraszam do przejrzenia mojej oferty w sklepie, znajdziesz tam m.in. akcelerometry.
  • Poziom 14  
    Tylko jak wcześniej zauważył MirekCz na akcelerometr musi działać siła od grawitacji. Inne przypadki są trudniejsze do przeanalizowania.

    Napisz coś więcej o układzie (zdjęcia)
  • Poziom 19  
    A czy w przypadku kiedy na cialo nie dzialaja zadne sily (tylko grawidacja w kierunmu poziomym) to akcelerometr sie nam nie przyda. Cialo moze byc zawieszone w przestrzeni i wirowac. Co w takim przypadku?
    Akcelerometr nie bedzie w stanie w takiej sytuacji pomoc. Wtedy rowniez moga wystapic drifty. W jaki sposob mozna to wyeliminowac i czy w ogole. Lepszy zyroskop (dokladniejszy) nie spowodujw, ze bledy znikna, tylko beda mniejsze.
    Moze blad tez jest spowodowany operacjami zmiennoprzecinkowymi w uC?
  • Poziom 14  
    Da się zrobić tylko układ będzie trochę bardziej skomplikowany. Można odsunąć akcelerometry (żyro pomiędzy) od siebie i mierzyć przyspieszenia liniowe i odśrodkowe i na tej podstawie np. przy dodatkowym użyciu FK liczyć obrót.

    W segway masz kilka żyroskopów ustawionych pod różnym kątem do siebie. Temat jest bardzo ciekawy. Od rozwiązań prostych do bardzo skomplikowanych.

    Spróbuj uśredniać wyniki z gyro. Dodaj 16 pomiarów i przesuń bitowo wynik o 4 (>>4)
  • Poziom 35  
    Uśrednianie wyników z żyroskopu nic nie da, bo tutaj chodzi o dryft a nie o niedokładność pomiaru.

    y0yster: Jak działa tylko siła grawitacji to wtedy akcelerometr się przyda najbardziej, bo nie zakłócają jego wyniku inne siły. Do tego możesz dodać magnetometr (czujnik pola magnetycznego - też w mojej ofercie) dzięki czemu będziesz miał kompletny system odniesienia (samym akcelerometrem nie poprawisz wyników kierunku obrotu w poziomie)
  • Poziom 19  
    Czy jest może jakiś inny sposób na niwelowanie błędów całkowania?
    Może nieustanna kalibracja punktu zera i zerowanie warunku początkowego?

    Z tego co zauważyłem warunek początkowy rośnie cały czas w jedną ze stron. Co wymusza mocniejszy skręt w jedną ze stron. W ten sposób mogę wykonać nawet kilka pełnych obrotów, po dłuższym czasie działania.

    Jako doraźne rozwiązanie użyłem pogowania oraz skalowania wartości jaką otrzymuję z akcelerometru. Natomiast nie jest to satysfakcjonujące (jak już wyżej opisałem).

    Jeśli chodzi o zastosowanie akcelerometru jednak ma to sens. Jeden z kolegów podsuną pomysł odsunięcia czujników, a pomiędzy nie wsadzić żyroskop.
    Myślę, że wystarczy sprzęgnąć oba czujniki (żyro. i akcel.), następnie po włączeniu określić przyspieszenie (obiekt nie może się poruszać). Jeśli będzie zerowe to nie bierzemy danych z żyro. pod uwagę. Co innego, gdy wystąpi przyspieszenie, a następnie opóźnienie. Pomiędzy tymi dwoma "sytuacjami" obiekt może nabrać jakiejś prędkości i się obracać. Wtedy należy uwzględnić wskazania żyroskopu.

    W związku z powyższym wnioskiem nasuwa się pytanie. Czy akcelerometr będzie na tyle dokładny, aby na nim opierać swoje dalsze pomiary? Chodzi mi o niwelowanie błędów żyroskopu.
  • VIP Zasłużony dla elektroda
    Helikopterowe żyra potrafią ogonek utrzymać w jednym miejscu bez akcelerometru i dryf jest nieznaczny, w tych najlepszych znikomy.
    - całkowanie trapezowe.
    - kompensacja temperaturowa.
    - estymator, który będzie w stanie określić dryf na podstawie jego charakterystyki i zniwelować jego wpływ.

    Wszystko zależy od tego do czego chcesz użyć tego stabilizatora. Dwa akcelerometry mierzące siły odśrodkowe obawiam się że nic nie dadzą, bo dryf jest zbyt niewielki żeby można to było wykryć.
  • Poziom 19  
    Na sam początek chciałem żyroskopem badać (dokładnie) zmianę kąta.

    Pisząc "helikopterowe żyra" miałeś na myśli żyroskopy RC, czy "gołe" układy?
  • VIP Zasłużony dla elektroda
    Żyroskop modelarski - popularnie zwany żyrem, jak choćby Futaba G-240 itp. Goły układ (MEMS< piezo) bez dobrego estymatora nie jest nic warty. Dlatego za dobre żyra trzeba dużo płacić.
  • Poziom 35  
    Tak, akcelerometr będzie na tyle dokładny i każdy tak robi.

    Możesz też użyć filtru dolnoprzepustowego i z niego określać punkt zera dla żyroskopu. Zdecydowanie zmniejszy to dryft, ale nigdy go nie wyeliminuje tak, żeby pozycja "na wprost" po jakimś czasie nadal była "na wprost"

    Tak jak pisze McRancor są sposoby na zmniejszenie błędu zera nie wymagające dodatkowego układu odniesienia, ale to tylko zmniejszy błąd i nigdy go nie wyeliminuje.

    PS. Cyfrowe akcelerometry/żyroskopy zazwyczaj mają już zaimplementowaną przynajmniej pobieżną kompensację temperaturową.
  • VIP Zasłużony dla elektroda
    Nie zamierzam się sprzeczać, ale żeby wykryć dryf na poziomie 1st/s. trzeba by mieć żyroskopy albo bardzo daleko od siebie, albo bardzo czułe w idealnym środowisku. Z tego co pamiętam były w KoNaRze robione takie próby "taniej alternatywy dla żyroskopów" i zakończyły się fiaskiem. Szybkie obroty wokół osi jako tako dało się wykryć, ale żadne inne. Stwierdzono że to działa tylko na papierze i szkoda na to czasu.
  • Poziom 14  
    Wspomniałem o tym, ale do określania dryfu raczej się nie nadaje. Wskazania były by na poziomie szumów, albo wogole były poza rozdzielczością. Prędzej rozwiązanie jak wcześniej napisałem używane w segway.
  • Poziom 19  
    MirekCz napisał:

    Możesz też użyć filtru dolnoprzepustowego i z niego określać punkt zera dla żyroskopu. Zdecydowanie zmniejszy to dryft, ale nigdy go nie wyeliminuje tak, żeby pozycja "na wprost" po jakimś czasie nadal była "na wprost"


    Masz na myśli zbieranie kilku próbek i ich uśrednianie? Tzn. (an-1 + an)/2 i tak cały czas. Czy coś innego?

    McRancor napisał:
    "taniej alternatywy dla żyroskopów"


    Co masz na myśli?

    Suma summarum muszę zastosować drugi układ i albo prosta eliminacja błędu, albo użycie filtru Kalmana. Czy mam rację? Pisząc "prosta eliminacja błędu" nie będzie, aż taka prosta, bo będzie trzeba troszeczkę policzyć, aby to miało sens i działało.
  • VIP Zasłużony dla elektroda
    Musisz zastosować estymator tak czy siak. Filtr kalmana powinien się do bardzo dobrze tego nadać, tylko musisz dobre parametry dobrać.

    Proste uśrednianie próbek nic tu nie da, poza rozmyciem sygnału.

    Ta tania alternatywa dla żyroskopów to właśnie miały być dwa żyra oddalone od siebie ;)

    Ja na Twoim miejscu zacząłbym od kalmana, bez dodawania czegokolwiek.

    PS. Kupa teorii za tym stoi - przypomnisz sobie ciężką matmę ;)
  • Poziom 19  
    McRancor napisał:
    Ja na Twoim miejscu zacząłbym od kalmana, bez dodawania czegokolwiek.


    Z tego co czytałem o filtrze Kalmana, to czy on nie wymaga danych z innego czujnika? W fazie korekcji korzystając z fizycznych zależności korygowana jest wartość nas interesująca.
  • VIP Zasłużony dla elektroda
    Filtr Kalmana to estymator - są opracowania jak wykorzystać go do systemów jednoczujnikowych. Ja tutaj niewiele pomogę bo nie robiłem tego.