Leistungsprognose für Wechselrichter

Begonnen von ch.eick, 18 Januar 2021, 08:35:46

Vorheriges Thema - Nächstes Thema

ch.eick

Moin, gehe mit und erhöhe um...


Solar_forecast_fc0_rest 6266


;-) Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

DS_Starter

Moin Christian,

Zitatich vergleiche immer noch die Basis Werte, ohne die Autokorrektur und da gibt es massive Abweichungen.

Damit man die einzelnen Bestandteile vergleichen kann, schaltest du am Besten verbose 5 ein und schaust diese Logzeilen für die jeweile Stunde an:


2021.01.24 09:59:14.046 5: SolCast - collect DWD forecast data: device=DWD.Solar.Forecast, rad=fc0_10_Rad1h, Val=100.00
2021.01.24 09:59:14.047 5: SolCast - calcPVforecast -> Hour: 10 ,moduleTiltAngle factor: 1.44, Cloudfactor: 0.4665, Rainfactor: 0.823, pvCorrectionFactor: 1.14


Val ist der vom DWD gemeldetete Rad1h. Die Zeile darunter zeigt die weiteren Einflußfaktoren. Ich werde die Logausgabe noch etwas erweitern.
Dessen ungeachtet liegen die Werte zw. real und forecast bei mir tendenziell beieinander. So massive Abweichungen wie bei dir gibt es bei mir nicht. Allerdings mit Autokorrektur und ich habe nur Südlage.
Die Sache mit dem Astro-Device und die davon abgeleitete Anpassung an die Ausrichtung kommt noch. In dem Fall kommen noch Setter für die Ausrichtung hinzu.

Heute schneits wieder, also nix gescheites weil Zellen zu.  ;)
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

ch.eick

Zitat von: DS_Starter am 24 Januar 2021, 10:09:43
Moin Christian,

Damit man die einzelnen Bestandteile vergleichen kann, schaltest du am Besten verbose 5 ein und schaust diese Logzeilen für die jeweile Stunde an:


2021.01.24 09:59:14.046 5: SolCast - collect DWD forecast data: device=DWD.Solar.Forecast, rad=fc0_10_Rad1h, Val=100.00
2021.01.24 09:59:14.047 5: SolCast - calcPVforecast -> Hour: 10 ,moduleTiltAngle factor: 1.44, Cloudfactor: 0.4665, Rainfactor: 0.823, pvCorrectionFactor: 1.14


Val ist der vom DWD gemeldetete Rad1h. Die Zeile darunter zeigt die weiteren Einflußfaktoren. Ich werde die Logausgabe noch etwas erweitern.
Dessen ungeachtet liegen die Werte zw. real und forecast bei mir tendenziell beieinander. So massive Abweichungen wie bei dir gibt es bei mir nicht. Allerdings mit Autokorrektur und ich habe nur Südlage.
Die Sache mit dem Astro-Device und die davon abgeleitete Anpassung an die Ausrichtung kommt noch. In dem Fall kommen noch Setter für die Ausrichtung hinzu.

Heute schneits wieder, also nix gescheites weil Zellen zu.  ;)
Wenn Du magst, kannst Du Solar_forecast() ja auch mit einbinden, wie ich es beschrieben hatte.
Wie wir ja besprochen hatten ist eine Autokorrektur das I-Tüpfelchen, weshalb ich das bisher aus geschaltet habe.

Gruß
    Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

DS_Starter

Die dort enthaltenen Grundlagen sind schon eingebunden bis auf Solar_plain (Astro) was noch kommt wie bereits gesagt. ;)
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

ch.eick

Zitat von: DS_Starter am 24 Januar 2021, 10:32:44
Die dort enthaltenen Grundlagen sind schon eingebunden bis auf Solar_plain (Astro) was noch kommt wie bereits gesagt. ;)
Wie kommt es denn dann zu dieser großen Abweichung?
Um 10 Uhr haben wir eine Abweichung von Faktor 21 zwischen den Prognose.
Zur Realität wäre es bei mir nur 1,3 , was dann super mit Deiner Autokorrektur noch anzugleichen wäre.

Gruß
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

DS_Starter

Keine Ahnung. Kann ich bei mir nicht bestätigen.
Hier mal dir Werte vom 19. als bei uns noch kein Schnee lag:


      10 => pvreal: 189, pvforecast: 406
      11 => pvreal: 140, pvforecast: 344
      12 => pvreal: 124, pvforecast: 411
      13 => pvreal: 122, pvforecast: 373
      14 => pvreal: 175, pvforecast: 248
      15 => pvreal: 57, pvforecast: 126
      16 => pvreal: 0, pvforecast: 24


