logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Calkowanie na atmega 128 w C

albercik506 12 Mar 2011 20:29 1830 7
REKLAMA
  • #1 9268794
    albercik506
    Poziom 10  
    Witam.
    Mam problem. Próbuje policzyć drogę ze wskazań akcelerometru, potrzebuje scałkować prędkość w języku c by otrzymać drogę. Być może jest to banalne ale skończyły mi się już pomysły. Scałkowałem przyspieszenie i teoretycznie otrzymałem prędkość, przedział czasowy to 10 ms wyzwalane z licznika. Będę wdzięczny za jakieś sugestie. Poniżej zamieszczam fragment kodu.

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #2 9274989
    asembler
    Poziom 32  
    Ja całkowanie robie "w locie" inaczej mówiac sumuje pomiary robione co zadany czas im cześciej tym dokładaniej, a "prawdziwa" całko to nic innego tylko suma włąsnie takich pomiarów gdzie odległośc miedzy pomiarami dąży do 0.
  • REKLAMA
  • #3 9278827
    albercik506
    Poziom 10  
    A robiłeś może pomiar drogi z akcelerometru? Wychodzą mi dziwne wartości jak zrobię zwykle dodawanie kolejnych pomiarów. Fajnie jak byś się podzielił kodem, miałbym co porównać.
  • REKLAMA
  • #5 9279136
    Fredy
    Poziom 27  
    nsvinc napisał:
    Może po prostu użyj prawidłowego wzoru?
    Sumowanie przyspieszeń jest sumą przyspieszeń, ale nie jest drogą.

    s=at²/2


    to jest wzór na drogę tylko w ruchu jednostajnym, a taki zdarza sie chyba tylko w szkole.

    W ruchu niejednostajnym - ma zastosowanie już tylko rachunek różniczkowy.

    Jeśli chodzi o całkowanie o którym piszecie wyżej to nie zapomnijcie tez o składowej stałej , która tu nie bardzo wiem jak może być zmierzona za pomocą akcelerometru.
  • REKLAMA
  • #6 9279263
    nsvinc
    Poziom 35  
    Fredy napisał:
    to jest wzór na drogę tylko w ruchu jednostajnym

    Bzdura!!
    Dla ruchu jednostajnego przyspieszenie jest rowne 0, i przytoczony wzór nie ma zastosowania.

    Fredy napisał:
    W ruchu niejednostajnym - ma zastosowanie już tylko rachunek różniczkowy.

    Bzdura do kwadratu.
    To nie są różniczki tylko całki!
    Jesteś mądrzejszy niż wikipedia? To co jest tam napisane to jest proste wyprowadzenie z wczesniej podanego wzoru.

    Dlaczego to działa?
    W czasie od "poprzedniego" sampla do "bieżącego" sampla można założyć, że ruch jest jednostajnie przyspieszony, bo inaczej się nie da, mając mikrokontroler i akcelerometr...
    Więc wzór w tym przypadku ma zastosowanie.
  • #7 9281086
    Fredy
    Poziom 27  
    Czepiasz się szczegułów człowieku.
    Pisząc ruch jednostajny pisałem może skrótowo, miałem na myśli ruch jednostajnie w odniesieniu do przyspieszenia (jednostajnie zmienny).
    Wszyscy wiedzą o co chodzi. W zyciu mamy jednak do czynienia z ruchem w którym zarówno prędkość jak i przyspieszenie zmienia się w sposób nieprzewidywalny. I to miałem na myśli.

    Pisząc "W ruchu niejednostajnym - ma zastosowanie już tylko rachunek różniczkowy." niby gdzie popełniłem błąd?
    Czyż nie jest właśnie tak że w tym ruchu mają zastosowanie różniczki?
    Mają i to jest fakt. Oczywiście całki też ,ale to jako operacja niejako odwrotna jest oczywiste.
    Jeśli chodzi o terminologię - różniczki i całki - to przyjęło się potocznie że rachunek różniczkowy obejmuje zarówno różniczki jak i całki. Te dwie operacje wzajemnie odwrotne niejako przenikają siebie.
    Także jeszcze raz czepiasz się chłopie przecinków.

    A na koniec mądralo - zadam ci proste pytanie.
    Załóżmy że ciało porusza się z prędkością np 10m/s i z przyspieszeniem a=0 - co wtedy?
    Według Twojego rozumowania droga bedzie 0 .Brawo !!!

    Prawidłowy wzór brzmi:

    S=vt +at^2/2
  • #8 9281778
    nsvinc
    Poziom 35  
    Fredy napisał:
    Załóżmy że ciało porusza się z prędkością np 10m/s i z przyspieszeniem a=0 - co wtedy?
    Według Twojego rozumowania droga bedzie 0 .Brawo !!!

    Przecież napisałem, że dla ruchu jednostajnego podany wzór się nie sprawdza. Przeczytaj jeszcze raz z trochę większym zrozumieniem to co napisałem. Pierwszy wzór jaki podałem ma służyć do wyprowadzenia (zresztą prostego) wzoru dla zmiennego przyśpieszenia. Drugi wzór - podałem link do wikipedii, i ten wzór jest kompletny i gotowy do użycia.

    To ty czepiasz się na siłę wszystkiego co napisałem, a że nie chce mi się nic tobie tłumaczyć, to "czuj się".

    Cheers ;]
REKLAMA