NEWS
Ladezyklen Stromspeicher berechnen, wie?
-
-
@paul53 wahnsinn, du kannst doch nur mehr von den scripten träumen, das probier ich morgen mal. wenn man das so anschaut ist vieles logisch, aber da erst mal draufkommen wie man sowas umsetzt das ist schon cool. danke dir
Sollten weitere Fragen sein, hoffe ich darf mich wieder melden bei dir.
-
@paul53 sagte in Ladezyklen Stromspeicher berechnen, wie?:
Wenn die Ladungen insgesamt eine Änderung von +100 % erreichen, ist ein Ladezyklus erreicht ?
das ist die eine Definition, hilft aber nicht bei der Abschätzung der Lebensdauer.
Dabei ist es wichtig wie weit entladen wurde (je nach Akkutyp nicht unter 50% (Blei), 70%(LiIon), 80-90% (LiFeYPO4))
wie schnell geladen wurde und wie hoch geladen wurde.Einmal auf 20% runter und auf 100% hoch ist vielfach schädlicher, als 2x auf 50% und auf 90% hoch
-
@paul53 leider komme ich nicht weiter damit muss ich hier Variablen erstellen und 2 datenpunkte einmal ladezyklen und 1 mal Zyklus Stand soweit ist es mir klar. Aber weiter komme ich nicht. Das ist mir doch zu hoch. Es klingt logisch mit der Erhöhung aber welche datenpunkte ich unter object ID eintragen muss ist mir noch nicht so klar. Ich teste weiter.
-
@babl sagte:
2 datenpunkte einmal ladezyklen und 1 mal Zyklus Stand soweit ist es mir klar...welche datenpunkte ich unter object ID eintragen muss ist mir noch nicht so klar.
Das geht doch aus den Variablennamen bzw. Kommentaren hervor.
Was der Unterschied zwischen "relativeSoc" und "userSoc" ist, musst Du wissen. -
@paul53 ok ich werd morgen nochmal in ruhe testen, danke dir
-
-
-
@paul53 danke dir es funktioniert , so ist es mir um vieles klarer, noch eine frage für das entladen kann ich ja dann das gleiche script hernehmen und nur die datenpunkte ändern, oder kann ich das eventuell noch hinzu machen daß das ein script ist?
-
@babl sagte:
für das entladen kann ich ja dann das gleiche script hernehmen und nur die datenpunkte ändern
Wozu das Entladen betrachten ? Das Laden um 100 % erfasst den gesamten Vollzyklus, denn wenn nicht geladen wird, wird entladen (im Grenzfall mit 0 A).
-
@paul53 ok da hast du eigentlich auch wieder recht das entladen spielt ja bei dem ladezyklus keine rolle.
-
@paul53 sagte in Ladezyklen Stromspeicher berechnen, wie?:
Wozu das Entladen betrachten ?
@babl sagte in Ladezyklen Stromspeicher berechnen, wie?:
Die dabei erreichte Entladungstiefe ist entscheidend für die Berechnung.
Ich habe zwar keine Ahnung mit welcher Formel die Entladetiefe in die Lebensdauer des Akkus eingeht, aber diese ist entscheidend.
Bei meinen Yttrium-Batterien im Wohnmobil heisst es z.B. ausschnittsweise:
Lebensdauer in Ladungszyklen
> 3.000 x bei 80% DOD
> 5.000 x bei 70% DODda ist eine deutlich kürzere Lebensdauer bei tieferer Entladung
-
@Homoran ja, da gebe ich dir recht, daß die entladetiefe schon auch eine rolle spielt, aber ich will das nur vergleichen, denn die ladezyklen stimmen vom hersteller sowieso nicht. Im August hatte ich eine maximale Entladung der Batterie von 50% über Nacht, sie wurde dann am nächsten Tag wieder zu 100% aufgeladen, aktuell komme ich auf ca. 40% und hier werden teilweise bis zu 2 ladezyklen dann am tag verbraucht um bis auf 100% zu kommen, obwohl nur 60% Energie verbraucht wurden.
Andere Frage was denkt ihr spielen die Erhaltungsladungen hierzu auch eine Rolle? Denn ca. jede Stunde muß die Batterie 1% nachladen.
-
@babl sagte in Ladezyklen Stromspeicher berechnen, wie?:
denn die ladezyklen stimmen vom hersteller sowieso nicht.
wenn der diese gewichteten Ladezyklen rechnet um bei unterschiedlicher Entladetiefe auf die gleiche Anzahl zu kommen, ergäbe das schon einen Sinn.
Also nicht 3000/5000 Zyklen sondern 5000 gewichtete Zyklen und tiefer als 50% entladene Zyklen zählen vielleicht das anderthalbfache.
Was hast du denn für Batterien? Blei sollte NIE unter 50% abfallen
-
@Homoran Sonnenbatterie 10 mit Lithium-Eisen-Phosphat
-
@babl für LiFePO4 Zellen habe ich gerade das gefunden:
> 2.000 bei 80% DOD, > 4.000 bei 70% DOD Arbeitstemperatur -20°C - + 55°C
Da schlägt die Entladetiefe (DOD [Depth of Discharge]) noch schlimmer zu.
eine optimale Lebensdauer, die dann deutlich über den genannten Zyklen liegt, erhältst du bei einem Ladelevel zwischen 50 und 90 %
Was natürlich bedeutet, dass man eine doppelt so große Batterie benötigt -
@Homoran ok danke, das erklärt natürlich auch einiges an der ladezyklen anzahl.
-
@paul53 kann das sein, daß der nun wieder zurückzählt.
ich hatte als ich das script aktiviert habe 67% Batteriekapazität, die Batterie wurde dann auf 100% aufgefüllt, also 33, aktuell wird die Batterie wieder entladen wir sind hier jetzt bei 98% und der zyklusstand ist jetzt bei 31. Das sollte aber nicht sein. oder habe ich etwas falsch eingestellt.
-
@babl sagte:
aktuell wird die Batterie wieder entladen wir sind hier jetzt bei 98% und der zyklusstand ist jetzt bei 31.
Das kann sein, wenn gleichzeitig geladen und entladen wird, der Entladestrom aber größer ist als der Ladestrom.
-
@paul53 aktuell sieht mein script so aus
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="5o@2goY9||Jrz,20if;2">ladezyklen</variable> <variable id="5Cp4BapwLI_BfQvN:hN:">Zyklusstand</variable> </variables> <block type="variables_set" id="U@8=CwrckLeKOt]iD}Lv" x="63" y="88"> <field name="VAR" id="5o@2goY9||Jrz,20if;2">ladezyklen</field> <value name="VALUE"> <block type="get_value" id="{YRjN`Nx=BEx3R/LDF4+"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Sonnenbatterie_Zyklen_Anzahl</field> </block> </value> <next> <block type="variables_set" id="o.|.m{:;0.0cY^4+eni("> <field name="VAR" id="5Cp4BapwLI_BfQvN:hN:">Zyklusstand</field> <value name="VALUE"> <block type="get_value" id="^bB|fQUnfqz^f]r1Qvu1"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Sonnenbatterie_Zyklus_Stand</field> </block> </value> <next> <block type="on_ext" id="`(wlgoz]jsa80Nq,#_e?"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id=")#VRho?5rkxAtApcNu)r"> <field name="oid">sonnen.0.status.userSoc</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="Fi_q7rn|saH-bzJ9($A^"> <value name="IF0"> <block type="get_value" id="6Z`4]I}G?sWO77Wmrta|"> <field name="ATTR">val</field> <field name="OID">sonnen.0.status.userSoc</field> </block> </value> <statement name="DO0"> <block type="math_change" id="8WjQf)YmQ3vQ;^G)7B]G"> <field name="VAR" id="5Cp4BapwLI_BfQvN:hN:">Zyklusstand</field> <value name="DELTA"> <shadow type="math_number" id="Vifqka:H.5{:*M7]Bc{W"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="ZpFHQ#NR!jiV~gw!j{jG"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="Q/G-2MtZ-GI)!Ar+qks_"> <field name="NUM">1</field> </shadow> <block type="on_source" id="GNfmJHKAM#n[VOh{ffPk"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <shadow type="math_number" id="gVz;[H5fPq40@-[R6N[N"> <field name="NUM">1</field> </shadow> <block type="on_source" id="y@k~Z[13[n:(sj|+XMuk"> <field name="ATTR">oldState.val</field> </block> </value> </block> </value> <next> <block type="controls_if" id="sxk@msUzgs8p*9N%t:7p"> <value name="IF0"> <block type="logic_compare" id="t3CnNEq}CmUCU-tm6YQp"> <field name="OP">GTE</field> <value name="A"> <block type="variables_get" id="2-eirE3@48R?ieh|bSXC"> <field name="VAR" id="5Cp4BapwLI_BfQvN:hN:">Zyklusstand</field> </block> </value> <value name="B"> <block type="math_number" id=".CT*v=bH`vt#,G0kwZ{}"> <field name="NUM">100</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="eNc2wv?]F/o8muo/AnY["> <field name="VAR" id="5Cp4BapwLI_BfQvN:hN:">Zyklusstand</field> <value name="VALUE"> <block type="math_number" id="/(B2|8R{%3B/0?fhIO]U"> <field name="NUM">0</field> </block> </value> <next> <block type="math_change" id="60}*yym(zZukxz/IWZ^i"> <field name="VAR" id="5o@2goY9||Jrz,20if;2">ladezyklen</field> <value name="DELTA"> <shadow type="math_number" id="0uk=V(+d04OdxwmBb+%3"> <field name="NUM">1</field> </shadow> </value> <next> <block type="update" id="`D3$u0Q|2(23`RRP|%^A"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Sonnenbatterie_Zyklen_Anzahl</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="T389$@H2,@S%b{~-MR[#"> <field name="VAR" id="5o@2goY9||Jrz,20if;2">ladezyklen</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="update" id="!E1ULcC.zeMcJH~b).6i"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Sonnenbatterie_Zyklus_Stand</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="p|Z}yGB64*xixOV)bKVD"> <field name="VAR" id="5Cp4BapwLI_BfQvN:hN:">Zyklusstand</field> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> <block type="comment" id="xMhMBGiV$PvGORZY6/5G" x="313" y="163"> <field name="COMMENT">SOC (%)</field> <next> <block type="comment" id="36)m^TFmBWk}]cH:I)?C"> <field name="COMMENT">status.batteryCharging</field> </block> </next> </block> </xml>
ich müßte dann ja eigentlich nur sagen daß wenn die batterie geladen wird nur gezählt wird. also müßte da noch ein wahr mit rein, denn diesen wert habe ich ja im datenpunkt batterycharging entweder true oder false