Skocz do zawartości

Filtrowanie PWM - jak dobrać elementy w filtrze RC?


Adi525

Pomocna odpowiedź

Witam, 

Jestem w trakcie budowy robota typu line follower na bazie Arduino. Do wykonania przedniego panelu z czujnikami zdecydowałem się wykorzystać sensory CNY70 oraz komparatory LM311P które za zadanie mają zamieniać sygnał analogowy na cyfrowy zależnie od progu decyzji wysłanego z arduino poprzez PWM. Wiem że sygnał PWM trzeba przefiltrować i myślałem o pasywnym filtrze RC, ale nie mam pojęcia jakie powinny być wartości kondensatorów i rezystora, żeby wszystko dobrze działało i pytanie czy taki filtr jest w ogóle w stanie dobrze spełniać swoje zadanie? Jeśli nie to czym można go zastąpić? Drugie pytanie, czy wygenerowany jeden sygnał PWM z mikrokontrolera może "obskoczyć" wszystkie komparatory wyznaczając dla nich taki sam próg decyzji?

Link do komentarza
Share on other sites

Mnóstwo pytań a schematu ani widu. To może tak:

  • LM311 to bardzo stary układ i ma wiele ograniczeń. Bez schematu z naniesionymi wartościami elementów i napięciami nie wiadomo, czy  w ogóle jest sens rozpatrywać jego użycie.
  • W zależności jaką konfigurację komparatora wybierzesz to będzie on mógł być podłączony wprost do wyjścia filtra lub nie będzie mógł.
  • Filtr w tej aplikacji będzie ograniczony z dwóch stron: z jednej im będzie lepiej filtrował tym mniejsze będą "ząbki" na jego sygnale wyjściowym tj. mniejsza będzie zawartość harmonicznych wejściowego prostokąta PWM. Z drugiej im będzie filtrował lepeij ttym będzie wolniejszy, tj. zmiany wypełnienia PWm będą wolniej sie propagować na wyjście. I teraz, jeśli planujesz tylko jednokrotne, jakby "ręczne" ustawienie poziomu detekcji przed jazdą to czas reakcji filtra nie ma znaczenia - to może być nawet sekunda, ale jeśłi wymyśliłes sobie dynamiczną zmianę podczas np. zmian oświetlenia w róznych miejscach toru, to czas reakcji (opóźnienie) jest ważny.
  • Filtr dolnoprzepustowy (bo taki chcesz z robić) dobierasz do częstotliwości sygnału PWM i koniecznego tłumienia na tej częstotliwości.
  • Pasywny filtr RC będzie spełniać swoje zadanie pod kilkoma warunkami: będzie sterowany ze źródła o małej impedancji, będzie obciążony układem o wysokiej impedancji i oczywiście będzie policzony zgodnie z założeniami.
  • Jeden filtr możesz zastąpić innym (o innej topologii), ale jeśli chcesz zamienić sygnał PWM na jego wartość średnią DC to wiele możliwości nie masz (choć nie twierdzę, że nie ma innych sposobów). 
  • To czy chcesz mieć wspólny próg dla wszystkich komparatorów czy osobny sygnał (i osobny PWM + filtr) dla każdego to Twoja decyzja projektowa. Można zrobić i tak i tak.

Zatem może jakiś rysunek i trochę liczb? Bo wiesz, to działa tak: Ty nie lejesz wody tylko podajesz parametry (Hz, s, V, A, co tam uważasz) i w odpowiedzi też zwykle nie dostajesz wody tylko jakieś liczby (albo kolejne pytania..). W przeciwnym razie blabla (jak te punkty powyżej) za blabla (jak Twój post).

  • Lubię! 1
Link do komentarza
Share on other sites

Dziękuję za odpowiedź!

schematp.thumb.jpg.6ed767dbf7f9d586e286540ccbf6fccd.jpg

Tu jest mój schemat podłączenia dla jednego komparatora i jednego czujnika.  

Wartość PWM będzie jak myślę ustalana raz przed jazdą więc jak piszesz nie będę potrzebował szybkiego filtru.

