- Što je SPWM (modulacija sinusoidne širine impulsa)?
- Kako funkcionira SPWM pretvarač
- Komponente potrebne za izgradnju SPWM pretvarača
- Izgradnja kruga pretvarača SPWM
- Arduino program za SPWM pretvarač
- Ispitivanje sklopa pretvarača PLM TL494
Sklopovi pretvarača često su potrebni tamo gdje nije moguće dobiti napajanje izmjeničnom strujom iz mreže. Sklop pretvarača koristi se za pretvaranje istosmjerne energije u izmjeničnu struju i može se podijeliti u dvije vrste, a to su pretvarači čistog sinusnog vala ili modificirani pretvarači kvadratnog vala. Ovi pretvarači s čistim sinusnim valom vrlo su skupi, gdje modificirani pretvarači kvadratnog vala nisu skupi. Ovdje saznajte više o različitim vrstama pretvarača.
U prethodnom članku pokazao sam vam kako da ne napravite modificirani pretvarač kvadratnog vala rješavajući s njim povezane probleme. Tako ću u ovom članku izraditi jednostavan pretvarač čistog sinusnog vala pomoću Arduina i objasniti princip rada sklopa.
Ako izrađujete ovaj krug, imajte na umu da ovaj krug nema povratne informacije, zaštitu od prekomjerne struje, zaštitu od kratkog spoja i temperaturnu zaštitu. Stoga je ovaj sklop izgrađen i demonstriran samo u obrazovne svrhe i apsolutno se ne preporučuje graditi i koristiti ovu vrstu sklopa za komercijalne uređaje. Međutim, možete ih dodati u svoj krug ako je potrebno, kao što su najčešće korišteni zaštitni krugovi
Zaštita od prenapona, zaštita od prekomjerne struje, zaštita od obrnutog polariteta, zaštita od kratkog spoja, kontroler vruće izmjene itd. Već su raspravljeni.
OPREZ: Ako izrađujete ovu vrstu sklopa, budite posebno oprezni oko visokog napona i naponskih skokova koje generira signal prebacivanja na ulaz.
Što je SPWM (modulacija sinusoidne širine impulsa)?
Kao što i samo ime govori, SPWM je kratica za S inusoidal P ulse W idth M odulation. Kao što možda već znate, PWM signal je signal u kojem možemo mijenjati frekvenciju impulsa kao i vrijeme uključivanja i isključivanja, što je poznato i kao radni ciklus. Ako želite saznati više o PWM-u, možete ga pročitati ovdje. Dakle, mijenjajući radni ciklus, mijenjamo prosječni napon impulsa. Slika ispod pokazuje da-

Ako uzmemo u obzir PWM signal koji se prebacuje između 0 - 5V koji ima radni ciklus 100%, dobit ćemo prosječni izlazni napon od 5V, opet ako uzmemo u obzir isti signal s radnim ciklusom od 50%, dobit ćemo dobiti izlazni napon od 2,5 V, a za radni ciklus od 25%, to je polovica od toga. To sažima osnovni princip PWM signala i možemo prijeći na razumijevanje osnovnog principa SPWM signala.
Sine napon je prvenstveno analogija napon koji mijenja svoje veličine s vremenom, a mi možemo reproducirati ovaj ponašanje sinusni val tako stalno mijenja radni ciklus od PWM vala, u nastavku slika pokazuje da je.

