Ang PWM mao ang Pulse Width Modulation. Imong gipa-on ug gi-off ang boltahe sa usa ka pirmi nga frequency, giusab ang ratio sa on{1}}oras ngadto sa off-oras aron makontrol ang kasagarang paghatod sa kuryente. Mao na. Ang uban nag-atubang lang sa mga sangputanan.
Ang sukaranan nga mekanismo
Pagkuha ug 12V nga suplay nga nagmaneho sa usa ka LED nga nanginahanglan 3V. Kasagaran mogamit ka usa ka resistor o linear regulator, sunugon ang 9V ingon kainit. Buang nga basura. Uban sa PWM imong i-on ug off ang tibuok 12V nga paspas nga ang thermal mass sa LED nag-average niini. 25% nga duty cycle naghatag kanimo og halos 3V nga katumbas. Ang LED makakita sa 12V → 0V → 12V → 0V sa tingali 1kHz, apan dili kini makapabugnaw ug makapainit sa ingon ka paspas, mao nga ang kahayag magpabilin nga makanunayon.
Importante ang frequency. Hinay kaayo (ubos sa 100Hz) ug makita nimo ang pagkidlap. Ang ubang mga tawo makakita og flicker hangtod sa 200Hz. Kasagaran akong gipadagan ang LED dimming sa 20kHz aron lang luwas-dili usab kini madungog kung adunay bisan unsang mekanikal nga pagdugtong. Ang katulin sa pagbalhin makaapektar usab sa mga kapildihan, apan makaabot na kita niana.
Ang matematika: kung ang imong panahon kay T ug sa-oras kay t, duty cycle D=t/T. Yano. Ang gihatag nga kuryente halos D × V_supply × I_load, minus ang mga pagkawala. Kadtong mga kapildihan diin ang mga butang mahimong makapaikag.
Ngano nga gigamit kini sa mga tawo - tinuod nga hinungdan
Unang rason: efficiency. Ang MOSFET sa saturation mikunhod tingali 0.1-0.2V sa makatarunganon nga mga sulog. Ang MOSFET off nagkuha og mga microamp. Mao nga nag-dissipating ka (0.1V × karon) o sa panguna wala. Itandi kana sa usa ka linear regulator nga naghulog sa 9V sa bug-os nga kasamtangan nga padayon. Ang kalainan sa kinabuhi sa baterya mao ang 40-50x sa pipila ka mga kaso, dili pagpasobra.
Ikaduha: magamit nimo ang mas barato nga suplay sa kuryente. Kinahanglan nga magmaneho sa usa ka 48V nga motor sa lainlain nga tulin? Uban sa analog control kinahanglan nimo ang usa ka mahal nga variable nga 0-48V nga suplay. Sa PWM naggamit ka usa ka pirmi nga 48V nga suplay (barato) ug usa ka MOSFET (barato usab). Nahuman na.
Ikatulo nga rason nga walay naghisgot mahitungod sa: pagpamalit. Sulayi ang pagpangita sa usa ka maayo nga variable nga analog nga suplay sa gidaghanon. Ang mga oras sa pagpanguna mao ang 26 ka semana nga minimum gikan sa disenteng mga tiggama. Mga MOSFET? Ang tanan anaa sa stock sa Digikey. Kung ang produksiyon nagsinggit kanimo, kini labi ka hinungdanon kaysa sa gasto sa BOM.

