MPPT-Laderegler am STM32F334C8T6

Die Kommentare in meinen vorherigen Artikeln haben wiederholt die durchaus vernünftige Frage aufgeworfen: "Warum DC / DC-Wandler auf einem Mikrocontroller herstellen, wenn es fertige gibt?" und als Antwort erwähnte ich ständig als auffälligstes Beispiel einen Laderegler mit MPPT-Algorithmus. Aber um dies zu sagen und zu zeigen ... es ist viel interessanter und klarer, also erzähle ich Ihnen heute von meinem kleinen trägen Projekt eines solchen Controllers.


Das Controller-Projekt ist geöffnet, alle Quelldateien sind auf github verfügbar. Der Controller selbst ist recht einfach zu implementieren, basiert auf der Topologie von Buck, verwendet verfügbare Komponenten und bietet eine gute Wiederholbarkeit auch ohne viel Wissen. Das Layout der Anschlüsse und Komponenten ist so konzipiert, dass dieser Controller sowohl als Debug-Board für das Studium der Leistungselektronik als auch als fertiges Gerät verwendet werden kann.


MRT-Fotos


Kapitel 1. Was ist der MPPT-Algorithmus und warum wird er benötigt?


MPPT selbst ist der Prozess zum Ermitteln des maximalen Leistungspunkts eines Solarmoduls. Das Vorhandensein dieses Algorithmus in der Steuerung ermöglicht es unter bestimmten Bedingungen, die Effizienz der Verwendung von Solarmodulen erheblich zu steigern. Wenn ein Hersteller eine Leistung auf das Panel schreibt, z. B. 100 ... 200 ... 250 ... 320 W, bedeutet dies die Nennleistung des Solarpanels bei einer Sonneneinstrahlung von 1000 W / m 2 . Natürlich nehmen die Hersteller die Paneele nicht mit nach draußen und warten nicht auf ideale Wetterbedingungen. Daher wird dieser Wert als Standard akzeptiert und auf dem Labortisch "erzeugt".


Unter realen Bedingungen und bei klarem Himmel reicht die maximale Sonneneinstrahlung von 250 W / m 2 irgendwo in Norwegen bis 900-1000 W / m 2 in Nordafrika. Daraus folgt, dass im Norden das Solarpanel seine deklarierte Leistung nicht abgeben wird, in Afrika ist es jedoch einfach. ABER ... Sobald Wolken am Himmel erscheinen, die das Solarpanel verdecken, nimmt der Grad der Sonneneinstrahlung ab. Erinnern Sie sich an das Wetter des letzten Monats, wie viele ideale Sonnentage haben Sie gesehen? Wenn Sie aus Krasnodar kommen, dann vielleicht viel, aber die Bewohner des mittleren Wolkenstreifens sind definitiv mehr.


Was ist eigentlich das Problem ... Mit einer Verringerung der Beleuchtung des Solarmoduls ändert sich die Position des maximalen Leistungspunkts (TMM) auf dem CVC des realen Solarmoduls. Lassen Sie uns nun herausfinden, was TMM ist ... Dazu nehmen wir ein Solarpanel mit der angegebenen Leistung von 200 W (ich habe Delta BST200-24P) und entfernen die Strom-Spannungs-Kennlinie (I-V) bei einer Sonneneinstrahlung von 1000 W / m 2 daraus :


VAC des Solarpanels


TTX Solarpanel


Wenn Sie sich das Leistungsdiagramm ansehen, wird deutlich die Spitze angezeigt, in der das Panel die maximal mögliche Leistung liefert - dies ist TMM. Wenn Sie die Linie von diesem Punkt aus absenken, schneidet sie den CVC - die Koordinaten dieses Punkts sind genau das Ergebnis, das Sie finden müssen. Einfach ausgedrückt: "MPPT ist der Prozess des Findens eines Punktes auf der I-V-Kennlinie, an dem das Produkt aus Strom und Spannung einen Maximalwert hat."


Darüber hinaus ist darauf zu achten, dass das Solarpanel etwas mehr abgeben kann, das ist normal, weil Ihre Wirksamkeit hängt nicht nur von der Sonneneinstrahlung ab, sondern auch von der Temperatur. Wenn Sie das Panel in die Sonne stellen, erwärmt es sich nach einigen Stunden ziemlich stark und die Leistung sinkt um etwa 10%.