Ako pogledate shemu u nastavku, vidjet će da je na izlazu transformatora spojen kondenzator. Ovaj je kondenzator odgovoran za izravnavanje izmjeničnog signala s noseće frekvencije.
Korišteni ulazni signal napunit će i isprazniti kondenzator u skladu s ulaznim signalom i opterećenjem. Kako smo koristili vrlo visokofrekventni SPWM signal, imat će vrlo mali radni ciklus koji je oko 1%, ovaj radni ciklus od 1% malo će napuniti kondenzator, sljedeći radni ciklus je 5%, ovo će se opet napuniti kondenzator malo više, slijedeći impuls imat će radni ciklus od 10%, a kondenzator će se napuniti malo više, primijenit ćemo signal dok ne postignemo radni ciklus od 100% i odatle ćemo se vratiti dolje na 1%. To će stvoriti vrlo glatku krivulju poput sinusnog vala na izlazu. Dakle, pružajući odgovarajuće vrijednosti radnog ciklusa na ulazu, imat ćemo vrlo sinusni val na izlazu.
Kako funkcionira SPWM pretvarač
Navedene slika prikazuje glavni vožnje poglavlje o SPWM pretvarača, a kao što vidite, mi smo koristili dvije N-kanalni MOSFET u konfiguraciji pola mosta voziti transformator tog kruga, kako bi se smanjila neželjene prebacivanje buke i zaštite MOSFET, koristili smo 1N5819 diode paralelno s MOSFET-ovima. Da bismo smanjili štetne skokove koji se generiraju u odjeljku vrata, koristili smo otpornike od 4,7 oma paralelno s 1N4148 diodama. Napokon, tranzistori BD139 i BD 140 konfigurirani su u push-pull konfiguracijiza pogon vrata MOSFET-a, jer ovaj MOSFET ima vrlo visoki kapacitet vrata i za pravilno uključivanje potrebno je najmanje 10V na bazi. Ovdje saznajte više o radu Push-Pull pojačala.

Da bismo bolje razumjeli princip rada sklopa, sveli smo ga na točku u kojoj je ovaj odjeljak MOSFET-a UKLJUČEN. Kada je MOSFET na struji, prvo prolazi kroz transformator, a zatim se uzemljuje MOSFET-om, pa će se magnetni tok također inducirati u smjeru u kojem struja teče, a jezgra transformatora proći će magnetski tok u sekundarnom namotu, a na izlazu ćemo dobiti pozitivan poluciklus sinusnog signala.

U sljedećem ciklusu donji dio kruga je na gornjem dijelu krug je isključen, zbog čega sam uklonio gornji dio, sada struja teče u suprotnom smjeru i generira magnetski tok u tom smjeru, te se tako okreće smjer magnetskog toka u jezgri. Ovdje saznajte više o radu MOSFET-a.
Sada svi znamo da transformator radi promjenama magnetskog toka. Dakle, uključivanje i isključivanje MOSFET-ova, jedan obrnut u drugi i 50 puta u sekundi, generirat će lijepi oscilirajući magnetski tok unutar jezgre transformatora, a promjenjivi magnetski tok inducirat će napon u sekundarnoj zavojnici kao znamo po faradejevom zakonu. Tako radi osnovni pretvarač.
Kompletni krug pretvarača SPWM korišten u ovom projektu dan je u nastavku.

