Stiskněte "Enter" pro přeskočení obsahu

Vytěžovač FVE

3

Před a po pořízení fotovoltaické elektrárny jsem jako spousta dalších začal přemýšlet nad co největším vlastním využitím vyrobené energie. Nechci zbytečně ohřívat tisíce litrů vody jenom proto, aby byla teplá. Ale na druhou stranu, proč nahřívat třeba bojler ze sítě, když je přes den dostatečné množství sluneční energie?

Ideální je tedy nějakým způsobem kontrolovat výrobu elektřiny a podle změřených hodnot spínat bojler (elektrokotel, …) tak, aby nahříval pouze tehdy, kdy je elektřiny dostatek.
Samozřejmě, že nejsem jediný, koho to napadlo. Existují zařízení, které se jenom zapojí do rozvaděče, nastaví se a fungují. Často se všem říká „wattrouter“, ale to je pouze jeden výrobek. Existují například tyto hotové výrobky: Wattrouter, AZ Router, GBO-Aku, …

Nyní je možné zakoupit i můj výrobek – POWER ROUTER.
T-REG PowerRouter

Protože mám povolené přetoky do sítě, budu regulaci řídit podle přetoků. Je to asi ten nejjednodušší způsob. Pokud přetoky povolené nejsou, musel by se algoritmus regulace upravit. Určitě to není nemožné, ale pro mě zbytečné. Tak jsem to neřešil.

 

Proč řídit výkon bojleru v závislosti na výkonu FVE?

Odpověď je jednoduchá – kvůli maximálnímu využití vlastní vyrobené elektřiny a kvůli optimalizaci nákladů/návratnosti elektrárny. Pokud je ideální slunečný den, výroba velká a bojler sepne když je elektřiny dostatek, není potřeba žádná regulace. O vše se postará střídač – pokryje se vlastní spotřeba a přetok jde do sítě. Problém však nastává, když výroba není dostatečná ať už z důvodu špatného počasí, nebo protože ještě pořádně nevyšlo slunce.

Několik ukázkových příkladů z reálné FVE:

Příklad č. 1 – provoz bez vytěžovače.

Na příkladu č. 1 je vidět provoz bez vytěžovače FVE. Výroba přes den není ideální, ale bojler byl spuštěn ve správnou chvíli. Celý provoz bojleru je pokrytý výrobou. Kdyby byl bojler spuštěn třeba v 9 hodin ráno, byla by značná část spotřeby napájena ze sítě!

Příklad č. 2 – část spotřeby je zbytečně napájena ze sítě.

Na příkladu č. 2 je bojler bez vytěžovače spuštěn příliš brzo, v době kdy ještě není dostatečný výkon FVE. Potom je vypnutý a opět spuštěný okolo 10. hodiny. V té době stejně poklesla výroba (mraky) a část ohřevu bojleru byl napájen ze sítě – zbytečná spotřeba ze sítě.

Příklad č. 3 – Slunečný den a vytěžovač FVE v akci

Na příkladu č. 3 je vidět téměř ideální výroba. Celý den je slunečno a až na pár mraků jede FVE na plný výkon (v rámci sklonu a natočení panelů, ročního období atd.). V případě, že by se bojler zapínal např. časovým relé okolo 10 hodiny, byla by celá spotřeba pokryta z FVE. Zde je ovšem použitý vytěžovač, který od počátku výroby v 7 hodin postupně zvyšuje výkon bojleru. Spotřeba tak kopíruje výrobu plus malá část přetoků do sítě. Pokud je v domě spuštěn nějaký spotřebič, je výkon bojleru utlumen tak, aby byla celková spotřeba domu pod výrobou.
Špičky okolo deváté hodiny jsou způsobeny spuštěním nějakého spotřebiče. Typicky rychlovarná konvice. Výroba v té době ještě není dostatečná a tak je potřeba trošku energie načerpat ze sítě.

Příklad č. 4 – poměrně velká výroba. Ale také velké množství mraků od 11 do 15 hodin.

Na příkladu č. 4 je slunečný den, kdy je od cca 11 do 15 hodin zvýšená oblačnost. Výroba klesá na cca 25% možného výkonu. Navíc je nahříváno větší množství vody – bojler (cca 2kW spirála) a akumulační nádrž (také cca 2kW spirála).
Vytěžovač zajistil postupné nahřívání bojleru (má nastavenou prioritu) od rána, kdy FVE začala vyrábět. Po nahřátí bojleru se spustilo nahřívání akumulační nádrže. V případě poklesu výroby např. z důvodu zastínění panelů mraky došlo ke snížení výkonu tak, aby nebyla odebírána energie ze sítě.
Opět jdou vidět ráno špičky od konvice a třeba varné desky. Ale to je v době, kdy výroba ještě není dostatečná – je tedy potřeba trochu energie ze sítě.

