Home
Projekte
Protonen-
Magnetometer
Protonen-
Magnetometer II
UV-Platinenbelichter
Labornetzteil
Mess-Lichtschranke
Netzfrequenz
Interessantes
Seltsamer Sensor
ABPM50
Pedal mit 270 Grad Poti
Sonstiges
China!
Über mich
 
DE  EN

Netzfrequenz in Deutschland

** Neu: Tagesdaten im Rohformat, siehe unten **

Die Frequenz der Stromversorgung in Deutschland und vielen Teilen Europas ist synchronisiert und beträgt normalerweise 50Hz. Je nach Belastung sinkt oder steigt diese und wird durch Zu- oder Abschaltung von Regelleistung wieder kompensiert. Näheres kann man beispielsweise hier nachlesen: www.netzfrequenzmessung.de, die Seite bietet auch eine Online-Grafik über einen kurzen Zeitraum.

Aus welchem Grund auch immer finden sich im Internet kaum historische Daten über den Verlauf, daher habe ich mich entschieden, die Netzfrequenz selbst zu überwachen und grafisch darzustellen. Die Technik hierfür ist relativ einfach, ein STM32F103 filtert mit einem digitalen Bandpass die von einem kleinen Transformator gelieferte Netzspannung und ermittelt die Frequenz. Die Daten werden seriell einmal pro Sekunde an einen Raspberry übertragen, der die Daten protokolliert und Grafiken berechnet. Für den Anfang hier der Verlauf des Vortags und der 7 Tage davor. Der Update der Grafik(en) erfolgt jede Nacht um 3 Uhr MEZ/MESZ (bin kein Freund von Java(script) und Klickibunti, d.h. Reload im Browser (meist F5) nicht vergessen). Die Zeitachse zeigt UTC, d.h. 12:00 entspricht 13:00 MEZ (im Winter) oder 14:00 MESZ (Sommerzeit):





Wenn es zu kritischen Situationen wie einem drohenden Blackout im Netz kommt, sollte dies im Verlauf klar zu erkennen sein. Hier das Ereignis vom 8. Januar 2021, welches die Vorstufe zu einem grossem Stromausfall in Europa war:




Nur nebenbei: Der gesamte Endenergiebedarf (alle Arten von Energieträgern, also auch Öl/Treibstoff für den Verkehr, Strom für Haushalte usw.) von Deutschland im Jahr 2016 belief sich auf 9060PJ (Quelle: "Energiedaten Gesamtausgabe, August 2018", Bundesministerium für Wirtschaft und Energie, Seite 4). Teilt man 9060PJ durch den Energieertrag einer grossen Windkraftanlage mit 4MW Leistung (Höhe um 200m) bei, grosszügig geschätzt, 4000h Volllastunden pro Jahr (typisch 1400 und 5000h/Jahr, Quelle: "Windkraftanlage", Wikipedia), dann wären dafür theoretisch 9060PJ/(4000h*4MW)=157291 Windkraftanlagen erforderlich. Teilt man wiederum die gesamte Fläche der Bundesrepublik durch diese Zahl, wäre pro 357386km^2/157291=2.27km^2 eine Anlage nötig. Der Raster-Abstand würde die Wurzel davon, also sqrt(2.72km^2)=1507m betragen. Das heisst: Wollte man, in einem reinen Gedankenexperiment, den gesamten Endenergiebedarf (nicht nur Strom, auch Treibstoff usw.) von Deutschland von 2016 durch moderne Windkraftanlagen decken, müssten in einem Raster von ca. 1.5km eine Anlage stehen. Erneuerbare Energiequellen sind eine sehr gute Sache aber diese Rechnung, auch wenn sie nur ein Gedankenexperiment ist, stimmt doch etwas nachdenklich.

Etwas anders sieht es bei Photovoltaik aus. Auszug aus Wikipedia, Photovoltaik: "Eine in Deutschland installierte Anlage liefert je nach Lage und Ausrichtung einen Jahresertrag von etwa 700 bis 1100 kWh und benötigt bei Dachinstallation 6,5 bis 7,5 m^2 Fläche [...]". Rechnet man mit 1000kWh/7m^2 ergibt sich ein theoretischer Flächenbedarf für den Gesamtenergiebedarf (bezogen auf 2016, wieder einschliesslich Gas, Öl, Kohle usw.) von 9060PJ/(1000kWh/(7m^2))=17616km^2. Das sind 4.92% der Fläche von Deutschland oder ein gedachtes Quadrat von etwa 132km Kantenlänge. Laut Umweltbundesamt sind 2019 etwa 14.4% des Landes Siedlungs- und Verkehrsflächen. Damit entspräche der notwendige Flächenbedarf etwa 9060PJ/(1000kWh/(7m^2))/(357386km^2*14.4%)=34% der bebauten Fläche. Das Hauptproblem aber bleibt: Woher kommen die 9060PJ/365d=287GW Leistung in der Nacht? Eine solche Leistung entspricht der von rund 205 grossen Kernkraftwerken mit je 1.4GW. Auch das stimmt nachdenklich. Ich möchte betonen, dass die hier aufgestellten Rechnungen nur ein kleiner Versuch sind, eine bessere Vorstellung der Thematik "Kompletter Verzicht auf fossile und Kernenergie" zu gewinnen.

