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.
Hat das sonst keiner eine Idee die mir vielleicht weiter hilft? Danke
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.
Keiner ne Idee wie das realisierbar ist? Oder liegt das an dem Sonntag Abend ;D.
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...
Wenn der Schalter an einer PWM hängt if(I > Imax || U > Umax) pwm_duty--; else pwm_duty++; Das alle 10ms laufen lassen.
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.
:
Bearbeitet durch User
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.