Lassen Sie uns nun herausfinden, was genau der Laderegler tut und warum er eine MRT benötigt. Wie bereits erwähnt, ändert sich der Sonneneinstrahlungsgrad während des Betriebs erheblich: Wolken, bewölktes Wetter, Morgendämmerung bzw. Sonnenuntergang, und die I-V-Charakteristik des Solarpanels ändert sich ebenfalls:


CVC vor Sonneneinstrahlung


Die Grafik zeigt die I - V - Kennlinie für 4 Fälle: 1000, 800, 600 und 400 W / m 2, und dementsprechend haben wir für jeden Fall einen eigenen Punkt auf der I - V - Kennlinie, bei dem das Produkt aus Strom und Spannung einen Maximalwert hat. Die Aufgabe des Ladereglers mit MPPT besteht darin, den maximalen Leistungspunkt für bestimmte Wetterbedingungen zu ermitteln. Zum Beispiel leben Sie irgendwo in Woronesch, Sie haben Wärme und viel Sonnenenergie und Sie finden TMM und holen das Beste aus der Energie heraus, aber nach 15 Minuten stieg eine Wolke über Ihre Paneele und schloss die Paneele teilweise und der Sonnenwert änderte sich, und daher änderte sich die I-V-Charakteristik Paneele. Damit sich der Laderegler an neue Bedingungen anpassen kann, muss er mit einer bestimmten Frequenz beispielsweise alle 5 Minuten Berechnungen durchführen und nach TMM nach einem neuen CVC suchen.


Es gibt viele TMM-Suchalgorithmen, die von den einfachsten "0,8 * U xx " bis zu verschiedenen Scanalgorithmen mit neuronalen Netzen reichen. Ich werde die Algorithmen und ihre Implementierung im Code jedoch in einem separaten Artikel genauer beschreiben. Ich hoffe, Sie verstehen, was TMM ist und warum wir danach suchen. Jetzt können Sie direkt zur Drüse gehen.


Kapitel 2. Technische Daten und Controller-Funktionalität


Nun muss entschieden werden, welche Steuerung die erforderliche Funktionalität bereitstellen soll. Zunächst lädt der Controller die Batterie auf. Daher muss am Ausgang eine CC / CV-Steuerung (Stabilisierung von Strom und Spannung) implementiert werden. Dazu müssen Sie den Strom und die Spannung am Ausgang messen. Zweitens ist es für die Suche nach TMM erforderlich, die I - V - Charakteristik des Solarpanels zu messen, was bedeutet, dass Strom und Spannung am Eingang gemessen werden müssen. Drittens sollte es einen Abwärts-Gleichstrom / Gleichstrom geben, der die Eingangsspannung auf 12 oder 24 V senkt. In diesem Fall handelt es sich um einen synchronen Buck. Auf diese Weise können Sie die Grundfunktionalität des Geräts implementieren. Das Funktionsdiagramm sieht daher folgendermaßen aus:


Funktionsplan


Wie Sie sehen können, gibt es nichts Kompliziertes, die Schaltung ist dem Beispiel aus diesem Artikel sehr ähnlich und die einzigen Unterschiede bestehen in den zusätzlichen Rückkopplungsschaltungen zur Implementierung des TMM-Suchalgorithmus und des Ladevorgangs. Darüber hinaus ist es erforderlich, einen Schutz vor Überhitzung durch Durchströme zu implementieren, einige Schnittstellen für die Kommunikation mit der Außenwelt hinzuzufügen und die Firmware bequem zu aktualisieren.


Technische Eigenschaften:

  • Eingangsspannung: 15 ... 60V
  • Ausgangsspannung: 12 / 24V
  • Nennausgangsstrom: 20A
  • MRT-Algorithmen: Ja
  • Konvertierungsfrequenz: 100 kHz
  • Überhitzungsschutz: Ja
  • Durch Stromschutz: Ja
  • Batterieschutz: OVP und OCP
  • Schnittstellen: USB, Modbus
  • Ressource: mindestens 50.000 Stunden
  • Gesamtabmessungen: 1109020 mm

