Guten Tag. Ich bin gerade am Programmieren eines MPPT Trackers für ein PV Modul (Datenblatt nicht vorhanden, da einige zellen selbst zusammengefügt wurden) Den MPPT Regler habe ich mit einem STM32 realisiert. Es wird ein Boost Converter mit einem vairblen Dutycycle (PWM Signal) vom STM32 gesteuert. Die Eingangsleistung des PV Modules messe ich mithifle des ADCs des µC. Nun verändere ich den Dutycycle und beobachte die Leistung, wird sie größer, so verändere ich den Dutycycle in dieselbe Richtung bis die Leistung maximal wird. Wird die Leistung geringer, so verändere ich den Dutycycle eben in die andere Richtung. So weit so gut, es funktioniert auch. Nur ein Verhalten ist sehr seltsam. Beim Starten, ist der Dutycycle sehr klein eingestellt, er wird immer größer (und die Leistung damit auch), irgendwann hat sich dieser bei einem Wert eingependelt, jedoch nicht beim MPP. Nach einigen Sekunden (5-30s), springt der Dutycycle auf einen noch etwas höheren Wert und die Leistung des PV Modules nimmt rapide zu, auf den wirklichen MPP. Kennt von euch jemand dieses Verhalten. Im Anhang noch ein Bild vom zeitlichen Verlauf der kenngrößen: Dutycycle, PVStrom, PVLeistung, PV_AVERAGELeistung Erhöhe ich die Anstiegsrate des Dutycycles, also um wie viel er sich ändert bei jedem Durchlauf, so wird dieser Punkt schneller erreicht. Für Anregungen bin ich Euch dankbar! LG Benjamin
Benjamin Gräf schrieb: > Im Anhang noch ein Bild vom zeitlichen Verlauf der > kenngrößen: Dutycycle, PVStrom, PVLeistung, PV_AVERAGELeistung Da steige ich nicht durch, sorry
Hallo, ich denke der erste Punkt ist ein lokales Maximum. Nach 5-30s (und vielen hin- und herbewegungen) springt dein Regler über dieses hinweg und findet den richtigen MPP. Das würde auch erklären wieso der Regler den echten MPP bei grösseren Sprüngen schneller findet. Alternative wäre den MPP von der anderen Seite aus (Kurzschluss anstelle Leerlauf) zu suchen.
Du hast schon auf dem Plan, dass die Spannung eines Boostconverters nicht liniear mit dem Tastgrad zusammenhängt und die Leistung mit der Spannung quadratisch ansteigt?
Ich glaube er wundert sich, warum von 13,5 bis 16,0 nichts passiert und es erst dann richtig los geht.
Interessante Frage. Hier wird der MPP bei in Serie geschalteten und teilverschatteten Zellen behandelt: https://de.wikipedia.org/wiki/Maximum_Power_Point_Tracking# Denkbar wäre ja, dass es ein lokales Maximum der Leistung geben kann wenn nichts verschattet ist aber die in Serie geschalteten Zellen unterschiedlich sind. Cheers Detlef
Bei viel Sonnenlicht/Lumen kriegt er mehr Leistung, aber bei erhöhter Temperatur des PV sinkt die Leistung(nicht viel). Hab das früher mal mit einen Baustrahler experimentiert. Und du darfst nicht verschiedene PVs zusammen schalten, weil die kleineren PV größere Ströme nicht ab können(Wenn du die in Reihe geschaltet hast!).
Danke für die vielen, und vor allem schnellen Antworten! Also das mit dem lokalen Maximum klingt logisch (und würde auch das Verhalten erklären), wobei ich aber keine Verschattungen habe. Die Zellen sind alle die gleichen, sollte also kein Problem sein die zusammenzuschalten. Ich habe jetzt einmal den Dutycycle vom Minimum bis zum Maximum durchlaufen lassen und die Kurven aufgezeichnet (Grau ist übrigens die Ausgangsleistung des PV Modules @Ingo Less) Ab einem bestimmten Dutycycle wieder der Sprung wie vorhin beschrieben. Setze ich den Startwert auf den maximalen Dutycycle, findet das Programm den MPPT natürlich sofort, da er sich von der andere Seite annähert. Ich werde ein anderes Modul bei gelegenheit Testen und schauen ob da auch dieses Phänomen auftritt.
Ich würde da Anfangs mehrere Messungen mit deutlich unterschiedlichem TV machen und beim besten Wert mit der Suche beginnen. https://www.google.com/search?q=mppt+tracking+mehrere+maxima bringt z.B. sowas http://edoc.sub.uni-hamburg.de/haw/volltexte/2014/2254/pdf/Bachelorarbeit_Mirco_Rudolph.pdf https://wwwee.ee.bgu.ac.il/~pedesign/Graduate_problem_papers/papers2007/PhotVoltaic.pdf
:
Bearbeitet durch Moderator
Benjamin Gräf schrieb: > Also das mit dem lokalen Maximum klingt logisch (und würde auch das > Verhalten erklären), wobei ich aber keine Verschattungen habe. Gibt es auch ohne Verschattung. Hatte das selber mal bei einem kleinen MPPT. Meine Lösung war beim einschalten zunächst mit recht großen Schritten (5% oder so) den Bereich abzufahren und dann an den Punkt mit der höchsten Leistung zu springen. Von da an konnte der MPPT den MPP genau verfolgen. Benjamin Gräf schrieb: > Setze ich den Startwert auf den maximalen Dutycycle, findet das Programm > den MPPT natürlich sofort, da er sich von der andere Seite annähert. Dann lass es so! Never change a running system ;-)
Evtl. hilft hier auch eine Hysterese, damit du nicht auf dem zappeln der Bits und Messfehler an einem virtuellen Maximum hängen bleibst, das es nur Aufgrund von Messfehlern gibt. Darf man fragen was da als Last dran hängt? Sicher kein ohmscher Widerstand oder?
Ingo Less schrieb: > Evtl. hilft hier auch eine Hysterese, damit du nicht auf dem zappeln der > Bits und Messfehler an einem virtuellen Maximum hängen bleibst Es ist ein echtes lokales Maximum. Die Physik dahinter kenne ich nicht, aber habe es schon selbst gemessen. Ingo Less schrieb: > Darf man fragen was da als Last dran > hängt? Sicher kein ohmscher Widerstand oder? Sofern es eine Batterie ist, würde ich als "Leistungsgröße" für den MPPT den Ausgangsstrom anstelle der Solarmodulleistung nehmen. Steigert die Effizienz ein bisschen, da auch die verschiedenen Wandlerverluste etc. je nach Dutycycle mit berücksichtigt werden.
Irgendwie sehen mir die Diagramme so aus, als ob die angeschlossene Schaltung denn Vorgabewert des Mikrocontrollers sprunghaft übernimmt bzw. der gesteuerte Wandler erst ab diesem Punkt richtig Leistung übertragen kann. Ich verstehe auch leider die Kurven nicht besonder gut, da die in den Diagrammen verwendeten Abkürzungen mal wieder nur dem TE verständlich sind und auch keine Zuordnung im Text erfolgt. Sowas ist dann natürlich schade wenn man helfen soll.
Im Diagramm ist: potest die Power der PV Zelle Power_avg die gemittelte Power der PV Zelle IPVtest die Spannung der PV Zelle dctest der dutycycle Das mit den Anfangs großen Schritten funktioniert beim Einschalten. Wird die PV Zelle jedoch abgeschattet und fällt wieder auf das lokale Maximum zurück, braucht der Regler wieder lange bis er beim wirklichen MPP angelangt ist, da die Schritte ja wieder klein sind. Das selbe Problem habe ich wenn ich den Startdutycycle ganz groß setze, da es am Anfang zwar sehr schnell den MPP findet, beim unterschreiten und Abfallen auf das Lokale Maximum wieder relativ lange braucht um auf den MPP zu kommen. Als Last habe ich einen 12V Bleiakku dranhängen. Auf den Ausgangsstrom kann ich nicht regeln, da ich vorhabe mehrere solcher Laderegler paralell auf einen Akku zu schalten. Eine Hysterese einzubauen war auch ein Gedanke von mir, werde ich auch noch ausprobieren. Ich werde mich mal mehr in das Thema MPPT reinlesen. mfg Benjamin Gräf
Benjamin Gräf schrieb: > Das mit den Anfangs großen Schritten funktioniert beim Einschalten. Wird > die PV Zelle jedoch abgeschattet und fällt wieder auf das lokale Maximum > zurück, braucht der Regler wieder lange bis er beim wirklichen MPP > angelangt ist, da die Schritte ja wieder klein sind. Das selbe Problem > habe ich wenn ich den Startdutycycle ganz groß setze, da es am Anfang > zwar sehr schnell den MPP findet, beim unterschreiten und Abfallen auf > das Lokale Maximum wieder relativ lange braucht um auf den MPP zu > kommen. Wenn du Abschattung (rapiden Leistungsverlust oder zuwachs) erkennst, dann kannst du ja wieder mit großen Schritten beginnen zu suchen. Wird das Modul denn so oft abgeschattet, dass die 30s spürbar sind? Benjamin Gräf schrieb: > Als Last habe ich einen 12V Bleiakku dranhängen. Auf den Ausgangsstrom > kann ich nicht regeln, da ich vorhabe mehrere solcher Laderegler > paralell auf einen Akku zu schalten. Den Ausgangsstrom von jedem Regler messen? Sehe da kein Problem welches das verhindert.. Wobei viele Regler parallel war noch nie eine gute Idee. Kannst du nicht die Solarzellen zusammenschalten und nur einen Regler bauen?
Benjamin Gräf schrieb: > Nach einigen Sekunden (5-30s), springt der > Dutycycle auf einen noch etwas höheren Wert und die Leistung des PV > Modules nimmt rapide zu, auf den wirklichen MPP Benjamin Gräf schrieb: > Als Last habe ich einen 12V Bleiakku dranhängen. Is doch klar, wenn die Ausgangsspannung kleiner als die Batteriespannung ist, passiert nunmal nichts. Das was du da vorher misst, sind die Eigenverluste des Boosters => kein sinnvoller Punkt. Versuche mal folgendes: Miss die Eingangsspannung und die Batteriespannung. Daraus berechnest du den theoretisch nötigen Dutycycle. Dieser ist dann dein Ausgangspunkt für das MPPT, aber hier gehts los. Wenn nun eine Verschattung erfolgt, könntest du den neu berechneten Duty als Zielpunkt anvisieren (Duty hier hinführen). Hast du ihn erreicht, beginnst du ein neues MPPT. So sollte, wenn auch erstmal nicht sonderlich elegant, der MPP schneller gefunden werden. So vermeidest du jedenfalls, dass der Regler sich in einem Punkt befindet, in dem eigentlich keine Leistung ansteht.
Statische Abschattung durch Bebauung ist kein Problem. Da sinkt oder steigt die Leistung sehr langsam, das kann der Regler problemlos mitlaufen. Problematisch sind Wolken (90% Leistungsabfall- oder Anstieg einer Sekunde) oder dynamische Abschattung durch z.B. einen Zweig, der im Wind bewegt wird. Erstes muß der Regler schnell mitlaufen können (vor allem wenn er den Solarstrom als Regelgröße verwendet, wenn er die Solarspannung vorgibt ist das weniger kritisch, da könnte man den Regler sogar für ein paar Sekunden einfrieren und dann langsam neu auf die MPP-Suche schicken), zweites kann Dir richtig schön die Messung versauen... Wenn bei einem 300W-Modul auch nur eine Zelle durch ein wedelndes Blatt abgeschattet wird, hat man 300W Modulation in der Leistung, mit recht kurzer Periode und der Tracker findet den MPP eigentlich nie.
Man könnte den Algorithmus so ändern, dass man im Hintergrund immer eine grobe Abtastung macht: - Nach dem einschalten erstmal grob alles abmessen - MPP auf den besten Punkt setzten und da starten lassen - Alles x Sekunden ein Teil des Gesamtbereiches abtasten, dann zurück auf Original MPP gehen. Wenn alles abgetastet ist, dann den MPP korrigieren wenn die Abweichung zu gross ist. Damit könnte man erkennen ob man im Dauerbetrieb eventuell sich doch auf einen lokalen maximum bereich gefunden hat. Errinnert mich an damals wo ich ein Laserstrahl auf ein Siliziumwafer fokusieren musste. Da haben wir einen Lock-In gebaut und damit Phasenverschiebung gemessen. Darauf basierend die Linse bewegt. Um beim einschaltenschnell zu sein, habe ich einen schnell durchlauf gemacht. Dann zurück auf den gemessen max und da Lock In gestartet. Es hab reisen hysterese, also der lock in brauchte auch noch bisschen Zeit, war aber trozdem schneller als sofort nur mit Lock In zu gehen.
MiMa schrieb: > Es ist ein echtes lokales Maximum. Die Physik dahinter kenne ich nicht, > aber habe es schon selbst gemessen. Mir ist unklar, warum es bei PV ein lokales Maximum geben sollte. Es gibt für mich KEINEN physikalischen Grund. Wenn überhaupt, käme nur ein Schaltungsfehler in Frage, der z.B. beim Übergang kontinuierlich zu diskontinuierlich des step up zum tragen käme.
Also das mit dem Boost Converter, dass dieser erst ab einem gewissen Dutycycle die richtige Ausgangsspannung hat und deshalb die Leistung so gering ist, werde ich morgen mal überprüfen. Habe jetzt auch eine weitere Variante entdeckt die 2 vorige Punkte speichert und eine Fallunterscheidung macht jenachdem welche werte die 3 Messpunkte (2 alte + aktuelle) haben. Die anderen von euch erwähnten varianten kann ich anschließend auch noch tesetn :) lg Benjamin
Benjamin Gräf schrieb: > Also das mit dem Boost Converter, dass dieser erst ab einem gewissen > Dutycycle die richtige Ausgangsspannung hat und deshalb die Leistung so > gering ist, werde ich morgen mal überprüfen. Is ja klar, wenn Ua < UBat => warum sollte Strom in die Batterie fließen? Erst wenn du UBat übersteigst, gehts los mit dem Laden.
MiMa schrieb: > ich denke der erste Punkt ist ein lokales Maximum. Dann sollte man mal die Kennlinie vom PV-Modul bei konstanter Einstrahlung messen. Dann sieht man, ob die zwei Maxima hat.
Wenn am Ausgang eine Batterie hängt wird ja einiges klar. Wie mißt Du denn die Leistung, PVStrom*PVSpannung? Dann zeigt Deine Kurve von 14:37 solange die Wandlerverluste, bis die Ausgangsspannung die Batterie laden kann. Du muss das Tastverhältnis auf jeden Fall so fahren, dass die Batterie die Leistung aufnehmen kann. Hatten meine Vorposter auch schon alles gesagt. Cheers Detlef PS: Wenn die These stimmt macht Dein Wandler ganz schön grosse Verluste.
:
Bearbeitet durch User
Guten Morgen, Also ich habe das mal überprüft und diese These stimmt nicht. Da zur Batterie Strom fließt und sie somit geladen wird. Es ist tatsächlich ein lokales Maximum, welches dadurch entsteht, dass eine PV Zelle etwas abgeknickt ist und deshalb den Strom aller Zellen begrenzt(soweit meine Theorie). Ich werde demnächst ein anderes Modul testen und schaun ob dort dieser Effekt verschwunden ist. LG Benjamin
MaWin schrieb: > MiMa schrieb: >> Es ist ein echtes lokales Maximum. Die Physik dahinter kenne ich nicht, >> aber habe es schon selbst gemessen. > > Mir ist unklar, warum es bei PV ein lokales Maximum geben sollte. Es > gibt für mich KEINEN physikalischen Grund. Wenn überhaupt, käme nur ein > Schaltungsfehler in Frage, der z.B. beim Übergang kontinuierlich zu > diskontinuierlich des step up zum tragen käme. Konnte es mir auch nicht erklären. War aber definitiv immer im kontinuierlichen Betrieb. Wir hatten aber auch nur eine sehr kleine Zelle (vielleicht schon vorgeschädigt?) Benjamin Gräf schrieb: > Es ist tatsächlich ein > lokales Maximum, welches dadurch entsteht, dass eine PV Zelle etwas > abgeknickt ist und deshalb den Strom aller Zellen begrenzt(soweit meine > Theorie). Ich werde demnächst ein anderes Modul testen und schaun ob > dort dieser Effekt verschwunden ist. Wäre interessant zu wissen woher dieses Maximum stammt. Wenn es hochwertige Zellen sind könnte man mal den Hersteller kontaktieren? :-)
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.