roRomânia limbi

Ce este PWM?

Nov 11, 2025

Lăsaţi un mesaj

PWM înseamnă Pulse Width Modulation. Porniți și opriți tensiunea la o frecvență fixă, schimbând raportul dintre timpul de pornire și timpul de oprire-pentru a controla furnizarea medie de energie. Asta este. Restul se ocupă doar de consecințe.

Mecanismul de bază

 

Luați o sursă de 12 V care conduce un LED care are nevoie de 3 V. În mod normal, ați folosi un rezistor sau un regulator liniar, ardeți 9V ca căldură. Deșeuri stupide. Cu PWM, porniți și opriți întreaga tensiune de 12 V suficient de repede încât masa termică a LED-ului să o depășească în medie. 25% ciclu de funcționare vă oferă aproximativ 3V echivalent. LED-ul vede 12V → 0V → 12V → 0V la poate 1kHz, dar nu se poate răci și încălzi atât de repede, așa că luminozitatea rămâne constantă.

Frecvența contează. Prea lent (sub 100 Hz) și obțineți o pâlpâire vizibilă. Unii oameni văd pâlpâire până la 200 Hz. De obicei, rulez LED-uri la 20 kHz doar pentru a fi sigur-, de asemenea, îl mențin în afara domeniului audibil dacă există vreo cuplare mecanică. Viteza de comutare afectează și pierderile, dar vom ajunge la asta.

Matematică: dacă perioada dvs. este T și{0}}ora este t, ciclul de lucru D=t/T. Simplu. Puterea furnizată este de aproximativ D × V_alimentare × I_sarcină, minus pierderile. Acele pierderi sunt acolo unde lucrurile devin interesante.

 

De ce oamenii îl folosesc - motive reale

 

Primul motiv: eficienta. MOSFET în saturație scade poate cu 0,1-0,2V la curenți rezonabili. MOSFET off consumă microamperi. Deci fie disipați (0,1 V × curent), fie practic nimic. Compară asta cu un regulator liniar care scade continuu 9V la curent maxim. Diferența de viață a bateriei este de 40-50x în unele cazuri, fără a exagera.

În al doilea rând: puteți folosi surse de alimentare mai ieftine. Trebuie să conduceți un motor de 48 V la viteză variabilă? Cu control analogic aveți nevoie de o sursă variabilă scumpă de 0-48V. Cu PWM folosești o sursă fixă ​​de 48V (ieftin) și un MOSFET (de asemenea ieftin). Făcut.

Al treilea motiv despre care nimeni nu vorbește: achiziții. Încercați să găsiți o sursă analogă variabilă bună în volum. Perioadele de livrare sunt de minim 26 de săptămâni de la producători decente. MOSFET-uri? Totul este în stoc la Digikey. Când producția țipă la tine, asta contează mai mult decât costul BOM.

 

PWM

 

Probleme reale de implementare

 

EMI te va strica. Prima dată când am făcut o placă PWM cu curent ridicat-(120A pentru un motor de curent continuu), aceasta a ucis magistrala CAN pe același vehicul. Pachetele necorupte-complet moarte. S-a dovedit că sunetul unității porții mele se cupla prin masa șasiului, inducând vârfuri de 40V pe perechea diferențială CAN. S-au adăugat margele de ferită, au mutat terenuri, încă mai aveau probleme. În cele din urmă, a trebuit să adăugați un filtru pi la alimentarea motorului și să separe planurile de masă cu o conexiune unică-punct. A luat trei turații de bord.

Unitatea de poartă este mai grea decât pare. Aveți nevoie de impedanță scăzută de la driver la poarta MOSFET-Inductanța de urmărire contează la di/dt ridicat. Am văzut că 10 nH de inductanță de urmă provoacă vârfuri de tensiune de 50 V în timpul comutării (V=L × di/dt). Este suficient pentru a trece printr-un MOSFET de 60 V. Oamenii se ceartă cu privire la matematică, dar am văzut-o pe domeniu: comutarea curentului de 3A/ns în 10nH vă oferă un vârf de 30V. Adăugați tensiunea de alimentare și ați depășit valoarea maximă absolută.

