Fotovoltaický MPPT měnič pro bojler

solar invertor mpptMěnič (invertor) slouží k přeměně stejnosměrného proudu z fotovoltaických (FV) panelů na střídavý nesinusový proud s obdélníkovým průběhem vhodný pro napájení topné vložky s termostatem, která má topnou spirálu ve styku s vodou v nádobě bojleru pro můj fotovoltaický ohřev vody. FV panely nemohou být k takovéto vložce připojeny přímo, protože při rozepnutí termostatu v topné vložce by nastalým obloukem kontakty termostatu okamžitě uhořely.

Další nebezpečí spočívá při svodu nebo porušení obalu topné spirály, která je přímo ve styku s vodou. Pak by vznikaly svodové stejnosměrné proudy, které by poškozovaly nádobu bojleru v extrému by se mohl  probíhající elektrolýzou vyvíjet v bojleru vodík.

IMG_20150912_131039

Měnič se skládá z výkonového můstku typu Full bridge ve kterém jsou čtyři MOSFET tranzistory SPW47N60C3. Mosfety jsou ovládány přes drivery IR2110, které ovládají vždy polovinu můstky. Vstupy driveru jsou zapojeny tak aby tranzistory spínaly do kříže. Při návrhu výkonového můstku a vstupní část z FV panelů jsem využil rad a zapojení Jiřího Oplockého, který má v tomto velké zkušenosti.

solar invertor mppt

Rutina PWM v programu Arduina řídí PWM signály na výstupech D9 a D10 na potřebnou střídu. Frekvence impulsů je 50Hz a při maximální střídě je nastavená bezpečnostní prodleva mezi impulsy na cca 120us.

IMG_20150911_174424

Arduino měří napětí FV panelů pomocí napěťového děliče a hodnota proud je získávána z modulu ASC712/20. U tohoto modulu pozor na rozložení vývodů, na eBay jsou i moduly, které mají navzájem prohozené vývody VCC a GND, DPS je navržena pro modul na fotce.

IMG_20150907_182121

 

V programu je prováděn výpočet výkonu FV panelů a podle toho se střída zvyšuje nebo snižuje, tak aby byl výkon vždy co největší. Neustálé vyhledávání co nejvyššího výkonu (MPPT) je důležité pro co nejefektivnější využití FV panelů i při slabším slunečním svitu. Pokud by měnič jel pořád na plný výkon, tak při nízkém osvětlení FV panelů by topná vložka zatížila panely tak, že by na nich kleslo napětí a výkon by byl minimální.

Pro silové napájení měniče požívám 8ks FV panelů Benq 255Wp; 30,8V; 8,28A. Topná vložka je Eliko GRBT 2000W; 230V. Pro napájení řídicí části měniče jsem zvolil externí napětí 12V. Napájení by bylo možné i přímo z napětí panelů přes malý spínaný zdroj, ale chtěl jsem, aby přenos dat z měniče fungoval i bez osvitu panelů sluncem. Měnič je připojen přes RS485 k EmonHUBu a následně jsou údaje přenášeny na server EmonCMS. Na serveru je možné údaje zobrazit a jsou zde rovněž archivovány.

CMS3

Výběr tranzistorů pro výkonový můstek je důležitý. Měly by mít co nejmenší odpor v sepnutém stavu, aby i při výkonech okolo 2000W stačilo pouze pasivní chlazení a ztráty v měniči byly minimální. Tranzistory jako například IRFP460 jsou nepoužitelné. Použít lze i IGBT tranzistory jako například IRG4PC50S ty ale nemají zabudovanou ochrannou diodu, tak je potřeba připojit externí rychlou diodu.