Wstępnie przetestowałem układ z kondensatorami elektrolitycznymi C1 i C2 100uF (tylko takie obecnie posiadam) oraz R3 10k i wszystko wydaje się działać poprawnie, więc zakładam że są to racjonalne wartości? Czy może lepiej sprawdziłaby się para różnych kondensatorów tzn. elektrolityczny +  ceramiczny?

Jeśli jest taka możliwość to dla wszystkich komparatorów będę stosował jeden sygnał z jednym filtrem.

Co do komparatora LM311P wybrałem go ze względu na najniższy czas propagacji spośród dostępnych modułów na botlandzie, ale z pewnością zmienię go jeśli będzie to konieczne.

Link do komentarza
Share on other sites

Czas propagacji komparatora w takiej aplikacji jest sprawą dziesiątej ważności. Napędy, mechanika i procesy zachodzące w robocie są kilka rzędów wielkości wolniejsze niż jakikolwiek komparator a poza tym czasy reakcji tego typu układów zależą od wielkości przesterowania czyli różnicy napięć jakie są porównywane. Nigdy nie sugeruj się liczbą przeczytaną na pierwszej stronie danych katalogowych a już na pewno nie tą wziętą ze strony sklepu. Po prostu jeśłi chcesz mieć obiektywną ocenę, musisz szukać głębiej. Nie twierdzę, że 311 nie jest szybki, ale nie o to tu chodzi. W tym układzie dużo ważniejsze są np. zakresy napięć zasilania oraz zakresy napięć wejściowych. Te drugie podawane są zwykle jako minimalna odległość od szyn zasilania i jeśli np. czytasz, że od minusa musi być 0.5V a od plusa 2V to z 5V zasilania jakie tu przewidziałeś zostaje Ci jedynie 2.5V i to w dość dziwnym zakresie 0.5-3V, jakiego Twój czujnik opto nie jest w stanie zapewnić. Kolejna sprawa to wyjście. Masz emiter tranzystora podłączony do masy i kolektor którego nic nie ciągnie do plusa. Skąd weźmiesz stan wysoki? Możesz powiedzieć, że właczysz pullup w procesorze, ale wartość takiego podciągu jest nieznana. Niestety w układzie z histerezą jest ona kluczowa więc siła z jaką komparator wystawia swoje jedynki i zera jest ważna. Co więcej, histereza powstaje przez połączenie dodatniego sprzężenia zwrotnego (to ten 1Meg) z impedancją/rezystancją widzianą na wejściu komparatora. Brakuje mi tu opornika szeregowego stabilizującego tę wartość i umożliwiającego policzenie szerokości histerezy. Trochę wygląda jakbyś o tym zapomniał albo przerysował komparator z innego schematu nie do końca rozumiejąc rolę poszczególnych elementów. Tu masz przykład nowoczesnego komparatora za 5zł. Jest poczwórny (ale także w wersjach x2 i x1), ma wbudowaną histerezę, wyjścia dwustanowe jak bramka logiczna i pracuje z napięciami wejściowymi od 0 do swojego Vcc:

https://www.tme.eu/pl/details/mcp6544-i_p/komparatory-tht/microchip-technology/

Nie musisz bawić się z opornikami zarówno w sprzężeniu zwrotnym jak i na wyjściu. Wstawiasz i działa.

Filtr RC - jeśli nie musi być szybki wystarczy, by dobrze tłumił składowe AC sygnału PWM. Układ taki jak narysowałeś to tzw. filtr pierwszego rzędu, tłumi coraz lepiej powyżej swojej częstotliwości środkowej, wynoszczącej

f0 = 1 / (2*PI*R*C)

A coraz lepiej oznacza, że tłumienie rośnie o 6dB z każdą oktawą. Czyli jeśli zaprojektujesz filtr na f0 = 80Hz to do tych 80Hz będzie płasko, częstotliwość 160Hz będzie tłumiona 2 razy, 320Hz 4 razy itd.. W sygnale PWM nie masz składowej niższej niż podstawowa a tej jest najwięcej i to tej częstotliwości głównie oczekujesz w "śmieciach" wyjściowych. Przemyśl więc jaki bedzie Twój PWM i jaką wielkość "schodków" na wyjściu filtra akceptujesz (bo zero to nie będzie nigdy) a potem policz co trzeba lub.. zadaj kolejne pytania.

  • Lubię! 2
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

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!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   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...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.