Ergänzung: Das Energieflussbild von 2019 ist ebenfalls verfügbar. Der Endenergieverbrauch hat sich aber mit 9056PJ gegenüber 2016 kaum verändert. Quelle: AGEB AG Energiebilanzen e.V., lokale Sicherheitskopie: energieflussbild-2019_pj_lang_de_20200923.pdf. Hier noch ein PDF mit den "Fun-Facts": 9056Petajoule.pdf oder als Video: https://youtu.be/1U2AQatSu9M.

Nun aber zurück zum eigentlichen Thema: Netzfrequenz. Hier noch ein interessanter Aspekt dazu: In vielen Video- oder Tonaufnahmen ist ein kleiner Anteil der allgegenwärtigen 50Hz enthalten. Extrahiert man diesen und ermittelt (z.B. per Zoom-FFT) den Verlauf, so kann - mit etwas Glück - der Entstehungszeitraum bestimmt werden, eben durch den Vergleich mit dem tatsächlichen Netzfrequenzverlauf.


Technische Details

In den folgenden Bildern ist die Elektronik zur Frequenzmessung zu sehen. Die Netzspannung wird mit einem Transformator (1) auf ungefährliche 9V gebracht. Mit Hilfe von 3 Widerständen (2) wird diese Spannung weiter geteilt und mit einem Offset von 3.3V/2 versehen. Ein Kondensator unterdrückt Spikes und höhere Frequenzen. Die so geteilte und gefilterte Spannung wird direkt mit dem ADC des STM32F103 (4) ("Blue Pill" Board) mit 100kHz erfasst und per UART an einen Raspberry (4) weitergeleitet. Der Raspberry stellt auch die Versorgungsspannung von 5V zur Verfügung.






Rohdaten

Die Rohdaten des letzten Tages, wie in der Grafik ganz oben gezeigt, liegen hier zum Download bereit:

lineFreq_last.dta

Das Datenformat sind Frequenzwerte, die mit jeweils 2 Bytes abgelegt sind (Frequenz in Hz * 1000 als 16-Bit Integer, Low-Byte, dann High-Byte). Wegen Wartungsarbeiten gibt es vereinzelt Lücken in den Daten (meist nur wenige Sekunden, an ca. 2% der Tage), die durch einen Ungültigkeitswert (0 oder 40000) gekennzeichnet sind. Das muss man bei der Verarbeitung berücksichtigen.

Hier ein kleines Python-Script, dass eines der Tagesfiles ausliest und für jede Sekunde die Frequenz (auf 1mHz genau) auflistet. Am Ende wird Min, Max, Durchschnitt und die Zahl der eventuellen Lücken angegeben. Auf Fehlerhandling usw. habe ich verzichtet, das Programm dient nur der Illustration, wie man die Bytes dekodieren kann. Die print-Statements so umzuändern, dass z.B. .csv herauskommt, sollte kein Problem sein:

f = open("lineFreq_last.dta", "rb")
 
cnt = 0
fmin = 100.0
fmax = 0.0
favg = 0.0
ferr = 0
fcnt = 0
 
record = f.read(2)
while record:
  freq = ord(record[0]) + ord(record[1])*256
  if ( freq == 0 or freq == 40000 ):
    print "%05d NODATA" % cnt
    ferr = ferr+1
  else:
    freq = freq*0.001
    print "%05d %.3f Hz" % (cnt, freq)
    if ( freq > fmax ): fmax = freq
    if ( freq < fmin ): fmin = freq
    favg = favg + freq
    fcnt = fcnt+1
  record = f.read(2)
  cnt = cnt+1
f.close()
 
print "fmin = %.3f Hz" % fmin
print "fmax = %.3f Hz" % fmax
print "favg = %.3f Hz" % ( favg / fcnt )
print "ferr = %d" % ferr

© 2021 Alexander Mumm