Skocz do zawartości

Jazda po prostej z enkoderami


Treker

Pomocna odpowiedź

Tak więc ustawienie okresu próbkowania tego układu na czas krótszy niż okres PWMa nie ma sensu bo zmiany i tak nie mogą zachodzić częściej.

O jakiej częstotliwości PWM mówisz. Bo jeżeli o 40KHz i więcej, to takiego efektu jaki opisujesz nie ma. Gdyby PWM działał na 1kHz, to można by się nad tym pochylić.

Ale mogę się mylić 🙂

Link do komentarza
Share on other sites

PWM ma zazwyczaj przynajmniej kilka KHz.

Przy silnikach o prędkości obrotowej 180RPM - czyli 3 obroty na sekundę - i enkoderach 100pozycji/obrót w sekundę maksymalnie zmienisz stan 300 razy.

Czyli częstotliwość impulsów z enkodera jest przynajmniej 10x mniejsza niż częstotliwość sygnału PWM. Krótko mówiąc nie ma to dużego związku - szczególnie jak weźmiemy dodatkowo pod uwagę bezwładność układu.

Link do komentarza
Share on other sites

Dobrze sobie zdaję sprawę, że przy wyższej częstotliwości PWM problem nie występuje. Jednak właśnie dlatego opisuję ten efekt bo zwykle częstotliwość PWMa ustawiałem na kilkadziesiąt czy kilkaset Hz. Wtedy silnik startował przy najmniejszym wypełnieniu i prawdopodobnie miał również największą moc. A chyba przyznacie, że przy takim ustawieniu problem był by już realny.

A propos samego doboru częstotliwości PWMa jakiś czas temu toczyła się z resztą tutaj zażarta dyskusja.

Link do komentarza
Share on other sites

A ja bym proponował trochę odciążyć kontroler i zrzucić przynajmniej część pracy na inny układ, który sprzętowo rozwiąże zadanie. Proponuje zastosować przetwornik częstotliwości na napięcie, w formie układu LM2907. Jeszcze do końca nie wczytałem się w jego działanie, ale na pierwszy rzut oka wydaje się dobry do tego zadania. Napięcie zadawane z niego podajemy na przetwornika ADC w kontrolerze, który przetwarza, też praktycznie bez naszej pracy, więc działa wszystko szybko. A wyniki z przetworzenie podawał bym na regulator PID.

Na razie to sama teoria, ale może się to sprawdzi.

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

Jednak właśnie dlatego opisuję ten efekt bo zwykle częstotliwość PWMa ustawiałem na kilkadziesiąt czy kilkaset Hz.

No właśnie, dlaczego zwykle tylko tyle?

A propos samego doboru częstotliwości PWMa jakiś czas temu toczyła się z resztą tutaj zażarta dyskusja.

Czy pamiętasz w którym temacie, chciałbym się z nim zapoznać?

Link do komentarza
Share on other sites

https://www.forbot.pl/forum/topics43/dobor-czestotliwosci-pwm-atmega-vt5882.htm

to jest link do tematu o częstotliwości PWM. Po zapoznaniu się z tym tematem zrobiłem prosty test ze zmienianiem częstotliwości PWM, sprawdzaniem wypełnienia od którego startuje i czy jestem w stanie palcami zatrzymać wał. Po takim prostym doświadczeniu ustawiłem sobie częstotliwość która dawała mi satysfakcjonujące wyniki. Oczywiście nie przeczę, że dla innego silnika i innego zastosowania lepsza może się okazać inna częstotliwość jednak ja ze swojej empirycznie dobranej wartości jestem zadowolony.

W każdym razie dyskusja na temat samej częstotliwości PWM bez powiązania z enkoderami powinna się jednak toczyć w tamtym wątku.

Link do komentarza
Share on other sites

Dziękuję za link. Zapoznam się z nim, ponieważ zaskoczyło mnie, że tak niskie częstotliwości są jak to ująłeś "zwykle" stosowane. Ja w swoich projektach zawsze miałem powyżej 30kHz.

