Budapesti M¶szaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar
Korszer¶ akkumulátoros energitároló és tölt® fokozat FPGA alapú Hardware-In-the-Loop szimulátorának tervezése
TDK dolgozat Szabó Péter Konzulens:
Debreceni Tibor
[email protected] Automatizálási és Alkalmazott Informatikai Taszék Dr. Balázs Gergely György
[email protected] Siemens Zrt.
Budapest, 2015.10.26.
Korszer¶ akkumulátoros energitároló és tölt® fokozat FPGA alapú Hardware-In-the-Loop szimulátorának tervezése Köszönetnyilvánítás
Ez úton is szeretném megköszönni konzulensemnek, Debreceni Tibornak a tervezés és megvalósítás közben nyújtott segítségét. Szeretnék köszönetet mondani Dr. Balázs Gergely Györgynek, hogy TDK munkám során állandó bejárást és betekintést engedett a Siemens Zrt. teljesítményelektronika laboratóriumába. Valamint köszönettel tartozom Bihari Gábor kollégámnak, aki szakmai észrevételeivel és épít® jelleg¶ kritikáival hozzájárult a munkám elkészüléséhez.
TDK 2015
Szabó Péter
Korszer¶ akkumulátoros energitároló és tölt® fokozat FPGA alapú Hardware-In-the-Loop szimulátorának tervezése Kivonat
A teljesítményelektronikai berendezések tervezése és gyártása korunk egyik legdinamikusabban fejl®d® ipari ágazata. A félvezet® elemekb®l egyre növekv® kapcsolási frekvencián kinyerhet®, egyre nagyobb teljesítmények, másrészt az egyre komplexebb szabályozási feladatok mind kutatási, mind fejlesztési irányokat és kihívásokat nyújtanak a villamosmérnökök számára. Emellett azonban tény, hogy az ipar gyors eredményeket vár, még a frissen megjelent technológiák, és vezérlési struktúrák esetében is, ami pozitív húzóerején kívül komoly kihívásokat is jelent a kutató- és fejleszt®mérnököknek egyaránt. A fejl®dés hatása és az egyre összetettebb igények legf®képpen a több kilo- és megawattos teljesítmény¶ átalakítók esetében gyelhet® meg. Ilyen teljesítmény szinteken az emberi és anyagi biztonság kulcsfontosságú a fejlesztés és tesztelés teljes folyamata során. Ennek érdekében az átalakítókat többrét¶ védelemmel és komplex szabályozási körökkel látják el a biztonságos, és hatékony m¶ködés elérése érdekében. A vezérl® egységek tervezése rendszerint párhuzamosan zajlik a teljesítmény fokozat (f®kör) tervezésével. A modern vezérl®ket korszer¶ beágyazott rendszerekkel oldják meg, amik tipikusan DSP vagy mikrokontroller alapúak. Legf®képpen a nagy-teljesítmény¶ átalakítók esetében igaz, hogy a f®köri elemek egyedi tervezése szükséges, így a vezérl®egység - szinte áramköri bonyolultságától függetlenül - jóval hamarabb a fejleszt®, illetve tesztel® kezébe kerül. Mindezek tekintetében, a vezérl® egység tesztelésére kínálkozó lehet®ségek közül egyre népszer¶bb a Hardware-In-the-Loop (HIL) szimulátor alkalmazása, melyben a f®kör modellje egy dedikált központi egységre implementált. Ezzel a módszerrel valós id®ben (∼ 10 100 nsec-os felbontású lépésközökkel) futtathatjuk a f®kör szimulációját, ami periodikusan kiszámolja az állapotváltozók értékét, és interfészeinek megfelel® kialakításával elérhet®, hogy azonos jelszintekkel kapcsolódjon a vezérl® egységhez, mint a valódi f®kör esetén. A szabályozók hangolása valós id®ben végezhet® le, a f®kör valós idej¶ paraméterezésével, illetve bels® változóinak monitorozása mellett. A HIL szimulátor használatával a vezérl® egység tesztelésekor lehet®ség nyílik olyan extrém hibaállapotok el®állítására is, amik a valódi f®kör esetén nehezen, vagy egyáltalán nem valósíthatók meg, azonban a specikáció TDK 2015
Szabó Péter
Korszer¶ akkumulátoros energitároló és tölt® fokozat FPGA alapú Hardware-In-the-Loop szimulátorának tervezése rendelkezik ilyen állapotok kezelésér®l (pl.: fáziszárlatok, rövidzár védelmek). TDK dolgozatomban egy ilyen FPGA alapú HIL szimulátor tervezését valósítottam meg, melyben a kezdetben megcélzott szimulációs lépésköz 100 nsec volt. A szimulátorban megvalósításra került egy korszer¶ lítium-ion akkumulátor cellákat tartalmazó akkumulátor pakk modell, és a hozzá kapcsolódó akkumulátor tölt® f®körének modellje. A szimulátort egy Xilinx Artix-7 FPGA-ra szintetizáltam, melyhez a HDL kódot MATLAB/Simulinkb®l generáltam a modell megtervezését és oine szimulációkkal történ® verikálását követ®en. A vezérl®egység szerepét egy ST Microelectronics által gyártott 32 bites mikrokontroller fejleszt®kártya látja el.
TDK 2015
Szabó Péter
Korszer¶ akkumulátoros energitároló és tölt® fokozat FPGA alapú Hardware-In-the-Loop szimulátorának tervezése Abstract
The design and manufacturing of power converters is one of the most dynamically developing industrial sectors of today. The increasing switching frequency and power of the semiconductors and the more complex structures of converter control demands give research and development directions and challenges for the engineers. Besides that, the fact is the industry expects rapid results, even from the newest technologies and control structures, which ensures a positive driving force and big challenges at the same time. We can inspect the impact of development in case of power converters in the power range of kilo- and megawatts. In this range the human and material safety is the number one concern in the development and testing phase, as well. In order to maintain such safety and eciency aspects, the converters have built-in more level and sort of protection, and advanced controller functions. The development of these control units are usually parallel with the main development of the power stage (main circuit). Such modern control units are designed in form of advanced DSP- or micro-controller-based embedded systems. Especially for the high-power converters, it is true that the main circuit elements cannot be gained o-the-shelf, so custom design and manufacturing are needed. Therefore the control unit - almost independently from its circuit complexity - takes much less time to be in hand of the designer and the test team. According to all the above mentioned aspects, applying of Hardware-In-the-Loop (HIL) simulator is the most favourite from the opportunities of testing the control unit, where the main circuit model is implemented in a dedicated central computational unit. With this method we can run real-time simulations (∼10 -100 nsec step time), in which the state variables are periodically calculated and with a proper interface design, we can achieve connections with the control unit on the same signal levels, as with the real main circuit. The subject of my TDK paper is the development of an FPGA based HIL simulator, in which the targeted step time is 100 nsec. The realized simulator can simulate a battery pack built-up by advanced lithium-ion battery cells and the related charger converter with its main circuit. TDK 2015
Szabó Péter
Korszer¶ akkumulátoros energitároló és tölt® fokozat FPGA alapú Hardware-In-the-Loop szimulátorának tervezése The simulator is realised on a Xilinx Artix-7 FPGA, where the HDL code was generated from MATLAB/Simulink after the design and verication of the models in oine simulations. The controller of the charger system is represented by an ST Microelectronics 32-bit developer kit.
TDK 2015
Szabó Péter
Tartalomjegyzék . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.1.
Korszer¶ lítium-ion akkumulátor cella modellek . . . . . . . . . . .
8
2.2.
Numerikus integrálási eljárások . . . . . . . . . . . . . . . . . . . . 15
1.
Bevezet®
2.
Elméleti áttekintés
3.
4.
A megvalósított HIL szimulátor
3.1.
A tesztkörnyezet felépítése . . . . . . . . . . . . . . . . . . . . . . . 21
3.2.
A vezérl®egység . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3.
Az FPGA fejleszt®kártya[29] . . . . . . . . . . . . . . . . . . . . . . 22
3.4.
Szintillesztés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
A modellezett rendszer
. . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.1.
A rendszer blokkvázlata . . . . . . . . . . . . . . . . . . . . . . . . 24
4.2.
Vezérelhet®, feszültségcsökkent® DC/DC átalakító . . . . . . . . . . 24
4.3.
Akkumulátoros rendszer . . . . . . . . . . . . . . . . . . . . . . . . 25
4.4. 5.
. . . . . . . . . . . . . . . . . . . . . 21
4.3.1.
Kontaktoros f®köri fokozat . . . . . . . . . . . . . . . . . . 25
4.3.2.
Akkumulátor pakk . . . . . . . . . . . . . . . . . . . . . . 26
A rendszer jelei, m¶ködése és leíró egyenletei . . . . . . . . . . . . . 28
A Simulink modell
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.1.
Számábrázolás . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.2.
A modell legfels® szint¶ leírása
5.3.
A Simulink modell részeinek leírása . . . . . . . . . . . . . . . . . . 37
. . . . . . . . . . . . . . . . . . . . 34
5.3.1.
A bemenetek szinkronizálása . . . . . . . . . . . . . . . . 37
5.3.2.
Szinkron DC/DC feszültség átalakító Simulink modellje . 37
5.3.3.
A DC kontaktor Simulink modellje . . . . . . . . . . . . . 40
5.3.4.
A cabling Simulink modellje . . . . . . . . . . . . . . . . . 42 1
Korszer¶ akkumulátoros energitároló és tölt® fokozat FPGA alapú Hardware-In-the-Loop szimulátorának tervezése
6.
5.3.5.
Az akkumulátor pakk Simulink modellje . . . . . . . . . . 42
5.3.6.
A Σ/∆ modulátor Simulink modellje . . . . . . . . . . . . 44
5.4.
A felhasználói felület (HMI) . . . . . . . . . . . . . . . . . . . . . . 44
5.5.
A mérési eredmények . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Értékelés
TDK 2015
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2
Szabó Péter
Ábrák jegyzéke 1.1. Hardware-In-the-Loop szimulátor általános felépítése . . . . . . . . . . . .
6
2.1. Akkumulátor cella általános, n-ed rend¶ villamos helyettesít®képe . . . . .
9
2.2. Akkumulátor modell (Internal Resistance) . . . . . . . . . . . . . . . . . . 12 2.3. Akkumulátor modell (One Time Constant) . . . . . . . . . . . . . . . . . . 13 2.4. Akkumulátor modell (Two Time Constant) . . . . . . . . . . . . . . . . . . 13 2.5. Numerikus integrátor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.6. El®relép® Euler módszer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.7. El®relép® Euler módszer megvalósított modellje . . . . . . . . . . . . . . . 20 3.1. HIL rendszer blokkvázlata . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.2. Másodfokú alulátereszt® sz¶r® . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.3. Szintilleszt® kapcsolás (5 V/3 V)
. . . . . . . . . . . . . . . . . . . . . . . 23
4.1. Az akumulátor tölt® rendszer blokkvázlata . . . . . . . . . . . . . . . . . . 24 4.2. DC/DC konverter kapcsolási rajza . . . . . . . . . . . . . . . . . . . . . . . 24 4.3. Kontaktoros f®köri fokozat kapcsolási rajza . . . . . . . . . . . . . . . . . . 25 4.4. Kontaktoros f®köri fokozat modelljének kapcsolási rajza . . . . . . . . . . . 26 4.5. Lítium-ion akkumulátor üresjárati feszültsége a töltöttség függvényében . . 27 4.6. A rendszer jelei és referenciairányai . . . . . . . . . . . . . . . . . . . . . . 28 5.1. Simulink modell legfels® szintje . . . . . . . . . . . . . . . . . . . . . . . . 36 5.2. Bemenetek beléptetése . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 5.3. DC/DC átalakító Simulink modellje . . . . . . . . . . . . . . . . . . . . . . 38 5.4. IGBT hídág a VL segédváltozó kiszámításához . . . . . . . . . . . . . . . . 38 5.5. IGBT késleltetések állapotgépe . . . . . . . . . . . . . . . . . . . . . . . . 39 5.6. Az iL állapotváltozó számítása . . . . . . . . . . . . . . . . . . . . . . . . . 39 5.7. A VCharger állapotváltozó számítása . . . . . . . . . . . . . . . . . . . . . . 40 3
Korszer¶ akkumulátoros energitároló és tölt® fokozat FPGA alapú Hardware-In-the-Loop szimulátorának tervezése 5.8. A DC kontaktor Simulink modellje . . . . . . . . . . . . . . . . . . . . . . 40 5.9. A Vswitch segédváltozó számítása . . . . . . . . . . . . . . . . . . . . . . . . 41 5.10. A f®köri vezetékezés R − L helyettesít®képének modellje . . . . . . . . . . 42 5.11. A kombinált akkumulátor cella helyettesít®kép modellje . . . . . . . . . . . 43 5.12. A Σ/∆ modulátor Simulink modellje . . . . . . . . . . . . . . . . . . . . . 44 5.13. Chipscope-pro magok és a modell viszonya . . . . . . . . . . . . . . . . . . 45 5.14. CC-CV töltés jelleggörbéi . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5.15. A kontaktor mechanikai késleltetései
. . . . . . . . . . . . . . . . . . . . . 47
5.16. A töltési ciklus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 5.17. CV töltés és a töltési ciklus vége . . . . . . . . . . . . . . . . . . . . . . . . 49
TDK 2015
4
Szabó Péter
Bevezet® 1.
Bevezet®
Hardware-In-The-Loop szimulátorok a teljesítményelektronikában A mai villamos iparban nagy hangsúlyt kapnak a korszer¶ teljesítmény átalakítók, energiatárolók. Épp emiatt nagy igény mutatkozik azok fejlesztésére és minél nagyobb volumen¶ gyártására. Ezeknek az eszközöknek a fejlesztése viszont több problémát is rejt magában. Rendszerint a korszer¶, nagy teljesítmény¶ energiatárolók és átalakítók megfelel® m¶ködtetéséhez nem elegend® a f®kör megtervezése, ezek mellé szükség van szabályzók és vezérl® egységek implementálására is. Ez a két egység rendszerint egymástól nagyon eltér® munkafolyamatokat és tervezési készségeket von maga után, épp emiatt külön munkacsoportok dolgoznak rajtuk párhuzamosan. Ez a párhuzamos munkavégzés viszont azzal jár, hogy a két egység nem azonos id®ben készül el, rendszerint el®bb rendelkezésre áll a vezérl®, mint hozzá maga a teljesítmény fokozat. Az így keletkezett holtid® semmiféle hasznot nem termel a fejleszt®knek, hisz nem tudják az elkészített eszközüket hangolni, tesztelni, illetve validálni[1]. Egy másik probléma szintén a tesztelésb®l fakad. A mai komplex szabályzókat már nem lehet, illetve nem érdemes analóg módon diszkrét áramköri elemekb®l felépíteni, ezek rendszerint egy beágyazott rendszert képeznek, melyek központi egységében (pl.: DSP,MCU) fut a szabályozó kódja[2]. Mivel ezek a szabályzók nagy teljesítmény¶ rendszereket irányítanak, fontos a megbízható m¶ködésük. Épp ezért egy elgépelés a forráskódban komoly meghibásodásokhoz, túlmelegedésekhez, esetleg egyes alkatrészek felrobbanásához vezethetnek. Ez különösen is igaz a mai akkumulátoros energiatároló rendszerek esetében, mivel ezekben lítium alapú akkumulátor cellákat használnak, melyek nem megfelel® körülmények között súlyos károkat okozhatnak, súlyosabb esetekben emberi sérülésekhez vezethetnek. Az ilyen és ehhez hasonló problémák kiküszöbölésére megoldást nyújt a vezérl® rendszerek szimulációval történ® tesztelése. A közép- és nagy teljesítmény¶ energiatárolókkal és átalakítókkal foglalkozó iparágakban az egyik legelterjedtebb szimulációs eljárás a
TDK 2015
5
Szabó Péter
Bevezet® Hardware-In-the-Loop (HIL) szimulátorok alkalmazása[3]. A teljesítmény elektronikában használatos HIL szimulátor általános felépítését mutatja az 1.1. ábra.
1.1. ábra. Hardware-In-the-Loop szimulátor általános felépítése Ebben a szimulációs eljárásban létrehozzuk a teljesítmény-átalakító modelljét valamilyen magas szint¶ nyelven, tipikusan MATLAB/Simulink, esetleg Labview környezetben. Miután létrehoztuk a modellünket, lehet®ségünk van azt még implementálás el®tt, a fejleszt®környezetben ellen®rizni folytonos idej¶, lebeg®pontos számábrázolást használó (oline) szimulációval, szükség esetén javíthatjuk a nem megfelel®en m¶köd® modellünket[4]. Amennyiben ezek az oine tesztek sikerrel záródtak, a modellünk készen áll valamilyen tesztkörnyezeten történ® implementálásra. A megfelel® tesztkörnyezet kiválasztásakor gyelembe kell vennünk több tényez®t. Mivel ezekben a rendszerekben az állapotváltozók száma, melyeket egyszerre kell kiszámítani igen nagy (a rendszer komplexitásától függ®en 10+ különálló mennyiségr®l beszélhetünk), a m¶veletek számítás igényesek. Ezen kívül gyelembe kell vennünk, hogy a teljesítményelektronikai rendszerekben a vezérlés PWM segítségével valósul meg. Ezeknek a jeleknek a frekvenciája igen magas, tipikusan 2-150 kHz lehet[5]. Mivel egy HIL szimulátor legf®bb célja a rendszer szabályzástechnikai szempontokból való modellezése, ezért fontos ezeknek a kapcsolófrekvenciás összetev®knek a szimulálása is, hisz ezek zajként jelennek meg a szabályzási körben, amire a vezérl® egységet fel kell készítenünk. Ahhoz, hogy ezeket a több kHz-es jeleket modellezni tudjuk, igen kis lépésközöket kell választani a szimuláció futtatásához. Mindezeket gyelembe véve jó megoldást kapunk, ha rendszerünket egy FPGA-ra szintetizáljuk. Ehhez rendelkezésünkre áll a Simulink részeként HDL coder, ami az általunk TDK 2015
6
Szabó Péter
Bevezet® elkészített modellt fordítja át az FPGA-ra szintetizálható HDL (VHDL vagy Verilog) nyelvre. Az FPGA-k nagy el®nye a HIL alkalmazásokban, hogy a m¶veletek párhuzamos lefutásúak, így megoldható, hogy a szimuláció lépésköze 10 − 100 nsec nagyságrendben legyen[6, 7]. Mivel manapság egyre er®sebb hardverek érhet®ek el, így kézenfekv® lenne, hogy a pontosság javítása érdekében még kisebb lépésközzel m¶köd® szimulátorokat tervezzünk. Mindezek ellenére nem feltétlenül el®nyös a lépésköz túl kis érték¶re választása. Hajtásrendszerekben, a rendszer mechanikai id®állandói nem közelítik meg a korábban leírt 2-150 kHz-es frekvenciákat, így a szimulációkhoz nincs szükség igen kis lépésközök használatára. A teljesítmény-átalakítók vezérl®i legtöbb esetben analóg, vagy az ipari környezetre leginkább jellemz®, nagy zaj immunitással rendelkez® szigma-delta (Σ/∆) modulált jeleket várnak. Az utóbbi esetben a Σ/∆ modulációt végz® IC-k funkcióját kell megvalósítani FPGA-ban, amik tipikusan 10-20 kHz-cel m¶ködnek. Ekkor viszont még a lépésköz csökkentésével sem áll rendelkezésünkre több információ, így annak csökkentése feleslegessé válik. Abban az esetben, ha a vezérl® analóg jeleket vár, a komplexitás és hatékonyság szempontjából szintén a Σ/∆ modulátor használata a legkedvez®bb, amivel az FPGA-ban bitsorozatot hozunk létre, majd a nagyfrekvenciás tartományba kitolt kvantálási zajt egy másodrend¶ sz¶r® segítségével elnyomjuk[8]. További el®nye ennek a szimulációs eljárásnak, hogy megfelel® számítógépes interfészeknek köszönhet®en a modellünk paraméterei valós id®ben változtathatóak és minden jelet szintén valós id®ben követhetünk, azokat nem csak utólag vizsgálhatjuk. Legnagyobb el®nye a HIL szimulációnak a többi tesztelési eljárással szemben viszont az, hogy többek között a valóságnak a lehet® leginkább megfelel® körülmények és állapotok hozhatóak létre. Figyelembe tudjuk venni a f®köri id®állandókat és veszteségeket, a kapcsolóelemek és a f®köri kontaktorok késleltetését, melyek szabályzástechnikai szempontokból nem elhanyagolhatóak. A vezérl®egységek minél komplexebb tesztelésének és validációjának érdekében létrehozhatók extrém állapotok is[9, 10], így meggyelhet®, és befolyásolható a szabályzók vészhelyzetben mutatott viselkedése is, ezzel növelve a teljes rendszer biztonságát. TDK 2015
7
Szabó Péter
Elméleti áttekintés 2.
Elméleti áttekintés
Ebben a fejezetben bemutatom azokat az alapvet® ismereteket, melyek elengedhetetlenek voltak a munkám elvégzéséhez. Az akkumulátoros rendszer szimulációjához meg kell ismernünk az akkumulátor cellák villamos modellezésének alapjait. A szimuláció FPGAn történ® futtatásához szükségünk van diszkrét idej¶ integrátorok használatára, ahhoz, hogy a tervezés során a feladatnak leginkább megfelel® integrátort implementáljuk, meg kell ismernünk a legelterjedtebb numerikus integrátorokat.
2.1.
Korszer¶ lítium-ion akkumulátor cella modellek
Az akkumulátor cellák szimulációjához megfelel® modellt kell választanunk. Ennek a modellnek pontos villamos helyettesít® képeket kell adnia az akkumulátor cellákról. A modellezést több szinten is meg lehet ejteni. A cellák elektrokémia modellezése esetünkben nem megfelel®, hiszen az a cellák zikai kialakításához, az energiafelhasználás optimalizálásához elengedhetetlen[11, 12]. Ezek rendkívül komplex modellek, melyek rendszerszint¶ dinamikus viselkedést nem szolgáltatnak. Lehetséges matematikai modellek használata, ezek viszont sokszor sztochasztikus megközelítést használnak, és bár képesek rendszerszint¶ viselkedés el®állítására, semmiféle I-V karakterisztikát nem eredményeznek, melyek elengedhetetlenek az elektromos tervezéshez [13, 14]. E között a két szint között helyezkedik el az akkumulátor cellák villamos modellezése, mely a rendszer matematikai leírását használja, de az elektrokémiai hatásokat is gyelembe veszi, mint elektrokémiai és koncentrációs polarizációk[11, 15]. Miel®tt foglalkoznánk a cellák legnépszer¶bb villamos helyettesít®képeivel, szükséges néhány alapvet® fogalmat megismernünk. A szakirodalomban a cellák min®ségi leírására több állapotjelz® is elterjedt, ezek közül a legfontosabb a State-of-Charge (SoC). Az SoC nem más mint az akkumulátor cella töltöttségi szintje. Értékét rendszerint százalékban, vagy 0 − 1-közötti viszonyszámban adják meg. Ezzel az állapotjelz®vel megadható, hogy az adott áramterhelés mellet a cella mikor fog lemerülni, azaz, hogy mikor csökken nullára a felhasználható vagy más névvel kisütési kapacitása. Az SoC fogalmával szorosan összeTDK 2015
8
Szabó Péter
Elméleti áttekintés függ a Depth-of-Discharge (DoD), vagyis a cella merültségének mértéke. DoD segítségével megadhatjuk, hogy a névleges kapacitásból mekkora részt használtunk már el. Az SoC értéke kiszámolható a 2.1. képlet alapján,
1 SoC(t) = SoCinit − Qn
Z
t
(2.1)
id (t)dt 0
ahol Qn az akkumulátor cella nominális kapacitása, id pedig az akkumulátor cella kisüt® árama, feltételezve hogy értéke kisütéskor pozitív, töltéskor negatív. Mivel mind az SoC, mind a DoD a cella töltöttségi állapotát írja le, ezek kifejezhet®k egymásból, mégpedig a következ®képpen, (2.2)
DoD = 1 − SoC
feltételezve, hogy mind SoC, mind DoD a 0 − 1 tartományon van kifejezve. A szakirodalmakban egyaránt használják az SoC és DoD kifejezéseket. Az akkumulátorok villamos modellezéséhez megfelel® villamos helyettesít®képet kell választanunk. A gyakorlatban több f®bb helyettesít®kép is elterjedt, mint a Thévenin[16, 17], impedancia[18], illetve futásidej¶[19, 20] modellek. Az általam választott modell az ezek alapján létrejött kombinált modell[11], mely tartalmazza a Thévenin és futásidej¶ modellek részeit. Ezzel a megközelítéssel elérhetjük, hogy egyidej¶leg jelezhetjük a cella futásidej¶ viselkedését, annak tranziensre adott válaszát és valós id®ben rögzíthetjük dinamikus, villamos karakterisztikáit, mint az üresjárati feszültséget, vagy SoC-t[21]. Ennek a kombinált modellnek az álltalános alakját mutatja a 2.1.ábra. Az itt látható helyettesít®-
2.1. ábra. Akkumulátor cella általános, n-ed rend¶ villamos helyettesít®képe kép két részre osztható. A kapcsolás baloldala határozza meg az akkumulátor élettartamát TDK 2015
9
Szabó Péter
Elméleti áttekintés (battery life time), ez a rész felel a modellben a cella DoD értékének a kiszámításáért[11]. Az ábrán látható id áram az akkumulátor cella kisüt® árama, feltételezve, hogy ez az áramgenerátor id vezérelt és a Qn kapacitást pontosan 1V -ra tölti fel, ahol Qn értéke a cella névleges kapacitása, akkor éppen DoD értékét kapjuk meg.
1 VDoD (t) = Qn
t
Z
id (t)dt + VDoD,init
(2.3)
0
A helyettesít® kép jobb oldala adja a cella feszültség-áram karakterisztikáját. Ez a rész általános esetben felírható egy DoD függ®, feszültségvezérelt feszültség generátorral, egy bels® ellenállással és n-darab R − C taggal. A valóságban a modellel reprezentált összes mennyiség és paraméter több változó nemlineáris függését mutatja. Ezek SoC, h®mérséklet, State-of-Health (SoH), ciklusszám függ®ek. Szabályozástechnikai szempontból az akkumulátor nemlineáris és dinamikus viselkedése szignikáns hiba nélkül modellezhet® lineáris vagy statikus érték¶ paraméterezéssel is[11, 15]. Egy tölt® rendszer modellezésekor például elhanyagolhatjuk a cellák önkisülési jelenségét, illetve az SoH miatt fellép® hasznos kapacitás csökkenését, hisz ez a töltési mechanizmus szempontjából irreleváns. A továbbiakban az egyszer¶ implementálhatóság érdekében a cellák paramétereit konstansnak feltételeztem. Ezek alapján els® lépésben határozzuk meg az állapotváltozók és azok deriváltjainak egyenleteit. Az els® állapotváltozó a VDoD , ez a 2.1. egyenletben látható. Ennek deriváltja, ha feltesszük, hogy VDoD,init = 0 a következ®képpen néz ki.
˙ = 1 id VDoD Qn
(2.4)
További állapotváltozók még az R−C tagok feszültségei. Ezek általános esetben a 2.5. egyenlet alapján írhatók fel.
1 Vn (t) = Cn
TDK 2015
Z t 0
Vn (t) id (t) − Rn
10
dt + Vn,init
(2.5)
Szabó Péter
Elméleti áttekintés Ekkor megint csak felhasználva, hogy Vn,init = 0, a deriváltak a következ®képpen felírhatók,
V˙n =
id −
Vn Rn
=
Cn
id Vn − Cn τn
(2.6)
ahol τn = Rn Cn . Ekkor az n-ed rend¶ helyettesít®kép állapotteres leírása a 2.7. egyenletb®l látszik.
˙ VDoD V˙ 1 V˙ 2 . . . V˙n
=
0
0
0 − τ11
0
···
0
···
− τ12 · · ·
0
0
.. .
.. .
.. .
..
0
0
0
···
.
0 VDoD 0 V1 0 V2 .. . . .. 1 Vn τn
1 Qn
1 C1 + 1 id C2 . . .
(2.7)
1 Cn
A rendszer válaszát nem lehet egyszer¶en állapotteres alakban felírni, mivel az nem csak lineáris elemeket tartalmaz. Ezért a cella kapocsfeszültsége a 2.8. képlet alapján számolható.
Vcell = Voc − Rseries Id −
n X
Vi
(2.8)
i=1
Az így megfogalmazott általános leírás alapján a gyakorlatban három, a korábban bemutatott helyettesít®képre épül® modell terjedt el. Ezek mind a 2.1. ábrán látható ned rend¶ kapcsolás változatai, ahol n helyére megfelel® fokszámot helyettesítünk. Így a legelterjettebbek a következ®k: Nulladrend¶ modell
Az n-ed rend¶ modell legegyszer¶bb változata, az angol szakiro-
dalomban Internal resistance (IR) modell. Ez nem tartalmaz semmiféle dinamikus viselkedést leíró elemet, az akkumulátor cellát csak egy bels® ellenállással és feszültség forrással képezi le, kapcsolása a 2.2. ábrán látható. A gyakorlatban ennek az elrendezésnek kétféle megközelítése is létezik. Egyszer¶bb esetben Thévenin helyettesít®képként használjuk, ekkor feltételezünk egy olyan akkumulátor kapacitást, hogy az konstans feszültséggenerátorral közelíthet®. Ez sok TDK 2015
11
Szabó Péter
Elméleti áttekintés
2.2. ábra. Akkumulátor modell (Internal Resistance) esetben elégséges megoldást adhat, de nem veszi gyelembe a cellák SoC-tól nemlineárisan függ® üresjárati feszültségét[15]. Másik megközelítése - mint esetünkben - a helyettesít®kép kombinált modellb®l való levezetése. Ekkor a konstans feszültségforrást egy vezérelt forrással helyettesítjük, mely SoC függ®. Így a valóságos üresjárati feszültséghez közelít® megoldást kapunk. Ennek a modellnek el®nye, hogy egyszer¶sége miatt könnyen készíthet® valósidej¶ szimuláció róla. Kevés elemet tartalmaz, így elérhet®, hogy a szimulációk kis lépésközzel futhassanak a pontosabb modellezés érdekében. Másik nagy el®nye a könny¶ skálázhatósága. A paraméterek már korábban említett linearizációjával, nemlineáris függéseinek elhanyagolásával könnyedén pakk szint¶ modelleket alkothatunk. Nagy hátránya viszont, hogy egyszer¶ségéb®l adódóan nem képes az akkumulátor cellák dinamikus viselkedésének pontos leírására. Mivel nem tartalmaz állapotváltozókat, ezért egységugrás jelleg¶ áramterhelések hatására kapocsfeszültségében szintén ugrást tapasztalunk, ami valóságos cellák esetén nem áll fenn. Épp emiatt a dinamikus viselkedés gyelembe vételét igényl®, pontos szimulációkra ez a modell nem alkalmas. Els®rend¶ modell
A nullad rend¶ modell kib®vítésével, az els® állapotváltozó beikta-
tásával kaphatjuk meg az els®rend¶, vagy One Time Constant (OTC) modellt. Ez a modell már tartalmaz állapotváltozót, így annak dinamikus viselkedése jobban követi a valós viselkedést, mint a nulladrend¶ modell. Az R − C tag paramétereinek megfelel® hangolásával τ1 id®állandót a cella adott egységugrásra adott válaszának id®állandójára hangolhatjuk, így egységugrás szer¶ terhelés ingadozásokkor a feszültségben nem fog ugrás jelentkezni, jelalakja jobban közelíti a valóságos jelTDK 2015
12
Szabó Péter
Elméleti áttekintés
2.3. ábra. Akkumulátor modell (One Time Constant) alakot, mint a nulladrend¶ modell esetében. További el®nye még, hogy a modell összetettsége nem változott nagy mértékben, így még mindig könnyen lehet valósidej¶ szimulátorokban alkalmazni, bár skálázhatósága már kevésbé egyszer¶, mint a nulladrend¶ esetben[21]. Hátránya, hogy a modell csupán egytárolós tagként közelíti a valóságos cellákat, így csak gyors tranziensek esetében ad pontosabb képet a nulladrend¶ modellnél. Másodrend¶ modell
Az els® rend¶ modell további b®vítésével kapjuk meg a két álla-
potváltozót tartalmazó, úgynevezett Two Time Constant (TTC) modellt.
2.4. ábra. Akkumulátor modell (Two Time Constant) Ennek a modellnek a legnagyobb el®nye, hogy mivel két állapotváltozót is tartalmaz, azok id®állandóinak megfelel® megválasztásával a terhelésben bekövetkez® mind gyors, mind lassú tranziens okozta ugrásokat is jól tudja követni, így a legtöbb alkalmazáshoz pontos szimulációk végezhet®k rajta[22, 23]. Hátránya az eddig tárgyalt modellekhez képest, hogy összetettsége miatt nehezebb alkalmazni valósidej¶ alkalmazásokban, illetve nehézkes a skálázhatósága és b®víthet®sége. Bár megvalósítása nehezebb ennek a modellnek, a korszer¶ szimulációs TDK 2015
13
Szabó Péter
Elméleti áttekintés eszközeinkben a szimuláció még mindig lehetséges, ugyanígy skálázható is, bár több er®forrást igényel az OTC és IR modellekhez képest. Pontossága viszont annyival jobb, mint a korábban tárgyalt modelleké, hogy er®forrás igénye ellenére az iparban ez a leginkább elterjedt modell[21]. A továbbiakban ezt a modellt használtam fel a szimulátor tervezése során.
2.1. táblázat. Helyettesít® kapcsolások összehasonlítása Mint látható az általános modell tetsz®leges számú R − C taggal b®víthet®, így tetsz®leges számú, illetve bonyolultságú modell képezhet® ezen az elven. Ennek ellenére a gyakorlatban nem használnak kett®nél nagyobb fokszámú modellt, mivel az er®forrás felhasználás és számítási igény tekintetében nem érhet® el szignikánsan kisebb hiba[11]. Bár azt várnánk ezekt®l a modellekt®l, hogy az egyre nagyobb rend¶ változatai egyre pontosabban követnék le egy valóságos cella viselkedését, ez viszont a valóságban nem feltétlenül következik be. Ahhoz, hogy a modellek pontosan kövessék a valóságot, identikálni kell a modell paramétereket. Ezek a méretezések nagyszámú méréseket eredményeznek valódi cellákon. A mérések általában el®re deniált, periodikus áramprolú terhelések alapján végzett töltési-kisütési ciklusok, melyek alapján számíthatók id®állandók, majd ellenállás és kapacitás értékek[15, 24]. Mivel ezeket a méréseket teljes töltésre és teljes kisütésre kell elvégezni, és általában egy paraméter kinyeréséhez több ciklus szükséges, nagyon id®igényesek. TDK 2015
14
Szabó Péter
Elméleti áttekintés Az elkészített HIL szimulátor célja nem a cellák individuális modellezése, hanem annak pakkszint¶ dinamikus leírása volt. Ezt a viselkedést a cellaparaméterek identikációja nélkül is megfelel®en pontosan el tudtam végezni. Mint azt korábban is leírtam, a paraméterek konstans értékekkel való közelítésével csak kis hibát viszünk a rendszerbe és komplex identikációs eljárások nélkül felhasználhatók az akkumulátor adatlap értékei. Mivel a gyártók minden termékükön komoly méréseket végeznek, feltételezhetjük, hogy az általuk kiadott értékek és karakterisztika görbék helyesek, azok a modellezés során felhasználhatók. Ilyen módon könnyen megkaphatjuk pusztán az adatlapból a cellák
Voc − DoD függését és futásidej¶ viselkedését, mely nagy el®relépés az egyszer¶ Thévenin helyettesít®képekkel szemben.
2.2.
Numerikus integrálási eljárások
Annak érdekében, hogy FPGA-n az oine szimulációkkal verikált modelleket implementálhassuk, át kell alakítani azokat diszkrét idej¶re. Meg kell említenünk, hogy az oline modelleket bár folytonosnak tekintjük, állapotváltozóik kiértékelése szintén diszkrét id®ben, periodikusan zajlik, mivel ezek a szimulációk számítógépeken futnak. A számítógépen futó szimulációk futásidejének optimalizálása érdekében ezeket a szimulációkat változó lépésköz¶ megoldókkal végezzük el. Ezek képesek az állapotváltozók gyelésére és azok változási gyorsaságát gyelembe véve állítják a szükséges felbontást (step time). Lassan változó jeleket nagyobb lépésközzel számolunk, míg gyors változáskor a szimulációs szoftver (esetünkben MATLAB) érzékeli a változást és s¶r¶bb lépésközzel dolgozik. Bár az FPGA-k is képesek ezekhez hasonló változó lépésköz¶ megoldókat használni, azok bonyolultak és egy korszer¶ FPGA esetében implementálásuk felesleges, hisz elég er®forrás áll rendelkezésünkre x lépésköz¶ megoldók használatához. Ahhoz hogy a szimulációnkat valós idej¶ jelz®vel illethessük, ahhoz x lépésköz¶ megoldás alkalmazása esetén igen kicsi, 10-100nsec-os nagyságrend¶ lépésközt kell elérni. Ezzel a módszerrel biztosíthatjuk, hogy minden jel periodikusan el®álljon. A diszkrét idej¶ integrálási problémák megoldásához numerikus integrálási eljárásokat használnak.
TDK 2015
15
Szabó Péter
Elméleti áttekintés A legegyszer¶bb numerikus eljárás az el®relép®, vagy exp-
El®relép® Euler módszer
licit Euler módszer. Ez a módszer egy véges dierencia módszer, mely segítségével egy függvény integráltja közelíthet®. A módszer numerikus integrálásra a következ®képpen vezethet® le. Tegyük fel, hogy a keresett függvényünk a következ®en néz ki, (2.9)
y 0 = f (t, y(t))
ahol t ∈ [0, b] és y kezdeti értéke y(0) = 0. Osszuk fel a [0, b]-tartományt n részre. Ekkor y 0 integráltja a tartomány ti és ti + h pontja között, ahol h =
b , n
vagyis a
numerikus számítás lépésköze, a következ®,
Z
ti +h
y (ti + h) = y (ti ) +
f (t, y(t))dt
(2.10)
ti
Az integrál közelítésére használjuk a baltéglalap szabályt, majd az eredményt behelyettesítve a 2.10. egyenletbe, megkapjuk az Euler módszer explicit alakját[25].
Z
ti +h
f (t, y(t))dt ≈ hf (ti , y(ti ))
(2.11)
y (ti + h) = y (ti ) + hf (ti , y(ti ))
(2.12)
ti
Mint a 2.12. egyenletben látható, a módszer az integrál következ® értékének kiszámításához mindig csak az el®z® értékeket veszi gyelembe, emiatt ez a módszer könnyen implementálható valósidej¶ alkalmazásokban. Hátránya ennek az eljárásnak, hogy könnyen instabillá válhat. Ez akkor következhet be, ha a vizsgált rendszer id®állandóihoz képest túl nagy lépésközt állítunk be, ekkor egy egyszer¶ probléma megoldása is könnyen divergensé válhat. Ez a probléma kiküszöbölhet® a számítás lépésközének megfelel®en kis érték¶re választásával. Hátralép® Euler módszer
Az el®z®höz hasonló módszer a hátralép®, vagy implicit Eu-
ler módszer. Ez a módszer a következ®képp néz ki,
TDK 2015
16
Szabó Péter
Elméleti áttekintés
y (ti + h) = y (ti ) + hf (ti + h, y(ti + h))
(2.13)
Az egyenletet összehasonlítva a 2.12. egyenlettel láthatjuk, hogy a két módszer különbsége, hogy az el®relép® Euler módszer minden lépésben az el®z® pontban vizsgálja a függvény meredekségét (f (ti , y(ti ))), míg a hátralép® Euler módszer a keresett pontban teszi ugyan azt. Így pontosabbá tehet® az integrál közelítése, de elveszti azt a tulajdonságát, hogy az egyenlet két oldalán mindig azonos pontban számolunk. Mivel ennél a módszernél az i + 1-edik pontban lév® értékhez ismernünk kell az i-edik pontbeli értéket és az i + 1-beli érint®t, épp ezért ezt nem lehet explicit módon kifejezni. Ennek a módszernek a stabilitása kedvez®bb mint az explicit Euler esetében. Általánosságban azt szeretnénk, hogy a lépésközt el®re meghatározott specikációk szerint határozzuk meg, nem pedig a választott numerikus eljárás stabilitása alapján. Ezek alapján az olyan rendszereket, melyek megoldásához a specikált lépésközhöz képest a stabilitás eléréséhez sokkal kisebb lépésközt kell választanunk sti rendszereknek nevezzük[26]. Ezeknek a rendszereknek a megoldására jó módszer a hátralép® Euler módszer, mivel annak stabilitása kisebb mértékben függ a lépésközt®l. Trapéz szabály
A harmadik széles körben elterjedt numerikus módszer a trapézszabály.
Legkönnyebben egy tetsz®leges függvény határozott integrálja közelíthet® a következ®képpen,
Z
b
y(t)dt ≈ (b − a)
a
y(a) + y(b) 2
(2.14)
Ilyen módon a függvény integráltját, vagyis a görbe alatti területet egy trapéz területével közelítjük. A módszer pontosabbá tehet®, ha a t ∈ [a, b] tartományt felosszuk
N részre, és minden rész területre kiszámoljuk a hozzá tartozó trapéz területét, majd összegezzük azokat. Így általános esetben a trapéz szabály
Z a
b
N
hX b−a y(t)dt ≈ (y(tk+1 ) + y(tk )) = (y(t0 ) + 2y(t1 ) + · · · + 2y(xN ) + y(N )) 2 k=0 2N (2.15)
TDK 2015
17
Szabó Péter
Elméleti áttekintés ahol h =
b−a . N
Ezzel a módszerrel a lépésköz (h) megfelel®en kicsire választásával pontosan közelíthet® egy tetsz®leges függvény integráltja, és stabilitása nem függ olyan mértékben a lépésközt®l, mint az Euler módszer esetében. Valósidej¶ alkalmazásokban való használatát nehezíti, hogy egy integráláshoz sok összegzést el kell végeznünk, így ezzel a módszerrel nem lehet gyors számításokat végezni. Runge-Kutta módszer
Az eddig említett módszerek közül a legkomplexebb és egy-
ben a legpontosabb numerikus integrálási eljárás a Runge-Kutta módszer. Ezzel a névvel egy módszer családra szoktak utalni, illetve annak legelterjedtebb tagjára, a negyedrend¶ Runge-Kutta módszerre[26]. A módszer hasonlóan közelíti egy függvény integrálját, mint az implicit és explicit Euler módszerek. Ezek mind két pont között téglalapként tekintenek a függvény alatti területre, a különbség a három között, hogy az implicit (el®relép®) Euler a szakasz elején, az expicit (hátralép®) Euler a szakasz végén, míg a legegyszer¶bb Runge-Kutta a szakasz közepén vizsgálja a helyettesít® téglalap magasságát[26]. A negyedrend¶ módszer is ezt az alapelvet használja fel, de a végs® közelítéshez négyféle közelítés átlagát veszi. Ezek alapján egy tetsz®leges függvény integráltja az N részre osztott t ∈ [a, b] szakaszon a következ®en néz ki,
h yk = yk+1 + 6
tn−1 tn−1 f (tk−1 , Y1 ) + 2f , Y2 + 2f , Y3 + f (tn , Y4 ) 2 2
Y1 = yk−1 h Y2 = yk−1 + f (tk−1 , Y1 ) 2 tk−1 h , Y2 Y3 = yk−1 + f 2 2 tk−1 Y4 = yk−1 + hf , Y3 2 ahol y 0 = f (t, y), t ∈ [a, b] és h = TDK 2015
(2.16)
b−a . N
18
Szabó Péter
Elméleti áttekintés Bár ez a módszer a legstabilabb, a lépésközt®l legkevésbé függ a stabilitása, valamint a négy módszer közül azonos lépésközök esetén a legpontosabb eredményt adja, a 2.16. egyenletb®l is látszik, hogy számítása igen komplex. Mivel egy pontban a módszer négy komplex számítást igényel, ennek a módszernek az alkalmazása nehézkes valósidej¶ rendszerekben. A TDK munkám elvégzéséhez az el®relép® Euler módszert választottam. A cél a HIL szimulátor esetén az volt, hogy a rendszer futtatásakor a lehet® legkisebb szimulációs lépésközt érjük el, a lehet® legegyszer¶bben megvalósítható numerikus eljárást kellet választanom. Mivel a szimulátorban elkészült egy több elemb®l álló akkumulátor pakk modell, mely több integrátort is tartalmaz, gyelembe kellett venni, hogy ezek mind szintetizálásra kerülnek az FPGA-n, így nem lehetett nagy bonyolultságú integrátorokat használni. Bár a megemlített numerikus eljárások közül a leginstabilabb módszer az el®relép® Euler, ennek hatása nem érvényesült esetünkben. Figyelembe kell viszont venni, a tölt® fokozatban megvalósított kapcsoló üzem¶ feszültségcsökkent® konvertert is, hiszen ennek jelei 10 kHz nagyságrend¶ek. A tervezés során a megcélzott lépésköz 100 nsec volt, ami így is nagyságrendekkel kisebb a rendszerben megtalálható kapcsolási frekvenciához tartozó 100 usec-hoz képest. A kiválasztott matematikai módszerb®l létre kell hozni a numerikus integrátor modelljét a kiválasztott módszer egyenlete alapján.
2.5. ábra. Numerikus integrátor Ehhez felhasználjuk 2.12. egyenletet. Írjuk át ezt az egyenletet oly módon, ahogy azt a modellben is fel fogjuk használni,
y[k + 1] = y[k] + hu[k]
(2.17)
ahol u[k] a bemenet, y[k] a bemenet integráltja és h a szimuláció lépésköze. Ezek alapján TDK 2015
19
Szabó Péter
Elméleti áttekintés láthatjuk, hogy az integrál következ® lépésben el®álló értéke meghatározható az adott lépésben az integrál kimenetének és a bemenet lépésközzel súlyozott összegeként.
2.6. ábra. El®relép® Euler módszer A 2.5. képen látható doboz tartalma kibontva látható a 2.6. ábrán. Láthatjuk hogy az összegz® bemenetén el®áll a szükséges hu[k] és y[k] is, így a 2.17. egyenlet alapján az összegz® kimenetén megjelenik az integrál következ® lépése. Hogy ez a megfelel® módon kerüljön ki a kimenetre, vagyis a bemenet és a kimenet azonos ütemben legyen, szükségünk van a jel egy lépésközzel való késleltetésére. Szerencsére ez egy FPGA-n könnyen kivitelezhet®. Ezek alapján a következ® megvalósítást kapjuk,
H(z) = z −1
(2.18)
2.7. ábra. El®relép® Euler módszer megvalósított modellje Mint a 2.7. ábrából látszik az Euler módszerrel nagyon kevés komponens felhasználásával képesek vagyunk numerikus integrátort konstruálni, mely kis stabilitása ellenére megfelel az általunk támasztott követelményeknek.
TDK 2015
20
Szabó Péter
A megvalósított HIL szimulátor 3.
A megvalósított HIL szimulátor
3.1.
A tesztkörnyezet felépítése
A tesztkörnyezet egy mikrokontrolleres vezérl®egységb®l egy Artix-7 Xilinx FPGAt tartalmazó fejleszt®i kitb®l, és egy hozzá tervezett viszonylag nagy számú és többféle kongurációt enged® interfészkártyából, továbbá egy laptopból áll. A laptophoz mind a vezérl® mind a az FPGA kártya USB/JTAG interfésszel csatlakozik USB kábelen, melyen egyrészt a szabályozó- másrészt a HIL paraméterezésére és monitorozására alkalmas HMIk (felhasználói interfészek) futnak. Mivel a vezérlést megvalósító kártya és az interfész kártya jelszintjei nem egyeztek meg, szükség volt egy egyszer¶ szintillesztés beiktatására. A teljes rendszer blokkvázlata a 3.1. ábrán látható.
3.1. ábra. HIL rendszer blokkvázlata
3.2.
A vezérl®egység
Ez a kit egy 32 bites lebeg®pontos számábrázolást biztosító MCU-t tartalmaz, melyen a töltési protokollt és a szabályozókat megvalósító kód került implementálásra. Ez az egység a Siemens Zrt. egy korábbi projektjének keretein belül készült el, melyet biztosítottak számomra a TDK munkámhoz.
TDK 2015
21
Szabó Péter
A megvalósított HIL szimulátor
3.3.
Az FPGA fejleszt®kártya[29]
A szimulátor megvalósításához egy a Xilinx cég által gyártott Nexsys 4 fejleszt®kártyát használtam. Ezen a kártyán található egy Artix-7 FPGA modul, mely több mint 15000 logikai cellát tartalmaz és akár 450 MHz-es maximális órajellel képes m¶ködni. A szimulátor tervezésekor a cél a 100 nsec-os lépésköz, vagyis a 10 MHz órajel elérése volt. Ez az FPGA kártya tökéletesen megfelelt a kit¶zött céloknak, valamint elegend® teljesítménnyel rendelkezik a modell további b®vítéséhez, fejlesztéséhez.
3.4.
Szintillesztés
A megvalósított rendszerben az FPGA alapú szimulátor és a vezérlést megvalósító vezérl® kártya nem közvetlenül kapcsolódik egymáshoz, ennek több oka is van. A vezérl®kártyánk, mint a valós akkumulátoros rendszer esetében is analóg jeleket vár a bemenetén. Ezeket a jeleket viszont el®tte el® kell állítanunk, hisz a szimulátor xpontos, digitális jelekkel dolgozik. Mivel az FPGA fejleszt®kártyánk nem tartalmaz analóg kimeneteket, ennek megoldására implementáltam az FPGA-ban a már korábban is említett szigma-delta modulátort (megvalósítása az 5.3.6. fejezetben látható). Ennek köszönhet®en egy jel el®állításához zikailag csak egy lábat használtunk fel, viszont ezzel a módszerrel az FPGA lábán egy bitstream-generálunk, amit megfelel® sz¶réssel analóg jellé tudunk alakítani.
3.2. ábra. Másodfokú alulátereszt® sz¶r® A 3.2. ábrán látható másodfokú alulátereszt® sz¶r® segítségével kisz¶rhetjük a Σ/∆ nagyfrekvenciás kvantálási zaját. Az így konstruált másodfokú sz¶r® törésponti frekvenciája f = 159.15 kHz. A vezérl®kártyán 10 kHz frekvenciájú A/D átalakítót használunk, így annak bemenetére egy megfelel®en sz¶rt analóg jel kerül.
TDK 2015
22
Szabó Péter
A megvalósított HIL szimulátor Az interfész kártyán lett az el®bb leírt alulátereszt® sz¶r® implementálva, így annak értékei adottak voltak. Mivel ez a kártya 5 V-os tápellátásról m¶ködik,így a Σ/∆ kimenetének értékei is 5 V-os értéktartományban mozognak, viszont a vezérl®kártyán található A/D átalakító referencia feszültsége 3 V, így a két kártya között szintillesztésre volt szükség. Ezt az illesztést egy egyszer¶ feszültségosztóval oldottam meg.
3.3. ábra. Szintilleszt® kapcsolás (5 V/3 V) A feszültségosztó kimenetére egy követ®er®sít® került, így nem terheljük meg az osztót az A/D átalakítóval, így az osztásarányt nem fogja módosítani a mikrokontroller bemenetének bels® ellenállása és kapacitása.
TDK 2015
23
Szabó Péter
A modellezett rendszer 4.
A modellezett rendszer
4.1.
A rendszer blokkvázlata
A HIL szimulátorban modellezett akkumulátor tölt®fokozatban megtalálható egy vezérelt feszültségcsökkent® DC/DC átalakító, egy akkumulátor pakk és a kett®t összeköt® f®köri elemek modellje. Ezek blokkvázlata látható a 4.1. ábrán.
4.1. ábra. Az akumulátor tölt® rendszer blokkvázlata A vezérl® kártya biztosítja az akkumulátorok töltéséhez szükséges feszültség és áram karakterisztikákat a feszültség átalakító kimenetén.
4.2.
Vezérelhet®, feszültségcsökkent® DC/DC átalakító
A tölt®fokozat szimulálásakor nem foglalkoztam a betáplálás oldal kérdéseivel, hiszen ez lehet a fogyasztói hálózat, egy szünetmentes ipari tápegység kimenete, vagy egy üzemi nagyfeszültség¶ DC busz. Igaz azonban, hogy bármelyik modelljének kimenete feszült-
4.2. ábra. DC/DC konverter kapcsolási rajza
TDK 2015
24
Szabó Péter
A modellezett rendszer séggenerátoros jelleg¶, így a modell elkészítésekor feltételeztem VDC = 600 V egyenfeszültséget. Ahhoz, hogy a töltés megvalósuljon, ebb®l az egyenfeszültségb®l kell egy az akkumulátorok számára megfelel® feszültségszintet el®állítanunk. Ennek a feszültségnek az el®állítását látja el a DC/DC átalakító, mely egy szinkron feszültségcsökkent® konverter (szinkron buck). Ennek az áramkörnek a kapcsolási rajza látható a 4.2. ábrán. A kapcsolás két vezérelhet® IGBT-t tartalmaz, ezeket megfelel® vezérlés hatására szinkronban, ellen fázisban üzemeltetünk. A vezérl®jelek (PWMH és PWML ) magas-aktív jelek, vagyis magas logikai jelszinteken vezetnek az IGBT-k. Megfelel® vezérl®jelek el®állításával szabályozni tudjuk az L fojtótekercs iL áramát, és ezáltal a C kimeneti kondenzátor tölt®áramát illetve Vcharger feszültségét. Mivel ezeket a kapcsolóelemeket szinkron üzemeltetjük, biztosítanunk kell, hogy azok egyidej¶leg ne legyenek bekapcsolt állapotban, hisz ekkor rövidzár alakul ki és az így keletkezett áramot csak a tranzisztorok bels® ellenállása korlátozza. Ennek az állapotnak az elkerüléséért a vezérl®egység a felel®s.
4.3. 4.3.1.
Akkumulátoros rendszer Kontaktoros f®köri fokozat
A tölt®fokozat f®köre tartalmazza azokat az elemeket, melyek összekötik a DC/DC konvertert az akkumulátor pakkal. Ennek az kapcsolását láthatjuk a 4.3 . ábrán.
4.3. ábra. Kontaktoros f®köri fokozat kapcsolási rajza A rendszermodellben ennek a fokozatnak a modelljében vettem gyelembe a rendszerben található kábelezést, valamint két DC kontaktort, melyek a pakk biztonságos be- és le kapcsolást végzik. Ezek a kontaktorok vezérelhet® eszközök, azok irányítását a vezérl®egység látja el. TDK 2015
25
Szabó Péter
A modellezett rendszer A két DC kontaktor közül konvencionálisan a negatív sínen található Dry kontaktor nem kapcsol teljesítményt, azaz bekapcsolási szekvenciában ez az els®. A pozitív sínen található kontaktor ellenben már terhelés alatt kapcsolja össze a DC/DC átalakítót az akkumulátor pakkal. A Dry kapcsolóelem a modell szempontjából elhanyagolható, bár a valóságos rendszerben megtalálható, modellünkben egy vezetékkel helyettesíthet®. A modellben gyelembe kell venni még a két részt (tölt®, akkumulátor) összeköt® vezetékeket is. Ezeket soros R − L helyettesít®képpel modelleztem Ezek alapján a kontaktoros f®kör modellezett kapcsolási rajza a 4.4. ábrán látható.
4.4. ábra. Kontaktoros f®köri fokozat modelljének kapcsolási rajza Mivel a kontaktor egy elektromechanikus elem, a modellezés során nem hanyagolhatjuk el annak be- és kikapcsolási késleltetését, valamint a kapcsoláskor fellép® ívhúzás jelenségét. Mivel bekapsolás el®tt nincs terhelés a DC buszon, így a bekapcsolási késleltetés, valamint ív kialakulása nem olyan lényeges, mint a kikapcsolási késleltetés és ívképz®dés. Ennek az ívnek a kialakulása több tényez®t®l is függ, mint az ívhossz, áram és kontaktok anyaga[27]. Ennek modellezése rendkívül bonyolult, a modell kialakítása er®sen függ az alkalmazott kontaktor típustól, hisz lehetséges olyan eset, tipikusan DC busz rövidzárlatkor, hogy az adott kapcsolóelem kialakítása miatt nem képes az ívkisülés kioltására[28]. Mivel TDK dolgozatomban nem a kontaktor validálása volt a f® feladat, annak ívfeszültségét (Varc ) konstans értékként vettem gyelembe. 4.3.2.
Akkumulátor pakk
Az akkumulátor cellákat tartalmazó pakk modell megalkotásához a 2.1. fejezetben tárgyalt helyettesít®képet használtam. Mint azt már korábban említettem, ez az elektromos helyettesít®kép tartalmaz lineáris és nemlineáris elemeket. A lineáris, vagyis a feszültségTDK 2015
26
Szabó Péter
A modellezett rendszer áram karakterisztikát meghatározó elemek modellezése a Simulink könyvtárban megtalálható standard elemekkel történt. A nemlineáris üresjárati feszültség modellezéséhez fel kellet használni a cellák adatlapjában megtalálható karakterisztikát (4.5. ábra). Ezt a karakterisztikát az FPGA-n való
4.5. ábra. Lítium-ion akkumulátor üresjárati feszültsége a töltöttség függvényében futtatáshoz diszkretizálni kell. Megfelel® felbontást kaptunk a karakterisztika 4096 pontra való felbontásával. Ezeket a diszkrét értékeket egydimenziós look-up-table-ben (LUT) tároltam. Ennek a tömbnek az indexelése DoD érték alapján történik, melyet az akkumulátor kisüt® (vagy éppen tölt®) áramának integrálásából kapjuk meg. Ezzel a módszerrel elkészült cella modellekb®l kell létrehozni a pakk modelljét, ennek két lehetséges módja van. Általános esetben egy ilyen akkumulátor pakk Nrow darab párhuzamosított cellából áll, melyek biztosítják a pakk megfelel® áramterhelhet®ségét. Ahhoz, hogy az akkumulátor pakknak a kimeneti feszültsége a követelményeknek megfelel® legyen, ezeket a párhuzamosított cellákat sorosítanunk kell, általános esetben Nseries darabbal számolva. A modell készítés egyik lehetséges megoldása, ha feltételezzük, hogy a párhuzamosított cellák kontaktusa ideális, mind azonos SoH és DoD állapotokkal rendelkeznek, valamint bels® ellenállásaik a gyártási szórás elhanyagolásával megegyeznek. Ekkor ezek összevonhatók egy cella modellbe, ha ellenállás paramétereiket 1/Nrow -val , kapacitás paramétereiTDK 2015
27
Szabó Péter
A modellezett rendszer ket Nrow -val beszorozzuk. Az így kapott párhuzamos cellákat Nseries -szer példányosítva és sorba kapcsolva alakul ki a pakk modell. Ezzel a módszerrel egy nagyon er®forrásigényes modellt kapunk, hisz egy nagyteljesítmény¶ rendszerben az akkumulátorok kapocsfeszültsége több száz volt, így egyszerre akár száz párhuzamosított cellát is le kell helyeznünk, melyek mind tartalmazzák a nemlineáris karakterisztika tábláját, mely nagy mennyiség¶ blokk RAM-ot igényel az FPGA-n. A másik módszer segítségével kisebb er®forrás igény¶ modellt készíthetünk. Ehhez az el®bbi módszer feltételezésein kívül feltételeznünk kell még, hogy minden cella kapacitása azonos és azonos árammal terheljük ®ket. Ebben az esetben nem vétünk nagy hibát, ha nem csak a párhuzamos, de a soros cella kapcsolatokat is összevonjuk egy Nseries szorzótényez®vé, mely reciprok kapcsolatban áll Nrow -val. Az elkészült szimulátorban én a második módszer szerint jártam el, mivel az els® er®forrásigénye túl magas és a szimuláció pontosságát nem segíti el®, a HIL szimulátor célja a vezérl® egység tesztelése, melyhez az akkumulátor pakknak csak a dinamikus rendszerszint¶ viselkedése a lényeges, nem a pakkon belül az egyes cellák viselkedése. A továbbiakban azonban fejlesztési irány lehet a pakk modelljének átalakítása és a cellák rendszeren bellüli viselkedésének vizsgálata.
4.4.
A rendszer jelei, m¶ködése és leíró egyenletei
A rendszer Simulink modelljének kialakításához a teljes rendszert leíró állapotteres leírására van szükség. Az ehhez szükséges jelek elnevezése és a referenciairányok 4.6. ábrán láthatók.
4.6. ábra. A rendszer jelei és referenciairányai TDK 2015
28
Szabó Péter
A modellezett rendszer A VDC értéke valós id®ben megadható paraméter, ez kerül a DC/DC átalakító bemenetére. Mivel az átalakító egy szinkron feszültségcsökkent® kapcsolás, annak IGBT-i felváltva vezetnek, így VL értékét hol 0 V-ra, hol VDC -re kapcsolja. Az így kialakult feszültség és VCharger feszültség különbségeként el®áll az L tekercsen es® feszültség, mely segítségével kiszámolható a tekercs iL árama, mely a rendszerünkben állapotváltozó. Az így kiszámolt iL áramból megkaphatjuk a C kondenzátor tölt®áramát, ezzel közvetetten annak VCharger feszültsége számolható. A feszültségcsökkent® kimenetén folyó áram középértéke állandósult állapotban meg fog egyezni iL középértékével. Ezt az iCharger áramot kapjuk meg a vezetékezés Lcabling és Rcabling -re felírt egyenletek alapján, ahol a tekercsre kerül® feszültség a tölt®feszültség (VCharger ) és a Vpack akkumulátorfeszültség és az ellenálláson es® feszültség összegének különbsége. A tekercsek és a kondenzátor modellezésekor gyelembe vettem azok veszteségeit soros DCR és ESR ellenállásokkal. Típus
Jelölés
Megjegyzés
Állapotváltozó
iL , VCharger , iCharger
Állapotegyenletek eredményei
Segédváltozó
VDC , VL , iC , Vswitch , Vpack , VDCR , VESR
Állapotegyenletek bemenetei
Kimenetek
iL , VCharger
Σ/∆ kimenetek, vezérl®kártyába
Monitorozás
iL , VCharger , iCharger , Vpack , P W ML
Vswitche , P W MH ,
Meggyelés a HIL HMI-ben
4.1. táblázat. A rendszer jelei Ezek alapján felírhatjuk az állapot egyenleteket.
VL (t) − (VCharger (t) + iL (t)DCR) = L iL (t) − iCharger (t) = C
diL (t) dt
dVC (t) dt
VCharger (t) − (Vpack (t) + iCharger (t)Rcabling ) = Lcabling
TDK 2015
29
(4.1) (4.2)
diCharger (t) dt
(4.3)
Szabó Péter
A modellezett rendszer Ezeket az egyenleteket az FPGA-n belül periodikusan értékeljük ki numerikus integrálást használva, át kell alakítani ®ket az integrális alakjukra. Így a rendszer állapotegyenletei a következ®ek,
Z 1 t iL (t) = VL (t) − (VCharger (t) + iL (t)DCR) dt L 0 Z 1 t (iL (t) − iCharger (t)) dt + (iL (t) − iCharger (t)) ESR VCharger (t) = C 0 Z t 1 iCharger (t) = VCharger (t) − (Vpack (t) + iCharger (t)Rcabling ) dt Lcabling 0
(4.4) (4.5) (4.6)
Továbbá szükségünk van még az IGBT hídág kimenetén megjelen® VL és a kontaktor kimenetén lév® Vswitch egyenleteire, melyek
VL =
Vswitch =
TDK 2015
VDC , P W MH = 1 VDC , P W ML = 0 e´s iL > 0 0 , egy´ ebk´ ent
VCharger
(4.7)
,K = 1
Vpack , K = 0 e´s iCharger < ithreshold VCharger − Varc , k = 0 e´s iCharger > ithreshold
30
(4.8)
Szabó Péter
A Simulink modell 5.
A Simulink modell
5.1.
Számábrázolás
Miel®tt végigmennénk a rendszer Simulink-ben létrehozott modelljén, meg kell ismernünk az ott használt számábrázolást, annak metódusát. Az FPGA-n belül a lehet® leggyorsabb m¶ködési sebesség elérése érdekében xpontos számábrázolást használunk, mely segítségével az egyes menyiségek összeszorzása kevesebb id®be telik, mint lebeg®pontos esetben. Bár veszítünk a lebeg®pontos számábrázolás pontosságából, de megfelel® bitszám választása esetén ez a hiba minimalizálható. Az ábrázolandó mennyiségeket három f® csoportba oszthatjuk, ezek közül a legels® a változók kezelése. Ebbe a csoportba tartozik minden áram és feszültség mennyiség. A második csoport az állapotegyenletek szorzótényez®i, valamint a harmadik csoport a jelek összegzésére használt összeadók számábrázolása. Az oine modellb®l történ® xpontosítást a MATLAB Fixed-Point Designer eszköz segítségével oldottam meg. A program által használt xpontos számábrázolás alakja (5.1)
f ixdt(i, i + n + m, m)
ahol i az el®jel bit, n az egész bitek és m a tört bitek száma. Ahhoz, hogy egy mennyiségr®l el tudjuk dönteni, hogy hány biten lehet ábrázolni ismernünk kell annak maximális és minimális értékét, valamint az általunk elvárt felbontást. Az els® csoportba tartozó változók xpontosítása a következ®képpen lehetséges,
i=
1 , umin < 0
(5.2)
0 , egy´ ebk´ ent
n=
dlog2 (max (|umax |, |umin |))e , |umax | ≥ 1 e´s |umin | ≥ 1
(5.3)
blog2 (max (|umax |, |umin |))c , egy´ ebk´ ent
TDK 2015
31
Szabó Péter
A Simulink modell
m=
d− log2 (q)e , q < 1
(5.4)
b− log2 (q)c , egy´ ebk´ ent ahol umin a jel minimum, umax a jel maximum értéke, q pedig az elvárt felontás. Az egész részek megállapításához minden esetben a jel legnagyobb abszolút értékének kell venni a kettes alapú logaritmusát, hisz az a szám lesz a bitek száma, amin ez az érték még ábrázolható. Amennyiben a legnagyobb abszolútérték egynél nagyobb, mindenképpen a logaritmus fels® egész részét kell vennünk, ezzel biztosítva, hogy a jel teljes tartománya beleférjen a xpontos alakba. A törtrészek esetében hasonlóan jártam el, de mivel általános esetben a felbontás egy egynél kisebb szám, annak logaritmusa negatív lenne, ezért az egész értéket −1-gyel meg kell szoroznunk. A második csoportba tartózó mennyiségek az állapotegyenletekben lév® szorzótényez®k értékei. Ezeknek a xpontosításához gyelembe kell venni az FPGA-ban található szorzó áramkörök kialakítását. Az általunk használt Artix-7 18x25 bites szorzókat használ, egy maximum 25 bites számot tud egy 18 bites szorzótényez®vel gyorsan összeszorozni. Ahhoz, hogy ezt ki tudjuk használni, a szorzótényez® alakjában az összes bitek számát xáltuk, vagyis i + n + m = 18. Mivel ezek a szorzatok esetünkben f®leg integrál együtthatók, ezek értéke a lépésköz miatt kicsi (Euler módszer, lásd 2.2. fejezet), ezért nem tudjuk a korábban bemutatott xpontosítást használni. Az integrálás során, ha nem választjuk megfelel® félbontásúra a szorzó ábrázolását, a vétett hiba akkumulálódik, ezzel elrontva az eredményt. Hogy ezt elkerüljük, az integrálás elvégzéséhez ki kell b®vítenünk a számábrázolás tartományát, majd az integrálás elvégzése után vissza alakíthatjuk az eredményt az eredeti formájára. Ezek alapján három részre kell felbontani a xpontosítást, meg kell adnunk a szorzótényez® alakját, hogy azt pontosan ábrázoljuk, a végs® szorzat alakját, hogy a hiba ne akkumulálódjon, és az integráláskor használt összegz® alakját.
TDK 2015
32
Szabó Péter
A Simulink modell Ezek közül nézzük el®ször a szorzótényez® felírását,
f=
dlog2 (u)e , u > 1
(5.5)
blog2 (u)c , egy´ ebk´ ent m=n−f −i
(5.6)
ahol f segédváltozó, az LSB logaritmusának kiszámításához, n az egészek, m a tört bitek,
i pedig az el®jel bitek száma. Mivel a szorzótényez® egy konstans szám, így annak nincs külön maximum és minimum értéke, a szükséges bitek számát megkapjuk a konstans (u) kettes alapú logaritmusaként. Mivel ez rendszerint kis érték, sok tört bitre lenne szükség, a törtbitek száma túllépné az összes bit értékét, így az ábrázolt biteket eltoljuk, tehát az egész bitek száma negatív lesz. Ebben a számábrázolásban az összes bitet és az el®jel bitet nekünk kell el®re megadnunk. A második lépés a szorzat végeredményének, a szorzat alakjának a meghatározása. Ehhez el®ször tudnunk kell a szorzat bemenetének xpontos alakját, melyet a legels® módszer alapján mint változó kiszámíthatunk. Ebb®l a reprezentációból el®áll az összes bit, illetve az el®jel bitek száma. Itt törekednünk kell, hogy mivel a szorzó maximum 25 bitet tud fogadni, a változó értéke ne lépje túl azt. Miután a bemenet segítségével el®állt az összes bit száma, már csak a tört biteket kell meghatároznunk, ez hasonlóan történik, mint a szorzótényez® bitjeinek meghatározásakor, de mivel itt pozitív számot kell kapjunk, a feltételeket megfordítjuk, vagyis,
fszorzat =
−blog2 (u)c , u > 1
(5.7)
−dlog2 (u)e , egy´ ebk´ ent mszorzat = mbemenet + fszorzat
(5.8)
Ahhoz, hogy az integrátorban a hiba ne akkumulálódjon, a visszacsatolás összeadójának bitszámát is meg kell választanunk. Ehhez tudnunk kell az integrátor kimenetének alakját, amit szintén változóként az els® módszer alapján számolhatunk. Ennek el®állítása TDK 2015
33
Szabó Péter
A Simulink modell után megkaphatjuk az összegz® felbontását, mégpedig
io¨sszead´o =
1 , iszorzat + ikimenet > 1
(5.9)
0 , egy´ ebk´ ent no¨sszead´o = mo¨sszead´o + nkimenet
(5.10)
mo¨sszead´o = mszorzat
(5.11)
vagyis az összegz® tört bitjeit a szorzat alakja, míg egész bitjeit a tört bitek és a kimenet határozza meg. A harmadik f® mennyiség, a modellben használt összeadók méretezése, ez hasonlóan zajlik az integrátor összegz®jéhez. Itt minden esetben a bemen® jelek maximális bitszámával kell számolni, vagyis
i1+2 =
1 , i1 + i2 > 1
(5.12)
0 , egy´ ebk´ ent n1+2 = max (n1 , n2 )
(5.13)
m1+2 = max (m1 , m2 )
(5.14)
ahol i1 , n1 , m1 az egyik, míg i2 , n2 , m2 a másik bemenet ismert értékei.
5.2.
A modell legfels® szint¶ leírása
Az 5.1. ábrán látható a Simulink modell fels® szintje. Ez alapján a modell hat f®bb részre osztható, melyek közül a legels® elem az Input sync modul. Itt történik meg a rendszer vezérl® jeleinek és bemeneteinek a beléptetése. A modell az FPGA-n belül szinkron megvalósítást követ, viszont a külvilágból a jelek aszinkron érkezhetnek, ezért azokat csak szinkron engedélyezhetjük a modellen belül. Miután el®álltak a rendszer m¶ködéséhez szükséges jelek, következik a szinkron DC/DC konverter modellje, a Szinkron buck konverter modell. Ez tartalmazza az IGBT hídágat, TDK 2015
34
Szabó Péter
A Simulink modell valamint a fojtótekercset és kimeneti DC kondenzátort. A modell kimenetét képezi az
iL áram és VCharger feszültség, melyet a kalibrált Σ/∆ modulátor modellen keresztül az FPGA két lábára küldünk. A konverter által el®állított VCharger feszültség jut a Kontaktor modellbe, mely tartalmaz elektromos és mechanikus modellezést is. Itt állítjuk el® a kontaktor kimenetére kerül® Vswitch feszültséget. Mindezek után következik az akkumulátor pakk modell. Mivel a modell elkészítésekor pozitív áramnak a pakk kisüt® áramát vettem, így a modellbe bekerült egy −1-es szorzó a megfelel® áramirány el®állításához. Az ábra alsó részén található még a Σ/∆ modulátorok modellje is. Ezek egy kalibrációs logikát is tartalmaznak a vezérl® egység AD átalakítóinak teszteléséhez és kongurációjához.
TDK 2015
35
Szabó Péter
A Simulink modell
TDK 2015 36 5.1. ábra. Simulink modell legfels® szintje Szabó Péter
A Simulink modell
5.3.
A Simulink modell részeinek leírása
A következ®kben írom le a rendszer el®z® fejezetében ismertetett részeinek pontos megvalósítását, majd a korábban ismertettet állapotegyenletek Simulink-be ültetését. 5.3.1.
A bemenetek szinkronizálása
Mint azt korábban is írtam az FPGA szinkron ütemezéssel dogozik. Ezt valósítja meg az 5.2. ábrán látható modell részlet. Ez a legels® blokk, ami a jelek szempontjából az FPGA határán van, tehát minden bemenete az FPGA-n kívülr®l érkezik.
5.2. ábra. Bemenetek beléptetése A modell ezen részének két feladata van, a bemeneti jelek órajelre történ® frissítése és a jelek xpontossá alakítása. Az els® funkciót látják el az egy lépésközt késleltet® blokkok. Ezek kimeneteit minden órajelre, tehát egy lépésköz elteltével frissítik, így megakadályozva az aszinkron viselkedést. 5.3.2.
Szinkron DC/DC feszültség átalakító Simulink modellje
A rendszer következ® részegysége a feszültségcsökkent® DC/DC átalakító, mely el®állítja az iL és VCharger állapotváltozókat, valamint a kiszámításukhoz szükséges VL segédváltozót. A konverter modellje az 5.3. ábrán látható. Ez a modell írja le a kapcsolás elektromos viselkedését, és a kapcsolóelemek késleltetését (sárga blokkok). Az IGBT leg nev¶ egység állítja el® az állapotváltozók számításához
TDK 2015
37
Szabó Péter
A Simulink modell
5.3. ábra. DC/DC átalakító Simulink modellje szükséges VL feszültséget. Ahhoz, hogy megértsük a m¶ködését írjuk fel újra VL egyenletét.
VL =
VDC , P W MH = 1 VDC , P W ML = 0 e´s iL > 0 0 , egy´ ebk´ ent
(5.15)
Ez alapján a Simulink modell a következ®képpen néz ki,
5.4. ábra. IGBT hídág a VL segédváltozó kiszámításához Az IGBT lábra kerül® P W MH és P W ML jelek már az IGBT-k be- és kikapcsolási idejével késleltetett jelek. Ezeket a késleltetéseket Simulink-en belül Stateow[30] segítségével oldottam meg. Ebben kívülr®l megadható paraméterként kerül be a késleltetés mértéke, mégpedig a lépésköz multiplikátoraként. A Stateow használatával egy háromállapotú állapotgép segítségével oldottam meg a be- és kikapcsolási késleltetések egyidej¶ megoldását. A Stateow az 5.5. ábrán látható. Az állapotgép éldetektálás segítségével lép át bekapcsolási és kikapcsolási állapotokba. TDK 2015
38
Szabó Péter
A Simulink modell
5.5. ábra. IGBT késleltetések állapotgépe Amennyiben a kontroll jelen pozitív él érkezik, átlépünk bekapcsolási késleltetésbe, míg lefutó él esetén kikapcsolási késleltetésbe. Mindkét esetben egy számláló értékét növeljük lépésenként mindaddig, míg el nem érjük a késleltetés mértékét, ekkor kimenetet megfelel®értékre billentjük, majd várunk a következ® vezérlésre. A DC/DC átalakító további részei tartalmazzák az iL és VCharger állapotváltozók kiszámítását. A tekercs modellezéséhez el®állított VL és a kondenzátor modell kimenetér®l visszacsatolt feszültség különbségeként el®álló feszültség segítségével számoljuk iL -t az 5.16. egyenlet alapján.
1 iL (t) = L
Z
t
VL (t) − (VCharger (t) + iL (t)DCR) dt
(5.16)
0
Így iL számítása látható az 5.6. ábrán. Látható az ábrán a megvalósított el®relép® Euler módszert használó numerikus integrátor.
5.6. ábra. Az iL állapotváltozó számítása TDK 2015
39
Szabó Péter
A Simulink modell A VCharger állapotváltozót a kondenzátor modellben számoljuk. Ennek bemenetén állítjuk el® a kondenzátor tölt® áramát, vagyis iC = iL − iCharger . Ez alapján VCharger egyenlete,
1 VCharer (t) = C
Z
t
(iL (t) − iCharger (t)) dt + (iL (t) − iCharger (t)) ESR
(5.17)
0
Az állapotegyenlet alapján VCharger kiszámítása a következ®képpen néz ki,
5.7. ábra. A VCharger állapotváltozó számítása
5.3.3.
A DC kontaktor Simulink modellje
A kontaktor modellje látható az 5.8. ábrán. A kontaktor modelljében valósult meg
5.8. ábra. A DC kontaktor Simulink modellje annak elektromos és mechanikus viselkedése. Mivel ez az elem az IGBT-khez hasonlóan kapcsolóelem, így késleltetése van. Bár a késéltetés oka különbözik a két esetben, hisz az IGBT-k félvezet® elemek, azok késleltetése a töltéskihúzásból származik, míg a kontaktor elektromechanikus egység, és késleltetése a mechanikából származik, mindkét esetben a TDK 2015
40
Szabó Péter
A Simulink modell késleltetések modellezése hasonlóan történhet. Épp ezért az IGBT-k és a kontaktorok be- és kikapcsolási késleltetését egyforma Stateow állapotgépekkel oldottam meg, ami az 5.5. ábrán látható. Az elektromos viselkedést leíró modell tartalmazza a Vswitch segédváltozó leírását. A segédváltozó egyenlete a következ®,
Vswitch =
VCharger
,K = 1
Vpack , K = 0 e´s iCharger < ithreshold VCharger − Varc , k = 0 e´s iCharger > ithreshold
(5.18)
Ezek alapján a Simulink modell az 5.9. ábrán látható.
5.9. ábra. A Vswitch segédváltozó számítása Mint azt már a 4.3.1. fejezetben leírtam, a DC kontaktor induktív körben történ® kikapcsolásakor fellép® ívet egy konstans Varc feszültségként vettem gyelembe, melyet a tölt®áram (iCharger ) értékét®l függ®en kapcsolunk. Abban az esetben, amikor kikapcsolás történik, vagyis Control értéke 0-ra vált, és iCharger értéke nagyobb mint egy általunk adott küszöb áram (ith ), akkor a kontaktoron még folyik áram az ívben, így a kontaktor kimenetén lév® feszültséget csökkentjük az ívfeszültséggel (Varc ).
TDK 2015
41
Szabó Péter
A Simulink modell 5.3.4.
A cabling Simulink modellje
A f®kör modelljének másik elemét, a kábelezést reprezentáló R − L helyettesít®képet tartalmazza a Simulink modell Cabling blokkja. Ez a blokk állítja el® az iCharger állapotváltozót, mely az akkumulátor pakk tölt®árama. Az állapotegyenlete a következ®:
iCharger (t) =
1 Lcabling
Z
t
(5.19)
VCharger (t) − (Vpack (t) + iCharger (t)Rcabling ) dt 0
Az egyenlet alapján megvalósított modell látható az 5.10. ábrán.
5.10. ábra. A f®köri vezetékezés R − L helyettesít®képének modellje
5.3.5.
Az akkumulátor pakk Simulink modellje
A 2.1. fejezetben leírt és kiválasztott helyettesít®kép megvalósítása látható az 5.11. ábrán. A pakk modellezését a 4.3.2. fejezetben leírtak alapján egy akkumulátor cella modell felskálázásával (Nseries és Nrow ) értem el. A modell mint a helyettesít®kép két részre osztható, az 5.11. ábra fels® része valósítja meg az üresjárati Voc feszültség nemlineáris karakterisztikájának futásidej¶ leírását (helyettesít®kép bal oldala, 2.1. ábra), valamint a feszültség-áram karakterisztikát (az 5.11. ábra alsó rész). A Voc karakterisztikát a gyártói adatlapból olvastam be, mely a kisütés (DoD) függvényében volt ábrázolva, így a modell elkészítésekor én is ezt alkalmaztam. A karakterisztikát egy egydimenziós LUT-ban tároltam, melyben a karakterisztika 4096 pontra van bontva és azt DoD indexeli. Ahhoz, hogy DoD értékét meghatározhassuk, a kisüt®áramot kell intagrálnunk a 2.3. egyenlet alapján. TDK 2015
42
Szabó Péter
A Simulink modell
5.11. ábra. A kombinált akkumulátor cella helyettesít®kép modellje Ezzel a módszerrel bizonyos felhasználási területeken nem tudunk megfelel®en pontos DoD számítást végezni, ehhez léteznek Kalman-sz¶r®t alkalmazó, modell alapú eljárások, viszont esetünkben a pakkszint¶ dinamikus vizsgálathoz megfelel® módon tudjuk számolni DoD értékét. A modellben képesek vagyunk kívülr®l megadni annak kezd® értékét, de mivel szemléletesebb értékeket kapunk, ha a megmaradt felhasználható töltést nézzük, ezért ezt SoCben adhatjuk meg (SoCinit ), illetve az aktuális töltöttségi szintet is SoC értékben vezetjük ki. Az integrálással el®állított DoD-t skáláznunk kell, hogy az a LUT teljes tartományát címezni tudja, majd a LUT kimenetét egy Nseries szorzóval szorozzuk, hogy megkaphassuk a pakkszint¶ üresjárati feszültséget. A modellnek ez a része tartalmaz még egy error logikát, amivel jelezni tudjuk, ha töltés, illetve kisütés közben túlléptük Voc helyesen címezhet® tartományát. Mivel Voc -t görbeillesztés segítségével kaptam, az helyes értékeket csak DoD 0 − 1 tartományon mutat, így detektálnunk kell az esetleges félreindexelést.
TDK 2015
43
Szabó Péter
A Simulink modell A modell másik része tartalmazza a feszültség-áram karakterisztikákat, itt került implementálásra a helyettesít®kép bels® ellenállása és két R − C tagja. 5.3.6.
A
Σ/∆
modulátor Simulink modellje
Mint már korábban is írtam a vezérl®egység számára biztosított, visszacsatolásként szolgáló jeleket Σ/∆ modulátoron és sz¶r®n keresztül állítjuk el®. Ennek a Σ/∆ modulátornak a Simulink modellje látható az 5.12. ábrán.
5.12. ábra. A Σ/∆ modulátor Simulink modellje A modulátor m¶ködéséhez paraméterként el®re meg kell adnunk a jel összes bitszámát (N ), illetve a jel maximális értékét (Xmax ). Ez alapján a két érték alapján a Σ/∆ bemenetén skálázzuk a bejöv® jelet, mivel a x pontos reprezentáció miatt a legnagyobb ábrázolható szám rendszerint nem egyezik meg a zikai jel maximálisan felvehet® értékével. Ezzel a skálázással elérhetjük, hogy a bemenetre kerül® Xmax legyen a modulátor full-scale (FS) érték, és a modulátor kimenetén ekkor jelenjen meg a legnagyobb érték. A skálázott jelet rávezetjük egy integrátorra, majd az integrátor kimenetét bit-maszkoljuk az MSB bitre, és ennek függvényében a bemenetb®l nullát, vagy a legnagyobb ábrázolható számot vonjuk le. A maszkolás eredményét nullára komparáljuk, ennek az eredménye kerül a kimenetre.
5.4.
A felhasználói felület (HMI)
A megvalósított HIL szimulátor bels® jeleit vizsgálni, egyes paramétereit valós id®ben állítani szeretnénk. Ehhez szükségünk van egy felhasználói felületre (HMI). Ennek megvalósításához az FPGA-ban egy kommunikációs egység implementálására lenne szükség, aminek HDL szint¶ leírása bonyolult. TDK 2015
44
Szabó Péter
A Simulink modell Ahhoz, hogy ne kelljen ezt a kommunikációs hardvert az FPGA-ra szintetizálni, ezért a kommunikáció és HMI megvalósításához a Xilinx cég ChipScope-Pro[32] alkalmazását használtam, mely az ISE Design Studio-ban megtalálható. A szimulátor futtatásakor jeleinek monitorozására a ChipScope-Pro felhasználói felületét használtam. Ahhoz, hogy a modell a számítógépen futó ChipScope HMI-vel kommunikálni tudjon, ChipScope magokat kell szintetizálnunk az FPGA-ra, melyet HDL szinten végezhetünk el. Ezek a magok és azok a modellhez való viszonya látszik az 5.13. ábrán.
5.13. ábra. Chipscope-pro magok és a modell viszonya A megfelel® m¶ködéshez négy különböz® mag szintetizálására van szükség, melyb®l három felel®s a HMI-vel való kapcsolat létrehozására, egy pedig a megfelel® órajelet állítja el®. A szimuláció futtatására el®re meghatároztuk a 100 nsec-os lépésközt, vagyis 10 MHz órajel frekvenciát. Ahhoz, hogy ezt elérjük, le kell osztanunk az FPGA globális órajelét, ami esetünkben 100 MHz. Ezt a funkciót látja el a
modul_HIL_DCM
mag
(Digital-Clocking-Manager). Az ezzel a maggal el®állított órajelet használjuk fel mind a modellünkben, mind a ChipScope magokban. Az FPGA fejleszt®kártyán lehet®ségünk van USB kábel csatlakoztatására, így a kommunikációt a számítógép és a szimulátor között USB/JTAG segítségével célszer¶ megvalósítani. Ahhoz, hogy ez a kommunikációs csatorna létrejöjjön, implementálnunk kell egy ICON (Integrated-Controller) magot (modul_HIL_ICON ). Ez az egység teremt kapcsolatot az FPGA-ra szintetizált többi maggal 36 bites CONTROL vonalak segítségével. TDK 2015
45
Szabó Péter
A Simulink modell Minden egyes ChipScole maghoz szükségünk van egy ilyen kétirányú kommunikációt lebonyolító CONTROL vonal létrehozására. A modell ki- és bemeneteit nem feltétlenül kell zikai ki- és bemenetekre vezetnünk, használhatunk virtuális ki- és bemeneti portokat (VIO, Virtual-Input-Output), melyek a ChipScope-pal teremtenek egyirányú kapcsolatot ICON-on keresztül. Ezeken a virtuális portokon keresztül tudjuk a modell egyes paramétereit valós id®ben állítani. Egy ilyen modullal egyszerre egy jel értéke állíható, mely tetsz®leges bitszámú lehet. A modellben két paraméter folyamatos állítására van lehet®ség, melyek a DC/DC átalakító bemenetére kerül® VDC feszültség és az akkumulátor pakk kezdeti töltöttségi szintje (SoCinit ). Mindkét jelhez implementálni kellet egy
modul_HIL_VIO magot.
Az utolsó ChipScope mag segítségével végezhet® el a modellünk bels® jeleinek monitorozása. Ehhez két dologra van szükség. Egyrészt a Simulink modellben a vizsgálandó jeleket egy-egy port segítségével ki kell vezetnünk (5.1. ábra), illetve implementálnunk kell egy ILA (Integrated-Logic-Analyzer) magot (modul_HIL_ILA). Ennek a magnak a segítségével több jelet tudunk egyszerre vizsgálni, a ChipScope-Pro alkalmazáson belül integrált szkóp segítségével az általunk kiválasztott jelek az id®tartományban vizsgálhatók. AZ ILA mag generálásakor meg kell adnunk, hogy egyszerre hány mintavételt tároljon el, ezzel meghatározzuk az ábrázolható maximális id®intervallumot.
5.5.
A mérési eredmények
Az elkészített HIL szimulátor validációjához a Siemens Zrt. által biztosított vezérl® segítségével méréseket végeztem. Ezeknek a méréseknek az alkalmával elvégeztem a modellezett akkumulátor pakk teljes töltési ciklusának modellezését. A vezérl®egységben agy konstans áramú (CC), konstans feszültség¶ (CV) töltést megvalósító állapotgép és szabályozó fut. A teljes töltési metódus négy részre bontható. Els® lépésként el® kell töltenünk a DC/DC konverter kimeneti kondenzátorát, ez az el®t®lt® szakasz. Ez után a kontaktorok rákapcsolásával megkezdhetjük a tényleges CC-CV töltést. A töltés el® felében konstans áramszabályozást valósítunk meg, az akkumlátorokat konstans árammal töltjük, a feszültség az akkumulátor pakkfeszültségéhez hasonló mó-
TDK 2015
46
Szabó Péter
A Simulink modell
5.14. ábra. CC-CV töltés jelleggörbéi don emelkedik. Ebben a töltési állapotban maradunk mindaddig, míg el nem érjük az akkumulátorok adatlapjában megadott maximális tölt®feszültséget. Ekkor átlépünk konstans feszültség¶ töltésre. Ebben az állapotban a feszültséget végig a maximális tölt®feszültségen tartjuk, míg az áram folyamatosan csökken. Ezt a töltési eljárást folytatjuk mindaddig, míg el nem érünk egy minimális, maradó áramot. Miután lecsökkent az áram nulla körüli értékre, lekapcsoljuk a kontaktorokat és szabályzott módon kisütjük a tölt® fokozat kimeneti kondenzátorát, ezzel befejezzük a töltést. A teljes töltési ciklus elvégzése el®tt teszteltem a kontaktorok m¶ködését és a mechanikai késleltetés mértékének helyes beállítását. Ehhez az FPGA fejleszt®kártya két lábára kivezettem a kontaktor késleltetés el®tti és az utáni vezérl®jelét.
(a) Bekapcsolási késleltetés
(b) Kikapcsolási késleltetés
5.15. ábra. A kontaktor mechanikai késleltetései Az 5.15. ábrán látható sárga jel a késleltetés el®tti, míg a kék jel a késleltetés utáni vezérl®jel. Az 5.15a ábra kurzorai által mért késleltetés megegyezik az el®re beállított 15 TDK 2015
47
Szabó Péter
A Simulink modell msec késleltetéssel, illetve az 5.15b. ábrán mért 20 msec késleltetés is megegyezik az el®re beállított értékkel, tehát a Stateow alapú késleltetés jól m¶ködik. Miután meggy®z®dtem a kontaktor modell helyes m¶ködésér®l elvégeztem a teljes töltési ciklusra a tesztelést. Hogy a töltés jelleggörbéi, az állapotok közötti váltás egy oszcilloszkóp ábrán is látható legyen, a mérést elvégeztem egy 95 %-ra feltöltött akkumulátor pakk modellre is, ez látható 5.16a. ábrán.
(a) A töltés teljes ciklusa
(b) El®töltés és CC töltés
5.16. ábra. A töltési ciklus Az el®töltéshez 5 A-es áramreferenciát kapott a szabályzó, majd konstans áramtöltéskor a megengedhet® legnagyobb árammal, 25 A-ral végeztük a töltést. Az oszcilloszkóp ábrákon a Σ/∆ sz¶rt kimeneti jele látható a szintillesztés után, tehát az értékek feszültség jelek a 0 − +3 V tartományban. Az ábrákon a sárga jel felel meg a DC/DC konverter kimeneti VCharger feszültségnek, míg a kék jel a konverter iL fojtótekercs áramának. Az 5.16b. ábrán látható, hogy a feszültséget el®töltéskor túllövés nélkül felszabályozzuk kis áramérték mellet, majd a kontaktor rákapcsolása után iL áramot gyorsan a maximális értékére szabályozzuk és értékét ott tartjuk, míg a tölt® feszültség (VCharger ) el nem éri a maximális értékét. A szabályzott áram jó közelítéssel konstansnak tekinthet®. A megfelel® töltés ellen®rzésére vizsgáltam az akkumulátorok töltöttségét (SoC) az id® függvényében. Mivel ebben az állapotban konstans árammal töltünk, SoC lineárisan változik, így megtehetjük, hogy SoC bizonyos mérték¶ változásához szükséges id®t lemérjük, majd azt viszonyítjuk az elméletben szükséges id®höz. Ebben a mérésben az SoC 10 %-ról 20 %-ra TDK 2015
48
Szabó Péter
A Simulink modell történ® változását vizsgáltam. Ehhez a következ® képletet írhatjuk fel:
td =
93600 Qn [As] = = 3744 Id [A] 25
sec
(5.20)
Ezt az értéket célszer¶ percre átszámítani, ami td = 62, 4 min, ami megfelel az akkumulátorpakk 0 %-ról 100 %-ra történ® feltöltésének. Ennek egy tizede fog megfelelni a
∆SoC = 10 % eltéréshez szükséges id®höz, ami td,10% = 6, 24 min. A mért id® ehhez képest td,m´ert = 6, 28 min, ami kis mértékben tér el az elméleti értékt®l, ez a pontatlanság adódhat az SoC értékek pontatlan leolvasásából, illetve az id®mérés indításának és leállításának pontatlanságából. Ez alapján a mérés alapján látszik, hogy a töltés jól m¶ködik.
(a) A CV töltés
(b) A töltés vége, a tölt® feszültség leszabályozása
5.17. ábra. CV töltés és a töltési ciklus vége Miután VCharger feszültséggel elértük annak maximális értékét, a vezérl® egység állapotgépe átlép CV töltésbe (5.17a. ábra), ekkor a tölt® feszültséget ezen a maximális értéken tartja, míg az áram folyamatos csökken egészen egy kis maradék áram értékéig. Ennél az áramnál már nem végzünk érdemi töltést, úgy tekinthetjük, hogy a töltési ciklus befejez®dött. Ekkor lekapcsoljuk a kontaktort, majd megint csak 5 A-es áramkorláttal leszabályozzuk a kimeneti kondenzátor feszültségét, ez látható az 5.17b. ábrán. Ezzel be is fejez®dött a töltési ciklus, a HIL szimulátor és a vezérl® egység helyesen m¶ködik.
TDK 2015
49
Szabó Péter
Értékelés
6.
Értékelés
A TDK munkám alatt sikerült elkészíteni a megtervezett HIL szimulátort, azon validációs méréseket tudtam végezni. A szimulátor megfelel®en, az el®re kit¶zött célok szerint m¶ködött. A TDK munka alatt sikerült elsajátítanom HIL szimulátor tervezési módszereket, melyek segítségével a kés®bbiekben további irányokban tudok fejleszteni, kutatásokat végezni. Ilyen fejlesztési irány lehet egy akkumulátor felügyeleti rendszer (BMS) tesztelése HIL szimulátor segítségével, valamint az akkumulátorok termikus modelljének integrációja a létez® modellbe. Ezekhez szükségesek a cellák identikációjának elvégzése, melyek eredményeinek felhasználása a termikus modellben az ipari BMS és töltéskiegyenlít® rendszerek fejlesztésében, tesztelésében kiemelt fontosságúak. Ez a HIL szimulátor lehet®séget nyújt a kés®bbiekben nagyobb teljesítmény¶ és ezzel veszélyesebb akkumulátoros teljesítmény fokozatok biztonságos tesztelésére. A bemutatott valós idej¶ HIL tesztelési eljárás és maga a szimulátor tervezése számos további lehet®séget tartogat mind kutatási mind fejlesztési irányokat tekintve, melyeket feltétlenül tovább szeretnék folytatni.
TDK 2015
50
Szabó Péter
Irodalomjegyzék [1] Debreceni Tibor: "Mini naper®m¶ FPGA alapú valós idej¶ Hardware-In-the-Loop szimulátorának tervezése", TDK dolgozat, 2013. [2] Tamás Kökényesi, István Varjasi Dr.: "FPGA-Based Real-Time Simulation of Renewable Energy Source Power Converters", Journal of Energy and Power Engineering, ISSN 1934-8975, USA, Jan. 2010, Volume 4, No.1 (Serial No.26). [3] Bin Lu, Member, IEEE, Xin Wu, Member, IEEE, Hernan Figueroa, Student Member, IEEE, and Antonello Monti, Senior Member, IEEE: "A Low-Cost Real-Time Hardware-in- the-Loop Testing Approach of Power Electronics Controls", IEEE Transactions on Industrial Electronics, Vol. 54, No. 2, April 2007. [4] Tarek Ould Bachir, Jean-Pierre David, Christian Dufour, Jean B'elanger: "Eective FPGA-based Electric Motor Modeling with Floating-Point Cores" 978-1-4244-5226c 2010 IEEE. 2/10/$26.00 [5] Handy Fortin Blanchette, Member, IEEE, Tarek Ould-Bachir, Member, IEEE, and Jean Pierre David, Member, IEEE: "A State-Space Modeling Approach for the FPGA-Based Real-Time Simulation of High Switching Frequency Power Converters", IEEE Transactions on Industrial Electronics, Vol. 59, No. 12, December 2012. [6] J. C. G. Pimentel, H. Le-Huy: "Hardware emulation for real-time power system simulation", in Proceedings of the IEEE International Symposium on Industrial Electronics (ISIE2006), vol. 2, Jul. 913, 2006, pp. 15601565. [7] Z. Süt®, T. Debreceni, T. Kökényesi, A. Futó, I. Varjasi: "Matlab Simulink Generated FPGA Based Real-time HIL Simulator and DSP Controller: A Case Study ", International Conference on Renewable Energies and Power Quality (ICREPQ'14), ISSN 2172-038 X,No.12, April 2014. [8] E. Janssen, A. van Roermund: "Look-Ahead Based Sigma-Delta Modulation, Anac Springer log Circuits and Signal Processing", DOI 10.1007/978-94-007-1387-1-2, Science+Business Media B.V. 2011. [9] G. G. Parma and V. Dinavahi: "Real-time digital hardware simulation of power electronics and drives", IEEE Transac-tions on Power Delivery, vol. 22, no. 2, pp. 12351246, Apr. 2007. 51
IRODALOMJEGYZÉK [10] Tamás Kökényesi, István Varjasi: "FPGA-Based Real-Time Simulation of Renewable Energy Source Power Converters", Journal of Energy and Power Engineering 7 (2013) pp. 168-177. [11] Chen, M., Rincón-Mora, G.A: "Accurate Electrical Battery Model Capable of Predicting Runtime and IV performance", IEEE Transactions on energy conversion, Vol. 21 No. 2, 2006, pp.504511. [12] L. Song and J. W. Evans: "Electrochemical-thermal model of lithium polymer batteries", J. Electrochemical Society, vol. 147, pp. 2086-2095, 2000. [13] D. Rakhmatov, S. Vrudhula, and D. A. Wallach: "A model for battery lifetime analysis for organizing applications on a pocket computer", IEEE Trans. VLSI Systems, vol. 11, no. 6, pp. 1019-1030, Dec. 2003. [14] Rong and M. Pedram: "An analytical model for predicting the remaining battery capacity of lithium-ion batteries", in Proc. Design, Automation, and Test in Europe Conf. and Exhibition, 2003, pp. 1148-1149. [15] He, H.; Xiong, R.; Fan, J.: "Evaluation of lithium-ion battery equivalent circuit models for state of chargen estimation by an experimental approach", Energies 2011, 4, 582598. [16] B. Schweighofer, K. M. Raab, and G. Brasseur: "Modeling of high power automotive batteries by the use of an automated test system", IEEE Trans. Instrumentation and Measurement, vol. 52, no. 4, pp. 1087-1091, Aug. 2003. [17] L. Gao, S.Liu, and R. A. Dougal: "Dynamic lithium-ion battery model for system simulation", IEEE Trans. Components and Packaging Technologies, vol. 25, no. 3, pp. 495-505, Sept. 2002. [18] S. Buller, M. Thele, R. W. De Doncker, and E. Karden: "Impedance-based simulation models of supercapacitors and Li-ion batteries for power electronic applications", in Conf. Rec. 2003 Industry Applications Conf., vol. 3, pp. 159601600. [19] S. C. Hageman: "Simple pspice models let you simulate common battery types", EDN, pp. 17-132, Oct. 1993. [20] S. Gold: "A pspice macromodel for lithium-ion batteries", in Proc. 12th Annual Battery Conf. on Applications and Advances, 1997, pp. 215-222. [21] Long Lam: "A Partical Circuitbased Model for State of Health Estimation of Li-ion Battery Cells in Electric Vehicles", Master of Science Thesis, University of Technology Delft, 2011. [22] Rui Xiong, Xianzhi Gong, Chunting Chris Mi, Fengchun Sun: "A robust state-ofcharge estimator for multiple types of lithium-ion batteries using adaptive extended Kalman lter", Journal of Power Sources, vol. 243, 2013, pp. 805-816. TDK 2015
52
Szabó Péter
IRODALOMJEGYZÉK [23] Shifei Yuan, Hongjie Wu and Chengliang Yin: "State of Charge Estimation Using the Extended Kalman Filter for Battery Management Systems Based on the ARX Battery Model", Energies 2013, 6, pp. 444470. [24] Habiballah Rahimi-Eichi, Student Member, IEEE, Federico Baronti, Member, IEEE, and Mo-Yuen Chow, Fellow, IEEE: "Online Adaptive Parameter Identication and State-of-Charge Coestimation for Lithium-Polymer Battery Cells", IEEE Transactions on Industrial Electronics, Vol. 61, No. 4, April 2014. [25] Kendall E. Atkinson: "An intruduction to numerical analysis", Wiley & Sons, Inc. 1988, ISBN 0-471-62489-6, pp.251-255. [26] Uri M. Ascher, Linda R. Petzold: "Computer methods for ordinary dierential equations and dierential-algebraic equations", Society for Industrial and Applied Mathematics, 1998, ISBN 0-898-71412-5, pp.35-56. [27] Ravel F. Ammerman, Senior Member, IEEE, Tammy Gammon, Senior Member, IEEE, Pankaj K. Sen, Senior Member, IEEE, and John P. Nelson, Fellow, IEEE: "DC-Arc Models and Incident-Energy Calculations", IEEE Transactions on Industry Applications, Vol. 46, No. 5, Sept/Oct 2010. [28] F. M. Uriarte, A. L. Gattozzi, J. D. Herbst, H. B. Estes, T. J. Hotz, A. Kwasinsky, R. E. Hebner: "A DC Arc Model for Series Faults in Low Voltage Microgrids", IEEE Trans. on Smart Grid, vol. 3, no. 4, Dec. 2012. [29] Digilent: Nexys4TM FPGA Board Reference Manual, https:// www.digilentinc.com/Data/Products/NEXYS4/Nexys4_RM_VB2_Final_5.pdf (Oct. 2015) [30] Mathworks: Stateow User's Guide, http://www.mathworks.com/help/pdf_doc/stateow/sf_ug.pdf (May 2014) [31] Mathworks: HDL Coder User' Guide, http://www.mathworks.cn/help/pdf_doc/hdlcoder/hdlcoder_ug.pdf (May 2014) [32] Xilinx: ChipScope Pro Software and Cores User Guide, http://www.xilinx.com/support/documentation/sw_manuals/xilinx14_1/chipscope_pro _sw_cores_ug029.pdf (May 2014)
TDK 2015
53
Szabó Péter