Fórum | MyPower.CZ | Obnovitelné zdroje energie - energetická soběstačnost | Poslední návštěva: pát zář 20, 2019 8:55 am


Arduino + SD logger + web browser

Automatizace, řízení, měření, logování a programování s využitím platformy Arduino.
Předchozí

Re: Arduino + SD logger + web browser

Příspěvekod kodl69 » sob kvě 09, 2015 9:11 am

nejlepší je měřit přímo proud do baterie + je +soc a - je -soc. Problém je měření malých proudů po velkou dobu, takže 120mA co mi udává ACS758 někdy + a někdy - podle počasí, to zcela zlikviduje vypočtenou kapacitu za pár dní. Další problém je nastavení kapacity aku a reset pro 0 a 100procent. Podle čeho to určit? Midnite to má při přechodu z bulk do float - ale když napětí zvýším o pár desetin voltu, nacpu do baterek dalších x ah... Naopak při vybíjení už několikrát ukazoval 0 Ah , baterky držely napětí a měřák šel 15Ah do mínusu, než došla šťáva.. (potom trvalo, než se dostal zpátky na 0). Tohle řešila VATA, zkus jí napsat sz, třeba to pustí, a nebude to tutlat jako knowhow....
ostrov 4600Wp neustále ve stádiu zrodu: 6x noark CHSM6610P250, 6x250Wp z I4wifi, 6xTratek 275Wp, 4x auria 120Wp, midnite classic 150 lite+whizbang jr., 16S a různě P cca 300Ah Winston, Powerjack 8kW (reálně 6kW po úpravě). 48V DC rozvody a spotřebiče.
kodl69
 
Příspěvky: 3858
Registrován: sob črc 19, 2014 7:56 pm

Re: Arduino + SD logger + web browser

Příspěvekod vata » ned kvě 10, 2015 7:58 pm

Já nic netutlám :) Ten princip výpočtu SOC je úplně jednoduchý, mám jej i v dokumentaci k VALCu. Základ je měřit veškerý provoz baterie a napsat si prom. akumulátoru ah. A pak je nutné implementovat detekci plného nabití, což já osobně přenechala regulátoru, resp. osbluze - můj program jednoduše číhá na pokles na float po absorpci, komplikované je to o absorpční čas. A dole se čeká na podkročení nějakého kritického napětí, a pak se vyhlásí 0 SOC. U lithia to funguje uspokojivě.
Problém kumulace nepřesností při měření malých proudů v delším časovém úseku, kdy nedošlo k události plného nabití / vybití, to není problém SW ale kalibrace. Dalo by se to zušlechtit nějakou periodickou rekalibrací SOC podle napětí ze statistických dat SOC/U, ale podle už dvouleté zkušenosti si myslím, že obsluha to zvládne jednodušeji a přesněji.
Další potíž při výpočtu SOC je znalost reálné kapacity baterie. Co provozuju VALC, ještě jsem nevybila, takže jediné co umím říct, že kapacita je víc než o 10% vyšší než ta papírová. U lithia to tedy není problém - stačí se odpíchnout od té nominální a výsledné chování bude pesimističtější než realita, což je dobře. U olova to může být jinak, tam asi neuškodí dělat občasně kapacitní zkoušky a přízpůsobit tomu i SW, aby nechal baterky úplně vybít.
Celý smysl výpočtu SOC spočívá v omezování hloubky cyklů a ve včasném odpojení baterie tak, aby v ní zůstala železná rezerva pro případ výpadku DS, a tohle mi můj SW splňuje na jedničku a kupodivu k tomu není potřeba mít SOC změřené úplně přesně.
Inteligentní ostrov - www.vati.cz
Uživatelský avatar
vata
 
Příspěvky: 1402
Registrován: pon zář 12, 2011 10:32 am

Re: Arduino + SD logger + web browser

Příspěvekod rottenkiwi » pát kvě 22, 2015 9:00 pm

Viete mi niekto poradit ako vygenerovat nasledujuci graf pomocou Arduina
a nahrat ho na SD kartu, aby ho mohol potom server na Arduine zobrazit ?
Nemáte oprávnění prohlížet přiložené soubory.
Dělej vše, jak nejlépe dovedeš. Ale ne lépe. 4. dohoda.
Si anode Spectrum BMS SEI formation Float Ochrana High SOC deg. MPPT Post Bud Bindi 1993
Uživatelský avatar
rottenkiwi
 