Tinuod nga mga problema sa pagpatuman
Ang EMI magsamok kanimo. Unang higayon nga naghimo ko og taas-kasamtang PWM board (120A para sa DC motor), gipatay niini ang CAN bus sa samang sakyanan. Dili dunot nga mga pakete-hingpit nga patay. Ang akong gate drive ringing kay nagdugtong sa chassis ground, nga nag-aghat sa 40V spikes sa CAN differential pair. Gidugang ang ferrite beads, gibalhin ang yuta sa palibot, adunay mga isyu. Sa kadugayan kinahanglan nga magdugang ug pi filter sa suplay sa motor ug ibulag ang mga eroplano sa yuta nga adunay usa ka-punto nga koneksyon. Gikuha ang tulo ka board revs.
Ang pagmaneho sa ganghaan mas lisud kaysa kini tan-awon. Kinahanglan nimo ang ubos nga impedance gikan sa imong drayber ngadto sa MOSFET gate-pagsubay sa mga butang nga inductance sa taas nga di/dt. Nakakita kog 10nH sa trace inductance hinungdan sa 50V voltage spikes atol sa switching (V=L × di/dt). Igo na kana sa pagsumbag pinaagi sa usa ka 60V nga gi-rate nga MOSFET. Ang mga tawo makiglalis bahin sa matematika apan nakita nako kini sa sakup: 3A / ns nga pagbalhin sa karon sa 10nH naghatag kanimo 30V spike. Idugang ang boltahe sa suplay ug labaw ka sa hingpit nga labing taas nga rating.
Unya naay shoot-through sa H-bridges. KINAHANGLAN naa kay deadtime tali sa pagpalong sa ubos nga -kilid FET ug sa pagliko sa taas-nga kilid (ug vice versa). Ang zero deadtime nagpasabot nga ang duha ka FET naglihok nga dungan-direkta nga mubo gikan sa suplay ngadto sa yuta pinaagi sa FET channel resistances. 50A hangtod sa 0.01Ω kaduha 1000A gihapon alang sa microseconds sa dili pa mobuto ang mga butang. Talagsaon ang mode sa kapakyasan: gamay nga crater sa silicon, ang FET permanente nga mubu, gikuha ang tanan sa kadena.
Apan daghan kaayo nga deadtime ug ang body diode nagpahigayon sa panahon sa patay nga panahon. Ang mga diode sa lawas makalilisang-taas nga pag-us-os sa unahan (1-2V), hinay nga pagkaayo. Mawad-an ka sa kahusayan ug makamugna og dugang nga kainit. Ang trade-off kasagaran 100-500ns nga deadtime depende sa imong FET nga mga kinaiya sa pagbalhin.
Ang pagpili sa frequency dili klaro
Unang instinct sa tanan: mas taas nga frequency=mas gagmay nga inductors/capacitors=mas barato. Usahay tinuod. Apan ang pag-ilis sa mga pagkawala motaas uban ang kasubsob-mawad-an ka og kusog matag higayon nga ang FET mobalhin. ESwitching ≈ 0.5 × Vsupply × Iload × (trise + tfall) × fsw. Doble ang frequency, doble ang pagkawala sa switch.
Alang sa mga motor drive, kasagaran ang 20kHz. Labaw sa madungog, ang mekanikal nga mga makanunayon sa oras wala magtagad. Apan sa usa ka power supply sa laptop imong makita ang 300kHz-1MHz. Ngano man? Gamay nga magnetics. Ang usa ka 1MHz inductor pisikal nga 1/50th ang gidak-on sa usa ka 20kHz nga adunay parehas nga inductance. Dako kana alang sa mga portable device. Ang trade-off mao nga kinahanglan nimo ang mas paspas nga FETs (ubos nga Qg), mas maayo nga layout, mas mabinantayon nga disenyo sa drayber.
Audio (Class D amps) nagdagan sa 250kHz-1MHz. Ubos sa 200kHz ug madungog nimo ang frequency sa carrier isip usa ka taas nga-pitched whine. Labaw sa 1MHz ug magsugod ka sa pagpakig-away sa pagpanghilabot sa radyo sa AM. Kadaghanan sa mga disenyo naghusay sa 400-500kHz, low-pass filter sa tingali 50kHz aron makuha ang carrier.
Tinuod nga pananglitan: naghimo usa ka 500kHz buck converter kausa, misulay sa pag-adto sa 1MHz aron makunhuran ang board. Ang kahusayan mikunhod 4% (88% hangtod 84%). Kana ang 8W nga dugang nga kainit sa usa ka 200W nga suplay. Gikinahanglan ang usa ka mas dako nga heatsink, nawala ang tanan nga pagtipig sa wanang gikan sa gamay nga inductor. Nagpabilin sa 500kHz.

