PWM je skraćenica od Pulse Width Modulation. Uključujete i isključujete napon na fiksnoj frekvenciji, mijenjajući omjer-vremena i vremena isključenja{2}}da kontrolišete prosječnu isporuku snage. To je to. Ostalo je samo suočavanje sa posledicama.
Osnovni mehanizam
Uzmite napajanje od 12V koji pokreće LED koji treba 3V. Obično biste koristili otpornik ili linearni regulator, spalili 9V kao toplinu. Glupi otpad. Sa PWM-om uključujete i isključujete punih 12V dovoljno brzo da toplinska masa LED-a u prosjeku iznosi . 25% radnog ciklusa daje otprilike 3V ekvivalent. LED vidi 12V → 0V → 12V → 0V na možda 1kHz, ali ne može se tako brzo ohladiti i zagrijati, tako da svjetlina ostaje konstantna.
Učestalost je bitna. Presporo (ispod 100Hz) i dobijate vidljivo treperenje. Neki ljudi vide treperenje do 200Hz. Obično koristim LED zatamnjenje na 20kHz samo da bih bio siguran-također ga drži izvan čujnog opsega ako postoji bilo kakva mehanička veza. Brzina prebacivanja utiče i na gubitke, ali doći ćemo do toga.
Matematika: ako je vaš period T i vrijeme uključenja je t, radni ciklus D=t/T. Jednostavno. Isporučena snaga je otprilike D × V_napajanje × I_opterećenje, minus gubici. U tim gubicima stvari postaju zanimljive.
Zašto ga ljudi koriste - pravih razloga
Prvi razlog: efikasnost. MOSFET u zasićenju pada možda 0.1-0.2V pri razumnim strujama. MOSFET isključen troši mikroampere. Dakle, ili rasipate (0,1V × struja) ili u osnovi ništa. Uporedite to sa linearnim regulatorom koji neprekidno pada 9V pri punoj struji. Razlika u trajanju baterije je 40-50x u nekim slučajevima, bez pretjerivanja.
Drugo: možete koristiti jeftinija napajanja. Trebate voziti motor od 48 V promjenjivom brzinom? Sa analognom kontrolom treba vam skupo varijabilno napajanje od 0-48V. Sa PWM-om koristite fiksno napajanje od 48 V (jeftino) i MOSFET (takođe jeftino). Gotovo.
Treći razlog o kome niko ne govori: nabavka. Pokušajte nabaviti dobar promjenjivi analogni izvor zapremine. Rok isporuke je minimalno 26 sedmica od pristojnih proizvođača. MOSFETs? Sve je na lageru u Digikeyju. Kada vam proizvodnja vrište, ovo je važnije od troškova BOM-a.

Stvarni problemi implementacije
EMI će te sjebati. Prvi put kada sam radio -PWM ploču velike struje (120A za DC motor), ugasila je CAN sabirnicu na istom vozilu. Neoštećeni paketi-potpuno mrtvi. Ispostavilo se da se moj gejt drajv spojio kroz masu šasije, izazivajući 40V šiljke na CAN diferencijalnom paru. Dodate feritne perle, pomjeriti teren, i dalje je bilo problema. Na kraju je morao dodati pi filter na napajanje motora i odvojiti uzemljene ravnine sa jednom-tačkom veze. Napravio tri okretaja ploče.
Pogon na kapiji je teži nego što izgleda. Potrebna vam je niska impedancija od vašeg drajvera do MOSFET kapije-induktivnost traga je važna pri visokim di/dt. Vidio sam da 10nH induktivnosti u tragovima uzrokuje skokove napona od 50V tokom prebacivanja (V=L × di/dt). To je dovoljno da se probije MOSFET od 60V. Ljudi se svađaju oko matematike, ali ja sam to vidio u opsegu: 3A/ns prebacivanje struje u 10nH daje vam skok od 30V. Dodajte napon napajanja i prekoračili ste apsolutni maksimum.
Zatim slijedi pucanje-kroz H-mostove. MORATE imati vrijeme između isključivanja FET-a niske{3}}strane i uključivanja visoke-strane (i obrnuto). Nulto mrtvo vrijeme znači da oba FET-a izvode istovremeno-direktan kratki spoj od napajanja do zemlje kroz otpore FET kanala. 50A do 0,01Ω dva puta je još uvijek 1000A za mikrosekunde prije nego što stvari eksplodiraju. Režim kvara je spektakularan: mali krater u silicijumu, FET je trajno kratak, uklanja sve ostalo u lancu.
Ali previše mrtvog vremena i dioda tijela provodi tokom mrtvog perioda. Diode tijela su strašne-veliki pad naprijed (1-2V), spor oporavak. Gubite efikasnost i stvarate više toplote. Kompromis je obično 100-500ns mrtvog vremena u zavisnosti od komutacionih karakteristika vašeg FET-a.
Odabir frekvencije nije očigledan
Svačiji prvi instinkt: veća frekvencija=manji induktori/kondenzatori=jeftiniji. Ponekad istina. Ali gubici pri prebacivanju rastu sa frekvencijom-gubite energiju svaki put kada FET prelazi. ESprekidanje ≈ 0,5 × Vsupply × Iload × (trise + tfall) × fsw. Udvostručite frekvenciju, udvostručite komutacijski gubitak.
Za motorne pogone uobičajeno je 20 kHz. Iznad čujnih, mehaničke vremenske konstante ne zanimaju. Ali u napajanju laptopa vidite 300kHz-1MHz. Zašto? Manji magneti. Induktor od 1MHz je fizički 1/50 veličine od 20kHz sa istom induktivnošću. To je ogromno za prijenosne uređaje. Kompromis je što vam trebaju brži FET-ovi (niži Qg), bolji raspored, pažljiviji dizajn drajvera.
Audio (pojačala klase D) radi na 250kHz-1MHz. Ispod 200kHz i možete čuti noseću frekvenciju kao-visoko cviljenje. Iznad 1MHz i počinjete da se borite sa AM radio smetnjama. Većina dizajna se postavlja na 400-500 kHz, niskopropusni filter na možda 50 kHz da bi se uklonio nosač.
Pravi primjer: jednom sam napravio 500kHz buck konvertor, pokušao ići na 1MHz da bi smanjio ploču. Efikasnost je pala za 4% (88% na 84%). To je 8W dodatne topline u napajanju od 200W. Trebao je veći hladnjak, izgubio svu uštedu prostora zbog manjeg induktora. Ostao na 500kHz.