Příklad č. 5 – nedostatečná výroba (oblačný den).

Na příkladu č. 5 jde vidět poměrně nízká výroba. Ten den bylo dost oblačnosti a až na pár míst byl maximální dodávaný výkon cca 1 kW (2 kW odpoledne). Ráno výroba nepokryje ani spotřebu domu (vaření, svícení, …). Je tedy nutný odběr ze sítě. V případě přebytku energie je tato nasměrována do bojleru. Od cca 12 do 15 a od 16 do 19 hodin jde vidět, že spotřeba kopíruje výrobu – vytěžovač reguluje výkon bojleru tak, aby odebíral pouze to, co FVE vyrobí.
V tomto případě by bylo možné manuálně zapnout bojler např. po 15. nebo 17 hodině. Výroba by tou dobou pokryla spotřebu. Vyžaduje to však manuální zásah a člověk nemůže vědět, jestli ten den bude ještě slunečno, nebo ne. Při zapnutí bojleru až odpoledne by mohla být v bojleru zbytečně studená voda.

 

Příklad č. 6 – velká spotřeba

Na posledním příkladu č. 6 je výroba z oblačného dne. Sem – tam svítilo slunce, výroba je za celý den cca 20 kWh. Díky vytěžovači je celá výroba nasměrována na ohřev vody – nejprve bojler, poté 1000l akumulační nádrž na topení.
Jsou zde samozřejmě i špičky, kdy je potřeba nákup elektřiny ze sítě. Typicky se jedná o spotřebiče jak konvice, trouba, sporák… Spotřebiče s velkým odběrem v době, kdy FVE nedokáže dodat dostatečný výkon. Ale i tak je třeba polovina příkonu pokryta FVE.

Co když celý den slunce pořádně nesvítí?

I s tím je potřeb počítat! Zejména v zimních měsících nemusí být výroba FVE dostatečná. Spoléhat se tedy pouze na jednu regulaci by mohla být chyba – došlo by k nežádoucímu ochlazení bojleru pod nějakou přípustnou mez.

Ve svém systému mám dvě regulační smyčky. Jednu, která řídí ohřev pomocí FVE. Pokud není voda dostatečně ohřátá je nuceně sepnut ohřev v době nízkého tarifu. Je potom sice odběr ze sítě, ale teplá voda má přednost před ušetřenou korunou.

Prioritu mám nastavenou pomocí teplot a volitelného časového okna. Ohřev z FVE probíhá v teplotách okolo 50 °C. Ohřev ze sítě („ohřev HDO“) probíhá pouze v době nízkého tarifu a při poklesu teploty pod cca 42 °C. Navíc je možné vytvořit časové okno, kdy může být ohřev aktivní – je tak možné nastavit, aby se bojler ze sítě dohříval např. až odpoledne.
V ideálním případě by ke spuštění „ohřevu HDO“ nemělo dojít. Při běžné spotřebě spadne teplota v bojleru z cca 52 °C na 45 °C. Potom se další den dohřívá zpět na 52 °C.

* Teploty jsou orientační. Záleží na jakém místě bojleru se teplota měří. Tomu jsou nutné přizpůsobit hodnoty. Já měřím cca ve výšce teploměru.

 

Čím to řídit?

Protože doma máme řídící systém topení založený na Tecomat Foxtrot, rozhodl jsem se integrovat tuto funkci do něho. Princip regulace obecně není složitý. Pomocí řízení PLC je integrace poměrně snadná. Výsledné náklady navíc jsou pouze analogový výstup (pokud ho PLC již nemá) a SSR s řízením 0 – 10 V. Integraci je samozřejmě možné provést u jakéhokoliv jiného podobného řízení, jako je Loxone, Siemens Logo!, RPi, Arduino atd.
Pokud by člověk stavěl podobné zařízení od nuly, cena se začne přibližovat hotovému řešení. To je už na úvahu, zda-li se do stavby pouštět. Výhodou vlastního řešení je možnost následné úpravy řízení, dodělání různých funkcí atd. Ale jak jsem již psal, integrace do stávajícího systému může být snadná a ne příliš nákladná.