Apoi există trage-în poduri H-. TREBUIE să aveți timp mort între oprirea FET-ului-inferioară și pornirea laturii-înalte (și invers). Timp mort zero înseamnă că ambele FET conduc simultan-scurt direct de la alimentare la masă prin rezistențele canalului FET. 50A până la 0,01Ω de două ori este încă 1000A pentru microsecundele înainte ca lucrurile să explodeze. Modul de defectare este spectaculos: mic crater în siliciu, FET-ul se scurtează permanent, scoate tot ce se află în lanț.

Dar prea mult timp mort și dioda corpului conduce în timpul perioadei moarte. Diodele de corp au o scădere teribilă-înaintea mare (1-2V), recuperare lentă. Pierzi eficiența și generezi mai multă căldură. De obicei, compromisul este de 100-500 ns, în funcție de caracteristicile de comutare ale FET-ului.

 

Selectarea frecvenței nu este evidentă

 

Primul instinct al tuturor: frecvență mai mare=inductori/condensatori mai mici=mai ieftini. Uneori adevărat. Dar pierderile de comutare cresc odată cu frecvența-pierdeți energie de fiecare dată când FET trece. ESComutare ≈ 0,5 × Valimentare × Isarcină × (trise + tfall) × fsw. Dublați frecvența, dublați pierderile de comutare.

Pentru acționările cu motor, 20kHz este obișnuit. Peste cele audibile, constantele de timp mecanice nu le pasă. Dar într-o sursă de alimentare pentru laptop vedeți 300 kHz-1MHz. De ce? Magnetici mai mici. Un inductor de 1 MHz este fizic 1/50 din dimensiunea unui inductor de 20 kHz cu aceeași inductanță. Este enorm pentru dispozitivele portabile. Compensația este că aveți nevoie de FET-uri mai rapide (Qg mai scăzut), un aspect mai bun, un design mai atent al driverului.

Audio (amplificatori de clasa D) rulează 250 kHz-1MHz. Sub 200 kHz și puteți auzi frecvența purtătoarei ca un zgomot-înalt. Peste 1MHz și începi să te lupți cu interferența radio AM. Majoritatea modelelor se stabilesc la 400-500 kHz, filtrul trece-jos la poate 50 kHz pentru a elimina purtătorul.

Exemplu real: am făcut o dată un convertor buck de 500 kHz, am încercat să trec la 1 MHz pentru a micșora placa. Eficiența a scăzut cu 4% (88% până la 84%). Aceasta înseamnă căldură suplimentară de 8W într-o sursă de 200W. Aveam nevoie de un radiator mai mare, am pierdut toate economiile de spațiu de la inductorul mai mic. A rămas la 500 kHz.

 

PWM

 

Limite de rezoluție

 

PWM de 8-biți (256 de pași) sună bine până când încercați să diminuați un LED fără probleme de la 100% la 0%. Sub 10% ciclu de utilizare veți obține pași vizibili în luminozitate. Ochiul uman este logaritmic - mult mai sensibil la schimbările la niveluri scăzute de lumină. Aveți nevoie de minimum 12 biți (4096 de pași) pentru o diminuare lină pe întreaga gamă.

Dar iată problema: 12 biți la 20 kHz înseamnă că aveți nevoie de un cronometru de 20 kHz × 4096=81.92MHz. Nu toate micro-urile pot face asta. Și dacă aveți nevoie de mai multe canale PWM independente pe 12 biți, vă uitați la periferice de cronometru dedicate sau un FPGA.

