Blog

Schatten und Solarmodule: eine kurze Analyse

Rogier van der Geer

Aktualisiert Oktober 20, 2025
9 Minuten

In diesen merkwürdigen Zeiten der Abriegelung und Ausgangssperre habe ich etwas zusätzliche Zeit zur Verfügung. In Kombination mit meinem Hintergrund in Physik und meinem Wunsch, technische Dinge zu verstehen, hat dies zu einer Reihe von Spielzeugprojekten geführt, bei denen ich versuche, etwas nicht so Nützliches zu messen. Dies ist eines dieser Projekte.

Meine Solarmodule

Vor etwas mehr als einem Jahr bin ich in ein neu gebautes Haus gezogen. Das Haus wurde mit einer Reihe von Sonnenkollektoren ausgestattet. Das ist nichts Besonderes - in den Niederlanden sind Solarmodule heutzutage eine Voraussetzung für die Erteilung einer Baugenehmigung. Die Baugenehmigung ist ziemlich genau: Sie listet die Anzahl der Paneele, ihren Standort ("auf dem Dach"), ihre Ausrichtung ("West"), ihren Winkel zur Horizontalen (56 Grad) sowie den Schattenwurf ("minimal") auf. Interessanterweise sind die Paneele auf der Ostseite des ziemlich steilen Giebeldachs meines Hauses angebracht - nicht auf der Westseite, wie es in der Genehmigung angegeben ist. Dies ist umso interessanter, als das Nachbarhaus auf der Ostseite viel näher an unserem Haus liegt als das Haus auf der Westseite - nah genug, um einen Schatten auf die Paneele zu werfen. Ich kann nicht umhin, mich zu fragen, warum sie sich entschieden haben, die Paneele nach Osten auszurichten - und ob die Auswirkungen des Schattens des Nachbarhauses tatsächlich "minimal" sind.

Es wird schwierig sein, die Person zu finden, die die Sonnenkollektoren auf meinem Haus installiert hat, um sie zu fragen, warum sie die andere Seite des Daches gewählt hat, aber ich kann die Auswirkungen des Schattens auf den Ertrag abschätzen.

Beschaffung von Daten

Die Reise eines jeden Data-Science-Projekts, auch eines Spielzeugprojekts, beginnt mit dem Sammeln von Daten. Werfen wir zunächst einen Blick auf die Paneele selbst: Sie sind an einen Zeverlution 2000S Wechselrichter angeschlossen. Wenn dieser Wechselrichter mit WiFi oder einem Ethernet-Kabel verbunden ist, stellt er eine REST-API zur Verfügung, die Ihnen die aktuelle Leistung (in Watt), den Gesamtenergieertrag des heutigen Tages (in kWh) und die aktuelle Uhrzeit in China mitteilen kann. Ich habe derzeit ein Setup, das diese API alle 30 Sekunden abfragt und in InfluxDB speichert, aber das läuft erst seit ein paar Monaten. Eine bessere Quelle ist die Zevercloud - der Cloud-Dienst, an den Zeverlution seine Statistiken automatisch meldet, seit es installiert wurde. Dieser Eingriff in die Privatsphäre hat also doch einen Nutzen!

Zevercloud verfügt nicht über eine Funktion zum Exportieren von Daten, aber wir können Plots der Erträge der Panels an jedem beliebigen Tag in der Vergangenheit finden. Zum Beispiel am 5. März dieses Jahres, der ein schöner Tag war:

Glücklicherweise wird dieses Diagramm clientseitig generiert, was bedeutet, dass es eine API gibt, die wir abfragen können, um die benötigten Daten zu extrahieren. Nachdem ich die Cookies, die mein Browser zur Authentifizierung verwendet, nachgeschlagen hatte, konnte ich die Daten des gesamten Tages (in 10-Minuten-Intervallen) in einem etwas seltsam strukturierten, aber brauchbaren JSON-Format abrufen:

{
  ...
  "unit": "kW",
  "qdate": "2021-03-05",
  "dataset": [
    ...
    {
      "time" : "07:40",
      "value" : [ "0.10" ],
      "consump" : 0.0,
      "mexport" : 0.0,
      "mimport" : 0.0,
      "net" : 0.0
      }, {
      "time" : "08:00",
      "value" : [ "0.21" ],
      "consump" : 0.0,
      "mexport" : 0.0,
      "mimport" : 0.0,
      "net" : 0.0
      },
      ...
  ]
}

