Witam,
Aktualnie kończę budowę samorobnego drona i mam zagwostkę odnośnie całkowania.
Mianowicie: calkuje przyspieszenie katowe zyroskopu aby otrzymac kat, uzywam do tego metody trapezow, kod tego obliczenia jest banalny:
angle_gain=pr_gyro*dt+(akt_gyro-pr_gyro)*dt*0.5
gdzie dt jak wiadomo to stala ktora wyznacza odstepy czasu miedzy kolejnymi pomiarami.
Oczywiscie odczyt kata tylko z samego zyroskopu to o wiele za malo, jest on pozniej filtrowany filtrem komplementarnym i poddawany fuzji z katem z akcelerometru. Ogolnie takie polaczenie sprawdza sie bardzo dobrze, i w zupelnosci wystarczy do lotu malo akrobatycznym dronom. Dopiero przy bardzo gwaltownych ruchach (np pelny obrot w sekunde) widac ze blad zyroskopu jest na tyle duzy ze filtr sobie przez ulamek sekundy nie radzi i widac chwilowe przeklamanie, jednak zostaje ono skompensowane w ciagu kilku iteracji do wlasciwego poziomu.
Blad ten moim zdaniem jest spowodowany glownie rozbieznoscia pomiedzy wartoscia dt a rzeczywistym czasem jaki uplywa pomiedzy pomiarami.
Zrodlem tego bledu z pewnoscia jest niedokladnosc zrodla sygnalu taktujacego(w tym przypadku rezonator kwarcowy). Oczywiscie wplyw na to maja napewno bledy nieliniowosci, blad dryfu, jednak watpie by byly one az tak znaczace.
Pytaniem wiec jest, czy znacie jakies sposoby na kalibracje/kompensacje programowa tej niedokladnosci?
(poza pomiarem czestotliwosci taktowania za pomoca oscyloskopu)
Aktualnie kończę budowę samorobnego drona i mam zagwostkę odnośnie całkowania.
Mianowicie: calkuje przyspieszenie katowe zyroskopu aby otrzymac kat, uzywam do tego metody trapezow, kod tego obliczenia jest banalny:
angle_gain=pr_gyro*dt+(akt_gyro-pr_gyro)*dt*0.5
gdzie dt jak wiadomo to stala ktora wyznacza odstepy czasu miedzy kolejnymi pomiarami.
Oczywiscie odczyt kata tylko z samego zyroskopu to o wiele za malo, jest on pozniej filtrowany filtrem komplementarnym i poddawany fuzji z katem z akcelerometru. Ogolnie takie polaczenie sprawdza sie bardzo dobrze, i w zupelnosci wystarczy do lotu malo akrobatycznym dronom. Dopiero przy bardzo gwaltownych ruchach (np pelny obrot w sekunde) widac ze blad zyroskopu jest na tyle duzy ze filtr sobie przez ulamek sekundy nie radzi i widac chwilowe przeklamanie, jednak zostaje ono skompensowane w ciagu kilku iteracji do wlasciwego poziomu.
Blad ten moim zdaniem jest spowodowany glownie rozbieznoscia pomiedzy wartoscia dt a rzeczywistym czasem jaki uplywa pomiedzy pomiarami.
Zrodlem tego bledu z pewnoscia jest niedokladnosc zrodla sygnalu taktujacego(w tym przypadku rezonator kwarcowy). Oczywiscie wplyw na to maja napewno bledy nieliniowosci, blad dryfu, jednak watpie by byly one az tak znaczace.
Pytaniem wiec jest, czy znacie jakies sposoby na kalibracje/kompensacje programowa tej niedokladnosci?
(poza pomiarem czestotliwosci taktowania za pomoca oscyloskopu)