Diese Lösung enthält keine besonderen Probleme. Die Hauptursache ist die erhöhte Zuverlässigkeit, die Effektivität von TMM-Algorithmen und die Aufrechterhaltung angemessener Steuerungskosten. Von den Annehmlichkeiten wurde beschlossen, galvanisch entkoppeltes USB zum Einstellen und Flashen des Steuer-Mikrocontrollers zu verlegen. + Es kann zum Debuggen verwendet werden, wenn Sie SWO nicht mögen. Für die Implementierung der Fernsteuerung und -überwachung wurde der RS-485 installiert, der zuverlässig und kostengünstig zu implementieren ist und es Ihnen ermöglicht, die Kommunikation über eine Entfernung von 1000 Metern zu organisieren. Von Wi-Fi und anderen Dingen lehnte das Radio sofort ab, weil Die Steuerung wird normalerweise in einer Metallplatte und optional in einem Stahlbetongebäude betrieben.


Kapitel 3. Komponentenauswahl


Auf KDPV ist ersichtlich, dass das Gerät aus zwei Leiterplatten besteht: dem 4-Lagen-Steuermodul und der 2-Lagen-Hauptplatine. Aufmerksam kann sein, dass das Steuermodul der Lösung aus dem letzten Artikel ähnelt, nur gründlich überarbeitet. In der Tat wurde nach dem Testen der vorherigen Version der Steuerplatine und nach Diskussionen in den Kommentaren beschlossen, eine Reihe globaler Änderungen vorzunehmen:


  • Verweigerung der vertikalen Installation im Stecker und Übergang zur horizontalen. Dies ermöglichte es uns, das Problem mit dem Stecker zu lösen und auf die üblichen 2,54-mm-PLS zu verzichten sowie die Höhe des Geräts erheblich zu reduzieren. Bei der vertikalen Version würde die Höhe des Controllers 60 mm und nicht 20 mm betragen, und es besteht eine große Chance, die Steuerplatine abzubrechen. Jetzt hebt es sich nicht vom Hintergrund der anderen Komponenten ab und nimmt dennoch wenig Platz ein;
  • Plattenabmessungen auf 90x35 mm reduziert;
  • Der STM32F334R8T6-Controller wurde durch einen kompakteren und billigeren STM32F334C8T6 ersetzt. Dieser Austausch führte auch zu einer Verringerung der Anzahl der Kanäle zur Steuerung der Halbbrücke von 5 auf 4. Wie die Praxis gezeigt hat, übernimmt dieser Controller die Steuerung nicht sofort durch 5 Halbbrücken, es sei denn, es handelt sich um sehr einfache Algorithmen. Auf dieser Grundlage wurde beschlossen, das LQFP-64-Paket zugunsten des LQFP-48 aufzugeben.
  • USB galvanisch isoliert, genauer gesagt, die USB-UART-Brücke hinzugefügt, weil Der Mikrocontroller selbst verfügt nicht über eine USB-Hardwareschnittstelle.
  • PHY-Chip für RS-485 von der Steuerplatine entfernt, as Nicht jeder braucht es und nicht immer, aber für seine mögliche Verwendung werden ein UART und ein zusätzliches GPIO zum Empfangen / Senden der Steuerung an den Anschluss ausgegeben. Auch jetzt können Sie auf der Hauptplatine galvanisch isoliertes PHY platzieren und sind nicht an meine Entscheidung gebunden.
  • Zusätzlich zur SWD-Schnittstelle wurde beschlossen, SWO an den Debugging-Connector auszugeben, um das Debuggen des Programms zu vereinfachen.

Vorstand


Fahren wir nun mit der Auswahl der Komponenten für den Haupt- (Leistungs-) Teil des Konverters fort. In meiner vorherigen Geschichte über die Buck-Topologie habe ich über die Auswahl der Leistungskomponenten (Transistoren, Kondensatoren, Induktivitäten) und die Methode zur Berechnung ihrer Nennwerte gesprochen. Heute möchte ich etwas mehr über ebenso wichtige Komponenten sprechen, nämlich über den Power Key Management-Treiber, aktuelle Sensoren und mehr.