Mé řešení spočívá ve využití modulu Tecomat Foxtrot (PLC), který pomocí Modbus komunikuje se střídačem/smartmeterem (je zde nutný převodník Modbus RTU/TCP) a vyčítá z něho hodnoty odběru/přetoku v jednotlivých fázích*. Podle požadované teploty bojleru a aktuální hodnoty přetoku zvyšuje/snižuje napětí na analogovém výstupu, ke kterému je připojeno SSR s analogovým řízením (fázová regulace). Vše běží real-time, přímo z aktuálních dat výkonu.
Pro řízení jsem si naprogramoval blok v jazyce ST, který dokáže samostatně řídit výkon ve třech fázích, přihlíží k signálu HDO, umí časové okno, omezit maximální výkon atd. Kód bloku je možné stáhnout na mém GitHubu.

*V reálu není potřeba měřit všechny fáze. Protože je střídač asymetrický, snaží se nejprve pokrýt spotřebu v domě a poté přebytečný výkon rovnoměrně rozloží do třech fází. Střídač se tedy z pohledu sítě vždy chová symetricky – na všech fázích je stejný přetok. Toto samozřejmě platí pouze do limitace výkonu střídače/do hodnoty překročení asymetrie.

Schématické znázornění výroby, spotřeby a regulace

 

Fyzické provedení vytěžovače. Uvnitř je pouze SSR na chladiči a svorky pro napájení. Řízení je umístěno v rozvaděči.
SSR s analogovým řízením. Má výkonové svorky L1 a T1. Ovládací svorky A1, A2 a A3 (napájení a analogový signál).

Princip regulace

Pro regulaci jsem se rozhodl nepoužít nějaké složité algoritmy, PID regulátory apod. Ne že by to nebylo nemožné, ale vyžaduje to zbytečně složité odlaďování atd. Navíc je regulace zatížena různými zpožděními, které by mohly způsobovat nestabilitu – četnost načítání aktuálních hodnot ze smartmeteru (střídač aktualizuje data cca jednou za 3 sekundy), rychlost regulace výkonu střídače, … Vsadil jsem tedy na pomalejší regulaci, která je však poměrně stabilní, univerzální a nevyžaduje složité nastavování. Nevýhodou je pomalejší reakce na skokové změny odběru v domě.

Pokud je přetok do sítě větší než nastavená hodnota (např. -125 W = přetok), regulátor začne přidávat výkon. Pokud je odběr ze sítě větší než nastavená hodnota (např. -10 W = přetok), regulátor začne ubírat výkon. V rozmezí těchto dvou hodnot (-125 W až -10 W) neprobíhá žádná úprava výkonu. Změna výkonu probíhá v nastavených časových intervalech (např. 1 s) po nastavených krocích (např. 1 %).

Znázornění regulace

Program

Jak je psáno výše. Program je možné stáhnout z mého GitHubu. Nejsem žádný softwarový inženýr, takže omluvte nedokonalosti. Program je psaný v jazyce ST dle IEC 61131-3. Je to taková spatlanina Pascalu a BASICu. Osobně tento programovací jazyk nemám moc rád. Na druhou stranu, je snadné si ho přeložit jak do C (např. pro Arduino, Loxone, …), nebo v podstatě do jakéhokoliv jiného jazyka. Je tam pouze pár základních příkazů.

Pro ovládání jsem vytvořil rozhraní v designu odpovídajícím zbytku systému na řízení topení. Je tu část pro nahřívání přes FVE a HDO. Je zde pouze několik málo voleb k uživatelské konfiguraci.

Konfigurace nahřívání přes FVE
Konfigurace nahřívání přes HDO

 

Program je potom použit jako funkční blok v jiné části programu. Na obrázku níže je použití v programu. Jedná se o blok nahřívání bojleru. Používá se zde pouze jedna fáze, výstup je přizpůsoben na ovládání 0-10 V v PLC Tecomat (hodnota v procentech se vydělí 10, aby byl výsledek ve voltech). Dále je tak měření spotřeby (ta se liší podle aktuálního výkonu). Poslední část je blokování chodu nahřívání akumulační nádrže v případě, že se je výkon ohřevu bojleru 0% (není aktivní = není výkon, nebo je nahřáto), nebo je ohřev nastavený na plný výkon (bojler se ohřívá, ale může být přebytek výkonu).

Pohled na několik částí kódu v bloku

Na začátku jsou definovány vstupní a výstupní proměnné a omezení minima a maxima zadaných hodnot. Funkce jednotlivých proměnných je myslím dostatečně popsána komentáři. Výstupní proměnné (outputPowerLx) je hodnota regulace v procentech. Tuto hodnotu je nutné případně převést pro analogový výstup (u Tecomatu se jedná třeba o hodnotu přímo napětí 0 – 10 V, u Simatic S7-1200 je to myslím hodnota 0 – 27648).