Granice rezolucije
8-bit PWM (256 koraka) zvuči dobro dok ne pokušate glatko zatamniti LED sa 100% na 0%. Ispod 10% radnog ciklusa dobijate vidljive korake u osvetljenosti. Ljudsko oko je logaritamsko – mnogo osjetljivije na promjene pri niskom svjetlu. Potreban je minimum od 12 bita (4096 koraka) za glatko zatamnjenje u cijelom rasponu.
Ali ovdje je kvaka: 12-bit na 20kHz znači da vam je potreban takt tajmera od 20kHz × 4096=81.92MHz. Ne mogu to svi mikroi. A ako vam treba više nezavisnih PWM kanala na 12-bitu, tražite namjenske periferne tajmere ili FPGA.
Zaobilazno rješenje: koristite 8-bitni PWM ali dinamički prilagodite frekvenciju. Pri visokoj svjetlini radi 20kHz, pri niskoj svjetlini pad na 100Hz. Daje vam finije korake tamo gde su vam potrebni. Ali sada morate da se nosite sa EMI promenljive frekvencije. Ništa nije besplatno.
Kada stvari postanu velike
Industrijski VFD (promjenjivi frekventni pretvarači) prebacuju stotine ampera na 480 VAC. Strategija upravljanja je složenija-modulacija vektora prostora, upravljanje-orijentisano na polje, šta god-ali ispod nje je i dalje PWM prebacivanje šest IGBT modula u tro-faznom mostu.
Razlike na ovoj skali:
Pokretači kapija trebaju 15V izolirano napajanje. To je 6 izolovanih izvora koji plutaju na različitim potencijalima do 680VDC (ispravljeni 480VAC). Svakom drajveru je potrebna vlastita snaga, vlastiti otpornik na kapiji (tipično 0,5-2Ω), vlastita zaštita od prekomjerne struje.
Mrtvo vrijeme se povećava na 2-5µs jer su IGBT-ovi sporiji od MOSFET-a
dv/dt filteri na izlazu jer kapacitivnost kabla motora plus brzi preklopni rubovi uzrokuju velike struje uobičajenog{0}}moda. Izmjerio sam 20A uobičajene struje-na kablu motora od 5HP, potpuno odvojeno od struje motora. Zato su vam potrebni oklopljeni kablovi i pravilno uzemljenje.
Toplota: čak 2% gubitka na 50kW je 1kW topline. Vodeno hlađenje sa prekidačima protoka i temperaturnim blokadama. Ako protok rashladne tečnosti padne ispod praga, regulator odmah deaktivira izlaze. Viđeni sistemi izgore jer je neko zaboravio da proveri nivo rashladne tečnosti.
Odabir komponenti postaje čudan. IGBT klasifikovan za 100A kontinuirano može podnijeti samo 80A pri 50 stepeni ambijenta, 60A na 70 stepeni. Ali pokretanje velikog motora povlači 6x nazivnu struju nekoliko sekundi. Dakle, odredite veličinu za vršno, a ne za stabilno- stanje, a zatim za temperaturu. Završite sa 300A IGBT za "100A" aplikaciju. Trošak BOM-a čini nabavku veoma nezadovoljnom.
Specifičnosti mikrokontrolera
STM32 tajmeri: većina ima 16-bitni PWM, neki modeli idu na 32-bitni, ali vam rijetko treba. Ono što je važnije je broj uporednih kanala i komplementarnih izlaza. TIM1 i TIM8 na seriji F4 imaju četiri kanala za upoređivanje svaki sa komplementarnim izlazima i programibilnim umetanjem vremena. Savršeno za kontrolu motora.
Problem: svi PWM kanali na jednom tajmeru su sinhronizovani sa istim brojačem. Ako su vam potrebne nezavisne frekvencije, potrebni su vam zasebni tajmeri. I postoji samo toliko tajmera s naprednim funkcijama. Na STM32F4 dobijate TIM1, TIM8 za naprednu kontrolu. TIM2-5 za osnovni PWM. TIM9-14 su 16-bitni bez generisanja mrtvog vremena. Brzo se trošite ako aplikaciji treba više izolovanih PWM signala.
Viđeni su dizajni u kojima su-upali PWM u softveru jer su ostali bez tajmerskih kanala. Užasna ideja. Jitter, CPU overhead, inverzija prioriteta kada drugi prekida vatru. Samo platite dodatnih 2 USD za mikro sa više tajmera ili koristite eksterni PWM IC (kao PCA9685). Vaše buduće ja će vam biti zahvalno.
ESP32 ima 16 PWM kanala koji koriste LED PWM periferiju. Zvuči odlično, osim što su svi izvedeni iz jednog 80MHz APB takta i dijele razdjelnike u grupama. Želite različite frekvencije? Nadam se da su cjelobrojni omjeri. Također, rezolucija se smanjuje kako frekvencija raste jer koristi isti osnovni sat. Na 20kHz dobijate 12-bit, na 40kHz se spuštate na 11-bit, itd. Datasheet ovo ne čini očiglednim.
Još egzotičnih stvari
PWM šireg{0}}spektra: umjesto fiksne frekvencije, nasumično je dither ±10%. Širi EMI u širem frekventnom opsegu, smanjuje vršne emisije. Pomaže proći FCC/CE testiranje bez toliko hardvera za filtriranje. Većina modernih SMPS čipova ima ovo ugrađeno. Cypress PSoC čak vam omogućava da kontrolišete šablon ditheringa-testerastog, trouglastog, pseudo{7}}nasumičnog.
Interleaved PWM: pokrenite više pretvarača van faze. Dva konvertora sa faznim pomakom od 180 stepeni znače da ulazni kondenzator vidi polovinu talasne struje. Četiri pretvarača sa faznim pomakom od 90 stepeni{4}}je četvrtina talasa. Ali sada vam je potrebna precizna fazna sinhronizacija između kanala i balansiranje opterećenja kako bi podjednako dijelili struju. Obično je potreban namjenski kontroler IC osim ako vaš mikro ima dovoljno resursa.
GaN FET-ovi se mogu uključiti ispod 10ns. Otvara 10MHz+ PWM frekvencije-induktori postaju sićušni, skoro samo tragovi PCB-a. Ali: raspored ploče je kritičan, pogonu vrata je potrebna ozbiljna pažnja, bilo kakva induktivnost uzrokuje ogromno prekoračenje. Nije za početnike. Vidio sam GaN dizajn prstena na 2x VDD jer je neko koristio standardni drajver kapije sa 5cm dužine traga. FET nije preživio.

