Fachhochschule Oberösterreich
Betreuer: Christoph Dalpiaz
Die Steuerung von Energieflüssen in modernen Wohnhaushalten stellt aufgrund mehrerer Faktoren eine komplexe Herausforderung dar:
Forschungsfrage: Wie lassen sich Energieflüsse im Hausnetz optimal verteilen, um die gesamten Haushaltsenergiekosten zu minimieren?
Zur Bewertung eines Reglers wird ein zeitdiskretes Modell des Wechselrichters und der Batterie verwendet. Energietarife, Lastleistung und Solarleistung werden als Zeitreihen-Trainingsdaten bereitgestellt. Der EFC wird durch Simulation der resultierenden Netzleistung bewertet.
Kostenfunktion: Das Ziel ist die Minimierung der gesamten Haushaltsenergiekosten über einen gegebenen Zeithorizont. Die Kostenfunktion ist definiert als:
$$ J_C\left(P_{BC}\right) = -\sum_{k=t_0}^{T}(P_{N+}[k] \cdot \Delta t \cdot C_{FI}[k] - P_{N-}[k] \cdot \Delta t \cdot C_{C}[k]) $$
Genetische Algorithmen (GAs) sind Suchheuristiken, die von Charles Darwins Theorie der natürlichen Evolution inspiriert sind. Sie simulieren den Prozess des „Überleben des Stärksten", um komplexe Optimierungsprobleme zu lösen. Im Gegensatz zu traditionellen Methoden pflegen GAs eine Population potenzieller Lösungen, was eine parallele Suche über den gesamten Lösungsraum ermöglicht und lokale Optima effektiv vermeidet.
Während des Optimierungsprozesses durchläuft unser Framework einen bestimmten Satz von Operationen über Hunderte von Generationen, um die Energieflussregler kontinuierlich zu verbessern:
Die am besten angepassten Individuen – also jene Regler, die die Haushaltsenergiekosten am stärksten minimieren – werden aus der Population als „Eltern" ausgewählt und geben ihre stärksten Eigenschaften an die nächste Generation weiter.
Genetische Operatoren ahmen die biologische Reproduktion nach. Crossover wirkt wie geschlechtliche Fortpflanzung durch den Austausch von Abschnitten des „genetischen Codes" zwischen zwei Elternbäumen, während Mutation zufällige, plötzliche Änderungen einführt, um bisher unerforschte Regionen der Kostenlandschaft zu erkunden.
3. Iteration: Dieser Zyklus wiederholt sich kontinuierlich und konvergiert schrittweise gegen die globale Optimallösung.
In unserer spezifischen Anwendung verwenden wir Genetische Programmierung mit Nachkommenauswahl, um optimale Regelstrukturen zu entwickeln.
Wir haben ein modulares, generisches und flexibles C++-Framework entwickelt, das in der Lage ist, eine Vielzahl unterschiedlicher Optimierungsprobleme nativ auf ressourcenbeschränkten Geräten zu lösen.
Verhindert vorzeitige Konvergenz durch hierarchische Altersschichten mit eingeschränktem Wettbewerb. Bietet kontinuierliches Neubefüllen und erlaubt nur Aufwärtsmigration.
Zielt auf den bestmöglichen Kompromiss zwischen mehreren Zielen ab (z.B. Maximierung des finanziellen Gewinns bei gleichzeitiger Minimierung der Baumgröße).
Von außen definierbare Funktion für das Erzeugen und Exportieren von Daten für Satistik und Auswertung (z.B. Knotenverteilung, Kostenwerthistorie und Zwischenergebnissen).
Um kontinuierliches Lernen auf ressourcenbeschränkten Geräten praktikabel zu machen, setzt das Framework stark auf die Parallelisierung der rechenintensivsten Aufgabe: die Fitnessbewertung generierter Ausdrucksbäume durch Simulation.
InverterMetaModelCostCalculator Ausdrucksbäume gleichmäßig auf die verschiedenen Threads. Jeder Thread pflegt seinen eigenen lokalen Simulationszustand, um Sperr-Overhead zu vermeiden und vollständige Thread-Sicherheit zu gewährleisten.Da die Algorithmen eine einheitliche Architektur teilen, mussten sie nur einmal implementiert werden. Einzelne Kostenrechner müssen jedoch explizit für die Unterstützung von Parallelisierung ausgelegt sein. Falls ein Kostenrechner auf globale Daten angewiesen und nicht thread-sicher ist, fällt das Framework nahtlos auf eine sequenzielle Ausführungslaufzeit zurück.
| SoC | NXP i.MX93 |
| CPU | 2x Cortex-A55 @ 1.7 GHz |
| Co-Processor | Cortex-M33 @ 250 MHz |
| RAM | 2 GB LPDDR4 |
| Flash | 16 GB eMMC |
Die Worker-Evaluierungszeit pro Individuum in Schicht 0 beträgt ungefähr 54–55 ms. Die Nutzung der oben beschriebenen Multithreading-Architektur verdoppelt den Durchsatz auf den 2 verfügbaren A55-Kernen effektiv.
Durch Reduzierung der anfänglichen Schicht-0-Population von 300 auf 100 Individuen konnten wir eine 1,6-fache Beschleunigung beobachten, während ein hochprofitabler Energieflussregler erhalten blieb. Dies beweist, dass kontinuierliche Anpassung und symbolische Regressionsoptimierung direkt auf eingebetteter Edge-Hardware praktikabel ist.