Fórum | MyPower.CZ | Obnovitelné zdroje energie - energetická soběstačnost | Poslední návštěva: pon bře 01, 2021 5:45 pm


Logika jednostupňového vytěžovače

Arduino, SDS, Raspberry, Linux, vzdálený dohled, automatizace, měření, opensource, closedsource, hotová řešení, DIY, stavebnice, komponenty, software, postupy, návody, schémata, rady, zkušenosti ...

Logika jednostupňového vytěžovače

Příspěvekod marsal64 » pát pro 04, 2020 2:48 pm

Snad může být téma užitečné pro někoho ve vyhrazeném vlákně.

Stále průběžně vylepšuji to, co jsem již opakovaně zmiňoval jinde (předešlé vylepšení díky inspiraci vlkazajac: http://forum.mypower.cz/viewtopic.php?f ... ho#p135160, nejnovější vylepšení: proporcionální konstanty P jsou nyní odlišné pro „standardní“ a „emergency“ vytěžování, podrobněji viz níže).

Poznámky k aktuální verzi:
- Vytěžování probíhá z měniče, který obsluhuje i běžnou AC spotřebu (-> potřebna ohlídat celkový výkon měniče)
- Vytěžování nyní míří do bojleru, někdy do přímotopu, někdy do obojího zapojeného paralelně
- Vytěžuje se pomocí fázově řízeného SSR (po diskuzích a zvažování volba ze dvou zel mezi flickeringem a rušením, viz např. http://forum.mypower.cz/viewtopic.php?t ... 44#p111723) napětím 0-10V (v ilustračním programu níže pomocí proměnné PhaseVoltage)

- Měřené veličiny:
o Celkový okamžitý proud z/do baterie (mer[29].v), kladná hodnota znamená proud do baterie (nabíjení)
(Pozn. - v mém případě jde měření ze shuntu, díky brumu beru klouzavý průměr z 50 hodnot, tj. “okamžitá” je takové relativní tvrzení)
o Celkový okamžitý výkon AC měniče (mer[49].v)
o Aktuální SOC v procentech, průměr za sekundu (mer[51].v_lsec)

- Logika vytěžování:
o Pokud je do měniče připojen spotřebič, jehož příkon v souhrnu s vytěžováním jde za hranu přípustného výkonu měniče (tj. přesahuje nastavenou hodnotu PhaseDDPwLim), pak se rychle vytěžování sníží. V praxi, pokud je měnič alespoň krátce přetížitelný, toto zabrání výpadku měniče.
o Pod zvolenou hranici SOC (PhaseDDFromAbovePercSOCVyt) se vytěžováním pouze omezuje nabíjecí proud do baterií, pokud tento proud přesáhne stanovenou mez (TargetEmergencyCurrent) – říkám tomu “emergency vytěžování”
o Nad nastavenou hranicí SOC se vytěžuje tak, aby se udržoval nastavený dobíjecí proud do baterie (TargetCurrent). Říkám tomu “standardní vytěžování”.
o Finální hodnota napětí na SSR se omezí mezi nulou a hodnotou PhaseDDTemperaturePhasePercVyt, která se nastaví ručně podle max. výkonu měniče a příkonu zapojené vytěžovací zátěže.
o Napětí SSR se proporcionálně zvyšuje nebo snižuje s využitím časové konstanty (TargS). Její hodnoty jsem postupně ručně optimalizoval pozorováním, na základě “setrvačnosti” celého systému a jsou pochopitelně závislé na délce cyklu PLC (v mém případě 10 až 20 ms). Lze využít i nějaký hotový PID funkční blok. Pokud byly konstanty příliš nízké, pozoroval jsem cyklování baterie mezi + a – proudy, což není žádoucí. Pro emergency vytěžování je nastaveno rychlejší zvyšování vytěžování a pomalejší snižování, pro standardní vytěžování naopak. Program PLC Foxtrot pro ilustraci:
Kód: Vybrat vše
// Stávající hodnota do pracovní proměnné
  CurDDVoltage := PhaseVoltage;

  // bylo dosaženo limitu měniče?
  IF REAL_TO_UINT(mer[49].v) > PhaseDDPwLim
    THEN CurDDVoltage := CurDDVoltage - 0.5;  // rychlé snížení výkonu
  ELSE
    // rozhodování podle SOC - pokud je SOC pod rozhodovací hranicí, pak jen emergency vytěžování, pokud nad ní, standardní vytěžování
    IF round(mer[51].v_lsec) >= PhaseDDFromAbovePercSOCVyt THEN

      // Hodnoty pro standardní vytěžování
      TargC := TargetCurrent;
      IF mer[29].v > TargC
        THEN TargS := 0.001; // pomaleji zvyšovat standardní vytěžování
        ELSE TargS := 0.01; // rychleji snižovat standardní vytěžování
      END_IF;

    ELSE

      // Hodnoty pro emergency vytěžování
      TargC := TargetEmergencyCurrent;
      IF mer[29].v > TargC
        THEN TargS := 0.01; // rychleji zvyšovat emergency vytěžování
        ELSE TargS := 0.001; // pomaleji snižovat emergency vytěžování
      END_IF;

    END_IF;

    // P regulace
    CurDDVoltage := CurDDVoltage + (mer[29].v - TargC) * TargS;

  END_IF;

  // Limituj hodnoty pro regulaci na 0..maximální nastavená hodnota
  CurDDVoltage := MIN(PhaseDDTemperaturePhasePercVyt / 10, CurDDVoltage);
  CurDDVoltage := MAX(0, CurDDVoltage);

  // Přenos hodnoty pracovní proměnné na výstup
  PhaseVoltage := CurDDVoltage;



A věřím, že stále bude co vylepšovat :| .
Nemáte oprávnění prohlížet přiložené soubory.
Poustevna - čistý ostrov bez DS: 5kWp = 10S Jinko 225Wp jih 50°+ 2x 2S3P Jinko 225Wp jih 7°+ větrná elektrárna "čínská plechárna" (= placebo); Axpert VM II 24V 3000W PF1 + Victron Inverter Compact 24/2000 + 2x MakeSkyBlue 60; LiFePo 8x Winston 200Ah + 8x Winston 100 Ah + 8x CATL 120Ah; Teco Foxtrot CP-1015 + C-IT-0504S.
Kozlovna - ostrov ve stadiu zkušebního provozu. 3x Studer XTM 4000-48, 2x VT-80, BSP, XCOMy, 30x mono 310Wp GWL/Sunny (9,3 kWp), 200Ah LiFePo4 Catl + 202Ah Lishen, Daly BMS
Uživatelský avatar
marsal64
 
Příspěvky: 942
Registrován: sob čer 16, 2018 12:45 pm
Bydliště: Velké Popovice

Re: Logika jednostupňového vytěžovače

Příspěvekod kybos » pát pro 04, 2020 3:39 pm

To je hezká hračka. Ale jako člověk pracující posledních 30 let v IT bohužel musím říci, že v každém zařízení, ve kterém je alespoň pár byte software je určitá nenulová pravděpodobnost jeho selhání. Ta je tím větší, čím větší je ta část SW, kterou nemáme pod kontrolou, která je dodávána jako černá skříňka s chráněným obsahem (například operační systém, uživatelské rozhraní, ovladače jednotlivých HW modulů a další SW komponenty). A přesto, že tu svou uživatelsky modifikovatelnou část SW napíšeme jako zcela bezpečnou a spolehlivou, není možné totéž tvrdit o zbytku SW, který bývá často poměrně rozsáhlý a komplikovaný. Proto by HW část takového zařízení měla obsahovat prvky, které zabrání zničení systému při selhání SW. Ve výsledku může nastat stav, kdy takové zabezpečovací obvody budou složitější, než kdyby se dané zařízení řešilo pouze prostřednictvím HW.
Sporadické chyby SW, které mají nízkou pravděpodobnost výskytu (třeba jednou za kvartál) se velmi těžko odstraňují, zejména když není k dispozici zdrojový kód. Bohužel se nyní až příliš často s takovými chybami zařízení setkávám (nedostatečně odladěný SW) a často mají fatální následky.
7,5 kWp poly Renesola JJZ + 3x Tristar MPPT60 (>50 MWh) + 48V VRLA 180 Ah + LiFePO 780 Ah + UPS 8kW (OPTI-Solar SP8000-SW) + 3F nabíječka 4,8kW (DELTA) Start: 2012
Uživatelský avatar
kybos
 
Příspěvky: 2267
Registrován: sob zář 08, 2012 9:40 pm

Re: Logika jednostupňového vytěžovače

Příspěvekod vlkazajac » pát pro 04, 2020 3:55 pm

Pokiaľ regulátory a istenie v systéme fungujú - čoho by som sa bál ? Ak nadstavbový SW ( vyťažovanie ( HW ) považujem už za štandardný prvok systému ) vylepšuje systém, je to fajn. A keď poskytuje také riešenie, kde sa znižuje cyklovanie aj exponovanie nabíjacím a vybíjacím prúdom, tak :yes: :yes: :yes:

Uvedomujem si, akú voľnosť poskytuje lítium oproti olovu. Tak si ho treba aj trocha hýčkať, mršku jednu ....
1060 Wp, LS3024B, 18650 - 198P8S 30,4 V, Multiplus C 800 nonstop / všetky slabé spotrebiče
1920 Wp, 3 x LS3024B, VS2024N, olovo - 330 Ah / 24 V, Carspa 3000 sin deň / silné spotrebiče a ohrev TUV
Uživatelský avatar
vlkazajac
 
Příspěvky: 2962
Registrován: úte čer 11, 2013 9:40 pm

Re: Logika jednostupňového vytěžovače

Příspěvekod dumi » pát pro 04, 2020 6:00 pm

Tyhle automaty Tecomat foxtrot, jsou velmi spolehlive, interni FW dobre odladeny. Mam jich v provozu pres 2500ks a poruchovost je opravdu minimalni.

Navic jdou zapojit i redundantne, cimz se spolehlivost zvysuje.

pokud jsou navic regulatory spravne nastavene na rozumne nabijeci napeti a vytezovace jen drzi nizsi tak.je to velmi bezpecne.

Ja to mam tak ze vytezuju na 3,4V a regulator omezuje na 3,5V.
tzn pri selhani vytezovace (napriklad rozepnuti stykace bojleru) se jen baterky vice nabijou.
Dumiho ostruvek: 4,7kWp, 13,3kWh, 2400W inverter
dumi
 
Příspěvky: 2028
Registrován: stř zář 05, 2018 7:38 pm

Re: Logika jednostupňového vytěžovače

Příspěvekod kybos » pát pro 04, 2020 9:48 pm

vlkazajac píše:Pokiaľ regulátory a istenie v systéme fungujú - čoho by som sa bál

Uvedu třeba hypotetický příklad. Regulační smyčka vytěžovače se někde zacyklí zrovna v okamžiku, kdy běží zátěž naplno. Jištění funguje, nadproud se nevyskytuje. Až se baterie vybijí na spodní přípustné napětí, tak protože jištění je dokonalé, odpojí akumulátor od zbytku systému. Protože i střídač má dokonalé jištění, dojde po snížení napětí na spodní přípustné napětí střídače (které je zákonitě nižší než spodní limit akumulátoru aby střídač odolával zátěžovým špičkám) k odstavení střídače. Protože ale ještě svítí slunce a DC sběrnice střídače zůstala fyzicky připojena (odstavilo se pouze buzení výkonových prvků), nabíjecí regulátory zareagují překmitem na DC sběrnici, která nemá nyní žádnou zátěž a prorazí se nejprve spínací prvky v nabíječi a následně dojde i k překročení přípustného napětí spínacích prvků ve střídači. Jediné, co zůstane zachráněno je odpojený a zcela vybitý akumulátor. Pokud není vypínací mez BMS nastavena dostatečně vysoko a strojník systému dostatečně blízko, pak napřímo připojená BMS dokončí dílo zkázy svou vlastní spotřebou.
7,5 kWp poly Renesola JJZ + 3x Tristar MPPT60 (>50 MWh) + 48V VRLA 180 Ah + LiFePO 780 Ah + UPS 8kW (OPTI-Solar SP8000-SW) + 3F nabíječka 4,8kW (DELTA) Start: 2012
Uživatelský avatar
kybos
 
Příspěvky: 2267
Registrován: sob zář 08, 2012 9:40 pm

Re: Logika jednostupňového vytěžovače

Příspěvekod dumi » pát pro 04, 2020 10:05 pm

Tak tohle mam reseno tak, ze aku se odpojuje az hkuboko pod vypinanim menice. A vytezovaci rele je jeste pripojeno pres stykac, ktery se vypina kdyz se nevytezuje a v pripade napriklad prorazeni SSR umi odpojit vytezovani v pripade nutnosti. Je to hlidano jak prepnuti menice na DS tak napetovou hladinou baterie.

Staci na to obyc externi napetove rele.
Dumiho ostruvek: 4,7kWp, 13,3kWh, 2400W inverter
dumi
 
Příspěvky: 2028
Registrován: stř zář 05, 2018 7:38 pm

Re: Logika jednostupňového vytěžovače

Příspěvekod marsal64 » pát pro 04, 2020 10:14 pm

dumi píše:Tak tohle mam reseno tak, ze aku se odpojuje az hkuboko pod vypinanim menice. A vytezovaci rele je jeste pripojeno pres stykac, ktery se vypina kdyz se nevytezuje a v pripade napriklad prorazeni SSR umi odpojit vytezovani v pripade nutnosti. Je to hlidano jak prepnuti menice na DS tak napetovou hladinou baterie.

Staci na to obyc externi napetove rele.

Ano, BMS aku vypíná pod min. napětím měniče. "Zacyklení" vytěžovače se ale tuším neliší od "běžné" vysoké spotřeby?
Poustevna - čistý ostrov bez DS: 5kWp = 10S Jinko 225Wp jih 50°+ 2x 2S3P Jinko 225Wp jih 7°+ větrná elektrárna "čínská plechárna" (= placebo); Axpert VM II 24V 3000W PF1 + Victron Inverter Compact 24/2000 + 2x MakeSkyBlue 60; LiFePo 8x Winston 200Ah + 8x Winston 100 Ah + 8x CATL 120Ah; Teco Foxtrot CP-1015 + C-IT-0504S.
Kozlovna - ostrov ve stadiu zkušebního provozu. 3x Studer XTM 4000-48, 2x VT-80, BSP, XCOMy, 30x mono 310Wp GWL/Sunny (9,3 kWp), 200Ah LiFePo4 Catl + 202Ah Lishen, Daly BMS
Uživatelský avatar
marsal64
 
Příspěvky: 942
Registrován: sob čer 16, 2018 12:45 pm
Bydliště: Velké Popovice

Re: Logika jednostupňového vytěžovače

Příspěvekod vlkazajac » pát pro 04, 2020 10:44 pm

Kybosi, ak pre mňa v tejto chvíli dosť záhadné zacyklenie v smyčke vyťažovača vedie AŽ k podbitiu batérie, tak je niečo nesprávne v logike vyťažovania. Isteže nerozumiem všetkému, ale tento stav je pre mňa neprípustný.

( A som povinný pridať zlomyselnú poznámku či otázku - aj pwm regulátor reaguje prekmitom na DC zbernici ? Tu som jasný laik. )
1060 Wp, LS3024B, 18650 - 198P8S 30,4 V, Multiplus C 800 nonstop / všetky slabé spotrebiče
1920 Wp, 3 x LS3024B, VS2024N, olovo - 330 Ah / 24 V, Carspa 3000 sin deň / silné spotrebiče a ohrev TUV
Uživatelský avatar
vlkazajac
 
Příspěvky: 2962
Registrován: úte čer 11, 2013 9:40 pm

Re: Logika jednostupňového vytěžovače

Příspěvekod kybos » pát pro 04, 2020 11:17 pm

Nemám až tolik praktických zkušeností s PWM regulátory nabíjení (používám totiž převážně MPPT nabíječe). Předpokládám ale, že pokud PWM regulátory neobsahují tlumivku, neměl by být k překmitu napětí při odlehčení zásadní důvod.

P.S: Ten příklad byl jen hypotetický a předpokládal použití MPPT regulátoru s tlumivkou.
7,5 kWp poly Renesola JJZ + 3x Tristar MPPT60 (>50 MWh) + 48V VRLA 180 Ah + LiFePO 780 Ah + UPS 8kW (OPTI-Solar SP8000-SW) + 3F nabíječka 4,8kW (DELTA) Start: 2012
Uživatelský avatar
kybos
 
Příspěvky: 2267
Registrován: sob zář 08, 2012 9:40 pm

Re: Logika jednostupňového vytěžovače

Příspěvekod Martin P » sob pro 05, 2020 1:42 am

Havarijní odpojení lifepo4 baterie a ochranu reglů jsem pořešil olověnou baterií připojenou jen přes pojistku přímo na DC sběrnici.
Vytěžuji přes měnič a pokud by se spekl stykač bojleru tak se baterie vybijí na 47V a měnič se vypne (a s ním i bojler). Restart měniče je na 51V.
Vloni jsem testoval chování baterií při vybití k spodní úrovni napětí ( do úrovně cca 47,5V a pak jsem hned zahájil nabíjení). Zjistil jsem, že při úrovni cca 51V se pokles napětí baterií zpomalí, zřejmě většinu zátěže přebere olovo a články na lifepo4 se drží celkem srovnané (rozdíl do 0,1V) až do konce testu. Odpojovací napětí článků mám na ochranné jednotce od výrobce na 2,1V a do strojovny chodím na kontrolu každý den, tak by se mi snad lifepo4 nesežralo navzájem.

Plné *batt* přeji a jsem s pozdravem. Martin P.
S-UPS. Čtyři FV moduly ( východ 4x3/240Wp, jih 3x3/300Wp, západ 3x3/235Wp, východ II 3x3/240Wp =9855Wp). Čtyři regly PCM 60X, tři baterie (první Pb vrla 200Ah, druhá Lifepo 4, nominál 280Ah, třetí Lifepo4, nominál 200Ah). Měnič Victron multiplus 5000VA, vytěžování do bojleru.
Martin P
 
Příspěvky: 377
Registrován: ned úno 25, 2018 5:04 pm
Bydliště: Havlíčkův Brod

Re: Logika jednostupňového vytěžovače

Příspěvekod marsal64 » pon úno 22, 2021 4:23 pm

Ještě jednu úpravu přinesl život - zjistil jsem, že (a) v mém případě SOC neměřím příliš spolehlivě a (b) starší baterky začínají být měkké - rychle nastupují k cílovému napětí a tím do floatu od regulátorů. Takže původní verzi http://forum.mypower.cz/viewtopic.php?f ... ho#p138331
jsem upravil tak, že hranice mezi standardním a "emergency" vytěžováním není určena pomocí SOC, ale jednoduše podle napětí baterie. Řízení vytěžování pomocí proudu (nikoli podle napětí) zůstává.
Nemáte oprávnění prohlížet přiložené soubory.
Poustevna - čistý ostrov bez DS: 5kWp = 10S Jinko 225Wp jih 50°+ 2x 2S3P Jinko 225Wp jih 7°+ větrná elektrárna "čínská plechárna" (= placebo); Axpert VM II 24V 3000W PF1 + Victron Inverter Compact 24/2000 + 2x MakeSkyBlue 60; LiFePo 8x Winston 200Ah + 8x Winston 100 Ah + 8x CATL 120Ah; Teco Foxtrot CP-1015 + C-IT-0504S.
Kozlovna - ostrov ve stadiu zkušebního provozu. 3x Studer XTM 4000-48, 2x VT-80, BSP, XCOMy, 30x mono 310Wp GWL/Sunny (9,3 kWp), 200Ah LiFePo4 Catl + 202Ah Lishen, Daly BMS
Uživatelský avatar
marsal64
 
Příspěvky: 942
Registrován: sob čer 16, 2018 12:45 pm
Bydliště: Velké Popovice

Re: Logika jednostupňového vytěžovače

Příspěvekod JiTr » úte úno 23, 2021 7:45 pm

> marsal64: Mel bych dotaz k regulacnimu cyklu tveho vytezovace. Jak dlouho cyklus v realu trva = jak rychle je schopen vytezovac reagovat -menit vystupni napeti pro SSR?
JiTr
 
Příspěvky: 75
Registrován: ned kvě 20, 2018 4:00 pm

Re: Logika jednostupňového vytěžovače

Příspěvekod marsal64 » pát úno 26, 2021 10:42 am

JiTr píše:> marsal64: Mel bych dotaz k regulacnimu cyklu tveho vytezovace. Jak dlouho cyklus v realu trva = jak rychle je schopen vytezovac reagovat -menit vystupni napeti pro SSR?


U mne cyklus PLC trvá obvykle mezi 10 - 20 ms, semtam (1x za hodinu např. při agregacích atp.) i výrazněji déle.

Ale to není úplně kritické, protože časové konstanty určující setrvačnost je dobré příliš nezkracovat a poladit podle mé zkušenosti spíše experimentálně (setrvačnost systému - můj původní Axpert nebo stávající Victron se mi v tom mimochodem jevily víceméně stejně). Hlavním cílem je zabránit "makrocyklování" á la rekuperace v automobilech, kdy se střídavě za sebou relativně rychle baterie nabíjí a vybíjí, což nechceme (jen zopakuji, že proto jsem před časem přešel od regulace podle rozdílu napětí k regulaci podle proudu).

Naposledy jsem mimochodem změnu časových parametrů dělal po změně hlídání hranice mezi "emergency" a standardním vytěžováním podle napětí, nyní to u mne vypadá takto:

Kód: Vybrat vše
      IF mer[29].v > TargC
        THEN TargS := 0.01; // proud je větší než cílový - zvyšovat standardní vytěžování
        ELSE TargS := 0.005; // proud je menší než cílový - snižovat standardní vytěžování
      END_IF;


Časové konstanty v původní variantě v prvním příspěvku vlákna (bylo tam rychlejší ubírání než přidávání vytěžovací intenzity) nevyhovovaly, protože to vedlo k "plíživému" stavu, kdy se nevyužíval okamžitý výkon, který byl k dispozici.

Při nastavení hranice mezi standardním a emergency vytěžováním podle napětí baterie by se zdálo, že je vhodné uplatnění hystereze (při zahájení vytěžování může snadno poklesnout napětí baterie pod nastavenou hranici), ale v praxi chybějící hystereze vlastně ničemu nevadí - vytěžování sice v mezích nastavených časových parametrů kolem hranice napěťové hranice pro rozhodování může chodit "nahoru a dolů", ale vždy se ureguluje nikoli pod nastavené proudy, takže "makrocyklování" nenastane.

Jinak se mi už zdá, že s touto poslední úpravou to vyhovuje - než přijdu na něco nového ;-).
Poustevna - čistý ostrov bez DS: 5kWp = 10S Jinko 225Wp jih 50°+ 2x 2S3P Jinko 225Wp jih 7°+ větrná elektrárna "čínská plechárna" (= placebo); Axpert VM II 24V 3000W PF1 + Victron Inverter Compact 24/2000 + 2x MakeSkyBlue 60; LiFePo 8x Winston 200Ah + 8x Winston 100 Ah + 8x CATL 120Ah; Teco Foxtrot CP-1015 + C-IT-0504S.
Kozlovna - ostrov ve stadiu zkušebního provozu. 3x Studer XTM 4000-48, 2x VT-80, BSP, XCOMy, 30x mono 310Wp GWL/Sunny (9,3 kWp), 200Ah LiFePo4 Catl + 202Ah Lishen, Daly BMS
Uživatelský avatar
marsal64
 
Příspěvky: 942
Registrován: sob čer 16, 2018 12:45 pm
Bydliště: Velké Popovice

Re: Logika jednostupňového vytěžovače

Příspěvekod JiTr » ned úno 28, 2021 10:26 pm

> marsal64: Diky. Ja jsem z toho pochopil,ze s periodou cca 20ms ma tvuj algoritmus moznost menit prikon vytezovace a to tak, ze jsi se snazil casovymi konstantami (klouzavy prumer z namerenych hodnot produ za 1s + dalsi konstanty, ktere ovlivnuji strmost vytezovani) docilit toho, aby byla baterie pri dostatku energie z panelu rozumne dobijena a nedochazelo k castym kratko-/dlouho-dobym zmenam toku proudu z / do baterie dle odberu domu a vytezovani ...
Zkusim to taky tak ... ridit dle produ do baterie, SOC a pak vyjit z max. napeti clanku baterie - pokud zacne balancovani, zacnu vytezovat razantneji, aby to balancer zvladl ... ale vse ukaze realita a chovani clanku Lifepo4 baterie ...
JiTr
 
Příspěvky: 75
Registrován: ned kvě 20, 2018 4:00 pm


Zpět na Automatizace, měření, statistiky

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků

Reputation System ©'