Mga limitasyon sa resolusyon
Ang 8-bit nga PWM (256 ka mga lakang) maayo nga paminawon hangtud nga imong sulayan nga mapalong ang usa ka LED nga hapsay gikan sa 100% ngadto sa 0%. Ubos sa 10% nga siklo sa katungdanan makakuha ka mga makita nga mga lakang sa kahayag. Ang mata sa tawo kay logarithmic-mas sensitibo sa mga kausaban sa ubos nga lebel sa kahayag. Kinahanglan ang 12-bit (4096 nga mga lakang) nga minimum alang sa hapsay nga pag-dimming sa tibuuk nga sakup.
Apan ania ang kuha: 12-bit sa 20kHz nagpasabot nga kinahanglan nimo ang 20kHz × 4096=81.92MHz timer clock. Dili tanan nga micros makahimo niana. Ug kung kinahanglan nimo ang daghang mga independente nga PWM channel sa 12-bit, nagtan-aw ka sa gipahinungod nga mga peripheral sa timer o usa ka FPGA.
Workaround: gamita ang 8-bit PWM pero i-adjust ang frequency sa dinamikong paagi. Sa taas nga kahayag modagan 20kHz, sa ubos nga kahayag drop ngadto sa 100Hz. Naghatag kanimo og mas maayong mga lakang kung diin nimo kini kinahanglan. Apan karon ikaw adunay variable-frequency EMI nga atubangon. Walay libre.
Sa diha nga ang mga butang mahimong dako
Ang mga Industrial VFD (variable frequency drive) nagbalhin sa gatusan ka mga amp sa 480VAC. Ang kontrol nga estratehiya mas komplikado-space vector modulation, field-oriented control, bisan unsa pa-apan sa ilawom niini PWM gihapon ang pagbalhin sa unom ka IGBT sa tulo ka-phase bridge.
Mga kalainan niini nga sukdanan:
Ang mga drayber sa ganghaan nanginahanglan ug 15V nga nahilain nga mga suplay. Kana ang 6 nga nahilit nga mga suplay nga naglutaw sa lainlaing mga potensyal hangtod sa 680VDC (gitul-id nga 480VAC). Ang matag drayber nanginahanglan sa kaugalingon nga gahum, kaugalingon nga resistor sa ganghaan (tipikal nga 0.5-2Ω), kaugalingon nga proteksyon sa overcurrent.
Ang oras sa pagtapos sa pagtaas sa 2-5µs tungod kay ang mga IGBT mas hinay kaysa mga MOSFET
dv/dt filters sa output tungod kay ang motor cable capacitance plus paspas nga switching edges hinungdan sa daghang kasagarang-mode nga mga sulog. Gisukod nako ang 20A sa kasagarang-mode nga kasamtangan sa 5HP motor cable, hingpit nga bulag sa motor nga kasamtangan. Mao nga kinahanglan nimo ang mga shielded cable ug husto nga grounding.
Thermal: bisan ang 2% nga pagkawala sa 50kW kay 1kW sa kainit. Pagpabugnaw sa tubig nga adunay mga switch sa agos ug mga interlock sa temperatura. Kung ang pag-agos sa coolant moubos ubos sa threshold, ang controller mag-disable dayon sa mga output. Nakita nga mga sistema nasunog tungod kay adunay nakalimot sa pagsusi sa lebel sa coolant.
Ang pagpili sa sangkap nahimong katingad-an. Ang usa ka IGBT nga gi-rate alang sa 100A nga padayon mahimo ra nga magdumala sa 80A sa 50℃nga palibot, 60A sa 70 degree. Apan ang pagsugod sa usa ka dako nga motor nagbira sa 6x nga rate sa karon sa daghang mga segundo. Busa ang imong gidak-on para sa peak, dili steady-estado, unya derate para sa temperatura. Pagtapos sa usa ka 300A IGBT alang sa usa ka "100A" nga aplikasyon. Ang gasto sa BOM naghimo sa pagpalit nga dili kaayo malipayon.
Mga detalye sa microcontroller
STM32 timers: kadaghanan adunay 16-bit PWM, pipila ka mga modelo moadto sa 32-bit apan panagsa ra nimo kini kinahanglan. Ang mas importante mao ang gidaghanon sa pagtandi sa mga channel ug mga komplementaryong output. Ang TIM1 ug TIM8 sa F4 nga serye adunay upat ka pagtandi sa mga kanal matag usa nga adunay komplementaryong mga output ug programmable deadtime insertion. Hingpit alang sa pagkontrol sa motor.
Problema: ang tanang PWM channels sa usa ka timer gi-synchronize sa samang counter. Kung kinahanglan nimo ang mga independente nga frequency, kinahanglan nimo ang lahi nga mga timer. Ug adunay daghang mga timer nga adunay mga advanced nga bahin. Sa STM32F4 makuha nimo ang TIM1, TIM8 para sa advanced control. TIM2-5 para sa batakang PWM. Ang TIM9-14 kay 16-bit nga walay patay nga henerasyon. Dali ka nga mahurot kung ang aplikasyon nanginahanglan daghang mga nahilit nga signal sa PWM.
Nakita ang mga disenyo diin ilang gibitin-ang PWM sa software tungod kay nahutdan sila og timer channels. Makalilisang nga ideya. Jitter, CPU overhead, priority inversion kung ang uban makabalda sa kalayo. Bayri lang ang sobra nga $2 para sa usa ka micro nga adunay daghang mga timer o gamita ang usa ka eksternal nga PWM IC (sama sa PCA9685). Ang imong umaabot nga kaugalingon magpasalamat kanimo.
Ang ESP32 adunay 16 ka PWM channel gamit ang LED PWM peripheral. Nindot paminawon, gawas nga silang tanan naggikan sa usa ka 80MHz APB nga orasan ug nagbahinbahin sa mga divisors sa mga grupo. Gusto ug lain-laing frequency? Sana nga integer ratios sila. Usab ang resolusyon mokunhod samtang ang frequency nagdugang tungod kay kini naggamit sa sama nga base nga orasan. Sa 20kHz imong makuha ang 12-bit, sa 40kHz ikaw ubos sa 11-bit, ug uban pa. Ang Datasheet dili kini klaro.
Mas exotic nga butang
Ipakaylap ang-spektrum nga PWM: imbes nga pirmi nga frequency, imong gibalibaran kini nga ±10% nga random. Gipakaylap ang EMI sa usa ka mas lapad nga frequency range, gipamenos ang peak emissions. Nagtabang sa pagpasa sa FCC/CE nga pagsulay nga wala’y daghang pagsala nga hardware. Kadaghanan sa modernong SMPS chips aduna niini. Gitugotan ka sa Cypress PSoC nga makontrol ang dithering pattern-sawtooth, triangular, pseudo-random.
Interleaved PWM: pagpadagan sa daghang mga converter gikan sa hugna. Ang duha ka mga converter sa 180℃phase shift nagpasabot nga ang input capacitor makakita sa katunga sa ripple current. Upat ka mga converter sa 90℃phase shift-quarter sa ripple. Apan karon kinahanglan nimo ang tukma nga pag-synchronize sa hugna tali sa mga channel ug pagbalanse sa load aron parehas sila nga magbahin sa karon. Kasagaran nagkinahanglan og usa ka dedikado nga controller IC gawas kon ang imong micro adunay igo nga mga kapanguhaan.
Ang mga GaN FET mahimong mobalhin ubos sa 10ns. Nagbukas sa 10MHz+ PWM nga mga frequency-ang mga inductors nahimong gamay, halos mga PCB trace lang. Apan: kritikal ang layout sa board, ang pagmaneho sa ganghaan nanginahanglan seryoso nga atensyon, ang bisan unsang inductance hinungdan sa daghang pag-overshoot. Dili alang sa mga nagsugod. Nakakita ug GaN design ring sa 2x VDD kay naay nigamit ug standard gate driver nga 5cm ang trace length. Ang FET wala mabuhi.

