W poniższym artykule skupimy się na jednej z zaawansowanych technik sterowania obwodami analogowymi za pomocą cyfrowych wyjść np. mikrokontrolera. Techniką tą jest tzw. modulacja szerokości impulsu lub modulacja wypełnienia przebiegu (PWM). PWM jest stosowany w wielu różnych aplikacjach, od pomiarów elektronicznych i komunikacji po kontrolę działania sterowników i mocy i przetwornic.
Obwody analogowe
Sygnał analogowy ma zmieniającą się wartość, z nieskończoną rozdzielczością zarówno pod względem czasu, jak i amplitudy. Dziewięciowoltowa bateria jest przykładem urządzenia analogowego, ponieważ jej napięcie wyjściowe nie wynosi dokładnie 9V, zmienia się ono w czasie i, zasadniczo, może przyjmować dowolną wartość rzeczywistą (w praktyce będą to napięcia w okolicach 9 V). Podobnie np. ilość prądu pobieranego z akumulatora nie jest ograniczona do skończonego zestawu możliwych wartości. Sygnały te są ciągłe, tak w czasie, jak i w amplitudzie. Sygnały analogowe można łatwo odróżnić od sygnałów cyfrowych, ponieważ te ostatnie zawsze przyjmują wartości tylko ze skończonego zestawu z góry określonych możliwości, takich jak zbiór {0 V, 5 V}. Sygnały takie nazywamy dyskretnymi. Sygnały cyfrowe są również dyskretne w czasie – wartość nie zmienia się w sposób ciągły, a jest aktualizowana co jakiś, najczęściej ściśle określony czas.
Napięcia i prądy analogowe mogą być używane do bezpośredniego kontrolowania elementów w świecie rzeczywistym (który także jest analogowy), takich jak np. głośność radia samochodowego. W prostym radiu analogowym gałka jest podłączona do potencjometra. Podczas obracania pokrętła opór rośnie lub maleje. Gdy tak się dzieje, prąd przepływający przez rezystor rośnie lub maleje. Zmienia to ilość prądu dostarczanego do głośników, zwiększając lub zmniejszając poziom głośności.
Jakkolwiek intuicyjne i proste może się wydawać sterowanie analogowe, nie zawsze jest ono atrakcyjne z punktu widzenia projektowania urządzeń elektronicznych. Budowanie systemów analogowych jest zazwyczaj istotnie droższe niż urządzeń cyfrowych. Dodatkowo systemy analogowe nastręczają znacznie więcej problemów projektowych. Po pierwsze, obwody analogowe mają tendencję do dryfowania w czasie i dlatego ich ustawienie i zapewnienie długoczasowej poprawności działania może być bardzo trudne. Dodatkowo, ich działanie jest uzależnione od wielu zewnętrznych czynników, takich jak np. temperatura. Z kolei precyzyjne obwody analogowe, które rozwiązują te problemy, mogą być bardzo duże, ciężkie i drogie. Obwody analogowe również mogą się bardzo mocno rozgrzewać z uwagi na to, że rozpraszają energię – moc strat jest proporcjonalna do spadku napięcia na elementach czynnych, pomnożonego przez prąd przez nie płynący. W niekorzystnych warunkach może powodować to konieczność odprowadzania znacznej ilości ciepła. Obwody analogowe mogą być również wrażliwe na zakłócenia. Z powodu nieskończonej rozdzielczości sygnałów, wszelkie zakłócenia lub szumy w sygnale analogowym zmieniają także jego bieżącą wartość.
Sterowanie cyfrowe
Dzięki cyfrowemu sterowaniu obwodami analogowymi koszty systemu i zużycie energii można radykalnie zmniejszyć. Można wykorzystać do tego wbudowane w wiele mikrokontrolerów przetworniki cyfrowo-analogowe. Sygnał na ich wejściu pozwala na sterowanie systemami analogowymi, jednak nie jest to optymalne rozwiązanie. Wiele mikrokontrolerów i procesorów DSP zawiera w sobie również wbudowane kontrolery PWM, co ułatwia implementację tej techniki w systemie cyfrowym. Jej wykorzystanie pozwala na łatwe sterowanie systemem analogowym poprzez układ w pełni cyfrowy.
Mówiąc w dużym skrócie, PWM to sposób cyfrowego kodowania poziomów sygnałów analogowych. Dzięki zastosowaniu liczników o wysokiej rozdzielczości możliwa jest modulacja fali prostokątnej w celu kodowania określonego poziomu sygnału analogowego. Sygnał PWM jest nadal cyfrowy, ponieważ w dowolnym momencie napięcie w sygnale jest równe albo pełnemu napięciu zasilania (stan logiczny wysoki), albo zeru (stan logiczni niski). Napięcie jest albo całkowicie włączone, albo całkowicie wyłączone. Napięcie lub prąd są doprowadzane wtedy do obciążenia analogowego poprzez klucz, który je włącza lub wyłącza za pomocą powtarzającej się serii impulsów wysokich i niskich. Czas, w jakim napięcie jest w stanie wysokim to czas, w którym zasilanie jest przyłożone do obciążenia, a czas wyłączenia to okres, w którym zasilanie to jest zupełnie odłączane. Przy wystarczającej szybkości wbudowanego w układ timera, dowolna wartość analogowa może być w ten sposób zakodowana.
Rysunek 1 po lewej stronie pokazuje trzy różne przebiegi z modulacją PWM. Pierwszy od góry przebieg pokazuje sygnał wyjściowy przy 10% wypełnienia. Oznacza to, że sygnał jest włączony przez 10% okresu, a wyłączony przez pozostałe 90%. Przebiegi poniżej pokazują modulację PWM przy, odpowiednio, 50% i 90% wypełnienia przebiegu. Te trzy sygnały PWM kodują trzy różne wartości sygnału analogowego, - 10%, 50% i 90% pełnego napięcia zasilania. Jeśli na przykład napięcie zasilające system jest równe 9 V, a cykl pracy wynosi 10%, to na wyjściu takiego modulatora powstaje sygnał analogowy 0,9 V. Wynika to z faktu, że większość urządzeń analogowych ma ograniczone pasmo – jeśli modulacja PWM jest dostatecznie szybka, z punktu widzenia układu analogowego, napięcie nie będzie impulsowe, a ciągłe o wartości równej średniej wartości sygnału, czyli właśnie temu, co wynika z szerokości impulsu w modulacji PWM.
Rysunek 2, po prawej stronie, pokazuje prosty obwód, który może być sterowany za pomocą sygnału PWM. Na rysunku bateria 9 V zasila żarówkę. Gdybyśmy zamknęli przełącznik łączący akumulator i lampę na 50ms, do żarówki przyłożone w tym czasie będzie napięcie 9 V. Gdybyśmy następnie otworzyli przełącznik na kolejne 50ms, przez żarówkę nie popłynie żaden prąd. Jeśli powtórzymy ten cykl odpowiednio szybko (dla tego rodzaju obciążenia nawet zaledwie 10 razy na sekundę), żarówka zaświeci tak, jakby była podłączona do napięcia 4,5 V (50% z 9 V). W takim przypadku mówimy, że wypełnienie sygnału wynosi 50%, a częstotliwość modulacji wynosi 10 Hz.
Większość obciążeń, zarówno indukcyjnych, jak i pojemnościowych, wymaga znacznie wyższej częstotliwości modulacji niż 10 Hz. Wyobraźmy sobie, że nasza żarówka jest włączona przez pięć sekund, a następnie wyłączona przez kolejne pięć sekund, a następnie włączona ponownie i tak dalej. Cykl pracy nadal wynosiłby 50%, ale żarówka wydawałaby się jasno zapalona przez pierwsze pięć sekund i wyłączona przez kolejne. Aby żarówka realnie „widziała” napięcie 4,5 woltów, okres modulacji musi być krótki w stosunku do czasu reakcji obciążenia na zmianę stanu przełączenia. Aby osiągnąć pożądany efekt ściemniania żarówki, konieczne jest zwiększenie częstotliwości modulacji. To samo dotyczy innych aplikacji PWM. Typowe częstotliwości modulowane wynoszą od 1 kHz do 200 kHz. Wystarczy to do szerokiej gamy zastosowań. Dobierając częstotliwość modulacji sygnału PWM dobrze jest zadbać o to, by nie kolidowała ona z innymi przebiegami w układzie – na przykład w systemie audio powinna być wyższa niż 20 kHz, by nie wchodzić w pasmo akustyczne, a w systemie wykorzystującym łączność radiową inna niż częstotliwości przebiegów radiowych, wykorzystywanych w systemie.
Kontrolery sprzętowe
Wiele mikrokontrolerów posiada w sobie wbudowane moduły do generacji przebiegów PWM. Większość typowych mikrokontrolerów z rodzin takich jak PIC, AVR czy STM32, zawiera co najmniej jeden timer, który może generować przebieg PWM. Aby rozpocząć pracę modułu PWM w typowym mikrokontrolerze, należy:
* Skonfigurować okres w timerze lub liczniku na chipie, który zapewnia falę prostokątną do modulacji.
* Ustawić czas włączenia w rejestrze sterującym PWM.
* Ustawić polaryzację wyjścia PWM.
* Uruchomić timer.
* Włączyć kontroler PWM.
Chociaż poszczególne kontrolery PWM różnych układów, różnią się szczegółami programowymi, podstawowa idea jest zasadniczo taka sama.
Komunikacja i kontrola
Jedną z zalet PWM jest to, że sygnał pozostaje cyfrowy od procesora aż do kontrolowanego systemu; nie jest wymagana konwersja cyfrowo-analogowa z wykorzystaniem problematycznych i drogich układów DAC. Dzięki utrzymaniu cyfrowego sygnału, szumy są zminimalizowane. Szum może wpływać na sygnał cyfrowy tylko wtedy, gdy jest wystarczająco silny, aby zmienić logiczną wartość 1 na logiczną wartość 0 lub odwrotnie. Jeśli tak jest w naszym układzie, to kontrolowanie systemów analogowych modulacją PWM nie jest naszym największym zmartwieniem.
Zwiększona odporność na zakłócenia to jedna z zalet wyboru PWM zamiast sterowania analogowego. Jest ona głównym powodem, dla którego PWM jest czasem wykorzystywany także do komunikacji. Przełączenie z sygnału analogowego na PWM może pozwolić na znaczne zwiększenie zasięgu systemu komunikacji. Na końcu odbiorczym odpowiednia sieć RC (rezystor-kondensator) lub LC (cewka-kondensator) może pozwolić na usunięcie z sygnału przebiegu prostokątnego i przywrócić sygnał do postaci analogowej.
PWM znajduje zastosowanie w wielu różnych systemach. Jako konkretny przykład rozważmy hamulec sterowany PWM. Krótko mówiąc, hamulec jest urządzeniem, które mocno coś dociska. W wielu hamulcach siła docisku (lub siła hamowania) jest kontrolowana przez analogowy sygnał wejściowy. Im więcej napięcia lub prądu przykłada się do hamulca, tym większy nacisk wywiera on na zatrzymywany element. Wyjście sterownika PWM można podłączyć do klucza (np. tranzystora) między zasilaniem a hamulcem. Aby wytworzyć więcej mocy hamowania, oprogramowanie musi jedynie zwiększyć wypełnienie wyjściowego sygnału PWM. Jeśli pożądana jest określona wartość ciśnienia hamowania, należy wykonać pomiary w celu ustalenia matematycznej zależności między wypełnieniem a naciskiem. (Dodatkowo, dzięki temu, że sygnał ten generowany jest przez mikrokontroler, łatwo jest oprócz samej zależności pomiędzy wypełnieniem a ciśnieniem, zawrzeć tam modyfikacje, wynikające ze zmian temperatury, zużycia hamulca etc.) Aby ustawić nacisk na hamulec na, powiedzmy, 100 psi, oprogramowanie wykona stosowne obliczenia, aby określić wypełnienie sygnału, które powinno wytworzyć taką siłę. Następnie wypełnienie sygnału PWM jest ustawiane na nową wartość i hamulec odpowiednio reaguje. Jeśli w systemie dostępny jest czujnik nacisku, wypełnienie można regulować w zamkniętej pętli sprzężenia zwrotnego, aż do uzyskania pożądanej siły hamowania.
Wykorzystanie modulacji PWM jest ekonomiczne i proste. Zajmuje to bardzo mało miejsca w systemie i jest niezwykle odporne na zewnętrzne zakłócenia. Dzięki temu, że większość mikrokontrolerów posiada wbudowany timer z możliwością generacji sygnału PWM, wykorzystanie tej technologii w Waszym kolejnym projekcie jest bardzo proste.
Źródło: https://www.embedded.com/introduction-to-pulse-width-modulation/
Obwody analogowe
Sygnał analogowy ma zmieniającą się wartość, z nieskończoną rozdzielczością zarówno pod względem czasu, jak i amplitudy. Dziewięciowoltowa bateria jest przykładem urządzenia analogowego, ponieważ jej napięcie wyjściowe nie wynosi dokładnie 9V, zmienia się ono w czasie i, zasadniczo, może przyjmować dowolną wartość rzeczywistą (w praktyce będą to napięcia w okolicach 9 V). Podobnie np. ilość prądu pobieranego z akumulatora nie jest ograniczona do skończonego zestawu możliwych wartości. Sygnały te są ciągłe, tak w czasie, jak i w amplitudzie. Sygnały analogowe można łatwo odróżnić od sygnałów cyfrowych, ponieważ te ostatnie zawsze przyjmują wartości tylko ze skończonego zestawu z góry określonych możliwości, takich jak zbiór {0 V, 5 V}. Sygnały takie nazywamy dyskretnymi. Sygnały cyfrowe są również dyskretne w czasie – wartość nie zmienia się w sposób ciągły, a jest aktualizowana co jakiś, najczęściej ściśle określony czas.
Napięcia i prądy analogowe mogą być używane do bezpośredniego kontrolowania elementów w świecie rzeczywistym (który także jest analogowy), takich jak np. głośność radia samochodowego. W prostym radiu analogowym gałka jest podłączona do potencjometra. Podczas obracania pokrętła opór rośnie lub maleje. Gdy tak się dzieje, prąd przepływający przez rezystor rośnie lub maleje. Zmienia to ilość prądu dostarczanego do głośników, zwiększając lub zmniejszając poziom głośności.
Jakkolwiek intuicyjne i proste może się wydawać sterowanie analogowe, nie zawsze jest ono atrakcyjne z punktu widzenia projektowania urządzeń elektronicznych. Budowanie systemów analogowych jest zazwyczaj istotnie droższe niż urządzeń cyfrowych. Dodatkowo systemy analogowe nastręczają znacznie więcej problemów projektowych. Po pierwsze, obwody analogowe mają tendencję do dryfowania w czasie i dlatego ich ustawienie i zapewnienie długoczasowej poprawności działania może być bardzo trudne. Dodatkowo, ich działanie jest uzależnione od wielu zewnętrznych czynników, takich jak np. temperatura. Z kolei precyzyjne obwody analogowe, które rozwiązują te problemy, mogą być bardzo duże, ciężkie i drogie. Obwody analogowe również mogą się bardzo mocno rozgrzewać z uwagi na to, że rozpraszają energię – moc strat jest proporcjonalna do spadku napięcia na elementach czynnych, pomnożonego przez prąd przez nie płynący. W niekorzystnych warunkach może powodować to konieczność odprowadzania znacznej ilości ciepła. Obwody analogowe mogą być również wrażliwe na zakłócenia. Z powodu nieskończonej rozdzielczości sygnałów, wszelkie zakłócenia lub szumy w sygnale analogowym zmieniają także jego bieżącą wartość.
Sterowanie cyfrowe
Dzięki cyfrowemu sterowaniu obwodami analogowymi koszty systemu i zużycie energii można radykalnie zmniejszyć. Można wykorzystać do tego wbudowane w wiele mikrokontrolerów przetworniki cyfrowo-analogowe. Sygnał na ich wejściu pozwala na sterowanie systemami analogowymi, jednak nie jest to optymalne rozwiązanie. Wiele mikrokontrolerów i procesorów DSP zawiera w sobie również wbudowane kontrolery PWM, co ułatwia implementację tej techniki w systemie cyfrowym. Jej wykorzystanie pozwala na łatwe sterowanie systemem analogowym poprzez układ w pełni cyfrowy.
Mówiąc w dużym skrócie, PWM to sposób cyfrowego kodowania poziomów sygnałów analogowych. Dzięki zastosowaniu liczników o wysokiej rozdzielczości możliwa jest modulacja fali prostokątnej w celu kodowania określonego poziomu sygnału analogowego. Sygnał PWM jest nadal cyfrowy, ponieważ w dowolnym momencie napięcie w sygnale jest równe albo pełnemu napięciu zasilania (stan logiczny wysoki), albo zeru (stan logiczni niski). Napięcie jest albo całkowicie włączone, albo całkowicie wyłączone. Napięcie lub prąd są doprowadzane wtedy do obciążenia analogowego poprzez klucz, który je włącza lub wyłącza za pomocą powtarzającej się serii impulsów wysokich i niskich. Czas, w jakim napięcie jest w stanie wysokim to czas, w którym zasilanie jest przyłożone do obciążenia, a czas wyłączenia to okres, w którym zasilanie to jest zupełnie odłączane. Przy wystarczającej szybkości wbudowanego w układ timera, dowolna wartość analogowa może być w ten sposób zakodowana.
Rysunek 1 po lewej stronie pokazuje trzy różne przebiegi z modulacją PWM. Pierwszy od góry przebieg pokazuje sygnał wyjściowy przy 10% wypełnienia. Oznacza to, że sygnał jest włączony przez 10% okresu, a wyłączony przez pozostałe 90%. Przebiegi poniżej pokazują modulację PWM przy, odpowiednio, 50% i 90% wypełnienia przebiegu. Te trzy sygnały PWM kodują trzy różne wartości sygnału analogowego, - 10%, 50% i 90% pełnego napięcia zasilania. Jeśli na przykład napięcie zasilające system jest równe 9 V, a cykl pracy wynosi 10%, to na wyjściu takiego modulatora powstaje sygnał analogowy 0,9 V. Wynika to z faktu, że większość urządzeń analogowych ma ograniczone pasmo – jeśli modulacja PWM jest dostatecznie szybka, z punktu widzenia układu analogowego, napięcie nie będzie impulsowe, a ciągłe o wartości równej średniej wartości sygnału, czyli właśnie temu, co wynika z szerokości impulsu w modulacji PWM.
Rysunek 2, po prawej stronie, pokazuje prosty obwód, który może być sterowany za pomocą sygnału PWM. Na rysunku bateria 9 V zasila żarówkę. Gdybyśmy zamknęli przełącznik łączący akumulator i lampę na 50ms, do żarówki przyłożone w tym czasie będzie napięcie 9 V. Gdybyśmy następnie otworzyli przełącznik na kolejne 50ms, przez żarówkę nie popłynie żaden prąd. Jeśli powtórzymy ten cykl odpowiednio szybko (dla tego rodzaju obciążenia nawet zaledwie 10 razy na sekundę), żarówka zaświeci tak, jakby była podłączona do napięcia 4,5 V (50% z 9 V). W takim przypadku mówimy, że wypełnienie sygnału wynosi 50%, a częstotliwość modulacji wynosi 10 Hz.
Większość obciążeń, zarówno indukcyjnych, jak i pojemnościowych, wymaga znacznie wyższej częstotliwości modulacji niż 10 Hz. Wyobraźmy sobie, że nasza żarówka jest włączona przez pięć sekund, a następnie wyłączona przez kolejne pięć sekund, a następnie włączona ponownie i tak dalej. Cykl pracy nadal wynosiłby 50%, ale żarówka wydawałaby się jasno zapalona przez pierwsze pięć sekund i wyłączona przez kolejne. Aby żarówka realnie „widziała” napięcie 4,5 woltów, okres modulacji musi być krótki w stosunku do czasu reakcji obciążenia na zmianę stanu przełączenia. Aby osiągnąć pożądany efekt ściemniania żarówki, konieczne jest zwiększenie częstotliwości modulacji. To samo dotyczy innych aplikacji PWM. Typowe częstotliwości modulowane wynoszą od 1 kHz do 200 kHz. Wystarczy to do szerokiej gamy zastosowań. Dobierając częstotliwość modulacji sygnału PWM dobrze jest zadbać o to, by nie kolidowała ona z innymi przebiegami w układzie – na przykład w systemie audio powinna być wyższa niż 20 kHz, by nie wchodzić w pasmo akustyczne, a w systemie wykorzystującym łączność radiową inna niż częstotliwości przebiegów radiowych, wykorzystywanych w systemie.
Kontrolery sprzętowe
Wiele mikrokontrolerów posiada w sobie wbudowane moduły do generacji przebiegów PWM. Większość typowych mikrokontrolerów z rodzin takich jak PIC, AVR czy STM32, zawiera co najmniej jeden timer, który może generować przebieg PWM. Aby rozpocząć pracę modułu PWM w typowym mikrokontrolerze, należy:
* Skonfigurować okres w timerze lub liczniku na chipie, który zapewnia falę prostokątną do modulacji.
* Ustawić czas włączenia w rejestrze sterującym PWM.
* Ustawić polaryzację wyjścia PWM.
* Uruchomić timer.
* Włączyć kontroler PWM.
Chociaż poszczególne kontrolery PWM różnych układów, różnią się szczegółami programowymi, podstawowa idea jest zasadniczo taka sama.
Komunikacja i kontrola
Jedną z zalet PWM jest to, że sygnał pozostaje cyfrowy od procesora aż do kontrolowanego systemu; nie jest wymagana konwersja cyfrowo-analogowa z wykorzystaniem problematycznych i drogich układów DAC. Dzięki utrzymaniu cyfrowego sygnału, szumy są zminimalizowane. Szum może wpływać na sygnał cyfrowy tylko wtedy, gdy jest wystarczająco silny, aby zmienić logiczną wartość 1 na logiczną wartość 0 lub odwrotnie. Jeśli tak jest w naszym układzie, to kontrolowanie systemów analogowych modulacją PWM nie jest naszym największym zmartwieniem.
Zwiększona odporność na zakłócenia to jedna z zalet wyboru PWM zamiast sterowania analogowego. Jest ona głównym powodem, dla którego PWM jest czasem wykorzystywany także do komunikacji. Przełączenie z sygnału analogowego na PWM może pozwolić na znaczne zwiększenie zasięgu systemu komunikacji. Na końcu odbiorczym odpowiednia sieć RC (rezystor-kondensator) lub LC (cewka-kondensator) może pozwolić na usunięcie z sygnału przebiegu prostokątnego i przywrócić sygnał do postaci analogowej.
PWM znajduje zastosowanie w wielu różnych systemach. Jako konkretny przykład rozważmy hamulec sterowany PWM. Krótko mówiąc, hamulec jest urządzeniem, które mocno coś dociska. W wielu hamulcach siła docisku (lub siła hamowania) jest kontrolowana przez analogowy sygnał wejściowy. Im więcej napięcia lub prądu przykłada się do hamulca, tym większy nacisk wywiera on na zatrzymywany element. Wyjście sterownika PWM można podłączyć do klucza (np. tranzystora) między zasilaniem a hamulcem. Aby wytworzyć więcej mocy hamowania, oprogramowanie musi jedynie zwiększyć wypełnienie wyjściowego sygnału PWM. Jeśli pożądana jest określona wartość ciśnienia hamowania, należy wykonać pomiary w celu ustalenia matematycznej zależności między wypełnieniem a naciskiem. (Dodatkowo, dzięki temu, że sygnał ten generowany jest przez mikrokontroler, łatwo jest oprócz samej zależności pomiędzy wypełnieniem a ciśnieniem, zawrzeć tam modyfikacje, wynikające ze zmian temperatury, zużycia hamulca etc.) Aby ustawić nacisk na hamulec na, powiedzmy, 100 psi, oprogramowanie wykona stosowne obliczenia, aby określić wypełnienie sygnału, które powinno wytworzyć taką siłę. Następnie wypełnienie sygnału PWM jest ustawiane na nową wartość i hamulec odpowiednio reaguje. Jeśli w systemie dostępny jest czujnik nacisku, wypełnienie można regulować w zamkniętej pętli sprzężenia zwrotnego, aż do uzyskania pożądanej siły hamowania.
Wykorzystanie modulacji PWM jest ekonomiczne i proste. Zajmuje to bardzo mało miejsca w systemie i jest niezwykle odporne na zewnętrzne zakłócenia. Dzięki temu, że większość mikrokontrolerów posiada wbudowany timer z możliwością generacji sygnału PWM, wykorzystanie tej technologii w Waszym kolejnym projekcie jest bardzo proste.
Źródło: https://www.embedded.com/introduction-to-pulse-width-modulation/