Stromsensor

Um die Batterieladung zu steuern und die Strom-Spannungs-Kennlinie des Solarpanels zu messen, muss ein Gleichstrom im Bereich von 0 bis 20 A gemessen werden. Es gibt nicht viele Möglichkeiten, Gleichstrom zu messen. Die effektivsten und einfachsten Methoden sind ein Stromshunt und ein Hall-Effekt-Sensor. In der ersten Version habe ich eine Reihe von "Shunt + INA194" ausprobiert. Die Option funktioniert im Allgemeinen, aber der Monitor selbst war ziemlich laut und es gab ein Problem beim Messen von Strömen unter 3-4A. Das Problem wurde gelöst, indem der Nennwert des Shunts und des Digitalfilters erhöht wurde, aber dann die auf den Shunt in Form von Wärme abgegebene Leistung zunahm, was ich nicht sehr wollte.


Anfangs habe ich die Option mit der Verwendung von Hallsensoren sofort geworfen, nämlich der ACS-Serie (zum Beispiel ACS758 oder ACS711), weil Ich habe bereits in der Vergangenheit versucht, sie anzuwenden, aber sie haben viel gelogen und ihr Messbereich ist niedrig. In einer der Diskussionen sprach ein Mann über die erfolgreiche Erfahrung mit diesen Sensoren. Es stellte sich heraus, dass relativ neue Serien nicht mehr auf die geringste Störung reagierten. Hauptsache, es gab nichts Eisen oder etwas, das in ihrer Nähe magnetisiert werden konnte. Ich muss Gleichstrom in einem System messen, in dem die Änderungsrate des Stroms nicht hoch ist und daher ein Band von 100 kHz ausreicht. Aufgrund der Einfachheit und des Preises der Lösung habe ich in der zweiten Version des MPPT-Controllers ACS713ELCTR-30A installiert. Allegro hat zwei Versionen von Sensoren - DC und DC / AC. Ich muss die Änderung nicht messen. Daher liegt die Wahl zugunsten von DC auf, die ebenfalls einen hohen Wert von "Volt pro Ampere" haben. Dies ermöglichte es, nicht nur große, sondern auch kleine Ströme mit einem realen Fehler von ± 5% genau zu messen. Der Schaltkreis dieses Sensors ist äußerst einfach:


Stromsensorkreis


Der Einschluss ist Standard, es gibt keine Magie in der Schaltung. Das einzige, was getan werden muss, ist, den Ausgangsbereich des 0 ... 5 V-Sensors mit dem zu "koordinieren", was der ADC des STM32-Mikrocontrollers messen kann, nämlich mit dem Bereich von 0 ... 3,3 V. Der Sensor hat einen Spannungsausgang, ist linear und eine Erhöhung der Ausgangsspannung um 133 mV bedeutet eine Erhöhung des durch den Sensor fließenden Stroms um 1A. Basierend darauf beträgt die minimale Ausgangsspannung 0 V und die maximale 30 A * 133 mV / A = 3,99 V. Theoretisch konnte der Spannungsteiler nicht eingestellt werden, weil Der maximale Strom beträgt nur 20A und daher liegt die Ausgangsspannung innerhalb von 2,66 V und gefährdet den ADC-Eingang in keiner Weise. Es ist jedoch besser, auf Nummer sicher zu gehen. Vielleicht entferne ich nach dem Testen und einem langen Einfahren des Geräts immer noch den Teiler und setze einen Spannungsfolger an den Operationsverstärker.


Transistor-Gate-Treiber

