- Čo je SPWM (sínusová modulácia šírky impulzu)?
- Ako funguje invertor SPWM
- Komponenty potrebné na zostavenie invertora SPWM
- Konštrukcia obvodu invertora SPWM
- Program Arduino pre invertor SPWM
- Testovanie obvodu invertora TL494 PWM
Obvody invertora sú často potrebné tam, kde nie je možné získať sieťové napájanie zo siete. Obvod invertora sa používa na konverziu jednosmerného prúdu na striedavý prúd a je možné ho rozdeliť na dva typy, ktorými sú invertory čistého sínusového vlnenia alebo invertory s modifikovanou štvorcovou vlnou. Tieto invertory s čistou sínusovou vlnou sú veľmi drahé a ich modifikované pravouhlé invertory sú lacné. Tu sa dozviete viac o rôznych druhoch striedača.
V predchádzajúcom článku som vám ukázal, ako nevyrobiť upravený invertor s obdĺžnikovými vlnami riešením problémov, ktoré sú s ním spojené. Takže v tomto článku budem vyrábať jednoduchý invertor čistej sínusovej vlny pomocou Arduina a vysvetlím princíp fungovania obvodu.
Ak vyrábate tento obvod, nezabudnite, že tento obvod nemá žiadnu spätnú väzbu, žiadnu nadprúdovú ochranu, žiadnu ochranu proti skratu a žiadnu teplotnú ochranu. Preto je tento obvod zostavený a demonštrovaný iba na vzdelávacie účely a absolútne sa neodporúča stavať a používať tento typ obvodu pre komerčné spotrebiče. Ak je to potrebné, môžete ich však do obvodu pridať, napríklad k bežne používaným ochranným obvodom
Ochrana proti prepätiu, ochrana proti nadprúdu, Ochrana proti prepólovaniu, Ochrana proti skratu, Regulátor Hot Swap atď. Už boli diskutované.
UPOZORNENIE: Ak vyrábate tento typ obvodu, buďte obzvlášť opatrní pri vysokom napätí a napäťových špičkách generovaných spínacím signálom na vstup.
Čo je SPWM (sínusová modulácia šírky impulzu)?
Ako názov napovedá, SPWM znamená S inusoidal P ulse W idth M odulation. Ako už možno viete, signál PWM je signál, v ktorom môžeme meniť frekvenciu impulzu, ako aj čas zapnutia a vypnutia, ktorý sa tiež nazýva pracovný cyklus. Ak sa chcete dozvedieť viac informácií o PWM, môžete si ich prečítať tu. Takže zmenou pracovného cyklu zmeníme priemerné napätie impulzu. Obrázok nižšie ukazuje, že -
Ak uvažujeme PWM signál, ktorý je prepínanie medzi 0 - 5V, ktorý má pracovný cyklus 100%, dostaneme priemernú výstupné napätie 5V, znova, ak vezmeme do úvahy rovnaký signál s pracovným cyklom 50%, budeme získajte výstupné napätie 2,5 V a pre pracovný cyklus 25% je to polovica. To zhŕňa základný princíp signálu PWM a môžeme prejsť k pochopeniu základného princípu signálu SPWM.
Sínusové napätie, je v prvom rade analógiou napätie, ktoré mení jej veľkosť v priebehu času, a môžeme reprodukovanie správania sínusovej vlny tým, neustále mení pracovný cyklus PWM vlny, nižšie obrázok ukazuje, že.
Ak sa pozriete na nižšie uvedenú schému, uvidíte, že na výstupe transformátora je pripojený kondenzátor. Tento kondenzátor je zodpovedný za vyhladenie striedavého signálu z nosnej frekvencie.
Použitý vstupný signál nabije a vybije kondenzátor podľa vstupného signálu a záťaže. Pretože sme použili veľmi vysokofrekvenčný signál SPWM, bude mať veľmi malý pracovný cyklus, ktorý je ako 1%, tento 1% pracovný cyklus trochu nabije kondenzátor, ďalší pracovný cyklus je 5%, tým sa opäť nabije kondenzátor o niečo viac, nasledujúci impulz bude mať pracovný cyklus 10% a kondenzátor sa bude nabíjať o niečo viac, budeme aplikovať signál, kým nedosiahneme pracovný cyklus 100%, a odtiaľ pôjdeme späť dole na 1%. Toto na výstupe vytvorí veľmi hladkú krivku ako sínusoida. Takže poskytnutím správnych hodnôt pracovného cyklu na vstupe budeme mať na výstupe veľmi sínusovú vlnu.
Ako funguje invertor SPWM
Vyššie uvedený obrázok zobrazuje hlavnú riadiacu časť invertora SPWM a ako vidíte, na pohon transformátora tohto obvodu sme použili dva N-kanálové MOSFETy v konfigurácii polovičného mostíka, aby sme znížili nežiaduci šum pri prepínaní a chránili MOSFET., použili sme diódy 1N5819 paralelne s MOSFETmi. Na zníženie škodlivých hrotov generovaných v sekcii brány sme použili paralelne rezistory 4,7 ohmov s diódami 1N4148. Konečne, BD139 a BD 140 tranzistory sú usporiadané v symetrickom usporiadaníriadiť bránu MOSFET, pretože tento MOSFET má veľmi vysokú kapacitu hradla a na správne zapnutie vyžaduje minimálne 10 V na základni. Viac informácií o práci zosilňovačov Push-Pull sa dozviete tu.
Aby sme lepšie pochopili princíp fungovania obvodu, redukovali sme ho na miesto, kde je táto časť MOSFETU ZAPNUTÁ. Keď je MOSFET na prúde, najskôr preteká transformátorom a potom sa uzemní MOSFETom, takže bude indukovaný aj magnetický tok v smere, v ktorom prúd preteká, a jadro transformátora bude prechádzať magnetickým tokom v sekundárnom vinutí a na výstupe dostaneme kladný polovičný cyklus sínusového signálu.
V ďalšom cykle je spodná časť obvodu v hornej časti obvodu vypnutá, preto som odstránil hornú časť, teraz prúd preteká v opačnom smere a generuje magnetický tok v tomto smere, čím sa obracia smer magnetického toku v jadre. Viac informácií o fungovaní MOSFET sa dozviete tu.
Teraz všetci vieme, že transformátor pracuje na základe zmien magnetického toku. Takže zapnutím a vypnutím obidvoch MOSFETov, obrátených na druhé a vykonajúcich to 50-krát za sekundu, sa vytvorí pekný oscilujúci magnetický tok vo vnútri jadra transformátora a meniaci sa magnetický tok indukuje napätie v sekundárnej cievke ako vieme podľa Faradayovho zákona. Takto funguje základný invertor.
Celý obvod invertora SPWM použitý v tomto projekte je uvedený nižšie.
Komponenty potrebné na zostavenie invertora SPWM
Č |
Diely |
Typ |
Množstvo |
1 |
Atmega328P |
IC |
1 |
2 |
IRFZ44N |
Mosfet |
2 |
3 |
BD139 |
Tranzistor |
2 |
4 |
BD140 |
Tranzistor |
2 |
5 |
22pF |
Kondenzátor |
2 |
6 |
10 tis., 1% |
Rezistor |
1 |
7 |
16 MHz |
Krištáľ |
1 |
8 |
0,1 uF |
Kondenzátor |
3 |
9 |
4,7R |
Rezistor |
2 |
10 |
1N4148 |
Dióda |
2 |
11 |
LM7805 |
Regulátor napätia |
1 |
12 |
200uF, 16V |
Kondenzátor |
1 |
13 |
47uF, 16V |
Kondenzátor |
1 |
14 |
2,2uF, 400V |
Kondenzátor |
1 |
Konštrukcia obvodu invertora SPWM
Pre túto ukážku je obvod skonštruovaný na Veroboarde pomocou schémy. Na výstupe transformátora pretečie spojom obrovské množstvo prúdu, takže prepojky prepojky musia byť čo najsilnejšie.
Program Arduino pre invertor SPWM
Predtým, ako začneme kódom rozumieť, objasníme si základné veci. Z vyššie uvedeného princípu fungovania ste sa naučili, ako bude vyzerať signál PWM na výstupe, teraz zostáva otázkou, ako môžeme na výstupných kolíkoch Arduina vytvoriť takúto premenlivú vlnu.
Aby sme vytvorili meniaci sa signál PWM, použijeme 16-bitový časovač1 s prednastaveným nastavením na 1, čo nám dá 1600/16000000 = 0,1ms čas pre každý počet, ak vezmeme do úvahy jeden polovičný cyklus sínusovej vlny, ktorá sa zmestí presne 100-krát do polovice cyklu vlny. Jednoducho povedané, budeme schopní vzorkovať našu sínusovú vlnu 200 krát.
Ďalej musíme rozdeliť našu sínusovú vlnu na 200 kusov a vypočítať ich hodnoty s koreláciou amplitúdy. Ďalej musíme tieto hodnoty previesť na hodnoty počítadla časovača vynásobením limitom počítadla. Nakoniec musíme tieto hodnoty vložiť do vyhľadávacej tabuľky, aby sme ich priviedli k pultu, a dostaneme svoju sínusovú vlnu.
Aby som to trochu zjednodušil, používam veľmi dobre napísaný SPWM kód z GitHubu, ktorý vytvoril Kurt Hutten.
Kód je veľmi jednoduchý. Náš program začíname pridaním požadovaných súborov hlavičky
#include #include
Ďalej máme dve naše vyhľadávacie tabuľky, z ktorých dostaneme hodnoty počítadla časovača.
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};
Ďalej v sekcii nastavenia inicializujeme riadiace registre počítadla časovača, aby boli v každom z nich čisté. Ďalšie informácie nájdete v údajovom liste atmega328 IC.
TCCR1A = 0b10100010; / * 10 jasný v zápase, nastavený na SPODU pre compA. 10 jasných na zápas, nastavený na BOTTOM pre compB. 00 10 WGM1 1: 0 pre priebeh 15. * / TCCR1B = 0b00011001; / * 000 11 WGM1 3: 2 pre priebeh 15. 001 bez predvoľby na počítadle. * / TIMSK1 = 0b00000001; / * 0000000 1 TOV1 Povolenie prerušenia príznaku. * /
Potom inicializujeme vstupný zachytávací register s preddefinovanou hodnotou 16000, pretože nám to pomôže vygenerovať presne 200 vzoriek.
ICR1 = 1600; // Perióda pre 16MHz kryštál, pre spínaciu frekvenciu 100KHz pre 200 rozdelení na 50Hz sínusový cyklus.
Ďalej povoľujeme funkciu, povoľujeme globálne prerušenia
sei ();
Nakoniec sme ako výstup nastavili Arduino pin 9 a 10
DDRB = 0b00000110; // Nastaví PB1 a PB2 ako výstupy.
To znamená koniec funkcie nastavenia.
Smyčková časť kódu zostáva prázdna, pretože ide o program riadený prerušením časovača.
void loop () {; /*Nerob nič…. navždy! * /}
Ďalej sme definovali vektor pretečenia časovača1, táto funkcia prerušenia dostane hovor, keď dôjde k pretečeniu časovača1 a vygeneruje prerušenie.
ISR (TIMER1_OVF_vect) {
Ďalej deklarujeme niektoré lokálne premenné ako statické premenné a začali sme napájať hodnoty do rezistora na zachytávanie a porovnávanie.
static int num; statický znak trig; // zmena pracovného cyklu každé obdobie. OCR1A = lookUp1; OCR1B = lookUp2;
Na záver predbežne zvýšime počítadlo, aby sa ďalšie hodnoty dostali do snímacích a porovnávacích rezistorov, čo označuje koniec tohto kódu.
if (++ num> = 200) {// Predbežný prírastok potom skontrolujte, či je pod 200. num = 0; // Obnoviť počet trig = trig ^ 0b00000001; digitalWrite (13, trig); }
Testovanie obvodu invertora TL494 PWM
Na testovanie obvodu sa používa nasledujúce nastavenie.
- 12V olovená batéria.
- Transformátor, ktorý má odbočku 6-0-6 a odbočku 12-0-12
- 100W žiarovka ako záťaž
- Multimetr Meco 108B + TRMS
- Multimetr Meco 450B + TRMS
Výstupný signál z Arduina:
Po načítaní kódu. Aj meria výstupný SPWM signál z dvoch kolíky Arduino, ktorá vyzerá ako pod obrazom,
Ak sa trochu priblížime, môžeme vidieť neustále sa meniaci pracovný cyklus vlny PWM.
Ďalej nasledujúci obrázok zobrazuje výstupný signál z transformátora.
Obvod invertora SPWM v ideálnom stave:
Ako je zrejmé z vyššie uvedeného obrázku, tento obvod pri ideálnom behu priťahuje okolo 13 W.
Výstupné napätie bez záťaže:
Výstupné napätie obvodu invertora je zobrazené vyššie, ide o napätie vychádzajúce z výstupu bez pripojenej záťaže.
Príkon:
Vyššie uvedený obrázok zobrazuje vstupný výkon, ktorý spotrebuje ic, keď je pripojená záťaž 40 W.
Spotreba výstupného výkonu:
Vyššie uvedený obrázok zobrazuje výstupný výkon spotrebovaný týmto obvodom (záťaž je 40 W žiarovka)
Týmto uzatvárame testovaciu časť obvodu. Demonštráciu si môžete pozrieť na videu nižšie. Dúfam, že sa vám tento článok páčil a dozvedeli ste sa niečo o SPWM a jeho technikách implementácie. Čítajte ďalej, učte sa, pokračujte v budovaní a uvidíme sa v ďalšom projekte.