Hi, ich bin gerade dabei ein 4s4p LiFe Akkupack zu bauen. Dabei wäre es natürlich sinnvoll, die einzelnen parallelen Packs möglichst auf die selbe Kapazität zu bringen, um ein schnelles Laden ohne langes Balancieren zu ermöglichen. Und Entladen nahe 0% wird auch sicherer, da kein Pack zu früh unter Vmin fallen sollte, während andere Packs noch 20% drin haben. BMS ist klar und kommt natürlich rein. Frage: Gibt es eine Möglichkeit, excel dazu zu bringen, selber die Kombinationen an Zellenverschaltungen auszuprobieren, um bei jedem der 4p etwa auf die selbe Gesamtkapazität zu kommen? Bestimmt gibt es einen Weg, aber ich (Mathe und Excel Experte...) habe keine Ahnung wie. Wie würdet Ihr diese Aufgabe angehen? Danke schon mal und schönes WE!
:
Bearbeitet durch User
wenn ich das richtig verstehe sollte es (4^4-4)/2=126 mögliche Zellenverschaltungskombinationen geben alle hintereinander aufschreiben lassen dann den Durchschnitt aller 4 Zellen dieser Kombi errechnen dann die Summe aller absoluten Deltas pro Zelle zum Durchschnitt und dann das Minimum aus dieser Summen anzeigen lassen (bedingte Formatierung->Farbskala o.ä. geht da gut)
Mike B. schrieb: > wenn ich das richtig verstehe sollte es (4^4-4)/2=126 mögliche > Zellenverschaltungskombinationen geben > > alle hintereinander aufschreiben lassen > > dann den Durchschnitt aller 4 Zellen dieser Kombi errechnen > > dann die Summe aller absoluten Deltas pro Zelle zum Durchschnitt > > und dann das Minimum aus dieser Summen anzeigen lassen (bedingte > Formatierung->Farbskala o.ä. geht da gut) Danke! Ich verstehe alles weitestgehend, nur der erste Schritt ist für mich noch ein Hindernis. Welche Formel muss ich aufstellen, um alle Zellenkombinationen aufzählen zu lassen? Sorry für die dumme Frage, aber bin echt nicht mehr so fit in Mathe.
:
Bearbeitet durch User
Ich würde annehmen, dass man dem Ziel schon recht nahe kommt, wenn man die Zellen der Kapazität nach sortiert und dann von aussen anfangend jeweils die 2 stärksten und die 2 schwächsten Zellen kombiniert.
IncreasingVoltage .. schrieb: > Gibt es eine Möglichkeit, excel dazu zu bringen, selber die > Kombinationen an Zellenverschaltungen auszuprobieren, um bei jedem der > 4p etwa auf die selbe Gesamtkapazität zu kommen? Mit den vordefinierten Excel-Funktion geht das vermutlich nicht, aber du könntest in VBA einen Algorithmus programmieren, der sämtliche mögliche Kombinationen durchrechnet und daraus das Optimum bestimmt. Wenn ich dich richtig verstanden habe, möchtest du jeweils p=4 Zellen zu einer Gruppe parallel und s=4 dieser Gruppen in Serie schalten. Für die erste dieser dieser Gruppen gibt es
Möglichkeiten, die p Zellen aus dem Gesamtvorrat von s·p Zellen auszuwählen. Für die zweite Gruppen stehen nur noch s·p-p Zellen zur Auswahl, also gibt es dafür
Möglichkeiten. Für die dritte Gruppe gibt es entsprechend
Möglichkeiten usw. Für die letzte (d.h. die s-te) Gruppe gibt es nur noch
d.h. eine einzige Möglichkeit. Die Anzahl n der möglichen Kombinationen für die gesamte Anordnung der Zellen ist das Produkt der vorgenannten Anzahlen dividiert durch die Anzahl s! der möglichen Permutationen der Gruppen in der Serienschaltung (die Reihenfolge der einzelnen Gruppen in der Serienschaltung spielt ja keine Rolle). Also ist
Für s=p=4 ist n=2627625. Diese Zahl ist nicht so arg groß, so dass eine gute Chance besteht, brute-force-mäßig alle Kombinationen in akzeptabler Zeit durchrechnen lassen zu können. Da ich weder Excel habe noch VBA beherrsche, kann ich dir diesbezüglich leider nicht weiterhelfen. Sozusagen als Proof-of-Concept habe ich den Algorithmus mal in Haskell implementiert, nicht besonders effizient, aber gut genug, um damit ein paar Beispielberechnungen für s≤4 und p≤4 durchführen zu können (für größere s und p steigt die Rechenzeit schnell an). Hier sind eine paar Erläuterungen zu dem Algorithmus für den Fall, dass du ihn in VBA nachprogrammieren möchtest: Die Funktion combis generiert eine Liste aller n Kombinationen. Sie nutzt dafür die Hilfsfunktion choose, die alle Möglichkeiten liefert, aus einer Liste von Zellen (repräsentiert durch ihre Kapazitäten) k Zellen auszuwählen. choose liefert dabei nicht nur die ausgewählten Zellen, sondern auch jeweils eine Liste mit den verbleibenden Zellen. Die Funktion combis wählt nun mit Hilfe von choose einen Satz von p Zellen für die erste Gruppe aus und ruft sich rekursiv auf, um dasselbe auch für die s·p-p verbleibenden Zellen zu tun. Die Rekursion bricht ab, wenn alle Zellen "verbraucht" sind. Um die beste Kombination zu ermitteln, wird auf alle Kombinationen die Funktion range angewandt. Diese berechnet die Gesamtkapazität jeder der s Gruppen als Summe der Einzelkapazitäten und bestimmt davon die Differenz aus dem Maximum und dem Minimum. Diese Differenz ist ein Maß für die "Unbalanciertheit" der Gruppen untereinander und sollte deswegen möglichst klein sein. Die Kombination mit der geringsten /range/-Wert landet schließlich in der Variable best, die mittels der Funktion printSums zusammen mit den berechneten Summenkapazitäten jeder Gruppe ausgegeben wird. Die Anzahl p der in jeder Gruppe parallel geschalteten Zellen sowie die gemessenen Kapazitäten der s·p Zellen werden beim Programmstart von stdin als Integer-Zahlenwerte eingelesen. Am besten schreibt man alle diese Werte vorher in eine Textdatei battdata.txt und ruft das Programm aus der Konsole mit
1 | battarrange <battdata.txt |
auf. Die Kapazitätswerte in der angehängten Datei battdata.txt kommen aus dem Gauß-Zufallsgenerator mit den Parametern x̅=2500 und σ=40, so dass sie statistisch den 13 Werten in deinem Excel-Screenshot ähnlich sind. Nach etwa 3s (auf i5-Prozessor) erscheint folgendes Ergebnis:
1 | 2448 + 2518 + 2514 + 2546 = 10026 |
2 | 2548 + 2521 + 2439 + 2516 = 10024 |
3 | 2461 + 2492 + 2508 + 2564 = 10025 |
4 | 2490 + 2514 + 2530 + 2490 = 10024 |
Das sieht doch gar nicht schlecht aus, oder? Die Unterschiede der Gruppenkapazitäten von nur ±1 sind typisch bei diesen Kapazitätsstreuungen und zeigen, dass es sich durchaus lohnt, sich Gedanken über die optimale Anordnung der Zellen zu machen. Die Kapazitäsänderungen durch Alterung dürften sehr viel größer sein, aber mit etwas Glück altern alle Zellen etwa gleich schnell, so dass die Gruppenkapazitäten nicht zu sehr auseinanderlaufen. Wenn du kein Haskell installieren und das Programm auch nicht in VBA umschreiben möchtest, kann ich für dich gerne ein paar Programmläufe durchführen, wenn du deine Kapazitätsdaten hier postest.
:
Bearbeitet durch Moderator
Yalu X. schrieb: > Das sieht doch gar nicht schlecht aus, oder? In der Tat. Und es ist meiner Milchmädchenmethode (jeweils die 2 schlechtesten mit den 2 besten Zellen zu kombinieren) deutlich überlegen.
:
Bearbeitet durch User
Joe F. schrieb: > Und es ist meiner Milchmädchenmethode (jeweils die 2 schlechtesten mit > den 2 besten Zellen zu kombinieren) deutlich überlegen. Dafür liefert dein empirisches Verfahren auch bei 5×5 Zellen sofort ein anständiges Ergebnis, während man bei meinem mehr als zwei Monate darauf warten muss. Und bis mein Programm die optimale Anordnung von 6×6 Zellen ausspuckt, sind diese längst zu Staub zerfallen :)
Hallo IncreasingVoltage, IncreasingVoltage .. schrieb: > ich bin gerade dabei ein 4s4p LiFe Akkupack zu bauen. Dabei wäre es > natürlich sinnvoll, die einzelnen parallelen Packs möglichst auf die > selbe Kapazität zu bringen, um ein schnelles Laden ohne langes > Balancieren zu ermöglichen. benutzt Du die Nennkapazitäten der Akkus, oder die Kapazität bei Erreichen der bei Dir individuellen Abschaltspannung für Dein Projekt? Die letztere Größe ist nämlich die relevante.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.