Schon in der Phase der Idee habe ich beschlossen, die vollständige galvanische Trennung des Steuerkreises vom Stromkreis sofort aufzugeben. Es ist banal teuer, obwohl es die Interferenzen beseitigt und den digitalen Teil schützt. Die Einführung einer galvanischen Trennung von 2 Spannungen und eines Treibers würde den Preis des Wandlers um 40% erhöhen. Daher musste ich meine bevorzugten Treiber der Infineon 1ED / 1EDI-Serie ablehnen und etwas Anständiges mit Bootstrap-Leistung für den oberen Schlüssel auswählen. Meine Wahl fiel auf eine ziemlich neue Lösung - NCP5183DR2G. Der Treiber erwies sich als sehr stabil im Betrieb und ausreichend, um ein Paar Mosfets mit einer Frequenz von 100 kHz zu steuern. Ich habe ein Minus darin gefunden - das Fehlen eines separaten Eingangs, z. B. ShutDown oder Enable, um den Treiber im Falle eines Unfalls auszuschalten. Um den Schutz zu implementieren, müssen Sie zusätzliche diskrete Logik installieren oder den Hardware-Eingang FAULT im STM32F334-Mikrocontroller selbst verwenden. Ich habe mich für die zweite Option entschieden und sie hat mich bisher nicht enttäuscht, obwohl ich anfangs skeptisch war, wie zuverlässig eine solche Lösung ist. Die Transistorsteuerschaltung sieht folgendermaßen aus:


Treiberschaltung


Die Lösung ist einfach und klar. Das einzige, was ich von mir hinzufügen möchte, ist, dass der C1-Kondensator aus Keramik mit einem X7R-Dielektrikum und vorzugsweise nicht dem faulsten sein sollte. Das Original Yageo / Murata / Samsung ist für alle ausreichend. Der Rest des losen Pulvers kann eine einfachere Marke sein. Übrigens können Sie in diesem Artikel über die "Qual der Wahl" des Nennwerts der Gate-Widerstände R1 und R5 lesen.


Ausgangskondensatoren

Ich habe oben die Priorität der Zuverlässigkeit und der Ressourcen des Konverters angegeben, und daher ist es notwendig, alle Schwachstellen zu beseitigen. Meiner Meinung nach gibt es bei modernen DC / DC-Wandlern nur eine Schwachstelle - Elektrolytkondensatoren, die nach einer Weile „trocknen“ und sich verschlechtern, was zuerst zu einer Zunahme der Welligkeit und Überhitzung und dann zum Ausfall des Wandlers führt.


In meinem Laderegler gibt es bis zu zwei solcher Stellen: Kondensatoren am Ein- und Ausgang. Es wurde beschlossen, die Ausgangselektrolyte durch Festkörperpolymerkondensatoren (wie in Ihren Grafikkarten) zu ersetzen, die viel einfacher mit Strömen von mehreren zehn Ampere arbeiten können und eine Ressource haben, die um eine Größenordnung höher ist als die des Elektrolytkondensators höchster Qualität. Sie haben ein Minus - der Preis, dieses Vergnügen von Panasonic kostet $ 2 / Stück, aber es lohnt sich.


Am Eingang des Geräts kann die Spannung 60 V erreichen, was bedeutet, dass Festkörperpolymerkondensatoren nicht mehr zugeführt werden können, sie existieren einfach nicht, maximal 35 V. Zwar gibt es Hybridoptionen, dies ist eine Zwischenverbindung zwischen dem Elektrolyten und einem Festkörperkondensator, sie sind bis zu 100V. Bei diesem Kondensatortyp wird der flüssige Elektrolyt durch einen pastösen ersetzt, wodurch sich seine Ressource mehrmals erhöhen lässt.


MRT-Fotos


Die aufmerksamsten können feststellen, dass die Ausgangsfestkörperkondensatoren auf zwei Platinen unterschiedlich sind. Ich denke, jeder "schätzte" die Kosten für einen 120-uF-35-V-Kondensator, der Elektrolyt von Wurth kostet zehnmal billiger. Auf dieser Grundlage habe ich mich für Tests entschieden, um eine Alternative zu den 35SEK330M-Kondensatoren von Panasonic zu kaufen. Als Alternative gibt es eine solche asiatische Firma, Lelon , die (in ihren Worten) ein vollständiges Analogon von Panasonic-Kondensatoren herstellt. Ich habe das Original auf eine Platine gelegt, auf ein anderes Analogon. Die Geräte selbst wurden bereits seit ungefähr einem Monat getestet. Bis der Unterschied wirklich bemerkt wird, wollen wir sehen, wie die endgültige Ressource aussehen wird. Für diejenigen, die den Preis fünfmal auf 0,4 USD / Stück senken möchten, empfehle ich Ihnen, darüber nachzudenken.