Komponente potrebne za izgradnju SPWM pretvarača
|
Sl.br. |
Dijelovi |
Tip |
Količina |
|
1 |
Atmega328P |
IC |
1 |
|
2 |
IRFZ44N |
Mosfet |
2 |
|
3 |
BD139 |
Tranzistor |
2 |
|
4 |
BD140 |
Tranzistor |
2 |
|
5 |
22pF |
Kondenzator |
2 |
|
6 |
10 000, 1% |
Otpornik |
1 |
|
7 |
16MHz |
Kristal |
1 |
|
8 |
0,1uF |
Kondenzator |
3 |
|
9 |
4.7R |
Otpornik |
2 |
|
10 |
1N4148 |
Dioda |
2 |
|
11 |
LM7805 |
Regulator napona |
1 |
|
12 |
200uF, 16V |
Kondenzator |
1 |
|
13 |
47uF, 16V |
Kondenzator |
1 |
|
14 |
2,2uF, 400V |
Kondenzator |
1 |
Izgradnja kruga pretvarača SPWM
Za ovu demonstraciju sklop je konstruiran na Veroboardu, uz pomoć sheme. Na izlazu transformatora kroz priključak će teći ogromna količina struje, tako da spojni džemperi moraju biti što deblji.
Arduino program za SPWM pretvarač
Prije nego što nastavimo i počnemo razumijevati kod, raščistimo osnove. Iz gore navedenog principa rada naučili ste kako će PWM signal izgledati na izlazu, sada ostaje pitanje kako možemo napraviti tako različit val na izlaznim pinovima Arduina.
Da bismo stvorili promjenljivi PWM signal, upotrijebit ćemo 16-bitni timer1 s postavkom za predskaliranje 1, što će nam dati 1600/16000000 = 0,1 ms vremena za svako brojanje ako uzmemo u obzir jedan poluciklus sinusnog vala, koji stane točno 100 puta u pola ciklusa vala. Jednostavno rečeno, moći ćemo uzorkovati naš sinusni val 200 puta.
Dalje, moramo sinusni val podijeliti na 200 dijelova i izračunati njihove vrijednosti s korelacijom amplitude. Dalje, te vrijednosti moramo pretvoriti u vrijednosti brojača vremena pomnoživši ih s ograničenjem brojača. Napokon, te vrijednosti moramo staviti u tablicu pretraživanja kako bismo ih dodali na brojač i dobit ćemo svoj sinusni val.
Da stvar bude malo jednostavnija, koristim se vrlo dobro napisanim SPWM kodom iz GitHub-a koji je izradio Kurt Hutten.
Kôd je vrlo jednostavan. Naš program započinjemo dodavanjem potrebnih datoteka zaglavlja
#include #include
Dalje, imamo naše dvije tablice pretraživanja iz kojih ćemo dobiti vrijednosti brojača vremena.
int lookUp1 = {50, 100, 151, 201, 250, 300, 349, 398, 446, 494, 542, 589, 635, 681, 726, 771, 814, 857, 899, 940, 981, 1020, 1058, 1095, 1131, 1166, 1200, 1233, 1264, 1294, 1323, 1351, 1377, 1402, 1426, 1448, 1468, 1488, 1505, 1522, 1536, 1550, 1561, 1572, 1580, 1587, 1593, 1597, 1599, 1600, 1599, 1597, 1593, 1587, 1580, 1572, 1561, 1550, 1536, 1522, 1505, 1488, 1468, 1448, 1426, 1402, 1377, 1351, 1323, 1294, 1264, 1233, 1200, 1166, 1131, 1095, 1058, 1020, 981, 940, 899, 857, 814, 771, 726, 681, 635, 589, 542, 494, 446, 398, 349, 300, 250, 201, 151, 100, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0}; int lookUp2 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 100, 151, 201, 250, 300, 349, 398, 446, 494, 542, 589, 635, 681, 726, 771, 814, 857, 899, 940, 981, 1020, 1058, 1095, 1131, 1166, 1200, 1233, 1264, 1294, 1323, 1351, 1377, 1402, 1426, 1448, 1468, 1488, 1505, 1522, 1536, 1550, 1561, 1572, 1580, 1587, 1593, 1597, 1599, 1600, 1599, 1597, 1593, 1587, 1580, 1572, 1561, 1550, 1536, 1522, 1505, 1488, 1468, 1448, 1426, 1402, 1377, 1351, 1323, 1294, 1264, 1233, 1200, 1166, 1131, 1095, 1058, 1020, 981, 940, 899, 857, 814, 771, 726, 681, 635, 589, 542, 494, 446, 398, 349, 300, 250,201, 151, 100, 50, 0};
Dalje, u odjeljku za postavljanje , inicijaliziramo kontrolne registre brojača vremena kako bi bili jasni na svakom. Za daljnje informacije trebate pregledati tehnički list atmega328 IC.
TCCR1A = 0b10100010; / * 10 jasnih za šibicu, postavljeno na DNO za compA. 10 jasnih utakmica, postavljeno DNO za compB. 00 10 WGM1 1: 0 za valni oblik 15. * / TCCR1B = 0b00011001; / * 000 11 WGM1 3: 2 za valni oblik 15. 001 nema pret skale na brojaču. * / TIMSK1 = 0b00000001; / * 0000000 1 TOV1 Omogući prekid zastavice. * /
Nakon toga inicijaliziramo ulazni registar za hvatanje s unaprijed definiranom vrijednošću 16000 jer će nam to pomoći da generiramo točno 200 uzoraka.
ICR1 = 1600; // Razdoblje za kristal 16MHz, za komutacijsku frekvenciju od 100KHz za 200 pododjela po 50Hz ciklusa sinusnog vala.
Dalje, omogućujemo globalne prekide pozivanjem funkcije, sei ();
Konačno, postavili smo Arduino pin 9 i 10 kao izlaz
DDRB = 0b00000110; // Postavi PB1 i PB2 kao izlaze.
To označava kraj funkcije postavljanja.
Odjeljak petlje koda ostaje prazan jer je to program koji pokreće prekid brojača vremena.
void loop () {; / * Ne poduzimati ništa…. zauvijek!*/}
Dalje, definirali smo vektor preljeva timer1, ova funkcija prekida dobiva poziv kada se timer1 prelije i generira prekid.
ISR (TIMER1_OVF_vect) {
Dalje, neke lokalne varijable deklariramo kao statičke varijable i počeli smo hraniti vrijednosti otpornikom za hvatanje i usporedbu.
statički int broj; statički trig; // mijenja radni ciklus svako razdoblje. OCR1A = lookUp1; OCR1B = lookUp2;
Na kraju, unaprijed povećavamo brojač kako bismo dodali sljedeće vrijednosti otpornicima za hvatanje i usporedbu, što označava kraj ovog koda.
if (++ num> = 200) {// Pre-inkrementalni broj tada provjerite je li ispod 200. num = 0; // Resetiraj broj. trig = trig ^ 0b00000001; digitalWrite (13, trig); }
Ispitivanje sklopa pretvarača PLM TL494
Da bi se testirao krug, koristi se sljedeća postavka.
- 12V olovno-kiselinska baterija.
- Transformator koji ima slavinu 6-0-6 i 12-0-12 slavinu
- Žarulja sa žarnom niti od 100 W kao opterećenje
- Meco 108B + TRMS multimetar
- Meco 450B + TRMS multimetar
Izlazni signal iz Arduina:
Nakon što prenesem kod. Izmjerio sam izlazni SPWM signal s dvije pinove Arduina, što izgleda poput donje slike,

Ako malo zumiramo, možemo vidjeti stalno mijenjajući radni ciklus PWM vala.

Dalje, donja slika prikazuje izlazni signal iz transformatora.

SPWM krug pretvarača u idealnom stanju:
Kao što možete vidjeti sa gornje slike, ovaj krug crpi oko 13W dok idealno radi
Izlazni napon bez opterećenja:
Izlazni napon kruga pretvarača prikazan je gore, to je napon koji izlazi na izlazu bez ikakvog opterećenja.
Potrošnja ulazne snage:
Gornja slika prikazuje ulaznu snagu koju IC troši kada je priključeno opterećenje od 40 W.
Potrošnja izlazne snage:
Gornja slika prikazuje izlaznu snagu koju ovaj krug troši (opterećenje je žarulja sa žarnom niti od 40 W)
Time zaključujemo ispitni dio sklopa. Za demonstraciju možete pogledati video u nastavku. Nadam se da vam se svidio ovaj članak i naučili ste nešto o SPWM-u i tehnikama njegove primjene. Nastavite čitati, nastavite učiti, nastavite graditi i vidimo se u sljedećem projektu.