Soluție: utilizați PWM pe 8-biți, dar ajustați frecvența în mod dinamic. La luminozitate ridicată rulează 20 kHz, la luminozitate scăzută scade la 100 Hz. Vă oferă pași mai buni acolo unde aveți nevoie. Dar acum aveți de rezolvat EMI cu frecvență variabilă. Nimic nu e gratis.

 

Când lucrurile devin mari

 

VFD-urile industriale (variatoare de frecvență) comută sute de amperi la 480 VAC. Strategia de control este mai complexă-modulație vectorială spațială, control-orientat pe câmp, orice-dar dedesubt este încă PWM care comută șase IGBT-uri într-o punte trifazată.

Diferențele la această scară:

Driverele de poartă au nevoie de surse izolate de 15V. Adică 6 surse izolate care plutesc la potențiale diferite până la 680VDC (rectificat 480VAC). Fiecare driver are nevoie de propria sa putere, propriul rezistor de poartă (0,5-2Ω tipic), propria sa protecție la supracurent.

Timpul mort crește la 2-5µs deoarece IGBT-urile sunt mai lente decât MOSFET-urile

dv/dt filtrează la ieșire, deoarece capacitatea cablului motorului plus marginile de comutare rapidă provoacă curenți uriași-modului comun. Am măsurat 20 A de curent-mod comun pe un cablu de motor de 5 CP, complet separat de curentul motorului. De aceea aveți nevoie de cabluri ecranate și împământare adecvată.

Termic: chiar și 2% pierdere la 50kW înseamnă 1kW de căldură. Răcire cu apă cu comutatoare de debit și blocare de temperatură. Dacă debitul de lichid de răcire scade sub prag, controlerul dezactivează imediat ieșirile. Sistemele văzute ard pentru că cineva a uitat să verifice nivelul lichidului de răcire.

Selectarea componentelor devine ciudată. Un IGBT evaluat pentru 100 A continuu poate suporta doar 80 A la 50 de grade ambientale, 60 A la 70 de grade. Dar pornirea unui motor mare trage curentul nominal de 6x timp de câteva secunde. Deci dimensionați pentru vârf, nu pentru starea de echilibru-, apoi reduceți pentru temperatură. Ajungeți cu un IGBT de 300A pentru o aplicație „100A”. Costul BOM face achizițiile foarte nefericite.

 

Specificul microcontrolerului

 

Temporizatoare STM32: majoritatea au PWM pe 16 biți, unele modele merg la 32 biți, dar rar ai nevoie de el. Ceea ce contează mai mult este numărul de canale de comparare și de ieșiri complementare. TIM1 și TIM8 din seria F4 au patru canale de comparare fiecare cu ieșiri complementare și inserție programabilă de timp mort. Perfect pentru controlul motorului.

Problemă: toate canalele PWM de pe un temporizator sunt sincronizate cu același contor. Dacă aveți nevoie de frecvențe independente, aveți nevoie de cronometre separate. Și există doar atât de multe cronometre cu funcții avansate. Pe STM32F4 primești TIM1, TIM8 pentru control avansat. TIM2-5 pentru PWM de bază. TIM9-14 sunt pe 16 biți fără generare de timp mort. Epuizați rapid dacă aplicația are nevoie de mai multe semnale PWM izolate.

S-au văzut modele în care au -bang PWM în software deoarece au rămas fără canale de cronometru. Îngrozitoare idee. Jitter, overhead CPU, inversare de prioritate când alte întreruperi declanșează. Plătiți doar 2 USD în plus pentru un micro cu mai multe cronometre sau utilizați un circuit integrat PWM extern (cum ar fi PCA9685). Sinele tău viitor îți va mulțumi.

ESP32 are 16 canale PWM folosind perifericul LED PWM. Sună grozav, cu excepția faptului că toate sunt derivate dintr-un ceas APB de 80 MHz și divizori de partajare în grupuri. Vrei frecvențe diferite? Sper că sunt rapoarte întregi. De asemenea, rezoluția scade pe măsură ce frecvența crește, deoarece folosește același ceas de bază. La 20 kHz obțineți 12 biți, la 40 kHz sunteți redus la 11 biți etc. Fișa de date nu face acest lucru evident.

 

