PWM, czyli modulacja szerokości impulsu, to sposób sterowania średnią wartością napięcia, prądu albo mocy przez szybkie przełączanie sygnału między stanem włączonym i wyłączonym. Amplituda impulsów zwykle się nie zmienia. Zmienia się wypełnienie, czyli część okresu, przez którą sygnał pozostaje w stanie wysokim.
PWM nie jest prawdziwym wyjściem analogowym. To przebieg cyfrowy ON/OFF, który może zostać uśredniony przez bezwładność obciążenia, filtr dolnoprzepustowy albo elektronikę sterującą. Dlatego PWM nadaje się do regulacji jasności LED, prędkości silników DC, mocy grzałek, sterowania przetwornicami i generowania prostych sygnałów podobnych do analogowych.
Co to jest PWM?
W sygnale PWM okres jest zwykle stały, a zmienia się czas stanu wysokiego. Jeżeli impuls trwa krótko, średnia wartość sygnału jest niska. Jeżeli impuls zajmuje większość okresu, średnia wartość jest wysoka.
| Pojęcie | Znaczenie | Przykład |
|---|---|---|
| T | okres jednego cyklu PWM | 50 µs dla 20 kHz |
| f_{\mathrm{PWM}} | częstotliwość przełączania | 500 Hz, 20 kHz, 100 kHz |
| t_{\mathrm{ON}} | czas stanu wysokiego | 15 µs przy 30% z 50 µs |
| t_{\mathrm{OFF}} | czas stanu niskiego | 35 µs przy 30% z 50 µs |
| D | wypełnienie sygnału | 0,3 albo 30% |
W mikrokontrolerach PWM jest zwykle generowany przez timer i wyprowadzany na pin cyfrowy. Dlatego warto rozumieć, czym jest digital pin oraz jak działa zwykły pin w układzie elektronicznym.
Okres, częstotliwość i wypełnienie PWM
Okres PWM jest odwrotnością częstotliwości:
T=\frac{1}{f_{\mathrm{PWM}}}Wypełnienie:
D=\frac{t_{\mathrm{ON}}}{T}W procentach:
D[\%]=\frac{t_{\mathrm{ON}}}{T}\cdot100\%Czas włączenia i wyłączenia:
t_{\mathrm{ON}}=D\cdot T t_{\mathrm{OFF}}=(1-D)\cdot TPrzykład: PWM 20 kHz ma okres:
T=\frac{1}{20000}=50\ \mu\mathrm{s}Dla wypełnienia 30%:
t_{\mathrm{ON}}=0{,}3\cdot50\ \mu\mathrm{s}=15\ \mu\mathrm{s} t_{\mathrm{OFF}}=0{,}7\cdot50\ \mu\mathrm{s}=35\ \mu\mathrm{s}Średnie napięcie, RMS i moc
Dla sygnału PWM przełączanego między 0 V i U średnie napięcie można oszacować tak:
U_{\mathrm{avg}}=D\cdot UPrzy sygnale 5 V i wypełnieniu 30%:
U_{\mathrm{avg}}=0{,}3\cdot5\ \mathrm{V}=1{,}5\ \mathrm{V}To nie znaczy, że pin wystawia stałe 1,5 V. Pin nadal przełącza się między 0 V i 5 V. Średnią wartość widzi dopiero obciążenie, filtr albo układ pomiarowy.
Dla prostokątnego PWM 0–U wartość skuteczna wynosi:
U_{\mathrm{RMS}}=U\sqrt{D}Dla obciążenia rezystancyjnego średnia moc:
P_{\mathrm{avg}}=\frac{U_{\mathrm{RMS}}^2}{R}=\frac{D\cdot U^2}{R}To rozróżnienie ma znaczenie. Przy filtrze RC albo jasności LED często mówi się o wartości średniej. Przy grzaniu rezystora, stratach mocy i obciążeniach energetycznych trzeba patrzeć na RMS i moc.
Jeżeli trzeba szybko policzyć zależności między napięciem, prądem, rezystancją i mocą, najprościej użyć kalkulatora prawa Ohma. Przy obciążeniach prądowych kluczowe jest też natężenie prądu elektrycznego, bo to ono decyduje o obciążeniu tranzystora, przewodów i elementu wykonawczego.
PWM a filtr RC
PWM może zostać zamieniony na sygnał podobny do analogowego przez filtr dolnoprzepustowy. Najprostszy filtr RC tłumi szybkie przełączanie i zostawia wolnozmienną składową średnią.
Częstotliwość graniczna filtra RC:
f_c=\frac{1}{2\pi RC}Żeby filtracja miała sens, częstotliwość PWM powinna być dużo większa od częstotliwości granicznej filtra:
f_{\mathrm{PWM}}\gg f_cJeżeli f_{\mathrm{PWM}} jest za niska albo filtr ma zbyt wysoką częstotliwość graniczną, na wyjściu zostaną duże tętnienia. PWM z filtrem RC nie jest automatycznie pełnoprawnym DAC. Jest prostym sposobem uzyskania napięcia uśrednionego, którego jakość zależy od częstotliwości PWM, filtra i obciążenia.
Ten fragment naturalnie łączy się z tematem filtrów elektrycznych, bo filtr decyduje, ile składowej przełączającej zostanie na wyjściu.
PWM w mikrokontrolerze: timer i rozdzielczość
W mikrokontrolerze PWM zwykle generuje timer. Jeden rejestr ustala okres, drugi ustala moment przełączenia. W rodzinach STM32 typowy model to ARR jako rejestr okresu i CCR jako rejestr porównania.
Uproszczony wzór na częstotliwość PWM:
f_{\mathrm{PWM}}=\frac{f_{\mathrm{timer}}}{(PSC+1)(ARR+1)}Wypełnienie:
D=\frac{CCR}{ARR+1}Rozdzielczość PWM to liczba możliwych poziomów wypełnienia. 8 bitów daje 256 poziomów, 10 bitów daje 1024 poziomy, a 16 bitów daje 65536 poziomów. Im wyższa częstotliwość PWM przy tym samym zegarze timera, tym mniej miejsca zostaje na dużą wartość ARR, więc często spada dostępna rozdzielczość.
| Rozdzielczość | Liczba poziomów | Typowy kontekst |
|---|---|---|
| 8 bitów | 256 | Arduino, proste sterowanie LED, podstawowe PWM. |
| 10 bitów | 1024 | płynniejsza regulacja jasności albo mocy. |
| 12-16 bitów | 4096-65536 | precyzyjne sterowanie, napędy, audio, zasilacze, sterowanie przemysłowe. |
W Arduino użytkownik często widzi tylko funkcję analogWrite() i wartości 0-255. Pod spodem nadal pracuje timer, preskaler, rejestr okresu i sprzętowe wyjście PWM. Dla początkującego kontekstu warto zobaczyć podstawy Arduino oraz programowanie Arduino.
PWM przy LED, silniku i grzałce
To samo PWM zachowuje się inaczej w zależności od obciążenia. LED, silnik i grzałka uśredniają sygnał w inny sposób.
| Obciążenie | Co uśrednia PWM? | Najważniejszy warunek |
|---|---|---|
| LED | oko i czas świecenia impulsów | prąd impulsowy musi być ograniczony rezystorem albo driverem |
| Silnik DC | indukcyjność uzwojeń i bezwładność mechaniczna | potrzebna ścieżka dla prądu po wyłączeniu tranzystora |
| Grzałka | bezwładność cieplna | liczy się moc średnia, obciążalność elementu i przewodów |
| Filtr RC | kondensator i rezystor | f_{\mathrm{PWM}} musi być znacznie wyższa niż pasmo sygnału |
Przy LED przydatne są hasło dioda i kalkulator rezystora do LED, bo PWM zmienia czas świecenia, a nie podstawowe wymagania elektryczne elementu.
Przy silniku DC prąd nie znika natychmiast po wyłączeniu tranzystora, bo uzwojenie ma indukcyjność. Potrzebna jest dioda swobodnego biegu, MOSFET synchroniczny albo poprawny mostek H. Bez tego przepięcia mogą uszkodzić tranzystor lub mikrokontroler.
MOSFET, driver i dead time
PWM z pinu mikrokontrolera zwykle steruje tylko wejściem drivera albo bramką tranzystora. Obciążenia mocy nie zasila się bezpośrednio z pinu. Od tego jest element wykonawczy: MOSFET, tranzystor, driver, mostek H albo gotowy moduł mocy.
Dla MOSFET-a liczą się straty przewodzenia, straty przełączania, ładunek bramki i sposób sterowania. Uproszczone straty przewodzenia:
P_{\mathrm{cond}}\approx I^2R_{\mathrm{DS(on)}}DStraty przełączania rosną z częstotliwością PWM:
P_{\mathrm{sw}}\sim f_{\mathrm{PWM}}Wyższa częstotliwość może zmniejszyć tętnienia albo wyprowadzić dźwięk poza pasmo słyszalne, ale zwiększa straty przełączania i wymagania dla drivera. Nie zawsze większa częstotliwość jest lepsza.
W półmostku i mostku H pojawia się dead time, czyli krótka przerwa między wyłączeniem jednego tranzystora a włączeniem drugiego. Bez dead time górny i dolny tranzystor tej samej gałęzi mogą przewodzić jednocześnie. To powoduje shoot-through, czyli zwarcie zasilania przez tranzystory.
Częstotliwość PWM, piszczenie i zakłócenia
Częstotliwość PWM wpływa na widoczne migotanie LED, słyszalne piszczenie silnika, tętnienia po filtrze, straty przełączania i zakłócenia elektromagnetyczne.
| Sytuacja | Skutek |
|---|---|
| Zbyt niska częstotliwość przy LED | migotanie, artefakty na kamerze, męczący efekt przy ruchu |
| Zbyt niska częstotliwość przy silniku | piszczenie, pulsacja momentu, większe tętnienia prądu |
| Bardzo wysoka częstotliwość | większe straty przełączania, większe wymagania dla drivera |
| Długie przewody do obciążenia | większe EMI, pętle prądowe, ryzyko przepięć |
| Szybkie zbocza | duże dv/dt i di/dt, zakłócenia w masie i zasilaniu |
Jeżeli PWM przełącza ampery w przewodach do silnika albo taśmy LED, trzeba myśleć o pętli prądowej, masie, diodzie, filtrze, snubberze i prowadzeniu przewodów. To nadal sygnał cyfrowy, ale skutki przełączania są analogowe i energetyczne.
PWM jest jednym ze sposobów generowania przebiegu okresowego, więc od strony częstotliwości łączy się z pojęciem oscylatora. Przy sterowaniu większymi napędami temat może przejść w kierunku falowników i przemienników częstotliwości, ale w prostym układzie DC PWM oznacza szybkie przełączanie obciążenia z określonym wypełnieniem.
PWM — najważniejszy wniosek
PWM steruje średnią wartością napięcia, prądu lub mocy przez zmianę wypełnienia impulsów, a nie przez płynną zmianę amplitudy. Do poprawnego użycia trzeba znać częstotliwość, okres, duty cycle, wartość średnią, RMS, rozdzielczość timera, typ obciążenia i skutki przełączania. Przy LED liczy się prąd impulsowy i migotanie, przy silniku ścieżka dla prądu indukcyjnego, przy filtrze RC tętnienia, a przy MOSFET-ach straty, driver i dead time.