outputPowerL1 : real; //aktualni vykon topne spiraly L1 %
outputPowerL2 : real; //aktualni vykon topne spiraly L2 %
outputPowerL3 : real; //aktualni vykon topne spiraly L3 %//hdoMaxTemp
IF(hdoMaxTemp < 0.0) THEN
 hdoMaxTemp := 0.0;
END_IF;IF(hdoMaxTemp > 95.0) THEN
 hdoMaxTemp := 95.0;
END_IF;

 

Další částí je definování časového okna a funkce termostatů. Časové okno může být definované v rámci jednoho dne (např. 18 – 23 hod), nebo v rámci dvou dní (např. 20 – 5 hodin).
Termostaty jsou jednoduché termostaty s nastavitelnou hysterezí. Ta není symetrická, ale pouze záporná. Zadává se tedy přímo vypínací teplota a hystereze určuje o kolik musí klesnout teplota, aby termostat zapnul. Termostat HDO pracuje přímo s hysterezí, termostat FVE pracuje s poloviční hodnotou hystereze. Způsobuje to častější spínání termostatu FVE, což je žádoucí.

//termostat HDO
//zadana maximalni teplota je vypinaci teplota
//hystereze je pouze zaporna, pri poklesu teploty pod uroven (maxTemp – thermostatHyst) se termostat sepne
//maxTemp = 50, thermostatHyst = 2
//pri prekroceni 50 stupnu ohrev vypne, pri poklesu pod 48 stupnu ohrev zapne
thermostatHyst := ABS(thermostatHyst);
IF(tempNadrz >= hdoMaxTemp) THEN
 //bojler nahraty
 thermostatHdo := false;
END_IF;
IF(tempNadrz <= hdoMaxTemp – thermostatHyst) THEN
 thermostatHdo := true;
END_IF;

 

Následuje samotná logika regulace. Ta se spouští vždy se signálem „edgeSignal“. Je tedy žádoucí, aby byl tento signál dlouhý pouze jeden cyklus jednou za definovaný čas. Vyhoví tedy např. náběžná hrana nějakého časovače, nebo nějaký vnitřní registr. Já používám jednu náběžnou hranu za 1 sekundu. Následuje kontrola podmínek startu. U FVE je to pouze aktivní režim a termostat. Dále se pak kontroluje, jestli je přetok do sítě menší, nebo větší než definované meze – podle toho je zvyšován, nebo snižován výkon topení.
Pokud nejsou podmínky splněny, je výkon snižován. Regulace tedy probíhá směrem nahoru i dolu plynule po jednotlivých krocích.

// OHREV BOJLERU PRES FVE
fveMinOverflow := ABS(fveMinOverflow) * -1.0; //uprava hodnoty na zaporny vykon
//je nutne, aby pretok do site měl zapornou hodnotu
IF(edgeSignal) THEN
//cyklovani po 1 s
IF(fveActive AND thermostatFve) THEN
//ohrev pres FVE aktivni a pozadavek od teploty
//rezim regulace
IF(currentL1power <= fveMinOverflow) THEN
//pretok vetsi nez minimum
//zvysovat vykon
outputPowerFveL1 := outputPowerFveL1 + fvePowerStep;
END_IF;IF(currentL1power >= fveMaxConsumption) THEN
//odber ze site vetsi nez maximalni
//snizovat vykon
outputPowerFveL1 := outputPowerFveL1 – fvePowerStep;

END_IF;ELSE
//ohrev neni aktivni, snizovat vykon
outputPowerFveL1 := outputPowerFveL1 – fvePowerStep;
outputPowerFveL2 := outputPowerFveL2 – fvePowerStep;
outputPowerFveL3 := outputPowerFveL3 – fvePowerStep;
END_IF;
END_IF;

 

Důležitou částí je softwarová ochrana proti přehřátí. Tato jednoduchá podmínka zda nepřekročila teplota vody nastavenou mez. Pokud dojde k překročení teploty o 1 °C, je výstupní výkon bez zpoždění nastaven na 0 %.
V programu je sice omezování minima a maxima, takže by regulace měla fungovat správně, ale záleží na okolnostech. Pokud by byla např. použita výkonná spirála, rychlost regulace by byla při nahřívání nastavena 1 %/s (plný výkon za 100 s = 1 min, 40 sec) a během plného výkonu změněn výkonový skok na 0,1 %/s (nulový výkon za 1000 = 16 min, 40 sec) mohlo by dojít k přehřátí nádrže. Standardně by tedy měla probíhat plynulá regulace, ale pouze při překročení teploty skokové snížení výkonu.

