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

Akcelerometr, dryfujące zero

McRancor 13 Lut 2007 18:11 5803 23
  • #1 13 Lut 2007 18:11
    McRancor
    VIP Zasłużony dla elektroda

    Witam!

    Mam problem z akcelerometrem, a właściwie znanym chyba wszystkim zajmującym się tym tematem dryftem zera, chodzi o to że po zadziałaniu pewnym przyśpieszeniem na wyjściu pojawia się stan nie odpowiadający temu na początku.

    Ktoś poradził sobie z tym problemem?

    0 23
  • Arrow Multisolution Day
  • #2 13 Lut 2007 19:31
    gf
    Poziom 10  

    Tak na wszelki wypadek, proste pytanie - ile osi ma ten akcelerometr i czy nadajac mu chwilowe przyspieszenie nie zmieniasz mu polozenia..?
    Moze problem wynika z tego, ze jak go poruszysz to zmieniasz kat ktorejs osi akcelerometru wzgledem ziemi, przyspieszenie ziemskie w koncu tez sie mierzy.. . :-)

    0
  • #3 13 Lut 2007 23:56
    McRancor
    VIP Zasłużony dla elektroda

    Położenie się zmienia, ale robot (pojazd dwukołowy, o trzech punktach podparcia) porusza się po prostej i po płaskiej powierzchni, akcelerometr nie zmienia kąta względem wektora grawitacji.

    Akcelerometr jest dwuosiowy.

    Dodano po 3 [godziny] 24 [minuty]:

    Wyczytałem trochę i okazało się że częściowo ten problem eliminują filtry Kalmana.

    Bawił się ktoś nimi? może ma jakiś przykładowy kod, albo chociaż opis algorytmu dla mikroprocesorów?

    Program śmiga na motoroli 332 (rodzina 68K) - poradzi sobie z taką filtracją, czy od razu dać sobie spokór ;)

    0
  • #4 14 Lut 2007 16:48
    DosinskY
    Poziom 18  

    Witam,

    Nie wiem jaki akcelerometr stosujesz, ale ja podczas swej przygody z czujnikami przyspieszenia nigdy nie spotkałem się z takim dryftem zera. Zajmowałem się wyłącznie seria ADXL z wyjściem PWM i było to dość dawno temu ale coś pamiętam ;) Czujniki te należało kalibrować z powodu offsetu zera g. Niestety kalibrację należało powtarzać po zmianie temperatury otoczenia z uwagi na występowanie dryftu temperaturowego (dość istotna zmiana okresu przebiegu PWM wraz z temperaturą).....ale dryft zera po wystąpieniu przyspieszenia? Jeżeli rozważymy akcelerometr jako ciężarek zawieszony na sprężynie, to powrót ciężarka do pozycji "zerowej" może być utrudniony z uwagi na występowania różnych sił oporu ale w mikromechanicznych czujnikach przyspieszenia siły te są przecież pomijalnie małe. Jeżeli uda Ci się określić przyczynę takiego dryftu to proszę o podzielenie się informacją.

    Pozdrawiam
    dosinsky

    0
  • Arrow Multisolution Day
  • #5 14 Lut 2007 20:11
    McRancor
    VIP Zasłużony dla elektroda

    Problem występuje zarówno w ADXLach, jak i Freescale'owskich MMA.

    Szczerze mówiąc liczyłem na Ciebie w tym przypadku, bo widziałem na elektrodzie troszkę w akcelerometrach siedziałeś, Problem występuje i był już nie raz na elce opisywany, ale nikt nie pochwalił się rozwiązaniem...

    0
  • #6 14 Lut 2007 21:39
    DosinskY
    Poziom 18  

    Od czasu do czasu się udzieliłem w jakimś temacie ale specem to ja nie jestem ;) Z ciekawości przejrzałem noty aplikacyjne Analog Devices i nie doszukałem się żadnych informacji na temat Twojego problemu. Mowa jest tylko o dryfcie temperaturowym i dryfcie zera "początkowego" :| Na elektrodzie też nic podobnego nie zauważyłem...najwidoczniej przeoczyłem. Czy dobrze rozumiem temat?
    1) Robot mobilny znajduje się w spoczynku a oś akcelerometru (załóżmy że oś x) jest równoległa do płaszczyzny ziemi i mierzy 0g
    2) Robot rozpędza się (przyspieszenie x>0) i porusza się po powierzchni "idealnie" płaskiej i równoległej do płaszczyzny ziemi
    3) Robot hamuje i zatrzymuje się (przyspieszenie x<0)
    4) Przyspieszenie mierzone wzdłuż osi x będącej w spoczynku ≠ 0.

    Jeżeli jest dokładnie tak jak napisałem to wymiękam ;) i nie mam zielonego pojęcia skąd ten dryft. Jakiego jest on rzędu? + Tu chyba potrzeba specjalisty :D ;)

    0
  • Pomocny post
    #7 14 Lut 2007 22:34
    crazy_phisic
    VIP Zasłużony dla elektroda

    Przy jakich wartościach g pracuje robot? Przy nagłych zmianach przyśpieszenia daje o sobie znać bezwładność masy okładki ruchomej kondensatora w czujniku. Możliwe że analiza gradientu przyśpieszenia będzie wyznacznikiem poprawki... Ale na razie nie miałem okazji na dokładne pomiary, z reguły wystarczała mi tylko informacja o zmianie przyśpieszenia.

    0
  • #8 14 Lut 2007 23:40
    McRancor
    VIP Zasłużony dla elektroda

    Są to niewielkie przyspieszenia nie przekraczające jednego G, chodzi chyba o to o czym pisze crazy_phisic. Opisane przez DosinskY 4 kroki to właśnie wspomniany problem.

    https://www.elektroda.pl/rtvforum/viewtopic.php?p=1309322#1309322
    Tutaj kolega też o tym pisze więc nie jest to moja imaginacja ;)

    Tylko teraz co dalej?

    0
  • #9 15 Lut 2007 11:47
    przesladowana
    Poziom 12  

    czujnik jest pewnie troche pochylony wystarczy naprawde malutko a przypieszenie ziemskie robi swoje

    0
  • #10 15 Lut 2007 12:13
    McRancor
    VIP Zasłużony dla elektroda

    Grawitacja nie stanowi w tym przypadku problemu, pojazd porusza się po prostej, po płaskiej powierzchni i przyśpieszenie ziemskie jest stałe, tak samo jak działająca siła Coriolisa jest pomijane.

    Konkretnie chodzi mi o to czy ktoś stosował filtry Kalmana, lub jakieś inne i jakie były efekty.

    0
  • #12 15 Lut 2007 21:11
    przesladowana
    Poziom 12  

    uwierz mi ma grawitacja jest olbrzymia w stosunku do przyśpieszeń jakie osiąga twój pojazd. wystarczy mały uchyba od pionu i kaplica

    0
  • Pomocny post
    #14 19 Lut 2007 18:37
    submariner
    Poziom 32  

    nie wiem jakimi algorytmami mierzysz przyspieszeniea potem obliczasz trase , pamietaj ze jest to masa zawieszona na sprezynie i w tego typu akcelerometrach np adxl... nie wystarczy mierzyc wartosc przyspieszenia , jak zmieniasz predkosc to masa "odbija" i pewno tu pojawia sie blad , to prawda ze filtry Kalmana eliminuja ten efekt - wprowadza sie element bledu do wartosci filtra , niestety filtry kalmana to nie jest prosta sprawa i chyba nie na mikrokontroler . prawdopodobnie akcelerometry konwekcyjne nie maja tej wady ale niestety mniejsza czulosc.
    Wiecej informacji znajdziesz szukajac o systemach INS ktore dzialaja na tej zasadzie. We wszystkich tych systemach uzywa sie rowniez zyroskopow.

    0
  • #16 20 Lut 2007 16:22
    McRancor
    VIP Zasłużony dla elektroda

    Może być problem z odwracaniem macierzy na uC, widze że nie pozostaje nic innego niż zacząć liczyć na siebie. Będe próbował zastosować kalmańca, system jest liniowy i stabilny, mamy jego opis więc nie pozostaje nic innego tylko A..B..C.. ;)

    0
  • #17 01 Wrz 2008 15:51
    kbosak
    Poziom 12  

    McRancor napisał:

    Wyczytałem trochę i okazało się że częściowo ten problem eliminują filtry Kalmana.

    Filtry nie eliminuja problemow, nie organizuja sie i nie spiskuja.
    Filtry usuwaja nieporzadana informacje, nie dodaja informacji prawdziwej lecz niezmierzonej sensorem.
    W ukladach IMU stabilizuje sie katy wyliczone od zyroskopow katami wyliczonymi z akcelerometrow. Ale gdy akcelerometry zaczynaja dryfowac... Houston, we have a problem.
    P.S. Formalnie rzecz biorac nie trzeba kalmana azeby to filtrowac. Filtr typu PID z ustalonymi stalymi tez da rade.

    Nie zapominaj akcelerometry sa:
    1. ratiometric (polacz VDDaccel do VREF)
    2. high impedance, wiec potrzebuja opamp w schemacie voltage follower.
    Nie zapomnij sprawdzic 10 razy ustawienie ADC sampling clock/divider etc.
    I nie umieszczaj ich obok grzejacych elementow, bo odczyty plywaja.

    Dodano po 4 [minuty]:

    przesladowana napisał:
    uwierz mi ma grawitacja jest olbrzymia w stosunku do przyśpieszeń jakie osiąga twój pojazd.

    Oh really?
    anemiczne 0-40km/h w 4 s to inaczej 0 do 11m/s w 5s to nic innego jak 11/4=2,75m/s^2 czyli 28%G na dzien dobry.

    0
  • #18 01 Wrz 2008 18:26
    Osmo
    Poziom 18  

    przesladowana napisał:
    uwierz mi ma grawitacja jest olbrzymia w stosunku do przyśpieszeń jakie osiąga twój pojazd. wystarczy mały uchyba od pionu i kaplica


    Nie wiem jaki wpływ miała by miec grawitacja na pomiar, nawet w przypadku odchylenia od poziomu, tym bardziej ze w warunkach lokalnych mozna przyjac iz przyspieszenie grawitacyjne ma stałą watość, zmiany sa niezauwazalne dla zwykłych czujników.
    Już prędzej skłaniałbym sie ku sile bezwładności, ta mogła by wprowadzac w bład, bo i na jej działaniu opiera sie pomiar :), ale jak pisze autor czujnik jest ustawiony równolegle do płaszczyzny ziemi założona osia x i porusza sie do niej równolegle.

    0
  • #19 03 Wrz 2008 07:20
    DosinskY
    Poziom 18  

    Cytat:
    Filtry nie eliminuja problemow, nie organizuja sie i nie spiskuja.

    Cytat:
    Filtr typu PID z ustalonymi stalymi tez da rade.


    Jak już się czepiamy to stałe się nie ustalają a PID nie filtrują ;)

    Cytat:
    Nie wiem jaki wpływ miała by miec grawitacja na pomiar, nawet w przypadku odchylenia od poziomu, tym bardziej ze w warunkach lokalnych mozna przyjac iz przyspieszenie grawitacyjne ma stałą watość, zmiany sa niezauwazalne dla zwykłych czujników.


    Przyspieszenie (wyrażone w G) mierzone przez czujnik wzdłuż jego osi pomiarowej zorientowanej pod kątem 45° do ziemi wynosi a=sin*45°. W związku z powyższym wystarczy, że pochylenie czujnika zmieni się z 0° na 2° i w niektórych aplikacjach (np. z całkowaniem/różniczkowaniem sygnału), w których nie ma informacji zwrotnej o pochyleniu osi, wszystko może się posypać.

    Pozdrawiam

    0
  • #20 03 Wrz 2008 16:44
    Osmo
    Poziom 18  

    Masz racje, nie pomyslałem o tym, nie znam niestety budowy tego typu czujników, co musze nadrobić.

    Jedyne co mi sie nie podoba to wzór 'a=sin*45°', nijak nie rozumie go, nie chciałes napisac przypadkiem a=b*sin45° ??

    0
  • #21 03 Wrz 2008 18:35
    DosinskY
    Poziom 18  

    Oczywiście popełniłem straszliwą gafę. Rzeczą oczywistą jest, że ma tam być a=sin45°. Się rozpędziłem a klawiatura wszystko przyjmie ;) Dzięki za poprawkę.

    0
  • #22 02 Paź 2008 01:32
    kbosak
    Poziom 12  

    [quote="DosinskY"]

    Cytat:

    Jak już się czepiamy to stałe się nie ustalają a PID nie filtrują ;)

    Message byl taki ze w ukladzie gyro+accel , gyro daje niesbiasowana przyspieszeniem wartosc bezwzgledna o nieznanym offsecie a accel daje dlugofalowo usredniany offset. Jednak gdy accel plywa, nie ma co za bardzo marzyc ze gumowe pomiary z gyro cos pomoga.

    0
  • #23 24 Lut 2009 18:02
    kbosak
    Poziom 12  

    Jest cos co powinniscie wiedziec. Akcelometry z masa probna (ADXL, MMAQ i spolka) nie robia na ogol dryfu, ale sa czule na drgania i rezonans. ale sa MEMSIC ktore dryfowac lubia mocno z temperatura, bo polegaja na lokalnym podgrzewaniu powietrza i liczeniu gradnientu temperatury wewnatrz malej probnej komory. Moze to bylo powodem.

    0
  • #24 06 Mar 2009 12:53
    dap4444
    Poziom 2  

    Witam!

    Problem dryfującego zera pojawia się zawsze, ale widoczny jest głównie w momencie całkowania sygnału z akcelerometru. I nie jest to spowodowane dryfem temp.,bo ten można kompensować ani też przesunieciem zera, ale raczej szeregiem czynników, które mogą wprowadzać wolno-częstotliwościowe szumy, jak np. różnego rodzaju interferencje w obwodach, niewydolność prądowa wyjść (jeśli są analogowe), tętnienia zasilania i oczywiście proces produkcji - użyte materiały, sposoby połączenia elementów mikromechanicznych. Generalnie nie ma możliwości unikniecia takich szumów (są to małe częstotliwości o amplitudzie zwykle poniżej 0.01 g - sygnały typu random walk), można je natomiast minimalizować stosując różne metody, jak np. wspomniana już filtracja kalmana - jednak ta metoda wymaga dodatkowego niezależnego sygnału, np z żyroskopu lub inklinometra. Najlepsze jak dotąd opisane metody eliminacji tych szumów polegają na skonstruowaniu ściśle określonych (o określonych parametrach) modeli tych szumów w postaci zbiorów momentów różnego poziomu i użycie ich następnie jako parametry wejściowe metod addycyjnych. Jest to dość skomplikowane zagadnienie z dziedziny probablistyki i nie będę tu tego opisywał. Faktem jest, że najtańszym obecnie sposobem na pozbycie się tych dryfów jest użycie dodatkowego czujnika w postaci np. żyroskopu.

    pozdrawiam

    0