Komponentenübersicht

Ich möchte gesondert auf die Politik der Auswahl von Komponenten und Lösungen eingehen. Da die Idee die Verwendung dieses Controllers nicht nur zum Lernen auf dem Tisch, sondern auch zum Arbeiten vor Ort beinhaltet, wurde beschlossen, nur vertrauenswürdige Hersteller und keine chinesischen Komponenten (außer Erfahrung mit Lelon ) und verschiedene Handwerke mit Aliexpress zu verwenden. In meiner Version und in der Stückliste erscheinen Originale mit Digikey von Herstellern wie Infineon, TI, ON, ST, Yageo, Bourns und anderen. Grundsätzlich verbietet Ihnen niemand, Komponenten mit demselben Aliexpress einfacher zu platzieren, sondern bereit zu sein, die Zuverlässigkeit und Effizienz der Steuerung zu verringern.


Kapitel 4. Informationen zum Projekt und zu den Quellcodes


Ich habe bereits in meinem Artikel über Buck über Leistungskomponenten und Berechnungsmethoden geschrieben. Sie können ihn hier lesen. Ich werde nur die Ergebnisse geben, die ich erhalten habe:


  • Die Induktivität des Leistungsinduktors beträgt 30 μH, gewickelt auf einen R32 / 20/10-Ring aus Kool Mu-Material. Der Ring wird offen mit einem Rand ausgewählt, weil Experimente mit Frequenz- und Stromanstieg waren geplant;


  • Die Kapazität der Ausgangskondensatoren beträgt etwa 300 Mikrofarad, in Wirklichkeit ist die Kapazität deutlich höher, was die Ausgangswelligkeit verringert. Ich habe versucht, mit 3 Kondensatoren zu arbeiten. Alles ist in Ordnung. Wenn Sie es also wiederholen möchten, können Sie die Hälfte der Sitze für die Ausgangskondensatoren leer lassen. Grundsätzlich können Sie versuchen, 6 gewöhnliche Elektrolytkondensatoren zu löten, wenn es nicht möglich ist, Festkörperkondensatoren zu kaufen. Nach meinen Annahmen funktioniert der Controller problemlos.


  • Transistoren ( IPD053N08N3GATMA1 ) Ich habe diejenigen ausgewählt, die ich auf Lager hatte und die ziemlich einfach zu kaufen sind. Wenn Sie bereits die Schlüssel haben oder die von mir nicht kaufen konnten, wählen Sie einen Transistor mit einem Kanalwiderstand von nicht mehr als 8 mOhm und einem Gate von nicht mehr als 100 nC. Andernfalls sinkt der Wirkungsgrad ausreichend und die Transistoren überhitzen sich erheblich.



Es gibt wahrscheinlich auch diejenigen, die zu faul sind, um zu Github zu gehen. Daher lasse ich das vollständige Gerätediagramm im PDF-Format:



Der eiserne Teil des Projekts wurde in Altium Designer 19 abgeschlossen, und das Projekt kann auch in Curcuit Studio geöffnet werden. Für diejenigen, die sich nicht auf den Kauf von Software oder Piraterie einlassen möchten, gibt es ein schematisches Diagramm in PDF- und Gerber-Dateien. Dies reicht aus, um Leiterplatten zu bestellen und selbst einen MRPT-Controller zu bauen.


… "" github, , . dc/dc , -, -, -, , .


Fazit


, .. , , , .1 . — 10 , HIN LIN (GND). , "" .


PCBway , . , , Ihre Unterstützung wird für Hardware ausgegeben und dies wird zu einem interessanten Artikel führen.


Ich habe auch noch 2 Sätze Leiterplatten übrig. Wenn jemand einen Controller zusammenbauen möchte, gebe ich gute Hände kostenlos. Sie müssen nur Ihre Kommentare und Vorschläge sammeln und, wenn Sie möchten, mir schreiben. Diejenigen, die persönlich schreiben möchten.


Github-Projekte

Source: https://habr.com/ru/post/de454024/


All Articles