Für meinen PV-Lader benötige ich in der MPP-Tracking-Stufe eine Sollwertvorgabe für einen PWM-Regler im Bereich von 0..5V. Ich kenne zwei Möglichkeiten, wie man das praktisch hinkriegen könnte. Entweder man nimmt einen DAC, der diese Spannung passend ausspuckt oder man erzeugt mit einem Timer des µC ein PWM-Rechtecksignal und schickt dieses über einen RC-Tiefpass, wo sich eine zum PWM-Tastverhältnis passende Ausgangsspannung einstellen sollte. Im Moment favorisiere ich die DAC-Variante, aber ich habe noch keinen gut passenden DAC gefunden. Brauchen würde ich 10 Bit und 0V(GND)..5V Ausgangsspannung, parallele Ansteuerung wäre okay. Gefunden habe ich 12 Bit mit SPI (MCP4921). Wenn sich nichts anderes findet, nehme ich den... aber SPI brauche ich eigentlich nicht. Oder evtl. ein R2R-Netzwerk mit 10 Controller-Pins nachbilden? Wäre eine dritte Möglichkeit, aber aus meiner Sicht nur eine Notlösung wenn beide anderen unpassend wären. Hintergrund: Da ich mit den AVR-Controllern recht fit bin, wird ein AVR die Steuerung des PV-Laders übernehmen. Die Erzeugung des PWM-Signals für den Leistungsteil des MPP-Trackers überlasse ich einem PWM-Regler. Dann brauche ich mich nicht mit der Regelung in Software herumzuschlagen (Nichtlinearitäten der Schaltung/Bauteile, schnell getakteter Timer um bei der erforderlichen Auflösung noch eine ausreichende PWM-Frequenz hinzukriegen). Technisch ist das ein StepUp-Drosselwandler, der entweder auf Eingangsstrom oder Eingangsspannung geregelt wird, damit die PV-Module nahe ihres Leistungsmaximums betrieben werden können.
Bei geglätteter PWM bleibt die Herausforderung zwischen Settle Time und Welligkeit des Ausgangssignals. Kleines RC gibt Welligkeit aber schnelle Settle Time und grosses RC gibt wenig Welligkeit, aber träge Antwortzeit. Je höher die PWM Frequenz, desto einfacher wird es. Davon abgesehen ist PWM sicher der geringste Aufwand. R2R verschwendet halt eine Menge Portbits und die Widerstände sollten wirklich genau sein.
:
Bearbeitet durch User
Ben B. schrieb: > Brauchen würde ich 10 Bit > > Da ich mit den AVR-Controllern recht fit bin Dann nimm einen entsprechenden AVR.
Wenn man weiss wie es geht dann kann man mit PWM ein viel besseres Ausgangssignal hin bekommen. Allerdings dann lahm! Ich sag mal so Pi x Auge 16Bit mit 1s Settlingtime. Es gibt natuerlich auch gute 16Bit DAC, aber halt teuer. Aber 10Bit ist eigentlich Kindergeburtstag. Da kannst du beides nehmen. Schon fast Geschmacksache. Vanye
Ben B. schrieb: > Im Moment favorisiere ich die DAC-Variante, aber ich habe noch keinen > gut passenden DAC gefunden. Brauchen würde ich 10 Bit und 0V(GND)..5V > Ausgangsspannung DAC101C081CIMK/NOPB: I2C mit 4 Adressen im SOT-23-6 für 1.50. Und mit ziemlich kräftigem Rail-to-Rail Ausgang, PWM braucht hinter dem Filter einen OP.
Ben B. schrieb: > Oder evtl. ein R2R-Netzwerk mit 10 Controller-Pins nachbilden? Klar, mit 0,1% widerständen und ohne Berücksichtigung der Bahnwiderstände des µC. So eine richtige Prinzipschaltung, die auch nur "im Prinzip" funktioniert. Matthias S. schrieb: > Je höher die PWM Frequenz, desto einfacher wird es. Die PWM-Ausgangsfrequenz muss für 10 Bit 1024 mal höher sein als die gewünschte Grenzfrequenz des DAC. Wenn der Analogwert sich also mit 1Hz ändern soll, dann muss die PWM-Ausgangsfrequenz 1kHz sein. Dafür muss dann der 10-Bit-PWM-Zähler mit 1MHz getaktet werden: - http://www.lothar-miller.de/s9y/archives/11-RC-Glied-fuer-PWM.html Wenn du schneller als mit 1Hz tracken willst, dann musst du schneller takten. Aber ich weiß aus praktischer Erfahrung: du brauchst keine 10 Bit fürs MPP-Tracking. Man bekommt das mit 8 Bit tadellos hin. Ben B. schrieb: > MCP4921 Nimm den.
:
Bearbeitet durch Moderator
Langsam ist völlig okay. Ich plane zwar Schattenmanagement, sprich alle 10..20 Minuten einmal durch den kompletten MPPT-Bereich suchen (mehr ist es nicht), aber wenn das 10 Sekunden dauert ist das nicht schlimm. Bei der PWM/RC-Variante habe ich nur Sorgen wegen des Ripple, den man nie ganz rausgefiltert bekommt. Nicht, daß da irgendwelche Resonanzen entstehen und der Regler dann in manchen Bereichen instabil läuft. Ja stimmt, R2R-Netzwerk selbst bauen kann man wegen Ungenauigkeit bzw. dadurch entstehender Nichtlinearität wohl schnell wieder vergessen. Danke für den Hinweis, das hatte ich nicht auf dem Schirm. Ob 8 Bit Auflösung reichen bin ich mir unsicher. Wahrscheinlich schon, aber Bits auslassen wenn man sie nicht braucht ist einfacher als Bits hinzufügen, wenn man sich herausstellt, daß man sie braucht. Ich bin mir noch nicht sicher, ob ich die Regelung als Strom- oder als Spannungsregler aufbaue. Ein Spannungsregler darf wahrscheinlich deutlich träger sein als ein Stromregler... das wäre einfacher zu bauen, aber ich wollte einen sehr weiten Eingangsspannungsbereich (25...250V) abdecken, damit das Ding auch an einem einzelnen PV-Modul laufen kann. Dann braucht man bei der der Spannungsregler-Variante schon 10 Bit für die unteren Spannungen. Ob so geringe Spannungen Sinn ergeben, weiß ich im Moment noch nicht. Kann sein, daß die angestrebten 15A Eingangsstrom dabei nur bei unpraktikabel engem Tastverhältnis erreicht werden und dann funktioniert das nicht. Das ist das gleiche Problem, was der China-Lader meines Kumpels gerade hat. Wenn das von mir angestrebte Design funktioniert, muss die MPPT-Stufe als StepUp-Drosselwandler 400..450V schaffen. Mal sehen, was in einer oder zwei wiederverwendeten PFC-Drosseln steckt. Ich könnte auch den Trafo aus einer 96V-USV nehmen. Dann wären es nur 170V maximal, allerdings sinkt das bei leerem Akku noch weiter ab und die MPP-Spannung darf nicht höher sein als diese Zwischenkreis-Spannung, sonst funktioniert das MPP-Tracking nicht mehr.
:
Bearbeitet durch User
Wenn das Ganze sowieso selbst zusammengerickelt werden soll: warum steuert eigentlich die vom µC ausgegebene PWM nicht einfach direkt den entsprechenden Transistor an? Denn der Witz an der ganzen Sache ist ja: die Solarzellen sind kurzschlussfest. Mehr als den maximalen Strom können die nicht liefern. Wenn also der Schalttransistor vom Stepup "aus Versehen" mal eingeschaltet bleibt, dann kommt da nicht mehr Strom als sowieso kommen kann. Ben B. schrieb: > Ich bin mir noch nicht sicher, ob ich die Regelung als Strom- oder als > Spannungsregler aufbaue. Ich würde das ganze Ding gleich als MPP-Regler aufbauen.
:
Bearbeitet durch Moderator
Habe ich drüber nachgedacht, aber wenn ich die PWM-Regelung des StepUp in Hardware mache, habe ich in Software ein Problem weniger, brauche mich nicht mit einem PID-Regler usw. herumschlagen. Das Programm und die Messungen werden dadurch viel entspannter.
Zu der Frage was ist besser, da gibt es mehrere Aspekte - Geschwindigkeit - Genauigkeit - Aufwand - Robustheit bzgl. Geschwindigkeit, die Faustformel bei 10 Bit Auflösung und 1Hz Einstellzeit daraus folgt 1.024kHz PWM, das hängt ja auch vom Filter ab, bei 6dB pro Oktave, sind das 10 Oktaven, also 60 dB, das ist dann 1/1000 Aber man kann ja auch 12dB oder 18dB Filter bauen, dann ist man schon mit PWM Frequenz niedriger. Ein DAC ist so schnell wei man ihn auswählt und ansteuern kann und hat keinen Ripple der ihn langsamer macht bzgl. genauigkeit, beim PWM wenn man mit dem µC Pin ansteuert dann hat man die Toleranz der Versorgung und den Spannungsabfall an den µC Ausgängen. Da kann man dann entweder Analogschalter nehmen die niederohmig sind oder auch die Spannung per ADC zurückmessen, auch zu beachten das die µC Pin evtl. nicht auf 0V runter gehen können bzgl. Aufwannd ist PWM mit einem passiven 12dB oder 18dB Filter und rückmessung per ADC und evtl. noch eine refernzspannung messen geringer als DAC, zumindest was den Aufbau angeht auf Lochraster, wenn man PCB macht wäre es egal bzgl. Robustheit, PWM ist ziemlich Robust wenn man es macht wie gerade beschrieben mit Rückmessung etc. Das PWM selber über Timer ist ziemlich stabil, wenn die Frequenz variiert spielt es keine Rolle, und einen einfache Referenz kriegt man auch ganz gut hin Alternativ könnte man natürlich auch einen µC suchen mit eingebauten DAC, wie sie STM Controller, ist nicht schwieriger als ATMEL und die Entwicklungsumgebung lässt einem schnell erste Erfolge sehen
:
Bearbeitet durch User
Man kann sich Mühe geben wie man will, irgendwas vergisst man immer oder hat man zu wenig Beachtung beigemessen. :) Also was ich vor habe ist, einem PWM-Regler wie dem TL494 einen Sollwert im Bereich von 0..5V vorzugeben (im Falle des Spannungsreglers, beim Stromregler müsste man das mit einem Spannungsteiler deutlich reduzieren), so daß dieser die Eingangsspannung auf 25..250V regelt. Wenn man dabei 0..250V vorgeben kann, spielt das keine Rolle - unter 25V wird dann einfach nicht genutzt. Eine Auflösung von 250mV ist wahrscheinlich ausreichend, besser schadet nicht, aber ich kann mit dem 10 Bit ADC des AVR auch nicht genauer messen. Die Geschwindigkeit ist ziemlich unwichtig, bei der favorisierten Spannungsregler-Variante ändert sich der MPP der PV-Module nur sehr langsam und wenn man den kompletten Regelbereich im Rahmen des Schattenmanagements in 10 Sekunden einmal komplett durchfahren kann, dann genügt das. Das braucht keine hohe Bandbreite wie ein Audio-DAC oder so. Die absolute Genauigkeit muss ebenfalls nicht weltbewegend sein, das wird durch den MPP-Tracker ausgeglichen. Der erste MPP-Tracker, den ich vor vielen Jahren gebastelt habe, arbeitete relativ. Also "ändere den PWM-Wert um X", nicht "setze die Spannung auf X", damit erspart man sich jede Kalibration. Anderer µC... Also worüber ich noch ernsthaft nachdenke, ist der ESP32. ADC und DAC über SPI oder I2C, paar Steuerleitungen über GPIOs, würde funktionieren. Ich bekäme sogar einen höher auflösenden ADC, den ich mir beim AVR so oft wünsche, evtl. mit einem Kanal zu wenig (bräuchte 5, der ADS1115 hat 4). Leider habe ich keinen guten Mentor für die Arduino- Entwicklungsumgebung und einige meiner Anfänger-Versuche damit zeigten sehr unerwartete Ergebnisse. Wahrscheinlich würde ich hier hinterher mit vielen trivialen Arduino-Fragen nerven wenn ich mich für den ESP32 entscheide. Damit mache ich mir hier vielleicht wenig Freunde, obwohl ichs gerne versuchen würde.
:
Bearbeitet durch User
Ben B. schrieb: > Ich bekäme sogar einen höher auflösenden ADC, den ich mir beim AVR so > oft wünsche, evtl. mit einem Kanal zu wenig (bräuchte 5, der ADS1115 hat > 4). ADS1115 ist I2C, dazu passend wäre als D/A der MCP4725, ein nettes Teil. Ben B. schrieb: > Da ich mit den AVR-Controllern recht fit bin, wird ein AVR die Steuerung > des PV-Laders übernehmen. > Leider habe ich keinen guten Mentor für die Arduino- > Entwicklungsumgebung und einige meiner Anfänger-Versuche damit zeigten > sehr unerwartete Ergebnisse. Dann arbeite Dich ein oder verwende AVR, mit denen Du angeblich vertraut bist. > Wahrscheinlich würde ich hier hinterher mit > vielen trivialen Arduino-Fragen nerven wenn ich mich für den ESP32 > entscheide. Damit mache ich mir hier vielleicht wenig Freunde, Als wenn Du darauf Wert legen würdest, tust Du in anderen Threads ja auch nicht.
Sagen wir es so, ich habe die Möglichkeit einer Freundschaft bei manchen
Leuten bedauerlicherweise aufgeben müssen und wenn ich hier noch mit
Arduino-Anfängerfragen komme, die für manche evtl. absolut trivial sind,
dann wirds wahrscheinlich nicht besser. Eine kurze knappe Antwort auf
solche Fragen ist für viele ungeachtet ihrer fachlichen Kompetenz leider
nicht machbar, sondern der dumme Unwissende muss zuerst ordentlich
runtergeputzt werden bevor man sich zu einer Antwort erbarmt.
> MCP4725
Den schaue ich mir mal an, danke für den Hinweis!
Matthias S. schrieb: > Bei geglätteter PWM bleibt die Herausforderung zwischen > Settle Time und Welligkeit des Ausgangssignals. Ja, aber niemand zwingt einen, bei einem passiven Filter 1. Ordnung zu bleiben -- außer der unüberwindlichen Abscheu der Informatiker gegen (zusätzliche) Hardware. Ein Sallen/Key 3. Ordnung geht mit einem OPV plus Hühner- futter und bietet 60dB/Dekade.
Ben B. schrieb: > sondern der dumme Unwissende muss zuerst ordentlich > runtergeputzt werden bevor man sich zu einer Antwort erbarmt. Du hast immer die Möglichkeit, solche Antworten gepflegt nach /dev/null zu verschieben. Hauptsache, Du verkneifst es Dir, darauf zu antworten. Beachte einfach nur solche Antworten, die Dir helfen.
Ben B. schrieb: > brauche mich nicht mit einem PID-Regler usw. herumschlagen. Ein MPP-Tracker braucht keinen Regler im üblichen Sinn. Er "regelt" sich selber auf den MPP, indem er ständig schaut, ob "links" oder "rechts" vom aktuellen Arbeitpunkt (also einfach mit mehr oder weniger Tastverhältnis) eine Stelle mit mehr Leistung zu finden ist. Der aktuelle MPP wird also nicht nur "alle 10..20 Minuten" gesucht. > Das Programm und die Messungen werden dadurch viel entspannter. Du solltest das Konzept (d)eines MPP-Trackers nochmal überdenken.
Öhm... was hat Dich zu der Annahme verleitet, daß ich nicht wissen würde wie ein MPP-Tracker arbeitet bzw. daß der MPP ständig verfolgt wird? Bei der MPP-Suche über den kompletten Regelbereich gehts nur um Schattenmanagement. Bei Teilbeschattung eines Moduls/Strings kann sich ein lokales Maximum ausbilden, welches weniger Leistung liefert als das globale Maximum. Der MPP-Tracker muss aus einem lokalen Maximum einen Bereich mit sinkender Leistung durchfahren, um ein (höheres) globales Maximum zu finden - das tut er ohne Schattenmanagement nicht und bleibt im lokalen Maximum hängen. Daher macht man in bestimmten Abständen einen schnellen Scan über den kompletten Regelbereich, merkt sich dabei das globale Maximum und nimmt es danach als Startpunkt für den MPP-Tracker. Der macht dann die Feinarbeit.
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.