Hallo leute,
ich möchte ein Algorithmus nach dem IU-Ladeverfahren schreiben. Ich weiß
leider nicht, ob ich mit den Ideen, die ich dazu habe, auch richtig
liege.
Meiner Ansicht nach sind es im Grunde gesehen sind es 2 Regler, um
jeweils Strom und Spannung zu regeln.
Die "digitalen" Regler an sich, sind nicht da Problem.
Die entscheidende Frage ich, wie diese Regler zusammenwirken müssen, um
eben das IU-Ladeverfahen zu realisieren.
Ich habe 2 Regelgrößen zur Verfügung (Istwert Strom und Spannung) und
nur eine Stellgröße (das PWM Signal, welche ich an die Vollbrücke des
DC-DC Wandlers gebe. Die Stellgröße ist demnach die Totzeit des PWM
Signals)
Wie müsste ich die beiden Regler "ausrichten", um den gewünschten Effekt
zu erzielen?
Danke
Hallo,
das ist vonm Prinzip her ganz einfach.
Es ist eigentlich immer nur ein Regler im Eingriff. Demanch gibt der
andere dann immer "Vollgas".
Also muss immer de Regler in den Eingriff gehen der die kleinere
Regelgröße ausgibt.
kannst Du dir vorstellen wie ein Labornetzteil, da ist es auch so, dass
der Regler in Eingriff geht dessen Grenzwert gerade erreicht wird.
Der Punkt des CC-CV Übergangs sollte genau betrachtet werden, da fängt
es gerne mal an zu schwingen.
Gruß
Jochen
Jochen S. schrieb:> Hallo,>> das ist vonm Prinzip her ganz einfach.>> Es ist eigentlich immer nur ein Regler im Eingriff. Demanch gibt der> andere dann immer "Vollgas".>> Also muss immer de Regler in den Eingriff gehen der die kleinere> Regelgröße ausgibt.>> kannst Du dir vorstellen wie ein Labornetzteil, da ist es auch so, dass> der Regler in Eingriff geht dessen Grenzwert gerade erreicht wird.>
Vom Gedanken her habe ich mir das auch genauso vorgestellt.
Was ich mich gefragt habe, ist jedoch, ob das wie eine Art
Kaskadenregelung realisiert wird oder ob ich da mit if-Abfragen
anschaue, welche der beiden Regelgrößen über die Grenzen schießt und
entsprechend den Regler dieser Regelgröße regeln lasse.
> Der Punkt des CC-CV Übergangs sollte genau betrachtet werden, da fängt> es gerne mal an zu schwingen.>
Das ist eine weitere Sache, wo ich nicht weiß, wie ich es genau umsetzen
soll.
Nach dem IU-Ladeverfahren wird bei einer entladenen Batterie Konstant
ein Strom eingeprägt. Dieser Strom ist maximal so groß, wie ich es im
Stromregler vorgebe.
Während dieser Zeit liegt eine Spannung an, die durch den Strom bzw.
durch die Stromregelung bestimmt wird, denn die Stellgröße der
Stromregelung ist ebenso die Stellgröße des Spannungsregelung.
Die Batterie ist dann irgendwann soweit aufgeladen, dass es der Strom
"von selbst" unter die vom Regler vorgegebene Grenze tritt, was die
abfallende Stromkurve des IU-Ladeverfahrens erklären würde.
Die Spannung steigt entsprechend der sich ändernden Stellgröße, die vom
Stromregler vorgegeben wird, an.
Das geht eben solange, bis die Spannung die vom Spannungsregler
vorgegebene Grenze erreicht. Ab dann greift der Spannungsregler.
Wäre der von mir geschilderte Gedankengang richtig? Wie würde man das
programmtechnisch realisieren?
Danke
Jochen S. schrieb:> Der Punkt des CC-CV Übergangs sollte genau betrachtet werden, da fängt> es gerne mal an zu schwingen.
Das ist bei einem Ladealgorithmus ziemlich unerheblich, weil der
Übergang CC->CV genau ein einziges Mal pro Ladevorgang vorgenommen wird.
Der eine Regler wird abgeschaltet, der andere eingeschaltet und dann
wird stur weiter gemacht.
Einzig eine Ladestromüberwachung bei CV-Ladung sollte man integrieren,
welche den Ladevorgang abbricht, wenn der Strom bei CV-Ladung über den
Strom der CC-Ladung ansteigt.
Viele Grüße!
Sven
Sven L. schrieb:> Jochen S. schrieb:>> Der eine Regler wird abgeschaltet, der andere eingeschaltet und dann> wird stur weiter gemacht.>> Einzig eine Ladestromüberwachung bei CV-Ladung sollte man integrieren,> welche den Ladevorgang abbricht, wenn der Strom bei CV-Ladung über den> Strom der CC-Ladung ansteigt.>
Danke für die Hinweise.
Das ist eben eines der Punkte, wo ich mich frage, wie das realisiert
wird.
Wie wird der Regler denn einfach abgeschaltet?
Wann wird der Regler abgeschaltet? (Wenn eine bestimmte Spannung
erreicht ist? Welche wäre das?)
Wie realisiet man eine Überwachung?
Wie würde der gesamte Algorithmus aussehen?
Etwa so:
if(RegelrößeStrom > GrenzeStrom){
while(ÜbergangSpannung >= RegelgrößeSpannung){
-Stromregler-
}
}
else if(RegelgrößeSpannung >= ÜbergangSpannung){
while((GrenzeStrom >= RegelgrößeStrom) || (VolleBspannung >=
RegelgrößeSpannung){
-Spannungsregler-
}
}
GrenzeStrom - Der maximal mögliche Strom, den der Regler zulässt
ÜbergangSpannung - Die Spannung, bei der von Strom- auf
Spannungsregelung gesprungen wird
ReglergrößeStrom - Gemessener Strom
ReglergrößeSpannung - Gemessene Spannung
VolleBspannung - Batterie geladen
Stefan schrieb:> ich möchte ein Algorithmus nach dem IU-Ladeverfahren schreiben
WELCHEN Akkutyp willst du denn Laden ?
Stefan schrieb:> Die entscheidende Frage ich, wie diese Regler zusammenwirken müssen, um> eben das IU-Ladeverfahen zu realisieren.
Simples Maximumwertbilden.
Stefan schrieb:> Wie würde der gesamte Algorithmus aussehen?
Nicht so.
Es gibt keinen "Stromwertregler" und "Spannungswertregler". Wenn es die
schon gibt, muss man nichts mehr regeln. Es gibt ein "Stellelement" den
Transistor, und den kann man aufregeln oder zuregeln.
Akkus sind langsam, also könnte das ausregeln theoretisch auch ein
schlecht programmierter uC tun, aber wenn man Akkus anklemmt, kann der
uC-Regler langsamer sein als der Transistor stirbt.
MaWin schrieb:> Stefan schrieb:>> ich möchte ein Algorithmus nach dem IU-Ladeverfahren schreiben>> WELCHEN Akkutyp willst du denn Laden ?
Einen "normalen" 12V Bleuakku.
> Stefan schrieb:>> Die entscheidende Frage ich, wie diese Regler zusammenwirken müssen, um>> eben das IU-Ladeverfahen zu realisieren.>> Simples Maximumwertbilden.
Ich würde mich sehr freuen, wenn das genauer ausgeführt wird.
> Stefan schrieb:>> Wie würde der gesamte Algorithmus aussehen?>> Nicht so.>> Es gibt keinen "Stromwertregler" und "Spannungswertregler". Wenn es die> schon gibt, muss man nichts mehr regeln. Es gibt ein "Stellelement" den> Transistor, und den kann man aufregeln oder zuregeln.>> Akkus sind langsam, also könnte das ausregeln theoretisch auch ein> schlecht programmierter uC tun, aber wenn man Akkus anklemmt, kann der> uC-Regler langsamer sein als der Transistor stirbt.
Mit Stromregler und Spannungsregler, war eben der Codeabschnitt gemeint,
wo die Stellgrößen berechnet und die Transistoren angesteuert werden.
Der Übersichtlichkeit halber habe ich dies einfach mit den begriffen
abgekürzt.
Vielleicht hilft es, nicht von Reglern, sondern von Begrenzern zu
sprechen, denn man will ja nicht auf Teufel komm raus einen bestimmten
Strom erzwingen, sondern nur verhindern, daß er überschritten wird. Und
ebenso für die Spannung.
Also:
Wenn der Strom zu groß wird, Stellgröße verringern.
Wenn die Spannung zu groß wird: Stellgröße verringern.
Wenn keins von beiden passiert: vorsichtig Gas geben.
Sonst könnte man noch die Labornetzteilschaltung nachbilden: ein Regler
für Strom, ein Regler für Spannung, und wer von den beiden die kleinere
Stellgröße ausgibt, hat das Sagen. Aber aufpassen, falls irgendwo ein
I-Anteil drin ist, daß der nicht sonstwohin abwandert, während der
andere Regler am Ruder ist.
Ok, also anhand der Informationen die hier gegeben wurden habe ich
folgende Idee.
Nochmal erwähnt:
Die Stellgröße zum verändern der Spannung "und" des Stroms ist der
Tastgrad, den ich bestimme. Der Tastgrad geht an die Vollbrücke und
beeinflusst so direkt beide Werte.
Nach dem IU-Ladeverfahren wird die leere Batterie mit einem begrenzten
Strom geladen (Konstantstrom), somit wird der Strom erstmal begrenzt,
weil eine leere Batterie würde versuchen, soviel Strom wie möglich aus
der Quelle zu ziehen.
Nach erreichen der Ladeschlussspannung (ca. 13,5-14V) wird von der
Stromregelung auf Spannungsregelung über geganen. Theoretisch sollte der
Strom, der gezogen wird, abfallen. Es wird also mit Konstantspannung
geladen, bis die Batterie kaum noch Strom zieht.
Ich denke in diesem Fall würde eine Art Kaskadenregelung in Frage
kommen. (Ich bin mir aber nicht sicher, ob das klappen wird)
1) Im ersten Schritt würde der Istwert der Spannung mit dem Sollwert der
Spannung verglichen werden. Das Ergebnis wäre der Tastgrad, der an die
Vollbrücke gehen muss, damit der Sollwert der eingestellten Spannung
eingeregelt wird. Dies würde aber auch einem gewissen Strom entsprechen,
weil der ausgegebene Tastgrad auch den Strom beeinflusst.
2) Im nächsten Schritt würde die Regelgröße des PI Reglers der
Spannungsregelung als Sollwert für die Stromregelung dienen. Dies müsste
mit dem Istwert des Stroms verglichen werden und mit einem weiteren PI
Regler geregelt werden.
Es würde aber nur geregelt werden, wenn der Strom zu groß wird, aber
nicht wenn der Strom zu klein wird. Der dieser soll ja mit der Zeit
kleiner werden bzw. je nach ladestand abschwächen.
Ist die Idee soweit in Ordnung? Das große Fragezeichen, welches ich hier
habe, ist der Sollwert im zweiten Schritt, also der Sollwert der
Stromregelung. Dieser aus der Spannungsregelung erzeugte Sollwert ist
ein Tastgrad. Ich müsste daraus iwie ermitteln, was für einem Strom das
entspricht, damit eine sinnvolle Differenzbildung für die Stromregelung
erfolgen kann. Der Istwert der Strommessung wird mit einem LEM-Wandler
Realisiert.
Habe auch ein Bild hinzugefügt, wie ich mir das vorstelle.
Ich würde mich über Ideen freuen.
Was hindert dich daran, die jeweils kleinere Stellgröße zu nehmen, die
die beiden Regler ausspucken?
Kleiner Tipp: Vergiß alles, nimm ein Blatt Papier und fange von vorne an
Daniel Korb schrieb:> Was hindert dich daran, die jeweils kleinere Stellgröße zu nehmen,> die> die beiden Regler ausspucken?>> Kleiner Tipp: Vergiß alles, nimm ein Blatt Papier und fange von vorne an
Hast recht. Läuft im Grunde gesehen auf dasselbe hinaus.
Der Gedankengang hat mich auch auf einen Fehler bei meiner
Vorgehensweise gebracht.
Also müsste ich im Grunde gesehen 2 Regler (Begrenzer) laufen lassen und
jeweils die kleinere Stellgröße berücksichtigen.
Wenn die Stellgröße der Stromregelung negativ wird bzw. die
Differenzbildung ((i_soll - i_ist) < 0) negativ wird, dann wird diese
Stellgröße nicht mehr berücksichtigt (Prinzip des IU Ladeverfahrens).
---
Der Spannungsregler ist leicht um zu setzen (habe ich bereits).
Doch ich weiß nicht wie ich den Stromregler umsetzen kann.
Der Stromsensor soll wie bereits genannt ein Lem Wandler werden. Ich
weiß noch nicht genau wie das funktioniert. Was ich bisher verstanden
habe ist, dass der Lem-Wandler eine Spannung ausgibt, die sich
proportional zum gemessenen Strom ändert.
Ich verstehe jedoch nicht, wie ich aus der Spannung bzw.
Spannungsänderung bestimmen soll, welchen Strom ich im moment messe.
Kurz, wie funktioniert das eigentlich ?
Stefan schrieb:> Doch ich weiß nicht wie ich den Stromregler umsetzen kann.
Welche Umsetzung meinst du HW oder SW??
Im Moment arbeite ich bei meinem Hobby an was ähnlichen aber das ist nur
ein Spannungsregler der die Bat laden soll und mein Gedanke ist das ich
zum Anfang einfach den Iist mit Isoll vergleiche(µC-Shunt) und die
Spannung nach oben korrigiere so das der Strom konstant bleibt.
Stefan schrieb:> Was ich bisher verstanden> habe ist, dass der Lem-Wandler eine Spannung ausgibt, die sich> proportional zum gemessenen Strom ändert.>> Ich verstehe jedoch nicht, wie ich aus der Spannung bzw.> Spannungsänderung bestimmen soll, welchen Strom ich im moment messe.
Na Proportional heißt doch 1A an Strom siond z.B. 1V am LemWandler und
was du dann misst sind 1V wo du nur die Maßeinheit tauschen musst sprich
aus 1A = 1V = 1A auf der Anzeige.
Mit nem Shunt siehts doch gleich aus, nur der Strom durchfließt bei 1A
den Widerstand von 1Ohm was eine Spannung von 1V macht.
chris schrieb:> Na Proportional heißt doch 1A an Strom siond z.B. 1V am LemWandler und> was du dann misst sind 1V wo du nur die Maßeinheit tauschen musst sprich> aus 1A = 1V = 1A auf der Anzeige.
schwierig wirds aber wenn 1A 125mV sind ;-)
Walter S. schrieb:> schwierig wirds aber wenn 1A 125mV sind ;-)
Meinste ?? Aber sollte doch auch nicht schwieriger sein ?? 0.o oder war
das gerade wieder ironisch gemeint... kann sowas schlecht deuten...
Nabend,
seit kurzem bin ich an dem iu-ladeverfahren interessiert und würde mir
mit der zeit gerne einen primär getaktetes Ladegerät bauen.
dazu würde ich einen galvanisch getrennten dc/dc-wandler bauen und die
regelung, wie bei dir, über die primärseite machen.
mal von der Hardware abgesehen, will ich gerne wissen wie man der
software macht.
@Stefan - bist du mit der software schon weiter gekommen?
@Nosnibor & @Jochen S. - ich denke ihr beiden habt bisher die
hilfreichten antworten zum thema Software für das batterieladeverfahren
gegeben.
ich hätte aber noch fragen dazu und würde mich freuen wenn man diese
beantworten kann.
das ladeverfahren würde ich wie folgt in worte fassen:
- leere Batterie an quelle anschließen
- Batterie zieht sehr viel Strom, daher begrenzt der stromregler
- die Spannung an den klemmen ist eher gering (8-9 V)
- sobald die ladeschlusspannung erreicht ist, versuche ich diese
Spannung mit dem Spannungsregler bei zu behalten
- der Strom, der von der Batterie gezogen wird, wird immer geringer und
ich kann
ist das soweit richtig?
im Prinzip müsste ich nur 2 digitale regler programmieren, die jeweils
Strom und Spannung begrenzen.
gibt es da was zu beachten? gibt es eventuell ein Programm bzw. ein
Algorithmus zu dem ladeverfahren, den man sich ansehen kann?
peters
Jetzt habe ich das auf YouTube gefunden:
https://www.youtube.com/watch?v=vH3vCh4cJIs
dies ist ja das verhalten, was ich auch haben möchte. nur eben, dass es
der mikrocontroller über den primär getakteten dc/dc-wandler völlig
selbstständig macht.
wie würde man dieses verhalten des labornetzteils am besten
programmieren?
tut mir leid, dass ich so direkt frage, ich bin kein Ass im
programmieren und kenne mich leider nur mit einfachen Konstrukten der c
Programmierung aus.
das was der Mann im Video mit dem einstellen am netzteil macht, stelle
ich ja im Programm mit dem Sollwert für Strom und Spannung ein. die
Begrenzung wird in den entsprechenden Reglern vorgenommen. doch wäre ein
"regler" an der stelle das richtige? dieser würde ja immer versuchen den
Strom und die Spannung an zu streben, den ich vorgebe. würde in diesem
fall ein einfacher begrenzer nicht ausreichen?
müssen
Ich würde da garnicht so abgedreht regelungstechnisch rangehen!
Konstantstrom und Konstantspannung werden nacheinander
eingesetzt.
Eine ladebedürftige Batterie muss erst mal geladen werden:
I <= Imax.
Dann muss man erkennen, dass sie voll geladen ist.
Die Lade-Taktik (der übergeordnete Algorithmus) ist auf
jeden Fall vom Akku-Typ abhängig!
Danach erhält man mit Kostantspannung ihre Ladung.
Blei-Akku:
I_max: Maximal erlaubter Ladestrom, oder maximal
lieferbarer Ladestrom. (Der kleinere Wert davon!)
I_erhalt: Der für den Batterietyp angegebene Erhaltungsladestrom.
U_max: Maximal erlaubte Ladeschlussspannung.
Besonders bei gasdichten Akkus unbedingt einhalten!
U_erhalt: Die Spannung einer vollgeladenen Batterie.
U_erhalt < U_max
Diese Werte sind temperaturabhängig, somit gehört auch noch
eine Temperaturmessung in den Lade-Algorithmus, der die
Werte von U_max und U_erhalt für die Batterietemperatur
entsprechend dem Datenblatt der Batterie nachführt.
Lade-Ablauf:
1a Ladegerät wird eingeschaltet, Ausgang = AUS
1b Batterie ist/wird angeschlossen, U > 0 V und U < U_max
1c Wenn U >= U_max -> Ladeerhaltungsschleife
2 Strom langsam erhöhen, bis I_max.
3 I_max und U < U_max? Weiter I_max liefern
4 U_max erreicht: I abschalten
5 Ladeerhaltungsschleife:
Wenn U = U_erhalt: I_erhalt (Datenblatt) einschalten
U < U_erhalt: I_erhalt ganz vorsichtig erhöhen
U > U_erhalt: I_erhalt verkleinern
Das pendelt sich langsam ein, ist aber eine Sache von
Stunden! Dazu ist kein Super-Algorithmus nötig
6 Wird Batterie abgeklemmt: Ausgang = AUS
Bei NiCd, oder NiMH ist die Temperatur auf jeden Fall zu
überwachen. Hier ist I_max dem Datenblatt zu entnehmen und
bei Temperaturanstieg unbedingt zu reduzieren.
Punkt 4 (Ende der Konstantstromladung) muss mit der dU-Methode
erfasst werden.
Bei Li-Akkus solltest du dich mit den dafür entwickelten
ICs anfreunden: Wenn du was falsch machst, brennt die Bude ab!
Wie du deine Messwandler auswertest, um den Ladestrom, oder die
Ladespannung zu ermitteln, ist eine ganz andere Geschichte.
Dazu gehört auf jeden Fall ein untergeordneter Algorithmus, der
dem Messwandler die real vorliegenden Effektiv-Werte entlockt...
Oldie schrieb:> 2 Strom langsam erhöhen, bis I_max.
Wie macht man das mit dem "Strom langsam erhöhen"? Wenn wir jetzt
einfach mal von einem Tiefsetzsteller vor der Batterie ausgehen. Setze
ich den Tastgrad am Schalter des Tiefsetzsteller auf 0, damit erstmal
kein Strom fließt, ich aber vorher mit dem Spannungssensor die Spannung
erfassen kann, um dann zu bestimmen, was ich danach mache?
(Ladeerhaltung oder laden) Die Erhöhung dann langsam mit einem PI
Regler, bis ich I_max erreicht habe.
> 3 I_max und U < U_max? Weiter I_max liefern> 4 U_max erreicht: I abschalten
Was bedeutet hier "I abschalten"? I sollte doch noch fließen und wird
von selbst abfallen, wenn man U_max eine Zeit lang behält bzw. konstant
hält. Oder soll bei einem Bleiakku nach erreichen von U_max der Strom
wirklich auf I_erhalt runter geregelt werden?
> Wie du deine Messwandler auswertest, um den Ladestrom, oder die> Ladespannung zu ermitteln, ist eine ganz andere Geschichte.> Dazu gehört auf jeden Fall ein untergeordneter Algorithmus, der> dem Messwandler die real vorliegenden Effektiv-Werte entlockt...
Das ist wieder eine andere Geschichte, wo ich mir was einfaches
aussuchen muss.
danke
Arthur Peters schrieb:> einem Tiefsetzsteller
Ich liebe Tiefsetzsteller. Ich hab meine Jahresendfestflügelpuppe auch
tiefer gelegt (aber nicht flach, nur tiefer)
In dieser App Note von ZILOG wird das Prinzip eines solchen digital
geregelten Ladegeräts anhand eines Referenz Design mit FW Sourcen genau
dokumentiert. Teile davon könnten für Deinen Ansatz nützlich sein:
http://www.zilog.com/force_download.php?filepath=YUhSMGNEb3ZMM2QzZHk1NmFXeHZaeTVqYjIwdlpHOWpjeTloYmpBek1EWXVjR1Jt
Der C Quell Code sollte ohne größere Schwierigkeiten auf andere uC
portierbar sein. (Muß separat herunter geladen werden - siehe Zilog
Encore! Unterlagen)
Auch die gesammte Schaltung dazu ist dokumentiert.