Hier wird die Zeit sogar auf meine Zeitzone umgerechnet (aber die Sommerzeit ganz ignoriert). Wenn ich das einmal machen kann, dann kann ich das auch viele Male machen! Also wurde schnell ein Skript geschrieben, das dies für jeden Tag seit Beginn der Zeit tut (d.h. seit Beginn der Zeit für diesen Wechselrichter, also vor etwas mehr als einem Jahr).

Als Nächstes musste ich diese Daten in ein besseres Format konvertieren (eine flache Tabelle) und die Zeitzone korrigieren. Und wenn ich schon dabei war: Ich musste sie mit den Wetterdaten für die Region verknüpfen, die ich vom KNMI erhalten hatte.

Anreicherung der Daten

Neben dem Zeitstempel und dem momentanen Stromertrag des Wechselrichters müssen wir auch die Position der Sonne am Himmel kennen. Wir definieren diese Position durch die Höhe (Grad über dem Horizont) und den Azimut (in Grad in Bezug auf den Süden), und sie kann mit soltrack leicht berechnet werden. Ein weiteres nützliches Merkmal ist der Winkelder Sonne in Bezug auf die Solarmodule: der Einfallswinkel, der gleich Null ist, wenn die Sonne genau senkrecht zu den Modulen steht.In meinem Fall ist dies der Fall, wenn sich die Sonne in einer Höhe von 34 Grad und einem Azimut von -84 Grad (6 Grad südlich von genau Ost) befindet. Interessant ist auch der Kosinus dieses Winkels, der Einfallsfaktor, der die direkte Einstrahlung der Sonne auf das Panel beschreibt.

Erkundung

Werfen wir nun einen Blick auf die Daten. Hier ist eine Abbildung mit einer Reihe von Leistungskurven (die Leistung ist auf die Spitzenleistung aller Panels normiert) für eine Reihe von Tagen im Laufe des Jahres:

Wir können deutlich den Unterschied zwischen Winter- und Sommertagen erkennen. Wir sehen, dass kein einziger Tag eine glatte Kurve hat (willkommen beim niederländischen Wetter). Wir können auch deutlich sehen, dass die Leistung am Morgen höher ist (Azimut < 0) - was Sinn macht, weil die Paneele nach Osten ausgerichtet sind.

Hier ist eine weitere interessante Handlung:

Es zeigt die maximale Leistung, die in jedem Segment des Himmels aufgezeichnet wurde - wenn Sie das Maximum nehmen, werden Sie die (meisten) wolkigen Daten los. Wir können deutlich die Silhouette des Nachbarhauses erkennen, das ein um 90 Grad gedrehtes Giebeldach hat: Wir schauen auf ein Ende. Am Balken rechts sehen wir, dass der Ertrag nie über etwa 80% der Spitzenleistung hinausgeht: der begrenzende Faktor ist hier der Wechselrichter. Es ist gängige Praxis, den Wechselrichter unterzudimensionieren, um Kosten zu sparen.

Modellierung

Als Nächstes werden wir versuchen, die Leistung der Solarmodule als Funktion des Sonnenstandes zu modellieren. Der Einfachheit halber betrachten wir zunächst nur die Daten von Momenten, in denen der Himmel klar war - laut KNMI. Unten sehen Sie ein Diagramm des Einfallsfaktors im Vergleich zur Leistungsabgabe. Wie erwartet steigt die Leistung mit dem Einfallsfaktor: mehr Sonnenlicht auf den Panels bedeutet mehr Leistung.

Auf der rechten Seite sehen wir einige Punkte, die unterhalb der Trendlinie liegen - ich habe sie blau markiert. Das sind die Punkte, an denen die Sonnenkollektoren im Schatten des anderen Hauses liegen. Wir werden diese Punkte vorerst ignorieren. Ich habe auch alle Punkte entfernt, an denen der Wechselrichter an seinem Limit war: Diese Punkte würden eine Nichtlinearität einführen, mit der ich mich lieber nicht befassen möchte.

Indirektes Licht

Auf der linken Seite der obigen Grafik sehen wir, dass auch dann, wenn kein direktes Sonnenlicht auf die Solarmodule fällt (der Einfallsfaktor < 0), immer noch ein gewisser Stromertrag vorhanden ist. Dieser stammt von indirektem Sonnenlicht, das vom Himmel oder einem Objekt reflektiert wird. Wir sehen, dass dies am anderen Ende, wo die Sonne fast untergeht, abnimmt. Es stellt sich heraus, dass diese indirekte Energie ziemlich genau modelliert werden kann, indem nur die Höhe verwendet wird: Wenn die Sonne hoch am Himmel steht, gibt es mehr indirektes Licht.