Link do komentarza
Share on other sites

Napisałem, że ja zwykle stosuje częstotliwości tego rzędu i opieram się na takich prostych testach. W moich zastosowaniach do jakiś niewielkich silników i amatorskich konstrukcji doskonale się sprawdzają. Natomiast jak jest w profesjonalnych zastosowaniach - nie mam pojęcia.

Link do komentarza
Share on other sites

hehehe, tamten temat jest bez sensu. Co ma wypełnienie przy którym startuje silnik do ewentualnego działania PWM i jak to się ma do generowanej mocy? 🙂

Faktem natomiast jest, że wiele mostków nie pozwala na wysokie częstotliwości i bez znajomości danych mostka bezpieczną wartością jest 1KHz. Częstotliwości >20KHz stosuje się ze względu na płynniejszą pracę i mniejszy hałas (poza pasmem słyszalnym). Dobrym przykładem jest TB6612, który przy 20KHz nawet się nie zająknie.

Link do komentarza
Share on other sites

Za eksperta w tej dziedzinie się nie uważam, dlatego nie będę się kłócił bo zwyczajnie nie jestem w stanie przedstawić żadnych sensownych argumentów. Po prostu przeczytałem to co tam napisali, sprawdziłem w praktyce, jestem zadowolony z wyników i teraz używam. Dla moich potrzeb całkowicie się sprawdza i nie wiem po co miał bym drążyć temat jeżeli nie jest mi to do niczego potrzebne.

Link do komentarza
Share on other sites

Wprowadziłem wczoraj do programu sprawdzanie stanu enkoderów co określony czas (timer). Efekty były bardzo ciekawe, później wstawię jakiś filmik. Bardzo ładnie było widać jak częstotliwość sprawdzania wpływa na szybkość korekcji.

Ostatecznie udało mi się osiągnąć w miarę prostą jazdę, jednak później wieczorem coś namieszałem w kodzie i miałem problemy więc dałem sobie już spokój. Dziś będę próbował dalej zrobić z tego coś przyzwoitego, przydałoby się chyba zrobić z tego PD.

Link do komentarza
Share on other sites

Z mojego punktu widzenia jeżeli chcesz zastosować jakąkolwiek regulację cyfrową informację o aktualnej prędkości powinieneś dostarczyć regulatorowi w każdym kroku obliczeń ( oczywiście częstotliwość pracy regulatora powinna być możliwie jak największa). Czyli konieczna jest stała częstotliwość próbkowania prędkości obrotowej co jest niemożliwe przy pomiarze szerokości impulsu z enkodera, można się uprzeć i aktualizować wartość prędkości asynchronicznie do pracy regulatora, a obliczenia regulatora bazowałyby na poprzedniej obliczonej wartości jednak wydaje mi się, że to nie jest najlepsze rozwiązanie szczególnie problematyczne dla małych prędkości obrotowych. Aktualnie też walczę z podobnym tematem i enkoderami ale magnetycznymi z austriamicrosystems. Jako metodę pomiaru wybrałem zliczanie impulsów w określonym okresie czasu z ww względu oraz dlatego, że enkoder przysparza problemów przy małych prędkościach.

Aktualnie enkoder zaprogramowany na rozdzielczość 1024 imp/obr, ale chciałbym więcej 🙂

Poniżej wykres liczby impulsów z enkodera w okresie 10ms (niebieski) oraz przefiltrowane impulsy (czerwony) cyfrowym filtrem dolnoprzepustowym Butterworth'a II rz z częstotliwością odcięcia 40Hz, próbkowaniem 1kHz.

Jak widać filtrowanie istotnie poprawiło "wygląd" prędkości obrotowej szczególnie dla małych prędkości obrotowych, ale niestety z małym przesunięciem fazowym.

Istnieją jeszcze kombinowane metody pomiaru prędkości z enkodera ze stałym okresem próbkowania, ale z jej pomocą nie uzyskałem zadowalających efektów chyba ze względu na problem z działaniem enkodera.

Link do komentarza
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!

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.