Při návrhu plošného spoje jsem bojoval s docela slušným rušením, které se mi dostávalo, až k procesoru. Původně sem testoval měnič s IGBT tranzistory IRG4PC50S ke kterým jsem paralelně připojil rychlou diodu MUR880. Ztráty na tranzistorech byly sice trochu větší, takže potřebovaly slušně velký chladič, ale s rušením nebyly problémy. Když mi však z eBay dorazily tranzistory SPW47N60C3, které mají mnohem menší výkonové ztráty tak jsem měnič jako obvykle zkoušel napájet ATX zdrojem 12V a jako zátěž použil automobilové halogenové žárovky, aby byl proud okolo 9A. Při zkouškách se občas stalo, že když byla střída úplně minimální a vlákna žárovek studená a obvodem tak tekly obrovské špičkové proudy, tak se procesor kousnul nebo resetnul. Mosfety SPW47N60C3 mají mnohem rychlejší přechod do sepnutého stavu, takže spínaní je mnohem tvrdší. Vše jsem vyřešil úpravou plošného spoje, abych zamezil proudovým smyčkám a doplněním SMD blokovacích kondenzátorů 100n k budičům a Arduinu. Do programu jsem pro jistotu přidal hlídaní watchdogem a program jsem nahrál do Arduina přes ISP rozhraní programátorem, takže tam již není bootloader, ve kterém se procesor někdy zacyklil. Při případném kousnutí programu watchdog časovač po 4s resetne procesor a program se ihned spustí. Pokud bude program nahráván do Arduina Nano normálně přes USB kabel a bootloaderem je potřeba watchdog zakázat, protože s originálním bootloaderem v Nano watchdog nefunguje. Nebo je potřeba nahradit originální bootloader, Optibootem.

Program vypočítává z výkonu i vyrobenou elektrickou energii a zobrazuje ji na LCD, vždy po 0,1kWh se provede uložení hodnoty do Eeprom. Aby bylo ukládání spotřeby funkční je potřeba před prvním natažením programu do Arduina zrušit komentáře v části zápisu továrních hodnot do Eeprom. Po prvním spuštění programu se zápis do Eeprom provede. Pak komentáře zase vrátit zpět a program nahrát znovu. Při prvním spuštění programu se provede inicializace ukládaní dat do Eeprom.

Princip hledání nejvyššího výkonu MPPT jsem zvolil takový, že měnič postupně zvyšuje střídu a měří výkon, pokud je výkon vyšší provede další zvýšení střídy, pokud výkon klesne směr se otočí a měnič střídu snižuje a opět pokud výkon klesne směr se zase otočí. Při rozepnutí termostatu topného tělesa a výkonu 0W se nastaví základní střída cca 5%. Na LCD se zobrazuje napětí FV panelů, proud, výkon, vyrobená el. energie a aktuální střída. Pomocí tlačítek je možné zkušebně měnit střídu od 0 do 98%, při nestisknutí žádného tlačítka 10s se řízení opět vrátí do automatického režimu. Měnič je funkční i bez komunikace, LCD a tlačítek. Měnič jsem zabudoval do běžného domovního rozváděče kde jsou i pojistky fotovoltaických panelů a topné vložky. Panel s LCD displejem a tlačítky jsem vytiskl na mé 3D tiskárně. LCD je připojen přes I2C převodník jako v tomto článku přes expander PCF8574.

 

Doplněno:
21.2.2016 – Přidal jsem ke stažení návrh plošného spoje měniče. Jedná se ale o experimentální verzi pro zkoušky, jsou na něm některé vývody, které jsem nakonec nepoužil.
10.3.2016 – Opravena chybná hodnota R3 ve schématu z 5R6 na 5k6.
5.8.2016 – Na výstup měniče jsem doplnil prioritní proudové relé a do bojleru další topnou vložku.

Tady je nová verze MPPT měniče.

img_2616

Tady je odkaz aktuálního provozu měniče: https://emoncms.org/ppadre22

 

Download:
Solar_inverter43.ino  – automatická inicializace Eeprom
Solar_inverter43A.ino  – drobné úpravy a vylepšení
Panel LCD.stl
libraries.zip
Solar Inverter 2- PCB

Obrázky:

Příspěvek byl publikován v rubrice Arduino, Elektronika, Fotovoltaika se štítky , , , , , , . Můžete si uložit jeho odkaz mezi své oblíbené záložky.