Die Abbildung unten links zeigt ein Streudiagramm der Leistung gegenüber der Insolenz, dem Kosinus der Sonnenhöhe.

Die Ergebnisse auf der rechten Seite stammen aus einer statsmodels OLS-Anpassung des folgenden Modells: power ~ insolence + np_sqrt(insolence) + temperature. Interessanterweise ergibt sich der Temperaturkoeffizient als -0.00037, was sehr nahe an dem vom Hersteller angegebenen -0.000365 liegt! Vielleicht tun wir etwas, das tatsächlich Sinn macht!

Direktes Licht

Selbst wenn direktes Sonnenlicht auf ein Solarmodul fällt, wird ein Teil der erzeugten Leistung aus indirektem Licht stammen. Wenn wir davon ausgehen, dass dieser Teil unabhängig vom Einfallswinkel ist, können wir den Beitrag des direkten Lichts berechnen, indem wir den Beitrag des indirekten Lichts anhand des obigen Modells schätzen und von der tatsächlichen Leistung abziehen.

Naiverweise könnte man erwarten, dass der Beitrag des direkten Lichts gleich Null ist, wenn der Einfallsfaktor gleich Null ist, aber es scheint, dass der Effekt "direktes" Licht erst bei einem Einfallsfaktor von etwa -0,13 einsetzt, wie Sie in der folgenden Grafik sehen können.

Die Ergebnisse auf der rechten Seite stammen wiederum aus einer OLS-Anpassung von statsmodels, dieses Mal für das Modell direct ~ incidence_factor_cutoff + np_power(incidence_factor_cutoff, 2) + temperature, wobei direct die Potenz abzüglich der indirekten Komponente und incidence_factor_cutoff der Inzidenzfaktor abzüglich des Grenzwertes (-0,13) ist.

Schatten modellieren

Da wir nun ein Modell haben, das den Energieertrag der Solarmodule in einer idealen Situation (mit klarem Himmel, ohne Schatten) beschreibt, können wir verwenden, um ein Modell des Schattens zu erstellen. Wir definieren power / predicted_power als Maß für den Schatten - wobei wir natürlich nur Daten mit klarem Himmel verwenden - und trainieren einen Random Forest, um den Schatten als Funktion von Azimut und Höhe vorherzusagen. Dies ist das Ergebnis:

Auch hier sehen wir deutlich die Silhouette des Nachbarhauses sowie ein wenig Schatten, der durch die Abluft der Lüftungsanlage unmittelbar südlich der Solarmodule verursacht wird.

Die Wirkung von Schatten

Jetzt können wir die Auswirkung des Schattens auf den Gesamtertrag der Solarmodule abschätzen: Wenn ich einfach das Integral der Leistung mit dem Integral der vorhergesagten Leistung vergleiche, finde ich eine Differenz von etwa 250 kWh im Laufe des letzten Jahres. Aber beachten Sie, dass dies nur für die sonnigen Momente gilt! Mit dem Modell für Schatten können wir die Analyse für bewölkte Momente wiederholen. Die Ergebnisse sind natürlich nicht so gut, aber letztendlich beschreibt das Modell die Daten ziemlich gut. Wenn ich erneut die Leistung mit der vorhergesagten Leistung vergleiche, stelle ich einen Unterschied von weiteren 450 kWh fest! Das würde ich nicht als "minimal" bezeichnen!

Fazit

Es stellt sich heraus, dass es nicht allzu schwierig ist, den Stromertrag eines Solarpanels zu modellieren, wenn man nur Höhe, Einfallswinkel, Temperatur und Bewölkung als Variablen verwendet. Es stellt sich auch heraus, dass, wenn derjenige, der meine Sonnenkollektoren installiert hat, beschlossen hätte, dies auf der anderen Seite meines Hauses zu tun, diese Kollektoren schätzungsweise 170 Euro pro Jahr mehr eingebracht hätten.

Wenn Sie sich für den Code dieser Analyse interessieren, schauen Sie hier nach.

Verfasst von

Rogier van der Geer

Contact

Let’s discuss how we can support your journey.