Příspěvky: 2798
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK

Re: Arduino + SD logger + web browser

Příspěvekod rottenkiwi » sob kvě 23, 2015 10:07 pm

Tak uz sa mi to podarilo, generuje mi to aj mesacny aj hodinovy graf.
Hodinovy takto:
Kód: Vybrat vše
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Temp demo</title>
  <h1>Arduino Page 2</h1>

<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
  google.load("visualization", "1", {packages:["line"]});
  google.setOnLoadCallback(drawChart);

 function drawChart() {
    var data = google.visualization.arrayToDataTable([
      ['Minute', 'U_bat','A_in'],
   ['0',0.00,0.00],
-------- sem zadat celu tabulku, napr. vygenerovat ----------
]);

     var options = {
          width: 3600,
          chart: {
            title: 'Battery Voltage',
            subtitle: 'U_Batt (V) + A_in'
          },
          series: {
            0: { axis: 'volts' }, // Bind series 0 to an axis named 'distance'.
            1: { axis: 'amperes' } // Bind series 1 to an axis named 'brightness'.
          },
          axes: {
            y: {
              distance: {label: 'V'}, // Left y-axis.
              brightness: {side: 'right', label: 'A'} // Right y-axis.
            }
          }
        };
    var chart = new google.charts.Line(document.getElementById('chart_div'));

    chart.draw(data, options);
  }
</script>
</head>
<body>
<div id="chart_div" style="width: 3600px; height: 900px;"></div>
<p>Go back to <a href="index.htm">main page</a>.</p>
</body>
</html>


A mesačný takto:
Kód: Vybrat vše
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Temp demo</title>
  <h1>Arduino Page 2</h1>

<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
  google.load("visualization", "1", {packages:["corechart"]});
  google.setOnLoadCallback(drawChart);

 function drawChart() {
    var data = google.visualization.arrayToDataTable([
      ['Date', 'PV','Dist. Net'],
-------- sem zadat celu tabulku, napr. vygenerovat ----------
    ]);

    var options = {
      title: 'PV DC Gen. + DN usage (kWh)',
     legend: { position: 'bottom' },
   bar: { groupWidth: '65%' },
   isStacked: true
    };
    var chart = new google.visualization.BarChart(document.getElementById('chart_div'));
    chart.draw(data, options);
  }
</script>
</head>
<body>
<div id="chart_div" style="width: 1000px; height: 2700px;"></div>
<p>Go back to <a href="index.htm">main page</a>.</p>
</body>
</html>


A ešte som sa 2 hod. trápil, lebo mi Arduino nechcelo načítať súbory
a potom mi zaplo, že tie subory mozu mat max. 8 znakov meno + 3 znaky priponu
inak to nenacita subor.
napr. datalog_p.txt alebo page2_begin.htm to uplne odignoruje a neotvori ho.
Dělej vše, jak nejlépe dovedeš. Ale ne lépe. 4. dohoda.
Si anode Spectrum BMS SEI formation Float Ochrana High SOC deg. MPPT Post Bud Bindi 1993
Uživatelský avatar
rottenkiwi
 
Příspěvky: 2798
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK

Re: Arduino + SD logger + web browser

Příspěvekod rottenkiwi » pát črc 03, 2015 12:04 pm

Doplnil som do svojho merania stavu FVE, meranie SOC.
Su to dva riadky kodu pre Arduino.

Ale neviem prepocitať SOC v Ah na kWh,
pretoze, baterka sa vybíja ako je na obr., ale to je jedna z desiatich a ostatne sa vybijaju inou krivkou.

Tiez ako tam zapocitat nameranu kapacitu z kapacitnej skusky na tych grafoch, aka
je kapacita tychto baterii ?

Ako zahrnúť do SOC starnutie batérií, pri roznych teplotách, úrovniach a dĺžke absorbcie
pri danom prúde a equalizáciu ?
Nemáte oprávnění prohlížet přiložené soubory.
Dělej vše, jak nejlépe dovedeš. Ale ne lépe. 4. dohoda.
Si anode Spectrum BMS SEI formation Float Ochrana High SOC deg. MPPT Post Bud Bindi 1993
Uživatelský avatar
rottenkiwi
 
Příspěvky: 2798
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK

Předchozí

Zpět na Arduino

Kdo je online

Uživatelé procházející toto fórum: CC [Bot] a 0 návštevníků

Reputation System ©'