Šta ja zapravo radim
Za većinu stvari: 20kHz, hardverski tajmer PWM, 10-bitna rezolucija. Dosta za kontrolu motora i LED zatamnjivanje. Dodajte IC drajvera (2A vršna struja minimum), keramičke kapice sa niskim ESR-om tačno na FET drenažu, masnu uzemljenu ravninu. Provjerite valne oblike prebacivanja s opsegom na prvom prototipu, očekujte da ćete jednom ponoviti.
Za sve iznad 10A kontinuirana, termalna simulacija prije izgleda. Koristim ANSYS, ali čak i osnovni FEA hvata većinu problema. Izvezite bakrene slojeve sa gubicima kao izvorima toplote, postavite granične uslove, proverite da li nešto dostiže temperaturu spoja od 125 stepeni pri maksimalnoj ambijentalnoj. Obično su vam potrebni rashladni elementi ili prisilni zrak ako mijenjate više od 50W.
I testirajte na temperaturi. Testiranje sobne temperature otkriva možda 60% problema. Hot-kutija na 70 stepeni ambijenta u trajanju od 8 sati pronalazi ostatak-termičkog odstupanja, pomjeranje praga kapije, povećanje ESR kondenzatora. Jednom me koštalo nedelju dana kada je dizajn dobro radio na 25 stepeni, ali je FET zakačio na 65 stepeni jer nisam uzeo u obzir temperaturni koeficijent graničnog napona.
To je PWM. Jednostavan koncept, beskonačni detalji.
To je PWM. Jednostavan koncept, beskonačni detalji.
Posljednja stvar: ako radite na baterije{0}}PWM stvari, nemojte jeftino trošiti na ćelije. Jednom sam isprobao neke litijumske pakete bez imena-nisu mogli podnijeti talasnu struju, napon je opao pod opterećenjem, cijeli sistem je pokvaren. Prebačen na ispravanjonska litijumska baterijamoduli sa pristojnim C-ocjenom, problem je nestao. Dodatnih 15 USD po paketu spasilo me je od tri poziva za podršku sedmično.