V každém případě by měla být spirála odpojitelná nezávislým zařízením. Např. v bojleru vestavěným mechanickým termostatem a tepelnou pojistkou. Je to i z důvodu poškození HW – může selhat PLC, prošlehnout se SSR apod.
Ohřev vody by měl mít vždy několik stupňů regulace/ochrany
– sw termostat, sw tepelná ochrana, (mechanický termostat), mechanická tepelná pojistka, mechanický stykač, pojistný ventil
.

//ochrana proti prehrati
//pri ohrati 1 stupen nad maximalni teplotu zablokovat vystupy
IF (hdoMaxTemp >= fveMaxTemp) THEN
//vyssi teplota HDO
IF(tempNadrz > hdoMaxTemp + 1.0) THEN
 outputPowerL1 := 0.0;
 outputPowerL2 := 0.0;
 outputPowerL3 := 0.0;
END_IF;
ELSE
//vyssi teplota FVE
IF(tempNadrz > fveMaxTemp + 1.0) THEN
 outputPowerL1 := 0.0;
 outputPowerL2 := 0.0;
 outputPowerL3 := 0.0;
END_IF;
END_IF;
  1. jiri dinic jiri dinic

    dobry den libi se mi vas vytezovac fve bohuzel jsem doposud nenesel cenu a kde by se dal pripadne objednat dekuji

    Peťan: Řízení zde v článku je moje custom, co používám doma. Ale použil jsem tento algoritmus do hotového zařízení, které mám na tomto webu: https://t-reg.cz/power-router/ Aktuálně ho ještě neprodávám. Již mám několik těchto zařízení namontovaných a zprovozněných a odlaďuji detaily software. Předpokládaná cena je cca 5000 Kč pouze za řízení a cca 10000 Kč za komplet včetně výkonových SSR pro řízení až 4 spirál (umístěno v boxu – viz video https://youtu.be/o6xxuhjioRo?si=U4kIgFLXkbfi8eri)

  2. Pepa Pepa

    Dobrý den,
    děkuji za sdílení nápadů. Mylmls znám už dlouho a chválím.
    Sám mám tohle připravené už asi rok, ale nějak nejsem schopen to „dotáhnout“:) Používám k regulaci PLC SDS, v podstatě mám v hlavě stejné zapojení (Solax – SDS – PWM -0/10V_SSR).
    Mám pár dotazů, zajímala by mě Vaše zkušenost.
    1. Chlazení – ten chladič na obrázku je i v krabici? Jak se to SSR hřeje? Šel by i menší?
    2. S tím souvisí i nápad při 100% (řekněme 95%) přemostit SSR relé (stykačem, aby to mělo správný pád), aby bylo skutečně 100% a odlehčilo to zátěži SSR. SSR by to nemělo vadit při odporové zátěží, nebo snad ano? SSR bude u spirály, samozřejmě i kvůli rušení.
    Opačně i při odpojení výkonové část, kdy jede SSR naprázdno (vypne třeba termostat), nezaznamenal jste problémy?
    3. Rušení – projevilo se někde? Používáte nějaké odrušovací prvky?

    Díky.

    Peťan: Čus, chladič na fotce mám docela předimenzovanej. Ale samozřejmě záleží na počtu a typu relé. Já tam mám 4 kusy a zrovna ten RM1E… docela topí. Mám celkem dobrý zkušenosti s analogovýma SSR z Aliexpressu (nevým teď typ). Jeden kus na chladiči 100*60*10 mm se celkem v pohodě uchladí. Dávám na něj SSR dvě s aktivním chlazením ventilátorem. Provedení jde vidět na tomhle videu: https://youtu.be/o6xxuhjioRo
    Bypass na relé nepoužívám. Asi by to trošku snížilo ohřívání, ale není to nic zásadního. Zvláště, pokud je spirála třeba 2kW. Při regulaci na 100 % by to mělo topit nejmíň… Ale člověk s tím nic asi nezkazí. Prostě SSRko budit na 100% a ještě k němu přiklapnout relé. Se zapínámním a vypínáním zátěže jsem žádný problém nezaznamenal. Co se rušení týče, tak tam mám akorát feritovej filtr – spíš pro dobrý pocit. Vedení mezi SSR a spirálou mám co nejkratší, ale samozřejmě, rušení se šíří i na přívodní stranu vedení. Žádné problémy jsem nezaznamenal.

  3. Anonym Anonym

    Díky za rychlou reakci. To video jsem neznal, znám jenom to původní, jako článek. Udělal jsem si představu. Mám už RM1E, přidám pasivní chladič. Ať se Ti daří.

Napsat komentář

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