Die pwm wird mit CT2 generiert, 100khz, 140 steps, Pin3, OC2B.
Die Vin und Vout werden über Pin A0 und A1 gelesen.
Pwm ist invertiert, 140 = null leistung, 10 = maximale leistung.
Die logik ist:
Wenn zuviel spannung am ausgang leistung zurück.
Wenn zuwenig spannung am eingang leistung zurück.
Sonst leistung etwas hochfahren.
Einen MPPT daraus zu machen ist nur software.
Eigentlich interessiert nur das Produkt der Ausgangsstrom und die
Ausgangsspannung. Diese Leistung soll maximal sein/bleiben. Wenn die
Last ein Widerstand ist, dann reicht es, die Ausgangsspannungzu
maximieren.
Jochen Stromberg schrieb:> Wo ist der mpp Tracking Algorithmen?
Noch nicht implementiert. Das ist MPP. Trackt nicht.
> Muss da nicht auch der Strom mit rein zwecks Leistungsberechnung?
Der strom ist die differenz aus vin und vout mal pwm verhältniss.
Als erstes plane ich aber die messung der leerlaufspannung und dann
einstellen des MPP auf 80% der leerlaufspannung. Simpel, einfach,
bewährt.
Pepe schrieb:> Die logik ist:> Wenn zuviel spannung am ausgang leistung zurück.> Wenn zuwenig spannung am eingang leistung zurück.> Sonst leistung etwas hochfahren.
Ähm, das ist kein MPPT.
Richtig ist, das man den Ausgang begrenzen muss, für einen Bleiakku oder
so, und dann abschaltet oder zumindest reduziert.
Die Eingangsspannung muss man nicht begrenzen, aber man sollte den Strom
messen, tunlichst den Ausgangsstrom und ihn maximieren, da ein Akku eine
hinreichend konstante Spannung hat.
Die Kopplung des high side MOSFET per Kondensator finde ich nett
einfach, die Eingangsspannung sollte sich dank Elkopufferung nur langsam
ändern. Aber sind 5uF nicht etwas gross bei einer Anpassung nur über
100k ? Die Zeitkonstante liegt immerhin bei 0.5s.
MaWin schrieb:> Ähm, das ist kein MPPT.
Da steht MPP im titel.
> die Eingangsspannung sollte sich dank Elkopufferung nur langsam> ändern.
Ja, da ist ein fetter elko drin. Nur nicht eingezeichnet.
> Aber sind 5uF nicht etwas gross bei einer Anpassung nur über> 100k ? Die Zeitkonstante liegt immerhin bei 0.5s.
Richtig. Das ist eine "das teil war grad da" dimensionierung.
Pepe schrieb:> Das ist eine "das teil war grad da" dimensionierung.
5uF hört sich nach Überproduktion aus Sonderanfertigung an - ist mir
noch nie begegnet ...
s.c.n.r. schrieb:> ist mir> noch nie begegnet ...
Ist ein 4.7uF. Jetzt mit 4.7K drüber, der MaWin hat recht, 100k war
zuviel.
Initilawert für die MPP zielspannung ist 80% der leerlaufspannung. Also
pwm abstellen, Vin messen, mal 0.8 und als V_set_in speichern.
1
void getactmpp()
2
{
3
int V_meas;
4
OCR2B = maxpwm - 1; // zero load
5
delay(250);
6
V_meas = analogRead(Vin);
7
V_set_in= 0.8 * V_meas; // MPP = 80% of open voltage
8
OCR2B = pwm;
9
delay(50);
10
}
Dies macht man am anfang und kann das in intervallen wiederholen, oder
wenn grössere schwankungen im pwm wert festgestellt werden.
1
if (millis() > nextmeasTime)
2
{
3
getactmpp();
4
nextmeasTime = measInterval + millis();
5
}
Damit hat man einen leerlaufspannungsgesteuerten MPPT.
Der versuch den strom anhand in-out V differenz und pwm verhältniss zu
berechen ist bisher fehlgeschlagen.
Hab das heute RL ausprobiert an einem mini-panel.
Funktioniert.
Der regelkreis neigt an diesem 3W 15V panel zum schwingen. Denke das
panel ist zu klein. Weil der NDP6020 FET nur 20V abkann kann ich die 34V
300W panels nicht dranhängen. Neue 50V IRF4905 FET sind bestellt.
Pepe schrieb:> Initilawert für die MPP zielspannung ist 80% der leerlaufspannung.
Hallo, das ist immer noch kein MPP.
Miss den Ladestrom, und maximiere den. Geht mit einem shunt in der
Masseleitung auch einfacher als die Solarspannung zu messen.
MaWin schrieb:> Hallo, das ist immer noch kein MPP.
80% der leerlaufspannung ist ziemlich genau die temperaturkompensierte
MPP spannung.
MaWin schrieb:> Miss den Ladestrom, und maximiere den. Geht mit einem shunt in der> Masseleitung auch einfacher als die Solarspannung zu messen.
Ohne zusatz opamp?
Dein Arduino ist für eine vernünftige Regelung der Ausgangsspannung viel
zu langsam. Da hilft auch der Spielzeugkondensator am Ausgang nicht.
(Deswegen schwingt deine Regelung)
Das funktioniert mit einem Arduino nur, wenn da ein träger
Energiespeicher mit ausreichend Kapazität wie z.B. Akku dran hängt. Wenn
man direkt einen Bleiakku nimmt, dann brauchst keine Regelung des
PWM-Duties. Du kannst den Duty-Cycle direkt aus der gemessenen
Ausgangsspannung und der gewünschten Eingangs/modulspannung berechnen.
Schau dir mal die Formel für den Duty-Cycle eines Buck im
kontinuierlichen Betrieb an. (Nimm die Ausgangsspannung als konstant an)
Den Rest besorgt die Physik. Wenn sich die Spannung nicht entsprechend
einstellt, dann liegt das daran dass die Leerlaufspannung des Moduls
unter der Zielspannung ist oder die Spule eine zu kleine Induktivität
hat und damit der Regler im lückenden Betrieb arbeitet. Oder daran das
der ATMega es nicht schafft den Mosfet schnell genug ein und
auszuschalten. Hast du mal geschaut, ob die Schaltflanken sauber sind?
Die paar mA die der ATMega schafft könnten etwas knapp sein. Aber das
wirst Du dann beim IRF schon merken, wenn der Dir um die Ohren fliegt.
Pepe schrieb:> Ohne zusatz opamp?
Ja, der Arduino kann 1.1V Referenzspannung haben, legt man den shunt auf
durchschnittlich 0.25V aus kommt er direkt an einen Analogeingang und es
ergibt sich ausreichend Auflösung.
Andreas M. schrieb:> Dein Arduino ist für eine vernünftige Regelung der Ausgangsspannung viel> zu langsam.
Viel wichtiger, sein Code ist viel zu scheiße. Es ist immer eine gute
Idee, wenn der "Regler" (ich möchte das eigentlich gar nicht so nennen)
einfach mal so durch einen 500ms Delay gestört wird. Auch wenn es nur
einmal die Minute ist. Da muss man sich nicht wundern, wenn er Mist
macht.
Lern anständigen Code zu schreiben!!!
Das Problem ist, dass das Licht schwankt, d.h. dies unterliegt einem
starken "Rauschen". Das stört solche Regelungen. Ein echter MPP-Regler
schwingt auch. Allerdings können diese Schwankungen auch verwendet um
beim Einspeisen zu erkennen, ob das Netz weg ist um dann abzuschalten.
MaWin schrieb:> Ja, der Arduino kann 1.1V Referenzspannung haben
Noch besser wäre einer der "neueren" AVRs, mit 20× Gain oder 32× Gain
kann der Shunt schön klein werden.
Aber da gibt's bestimmt kein passendes Arduino-Core mit analogRead
dafür...
Kevin M. schrieb:> Viel wichtigerDieter schrieb:> Das Problem ist
Das Problem ist ganz allgemein, daß der TO noch nie ein Bauteil in der
Hand hatte, aber kürzlich wohl einen Programmier-Crashkurs abgeschlossen
hat. Und nun glaubt er, dank Arduino und ein paar Codes keine
Analogelektronik zu brauchen.
Es ist das Übliche hier (und anderswo), nur war es selten derart
ausgeprägt.
Das Ergebnis ist immer dasselbe, es wird nichts, nichts und wieder
nichts gebaut. Alles reine Theorie, und wir verschießen auch noch
sinnlos jede Menge Pulver dazu.
Das ganze Vorhaben wird eigentlich schon zur Farce, seit man die
Schottky sieht. Gerade in nem Abwärtsregler heizt die wunderbar, man
kann eigentlich gleich auf MPP verzichten. Aber wie will man ihm zu
einer realen Mosfet-Halbbrücke verhelfen, er zeichnet ja schon in dem
einfachen Plan jede Menge schwere Fehler?
Da ist schnelle Hilfe einfach albern, der Mann steht ganz am Anfang, hat
für einen sinnvollen Regler dieser Art mehrere Jahre hartem Lernens vor
sich.
Uwe S. schrieb:> Das Problem ist ganz allgemein, daß der TO noch nie ein Bauteil in der> Hand hatte,
Das andere Problem, dass wir noch immer auf das reale MPPT Regler
Exemplar vom alles viel besser wissenden Uwe warten.
MaWin schrieb:> Das andere Problem, dass wir noch immer auf das reale MPPT Regler> Exemplar vom alles viel besser wissenden Uwe warten.
Im Anhang. Step-Up, echtes MPPT, 150W. Von so ziemlich jeder
Eingangsspannung auf 24-48V Akku. Selbstverständlich ohne Schottky.
Superschnell und exakt, da rein analog, was sonst...
Und ich halte dich für realitätsnah genug, jetzt nicht nach Layout und
Schaltplan zu fragen.
Ich hab ein upgrade gemacht. Anstatt 328p einen china clone der 32mhz
kann und 12bit AD kann. Damit ist PWM jetzt 125khz bei 256 steps
auflösung, original war 100khz mit 160 steps.
Bild oben verhalten wenn solar einbricht. Soll solar ist 1200, soll out
ist 800. Wie erwartet nimmt er V-out zurück bis V-in wider stimmt. Das
sägezahnverhalten könnte messfehler bei aktivem pwmpuls sein, oder zu
geringe pwm auflösung.
Der arduino ist für regler keinesfalls zu langsam, nur die pwm
peripherie ist für diese anwendung etwas lahm.
Pepe schrieb:> Das> sägezahnverhalten
War der regel-algo. Korrigiert. Da schwingt nix mehr.
Jetzt muss ich irgendwie den strom messen und "hill climb" versuchen.
Pepe schrieb:> Müssten ja fast 10A sein
Ziemlich genau 10A sind es in meinem Fall, da die Zellen diesen Strom
liefern. Muss von 12(17)V auf einen 48V-Akku. Bei z.B. 24 auf 48V hätte
der Regler sogar noch mehr Leistung. Bei 15g Gewicht oder so...
Die Drossel ist eine IHLP5050. Deren Induktivität sinkt erst irgendwo
bei 17A um 20% ab.
Der Regler ist auf sehr dünnem FR4 gebaut, so daß man ihn bei hoher Last
einfach auf einen KK bzw. sogar den Rahmen der Zellen kleben kann. Also
Kühlung durch die Platine hindurch.
Pepe schrieb:> War der regel-algo. Korrigiert. Da schwingt nix mehr.
Und die Ausgangsleistung verheizt Du in einem Widerstand?
An dem Diagramm ist was faul wenn Dein Vout-Soll wirklich 800 wäre, dann
müsste Vin in dem ersten Bereich viel höher sein. Oder der Regler regelt
dort gar nicht nach Vout-Soll? Kaum zu glauben, das der stabil an der
Regelgrenze zwischen Vin und Vout Regelung hängt. Mach mal ein Diagramm
mit Leerlauf am Anfang (Duty := 0), Aufdrehen des Reglers bis Uein-Soll,
Abschattung und zum Schluss Lasttrennung. Danach können wir über das
Schwingverhalten diskutieren. Übrigens sieht man in Deinem Diagramm sehr
wohl eine Schwingung.
Pepe schrieb:> Hall current sensor?
Shunt 15mR. Es klappte dank Chopper-OP auch mit nur 1mR, aber die
Genauigkeit war doch zu schlecht. Er muss ja nicht nur das eine Prozent
Stromdifferenz verursacht durch die permanente Pulsweitenvariation
sauber erkennen, sondern das auch noch bei niedriger Solarleistung, z.B.
5W. In dem Moment hat man nur noch einstellige µV Differenz...
Pepe schrieb:> Geeignet?
Mir wäre er zu langsam und hätte zu viel Eigenverbrauch.
Am Ende muss ein MPPT-Regler ja auch noch Sinn machen. Er bringt ja eh
nur ein paar Watt mehr als ein Linearregler. Wenn man die durch
ungeeignete Bauteile gleich wieder verheizt, wird alles schnell zur
Farce.
Und der Eigenverbrauch ist 24/7 gegeben, die Sonne scheint im Winter
aber gern mal nur 5h die Woche...
Wird denn nun wenigstens noch der Versuch unternommen, oder kann man es
als ungelöste Schnapsidee Nr. 17.438 abhaken?
Falls du tatsächlich den Lötkolben schwingst, beachte, daß die Diode
vorm Gate falsch gepolt ist. Da gehört ggf. eine Zener hin.
Und der Wandler hat wie hier gezeigt noch nicht mal die Möglichkeit der
Nachtabschaltung. Die Zelle wird während der Dunkelheit also zur
Heizung.
Uwe S. schrieb:> Wird denn nun wenigstens noch der Versuch unternommen
Augebaut und getestet.
> beachte, daß die Diode vorm Gate falsch gepolt ist.
Du hast die funktion dieser diode nicht begrifen.
Die sorgt dafür dass V-gate zwischen V-in und V-in minus 5V bleibt.
> Und der Wandler hat wie hier gezeigt noch nicht mal die Möglichkeit der> Nachtabschaltung. Die Zelle wird während der Dunkelheit also zur> Heizung.
Notfalls durch eine diode zu machen.
Aber ich denke die diode wird im betrieb mehr verluste verursachen als
ein 17V panel eine nacht lang mit 12V zu bestromen.
Pepe schrieb:>> beachte, daß die Diode vorm Gate falsch gepolt ist.>> Du hast die funktion dieser diode nicht begrifen.
Ich sehe nur eine Diode, die das Gate des Mosfets gegen positive
Spannungen kurzschließt. Keine Ahnung, wie der z.B. +5V oder mehr am
Gate bekommen soll.
Pepe schrieb:> Aber ich denke die diode wird im betrieb mehr verluste verursachen als> ein 17V panel eine nacht lang mit 12V zu bestromen.
Käme auf den Zellentyp an. Aber selbst mit Monokristallinen macht der
Rückstrom mehr aus als alles, was der MPP-Regler an Gewinn verzeichnen
könnte.
Pepe schrieb:> Augebaut und getestet.
Hättest du mal ein Bild?
Uwe S. schrieb:> Keine Ahnung, wie der z.B. +5V oder mehr am> Gate bekommen soll.
Das ist der sinn. Der braucht -5V am gate um durchzuschalten.
https://www.farnell.com/datasheets/59594.pdf> Aber selbst mit Monokristallinen macht der> Rückstrom mehr aus als alles, was der MPP-Regler an Gewinn verzeichnen> könnte.
Werden das mal ausmessen.
> Hättest du mal ein Bild?
Wenn ich dann wider in die werkstatt laufen kann.
Hab erst grad mit der lochrasterplatine angefangen, original ist
steckbrett.
Pepe schrieb:> Der braucht -5V am gate um durchzuschalten.
Na sag´ ich doch, du hast das erste Mal ein Bauteil in der Hand. Und
auch ne Solarzelle.
Wo nimmst du nur den Mut her, einen getakteten MPP-Wandler bauen zu
wollen? Ich bin damals sogar den ersten LED-Blinker ehrfürchtiger
angegangen...
Pepe schrieb:> Uwe S. schrieb:>> Keine Ahnung, wie der z.B. +5V oder mehr am>> Gate bekommen soll.
In der Zeichnung ist ein P-Kanal zu sehen, da würden die -5V passen.
Dein Link (und das genannte Bauteil) sind aber ein N-Kanal.
Uwe D. schrieb:> In der Zeichnung ist ein P-Kanal zu sehen, da würden die -5V passen.
Stimmt, ich hatte gleich nach dem Bauteil-DB geschaut...
Mir ist dann aber spanisch, wie er bereits "Erfolge" gehabt haben will.
Er schreibt oben, daß der NDP6020 wohl ungeeignet sei. Also muss er ja
wohl diesen Mosfet auch genutzt haben. Nur passiert mit nem N-Kanaler in
der Beschaltung rein gar nichts.
Pepe schrieb:> Jochen Stromberg schrieb:>> Wo ist der mpp Tracking Algorithmen?>> Noch nicht implementiert. Das ist MPP. Trackt nicht.>>> Muss da nicht auch der Strom mit rein zwecks Leistungsberechnung?>> Der strom ist die differenz aus vin und vout mal pwm verhältniss.>> Als erstes plane ich aber die messung der leerlaufspannung und dann> einstellen des MPP auf 80% der leerlaufspannung. Simpel, einfach,> bewährt.
Das ist MPPT „light“ und sobald ein bissel Schatten auf das Modul kommt,
dann ist es vorbei. Aber ja, besser als reines PWM-Laden.
Und die Diode im Ausgangskreis frisst weitere Prozente Deines
MPP-Vorteils auf - bei Deinem 300W Modul, dass bei 34V fast 10A liefert
und bei angenommenen 80% Wirkungsgrad (ja - bitte entspannt bleiben, es
ist wahrscheinlich weniger) Deines MPP dann 240W bei 12V dann 20A
liefert… Damit werden dann 20A x 0,45V = 9W verheizt.(SBX2540)
Bei der Diode sind es (hoch-optimistisch) 8K/W - also 9W x 8K/W = 72K +
25C ==> mehr als 100C
Geht mit dem Teil nicht, denn ab 50C muss zwingend der Strom reduziert
werden… Du musst dann schon einmal einen fetten Kühler vorsehen…
So, also brauchst Du etwas „dickes“ und schnelles an Diode - das Teil
kostet dann mit Kühler mehr als die Masse der restlichen Bauteile…
Solange Du kleine Ströme hast, ist das für den Einstieg „beherrschbar“.