Grundlegende Rechnung ist:

PV (Wh) = Rad  (kJ/m2) * <Umrechfaktor kJ in kWh> * <moduleArea> (m2) * <Faktor f. Modultilt> * <Modul Wirkungsgread> * <Inverter Wirkungsgrad> * <pvCorrectionFactor> (1 bei ausgeschaltet) * <Cloudfaktor>* <Rainfaktor> * 1000
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

ch.eick

#66
Zitat von: DS_Starter am 24 Januar 2021, 11:19:56
Grundlegende Rechnung ist:

PV (Wh) = Rad  (kJ/m2) * <Umrechfaktor kJ in kWh> * <moduleArea> (m2) * <Faktor f. Modultilt> * <Modul Wirkungsgread> * <Inverter Wirkungsgrad> * <pvCorrectionFactor> (1 bei ausgeschaltet) * <Cloudfaktor>* <Rainfaktor> * 1000
Okay, here we go, ich hatte nur <Inverter Wirkungsgrad> angegeben und dort dann auch noch falsch den <Modul Wirkungsgread> :-)

<Modul Wirkungsgread> 17.8
<Inverter Wirkungsgrad> 96.5

Wie am Telefon besprochen bin ich mir immer noch nicht ganz sicher bezüglich m² und Modul Nennleistung.
Die Realität hangelt sich bei mir zwischen Faktor 0.8 und 1.2 an der Prognose entlang.

Weiterhin habe ich festgestellt, das ich mit einer Verschiebung um 1h der DWD Daten ein besseres Ergebnis der Prognosekurve zur Realität bekommen. Die Stunde scheint nicht die Sommer/Winter Zeit zu sein, da ich es fest eingetragen haben. Das findest Du in meinem Code unter $timeshift .


Solar_forecast_fc0_07 0
Solar_forecast_fc0_08 0
Solar_forecast_fc0_09 0
Solar_forecast_fc0_10 788
Solar_forecast_fc0_11 773
Solar_forecast_fc0_12 794
Solar_forecast_fc0_13 1113
Solar_forecast_fc0_14 919
Solar_forecast_fc0_15 907
Solar_forecast_fc0_16 526
Solar_forecast_fc0_17 0
Solar_forecast_fc0_18 0
Solar_forecast_fc0_19 0

Solar_forecast_fc0_4h 3599
Solar_forecast_fc0_day 5820
Solar_forecast_fc0_rest 5032

Today_Hour09_PVforecast 5 Wh
Today_Hour10_PVforecast 41 Wh
Today_Hour11_PVforecast 479 Wh

Today_Hour12_PVforecast 616 Wh
Today_Hour13_PVforecast 672 Wh
Today_Hour14_PVforecast 669 Wh
Today_Hour15_PVforecast 569 Wh
Today_Hour16_PVforecast 394 Wh
Today_Hour17_PVforecast 132 Wh

Next04Hours_PV 2522 Wh
RestOfDay_PV 3659 Wh
Today_PV 3705 Wh
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

DS_Starter

Habe mal verbose 5 etwas aufgewertet. Sieht nun so aus und man sieht jeden einzelnen Einflußfaktor der eingeht:


2021.01.24 12:07:27.447 5: SolCast - ################################################################
2021.01.24 12:07:27.447 5: SolCast - ###                New data collection cycle                 ###
2021.01.24 12:07:27.448 5: SolCast - ################################################################
2021.01.24 12:07:27.448 5: SolCast - collect DWD forecast data: device=DWD.Solar.Forecast, rad=fc0_12_Rad1h, Val=240.00
2021.01.24 12:07:27.449 5: SolCast - PV forecast calc factors for hour 12 ->
Cloudfactor => 0.4775
Factor kJ to kWh => 0.00027778
Radiation => 240.00
Rainfactor => 0.877
inverterEfficiency => 0.983
moduleArea => 31.04
moduleEfficiency => 0.1652
moduleTiltAngle factor => 1.44
pvCorrectionFactor => 1.36

2021.01.24 12:07:27.449 5: SolCast - set PV History hour 12 -> real: 0, forecast: 275


ZitatWie am Telefon besprochen bin ich mir immer noch nicht ganz sicher bezüglich m² und Modul Nennleistung.
Ich auch nicht.  Du hast zwar in deiner PV_Anlage_1_config eine Angabe module_1_power drin. Die finde ich aber nirgends wieder verformelt, was meiner Ansicht nach aber auch richtig ist.

