Forum: Mikrocontroller und Digitale Elektronik Photovoltaik MPPT Tracking - Sprunghafte Leistungsänderung


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Benjamin Gräf (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

von Ingo Less (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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

von MiMa (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Ingo Less (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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?

von Ingo Less (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich glaube er wundert sich, warum von 13,5 bis 16,0 nichts passiert und 
es erst dann richtig los geht.

von Detlef _. (detlef_a)


Bewertung
0 lesenswert
nicht lesenswert
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

von Rainer S. (enevile) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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!).

von Benjamin Gräf (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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.

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert

: Bearbeitet durch Moderator
von MiMa (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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 ;-)

von Ingo Less (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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?

von MiMa (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Ben B. (Firma: Funkenflug Industries) (stromkraft)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Benjamin Gräf (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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

von MiMa (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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?

von Ingo Less (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Ben B. (Firma: Funkenflug Industries) (stromkraft)


Bewertung
0 lesenswert
nicht lesenswert
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.

von kyrk.5 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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.

von MaWin (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Benjamin Gräf (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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

von Ingo Less (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Wolfgang (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Detlef _. (detlef_a)


Bewertung
0 lesenswert
nicht lesenswert
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
von Benjamin Gräf (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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

von MiMa (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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? :-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.