53 komentářů u Fotovoltaický MPPT měnič pro bojler

  1. Pingback: Fotovoltaický ohřev vody v bojleru | TN Web

  2. Petr napsal:

    Skoda, ze to nekdo nevyrabi pro zajemce ve velkem. Ne kazdy si to troufne vytrobit. Ale pokud by mel menic, tak se montaz FV da zvladnout svepomoci. A s klesajici cenou panelu budou tyto ostrovy stale zajimavejsi.
    Par vyrobcu to sice nabizi, ale s montazi a za nehorazne ceny.

  3. radim napsal:

    Předně je třeba hodnotit přínos podělení se s výsledky.
    Mám prosbu. Jaké byly teploty chladiče (odhadem) při maximu spínaného letního výkonu.

    • Tom napsal:

      No použil jsem docela velký chladič co jsem našel doma a při výkonu 1800W měl okolo 40-50°C, takže žádná hrůza. Velmi záleží na tranzistorech.

  4. radim napsal:

    Ještě jedna drobnost mne zajímá. Jaký vliv mají kondenzátory C3,4,5. Případně, nešlo vy to bez nich.
    Poslední dotaz, nejsou odpory R15,16 zbytečně velké. I když při tech 50Hz asi nehrají jejich velikost velkou roli.

    • Tom napsal:

      Kondenzátory jsou důležité, protože regulátor pracuje v pulsním režimu, pomáhají srovnávat proud z panelů a zlepšují účinnost měniče.
      Odpory pro nabijení Gate tranzistorů jsou myslím pro 50Hz vyhovující.

    • Zdeněk Budinský napsal:

      Rezistory R15 a R16 zpomalují zapínání tranzistorů. Bohužel ale ani taková úprava nestačí k tomu, aby regulátor prošel státní zkušebnou. Neprojde kvůli vysokému podílu harmonických (rušení) v pásmu nad 150 kHz.

  5. radim napsal:

    Přece ještě jeden dotaz.
    Proč H most, když by stejný účel splnil jeden spínací FET s podstatně menšími ztrátami a výrazně jednodušším řízením?

    V dřívějšku jsem potřeboval průběžně odebírat výkon shodou okolností také na přebytky do bejleru a řešení, usměrnění a spínání jedním fetem se dost hřálo při frekvenci trochu míně než 1000Hz (arduino základní nastavení PWM, buzení TC427, hrany strmé). Potřeba se obnovila, tak trošku hledám jak se s problémem vyrovnat lépe.

    • Tom napsal:

      Most je použít proto aby byl výstup střídavý a bylo možné použít běžné topné vložky s termostatem a hlavně jak je popsáno v článku při poruše topné vložky.
      Navíc je možné z tohoto měniče nouzově napájet spoustu různých spotřebičů.

  6. Stefan napsal:

    Mam doma fotovoltaicku elektraren a toto by som si chcel vyrobit. Bolo by mozne uverejnit alebo poslat navrh plosneho spoja, aby som ho nemusel navrhovat?

    • Tom napsal:

      Přidal jsem to do sekce ke stažení. Jedná se ale o experimentální verzi pro zkoušky, jsou na něm některé vývody, které jsem nakonec nepoužil.

  7. Pingback: EmonHUB RS485 | TN Web

  8. Pingback: Optiboot v Arduino Nano a Pro Mini | TN Web

  9. MalyJaponec napsal:

    Nejsem si jisty, zda stridavy proud zajisti to, ze se nebude tvorit oblouk pri vypinani termostatu. Pokud mate mezi pulzy dostatecne mezery, pak je to mozne ale ani tak to neni zarucene. Svaruje se taky stridavym proudem. A druha vec je, ze elektrolyticky rozklad vody bude fungovat i na stridavem proudu, pri 50 Hz. Tedy otázka spíš zní, proč součástí měniče není i termostat. Proud byste vypnul polovodiči a ne relátkem.

    • Tom napsal:

      Ano, střídavý proud zajistí zhasnutí oblouku. Při průchodu proudu nulou (do 10ms) oblouk na kontaktech zhasne. Vypínat střídavý a stejnosměrný proud je diametrálně rozdílné. A co se týká termostatu, jsem názoru, že u bojleru je potřeba se spoléhat hlavně na zabezpečení proti přehřátí od výrobce bojleru nebo topné vložky.

  10. jozo napsal:

    Dobry den skvelej projekt ale nejsem v tom tak zbehly par veci nevim treba ty tlacitka u displeje k cemu slouzi mozna by to chtelo pridat popis

  11. Rudo napsal:

    Vdaka za zverejnenie, velmi pekna konstrukcia. Prave to mam rozrobene na stole (resp. uz to caka len na upratanie do krabicky), len jedno upozornenie pre inych (v clanku som si to nevsimol alebo som to prehliadol) – modul ASC712/20 ma naopak napajanie ako je vyvedene na DPS (+ a – su naopak). Neviem ci je to len problem mojich modulov, alebo je to drobna chyba v navrhu DPS.

  12. Tom napsal:

    Ahoj, nevím jaké máš ASC712/20 moduly, ale všechny, které jsem dosud kupoval mají rozložení jako na fotkách a DPS je k tomu udělaná. Pozor na to jak je modul na DPS namontován. Já jsem u modulu odletoval původní připojovací piny nahoru a naletoval nové směrem dolů, čip musí být nahoře. Když modul otočíš, proud poteče opačně a na výstupu modulu bude napětí menší než 2,5V a regulace nebude fungovat.

    • Rudo napsal:

      Vdaka za odpoved. Az teraz som si vsimol detail fotky, kde mas ASC712/20. Modul, ktory som kupil ja, ma piny VCC a GND vymenene. Ked sa konecne dostanem k testovaniu, uvidim ci aj piny na meranie prudu nie su otocene a potom by mohla nastat situacia ktoru popisujes.

  13. jozo napsal:

    Dobry den nejakym nedopatrenim jsem si objednal ACS712 30A pujde pouzit nebo ne dik za odpoved

    • Tom napsal:

      Ahoj, pravděpodobně ti bude špatně ukazovat proud, výkon a výroba. Regulace pak nemusí pracovat dobře, už ten 20A ACS má zbytečně velký rozsah.

  14. jozo napsal:

    Dobry den. Dekuji za odpoved to jsem si myslel ale doufal jsem. Tak jsem si objednal ACS20A,myslel jsem ze je v tom programu nejaka konstanta podle ktery se prepocitava proud.

    • Tom napsal:

      V programu bys musel změnit řádek s výpočtem proudu
      proud = (Avolt – (2500))*(100/66));
      Pak by měl proud ukazovat správně, ale rozsah toho 30A ACS712 je moc velký a citlivost regulace na skutečnou změnu proudu bude malá.

      • jozo napsal:

        Dekuji za odpoved sice po delsim case reaguji byl jsem mimo,a tak me dosel mezi tim ACS712 20A ale dik za odpoved jozo

  15. Petr Filipi napsal:

    Dobrý den.
    Děkuji mnohokrát za článek. Profi měniče stojí od 16.000 Kč výše a myslím si, že nemají ani tolik funkcí.
    Je nějak kritické, jakou topnou sirálu použiji? Mám doma 2,4kW namísto 2kW ve schématu. Nebo je to programu vcelku jedno s sám si najede na max. výkon?

    • Tom napsal:

      2,4kW bude fungovat normálně. Zkoušel jsem i připojit 2 x 2kW a měnič bez problému našel maximum.

      • Petr Filipi napsal:

        Díky za rychlou odpověď.
        Ještě bych měl otázku, neboť s Arduinem jsem zatím nepracoval – najdu někde v downloadovatelném ZIPu program pro Arduino? Abych to nepostavil a pak nezjistil, že program není volně ke stažení. I když byste si za to jistě nějakou odměnu říci mohl – vývoj trval určitě mnoho dní (a nocí).

        • Tom napsal:

          Pokud jsi s Arduinem nepracoval, doporučuji stránky arduino.cz a stáhnout tu jejich publikaci a studovat.
          Program pro tento měnič je v zipu (přípona .ino).

          Protože, spousta lidí co mi píše si s elektronikou nebo Arduinem nerozumí připravuji upravenou verzi měniče, který bych nabízel bud jako stavebnici kde by byl osazený plošný spoj s naprogramovaným procesorem a chladičem a deskou s LCD a tlačítky nebo hotové zařízení v plastové skřínce. Potřebuji ale ještě doladit nějaké věci v konstrukci.

          • Petr Filipi napsal:

            To já se toho zase nebojím. S elektronikou mám dlouholeté zkušenosti a programuji PICy, takže tohle určitě dám taky.

            • Tom napsal:

              Tak to jsi v pohodě, já kdysi programoval v assembleru proti tomu je vytvoření programu pro Arduino jako procházka růžovým sadem. 🙂

          • Fredka napsal:

            Dobrý den…..moc mne zaujala Vaše diskuze a tak se jen zeptám byla by v budoucnu možnost si objednat upravenou verzi měniče s naprogramovaným procesorem?????.Kdy předpokládáte že by to bylo realizovatelné (měsíc,několik měsíců,rok???).Děkuji za info a přeji hodně úspěchů moc si cením Vaší práce a výsledků…..Fredka.

  16. Tom napsal:

    Měnič už, hotový, je to prakticky jen upravená verze tohoto měniče, který se velmi osvědčil.
    Ještě potřebuji doladit a odzkoušet nějaké drobné změny programu a napsat nějaký návod pro připojení a zprovoznění. Počítám že do měsíce (přibližně) by to mohlo být hotové. Tady jak to vypadá: http://tnweb.tode.cz/wp-content/uploads/2016/09/IMG_2616.jpg

    • Fredka napsal:

      Už jsem reagoval na Vaši odpověď u Vašich fotek moc se mi regulátor líbí a jak bude k mání tak ihned si jej objednám…….přeji hezké dny a hodně úspěchů……Fredka.

    • Tomáš napsal:

      Dobrý den , jaká je(bude ) případná cena? je již možnost zakoupit?

      • Tom napsal:

        Měnič jsem ještě předělal do nové verze a přidal nadproudovou ochranu. Zapojení je teď mnohem odolnější proti rušení a nadproudu na výstupu. Momentálně to je ve stavu testování, ale bohužel slunce teď moc není. Pokud testy dopadnou dobře napíšu o tom.

  17. Michal napsal:

    Zdravím, chtěl jsem se zetat jestly by bylo možné poslat na mail eagle knihovnu pro převodník na RS485. Díky

  18. Miloš napsal:

    Dobrý den je možné toto zapojení použít pro 18 panelů 260W a spirálu asi 5KW? Děkuji za odpověď. Miloš

    • Tom napsal:

      Pro 18 panelů do serie je napětí pro měnič moc velké. Pro 2 x 9 nebo 3 x 6 je zase moc velký proud, silový obvod by se musel kompletně předělat (svorky, pojistky, měření proudu, aktivní chlazení, případně zdvojené tranzistory). Napadá mě snad rozdělit panely na 2 x 9 a použít dva měniče, každý do své odpovídající zátěže.

  19. Miloš Rohovský napsal:

    Mám zájem o spolupráci, jsem z Opavska a ostrovni systém provozuji 3.rokem. Podrobnosti bych uvedl na případné schůzce. Přeji pěkný den.

  20. Pingback: Fotovoltaický MPPT měnič pro ohřev vody SITON 210 | TN Web

  21. zozan napsal:

    Ahoj Tome, rád bych se zeptal na pár věcí, který nechápu co se týče programu:
    Proč tento zápis:
    if ((unsigned long)(currentMillis > (rucTime + rucTimeExit))) rucne = false;
    když jsou to globální proměnný, nenapíšeš takto:
    if (currentMillis > (rucTime + rucTimeExit)) rucne = false;

    Toto je převod „vyk“ z float na integer? „vykon = (int)vyk;“ Nikde jsem tento zápis neviděl, já to převádím „vykon = int(vyk); „i když tohle „vykon = vyk;“ by asi bylo taky správně, né? Aspoň tedy v prostředí arduina …

    • Tom napsal:

      Ahoj, klidně si program uprav jak uznáš za vhodné.
      Vím, že by šel napsat o mnoho lépe, snížit počet globálních proměnných, zjednodušit některé konstrukce….. Já to moc neřeším pokud je v procesoru dost místa, neháže mi to chyby při překladu a program funguje jak potřebuji, jsem spokojený 🙂

      • zozan napsal:

        O úpravu mi nejde, spíš jsem chtěl vysvětlit , proč si to tak psal a jaký to má nějaký důvod…

  22. Packa napsal:

    Ahoj
    postavil jsem si tvůj MPPT regulátor a když jej zapojím mezi bojler a panely tak mi při plném svitu přez regulátor panelydodávají cca o 20% nižší výkon než když jsou připojeny napřímo . mám zapojený za panely DCwattmetr . takže měřím výkon odebíraný z panelů , je pravda že s mppt mám na panelech výrazně vyšší napětí , ale výkon je nižší .
    čím myslíš že je to způsobeno ? je možné že mi budiče naplno neotevřou tranzistory ?
    Děkuji
    Packa

    • Tom napsal:

      Při plném ideálním osvitu, pokud je topná spirála optimální k panelům bude z logiky věci vždy výkon přes měnič menší (ztráty na tranzistorech, pojistkách, max. střída 98%) ale nemělo by to být více než cca 3%, výhoda MPPT se projeví pokud není osvit ideální což je odhadem 80% času. Pokud by byly tranzistory málo otevřené, silně by se zahřívaly. Používáš stejné tranzistory? nejsou fake?

  23. Packa napsal:

    Ahoj děkuji za rychlou reakci ,
    problém je že i průměrná denní produkce je nižší a to právě až o 20%
    tranzistory mám stejné , ale je pravda že pracuji jen s 800w výkonu panelů a těleso je 1kW.
    tranzistory jsou z chiny , otázka je jaké kvality ? na dvou je popis natištěn bíle na dvou je jen ražba tak nevím , mám jich deset kusů tak můžu zkusit kombinovat .
    ještě jsem prubnul a nastavil frekvenci 53% a výkon stoupnul , tedy podle ukazatele výkonu na mppt regulátoru . otázka je jestli i dodá víc do spirály nebo se ten výkon maří v regulátoru . Myslíš že je to bezpečné provozovat na vyšší frekvenci ?
    Velice děkuji .
    Packa

  24. Packa napsal:

    Ahoj
    děkuji za odpověď prověřím to co jsi psal.
    esr tester mám oscilem na to taky mrknu .
    dík.

  25. Jan Matuška napsal:

    V článku píšete, že tranzistory dorazily z eBay. Máte nějakého ověřeného prodejce, který neprodává zmetky? Z minulosti mám zkušenosti, že některé součástky jsou shodné jen popisem na pouzdře 🙂

    • Tom napsal:

      V poslední době se zdá, že zmetky už prodávají všichni. Měl jsem prodejce z Aliexpressu, který měl tranzistory horší vzhledově ale jinak nepřebroušené, nepřeznačené a každý tranzistor byla jiná šarže (což je první dobré znamení, že nejsou fake) a parametry také odpovídaly. V poslední zásilce ale přišly s trochu horšími parametry a byly přeznačené. Teď mám objednáno od dvou jiných prodejců, tak uvidím co přijde. Neplatí ani pravidlo, že dražší tranzistory fake nebudou. Koupené tranzistory 47N60C3, vždy nejprve proměřuji komponent testerem, kapacita Gate by měla být okolo 19nF. Pak testuji DC napětím 500V v zavřeném stavu a nakonec měřím při procházejícím proudu 3A odpor v sepnutém stavu Rds-on, neměl by být větší než 70miliOhm

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *