<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    Napřed pochvala: líbí se mi, jak elektivně máte udělanou tu
    spolupráci panelů s baterkami a měničem.<br>
    Připomíná mi to dřívější konstrukce z analogových dob, kdy
    konstruktér použil jeden tranzistor a hrst odporů, a promyšleným
    návrhem dosáhl funkcionality, na kterou se dneska použije procesor s
    milionem tranzistorů a ještě kýbl operačních zesilovačů.<br>
    Dobré, klobouk dolů.<br>
    <br>
    K řešení té distribuované BMS.<br>
    Je to zatím jen moje představa, nemám to hotové a dokonce to ani
    nemám ani realizačně navržené.<br>
    Mám jen představu a touhu. Takže zatím je ideální čas na změny.<br>
    <br>
    - Na každém článku baterie bude nasazený jeden modul. Na jednom pólu
    (-) bude přitažený matkou, plusový pól krátkým káblíkem cca 1.5 mm2.<br>
      Z tohoto článku se bude elektronika současně napájet. Článek má
    2.0-3.65V (v praxi 2.5-3.45V), takže to 3.3V procesor přes diodu dá
    i bez stabilizátoru.<br>
    <br>
    - Ten modul NEMÁ možnost nijak článek odpojit. Umí jen reportovat
    nadřízenému orgánu požadavek na odpojení baterie kvůli hrozícímu
    podbití.<br>
      Pokud velení z jakéhokoli důvodu nezareaguje (porucha) a napětí
    bude dále klesat, modul přejde do deep-sleepu, aby situaci
    nezhoršoval, a tím přestane odpovídat.<br>
    <br>
    - Naopak horní mez při nabíjení si modul bude umět ošéfovat sám.
    Bude mít FET a výkonový odpor (v praxi tam chci dát 2 FETy a mít tak
    možnost spínat 1, 2 nebo 3A), který připojí paralelně k článku.<br>
      Není to sice žádné efektivní přelívání energie mezi články ale jen
    hloupé pálení. Ale protože tohle nastane jen při nabíjení z panelů
    (kdy stejně nevím co s elektrikou), tak v tom asi není problém.<br>
      Navíc by to mělo trvat jen chvíli, než se srovnají všechny články,
    protože pak velení odpojí nabíjení povelem měniči.<br>
    <br>
    - Modul samozřejmě bude neustále měřit a periodicky hlásit velení
    napětí článku. Jednotlivé moduly budou zřetězeny do jednosměrného
    kruhu.<br>
      Velení je bude cyklicky vyzývat k hlášení, předpokládám, že se
    dostanu na periodu cca 1-2 sekundy, což je naprosto dostatečné.<br>
      Protože velení je kriticky důležité, tak samozřejmě bude mít
    Watch-dog jak interní, tak možná i externí.<br>
      Pokud nějaký modul i po opakované výzvě neodpoví, měnič dostane
    pokyn ji nepoužívat a baterie se odpojí.<br>
    <br>
    - Výkonové havarijní odpojení baterky bude umět udělat jen velení
    pomocí výkonového spínače. Pravděpodobně IGBT, možná přemostěný
    stykačem.<br>
      Další výkonový spínač bude umět baterku krátkodobě připnout přes
    výkonový odpor pro funkci slow-start při připojení baterky k měniči.<br>
    <br>
    K použitým součástkám:<br>
    <br>
    - Původně jsem zvažoval nasadit tam tu novinku WCH003 s jádrem RISC.
    Ale A/D převodník tam asi není nic moc, tak jsem to nakonec zavrhl.<br>
      Zvažoval jsem laciný STM32C011 v TSSOP20, ale nakonec tam dám asi
    STM32G030. Má prý podporu pro oversampling ADC až na úroveň 16bit. A
    přesnost měření je tady výhoda.<br>
    <br>
    - Pálit tu přebytečnou energii budu asi FETem na výkonových
    odporech.<br>
      Je ale zajímavé, že to GWL tam použilo nějaký výkonový IGBT, což
    mi při napětí 3.5V moc nedává smysl.<br>
      Že by ho řídili nějak analogově a použili jako řízený "obtok", a
    aktivně využili jeho vysokého saturačního napětí?<br>
      _Nápady vítány_.<br>
    <br>
    PL<br>
    <br>
    *********************<br>
    <br>
    <div class="moz-cite-prefix">Dne 15.4.2024 v 7:45 Martin Záruba
      napsal(a):<br>
    </div>
    <blockquote type="cite"
      cite="mid:f7d00ff3-027f-4d14-ad1c-67f13bd0c183@volny.cz">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <p><font face="Arial">Moc si nedovedu představit, jak ten modul
          může fungovat. </font></p>
      <p><font face="Arial">Může odpojit článek při podpětí nebo
          přepětí. Jenže pak musí být v sérii s článkem spínací prvek. A
          pokud je vnitřní odpor článku okolo 0.5mO, nedovedu si moc
          představit prvek, který tuto vlastnost výrazně nezhorší. Já se
          přesvědčil, že i mastnota na propojovacím můstku mezi články
          zhorší vnitřní odpor.</font></p>
      <p><font face="Arial">Nějak nechápu, jak to může balancovat. Jak
          bude předávat energii z jednoho článku do druhého?</font></p>
      <p><font face="Arial"><br>
        </font></p>
      <p><font face="Arial">Máte pravdu, že já nepotřebuji řešit
          nabíjení. Nemám to ještě dodělané, ale bude to fungovat tak,
          že pokud se nabití nějakého článku začne blížit řekněme 85%,
          začne se pomocí pwm připínat k baterii (a tedy i k panelům)
          topné těleso v bojleru. Tim poklesne nabíjecí proud až na
          hodnotu (v mém případě 1A), kterou ubalancuje BMS. Tím do toho
          nabitého článku už nepoteče nic a nabíjejí se jen ostatní.
          Pokud je bojler nahřátý na maximální teplotu, tento
          mechanismus se vypne (jednak logikou a navíc tam bude 100A DC
          stykač v sérii s tělesem, který rozepne kapalinový termostat
          jako havarijní prvek). Tím dojde k tomu, že BMS odpojí
          baterii. Napětí na panelech stoupne na cca 92V. Je to vidět na
        </font><a
href="http://www.ekovy.eu/ctirj/index.html?urljednotka=demo7&ovladani=2"
          moz-do-not-send="true">Atyp - 3 tepelná čerpadla, bazén,
          chlazení (ekovy.eu)</a> 12.4.2024 14:52 až 18:32. Střídačům to
        nevadí a panely ztratí výkon, protože se odlehčí. Pokud zatížení
        odběrem střídačů stoupne a napětí poklesne pod napětí baterie,
        BMS otevře spínací prvek a co nedají panely jde z baterie. Tento
        stav je vidět třeba v 12.4.2024 17:28:37. Napětí pokleslo na
        81.7V a níž to nepustila baterie. No a při vybití baterie ji BMS
        opět odpojí a napětí poklesne natolik, že střídače vypnou. Tento
        stav je vidět 14.4.2024 04:23:51. Jak se začne rozednívat v
        05:23, začne napětí na panelech stoupat a nabíjet vstupní
        kondenzátory ve střídačích. Zde nastal zajímavý stav: V 05:52:17
        balancer přesunul do nejslabšího článku z ostatních tolik
        energie, že ochrana na podpětí přestala být aktivní a napětí na
        výstupu baterie naskočilo na 75V. Zřejmě byla ještě skoro tma,
        protože teprve v 6:03:39 jeden střídač zapnul, ale výkon panelů
        byl tak malinký, že sotva utáhl režii střídače a proto napětí
        začalo klesat až k 72.6V, jenže BMS mezi tím články natolik
        vyrovnal, že nedošlo k vypnutí.</p>
      <p>To řešení komunikace s MQTT asi bude možné, nemám s tím žádné
        zkušenosti.</p>
      <p>Ještě k BMS a mým pokusům jej udělat: Došel jsem k závěru, že
        správně BMS umí předvídat, který článek se nabije nebo vybije
        jako první a dělá proto během činnosti kroky, aby se tento stav
        oddál. To moje BMS neumí. Ale druhý úkol je snižovat vnitřní
        odpor baterie, především v mezních stavech minimálního a
        maximálního napětí. No a jak to může udělat? No jedině tak, že
        "něco" se připojuje PARALELNĚ k článkům a ne do série. To něco
        může být asi jen cívka v sérii s mosfetem, který je ovládán
        logikou BMS. Tedy vlastně trnsformátor s tolika vinutími, kolik
        je článků. Při podvybití sepnou mosfety všech (nebo jen
        některých) článků, které ještě mají dost sil, vytvoří se
        magnetické pole v jádře a pak se přelije energi do nejslabšího.
        No a na horním konci nabíjení se vybíjí jen ten jeden, co má
        maximální napětí do cívky a energie se předá do ostatních. U mě
        to ztroskotalo na přesném měření napětí na článcích, které
        opravdu musí být přesné a stabilní (rozlišení 1mV) a také na
        nedostatku času, když jsem zjistil, že JK-BMS v podstatě
        vyhovuje.<br>
      </p>
      <pre class="moz-signature" cols="72">Martin Záruba</pre>
      <div class="moz-cite-prefix">Dne 14.4.2024 v 15:15 Petr Labaj
        napsal(a):<br>
      </div>
      <blockquote type="cite"
        cite="mid:b594f365-09b9-a011-800f-ba0399e0f114@volny.cz">
        <meta http-equiv="Content-Type" content="text/html;
          charset=UTF-8">
        Já jsem si představoval distribuovanou BMS, něco ve smyslu jako
        je to tady:<br>
        <a class="moz-txt-link-freetext"
href="https://shop.gwl.eu/index.php?force_sid=muni4lfgqquv3ojrd26vbel1rp&cl=details_disc&anid=7512"
          moz-do-not-send="true">https://shop.gwl.eu/index.php?force_sid=muni4lfgqquv3ojrd26vbel1rp&cl=details_disc&anid=7512</a><br>
        Nemají tam bohužel nějaký přehledný obrázek. Funguje to tak, že
        na každém článku je tento modul, který měří a balancuje tento
        konkrétní článek.<br>
        Navzájem jsou spojené přes optronem oddělenou jednosměrnou
        sběrnici.<br>
        Na začátku a konci té sběrnice jsou silové prvky a datové
        připojení k měniči/nabíječi.<br>
        <br>
        Něco podobného dělá i firma Batrium.<br>
        Mají to obě postavené s ATtiny, já bych to chtěl postavit s
        něčím trochu víc současným, konkrétně se STM32C nebo STM32G.<br>
        <br>
        A protože jsem strašpytel, tak přes to ještě překrýt druhou
        (tentokrát už levnou komerční) BMS, které ale bude mít
        nezapojené silové části.<br>
        Ty silové části na jednotlivých BMS by společně budily výstup,
        který by zatáhl za Total Stop.<br>
        Prostě jako systém poslední záchrany, kdyby zklamala moje
        distribuovaná BMS, tak kterákoli z těch dodatečných by dokázala
        odstavit panely (v případě nebezpečí přebití) nebo měnič (v
        případě nebezpečí podvybití).<br>
        <br>
        K tomu Vašemu řešení: Vy asi nepotřebujete komunikaci s měničem
        pro řízení nabíjení, že? Protože máte nabíjení udělané jinak,
        přímým připojením k panelům.<br>
        Já bych to ale chtěl a potřeboval připojit dálkově k měniči, aby
        řídil nabíjení.<br>
        <br>
        Mně se líbil nápad protáhnout komunikaci přes MQTT server.
        Baterky by reportovaly svůj stav na ten MQTT server, nabíječka
        (nebo u mě měnič kombinovaný s nabíječkou) by si bral data z
        něho.<br>
        <br>
        PL<br>
        <br>
        *****************<br>
        <br>
        <div class="moz-cite-prefix">Dne 14.4.2024 v 13:27 Martin Záruba
          napsal(a):<br>
        </div>
        <blockquote type="cite"
          cite="mid:9bfbf1e3-2447-45fc-bb22-d8cba7752451@volny.cz">
          <meta http-equiv="Content-Type" content="text/html;
            charset=UTF-8">
          <p><font face="Arial">Pokud jde o nové články, souhlasím s
              rozhodnutím počkat. To by se týkalo i eventuelního
              elektromobilu, když je v létě proud z FVE zadarmo.</font></p>
          <p><font face="Arial">Já se taky snažil udělat BMS, protože mi
              jich prošlo rukama několik a všechny stály za ....
              Poslední JKBMS se mi zdá docela slušná, umí až 24 článků,
              takže kdybyste použil 3 s tím, že dva články se vždy
              překrývají, je to těch 3x22. Sice to nebude balancovat
              přes celou baterii, ale ono to asi nebude zase až tak
              kritické.</font></p>
          <p><font face="Arial">U té JKBMS byl zásadní problém s
              komunikací. Ona má UART (nelogicky označený RS485), Použil
              jsem proto izolační převodník, který mi to současně
              převádí z 3,3V na 5V logiku. Výrobce samozřejmě neuvádí
              popis komunikace, naivně jsem si myslel, že je to
              modbus-rtu, ale není. Nakonec jsem našel hrůzně napsaný
              program ale s popisem komunikace, který funguje. Většinu
              nesmyslů jsem z něj odstranil a předělávám ho do rozumné
              podoby. Zatím data odesílá na virtuální sériový port USB,
              ale chci udělat komunikaci přes ethernet. Připojoval by se
              k našemu serveru, takže by si server myslel, že je to
              řídící jednotka tepelného čerpadla. Pokud byste chtěl,
              udělám Vám zdarma přístup. Samozřejmě šlo by i udělat
              jednoduchý webový server, ale myslím,že to není rozumné,
              protože buď to bude chodit jen v lokální síti a nebo
              budete potřebovat veřejnou IP, ať už pro přímý přístup
              nebo pro WireGuard. Takto se jen připojíte k IP našeho
              serveru odkuďkoli a data si také můžete prohlížet
              odkuďkoli a na čemkoli, co má webový prohlížeč.<br>
            </font></p>
          <pre class="moz-signature" cols="72">Martin Záruba</pre>
          <div class="moz-cite-prefix">Dne 14.4.2024 v 12:45 Petr Labaj
            napsal(a):<br>
          </div>
          <blockquote type="cite"
            cite="mid:97cfde50-9c3d-23a6-ebb3-0020209f358b@volny.cz">
            <meta http-equiv="Content-Type" content="text/html;
              charset=UTF-8">
            Výrobci uvádějí vnitřní odpor jako jeden ze základních
            parametrů v datasheetu.<br>
            Třeba 105Ah LFP články EVE (které si zrovna asi plánuju
            koupit) uvádí <0.5mR.<br>
            A píšou to dokonce pro dynamický odběr, jako AC Impedance
            resistance (1KHz).<br>
            Takže ta Vaše hodnota asi celkem sedí.<br>
            <br>
            Odbočka bokem: plánuju si postavit vysokonapěťovou baterku,
            něco kolem 200V.<br>
            Takže buď 64s (4 moduly po 16 článcích) nebo 72s (3 moduly
            po 22 článcích).<br>
            Kdyby tu byl někdo, kdo by se chtěl případně přidat (fyzicky
            či intelektuálně),<br>
            tak je vítán.<br>
            Chci vyrobit distribuovanou BMS vlastní konstrukce s malým
            STM32 na každém<br>
            článku se společným řízením a silovým odpínáním.<br>
            <br>
            Trochu duševní problém mám s tím, že ceny baterek jdou dost
            dolů. Navíc<br>
            výrobci (teď nově CATL) oznamují různé celkem průlomové
            výrobky, které<br>
            snad jdou už skutečně do výroby. Tak mě to odrazuje od
            nějakého většího<br>
            nákupu (třeba 305Ah články místo 105Ah), který by by šel
            jinak cenově líp.<br>
            <br>
            PL<br>
            <br>
            ******************<br>
            <br>
            <div class="moz-cite-prefix">Dne 14.4.2024 v 8:12 Martin
              Záruba napsal(a):<br>
            </div>
            <blockquote type="cite"
              cite="mid:65c148a2-3252-4257-b714-ebb25758a775@volny.cz">
              <meta http-equiv="Content-Type" content="text/html;
                charset=UTF-8">
              <p><font face="Arial">Zkusil jsem do programu pro čtení z
                  BMS udělat výpočet vnitřního odporu podle dU/dI.
                  Samozřejmě při obvyklých proudech FVE, což u mě u
                  článku LiFePo 205Ah je cca -70A až +60A. Všechny (24
                  kusů) články vykazují téměř stejný  vnitřní odpor
                  0.45mO. </font></p>
              <p><font face="Arial">Odpovídá to hodnotám, které jste
                  naměřil Vy? </font></p>
              <p><font face="Arial">Má na velikost vnitřního odporu vliv
                  odebíraný/dodávaný proud?</font></p>
              <p><font face="Arial">Zjistil jsem že docela významné bylo
                  počlivé odmaštění propojovacích pásků i svorek článků
                  před sestavením. Jsou i jiné kroky, které je rozumné
                  udělat?<br>
                </font></p>
              <pre class="moz-signature" cols="72">Martin Záruba</pre>
              <br>
            </blockquote>
          </blockquote>
        </blockquote>
      </blockquote>
    </blockquote>
    <br>
  </body>
</html>