Mai multe lucruri exotice

 

Spread-spectrum PWM: în loc de frecvență fixă, o diferiți ±10% aleatoriu. Răspândește EMI într-un interval de frecvență mai larg, reduce emisiile de vârf. Ajută la trecerea testelor FCC/CE fără la fel de mult hardware de filtrare. Cele mai multe cipuri SMPS moderne au acest lucru încorporat. Cypress PSoC vă permite chiar să controlați modelul de dithering-dinți de ferăstrău, triunghiular, pseudo-aleatoriu.

PWM intercalat: rulați mai multe convertoare defazate. Două convertoare la o schimbare de fază de 180 de grade înseamnă că condensatorul de intrare vede jumătate din curentul de ondulare. Patru convertoare la o schimbare de fază de 90 de grade-sferturi din ondulație. Dar acum aveți nevoie de sincronizare precisă de fază între canale și de echilibrare a sarcinii, astfel încât să împartă curentul în mod egal. De obicei, are nevoie de un controler IC dedicat, cu excepția cazului în care micro-ul are suficiente resurse.

FET-urile GaN pot comuta sub 10 ns. Deschide frecvențe PWM de 10 MHz+-Inductoarele devin minuscule, aproape doar urme PCB. Dar: aspectul plăcii este critic, unitatea de poartă necesită o atenție serioasă, orice inductanță provoacă o depășire masivă. Nu pentru începători. Am văzut un design GaN sunet la 2x VDD, deoarece cineva a folosit un driver de poartă standard cu o lungime de 5 cm. FET-ul nu a supraviețuit.

 

PWM

 

Ce fac de fapt

 

Pentru majoritatea lucrurilor: 20 kHz, temporizator hardware PWM, rezoluție de 10-biți. O mulțime pentru controlul motorului și diminuarea LED-urilor. Adăugați un circuit integrat al driverului de poartă (curente de vârf minim 2A), capace ceramice cu ESR scăzut chiar la scurgerea FET, planul de masă gras. Verificați formele de undă de comutare cu un scop pe primul prototip, așteptați-vă să repetați o dată.

Pentru orice peste 10A, simulare termică continuă înainte de aranjare. Folosesc ANSYS, dar chiar și FEA de bază prinde majoritatea problemelor. Exportați straturile de cupru cu pierderi ca surse de căldură, setați condițiile limită, verificați dacă ceva atinge temperatura de joncțiune de 125 de grade la temperatura ambientală maximă. De obicei, aveți nevoie de radiatoare sau aer forțat dacă comutați mai mult de 50 W.

Și testați-l la temperatură. Testarea la temperatura camerei detectează poate 60% dintre probleme. Cutia fierbinte-la 70 de grade ambiant timp de 8 ore găsește restul-fuga termic, schimbarea pragului de poartă, creșterea ESR a condensatorului. M-a costat o săptămână o dată când un design a funcționat bine la 25 de grade, dar FET-ul s-a blocat la 65 de grade, deoarece nu am ținut cont de coeficientul de temperatură al tensiunii de prag.

Acesta este PWM. Concept simplu, detalii nesfârșite.

 

Acesta este PWM. Concept simplu, detalii nesfârșite.

Ultimul lucru: dacă faci chestii PWM alimentate cu baterie-, nu ieftini celulele. Am încercat o dată niște pachete de litiu fără-nume-nu au putut face față curentului de ondulare, tensiunea a scăzut sub sarcină, întregul sistem sa deteriorat. S-a schimbat la corectbaterie ionică cu litiumodule cu rating C-decent, problema a dispărut. Suplimentarul de 15 USD pe pachet m-a scutit de trei apeluri de asistență pe săptămână.

Trimite anchetă