Kung unsa gyud akong gibuhat
Alang sa kadaghanang butang: 20kHz, hardware timer PWM, 10-bit nga resolusyon. Daghan alang sa kontrol sa motor ug LED dimming. Pagdugang ug gate driver IC (2A peak current minimum), ubos nga ESR ceramic caps diha mismo sa FET drain, fat ground plane. Susiha ang switching waveforms nga adunay scope sa unang prototype, magdahum nga mag-uli sa makausa.
Alang sa bisan unsa nga labaw sa 10A padayon, thermal simulation sa wala pa ang layout. Gigamit nako ang ANSYS apan bisan ang sukaranan nga FEA nakakuha sa kadaghanan nga mga problema. I-export ang mga lut-od nga tumbaga nga adunay mga pagkawala ingon mga gigikanan sa kainit, itakda ang mga kondisyon sa utlanan, susiha kung adunay bisan unsa nga moigo sa 125℃junction temp sa max ambient. Kasagaran kinahanglan ang mga heatsink o pinugos nga hangin kung nagbalhin ka labaw sa 50W.
Ug sulayan kini sa temperatura. Ang pagsulay sa temperatura sa kwarto nakakuha tingali sa 60% sa mga isyu. Ang init nga-kahon sa 70℃ambient sulod sa 8 ka oras nakakaplag sa nahabilin nga-thermal runaway, gate threshold shift, capacitor ESR increase. Gigastohan ako usa ka semana kausa kung ang usa ka disenyo nagtrabaho nga maayo sa 25℃apan ang FET nag-latch sa 65℃tungod kay wala nako gi-account ang threshold voltage temperature coefficient.
PWM kana. Yano nga konsepto, walay katapusan nga mga detalye.
PWM kana. Yano nga konsepto, walay katapusan nga mga detalye.
Katapusan nga butang: kung naghimo ka og baterya-mga butang nga PWM, ayaw paggasto sa mga cell. Gisulayan ang pipila ka walay-ngalan nga lithium pack sa makausa-dili makaya ang ripple current, ang boltahe nihinay ubos sa load, ang tibuok sistema nag-brown out. Gibalhin sa hustoionic lithium nga bateryamodules nga adunay desenteng C-rating, nawala ang problema. Ang sobra nga $15 kada pakete nagluwas kanako gikan sa tulo ka tawag sa suporta kada semana.