Jetzt muß ich erstmal Schnee räumen  :(
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

ch.eick

Zitat von: DS_Starter am 24 Januar 2021, 11:19:56
Keine Ahnung. Kann ich bei mir nicht bestätigen.
Hier mal dir Werte vom 19. als bei uns noch kein Schnee lag:


      10 => pvreal: 189, pvforecast: 406
      11 => pvreal: 140, pvforecast: 344
      12 => pvreal: 124, pvforecast: 411
      13 => pvreal: 122, pvforecast: 373
      14 => pvreal: 175, pvforecast: 248
      15 => pvreal: 57, pvforecast: 126
      16 => pvreal: 0, pvforecast: 24

Da hast Du ja auch einen Faktor von teilweise 2-3 dazwischen.
Zitat
Die Realität hangelt sich bei mir zwischen Faktor 0.8 und 1.2 an der Prognose entlang.
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

ch.eick

Zitat von: DS_Starter am 24 Januar 2021, 12:16:50
Ich auch nicht.  Du hast zwar in deiner PV_Anlage_1_config eine Angabe module_1_power drin. Die finde ich aber nirgends wieder verformelt, was meiner Ansicht nach aber auch richtig ist.
Hier wäre die Zeile

# Berechnung der Modul Nennleistung für diese Ausrichtung
$Solar_[$j]  = $module_count[$j] * ReadingsVal($logdevice."_config","module_".$j."_power",1)/1000 ;
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

DS_Starter

Hallo Christian,

so jetzt habe ich nochmal nach Berechnungsgrundlagen im Netz gesucht und bin auf diese Seite gestoßen http://www.ing-büro-junge.de/html/photovoltaik.html.

Demnach gibt es zwei prinzipielle Formeln nach denen man vorgehen kann. Ist etwa ich der Mitte unter "Prinzip der Ertragsrechnung" beschrieben.
Ich benutze bei mir die Formel 1 -> Mittels der Einzelwirkungsgrade. Dort geht die Modulleistung nicht ein. Dafür die Einzelwirkungsgrade.

Du verwendest m.M. nach die Formel 2 -> Mittels der Perfomance Ratio. Dort geht die Modullleistung ein. Allerdings auch eine Performance Ratio. Ich weiß nicht ob du das irgendwo in deinen Subs verformelt hast.

Aber wichtig ist m.M. nach noch der mittlere Teil (Berücksichtigung der Modul-Ausrichtung). Dort passiert eine Bestimmung des Flächenfaktors der die Globalstrahlung korrigiert. Diesen Flächenfaktor werde ich bei mir erstmal mit einbauen. Ist ein bisschen Arbeit weil aus dem Flächendiagramm zunächst eine Matrix (Hash) zu erstellen ist.
Damit bekommt man dann einen Flächenfaktor mit dem man die Globalstrahlung korrigiert die dann wiederum als Gk in die genannten Formeln eingeht.

Die Wirkung des Flächenfaktors findet man auch hier -> https://www.energie-experten.org/erneuerbare-energien/photovoltaik/planung/ertrag

Hab mal einen Screen des interesanten Teils angehängt.

LG,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Heute ist übrigens im Laufe das Tages der Schnee von den Zellen gerutscht und ergab das folgende Bild:


24 => 00 => pvreal: 0, pvforecast: 0
      01 => pvreal: 0, pvforecast: 0
      02 => pvreal: 0, pvforecast: 0
      03 => pvreal: 0, pvforecast: 0
      04 => pvreal: 0, pvforecast: 0
      05 => pvreal: 0, pvforecast: 0
      06 => pvreal: 0, pvforecast: 0
      07 => pvreal: 0, pvforecast: 0
      08 => pvreal: 0, pvforecast: 0
      09 => pvreal: 0, pvforecast: 47
      10 => pvreal: 0, pvforecast: 116
      11 => pvreal: 57, pvforecast: 226
      12 => pvreal: 238, pvforecast: 275
      13 => pvreal: 303, pvforecast: 225
      14 => pvreal: 214, pvforecast: 225
      15 => pvreal: 62, pvforecast: 158


Die Autokorr ist an. Wenn ich den Flächenfaktor drin habe werde ich mal ohne Autokorr. (Faktor ist dann 1) eine Weile laufen lassen um zu sehen wie hoch dann die Abweichungen sind.
Was mir immer noch nicht klar ist, ob in der DWD Globalstrahlung auch direkte Sonnenbestrahlung drin ist oder ob man extra noch berücksichtigen müßte. Habe aber bisher norgends eine hilfreiche Aussage dazu gefunden.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Achso...

Zitat
Da hast Du ja auch einen Faktor von teilweise 2-3 dazwischen.

Ich habe mit der Berechnung der Autokorrektur gespielt. Erst kürzlich die Verwendung nur des Vortages auf einen Durchschnitt der letzten 31 Tage (mit Attr einstellbar) umgestellt.
Dadurch passieren natürlich Über- und Untertreibungen. Man muß erstmal ohne arbeiten um direkt vergleichen zu können.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

ch.eick

#73
Quelle Wikipedia
ZitatUnter Globalstrahlung versteht man die gesamte an der Erdoberfläche auf eine horizontale Empfangsfläche auftreffende Solarstrahlung. Sie setzt sich zusammen aus

- der auf direktem Weg eintreffenden Solarstrahlung, der Direktstrahlung, und
- der kurzwelligen Diffusstrahlung, welche die Erdoberfläche über Streuung an Wolken, Wasser- und Staubteilchen erreicht.

Quelle Photovoltaikforum
Zitat
Der DWD liefert Strahlungswerte in stündlicher Auflösung für ein 10-Tages Vorhersagefenster.
Der Wert ist Rad1h in [Kj/m²].
Rad1h wird als Globalstrahlung bezeichnet.
Nach Rückfrage beim DWD ist dies die auftreffende Globalstrahlung auf eine virtuelle horizontale Fläche von 1m².

Somit wäre die Streuung bereits mit drin, aber die Dämpfung durch Wolken und Regen, was wir ja noch eingebaut haben, nicht.

VG
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Mumpitz

#74
hallo zusammen

besten Dank für die stetigen Weiterentwicklungen! Ist es irgendwie möglich, dass ganze Modul zurück zu setzen. Also ich meine mit der Autocorrection nochmals von vorne zu beginnen. Weil ich finde bei mir kann was nicht stimmen. Die Werte sind entweder genau 1.00 oder 0.5. Ich kann mich erinnern als ich das Modul frisch installiert war standen da nach 24h ganz ungerade zahlen...

2021-01-24 11:03:54   pvCorrectionFactor_10 1.00 (automatic)
     2021-01-24 11:03:54   pvCorrectionFactor_10_autocalc done
     2021-01-24 12:03:56   pvCorrectionFactor_11 1.00 (automatic)
     2021-01-24 12:03:56   pvCorrectionFactor_11_autocalc done
     2021-01-24 13:03:57   pvCorrectionFactor_12 1.00 (automatic)
     2021-01-24 13:03:57   pvCorrectionFactor_12_autocalc done
     2021-01-24 14:03:58   pvCorrectionFactor_13 1.00 (automatic)
     2021-01-24 14:03:58   pvCorrectionFactor_13_autocalc done
     2021-01-24 15:04:01   pvCorrectionFactor_14 1.00 (automatic)
     2021-01-24 15:04:01   pvCorrectionFactor_14_autocalc done
     2021-01-24 16:04:01   pvCorrectionFactor_15 1.00 (automatic)
     2021-01-24 16:04:01   pvCorrectionFactor_15_autocalc done
     2021-01-23 17:04:58   pvCorrectionFactor_16 0.50 (automatic)
     2021-01-23 18:04:59   pvCorrectionFactor_17 0.50 (automatic)


Die Werte im Cache File:

23 => 09 => pvreal: 0, pvforecast: 0
      10 => pvreal: 0, pvforecast: 0
      11 => pvreal: 0, pvforecast: 0
      12 => pvreal: 0, pvforecast: 0
      13 => pvreal: 0, pvforecast: 0
      14 => pvreal: 0, pvforecast: 0
      15 => pvreal: 0, pvforecast: 0
      18 => pvreal: 0, pvforecast: 0
      19 => pvreal: 0, pvforecast: 0
      20 => pvreal: 0, pvforecast: 0
      21 => pvreal: 0, pvforecast: 0
      22 => pvreal: 0, pvforecast: 0
      23 => pvreal: 0, pvforecast: 0
24 => 00 => pvreal: 0, pvforecast: 0
      01 => pvreal: 0, pvforecast: 0
      02 => pvreal: 0, pvforecast: 0
      03 => pvreal: 0, pvforecast: 0
      04 => pvreal: 0, pvforecast: 0
      05 => pvreal: 0, pvforecast: 0
      06 => pvreal: 0, pvforecast: 0
      07 => pvreal: 0, pvforecast: 0
      08 => pvreal: 67, pvforecast: 0
      09 => pvreal: 507, pvforecast: 276
      10 => pvreal: 949, pvforecast: 1296
      11 => pvreal: 1038, pvforecast: 2497
      12 => pvreal: 1862, pvforecast: 3340
      13 => pvreal: 2388, pvforecast: 3534
      14 => pvreal: 1821, pvforecast: 2968
      15 => pvreal: 1446, pvforecast: 2055
      16 => pvreal: 495, pvforecast: 378