Skocz do zawartości
solark

Integrator Arduino

Pomocna odpowiedź

Witam Wszystkich

Mam następujący problem :

Chciałbym osiągnąć coś w rodzaju Integratora sygnału

Mam na wejściu taki oto sygnał (Pomiar ADC z częstotliwością około 1kHz) :

A chciałbym osiągnąć coś w rodzaju sygnału takiego jak poniżej

Pró bowałem coś kombinować z PID ale albo coś żle robię ? ale wydaje mi się że PID nie do tego służy

Bardzo proszę Was o pomoc

Bardzo proszę o przykładowy kod

pozdrawiam

Arek

2.thumb.jpg.d718eea6f14619565cd9e643765dda77.jpg

1.thumb.jpg.8a582312eef0efb7b95dad0c764ba395.jpg

Udostępnij ten post


Link to post
Share on other sites

Może po prostu filtr dolnoprzepustowy? W sensie średnią liczyć?

Udostępnij ten post


Link to post
Share on other sites

Dzięki deshipu za zainteresowanie i odpowiedz ale jak to zrobić za pomocą kodu

Dodaje że jestem początkujący więc bardzo proszę o pomoc

Udostępnij ten post


Link to post
Share on other sites

Po angielsku to się nazywa "running average", jestem pewien, że z łatwością znajdziesz przykłady. W skrócie, zapamiętujesz n odczytów i za każdym razem jak robisz nowy, to dodajesz go do swojej średniej i do listy zapamiętanych odczytów, a najstarszy z listy usuwasz i odejmujesz od swojej średniej. Jako listę stosuje się bufor kołowy (ring buffer) zazwyczaj.

Udostępnij ten post


Link to post
Share on other sites

Dzięki za odpowiedz

Sprawdziłem to co mówisz i nie zupełnie o to mi chodziło ponieważ tu nie chodzi o średnią (wykres dalej zachowuje się jak poprzednio tylko wolniej) a o jakby łączenie wierzchołków tego wykresu czyli trzeba by było uwzględnić prawdopodobnie jakoś czas ale jak to zrobić to kompletnie nie mam pojęcia

Proszę dalej o pomoc

Udostępnij ten post


Link to post
Share on other sites

Może zobacz na widmie częstotliwościowym czy te szpilki nie mają jakiejś jednej podstawowej częstotliwości (i harmonicznych), wtedy mógłbyś zastosować filtr band-stop.

Udostępnij ten post


Link to post
Share on other sites
Dzięki za odpowiedz

Sprawdziłem to co mówisz i nie zupełnie o to mi chodziło ponieważ tu nie chodzi o średnią (wykres dalej zachowuje się jak poprzednio tylko wolniej) a o jakby łączenie wierzchołków tego wykresu czyli trzeba by było uwzględnić prawdopodobnie jakoś czas ale jak to zrobić to kompletnie nie mam pojęcia

Proszę dalej o pomoc

Wybacz, ale na przykładzie nie masz "połączonych" wierzchołków, tylko raczej właśnie średnią - zobacz co się dzieje z wykresem jak sygnał schodzi do zera... piękna wygładzona linia w dół.

Jak chcesz "połączyć" wierzchołki to możesz użyć zamiast średniej to wartości maksymalnej z jakiegoś przedziału, albo czegoś pośredniego (czyli np. liczyć maksymalną z ostatnich 5 próbek i średnią z ostatnich 15 i wybierać wyższą wartość).

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Napisz odpowiedź...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...