StateOfCharge anzeige basteln

OP #7640261
Lesenswert?

Mein DIY esp32 multiplus2 ve.bus controller läuft nun seit 4 monaten stabil. Was fehlt ist eine BMS anbindung.

Kann der multiplus intern den ladezustand errechnen?

Falls ich das DIY rechnen muss, ich integriere V*A über die zeit auf? Ich stelle max und min SOC anhand der ladespannung z.b 54.4V und 48.0V ein Gibt es da bewährte algos?

Ziel ist anhand des SOC entscheiden wieviel PV leistung ins netz geht. Bei niedrig akku gar nichts, bei fast vollem akku die erlaubten 600W.

Gast #7640265
Lesenswert?

Anhand der Spannung lässt sich der Ladezustand grob in 3-4 Stufen einschätzen. Das scheint für deinen Fall zu genügen.

Falls ich das DIY rechnen muss, ich integriere V*A über die zeit auf?

Es genügt die Messung der Spannung. Schau dir mal eine Ladekurve von LiIo Akkus an.

Jetzt kommt das "aber":

Wenn man einen Lithium Akku voll geladen hat, soll man mit dem Laden aufhören. Dadurch sinkt die Spannung wieder ab. Deine Logik sollte aber weiterhin davon ausgehen, dass der Akku noch voll geladen ist.

Hat dein Laderegler keine "Akku voll" oder "lädt gerade" Anzeige? Davon könntest du ganz einfach abhängig machen, ob du Strom ins Netz einspeist, oder nicht.

Ziel ist anhand des SOC entscheiden wieviel PV leistung ins netz geht.

Das klingt nach einer mehrstufigen oder gar analogen Regelung.

Bei niedrig akku gar nichts, bei fast vollem akku die erlaubten 600W.

Das ist aber digital an/aus.

OP #7640282
Lesenswert?

Steve van de Grens schrieb:

Es genügt die Messung der Spannung. Schau dir mal eine Ladekurve von LiIo Akkus an.

Nein, ich schaue das öfters an. In der praxis sagt die spannung nur nähe voll oder nähe leer etwas aus.

Steve van de Grens schrieb:

Deine Logik sollte aber weiterhin davon ausgehen, dass der Akku noch voll geladen ist.

Deshalb ja die ladezustandsberechnung unabhängig der spannung. Ich mache jetzt schon estV = measV + amps*innenwiederstand. Das gleicht spannungsunterschied laden / nichtladen weitesgehends aus.

Steve van de Grens schrieb:

Das klingt nach einer mehrstufigen oder gar analogen Regelung.

Ja das ist analog. Den multiplus2 kann ich von -1850W verbrauch bis +1850W generieren in 10W schritten einstellen. 1850W weil das ist max für meine DC kabel (35A).

Gast #7640291
Lesenswert?

Schau dich mal nach "Battery Gauge IC" um. Ich denke, so etwas brauchst du, um den Ladezustand einigermaßen präzise zu erfassen. Diese Mikrochips berücksichtigen auch Verluste beim Laden, sowie Alterung der Zellen.

#7640310
Lesenswert?

Hadmut F. schrieb:

Kann der multiplus intern den ladezustand errechnen?

Nein.

Das geht ohne Kenntnis der Zelleneinzelspannungen gar nicht.

Ein Akku ist voll, wenn die ERSTE Zelle die Ladeschlussspannung (von 3.65V bei LFP) erreicht und leer, wenn die ERSTE Zelle die Entladeschlussspannung (von 2.2V) erreicht. Handelt es sich dabei um dieselbe Zelle, ist das die schwächste und der Akku ausreichend balanciert. Sind das verschiedene, sollte durch Entladung der vollsten balanciert werden. Um maximale Zyklenanzahl zu erreichen, lädt man aber nur 80%. Schon das ist bei LFP schwer genug, von 3 bis 3.4V bleibt man irgendwo. man kann nicht mehr erkennen ob die Zellen balanciert wären weil der drastische Spannungsanstieg/abfall erst an den Grenzen erfolgt. Man kann nur raten und versuchen es bestmoglich zu machen.

Vergiss also deinen Ansatz

