Upload
lenhi
View
214
Download
0
Embed Size (px)
Citation preview
MISKOLCI EGYETEM
GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR
TUDOMÁNYOS DIÁKKÖRI DOLGOZAT
ÉRINTŐKÉPERNYŐN KONFIGURÁLHATÓ SZINUSZOS
VÁLTÓIRÁNYÍTÓ HARDVERES ÉS SZOFTVERES
IMPLEMENTÁLÁSA
KÉSZÍTETTE:
Boros Rafael Ruben
VILLAMOSMÉRNÖK HALLGATÓ
KONZULENS:
Dr. Bodnár István
egyetemi adjunktus
Elektrotechnikai és
Elektronikai Intézet
Miskolc, 2018
Boros Rafael Ruben – TDK dolgozat 2
Tartalomjegyzék
1. Bevezetés ......................................................................................................................... 3
2. H-híd és vezérlési módok ............................................................................................. 4
2.1 Váltakozó feszültség előállításának módszere ................................................. 4
2.2 Szinuszos impulzusszélesség-modulációs vezérlés .......................................... 7
2.4 A kiválasztott IGBT ...............................................................................................10
3. H-híd vezérlő áramkörök ........................................................................................... 12
3.1 IGBT meghajtóáramkörök ...................................................................................12
3.2 Ferrit vasmagos kapcsolóüzemű transzformátor méretezése ......................13
3.3 Stabilizált szimmetrikus tápegység ...................................................................15
3.4 FOD3120 és HCPL-3120 áramkörök ...................................................................16
4. ATmega 2560 mikrovezérlős rendszer .................................................................... 20
4.1 AVR mikrovezérlőről általánosan ......................................................................20
4.2 SPWM jel előállítása 16-bites időzítővel ............................................................21
4.3 A kapcsolási frekvencia intervalluma ...............................................................26
4.4 Generált szinuszértékek szándékos torzítása .................................................27
4.5 Nextion érintőképernyős HMI ............................................................................29
4.6 A kész programkód ................................................................................................33
5. A kész áramkör mérése, kapcsolási rajz ................................................................. 34
6. Befejezés ........................................................................................................................ 37
Irodalomjegyzék .............................................................................................................. 38
1. számú melléklet ........................................................................................................... 39
2. számú melléklet ........................................................................................................... 40
3. számú melléklet ........................................................................................................... 41
4. számú melléklet ........................................................................................................... 42
5. számú melléklet ........................................................................................................... 43
6. számú melléklet ........................................................................................................... 44
Boros Rafael Ruben – TDK dolgozat 3
1. Bevezetés
Jelenlegi tudományunk szerint nem tudunk váltakozó feszültséget tárolni. Az
energiatárolást és hordozást akkumulátorokkal, telepekkel valósíthatjuk meg, melyek
csak egyenfeszültséget tudnak előállítani. A legtöbb villamos fogyasztó viszont
szinuszos váltakozó feszültséget igényel. Az egyenfeszültségből előállítható
váltakozófeszültség, úgynevezett váltóirányítóval. Célom ezen elektronikus átalakító
megalkotása.
A váltóirányító által előállított feszültség jelalakja szinuszos, a frekvenciája
század léptékben állítható, amplitúdója pedig százalékos skálán változtatható. Az előbbi
paraméterek érintőképernyőn könnyen beállíthatók, így a potenciométerek,
nyomógombok elkerülhetők.
A komplex rendszer fő alkotóeleme egy mikrovezérlő, melynek feladata igen
összetett. A jelgenerálástól kezdve egészen az érintőképernyő kezeléséig minden
feladatot el kell látnia.
A kapcsolóelemek megkövetelik, hogy négyszögjelekkel legyenek vezérelve, így
lesznek a legkisebbek a kapcsolási veszteségek. A mikrovezérlő négyszögjeleket előtud
állítani, így ezt a feladatot eltudja látni.
Fontos része lesz még a témának az IGBT kapcsolóelemek vezérlése és
galvanikus elszigetelése a mikrovezérlőtől. Ehhez hardveresen egy kissé bonyolult
rendszert kell megalkotni.
A mikrovezérlőre programkódot kell írni, melyet C nyelven implementálok. Ez
a programkód hosszú lett, így csak egyes fontosabb részeit ismertetem.
A váltóirányító kimenetének terhelhetősége, hatásfoka az egyenfeszültség
nagyságától függ.
Univerzálisnak tekinthető ez a berendezés a beállítható paraméterei miatt. Nem
célom konkrét felhasználási területre méretezni. A kimenetére például köthető ferrit
vasmagos transzformátor, így könnyen előtudunk állítani 230 V-os, 50 Hz-es
feszültséget.
Boros Rafael Ruben – TDK dolgozat 4
2. H-híd és vezérlési módok
Egyenfeszültségből előállítható váltakozó feszültség úgynevezett
váltóirányítóval (angolul inverter). Az egyfázisú váltóirányító, melynek ismertebb neve
H-híd, négy kapcsolóelemből áll. A négy kapcsolóelem ki-be kapcsolásával állítható elő
a váltakozó feszültség.
2.1 Váltakozó feszültség előállításának módszere
A H-híd kapcsolási rajzát a 2.1 ábra szemlélteti, melyen látható az Ug
feszültségforrás, mely egyenfeszültséget táplál. Ezt az Ug egyenfeszültséget alakítja át
a négy kapcsolóelem váltakozó feszültséggé, ami lehet bipoláris tranzisztor, IGBT,
MOFET, stb. Az IGBT mozaikszó jelentése angolul: Insulated Gate Bipolar Transistor,
mely magyarul azt jelenti, hogy szigetelt kapujú bipoláris tranzisztor. A MOSFET
mozaikszó jelentése angolul: Metal-Oxide-Semiconductor Field-effect Transistor, mely
magyarul egyszerűen csak fém-oxid félvezető térvezérlésű tranzisztor. Az ábrán
jelenesetben IGBT kapcsolóelem van feltűntetve, mivel a továbbiakban csak ezekkel
foglalkozok.
2.1 ábra: A H-híd kapcsolási rajza
Boros Rafael Ruben – TDK dolgozat 5
A négy kapcsolóelemet a G (gate) elektródán kell ki-be kapcsolni, ha térvezérelt
elemről van szó, a hagyományos bipoláris tranzisztorokat pedig a B (bázis) lábon kell.
A gate elektróda és az emitter elektróda közé feszültségforrást kell kapcsolni. Ha a
threshold feszültséget (Uth) meghaladja a G-E elektróda között a feszültségforrás, akkor
az IGBT kinyit, megindul a vezetés. Ha a threshold feszültség alá esik, akkor pedig lezár
az IGBT és megszűnik a vezetés.
A kimeneti fogyasztót az Rt terhelő ellenállás szimbolizálja. Ezen a fogyasztón
már váltakozó előjelű feszültség fog esni, így váltakozó áram fog rajta átfolyni. Passzív
fogyasztókon a feszültség és az áram iránya megegyezik. A 2.2 ábrán és a 2.3 ábrán
látható az IGBT elemek ki-be kapcsolásával elért váltakozó feszültség és áram az Rt
fogyasztón.
2.2 ábra: Az első periódus
Boros Rafael Ruben – TDK dolgozat 6
2.3 ábra: A második periódus
Látható, hogy az áram és a feszültség iránya megváltozik a kapcsolási
állapotoktól függően. Fontos megjegyezni, hogy az IGBT kapcsolóelemeket csak
teljesen kinyitott, vagy lezárt állapotban szabad üzemeltetni, mert ekkor a legkevesebb
a rajta eldisszipálódott teljesítmény, ekkor melegszik a legkevésbé. Ebből következik,
hogy négyszögjelekkel célszerű kapcsolni. A Q1 és Q4 félvezetőt, valamint a Q2 és Q3
félvezetőt mindig egyszerre kell bekapcsolni. Ellenpárhuzamos vezérlést kell
alkalmazni, ami azt jelenti, hogy ha pl. Q1 és Q4 nyitva van, akkor Q2 és Q3 zárva. A
2.4 ábra egy szemléltető példát ad arra, hogy adott vezérlési jelek esetén milyen lesz a
kimeneti feszültség-idő függvény.
Boros Rafael Ruben – TDK dolgozat 7
2.4 ábra: A kapcsolási jelek, és az előállított váltakozó feszültség
Az Ut feszültség előjele váltakozik, így már váltakozó feszültségről beszélünk. A
vezérlés 180°-os, mert félperiódus ideig tart a vezetés egy kapcsolóelemen.
2.2 Szinuszos impulzusszélesség-modulációs vezérlés
Az előző 2.1 alfejezetben látható, hogy négyszögjelek vezérlésével a kimeneten
is váltakozó négyszögjel jön létre. A legtöbb villamos fogyasztó 50 Hz-es szinuszos
váltakozó feszültséget igényel. Mivel az IGBT kapcsolóelemeket csak négyszögjelekkel
szabad vezérleni, így szinuszos impulzusszélesség-modulációt (angolul SPWM: Sine
Pulse Width Modulation) kell alkalmazni. Ez a módszer azt eredményezi, hogy a
vezérlési jelnek az alapharmonikusa szinuszos lesz. A 2.5 ábrán látható egy előállított
félperiódus, melyet mikrovezérlő valósított meg.
Boros Rafael Ruben – TDK dolgozat 8
2.5 ábra: Szinusz alapharmonikust tartalmazó négyszögjelek
A képen látható, hogy a négyszögjel kitöltési tényezője folyamatosan nő 0 %-ról
egészen 100 %-ig, majd vissza csökken 0%-ig. Ilyen jel előállítható analóg és digitális
áramkörökkel egyaránt. Analóg és digitális technika előállítási módszerek között igen
nagy az eltérés. Analóg technikával általában úgy lehet előállítani SPWM-el jelet, hogy
műveleti erősítős kapcsolásokkal előállítunk tiszta szinuszos jelet és ezt egy általában
háromszögjellel metsszük, összehasonlítunk, előjelet váltunk, összegezzük, stb. A
szinusz alapjel frekvenciája egyenlő az alapharmonikus frekvenciájával, a háromszögjel
frekvenciája pedig a kapcsolási frekvenciát adja meg, valamint minél nagyobb ez a
frekvencia, annál több lépésben állítja elő a félperiódust. A több lépés nagyobb
pontosságot eredményez. A háromszögjel frekvenciája sokkal nagyobb, mint a szinusz
frekvenciája.
A digitális áramköröket segítségül hívva modernebb, kisebb helyigényű
áramkörök valósítható meg. Mikrovezérlős rendszer segítségével nagy pontosságú és
frekvenciájú jelgenerálást érhetünk el, viszont külön program megírását igényli. Ez egy
nagy témakört ölel fel, amiről később fogok beszélni a 4. fejezetben.
A 2.6 ábra az SPWM módszerével előállított váltakozó Ut kimeneti feszültség-
időfüggvényt jelenít meg. Ekkor az alapharmonikus szinuszos lesz, amit a piros görbe
jelöl.
Boros Rafael Ruben – TDK dolgozat 9
2.6 ábra: Váltakozó feszültség és az alapharmonikus
Az ábrán látott kimeneti feszültség a kényes, szinuszos feszültséget igénylő
fogyasztók számára alkalmazhatatlan ebben a formában. Ráadásul az Ug
feszültséggenerátor általában akkumulátor, melyek 12 V-osak, a fogyasztók viszont
230 V váltakozó feszültséget igényelnek. Így transzformátort kell alkalmazni a
kimeneten a feszültség feltranszformálása miatt. Kizárólag ferrit vasmagos
transzformátor jöhet szóba, mert a lágyvasas transzformátor vasmagja nem
mágnesezhető át nagyobb frekvenciákon. A ferrit vasmag több száz kHz frekvencián is
átmágnesezhető. A kapcsolási frekvencia növelésével a transzformátor mérete
csökkenthető, így sokkal jobban hordozhatóbb lesz a berendezés, kisebb lesz a mérete,
súlya. A transzformátor az induktivitásai miatt az áramot nagymértékben simítja a
szekunder kimenetén, így a feszültség is simított lesz. A ferrit vasmagos transzformátor
induktivitása nem nagymértékű, ezért szükséges még további induktivitást a kimenettel
sorba kötni, mely szintén ferrit vasmagos kivitelben készülhet el.
Érdemes megemlíteni, hogy az SPWM módszerrel előállított szinusz tartalmaz
felharmonikusokat az alapharmonikuson kívül. A kimeneten alkalmazható ennek
kiküszöbölésére valamilyen passzív szűrő, mely segíti visszaállítani a tiszta
alapharmonikust.
Boros Rafael Ruben – TDK dolgozat 10
2.4 A kiválasztott IGBT
Az általam választott IGBT típusa FGA25N120ANTD. Ennek főbb paramétereit
a 2.1 táblázatban részletezem. Lábkiosztása a következő: 1-Gate, 2-Collector, 3-
Emitter.
2.1 táblázat: FGA25N120ANTD IGBT főbb paraméterei [1]
Jelölés Paraméter Min. Tipikus Max. Mértékegység
UCES C-E feszültség 1.200 V
UGES G-E feszültség ±20 V
IC C áram (TC = 100 °C) 25 A
Uth G-E threshold feszültség 3,5 5,5 7,5 V
Usat C-E szaturációs feszültség 2,65 V
Az IGBT előnye, hogy robosztus. A MOSFET-ek és a bipoláris tranzisztorok
előnyeit ötvözi. UCES feszültsége magasabb a MOSFET társainál, viszont az IC kollektor
árama kisebb, mint a MOSFET ID drain árama. A magas UCES feszültség lehetővé teszi,
hogy még egy hídág bővítésével háromfázisú aszinkronmotor-hajtást valósítson meg,
mert ott általában 400 V-os effektív vonali feszültség csúcsértéke van a közbenső
egyenáramú körben (~565 V).
Az IGBT adatlapja szerint a szaturációs feszültség 2,65 V, bár méréseim alapján
0,74 V körüli értékek fordultak elő. Ez a feszültség teljesen kinyitott IGBT esetén a C-
E láb között mérhető. Az elfűtött teljesítmény a félvezetőn ettől a feszültségtől
nagymértékben függ, ez alapján is méretezendő a hűtőborda.
Az IGBT tartalmaz beépített védődiódát az emitter és collektor lába között, bár a
megfelelő védelem érdekében célszerű külön beépíteni a 2.7 ábra alapján.
Védődiódákra azért van szükség, mert amikor az IGBT kapcsolóelemeket
kikapcsoljuk, a fogyasztó miatt az emitter és kollektor láb között tízezres nagyságrendű
feszültség is indukálódhat. Ez akkor következik be, amikor a fogyasztó induktív, vagy
kapacitív jellegű. Gyakorlatban ritka a kapacitív fogyasztó a váltóirányító kimenetén,
ennélfogva induktív fogyasztókról érdemes a továbbiakban beszélni.
Boros Rafael Ruben – TDK dolgozat 11
2.7 ábra: IGBT védődiódákkal
A kimeneti fogyasztó transzformátor, így az induktív jellegű. A bekapcsolás
során energiát tárol mágneses mező formájában, kikapcsolás után ez a fennmaradó
energia törvényszerűen akár ívkisülés formájában is elfogy a nagy 𝑑𝑢
𝑑𝑡 miatt. Ennek káros
hatása lehet a transzformátor menetzárlata, vagy az IGBT átütése, tönkremenetele.
A védődiódáknak célszerű nagysebességűnek lenni, így leginkább a Schottky-
dióda jöhet szóba. Használható még Zener-dióda is, amely jól alkalmazkodik
túlfeszültség-védelemhez. Schottky-diódák kerültek kiválasztásra, melyek TO-220
tokozásban készültek el. Egy tokozásban két dióda található, melynek katódjai közösek.
Sajnos nem alkalmas egy tokozott elem két IGBT védelmére, négy darab szükséges
belőlük. Rossz, használt számítógép tápegységekből kiforrasztott diódákat építettem be,
melynek egyenként másak a típusai. Nyitóirányú feszültségük 150-200 mV közé esik
mérések alapján. A TO-220 tokozás azért szükséges, mert ezek a diódák 40 A áramot is
képesek vezetni, bár ekkor már hűtést igényelnek. Védelmi célokra hűtőborda nélkül is
megfelelő hőmérsékleten működik. Az 1. számú mellékletben látható beforrasztva a
négy IGBT a védődiódákkal, hűtőbordákkal, ventilátorral, valamint a négy kivezetés
megjelölve.
Boros Rafael Ruben – TDK dolgozat 12
3. H-híd vezérlő áramkörök
A H-hídban található IGBT elemeket az erre a feladatra tervezett áramkörökkel
kell ki-be kapcsolni. Célom olyan váltóirányító tervezése, melyben az Ug generátor
(akkumulátor) elszigetelődik a külön segédüzemű tápfeszültségtől, tehát nem maga az
Ug generátor táplálja a vezérlőáramköröket. Ezt úgy kell implementálni, hogy az IGBT
elemeket meghajtó áramkör galvanikusan el legyen szigetelve az 5 V-os mikrovezérlős
rendszertől. Így a váltóirányító inkább laboratóriumi körülményekhez alkalmazkodik
jobban, mint hordozható, felhasználható készülékhez. Ekkor külön tápegység szükséges
a vezérlőáramkörhöz. Használható azonban felhasználási célokra is, ekkor egy
akkumulátorról is képes működni a rendszer, bár a mikrovezérlős rendszer és a negatív
sín nem lesz galvanikusan elválasztva.
3.1 IGBT meghajtóáramkörök
Mint azt korábban a 2.1 pontban említettem, az IGBT akkor nyit ki, amikor
nagyobb feszültséget kapcsolunk a G-E láb közé, mint a threshold feszültség.
Emlékeztetőül az FGA25N120ANTD IGBT esetén ez maximum 7,5 V. Tehát ezt a
feszültséget túl kell lépni. Minél jobban túl lépjük, annál több áramot képes vezetni az
IGBT, de a maximális határ ±20 V lehet. Ha kikapcsoláskor nem 0 V-ot alkalmazunk,
hanem annál negatívabb feszültséget, akkor gyorsabban ki tudjuk üríteni a G-E láb
között lévő kapacitást, tehát hamarabb lezár az IGBT, így kevesebb a kapcsolási idő,
kevesebb a kapcsolási veszteség.
Adódik egy nagy probléma, hogy az egyes IGBT elemek emitter lábai nem közös
potenciálon vannak, kivéve a Q2 és Q4 elemet, mert ott közös. Tehát létre kell hozni
olyan szimmetrikus tápegységet, mely minimum három különböző földpotenciállal
rendelkezik, bár a jobb zavarszűrés érdekében a négy jobban megfelel.
Az UGES feszültséget ±12 V-nak választom meg, így négy ±12 V-os
szimmetrikus, stabilizált feszültségforrásra van igény, ekkor jöhet szóba ismételten a
ferrit vasmagos transzformátor, mely kapcsolóüzemű tápegység szerepét tölti be.
Boros Rafael Ruben – TDK dolgozat 13
3.2 Ferrit vasmagos kapcsolóüzemű transzformátor
méretezése
Ami elsőnek kikötést igényel, az a transzformátor primer tekercselésére jutó
feszültség nagysága. A szekunder oldalon diszkrét elemeken keresztül stabil ±12 V-ot
szükséges előállítani. Érdemes 78xx és 79xx típusú feszültségszabályzó integrált
áramköröket használni, melynek bemenetére legalább 2,5 V-al nagyobb feszültséget
kell kapcsolni, mint a kimenetén várandó. 7812-es IC (angol mozaikszó: Integrated
Circuit rövidítése) + 12 V-ra szabályoz, a 7912 pedig -12 V-ra. Így a bemenő feszültség
az IC-ken legalább ±14,5 V kell legyen. Továbbá a szekunder tekercselésekre Graetz-
egyenirányítóhidat szükséges kötni, ezen is feszültségesés jön létre, mely körülbelül
1,2V. Ezeket figyelembe véve a szekunderoldalon minimum 12 V + 1,2 V + 2,5 V =
15,7 V feszültségnek kell létrejönni. Mivel szimmetrikus tápegységre van szükség, ezért
a negatív feszültségnek -15,7 V-nál kevesebbnek kell lennie. A transzformátor áttétele
még egy fontos kérdés a primer oldali feszültség megválasztásához, ezt egyszerűség
kedvéért 1-nek választom. Így a primer oldalon tehát 15,7 V-nak kell lenni minimum,
de a veszteségek, a hatásfok a transzformátoron ezt nagyobb értéknek követeli meg.
Egyszerűség kedvéért érdemes szabályozható tápegységet kapcsolni a primer oldalra.
A transzformátor méretezéséhez ismerni kell a vasmag effektív keresztmetszetét.
Az ETD 39 vasmag esetén ez adott, mely A = 123 mm2 = 1,23 cm2. Ferrit vasmagok
esetén a megengedett indukció tapasztalat szerint legfeljebb 300 mT körüli értéket
mutat. Érdemesebb alacsonyabb indukcióra méretezni, így kevésbé telítődik a vasmag,
nem áll fent a veszélye a túltelítődésnek, a túlzott felesleges és káros melegedésnek.
Legfontosabb paraméter a kapcsolási frekvencia, mely minél nagyobb, annál kevesebb
menetszám, kisebb vasmagkeresztmetszet szükséges. Legyen 20 kHz, mert a primer
tekercset N-csatornás MOSFET fogja kapcsolgatni, és azt egy mikrovezérlő fogja ki-be
kapcsolni. Sajnos a végtelenségig nem növelhető a frekvencia, a mikrovezérlő és a
MOSFET határt szab erre. A 2.1 képlettel meghatározható az, hogy mennyi menet
szükséges 1 V feszültséghez.
Boros Rafael Ruben – TDK dolgozat 14
𝑁𝑈 =104
4,4 ∙ 𝐵 ∙ 𝐴 ∙ 𝑓 (2.1)
Behelyettesítve a képletbe: 𝑁𝑈 =104
4,4∙0,2∙1,23∙20000= 0,462. A primer oldalon 16
V közeli feszültségérték van, tehát az NU értékét 16-al megszorozva megkapjuk a primer
oldali menetszámot: 𝑁𝑝𝑟𝑖𝑚𝑒𝑟 = 𝑁𝑈 ∙ 16 = 0,462 ∙ 16 = 7,39. Ha nem egész érték a
végeredmény, akkor feljebb célszerű kerekíteni, így kevesebb lesz az indukció a
vasmagban, tehát nyolc menet szükséges a primer oldalon. A szekunder oldalon is
megegyezik a menetszám, mivel a transzformátor áttétele 1, így Nszekunder = 8.
A 3.1 ábra szerint kell kialakítani a transzformátor tekercseléseit, a menetszámok
fel vannak tüntetve minden egyes tekercshez. Nagyon fontos a tekercselési irány, ezt
külön egy kör jelöli. Minden tekercset azonos irányban kell felcsévélni, így lesznek
helyesek a feszültség irányok.
3.1 ábra: Szimmetrikus tápegység transzformátor
Boros Rafael Ruben – TDK dolgozat 15
A transzformátor primer tekercselését Atmega328-PU mikrovezérlő kapcsolgatja
IRLZ44N MOSFET-tel.
A vasmag, a csévetest és a készülőben lévő tekercselés látható a 3.2 ábrán. A
rézhuzal átmérője 0,4 mm, mely 2,5 A/mm2 áramsűrűség mellett 320 mA körüli áramot
képes vezetni elfogadható hőmérsékleten. Mérések alapján körülbelül 230 mA áram
folyik a primer tekercsen.
3.2 ábra: Szimmetrikus tápegység transzformátor tekercselése
3.3 Stabilizált szimmetrikus tápegység
A transzformátor szekunder oldala középmegcsapolásos kivitelű, így lehetőség
van szimmetrikus tápegység készítésére egyszerűen. A 3.3 ábra általános kapcsolási
rajzot mutat, amin az egyenirányító-híd, feszültségkorlátozó ellenállás,
feszültségstabilizátor, szűrő és pufferkondenzátorok találhatók. A Graetz-híd 6 A
áramot képes egyenirányítani megfelelő melegedés mellet. A feszültségkorlátozó
ellenállás 2,2 kΩ értékű, vele párhuzamosan kötött elektrolitpufferkondenzátor 10 µF
értékű. A feszültségstabilizátorok LM7812 és LM7912 típusúak. Ezeknek a kimenetén
100 nF értékű kerámiakondenzátor és 100 µF kapacitású elektrolitkondenzátor található.
A 3.3 ábrán mutatott kapcsolásból négy ugyanilyet kell kivitelezni.
Boros Rafael Ruben – TDK dolgozat 16
Az így létrejövő szimmetrikus feszültséget a következőkben bemutatott
FOD3120, vagy HCPL-3120 típusú áramkörök igénylik.
3.3 ábra: Szimmetrikus stabilizált tápegység
Az elkészült modult ábrázoló fénykép, melyen megtalálható a transzformátor és
az elektronika, a mikrovezérlő, a 2. számú mellékletben látható.
3.4 FOD3120 és HCPL-3120 áramkörök
Lehetőség van rá, hogy olyan áramköröket használjunk fel, melynek bemenete
optocsatolóval rendelkezik és a kimenete alkalmas MOSFET, vagy IGBT vezérlésére.
Erre alkalmas a FOD3120, vagy alternatívaként HCPL-3120 áramkörök. A FOD3120
áramkör funkcióblokkját láthatjuk a 3.4 ábrán, a HCPL-3120 áramköréé szintén nagyon
hasonló, csak a push-pull kimenet kapcsolóelemei tranzisztor és FET.
3.4 ábra: FOD3120 áramkör funkcióblokkja [2]
Az alábbiakban a lábkiosztást sorolom fel:
1 – NC: angol mozaikszó: Not Connected, mely azt jelenti, hogy nem csatlakozik
semmihez, nem kell rá kötni semmit.
Boros Rafael Ruben – TDK dolgozat 17
2 – Anode: az optocsatoló LED-jének az anód lába
3 – Cathode: az optocsatoló LED-jének a katód lába
5 – Vss: ide az IGBT G-E lábai közé kötendő feszültség negatívabb pontját kell
bekötni, esetemben a -12 V-ot.
6 és 7 – VO1 ésVO2: a meghajtóáramkör kimenete, az IGBT G lábára kell kötni.
Itt jelenik meg a +12 V vagy a -12 V.
8 – VDD: ide az IGBT G-E lábai közé kötendő feszültség pozitívabb pontját kell
bekötni, esetemben a +12 V-ot.
Az áramkör adatlapja szerint 1414 V a megengedett maximális feszültség, amit
biztonságosan el tud szigetelni az optocsatoló bementétől. Legfeljebb 50 kHz kapcsolási
frekvenciára képes az áramkör, ami esetemben kielégítő. A HCPL-3120 áramkör
paraméterei hasonlóak, lábkiosztása megegyezik.
Az áramkör kimenetét a bemenetén lévő LED ki-be kapcsolásával lehet
megváltoztatni. Amikor a LED-et bekapcsoljuk, akkor az áramkör kimenete a
pozitívabb feszültséget kapcsolja az IGBT-re. A LED kikapcsolása esetén a negatívabb
feszültséget vezérli ki. A 3.5 ábrán egy tesztelési folyamat látható.
3.5 ábra: FOD3120 áramkör működésének vizsgálata
Boros Rafael Ruben – TDK dolgozat 18
Az oszcilloszkóp 1-es csatornájára a LED-re jutó feszültséget, 2-es csatornájára
pedig az áramkör kimenetét kötöttem. A LED-re 470 ohm értékű ellenálláson keresztül
5 V-os négyszögjelek jutnak, melyet mikrovezérlő állít elő, a kimeneten ±12 V van
jelen. Ekkor az időskála 10 µs-ra volt állítva. Látható, hogy a bemeneti változást igen
gyorsan követi a kimenet, szinte fázisban vannak.
Tapasztalatom azt mutatja, hogy ezen áramkörök megvásárlásakor nem szabad
spórolni, külföldről berendelni őket. Húsz darabot vásároltam, melyből hat működött. A
nem működő áramköröket tesztelve a 3.6 ábra és a 3.7 ábra szerinti feszültség-
időfüggvények jöttek létre. Tehát a minőségen nem szabad spórolni, mindig meg kell
bizonyosodni a termékek minőségéről, eredetiségéről, mert később nagy hibákat
okozhat, akár egy projekt sikertelenségét is okozhatja.
3.6 ábra: Hibás FOD3120 áramkör működésének vizsgálata
A 2.12 ábrán a kimenet szépen követi a bemenetet bekapcsolási fázisban, de
kikapcsoláskor a kimenet exponenciálisan konvergál a negatívabb feszültség felé. Ez a
hosszú kikapcsolási idő működésképtelenné teszi a vezérlést, vagy zavart okoz.
A 2.13 ábra azt mutatja, hogy bekapcsolás után a kimenet használhatatlan, csak zajt
generál.
Boros Rafael Ruben – TDK dolgozat 19
3.7 ábra: Működésképtelen FOD3120 áramkör működésének vizsgálata
Végezetül HCPL-3120-as áramkörök kerültek beépítésre, melyek hibátlanul
működnek. A projekt idejét ezen áramkörök beszerzése nagymértékben növelte.
Boros Rafael Ruben – TDK dolgozat 20
4. ATmega 2560 mikrovezérlős rendszer
Az SPWM jel előállításához mikrovezérlőt alkalmazok. Feladatai a következők:
SPWM jelek előállítása a H-híd számára, érintőképernyő meghajtása, melyről adatot kér
be a felhasználótól, és a paraméterek kiírása. Hat menüpont jön létre a kijelző
kezdőképernyőjén: kimenetek kezelése, frekvencia beállítása, amplitúdó beállítása,
felbontás beállítása, korrekció beállítása, paraméterek megtekintése.
4.1 AVR mikrovezérlőről általánosan
A mikrovezérlő, vagy mikrokontroller egy integrált áramkör, mely elektronikus úton
programozható. Legfőbb részei: Központi Vezérlő Egység (CPU), memóriák,
Aritmetikai Logikai Egység (ALU), EEPROM (háttértárként memória), flash memória
(itt tárolódik a végrehajtandó program), perifériák (I2C, Soros port kommunikáció,
időzítők, A/D átalakítók, stb).
A mikrovezérlő legkedvezőbb tulajdonsága, hogy a flash memóriát akár
tízezerszer is újra programozhatjuk, így elég sokszor módosíthatjuk a programunkat, és
kipróbálhatjuk.
A megvalósítandó célokra az Atmel ATmega 2560 mikrovezérlő alkalmazkodik
gazdaságosan. Az összetett rendszer megkívánja a hosszabb programírást, nagyobb
memória méretű áramköröket, mivel sok globális változót kell deklarálni a
programírásakor. Ez a dinamikus memóriát nagymértékben fogyasztja. Az ATmega
2560-as áramkörnek 8192 bájt méretű a dinamikus memóriája, ami alkalmas a kitűzött
célokhoz. Nagyrészét majd a szinusz értékek tárolására szolgáló tömbök fogják
lefoglalni, melyből két darab lesz deklarálva.
Ez a mikrovezérlő önmagában külső elemek nélkül nem működőképes.
Kvarcokat, kondenzátorokat, soros port – USB illesztőt, feszültség stabilizátort,
csatlakozókat, stb. igényel. Az ATmega 2560 IC TQFP-100 tokozású, melyet DIP
tokozásúvá egyszerűen átalakíthatjuk a 4.1 ábra szerint. Így ebbe a panelba tüskesort
beforrasztva egy forrasztható próbapanelba beillesztve hozzárendelhetjük a további
szükséges diszkrét elemeket. A TQFP-100 tokozású áramköröknek 0,5 mm lábtávolsága
Boros Rafael Ruben – TDK dolgozat 21
van, ezért óvatos beforrasztást igényel. Az elkészült panelt, melyen a mikrovezérlő és a
vezérlő áramkörök vannak, a 3. számú mellékletben látható fénykép ábrázolja.
4.1 ábra: ATmega2560 mikrovezérlő
4.2 SPWM jel előállítása 16-bites időzítővel
Az ATmega2560 mikrovezérlő tartalmaz kettő 8-bites és négy 16-bites időzítő
áramkört. A 16-bites időzítőkkel sokkal nagyobb pontosság érhető el, így a 8-bites
időzítő használatát mellőzöm. A négy darab 16-bites időzítőből csak egyre van szükség.
A négy időzítőnek külön neve van, melyek a következők: Timer/Counter 1, 3, 4, és 5.
Ezek közül a Timer/Counter 1-et fogom felhasználni.
Legegyszerűbb esetben a 16-bites számláló 0-tól 65.535-ig felszámol, a számolt
érték a TCNT (Timer/Counter) regiszterben található. A számolási sebesség a
mikrovezérlő órajelétől, mely jelen esetben 16 MHz, és ha be van kapcsolva, akkor a
frekvenciaosztó beállításától függ. Amint a számláló elérte a 65.535 értéket, akkor
túlcsordul, és elölről kezdi a számolást. Túlcsorduláskor a TIFR1 (Timer Interrupt Flag
Register) regiszterben található TOV1 (Timer/Counter Overflow) flag-et bekapcsolja.
Ekkor megszakítás jön létre és a mikrovezérlő az ISR(TIMER1_OVF_vect) vektorban
megírt utasításokat végrehajtja, TOV1 flag-et kikapcsolja. Ezek után a folyamat elölről
kezdődik. Az előbb ismertetett módszerrel pontatlan frekvenciájú és 50 % kitöltési
tényezőjű négyszögjelet lehet előállítani.
Számos PWM előállítási módszert állíthatunk be. A mód beállításokat a
TCCR1A és TCCR1B regiszterek egyes értékének átírásával érhetjük el. Az SPWM jel
Boros Rafael Ruben – TDK dolgozat 22
előállításához a Fast PWM (gyors impulzusszélesség-moduláció) mód aktiválása
szükséges. A Fast PWM móddal előállítható jelalakot a 4.2 ábra szemlélteti.
4.2 ábra: Fast PWM mód
Fast PWM módban a számláló nem 65.535-ig számol fel, hanem meghatározott
top (angolul: felső) értékig, ami legfeljebb 65.535 lehet. TOV flag beállítása akkor
következik be, amikor a számláló eléri a top értéket. A top érték meghatározza a
kapcsolási frekvenciát, és a periódusidő nagyságát. top értékét az ICR (Input Capture
Register) regiszter tárolja. A kitöltési tényező nagyságát pedig az OCR (Output
Compare Register) regiszter értéke állítja be. Ebből a regiszterből hármat is
aktiválhatunk, melyek egymástól függetlenül működnek. Minden ilyen regiszterhez
tartozik egy kimenet is a mikrovezérlőhöz, ezek az OC (Output Compare pin) lábak.
Ezekkel tudjuk az IGBT meghajtóáramköröket kapcsolni. Az OCR regiszter értéke és a
TCNT regiszter értéke össze van hasonlítva folyamatosan. Ha a TCNT értéke eléri a
beállított OCR értéket, akkor a kimenet kikapcsol az OC lábon nem-invertáló módban.
Két kimenet szükséges a H-híd vezérléséhez, így aktiválásra kerül az OCR1A és
OCR1B regiszter. Minden egyes periódusban OCR1A és OCR1B értékét
módosíthatjuk, így minden periódusnak a nagysága változhat.
A megírt programkód alapján a mikrovezérlő a következő struktúrát alkalmazza,
melynek folyamatát sorrendben felsorolom:
Az alábbi képlettel kiszámolja a periódus nagyságát, amit a top értékével
is egyenlővé tesz: 𝑝𝑒𝑟𝑖𝑜𝑑𝑢𝑠 =16.000.000
𝑓𝑟𝑒𝑘𝑣𝑒𝑛𝑐𝑖𝑎∙𝑓𝑒𝑙𝑏𝑜𝑛𝑡𝑎𝑠 . A frekvencia itt az
Boros Rafael Ruben – TDK dolgozat 23
alapharmonikus frekvenciát jelöli. top értékét az ICR1 regiszterben kell
eltárolni, tehát ICR1 = periodus. A kezdőértékek: frekvencia = 50 Hz,
felbontás = 1024. Például, ha frekvencia = 50 Hz, felbontas = 512, akkor
a periodus = 625. Ügyelni kell, hogy felbontas értéke nem lehet nagyobb,
mint 65.535.
Két tömbben eltárolja a szinusz függvénnyel legenerált értékeket, melyek
bizonyos határok között vannak (0-180°-ig). Ezeket a dimenzió nélküli
számokat megszorozva az amplitudo változó értékével változtatható lesz
a kitöltési tényező, így a fogyasztóra jutó feszültség amplitúdó nagysága
is,
Amikor az értékgenerálás lezajlott, elindul a kiolvasás a szinusz
tömbökből. A kiolvasás lépéseinek számát a felbontas értéke adja. Minden
megszakítási folyamatban (amikor TOV aktiválódik) az
ISR(TIMER1_OVF_vect) nevezetű vektorban megírt utasítások végbe
mennek. Ezen utasítások száma csekély, csak az OCR1A és OCR1B
érékét változtatja meg, minden egyes periódusban. Minél nagyobbak az
OCR értékek, annál hosszabb ideig van bekapcsolva kimenet, tehát annál
nagyobb a kitöltési tényező. Ezek az OCR értékek a szinusz értékek miatt
először 0-ról növekednek egészen a periódus értékéig, majd visszacsökken
0-ra.
Ha az érintőképrenyőn megváltoztatunk egy paramétert, akkor a szinusz
tömbök értékeinek az újragenerálása játszódik le, majd ezen értékeket
olvassa ki a későbbiekben.
Tömören, nagyvonalakban így állítható elő szinusz alapharmonikust tartalmazó
négyszögjelsorozat. A programkódnak a szinusz értékeket generáló részletét kiemelem
a 4.3 ábrán. Fontos, hogy a tömb méretének a növelése, így a felbontás nagysága
nagymértékben telíti a dinamikus memóriát. Legfeljebb 10-bites felbontást lehet
beállítani, ettől feljebb már a hardver adottságai nem teszi lehetővé a felbontás
növelését. Egy teljes szinusz periódus a felbontásban megadott lépést igényel. Két
félperiódus generálódik 0-tól 180°-ig, ehhez a felbontás lépéseinek a fele szükséges
Boros Rafael Ruben – TDK dolgozat 24
(max. 512). Ekkor csak pozitív értékek fognak létezni. Az egyik tömbben 0 érték
tárolódik egészen a felbontás számának a feléig, míg a másikban a generált értékek, mert
soha nem lehet két kimenet bekapcsolva egyszerre. Mindegyik kimenet legfeljebb
félperiódusig van kapcsolgatva, ekkor a másik kimenet kikapcsolt ekkor egészen végig
OCR értékek = 0).
4.3 ábra: „ujrageneralas” függvény
A regiszterek beállítása a következő lesz, melyeket kettes számrendszerben
érdemes beállítani az egyszerűség kevéért:
TCCR1A: 0b10100010; nem-invertáló Fast PWM mód beállítása,
TCCR1B: 0b00011001; frekvenciaosztó beállítása, valamint Fast PWM
mód beállítása
TIMSK1: 0b00000001; ezzel engedélyezzük a TOV1 Flag használatát
DDRB = 0b11100000, a 24, 25, 26-os lábak kimenetként vannak beállítva
a D porton.
Boros Rafael Ruben – TDK dolgozat 25
A kész struktúrával az alábbi feszültség-időfüggvény jön létre a két digitális
kimeneten (4.4 ábra), melyet oszcilloszkóppal mértem. Ezen OC kimenetekre 10 uF-os
kondenzátort kötve az alábbi feszültség-időfüggvény alakul (4.5 ábra).
4.4 ábra: A két OC kimenet feszültség-időfüggvénye
4.5 ábra: A két OC kimenet feszültség-időfüggvénye simítva
Boros Rafael Ruben – TDK dolgozat 26
A kondenzátorral simított feszültségek frekvenciája megegyezik az
alapharmonikus frekvenciával. A két feszültség-időfüggvény a vezérlőáramkörök
benemenetére kapcsolódik. A kondenzátoros simítás csak a mérés elvégzéséig,
szemléltetés kedvéért van jelen az áramkörben, nem alkalmazandó a kimenetekre.
A generált értékek a két szinusztömbben helyezkednek el. Soros porton keresztül
kinyerve a mikrovezérlő memóriájából a 4.6 ábra szerinti értékek jöttek létre. Ezeket az
értékeket excel táblázatba helyeztem, melyekhez az indexelést is hozzá rendeltem. A
tömb indexelése a C programozás esetében 0-tól indul, mely eltér a normál logikától,
mely 1-től indul. Az ábra baloldalán csak 28. indexeléshez láthatunk értékeket, a
grafikonon látható, hogy 1.024-ig terjed ez az érték, ezt az összes értéket nem tudom
szemléltetni a terjedelme miatt.
4.6 ábra: A két tömbben tárolt értékek grafikonon ábrázolva
4.3 A kapcsolási frekvencia intervalluma
Az alapharmonikus frekvencia és a felbontás változtatásával a kapcsolási
frekvencia nagymértékben változik. Ez a jelenség megnehezíti a méretezését a
kimenetre kötött transzformátornak. A szükséges vasmag keresztmetszetet és a
menetszámokat ez nagymértékben befolyásolja a kapcsolási frekvencia nagysága. Minél
kisebb, annál több menetszám és vasmag keresztmetszet szükséges. Ezért meg kell
Boros Rafael Ruben – TDK dolgozat 27
határozni egy megengedhető legkisebb értéket. Az IGBT viszont behatárolja a
kapcsolási frekvencia intervallumának felső értékét, mivel a kapcsolási frekvenciának
növekedésével a disszipált teljesítmény is nő. Ezen kívül a meghajtóáramkörök is
legfeljebb 50 kHz kapcsolási frekvencián képesek működni. A disszipált teljesítmény
az IGBT-n a kollektor áramtól függ nagymértékben, mely, ha csökken, akkor a
kapcsolási frekvencia megnövelhető.
Alsóhatárnak 1 kHz-et választok (így viszonylag kevés menetszám szükséges a
transzformátorhoz), felsőhatárnak pedig 50 kHz-et. Ez azt jelenti, hogy periodus változó
értéke legfeljebb 16.000, legkevesebb 320 lehet 16 MHz-es órajel esetén. Ennek az
intervallumnak egyrésze sajnos a hallható hangtartományban van (20 Hz – 20 kHz), így
a transzformátor által kibocsájtott hang zavarhatja az emberi fület.
Tehát úgy kell megírni a programot a mikrovezérlőre, hogy a felhasználó által
megadott paramétereket elutasítsa, ha a kapcsolási frekvencia az intervallumon kívülre
esik. Továbbá arra is ügyelni kell, hogy beállíthatóak olyan értékek, amivel elérjük,
hogy top értéke nagyobb lesz, mint 65.535 (0xFFFF), így a számláló túlcsordul, a
mikrovezérlő kifagy, erre is védelmet kell megírni.
4.4 Generált szinuszértékek szándékos torzítása
A kész váltóirányítóval előállított váltakozó feszültségre lágyvasas
transzformátort kötöttem. Ha a váltóirányítóból aszinkronmotor-hajtást szeretnék
építeni később, akkor a lágyvasas indukciós motorra jutó áramoknak nem lehet nagy
nullátmeneti ideje, mert a nyomaték sokkal jobban lüktetőbbé válik, mint a tiszta
szinuszos áram esetén. A mérés alapján, melyet a 4.7 ábra szemléltet, látható, hogy
igen sokáig nem jelenik meg feszültség a nullátmenet után a transzformátor primer
tekercselésén. Ez abból adódik, hogy a lágyvasat nem lehet nagy frekvencián
átmágnesezni. Erre megoldás lehet, hogy a szinusz értékek generálásakor a tömb 0.
indexelésétől beállítható indexszámig egy konstanst hozzáadunk az eredeti értékhez, így
nagyobb lesz az átlagfeszültség a transzformátor primer tekercselésén a nullátmenettől
kezdve. Erre példát mutat a 4.8 ábra, melyen a 0. indexeléstől 29. indexszámig 410
értékkel van növelve az eredeti érték, ahol 128 lépés a felbontás, és a periodus változó
értéke 2.500. Az egyik kimenet nincs simítva kondenzátorral, a másik igen az
Boros Rafael Ruben – TDK dolgozat 28
ábrázolhatóság miatt. Az ábrán látható, hogy a szinusz félhullám formája eltolódott
kissé trapézformájúvá. Így a lágyvasas transzformátor jobban tudja követni a szinusz
félhullám szélén lévő időben rövid impulzusokat.
4.7 ábra: Lágyvasas transzformátor primer oldali váltakozófeszültsége
4.8 ábra: Alkalmazott korrekció
Boros Rafael Ruben – TDK dolgozat 29
4.5 Nextion érintőképernyős HMI
A Nextion HMI (Human-Machine Interface) egy mikrovezérlő alapú
érintőképernyős modul. Lehetővé teszi, hogy TTL soros porton keresztül
kommunikáljunk a mikrovezérlővel, így beállíthatunk, kinyerhetünk paramétereket.
Ennek a programozása a Nextion Editor nevű programmal történik. Nyomógombokat,
szövegeket, számokat, képeket és egyebeket helyezhetünk el a kijelzőn. Ezeknek mind-
mind létezik azonosítója, melyet, ha megérintünk az érintőképernyőn, akkor elküldi a
mikrovezérlő felé annak az objektumhoz rendelt hexadecimális címet, így tudjuk, hogy
mit szeretne a felhasználó. Több oldalt is létre lehet hozni, ennélfogva nagy kiterjedelmű
szoftver valósítható meg. Felprogramozása úgy történik, hogy microSD
memóriakártyára rá kell másolni egy fordító által előállított „.tft” kiterjesztésű fájlt,
majd be kell helyezni a foglalatba a memóriát, így a memóriakártyáról a HMI a flash
memóriájába másolja a programot.
A kijelzőről az alábbi paraméterek módosíthatóak: kimenetek ki-be kapcsolása,
alapharmonikus frekvencia, amplitúdó, felbontás, korrekció. A főmenüben
kiválaszthatóak a beállítási lehetőségek (4.9 ábra).
4.9 ábra: Főmenü első és második oldala
A kimenet kezelése menüpontban ki-be kapcsolható a mikrovezérlő két
kimenete, melyek a H-híd vezérlését végzik (4.10 ábra).
Boros Rafael Ruben – TDK dolgozat 30
4.10 ábra: Kimenetek kezelése
A frekvencia beállítsa menüpontban egész és század léptékben változtatható az
alapharmonikus frekvencia (4.11 ábra).
4.11 ábra: Frekvencia beállítása
Az amplitúdó beállítása menüpontban százalékos értékben állítható be az
amplitúdó (4.12 ábra).
Boros Rafael Ruben – TDK dolgozat 31
4.12 ábra: Amplitúdó beállítása
A felbontás beállítása a 4.13 ábra szerint történik, ahol 32-től 1.024-ig állíthatjuk
be egy periódus hosszát indexszámban kifejezve.
4.13 ábra: Felbontás beállítása
A korrekciót, mely a generált szinuszértékek szándékos torzítását eredményezi,
a 4.14 ábrán látottak alapján konfigurálható. A beállítás után az újragenerálás gombra
szükséges koppintani.
Boros Rafael Ruben – TDK dolgozat 32
4.14 ábra: Korrekció beállítása
A korrekció beállítás menüpontjának programozását a Nextion Editor
programban az alábbiak alapján kell grafikusan megszerkeszteni (4.15 ábra). Az
objektumok azonosítója a bal felső sarokban látható, melyekkel, ha utasításokat
szeretnénk végrehajtani, akkor a mikrovezérlőre írt programban hivatkozni kell rá, és a
szükséges függvényeket meghívni. A színek, méretek, betűtípusok, mind-mind
változtathatóak. Élénk színek helyett kontrasztosabb felületet állítottam be.
4.15 ábra: Grafikai felület programozása
Boros Rafael Ruben – TDK dolgozat 33
A kapcsolási frekvencia és a periodus nagysága lekérdezhető a paraméterek
menüpontban (4.16 ábra).
4.16 ábra: Paraméterek menüpont
4.6 A kész programkód
Az elkészült programkódot a 6. számú mellékletben csatolom. A programkódban
megtalálható az IGBT vezérlő program, érintőképernyőt vezérlő program, biztonsági
feltételeket kielégítő logikai kapcsolatok, minden, ami szükséges a kész áramkörhöz. A
Nextion HMI-hez készült függvénykönyvtár, melyet beimportálva nagymértékben
rövidíti és egyszerűsíti a programírást. A kapcsolóüzemű tápegységet vezérlő
Atmega328-PU alapú Arduino Nano V3 panelre írt programot nem mellékeltem, mivel
az túl egyszerű, csak a D11 kimenetet kapcsolja ki-be 20 kHz-en 20%-os kitöltési
tényezővel.
Boros Rafael Ruben – TDK dolgozat 34
5. A kész áramkör mérése, kapcsolási rajz
Az előző fejezetek alapján elkészült áramkörök és a programkódok mérés szerint
az 5.1 ábrán látható feszültség-időfüggvényt hozzák létre. Ekkor az Rt értéke 10 Ohm
volt, UG értéke pedig 15,9 V. A felbontás 1.024-re volt állítva 50.00 Hz frekvencián,
100%-os kitöltési tényező mellett, korrekció alkalmazás nélkül.
5.1 ábra: Az előállított váltakozó feszültség
A továbbiakban bemutatok különböző felbontáson előállított váltakozó
feszültségeket. Az 5.2 ábrán a felbontás 64-re lett állítva. Az 5.3 ábrán már 128
léptékben áll elő a váltakozó feszültség, mellyel nagyobb pontosság valósul meg.
Az előállított váltakozó feszültséget ferrit vasmagos transzformátorra kötve LCL
szűrőn keresztül előáll a szinuszos 230 V-os feszültség, melynek bemutatására már nem
kerítek sort, ez a jövőben viszont rövidesen kivitelezve lesz. Méréseim alapján
szükséges lenne még továbbá nagy induktivitású ferritvasmagos tekercs, mely biztosítja
az áram és feszültség folytonosságát. Sajnos ennek a tekercsnek az elkészítésére nem
került sor anyaghiány miatt, így mérésekkel nem tudom bemutatni a kialakuló
feszültséget.
Boros Rafael Ruben – TDK dolgozat 35
5.2 ábra: Az előállított váltakozó feszültség 64-es felbontáson
5.3 ábra: Az előállított váltakozó feszültség 128-es felbontáson
A 4. számú mellékletben megtekinthető a kész kapcsolási rajz, amelyen
megtalálható maga a H-híd, a kapcsolóüzemű tápegység, az ATmega2560-as
mikrovezérlő, a kapcsolóüzemű tápegységet vezérlő Arduino Nano V3 áramkör (mely
Atmega328-PU alapú mikrovezérlő), az érintőképernyő, valamint a
Boros Rafael Ruben – TDK dolgozat 36
feszültségstabilizátorok, melynek bemenetére az S1 kapcsolótól függően akkumulátor
(UG), vagy szabályozható tápegység (UK) kerül. A H-híd kimenetein és sínjein
bekeretezett számok a valóságban is megjelölt vezeték azonosítóját tünteti fel.
Boros Rafael Ruben – TDK dolgozat 37
6. Befejezés
A kitűzött feladatot sikeresen megvalósítottam, az áramkör a vártaknak
megfelelően működik. Célom a továbbiakban a kész áramkör optimalizálása, valamint
nagy induktivitású tekercsek készítése, mellyel kisimítható az áram és a feszültség a
kimeneten. Amint ez sikerül, a szűrőáramkörök méretezése kerül sorra.
Az áramkörök méretét érdemes lenne csökkenteni SMD alkatrészek beépítésével,
valamint egy panelra integrálni minden elemet, így az elektromágneses zavaroknak
jobban ellenáll.
Korábbi kutatásaim során ebben a dolgozatban alkalmazott IGBT/MOSFET
meghajtóáramkörök helyett IR2113 IC-t használtam fel vezérlési célokra, melyek nem
megfelelően működtek, valószínűleg nem eredeti áramkörök felhasználása lehetett a
probléma. Az IR2113 áramkör viszont nem igényel külön kapcsolóüzemű tápegységet
kialakítása miatt, ennélfogva ennek az áramkörnek az alkalmazásával nagymértékben
lecsökkenthető a rendszer fizikai mérete, valamint egyszerűsödik is a kialakítása, a
kapcsolóüzemű transzformátor elhagyása pozitív hatással van a rendszerre. A
kapcsolóüzemű transzformátor szórt fluxusa az IGBT/MOSFET kapcsolóelemeket igen
zavarja.
Remélem, hogy későbbiekben a kész áramkör kibővítésre kerül úgy, hogy 3
fázisú váltóirányító készülhessen el belőle, mely képes legfeljebb 2,2 kW hatásos
teljesítményű aszinkronmotorok frekvenciaszabályozására. Az ATmega 2560-as
mikrovezérlő alkalmas lenne a célra, a PB7 kimenetet, azaz a 26-os lábat egy harmadik
hídág vezérléséhez kéne felhasználni. Egy ilyen rendszert IR2113 vezérlőáramkörrel a
szakdolgozatomban terveztem meg.
A méréséket itthon PC alapú USB-s oszcilloszkóppal végeztem, melynek pontos
típusa: HANTEK 6104BC. Ez az oszcilloszkóp 4 csatornás, 100 MHz-es, 1 GSa/s
mintavételezési sebességre képes. A méréseken látható keskeny impulzusok, melyek
hirtelen előjelet is váltanak mérési hibákból származik, nem az áramkör által előállított
feszültség valós értéke. Érdemes lenne magasabb minőségű oszcilloszkóppal elvégezni
a méréseket újból.
Boros Rafael Ruben – TDK dolgozat 38
Irodalomjegyzék
[1] FAIRCHILD SEMICONDUCTOR: FGA25N120ANTD. 2013, p. 9.
[2] FAIRCHILD SEMICONDUCTOR: FOD3120 High Noise Immunity, 2.5A Output
Current, Gate Drive Optocoupler. 2016, p. 2.
Boros Rafael Ruben – TDK dolgozat 39
1. számú melléklet
Boros Rafael Ruben – TDK dolgozat 40
2. számú melléklet
Boros Rafael Ruben – TDK dolgozat 41
3. számú melléklet
Boros Rafael Ruben – TDK dolgozat 42
4. számú melléklet
Boros Rafael Ruben – TDK dolgozat 43
5. számú melléklet
Boros Rafael Ruben – TDK dolgozat 44
6. számú melléklet
#include <avr/interrupt.h> #include <avr/io.h> #include <math.h> #include <Nextion.h> #define max_kapcsolasi_frekvencia 50000 #define min_kapcsolasi_frekvencia 1000 int felbontas = 512; int felbontas_regi = 0; bool kimenet = false; int microMHz = 16; double frekvencia = 50.00; int frekvencia_egesz = 50; int frekvencia_szazad = 0; double frekvencia_regi = 0.0; long int periodus = 0; int szinuszTomb1[1024]; int szinuszTomb2[1024]; double tomb1, tomb2; double amplitudo = 100, amplitudo_regi; double amplitudo_ertek; int index = 0; int hatvanykitevo = 9; int korrekcio = 0; int index_1 = 0; bool ujrageneralas_kerveny = false; long int kapcsolasi_frekvencia; NexButton b0 = NexButton(2, 1, "b0"); NexButton b1 = NexButton(2, 2, "b1"); NexButton b2 = NexButton(3, 3, "b2"); NexButton b3 = NexButton(3, 4, "b3"); NexButton b4 = NexButton(2, 7, "b4"); NexButton b5 = NexButton(2, 8, "b5"); NexButton b6 = NexButton(0, 2, "b6"); NexButton b7 = NexButton(0, 3, "b7"); NexButton b8 = NexButton(0, 4, "b8"); NexButton b9 = NexButton(0, 5, "b9"); NexButton b10 = NexButton(4, 2, "b10"); NexButton b11 = NexButton(4, 3, "b11"); NexButton b12 = NexButton(0, 6, "b12"); NexButton b13 = NexButton(5, 2, "b13"); NexButton b14 = NexButton(5, 3, "b14"); NexButton b15 = NexButton(5, 4, "b15"); NexButton b16 = NexButton(5, 5, "b16"); NexButton b17 = NexButton(5, 6, "b17"); NexButton b19 = NexButton(7, 7, "b19"); NexRadio r0 = NexRadio(1, 1, "r0"); NexRadio r1 = NexRadio(1, 4, "r1"); NexTouch *nex_listen_list[] =
Boros Rafael Ruben – TDK dolgozat 45
&b0, &b1, &b2, &b3, &b4, &b5, &b6, &b7, &b8, &b9, &b10, &b11, &b12, &b13, &b14, &b15, &b16, &b17, &b19, &r0, &r1, NULL ; void b0PushCallback(void *ptr) frekvencia_egesz += 1; Serial2.print("n1.val="); Serial2.print(frekvencia_egesz); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); void b1PushCallback(void *ptr) if (frekvencia_egesz > 1) frekvencia_egesz -= 1; Serial2.print("n1.val="); Serial2.print(frekvencia_egesz); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); void b2PushCallback(void *ptr) if (amplitudo <= 110) amplitudo += 1; Serial2.print("n0.val="); Serial2.print((int)amplitudo); Serial2.write(0xff);
Boros Rafael Ruben – TDK dolgozat 46
Serial2.write(0xff); Serial2.write(0xff); void b3PushCallback(void *ptr) if (amplitudo > 0) amplitudo -= 1; Serial2.print("n0.val="); Serial2.print((int)amplitudo); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); void b4PushCallback(void *ptr) // szazad noveles if (frekvencia_szazad < 99) frekvencia_szazad += 1; Serial2.print("n2.val="); Serial2.print(frekvencia_szazad); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); void b5PushCallback(void *ptr) // szazad csokkenes if (frekvencia_szazad > 0) frekvencia_szazad -= 1; Serial2.print("n2.val="); Serial2.print(frekvencia_szazad); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); void r0PushCallback(void *ptr) kimenet = true; void r1PushCallback(void *ptr) kimenet = false; void b6PushCallback(void *ptr) //kimenet engedelyezes menupont if (kimenet == true) Serial2.print("r1.val=");
Boros Rafael Ruben – TDK dolgozat 47
Serial2.print(0); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); Serial2.print("r0.val="); Serial2.print(1); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); void b7PushCallback(void *ptr) //frekvencia menupont Serial2.print("n1.val="); Serial2.print(frekvencia_egesz); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); Serial2.print("n2.val="); Serial2.print(frekvencia_szazad); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); void b8PushCallback(void *ptr) //amplitudo menupont Serial2.print("n0.val="); Serial2.print((int)amplitudo); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); void b10PushCallback(void *ptr)// felbontas noveles if (hatvanykitevo < 10) hatvanykitevo++; felbontas = pow(2, hatvanykitevo) + 1; Serial2.print("n4.val="); Serial2.print(hatvanykitevo); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); Serial2.print("n5.val="); Serial2.print(felbontas); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); void b11PushCallback(void *ptr)// felbontas csokkentes
Boros Rafael Ruben – TDK dolgozat 48
if (hatvanykitevo > 5) hatvanykitevo--; felbontas = pow(2, hatvanykitevo) + 1; Serial2.print("n4.val="); Serial2.print(hatvanykitevo); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); Serial2.print("n5.val="); Serial2.print(felbontas); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); void b9PushCallback(void *ptr)// felbontas menupont felbontas = pow(2, hatvanykitevo) + 1; Serial2.print("n4.val="); Serial2.print(hatvanykitevo); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); Serial2.print("n5.val="); Serial2.print(felbontas); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); void b12PushCallback(void *ptr) //korrekcio menupont Serial2.print("n6.val="); Serial2.print(index_1); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); Serial2.print("n7.val="); Serial2.print(korrekcio); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); void b13PushCallback(void *ptr) //ujrageneralas ujrageneralas_kerveny = true; void b14PushCallback(void *ptr) // index + if (index_1 < felbontas / 2)
Boros Rafael Ruben – TDK dolgozat 49
index_1++; Serial2.print("n6.val="); Serial2.print(index_1); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); void b15PushCallback(void *ptr) //index - if (index_1 > 0) index_1--; Serial2.print("n6.val="); Serial2.print(index_1); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); void b16PushCallback(void *ptr) //mertek + if (korrekcio < periodus) korrekcio += 10; Serial2.print("n7.val="); Serial2.print(korrekcio); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); void b17PushCallback(void *ptr) //mertek - if (korrekcio > 0) korrekcio -= 10; Serial2.print("n7.val="); Serial2.print(korrekcio); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); void b19PushCallback(void *ptr) //frissites Serial2.print("n9.val="); Serial2.print(periodus); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); Serial2.print("n10.val="); Serial2.print(kapcsolasi_frekvencia);
Boros Rafael Ruben – TDK dolgozat 50
Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); void setup() Serial.setTimeout(10); Serial.begin(115200); Serial2.begin(9600); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); b0.attachPush(b0PushCallback); b1.attachPush(b1PushCallback); b2.attachPush(b2PushCallback); b3.attachPush(b3PushCallback); b4.attachPush(b4PushCallback); b5.attachPush(b5PushCallback); b6.attachPush(b6PushCallback); b7.attachPush(b7PushCallback); b8.attachPush(b8PushCallback); b9.attachPush(b9PushCallback); b10.attachPush(b10PushCallback); b11.attachPush(b11PushCallback); b12.attachPush(b12PushCallback); b13.attachPush(b13PushCallback); b14.attachPush(b14PushCallback); b15.attachPush(b15PushCallback); b16.attachPush(b16PushCallback); b17.attachPush(b17PushCallback); b19.attachPush(b19PushCallback); r0.attachPush(r0PushCallback); r1.attachPush(r1PushCallback); regiszterekBeallitasa(); ujrageneralas(); void loop() delay(1); nexLoop(nex_listen_list); if (kimenet == false) TCCR1A = 0b00000010; if (kimenet == true) TCCR1A = 0b10100010; if (felbontas != felbontas_regi) ujrageneralas(); felbontas_regi = felbontas; if (amplitudo != amplitudo_regi) amplitudo_ertek = amplitudo / 100.00; ujrageneralas(); amplitudo_regi = amplitudo;
Boros Rafael Ruben – TDK dolgozat 51
frekvencia = frekvencia_egesz + ((double)frekvencia_szazad * 0.01); if (frekvencia != frekvencia_regi) ujrageneralas(); frekvencia_regi = frekvencia; if (ujrageneralas_kerveny == true) ujrageneralas(); Serial2.print("n8.val="); Serial2.print(periodus); Serial2.write(0xff); Serial2.write(0xff); Serial2.write(0xff); ujrageneralas_kerveny = false; //loop ISR(TIMER1_OVF_vect) OCR1A = szinuszTomb1[index]; OCR1B = szinuszTomb2[index]; if (++index >= felbontas) index = 0; void regiszterekBeallitasa(void) TCCR1A = 0b00000010; TCCR1B = 0b00011001; TIMSK1 = 0b00000001; sei(); //Megszakitas engedelyezese DDRB = 0b11100000; //pin24, pin25, pin26 kimenet ICR1 = 0; void ujrageneralas(void) TCCR1A = 0b00000010; periodus = microMHz * 1e6 / frekvencia / felbontas; kapcsolasi_frekvencia = 16 * 1e6 / periodus; if (kapcsolasi_frekvencia < min_kapcsolasi_frekvencia || kapcsolasi_frekvencia > max_kapcsolasi_frekvencia) frekvencia = 50; felbontas = 512; hatvanykitevo = 9; periodus = microMHz * 1e6 / frekvencia / felbontas; kapcsolasi_frekvencia = 16 * 1e6 / periodus; Serial.println(kapcsolasi_frekvencia); if (periodus > 65535) periodus = 65535; ICR1 = periodus; for (int i = 0; i <= felbontas; i++) if (i < felbontas / 2) // elso periodus
Boros Rafael Ruben – TDK dolgozat 52
tomb1 = sin(i * 2 * M_PI / felbontas) * periodus * amplitudo_ertek; if (i < index_1 || i > (felbontas / 2) - index_1) tomb1 = (int)tomb1 + korrekcio; if (tomb1 > periodus) tomb1 = periodus; szinuszTomb1[i] = (int)(tomb1); szinuszTomb2[i] = 0; if (i > felbontas / 2) // masodik periodus tomb2 = sin((i - felbontas / 2) * 2 * M_PI / felbontas) * periodus * amplitudo_ertek; if (i < felbontas / 2 + index_1 || i > felbontas - index_1) tomb2 = (int)tomb2 + korrekcio; if (tomb1 > periodus) tomb1 = periodus; szinuszTomb2[i] = (int)(tomb2); szinuszTomb1[i] = 0; TCCR1A = 0b10100010;