Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Programowa demodulacja PWM

Awatar użytkownika
Tomasz Gumny
-
-
Posty:685
Rejestracja:4 lut 2004, o 23:31
Lokalizacja:Trzcianka/Poznań
Programowa demodulacja PWM

Postautor: Tomasz Gumny » 9 kwie 2012, o 09:15

W projekcie falownika mam gorącą masę. Do ustawiania służą dwa izolowane przyciski i potencjometr z plastikową ośką. Zamierzam dodać możliwość zdalnego załączania i nastawiania częstotliwości, chodzi mi szczególnie o możliwość współpracy przez port LPT w PC z programem MACH3 (lub podobnymi).
Dla linii RUN I DIR wystarczą transoptory, np. jeden podwójny PC827. Sterowanie obrotami odbywa się przebiegiem PWM o częstotliwości zwykle 1..2kHz, ale można ja w MACH3 ustawiać w dość szerokich granicach, powiedzmy 100Hz..10kHz. Dlatego tą linię zamierzam izolować szybkim transoptorem, np. 6N137.
Problemem jest demodulacja sygnału PWM. Wprawdzie sygnał jest podany wejście bramkujące timer, ale częstotliwość może się zmieniać w szerokich granicach, czyli musiałbym zgrubnie ustawiać prescaler timera. Teraz okazało się, że nie mam czasu na dzielenie mimo, że program jest pisany w asemblerze.
W zasadzie mógłbym podać wyjście transoptora na filtr RC i odczytać napięcie wejściem ADC, ale to ostateczność.
Pamiętam, że istnieje metoda demodulacji PWM polegająca na wielokrotnym próbkowaniu sygnału w losowych odstępach czasu. Przy odpowiednio dużej liczbie pobranych próbek, najlepiej będącą wielokrotnością 2 (proste dzielenie), liczba próbek "wysokich" była proporcjonalna do wypełnienia.
Nie mogę znaleźć szczegółów tej metody a zwłaszcza: zasad doboru odstępów próbkowania, wpływu liczby próbek na dokładność demodulacji, itp.
Może jakiś student jest na bieżąco? :)

Awatar użytkownika
pajaczek
Moderator
Moderator
Posty:2653
Rejestracja:24 sty 2005, o 00:39
Lokalizacja:Winny gród

Re: Programowa demodulacja PWM

Postautor: pajaczek » 9 kwie 2012, o 12:31

Cóż, nie jestem studentem, ale może coś z tego Ci pomoże:
jeden
dwa

Awatar użytkownika
Tomasz Gumny
-
-
Posty:685
Rejestracja:4 lut 2004, o 23:31
Lokalizacja:Trzcianka/Poznań

Re: Programowa demodulacja PWM

Postautor: Tomasz Gumny » 9 kwie 2012, o 14:53

W obu artykułach użyty jest timer do wyznaczenia czasu stanu wysokiego i okresu przebiegu. To jest szybka i wygodna metoda, zwłaszcza jeśli jest dostępne wejście przepisujące "w locie" zawartość licznika przy zmianie stanu (ICP). Pisałem już dlaczego nie mogę zastosować tej metody. Istnieje metoda znacznie wolniejsza, która polega na próbkowaniu przebiegu PWM w pewnych odstępach czasu (losowych o jakimś rozkładzie). Przy odpowiednio dużej liczbie próbek stosunek liczby próbek "wysokich" do wszystkich jest zgodny z wypełnieniem. Dla mnie jest ważne, że ta metoda jest w dużym stopniu niezależna od okresu przebiegu PWM i wynik jest od razu uśredniony.
Problem w tym, że nigdy tego nie stosowałem a metodę pamiętam z wykładów, czyli sprzed lat powiedzmy ...dziestu.

traxman
-
-
Posty:215
Rejestracja:7 lip 2011, o 11:19

Re: Programowa demodulacja PWM

Postautor: traxman » 9 kwie 2012, o 16:55

LM358 mam worek, a i tak musisz mierzyć prąd i napięcie, jeden kanał więcej niewiele zmieni, a czasy nie są zbyt krytyczne, patrząc na moment bezwładności wirnika i napędzanego elementu.

Awatar użytkownika
Tomasz Gumny
-
-
Posty:685
Rejestracja:4 lut 2004, o 23:31
Lokalizacja:Trzcianka/Poznań

Re: Programowa demodulacja PWM

Postautor: Tomasz Gumny » 10 kwie 2012, o 17:06

LM358?! A gdzie odrobina finezji? :)
Na wypadek, gdyby temat jeszcze kogoś zainteresował:
http://www.edn.com/archives/1997/030397/05di_01.htm
Brakujące obrazki: 05q19941..5 można znaleźć w katalogu:
http://www.edn.com/archives/1997/030397/images/
Dla bardziej wytrwałych:
http://www.isi.edu/~draper/papers/mwscas05_bhatti.pdf

Wróć do „PLD/FPGA i inne zagadnienia techniki cyfrowej”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 15 gości