Hadmut F. schrieb:

Bei niedrig akku gar nichts, bei fast vollem akku die erlaubten 600W

Es gibt 2 Architekturen: billige Wechselrichter die immer MPPT ins Netz speisen und einen standalone Akku der aus dem Netz per eigener Ladeschaltung nicht mehr Ladestrom zieht als Einspeisung - Eigenverbrauch und per eigenem Wechselrichter nicht mehr einspeist als Eigenverbrauch, dann geht bei vollem Akku alle erzeugte Restleistung ins Netz.

Oder vom Solarmodul immer MPPT in den Akku und vom Akku immer so viel Einspeisen wie der Eigenverbrauch beträgt. Dann gibt es Nulleinspeisung auch wenn Solarertrag wegen voller Akkus ungenutzt bleibt.

Grenzen sind nur 80% voller Akku (90% SOC) und 80% leerer Akku (10% SOC), bzw. genannte 3.4 oder 3V der ersten Zelle als grobe Richtung.

OP #7640922
Lesenswert?

Hab mir was gebastelt:

1
float totalAH = 305.0;
2
float soc = totalAH/2;
3

4
const float StoH = 1.0/3600.0; // sec to hr
5

6
void updateSoc(float volt, float amp, int dt) // dt in msec
7
{
8
  float mdt = 0.001 * StoH * float(dt);
9
  soc += volt * amp * mdt; 
10
}

Läuft aber irgendwie zu schnell. Da stimmt was nicht. Muss ich das volt weglassen?

Edit: Ja, ohne volt geht besser! Nun brauch ich noch den algo der bei 48V und bei 54.4V den soc wert automatisch korrigiert.

Oder reicht sowas?

1
soc = constrain(soc + amp * mdt, 0.0, 100.0);
Angehängte Dateien:
OP #7641127
Lesenswert?

Εrnst B. schrieb:

in den Registern für den SoC steht nix?

Da steht 194 im ram-var soc register. Bei 87.33% soc. Kann ich nicht interpretieren.

Da der MP2 inzwischen im keller steht ist ein check mit der victron soft etwas umständlich. Vielleicht ist die AH eingabe falsch oder der MP2 soc läuft nur mit angeschlossenem BMS? Oder das: Have you activated the internal battery monitor inside the Multi using VE.config?

OP #7644580
Lesenswert?

Das problemn ist wie man eine SoC anzeige bei lifepo4 kalibriert. Einen zusammenhang aukkuspannung und ladezustand gibt es nur bei fast leer oder fast voll. Dazwischen korreliert das nicht.

1
          estvolt = BatVolt - (multiplusDcCurrent*0.017);
2

3
          if (estvolt > 53.6) // 53.6V = 90%
4
          { if (soc < 0.9 * totalAH) soc = 0.9 * totalAH; }
5
          if (estvolt < 48.0) // 48.0V = 10%
6
          { if (soc > 0.1 * totalAH) soc = 0.1 * totalAH; }

Das funktioniert nicht gut / schaltet zu früh auf 90%. Da ist noch ein systemfehler drin.

Kennt jemand eine besseres system?

Angehängte Dateien:
#7851600
Lesenswert?

Hallo zusammen, tolle Arbeit. Ich stehe gerade selbst vor dem selben Anspruch. Ich möchte den SOC wissen , möglichst genau , und dann dem MP2 mitteilen. Es gibt dafür IC´s die die Energie möglichst genau messen. An Hand der importierten Energiemenge wird auf den SOC geschlossen , so würde ich das machen wollen. Stehe grad bei der Recherche nach Schaltungen. https://www.ti.com/product/BQ41Z90

#7851670
Lesenswert?

Martin K. schrieb:

Ich möchte den SOC wissen , möglichst genau , und dann dem MP2 mitteilen.

ich verstehe es ja zugegeben nicht: Wer einen mP2 hat hat auch einen großen Akku Wer einen großen Akku hat hat auch ein BMS Das BMS weiss doch den SOC rel genau?

Der MP2 kann auch den SOC messen - noch besser kann er das wenn ein SMartshunt vorhanden ist

ABer wozu wenn das BMS das doch eh mitteilt?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren