---
title: ""

format: 
  html:
    fig-width: 9
    fig-height: 8
    fig-dpi: 300
    embed-resources: TRUE # Entwicklung
    theme: "null" # Entwicklung
    # embed-resources: FALSE # Veröffentlichung
    # theme: none # Veröffentlichung

execute: 
  echo: FALSE
  output: asis
  warning: FALSE
  error: FALSE
---

```{r}
#| label: pakete_und_daten
#| output: false
library(tidyverse)
library(SMChelpR)
library(scales)
library(DT)
library(zoo)
library(plotly)
library(jsonlite)
library(httr)
library(lubridate)
library(knitr)

try(setwd(dirname(rstudioapi::getActiveDocumentContext()$path)))


file_name_code <- "energiewende_report.qmd"
file_name_data <- "data.zip"

imagepath <-
    file.path("fileadmin", "user_upload", "produkte", "Energiewendereport")
dir.create(imagepath, showWarnings = FALSE)

file_name_code <- file.path(imagepath, paste0(today(), "_energiewende_report.qmd"))
file_name_data <- file.path(imagepath, paste0(today(), "_data.zip"))

## workspace directory in RStudio interaktiv
if (rstudioapi::isAvailable()) {
    setwd(dirname(rstudioapi::getActiveDocumentContext()$path))
}

if (is.na(file_name_code)) {
    stop("Dateiname der qmd nicht gesetzt")
}
if (imagepath == file.path("fileadmin", "user_upload", "produkte")) {
    stop("Pfad für Dateien nicht gesetzt")
}

file.copy(
    from = file_name_code,
    to = file.path(imagepath, paste0(today(), "_", file_name_code)),
    overwrite = TRUE
)

# START_DATE <- "2022-09-22"
# END_DATE <- "2023-09-23"

START_DATE_SEASON <- "2023-06-22"
END_DATE_SEASON <- "2023-09-21"
JAHRESZEIT <- "Sommer"

START_DATE_OBJECT <- as.Date(START_DATE_SEASON)
END_DATE_OBJECT <- as.Date(END_DATE_SEASON)

try(load(file.path("data", "Rueckblick.RData")))
try(load(file.path("data", "Simulation.RData")))
try(load(file.path("data", "entsoe.RData")))

```

```{r}
#| label: set-graphic-parameters
#| output: false

options(scipen = 999) # set scientific notation to be off
SMC_theme_ggplot()
theme_update(plot.title = element_text(hjust = 0.5), text = element_text(size = 8))


caption_energiewende_report <-
    "Quelle: ENTSO-E, Berechnungen: Science Media Center Germany."

if (exists("caption_")) {
    stop("Caption wurde nicht angepasst")
}
```

```{r}
#| label: data mutation and preparation
#| output: false

flexibilty <- c(20, 30, 40, 50)
electrolysis_power <- seq(0, 40, by = 2.5)

for (flex in flexibilty) {
    data <- paste("simulation_data_", flex, sep = "")
    backup <- paste("backup_", flex, sep = "")
    surplus <- paste("surplus_", flex, sep = "")
    used_surplus <- paste("used_surplus_", flex, sep = "")
    data <- get(data)

    assign(backup, data %>%
        arrange(desc(generation_other_sources)) %>%
        mutate(generation_other_sources = round(generation_other_sources / 1000, 1)) %>%
        mutate(Szenario = paste(flex, " GW", sep = "")) %>%
        mutate(Stunden = seq_along(generation_other_sources)))

    assign(surplus, data %>%
        mutate(surplus_renewables = round(surplus_renewables / -1000, 1)) %>%
        arrange(desc(surplus_renewables)) %>%
        mutate(Szenario = paste(flex, " GW", sep = "")) %>%
        mutate(Stunden = seq_along(surplus_renewables)) %>%
        rowwise() %>%
        mutate(usable_surplus = list(pmin(surplus_renewables, electrolysis_power))))

    surplus <- get(surplus)

    tmp <- c()
    for (i in 1:length(electrolysis_power)) {
        used <- 0
        # iterate over all rows of surplus_with_storage
        for (j in 1:nrow(surplus)) {
            used <- used + surplus$usable_surplus[[j]][i]
        }
        tmp <- c(tmp, used)
    }

    # combine used surplus with storage and without storage in a tibble
    tmp <- tibble(
        electrolysis_power = electrolysis_power,
        used_surplus = tmp,
        Szenario = paste(flex, " GW", sep = "")
    )
    assign(used_surplus, tmp)
}
backup <- bind_rows(backup_20, backup_30, backup_40, backup_50) 
surplus <- bind_rows(surplus_20, surplus_30, surplus_40, surplus_50)
used_surplus <- bind_rows(used_surplus_20, used_surplus_30, used_surplus_40, used_surplus_50)

```

```{r}
#| label: pre compute data for text
#| output: false
backup_20_text <- sum(backup_20$generation_other_sources)/1000
backup_50_text <- sum(backup_50$generation_other_sources)/1000
```

```{r}
#| label: funktion-grafik-auslastung

plot_auslastung_erneuerbare <-
    function(filename, Erzeuger, title, imagepath) {
        tmp <-
            utilization %>%
            mutate(
                Datum2 = Datum
            ) %>%
            group_by(Zeitraum) %>%
            filter(Erzeuger == {{ Erzeuger }}) %>%
            mutate(Auslastung = round(
                rollmean(
                    Auslastung,
                    k = 7,
                    align = "right",
                    na.pad = TRUE
                ) * 100,
                2
            )) %>%
            mutate(
                Datum = if_else(Zeitraum == "durchschnittlich", as.character(format(Datum, "%d. %B")), as.character(format(Datum, "%d.%m.%Y"))),
                Zeitraum = case_match(
                    Zeitraum,
                    "aktuell" ~ sprintf("2023"),
                    "durchschnittlich" ~ sprintf("Mehrjähriger Schnitt (2015-2022)"),
                )
            ) %>%
            mutate(
                `Auslastung in Prozent` = Auslastung
            ) %>%
            filter(Datum2 >= as.Date(START_DATE_SEASON) &
                Datum2 <= as.Date(END_DATE_SEASON)) %>%
            write_csv(file.path(imagepath, paste0(filename, ".csv"))) %>%
            # mutate(Referenztag = if_else(Zeitraum=="Durchschnitt vom 01.0.1.2015 bis 21.12.2022",  format(as.Date(Datum), "%d. %b"), Datum)) %>%
            ggplot(aes(
                x = Datum2,
                y = `Auslastung in Prozent`,
                color = Zeitraum,
                label = Datum,
                linetype = Zeitraum
            )) +
            geom_line() +
            scale_y_continuous(
                limits = c(0, 60),
                breaks = seq(0, 100, 10),
                labels = scales::label_percent(scale = 1),
                expand = c(0.01, 0.01)
            ) +
            scale_linetype_manual(
                values = c(
                    "solid", "dotted"
                )
            ) +
            scale_x_date(date_labels = "%d. %b", expand = c(0.01, 0.01), date_breaks = "2 week") +
            labs(
                x = "",
                y = "Auslastung",
                title = {{ title }},
                caption = caption_energiewende_report
            ) +
            theme(
                legend.title = element_blank(),
                legend.position = "bottom"
            )
    }

```

::: m-news-single__ce

Die Bundesregierung will im Herbst in einer Kraftwerksstrategie präsentieren, wie viele Kraftwerke als Back-up für die erneuerbaren Energien gebaut werden sollen. Die Zahlen dafür hat der Bundeswirtschaftsminister im August schon gestreut. Wir haben nachgerechnet und festgestellt: Sie könnten noch nicht vollständig ausreichen, um die Stabilität des Stromnetzes zu jeder Zeit zu gewährleisten -- was heute üblich ist. Der Grund: Vor allem in den Wintermonaten übersteigt der Back-up-Leistungsbedarf die anvisierte Inlands-Kraftwerksleistung. Als wichtige Größe hat sich in unserer Rechnung dabei herausgestellt, in welcher Größenordnung Verbraucher ihren Bedarf flexibel an die Stromerzeugung von Windkraft- und PV-Anlagen anpassen können. Das kann den Kraftwerksbedarf senken. 

Eine flexible Stromverbrauchsanpassung in den Größenordnungen, die wir für unsere Rechnung angewendet haben (20 bis 50 Gigawatt), ist heute bei weitem noch nicht üblich, wird jedoch auch in der Forschung oder von der Bundesnetzagentur für 2030 angenommen. Daraus ergeben sich wichtige Fragen: Kann man sich drauf verlassen, dass die Technik in sechs Jahren funktionieren wird und genügend Verbraucher mitmachen, um diese  Größenordnung zu erreichen? Oder muss man doch eine Rückversicherung vorsehen -- und wie könnte diese aussehen? Wir werden diese Punkte mit Forschern auf einem Press Briefing erörtern.

In Teil I dieses Reports können Sie schon jetzt im Detail nachlesen, warum die bisher bekannten Pläne für Back-up-Kraftwerke noch nicht vollkommen ausreichen, um die Stabilität der Stromversorgung zu jeder Zeit zu gewährleisten und Deutschland dafür auf Stromimporte angewiesen sein wird.

Teil II geht dann der Frage nach, wie viel ungenutzter Strom für die Wasserstofferzeugung im Inland anfallen dürfte. Wasserstoff ist der optimale Langzeitspeicher, um ungenutzten Strom für längere Stromflauten nutzbar zu machen. Zu den für 2030 geplanten Back-up-Kraftwerken gehören auch einige Wasserstoffkraftwerke. Ergebnis: Für einen wirtschaftlichen Betrieb der Elektrolyseure gäbe es 2030 wahrscheinlich noch zu wenig Stunden.

In Teil III schließlich werfen wir wieder einen Blick auf die Stromausbeute des zurückliegenden Quartals, wie in den vorangegangenen Ausgaben. Es war ein eher durchschnittlicher Sommer für die erneuerbaren Energien -- auch für die Photovoltaik, trotz des guten Sommers. Die Auswertungen finden Sie nun an neuer Stelle am Ende des Reports.

### Übersicht

-   Teil I -- Reichen die derzeit geplanten Back-up-Kraftwerke für 2030 aus?
-   Teil II -- Wie viel Wasserstoff ließe sich 2030 aus ungenutztem Strom gewinnen?
-   Teil III -- War es ein guter Sommer für die erneuerbaren Energien?

### Teil I: Reichen die derzeit geplanten Back-up-Kraftwerke für 2030 aus?

*Zu Datengrundlage, Begriffen, Annahmen und Berechnungen siehe die Hinweise am Ende des Reports.*

Im Herbst 2023 arbeitet die Bundesregierung an einer Kraftwerksstrategie. Die soll den Weg zu einer ausreichenden Menge an Back-up-Kraftwerken weisen. In den [zurückliegenden Monaten](https://www.bmwk.de/Redaktion/DE/Pressemitteilungen/2023/08/20230801-rahmen-fuer-die-kraftwerksstrategie-steht.html){target="_blank"} wurden bereits einige Zahlen veröffentlicht, die Rückschlüsse auf diese Strategie zulassen. Offen ist: Reichen diese Kapazitäten schon vollständig aus, um die Stabilität des Stromnetzes zu jeder Zeit zu garantieren -- auch, wenn die Stromerzeugung aus Wind- und Solarkraft schwächelt?

Die Abschätzung des Back-up-Leistungsbedarfs für 2030 ist komplex: Windkraftanlagen (WKA) und Photovoltaik (PV)-Anlagen erzeugen Strom, wenn der Wind weht und die Sonne scheint. Dem müssen sich Stromspeicher und Verbrauch flexibel anpassen; zur Not können auch einige Verbraucher gedrosselt werden. Wenn das nicht ausreicht, müssen steuerbare Kraftwerke oder Stromimporte aus dem Ausland einspringen, damit immer genug Strom für alle anderen Verbraucher da ist. Das ist das Back-up. Um dessen Größe und Zusammensetzung für 2030 und die folgenden Jahre vorzubereiten, kommt es zunächst darauf an, festzustellen, wie hoch die maximale Leistung des Back-ups sein und wie lange diese auftreten kann. Daraus kann man schließen, wie viele Kraftwerke zusätzlich zu WKA und PV-Anlagen wahrscheinlich nötig sind. 

Eine besondere Rolle kommt dabei sogenannten **Flexibilitäten** zu. Damit sind Stromverbraucher gemeint, die für eine kurze Zeit ihren Verbrauch drosseln, abschalten oder steigern können, ohne dass ihre Aufgabe beeinträchtigt würde. Das sind zum Beispiel Wärmepumpen mit Speichern oder Elektroautos, die geladen werden, Industrieprozesse oder auch Batterien. Diese Flexibilitäten optimieren den Stromverbrauch entlang der Stromerzeugung von WKA und PV-Anlagen, sodass weniger Kraftwerke für das Back-up nötig sind. Die Leistung der Flexibilitäten gibt an, wie viel GW an Verbrauch sich im Stromnetz an WKA- und PV-Einspeisung anpassen lässt. Wir legen als maximale Verschiebung von Leistungsbedarfen einen Zeitraum von 48 Stunden zugrunde. Der Strombedarf wird durch die Flexibilität nicht beeinflusst. 

Die folgenden Szenarien geben einen Eindruck, wie sich Annahmen über die zur Verfügung stehenden GW an Flexibilität auf die notwendige Back-up-Leistung im Jahr 2030 auswirken. Dabei betrachten wir Batterien (200 GW in unseren Szenarien) und flexiblen Verbrauch getrennt, weil Batterien nur geringen Einfluss auf die maximal notwenige Leistung haben. (*Ausführlich dazu siehe die Beschreibung unserer Szenarien im ersten [Energiewende-Report](https://www.sciencemediacenter.de/alle-angebote/data-report/details/news/energiewende-report-2023-04-06/){target="_blank"}, eine kurze Zusammenfassung finden sie am Ende dieses Reports)*. Grundlage ist der Verlauf der erneuerbaren Stromerzeugung von 2022, hochgerechnet auf die Werte für den Ausbau und den prognostizierten Verbrauch für 2030. Andere Kraftwerke gehen nicht in diese Szenarien ein. 

Als Form haben wir die Jahresdauerlinie gewählt. Sie zeigt auf einen Blick, wie hoch die Leistung im Extremfall ansteigen kann und für wie viele Stunden im Jahr welche Leistung erforderlich würde. Indirekt lässt sie auch Rückschlüsse auf die Energiemenge und mögliche Kostengrößen zu, die wir hier aber nicht betrachten. Dafür wurde die erneuerbare Stromerzeugung und der Bedarf für jede Stunde von 2030 berechnet. In den Stunden, in denen der Bedarf nicht komplett von der erneuerbaren Stromerzeugung gedeckt ist, müssten Back-up-Anlagen einspringen.
Diese notwendige Back-up-Leistung ist in der Grafik absteigend sortiert über der aufsummierten Betriebszeit eingetragen, links startend mit den höchsten Werten, bis sie schließlich Null beträgt. Ab diesem Punkt können WKA und PV-Anlangen die Stromversorgung für die restlichen Stunden im Jahr – dies sind insgesamt 8760 – allein übernehmen. 

Die Anzahl der Stunden mit gleicher Mindestleistung wird beim Hovern über der Kurve angezeigt.



```{r}
#| label: load duration curve für backup

# Sort the dataframe by power generation in descending order
filename <- paste0(today(), "_load_duration_curve_backup")

tmp <- backup %>%
    mutate(`Zusätzliche Leistung in GW` = round(generation_other_sources, 1)) %>%
    write_csv(file.path(imagepath, paste0(filename, ".csv"))) %>% 
    ggplot(aes(x = Stunden, y = `Zusätzliche Leistung in GW`, color = Szenario)) +
    geom_line() +
    labs(x = "aufsummierte Back-up-Betriebsstunden 2030", y = "Notwendige Back-up Leistung in GW", title = "Jahresdauerlinien notwendiger Back-up-Leistung")  +
    ylim(0, 80) +
    scale_color_discrete(name = "Flexibilität") 
    

ggplotly_SMC(
    tmp,
     mehrzeiliger_titel = TRUE,
) %>%
    layout(
        legend = list(y = -0.3, entrywidth = 180)
    ) 

tmp %>%
    image_helper(filename,
        imagepath,
        plotly = TRUE,
        caption = caption_energiewende_report
    )
```

Unterschiedliche Annahmen für flexiblen Verbrauch -- Flexibilitäten -- verändern die Jahresdauerline auf den ersten Blick wenig. Es gibt jedoch wichtige Details:

- Bei 20 GW Flexibilitäten tritt eine extreme Spitze im Leistungsbedarf von `r format(max(backup_20$generation_other_sources), decimal.mark = ",")` GW für sehr wenige Stunden auf. In unserer Simulation bezüglich des Basisjahres 2022 tritt dieser Höchstwert am 10. Januar auf. Am 10. Januar 2022 fiel die Auslastung der Windkraft- und PV-Anlagen bis auf 1,8 Prozent von der installierten Leistung ab. Für solche kurzen Spitzen würden wahrscheinlich kaum Kraftwerke angefahren, es wäre sinnvoller, den Strom zu importieren oder Verbraucher abzuschalten, wenn das noch geht. 

- Bei 30 GW Flexibilitäten sinkt diese Spitze auf `r format(max(backup_30$generation_other_sources), decimal.mark = ",")` GW. 
- Bei 40 GW Flexibilitäten verschwindet die Spitze ganz. Die Jahresdauerlinie fällt bis zu einer Leistung von circa 35 GW gleichmäßig ab, bevor sie dann abflacht. 
- Bei 50 GW Flexibilitäten zeigt sich kein Einfluss mehr auf die Lastspitze. Diesen Effekt hatten wir bereits im ersten [Energiewende-Report](https://www.sciencemediacenter.de/alle-angebote/data-report/details/news/energiewende-report-2023-04-06/){target="_blank"} beobachtet.  
- Mit steigender Flexibilität verändert sich die Form der Kurven: Der mittlere Leistungsbereich wird etwas seltener gebraucht, der untere etwas häufiger. Dadurch steigen zwar die Betriebsstunden fürs Back-up, aber die Back-up Energie (erforderliche Leistung x Betriebsstunden) sinkt von `r format(round(backup_20_text,1), decimal.mark = ",")` TWh (20 GW Flexibilität) auf `r format(round(backup_50_text,1), decimal.mark = ",")` TWh (50 GW Flexibilität). In der Simulation wird die Residuallast möglichst gut ausbalanciert -- im Rahmen der maximal möglichen Flexibilität. Das führt zu mehr Stunden, in denen Back-up-Kraftwerke laufen, aber zu weniger Energie, die sie erzeugen müssen und zu einer geringeren Leistungsspitze. 

*Anmerkung: Die tatsächlich notwendige Leistung könnte geringfügig höher liegen, weil Netzverluste und zum Teil Kraftwerksbedarfe zu den Werten hinzugerechnet werden müssten. Diese ebenfalls zu simulieren, würde jedoch viele weitere Annahmen erfordern und an der grundsätzlichen Aussage nichts ändern.* 

Mit dieser Auswertung lässt sich nun grob abschätzen, welchem Anteil des Back-up-Leistungsbedarfs, den Kraftwerke erzeugen müssten, 2030 tatsächlich auch Kraftwerksleistung im Inland gegenüberstehen könnte. Was nicht in Deutschland erzeugt werden kann, müsste von Kraftwerken aus den Nachbarländern geliefert werden.

Zwei Entwicklungen sind dabei derzeit denkbar: Der Kohleausstieg läuft wie geplant oder er läuft schneller.\
Für den ersten Fall haben wir im Folgenden zusammengestellt, welche Kraftwerksleistungen heute bereits vorhanden sind und welche konkrete Pläne in der Umsetzung sind, die bis 2030 abgeschlossen sein können:

- 34,8 GW [Erdgaskraftwerke](https://www.energy-charts.info/charts/installed_power/chart.htm?l=de&c=DE&partsum=1&stackLabelDecimalPlaces=2&chartColumnSorting=default){target="_blank"}. Diese Kraftwerke werden unter Umständen zum Teil auf Wasserstoff umgerüstet, es gibt keinen Plan, die Leistung bis 2030 zu verringern.\
-   14 GW Kohlekraftwerke. Das [Kohleausstiegsgesetz](https://www.gesetze-im-internet.de/kvbg/__4.html){target="_blank"} sieht zwar für 2030  17 GW vor, aber RWE will bis 2030 [seine Braunkohlekraftwerke abschalten](https://www.rwe.com/presse/rwe-ag/2022-10-04-verstaendigung-auf-kohleausstieg-2030-staerkung-der-versorgungssicherheit-in-energiekrise/){target="_blank"}. Nach aktualisiertem [Stilllegungspfad Braunkohle](https://www.wirtschaft.nrw/system/files/media/document/file/stilllegungspfad_braunkohle_2030.pdf){target="_blank"} reduziert sich der Braunkohleanteil an der Kohlekraftwerksleistung dadurch um 3 GW.\ Für Steinkohlekraftwerke ist kein Plan für einen schnelleren Ausstieg nachgewiesen, sie werden derzeit nach [Ausschreibungen durch die Bundesnetzagentur](https://www.bundesnetzagentur.de/DE/Fachthemen/ElektrizitaetundGas/Kohleausstieg/start.html){target="_blank"} abgeschaltet. \ Wegen des Ukrainekriegs [vorübergehend wieder ans Netz](https://www.smard.de/home/rueckkehr-von-kohlekraftwerken-an-den-strommarkt-209208){target="_blank"} gegangene Kohlekraftwerke sollen [2024 abgeschaltet](https://www.bundesnetzagentur.de/DE/Fachthemen/ElektrizitaetundGas/Kohleausstieg/EKBG/start.html){target="_blank"} werden.\
-   1,2 GW Netzstabilitätsanlagen oder besondere netztechnische Betriebsmittel. Vier Kraftwerke der Übertragungsnetzbetreiber, [Übersicht hier](https://de.wikipedia.org/wiki/Besondere_netztechnische_Betriebsmittel){target="_blank"}, die nur bei Versorgungsengpässen genutzt werden dürfen.

Darüber hinaus sieht das EEG den Zubau folgender Anlagen vor, die bis 2030 ans Netz gegangen sein könnten. Die Summe ist aber nur schwer abzuschätzen:

-   Bis zu 2,4 GW [Biomasseanlagen](https://www.gesetze-im-internet.de/eeg_2014/__28c.html){target="_blank"}, allerdings können auch [bestehende Anlagen](https://www.bundesnetzagentur.de/DE/Fachthemen/ElektrizitaetundGas/Ausschreibungen/Biomasse/start.html){target="_blank"} an den Ausschreibungen teilnehmen. Ausgewählt wird nach einem [komplexen Verfahren](https://www.gesetze-im-internet.de/eeg_2014/__39d.html){target="_blank"}. Es ist daher unklar, wie viele Anlagen tatsächlich neu gebaut werden. Weil die meisten Szenarien nicht von einem Biomasse-Zuwachs ausgehen (**mehr: siehe Ende des Reports**), gehen wir von keinem Zubau aus.\
-   Bis zu 3,6 GW [Biomethananlagen](https://www.gesetze-im-internet.de/eeg_2014/__28d.html){target="_blank"}. Diese müssen unter Umständen auf [Wasserstoff umrüstbar](https://www.gesetze-im-internet.de/eeg_2014/__39k.html){target="_blank"} sein, geboten werden darf nur aus Süddeutschland. 2023 ging [kein Gebot im April](https://www.bundesnetzagentur.de/DE/Fachthemen/ElektrizitaetundGas/Ausschreibungen/Biomethan/BeendeteAusschreibungen/Gebotstermin01042023/start.html){target="_blank"} und [im September](https://www.bundesnetzagentur.de/DE/Fachthemen/ElektrizitaetundGas/Ausschreibungen/Biomethan/Gebotstermin01092023/start.html){target="_blank"} für diese Anlagen ein.

Dem notwendigen Back-up-Leistungsbedarf stünden damit 53,9 GW im Inland installierte, steuerbare Kraftwerksleistungen gegenüben. Diese haben wir nun in die Grafiken für die Annahmen Flexibilität (20 GW) und Flexibilität (50 GW) als gestrichelte rote Linie eingetragen; unterhalb dieser Linie ist die notwendige Back-up-Leistung durch Kraftwerke im Inland abgedeckt (grau gefärbt), darüber nicht. 
*Anmerkung: Die Erzeugung der bereits vorhandenen Biogasanlagen ist bereits in der simulierten Stromerzeugung erneuerbarer Energien enthalten. Zurzeit laufen diese relativ konstant, allerdings besteht auch bei diesen Anlagen die Möglichkeit eines zielgerichteteren Einsatzes bei einer hohen notwendigen Back-up-Leistung, siehe dazu auch unsere Angebote [Energiewende-Report](https://www.sciencemediacenter.de/alle-angebote/data-report/details/news/das-erneuerbare-energiesystem-entwicklung-im-fruehjahr-und-ausblick-auf-biogas-potenzial/) und [Biogas: Auslaufmodell oder Eckstein für die Energiewende?](https://www.sciencemediacenter.de/alle-angebote/rapid-reaction/details/news/biogas-auslaufmodell-oder-eckstein-fuer-die-energiewende/).*

```{r}
#| label: augmented load duration curve organised backup

# Sort the dataframe by power generation in descending order
filename <- paste0(today(), "_load_duration_curve_backup_annotated_organised_20GW")

tmp <- backup_20 %>%
    mutate(`Zusätzliche Leistung in GW` = round(generation_other_sources, 1)) %>%
    write_csv(file.path(imagepath, paste0(filename, ".csv"))) %>%
    ggplot(aes(x = Stunden, y = `Zusätzliche Leistung in GW`)) +
    geom_line() +
    geom_ribbon(aes(ymin = 0, ymax = pmin(53.9, `Zusätzliche Leistung in GW`)), fill = "grey", alpha = 0.5) +
    geom_ribbon(aes(ymin = 53.9, ymax = pmax(53.9, `Zusätzliche Leistung in GW`)), fill = "red", alpha = 0.5) +
    # geom_ribbon(aes(ymin = `Zusätzliche Leistung in GW`, ymax = optimized_load/1000), fill = "green", alpha = 0.5) +
    geom_hline(yintercept = 53.9, linetype = "dashed", color = "red") +
    labs(x = "aufsummierte Back-up-Betriebsstunden 2030", y = "Notwendige Back-up Leistung in GW", title = "Jahresdauerlinie notwendige Back-up-Leistung -\n mit Kohlekraftwerken, 20 GW Flexibilität") +
    geom_vline(xintercept = 8760, alpha = 0.5, color = "grey") + 
    annotate("text", x = 8760, y = -Inf, label = 8760, vjust = 1, hjust = 0.5)  + 
    ylim(0, 80) 



ggplotly_SMC(tmp,
    tooltip = c("x", "y"),
    mehrzeiliger_titel = TRUE
) %>%
    layout(
        legend = list(title="", y = -0.3)
    )

tmp %>%
    image_helper(filename,
        imagepath,
        plotly = TRUE,
        caption = caption_energiewende_report
    )
```

```{r}
#| label: augmented load duration curve organised backup 50 GW

# Sort the dataframe by power generation in descending order
filename <- paste0(today(), "_load_duration_curve_backup_annotated_organised_50GW")

tmp <- backup_50 %>%
    mutate(`Zusätzliche Leistung in GW` = round(generation_other_sources, 1)) %>%
    write_csv(file.path(imagepath, paste0(filename, ".csv"))) %>%
    ggplot(aes(x = Stunden, y = `Zusätzliche Leistung in GW`)) +
    geom_line() +
    geom_ribbon(aes(ymin = 0, ymax = pmin(53.9, `Zusätzliche Leistung in GW`)), fill = "grey", alpha = 0.5) +
    geom_ribbon(aes(ymin = 53.9, ymax = pmax(53.9, `Zusätzliche Leistung in GW`)), fill = "red", alpha = 0.5) +
    # geom_ribbon(aes(ymin = `Zusätzliche Leistung in GW`, ymax = optimized_load/1000), fill = "green", alpha = 0.5) +
    geom_hline(yintercept = 53.9, linetype = "dashed", color = "red") +
    labs(x = "aufsummierte Back-up-Betriebsstunden 2030", y = "Notwendige Back-up-Leistung in GW", title = "Jahresdauerlinie notwendige Back-up-Leistung -\n mit Kohlekraftwerken, 50 GW Flexibilität") +
    geom_vline(xintercept = 8760, alpha = 0.5, color = "grey") + 
    annotate("text", x = 8760, y = -Inf, label = 8760, vjust = 1, hjust = 0.5) + 
    ylim(0, 80) 


ggplotly_SMC(tmp,
    tooltip = c("x", "y"),
    mehrzeiliger_titel = TRUE
) %>%
    layout(
        legend = list(title="", y = -0.3)
    )

tmp %>%
    image_helper(filename,
        imagepath,
        plotly = TRUE,
        caption = caption_energiewende_report
    )
```

Das Ergebnis: In beiden Szenarien stünde dem Back-up-Leistungsbedarf nicht ausreichend Leistung im Inland gegenüber, um die Stabilität des Stromnetzes zu jeder Zeit zu garantieren: \

- Im Szenario Flexibilität (20 GW) blieben `r format(round((sum(backup_20$generation_other_sources)-sum(pmin(backup_20$generation_other_sources, 53.9)))/1000,2), decimal.mark = ",")` TWh Back-up-Energie offen.\
- Im Szenario Flexibilität (50 GW) blieben `r format(round((sum(backup_50$generation_other_sources)-sum(pmin(backup_50$generation_other_sources, 53.9)))/1000,2), decimal.mark = ",")` TWh Back-up-Energie offen.

Die Stabilität der Stromnetze muss aber jederzeit gewährleistet sein. Sollte die dafür notwendige Energie nicht im Inland bereitgestellt werden können, müsste sie aus dem Ausland importieren werden.\
Über 90 Prozent diese Importe wären zwischen November und März notwendig, also vor allem in den Wintermonaten. In diesen Monaten ist der Strombedarf in ganz Europa höher als im Sommer, hier müsste eine umfangreichere Analyse als unsere zeigen, wie viel Strom tatsächlich für Importe gesichert zur Verfügung stünde.
Nicht Gegenstand dieser Szenarien ist weiter, ob Stromimporte für die Stabilität der Stromnetze ausreichen oder ob zusätzlich sogenannte Netzdienstleistungen organisiert werden müssten und könnten. Das müssten die Übertragungsnetzbetreiber in Netzanalysen untersuchen.
 
In der zweiten denkbaren Entwicklung ist der Kohleausstieg bis 2030 abgeschlossen. Das könnte durch den steigenden CO<sub>2</sub>-Preis des europäischen Emissionshandels bewirkt werden; er soll klimaschädliche Kraftwerke unrentabel machen.  

Die Bundesnetzagentur hat daher Anfang des Jahres berechnet, wie die Stromversorgung ohne Kohlekraftwerke funktionieren kann. Ergebnis: Bis 2030 müssten zu den heute bereits vorhandenen Erdgas- und Netzstabilitätsanlagen 17 bis 21 GW an [Erdgaskraftwerken](https://dserver.bundestag.de/btd/20/055/2005585.pdf){target="_blank"} zugebaut werden. Die Bundesregierung hat daher wiederholt angekündigt, mit einer Kraftwerksstrategie auf diese Situation zu reagieren, und den Rahmen für den Bau zusätzlicher Kraftwerke zu organisieren.

Bis jetzt wurden davon angekündigt und könnten bis 2030 realisierbar sein:

-   7 GW [Biomassekraftwerke](https://dserver.bundestag.de/btd/20/055/2005555.pdf){target="_blank"} S. 5. Diese Leistung ist demnach im EEG bereits angelegt, wir sehen sie aufgrund der Bezeichnung als Kraftwerke als Erweiterung der 3,6 GW Biomethan-Anlagen an. Es gilt das gleiche wie oben für die Biomasse-Anlagen.\
-   Bis zu 6 GW [Wasserstoff-Ready-Kraftwerke](https://www.bmwk.de/Redaktion/DE/Pressemitteilungen/2023/08/20230801-rahmen-fuer-die-kraftwerksstrategie-steht.html){target="_blank"}. Angekündigt werden 15 GW Wasserstoff-Ready-Kraftwerken bis 2035, 10 GW sollen bis 2026 ausgeschrieben werden, bis zu 6 GW können für neue Kraftwerke reserviert werden.\
-   Bis zu 4,4 GW [Wasserstoffkraftwerke](https://dserver.bundestag.de/btd/20/055/2005555.pdf){target="_blank"} S. 5. (EEG-Innovationsausschreibungen). Im Dokument werden rund 9 GW genannt, die [Pressemitteilung vom 01.08.2023](https://www.bmwk.de/Redaktion/DE/Pressemitteilungen/2023/08/20230801-rahmen-fuer-die-kraftwerksstrategie-steht.html){target="_blank"} präzisiert die Summe mit 8,8 GW. 4,4 GW davon entfallen auf Sprinterkraftwerke, die von 2024 bis 2028 auktioniert werden sollen. Wirklich alle davon bis 2030 fertig zu stellen, wäre sehr ambitioniert. Vorgesehen sind die [Sprinterkraftwerke im EEG](https://www.gesetze-im-internet.de/eeg_2014/__39p.html){target="_blank"}, es fehlt aber noch eine Verordnung. Für die ebenfalls in der Pressemitteilung genannten 4,4 GW Hybridkraftwerke gibt es noch keine Zeitangaben, auch sie sind bereits [im EEG](https://www.gesetze-im-internet.de/eeg_2014/__39o.html){target="_blank"} vorgesehen.

Den Vorschlag der Bundesnetzagentur, Notstromaggregate für die Stromversorgung zu aktivieren (4 GW), hat die Bundesregierung nicht aufgegriffen.

Die 14 GW Kohlekraftwerksleistung fallen weg. 

Dem notwendigen Back-up-Leistungsbedarf stünden damit 53,4 GW im Inland installierte, steuerbare Kraftwerksleistungen gegenüber, fast genauso viel wie vorher mit den Kohlekraftwerken: 

```{r}
#| label: augmented load duration curve planned backup

# Sort the dataframe by power generation in descending order
filename <- paste0(today(), "_load_duration_curve_backup_annontated_planned_20_GW")

tmp <- backup_20 %>%
    mutate(`Zusätzliche Leistung in GW` = round(generation_other_sources, 1)) %>%
    write_csv(file.path(imagepath, paste0(filename, ".csv"))) %>%
    ggplot(aes(x = Stunden, y = `Zusätzliche Leistung in GW`)) +
    geom_line() +
    geom_ribbon(aes(ymin = 0, ymax = pmin(53.4, `Zusätzliche Leistung in GW`)), fill = "grey", alpha = 0.5) +
    geom_ribbon(aes(ymin = 53.4, ymax = pmax(53.4, `Zusätzliche Leistung in GW`)), fill = "red", alpha = 0.5) +
    # geom_ribbon(aes(ymin = `Zusätzliche Leistung in GW`, ymax = optimized_load/1000), fill = "green", alpha = 0.5) +
    geom_hline(yintercept = 53.4, linetype = "dashed", color = "red") +
    labs(x = "aufsummierte Back-up-Betriebsstunden 2030", y = "Notwendige Back-up Leistung in GW", title = "Jahresdauerlinie notwendige Back-up-Leistung -\n ohne Kohlekraftwerke, 20 GW Flexibilität") +
    geom_vline(xintercept = 8760, alpha = 0.5, color = "grey") +
    annotate("text", x = 8760, y = -Inf, label = 8760, vjust = 1, hjust = 0.5) +
    ylim(0, 80)

ggplotly_SMC(tmp,
    tooltip = c("x", "y"),
    mehrzeiliger_titel = TRUE
) %>%
    layout(
        legend = list(title="", y = -0.3)
    )

tmp %>%
    image_helper(filename,
        imagepath,
        plotly = TRUE,
        caption = caption_energiewende_report
    )
```

```{r}
#| label: augmented load duration curve planned backup 50 GW

# Sort the dataframe by power generation in descending order
filename <- paste0(today(), "_load_duration_curve_backup_annontated_planned_50_GW")

tmp <- backup_50 %>%
    mutate(`Zusätzliche Leistung in GW` = round(generation_other_sources, 1)) %>%
    write_csv(file.path(imagepath, paste0(filename, ".csv"))) %>%
    ggplot(aes(x = Stunden, y = `Zusätzliche Leistung in GW`)) +
    geom_line() +
    geom_ribbon(aes(ymin = 0, ymax = pmin(53.4, `Zusätzliche Leistung in GW`)), fill = "grey", alpha = 0.5) +
    geom_ribbon(aes(ymin = 53.4, ymax = pmax(53.4, `Zusätzliche Leistung in GW`)), fill = "red", alpha = 0.5) +
    # geom_ribbon(aes(ymin = `Zusätzliche Leistung in GW`, ymax = optimized_load/1000), fill = "green", alpha = 0.5) +
    geom_hline(yintercept = 53.4, linetype = "dashed", color = "red") +
    labs(x = "aufsummierte Back-up-Betriebsstunden 2030", y = "Notwendige Back-up Leistung in GW", title = "Jahresdauerlinie notwendige Back-up-Leistung -\n ohne Kohlekraftwerke, 50 GW Flexibilität") +
    geom_vline(xintercept = 8760, alpha = 0.5, color = "grey") + 
    annotate("text", x = 8760, y = -Inf, label = 8760, vjust = 1, hjust = 0.5) +
    ylim(0, 80) 


ggplotly_SMC(tmp,
    tooltip = c("x", "y"),
    mehrzeiliger_titel = TRUE
) %>%
    layout(
        legend = list(title="", y = -0.3)
    )

tmp %>%
    image_helper(filename,
        imagepath,
        plotly = TRUE,
        caption = caption_energiewende_report
    )
```

Es gelingt zwar, die abgeschalteten Kohlekraftwerke zu ersetzen. Aber die Situation bleibt die gleiche wie in der Grafik vorher: In beiden Szenarien stünde dem Back-up-Leistungsbedarf nicht ausreichend Leistung im Inland gegenüber, um die Stabilität des Stromnetzes zu jeder Zeit zu garantieren.\ Allerdings würde unter der Annahme Flexibilität (50 GW) die Leistungsspitze fast ganz erreicht, wenn der Kraftwerkszubau auf 21 GW gesteigert und die Notstromanlagen mit einbezogen würden, wie die Bundesnetzagentur empfohlen hat.  

**Das Ergebnis ist sehr knapp. Die tatsächlichen Werte können sich durch unterschiedliche Annahmen ändern, schon die Wahl eines anderen Wetterjahres kann ein besseres oder schlechtes Ergebnis ergeben.**    

Die Szenarien zeigen: Eine wichtige Größe für die Stromversorgung der Zukunft sind die Flexibilitäten. Das wirft für die kommende Kraftwerksstrategie wichtige Fragen auf: 

Was ist realistisch? Kann man sich darauf verlassen, dass tatsächlich genügend Verbraucher und Verbraucherinnen mitmachen? Was ist technisch überhaupt möglich? Mit welcher Sicherheit lassen sich Stromerzeugung und -verbrauch für 2030 abschätzen? Wie kann eine Strategie diese Unsicherheiten berücksichtigen? Welche Vorkehrungen könnten die gewohnte Stabilität des Stromnetzes und damit der Stromversorgung erhalten, welche Rolle kommt der Strommarktreform zu? Was ändert sich damit für Verbraucher? \
Diese Fragen lassen sich in diesem Bericht nicht klären, wir diskutieren sie auf einem Press Briefing mit Forschern. 

### Teil II: Wie viel Wasserstoff ließe sich 2030 aus ungenutztem Strom gewinnen?

In unseren Szenarien fallen auch ungenutzte Strommengen an. Diese können zur Wasserstofferzeugung in Elektrolyseuren und der Weiterverarbeitung zu grünem Methan und Speicherung in vorhandenen Gaskavernen genutzt werden. In Zeiten längerer Stromknappheiten könnten diese als Treibstoff für Kraftwerke dienen und so die Stromversorgung stützen. Ungenutzter Strom ließe sich so quasi für schlechte Zeiten aufheben, in Größenordnungen, die mit Batterien nicht möglich sind. Das ist eine sinnvolle Ergänzung für das Back-up. Wir haben daher abgeschätzt, wie viel Strom für Elektrolyseure in unseren vier Szenarien schon 2030 zur Verfügung steht, wiederum in Form einer Jahresdauerlinie.

```{r}
#| label: load duration curve für überschuss

filename <- paste0(today(), "_load_duration_curve_ueberschuss")
# Create the Load Duration Curve (LDC)

tmp <- surplus %>%
    mutate(`Überschuss in GW` = round(surplus_renewables, 1)) %>%
    write_csv(file.path(imagepath, paste0(filename, ".csv"))) %>%

    ggplot(aes(x = Stunden, y = `Überschuss in GW`, color = Szenario)) +
    geom_line() +
    labs(x = "aufsummierte Stunden mit ungenutzter Stromerzeugung in 2030", y = "Überschuss in GW", title = "Jahresdauerlinie der ungenutzten Stromerzeugung") +
    scale_color_discrete(name = "Flexibilität") 

ggplotly_SMC(
    tmp,
    mehrzeiliger_titel = TRUE,
) %>%
    layout(
        legend = list(y = -0.3, entrywidth = 180)
    ) 

tmp %>%
    image_helper(filename,
        imagepath,
        plotly = TRUE,
        caption = caption_energiewende_report
    )
```

Ergebnis: Würden die 10 GW Elektrolyseure, die in der Fortschreibung der nationalen [Wasserstoffstrategie](https://www.bmbf.de/SharedDocs/Downloads/de/2023/230726-fortschreibung-nws.pdf?__blob=publicationFile&v=1){target="_blank"}  geplant sind, *allein* mit diesem ungenutzten Strom versorgt werden, kämen diese auf Laufzeiten im Jahr, die einen rein wirtschaftlichen Betrieb wahrscheinlich nicht zulassen; als Größenordnung für einen wirtschaftlichen Betrieb werden gut 3000 - 4000 Stunden pro Jahr betrachtet.   

Wie viel Strom in den vier Szenarien mit unterschiedlichen Flexibilitäten tatsächlich nutzbar sein könnte, zeigt folgende Grafik.

```{r}
#| label: usable surplus based on electrolysis power

filename <- paste0(today(), "_nutzbarer_ueberschuss_elektrolyseure")
tmp <- used_surplus %>%
    mutate(`Genutzer Überschuss in TWh` = round(used_surplus / 1000, 2)) %>%
    mutate(`Installierte Leistung Elektrolyseure in GW` = electrolysis_power) %>%
    write_csv(file.path(imagepath, paste0(filename, ".csv"))) %>%
    ggplot(aes(x = `Installierte Leistung Elektrolyseure in GW`, y = `Genutzer Überschuss in TWh`, color = Szenario)) +
    geom_line() +
    ylim(0, 78) +
    labs(x = "Leistung Elektrolyseure in GW", y = "Genutzer Strom in TWh", title = "Nutzbarer Strom für Elektrolyseure") +
    scale_color_discrete(name = "Flexibilität") 


ggplotly_SMC(
    tmp,
    mehrzeiliger_titel = TRUE,
) %>%
    layout(
        legend = list(y = -0.3, entrywidth = 180)
    )

tmp %>%
    image_helper(filename,
        imagepath,
        plotly = TRUE,
        caption = caption_energiewende_report
    )
```

Ergebnis: In den unterschiedlichen Szenarien unterscheidet sich die nutzbare Strommenge nur geringfügig. Gehen wir von einem Gesamtwirkungsgrad von 35 Prozent für die Wasserstoff-Kette aus (Elektrolyseure: 70 Prozent, Verstromung: 50 Prozent) und einer installierten Leistung von 10 GW Elektrolyseuren, kann Wasserstoff für Back-up-Kraftwerke in unseren Szenarien für 2030 die folgenden Größenordnungen erreichen:   


**Flexibilität 20 GW**

- Back-up-Bedarf: `r format(round(backup_20_text,1), decimal.mark = ",")` TWh
- Genutzter Überschuss: `r format(round(used_surplus_20$used_surplus[5]/1000, 1), decimal.mark = ",")` TWh
- Anteil Wasserstoff am an Back-up-Bedarf: `r format(round(0.35*used_surplus_20$used_surplus[5]/1000/backup_20_text*100,1), decimal.mark = ",")` Prozent
 - Anteil erneuerbare Energien am Bedarf: `r format(round((700 - backup_20_text)/7 + (0.35*used_surplus_20$used_surplus[5]/1000/700*100),1), decimal.mark = ",")` Prozent (im Vergleich zu `r format(round((700 - backup_20_text)/7,1), decimal.mark = ",")` Prozent ohne Wasserstoff)


**Flexibilität 50 GW** 

- Back-up-Bedarf: `r format(round(backup_50_text,1), decimal.mark = ",")` TWh
- Genutzter Überschuss: `r format(round(used_surplus_50$used_surplus[5]/1000, 1), decimal.mark = ",")` TWh
- Anteil Wasserstoff am an Back-up-Bedarf: `r format(round(0.35*used_surplus_50$used_surplus[5]/backup_50_text/700*100,1), decimal.mark = ",")` Prozent
 - Anteil erneuerbare Energien am Bedarf: `r format(round((700 - backup_50_text)/7 + (0.35*used_surplus_50$used_surplus[5]/1000/700*100),1), decimal.mark = ",")` Prozent (im Vergleich zu `r format(round((700 - backup_50_text)/7,1), decimal.mark = ",")` Prozent ohne Wasserstoff)
 
Wasserstoff aus ungenutztem Strom erreicht einen Teil von 5 bis knapp 9 Prozent an der notwendigen Back-up-Energie. Der Anteil erneuerbarer Energien in der Simulation steigt um ca. 1 Prozentpunkt, wobei auch ein Teil der weiteren notwendigen Back-up-Energie aus erneuerbaren Quellen stammen kann (Biomasse, Import von grünem Wasserstoff, Import von Strom aus erneuerbaren Quellen). 

Ob und wie dieser Prozess wirtschaftlich werden kann, hängt von ökonomischen Rahmenbedingungen ab. Es kann sinnvoll sein, mehr Strom für Elektrolyseure zu erzeugen, zum Beispiel mit eigens für die Wasserstoffproduktion errichteten WKA und PV-Anlagen. Wie viel von diesem Wasserstoff Kraftwerke nutzen können, hängt von weiteren Faktoren wie zum Beispiel der Konkurrenz durch Industrie, den CO<sub>2</sub>-Preisen und der Gestaltung des künftigen Strommarkts ab.   


### Teil III: Wie war der erneuerbare Stromertrag im Sommer?

In diesem Teil werfen wir einen Blick auf das zurückliegende Quartal. Die Frage dabei: War es ein gutes Quartal, war die Ernte durchschnittlich oder doch eher unter dem Schnitt?

Erneuerbare Energien haben zwischen dem `r format(as.Date(START_DATE_OBJECT), "%d.%m.%Y")` und dem `r format(as.Date(END_DATE_OBJECT), "%d.%m.%Y")` die folgenden Mengen Strom erzeugt:

-   Wind, Onshore: `r format(round(summary$current_period$generation$wind_onshore/1000000,2), decimal.mark = ",")` TWh -- entspricht `r format(round(summary$current_period$percentage_wind_onshore*100,1), decimal.mark = ",")` Prozent der Netzlast
-   Wind, Offshore: `r format(round(summary$current_period$generation$wind_offshore/1000000,2), decimal.mark = ",")` TWh -- entspricht `r format(round(summary$current_period$percentage_wind_offshore*100,1), decimal.mark = ",")` Prozent der Netzlast
-   Solar: `r format(round(summary$current_period$generation$solar/1000000,2), decimal.mark = ",")` TWh -- entspricht `r format(round(summary$current_period$percentage_solar*100,1), decimal.mark = ",")` Prozent der Netzlast
-   Sonstige Erneuerbare: `r format(round(summary$current_period$generation$other_renewables/1000000,2), decimal.mark = ",")` TWh -- entspricht `r format(round(summary$current_period$percentage_other_renewables*100,1), decimal.mark = ",")` Prozent der Netzlast

*Der Anteil an der Netzlast dient hier nur zur Einordnung der Erzeugungswerte und entspricht nicht genau dem Anteil am Stromverbrauch in Deutschland, da hier die Import-Export-Bilanz nicht berücksichtigt wird und die Netzlast lediglich den Strombezug aller Verbraucher, die an das Stromnetz angeschlossen sind, bezeichnet. Nicht enthalten sind Eigenstromerzeugung von Industrieanlagen, Netzverluste oder der Eigenstrombedarf, zum Beispiel von Kraftwerken.*

#### Stromverbrauch

Der Stromverbrauch ist saisonabhängig: Im Winter liegt er etwas höher als im Sommer. Diese saisonalen Schwankungen müssen bei Aussagen zu einem Trend im Stromverbrauch berücksichtigt werden. Um neben dem Stromverbrauch in den Jahreszeiten auch einen langfristigen Trend erkennen zu können, zeigt die folgende Grafik zwei Kurven:

-   Gestrichelte Linie: Hier wurde für jeden Tag der mittlere Stromverbrauch der letzten 30 Tage berechnet.
-   Durchgezogene Linie: durchschnittlicher Stromverbrauch der letzten 365 Tage.


```{r}
#| label: Grafik Stromverbrauch 
#| fig-height: 10

filename <- paste0(today(), "_Stromverbrauch_historisch_Deutschland")

tmp <-
    entsoe_load %>%
    mutate(Datum = floor_date(as_datetime(timestamp), unit = "day")) %>%
    summarise(load = mean(load), .by = Datum) %>%
    arrange(Datum) %>%
    mutate(
        `Jahresglättung` = round(
            rollmean(
                load / 1000,
                k = 365,
                align = "right",
                na.pad = TRUE
            ),
            digits = 1
        ),
        `Monatsglättung` = round(
            rollmean(
                load / 1000,
                k = 30,
                align = "right",
                na.pad = TRUE
            ),
            digits = 1
        )
    ) %>%
    pivot_longer(
        cols = c(`Jahresglättung`, `Monatsglättung`)
    ) %>%
    mutate(
        Trend = name,
        `Täglicher Stromverbrauch in GWh` = value
    ) %>% write_csv(file.path(imagepath, paste0(filename, ".csv")))


ggtmp <- tmp %>%
    ggplot(aes(x = Datum, y = `Täglicher Stromverbrauch in GWh`, linetype = Trend, color = Trend)) +
    geom_line() +
    scale_y_continuous(limits = c(0, NA), expand = c(0, 0.01)) +
    scale_x_datetime(date_breaks = "year", date_labels = "%Y", expand = c(0.01, 0.01)) +
    scale_color_manual(values = c("black", colors_SMC("blue"))) +
    scale_linetype_manual(values = c("solid", "dotted")) +
    labs(
        title = "Stromverbrauchtrends in Deutschland",
    )


ggplotly_SMC(
    ggtmp,
    mehrzeiliger_titel = TRUE,
    tooltip = c("y", "Datum", "colour"),
) %>%
layout(legend = list(title = "", y = -0.2, entrywidth = 180),
        xaxis = list(title = "")
        )


ggtmp %>% image_helper(
    filename,
    imagepath,
    plotly = TRUE,
    caption = caption_energiewende_report
)
```

Der Stromverbrauch (Netzlast) im dritten Quartal liegt mit `r format(round(summary$current_period$load/1000000,1), decimal.mark = ",")` TWh `r format(round(summary$average_period$load/summary$current_period$load*100 - 100,1), decimal.mark = ",")` Prozent unter dem vergleichbaren Mittel.

Erneuerbare Energien erreichten somit einen Anteil von `r format(round((summary$current_period$generation$wind_offshore+summary$current_period$generation$wind_onshore+summary$current_period$generation$solar+summary$current_period$generation$other_renewables)/summary$current_period$load*100,1), decimal.mark = ",")` Prozent am gesamten Nettostrombedarf im Quartal.

Bezogen auf den durchschnittlichen Stromverbrauch der letzten Jahre in diesem Zeitraum erreichten die erneuerbaren Energien einen Anteil von `r format(round((summary$current_period$generation$wind_offshore+summary$current_period$generation$wind_onshore+summary$current_period$generation$solar+summary$current_period$generation$other_renewables)/summary$average_period$load*100,1), decimal.mark = ",")` Prozent.

Der Anteil der erneuerbaren Energien zeigt aber noch nicht, ob ihre Stromausbeute gut oder schlecht war.

#### Auslastung im `r JAHRESZEIT`

Um die tatsächliche Stromausbeute abzuschätzen, könnte man die aktuelle Stromerzeugung der WKA und PV-Anlagen mit der der zurückliegenden Jahre vergleichen. Dieser Vergleich ist aber verzerrt, denn jedes Jahr werden neue Anlagen hinzugebaut.

Beispiel Windkraftanlagen an Land: Bis zum 20. September gingen laut Marktstammdatenregister neue Windkraftanlagen mit 2,25 GW ans Netz. Ein Vergleich der Stromerzeugung allein ergibt daher kein eindeutiges Ergebnis.

Ein Vergleich ist allerdings möglich, wenn man die Auslastung der Windkraft- und PV-Anlagen ermittelt. Die Auslastung ist der Quotient aus dem erzeugten Strom und der installierten Leistung der Stromerzeuger, der Wert zeigt in Prozent, wie viel Strom die Anlagen gemessen an ihrer installierten Leistung tatsächlich erzeugt haben.

Die drei folgenden Grafiken zeigen die Auslastung pro Tag im zurückliegenden Quartal sowie im mehrjährigen Mittel. Die Auslastung wurde dabei jeweils als Mittel der vergangenen sieben Tage berechnet, um kurzfristige Schwankungen auszugleichen.

Datenauswertungen und Grafiken zur Auslastungsentwicklung und zum jahreszeitlichen Verlauf finden sich im ersten [Datenreport zum erneuerbaren Energiesystem](https://www.sciencemediacenter.de/alle-angebote/data-report/details/news/energiewende-report-2023-04-06/){target="_blank"}.

```{r}
#| label: grafik-auslastung wind onshore
filename <- paste0(today(), "_Auslastung_Wind_onshore")

tmp <- plot_auslastung_erneuerbare(
    Erzeuger = "wind_onshore",
    title = "Geglättete Auslastung der Onshore-Windenergie",
    filename = filename,
    imagepath = imagepath
)

ggplotly_SMC(tmp,
mehrzeiliger_titel = TRUE,
    tooltip = c("colour", "y", "label")
) %>%
    layout(legend = list(title = "", y = -0.2, entrywidth = 180))

tmp %>%
    image_helper(filename,
        imagepath,
        plotly = TRUE,
        caption = caption_energiewende_report
    )
```

```{r}
#| label: grafik-auslastung wind offshore

filename <- paste0(today(), "_Auslastung_Wind_offshore")

tmp <- plot_auslastung_erneuerbare(
    Erzeuger = "wind_offshore",
    title = "Geglättete Auslastung der Offshore-Windenergie",
    filename = filename,
    imagepath = imagepath
)

ggplotly_SMC(tmp,
mehrzeiliger_titel = TRUE,
        tooltip = c("y", "label", "colour")
    ) %>%
    layout(legend = list(title = "", y = -0.2, entrywidth = 180))
tmp %>%
    image_helper(filename,
        imagepath,
        plotly = TRUE,
        caption = caption_energiewende_report
    )
```

```{r}
#| label: grafik-auslastung solar
filename <- paste0(today(), "_Auslastung_Solar")

tmp <- plot_auslastung_erneuerbare(
    Erzeuger = "solar",
    title = "Geglättete Auslastung der Solaranlagen",
    filename = filename,
    imagepath = imagepath
)


ggplotly_SMC(tmp,
mehrzeiliger_titel = TRUE,
        tooltip = c("y", "label", "colour")
    ) %>%
    layout(legend = list(title = "", y = -0.2, entrywidth = 180))
tmp %>%
    image_helper(filename,
        imagepath,
        plotly = TRUE,
        caption = caption_energiewende_report
    )
```

**Zusammenfassung der Auslastung**

Die durchschnittliche Auslastung der Anlagen lag im Zeitraum vom `r format(as.Date(START_DATE_OBJECT), "%d.%m.%Y")` bis zum `r format(as.Date(END_DATE_OBJECT), "%d.%m.%Y")` bei:

-   Wind, Onshore: `r format(round(summary$current_period$utilization$wind_onshore*100,1), decimal.mark = ",")` Prozent (gegenüber `r format(round(summary$average_period$utilization$wind_onshore*100,1), decimal.mark = ",")` Prozent im langjährigen Mittel desselben Zeitraums)
-   Wind, Offshore: `r format(round(summary$current_period$utilization$wind_offshore*100,1), decimal.mark = ",")` Prozent (gegenüber `r format(round(summary$average_period$utilization$wind_offshore*100,1), decimal.mark = ",")` Prozent im langjährigen Mittel desselben Zeitraums)
-   Solar: `r format(round(summary$current_period$utilization$solar*100,1), nsmall = 2, decimal.mark = ",")` Prozent (gegenüber `r format(round(summary$average_period$utilization$solar*100,2), decimal.mark = ",")` Prozent im langjährigen Mittel desselben Zeitraums)

Für die gewichtete Auslastung der Anlagen aller drei Typen ergibt sich ein Wert von `r format(round(summary$current_period$utilization$solar_wind*100,1), decimal.mark = ",")` Prozent. Er liegt damit im Bereich des mehrjährigen Sommer-Mittels von `r format(round(summary$average_period$utilization$solar_wind*100,1), decimal.mark = ",")` Prozent -- trotz der geringen Auslastung der Meeres-WKA in den letzten Wochen.

### Grundlagen der Simulation

Die Bundesregierung geht für das Jahr 2030 von einem Bruttostrombedarf von 750 TWh aus. Windkraft- und Solaranlagen sollen davon im Jahresdurchschnitt 80 Prozent decken, also [600 TWh](https://www.gesetze-im-internet.de/eeg_2014/__4a.html){target="_blank"}. Dafür sollen

-   115 GW Windanlagen an Land
-   bis zu 30 GW Windanlagen auf See
-   215 GW Solaranlagen

installiert werden. Mit Hilfe der Stromerzeugung der zurückliegenden 12 Monate, insbesondere der Auslastung der Anlagen, lässt sich abschätzen, welchen Anteil Wind- und Solarstrom unter diesen Bedingungen erreicht hätten. Wir gehen also in unserer Simulation von einer Wiederholung der beobachteten Wetterbedingungen aus und bewerten die Auswirkungen des Ausbaus von Wind- und Solaranlagen auf deren Anteil an der Deckung des Stromverbrauchs. Neben den simulierten Erzeugungswerten von Wind- und Solaranlagen werden in den Szenarien auch die historischen Erzeugungswerte von Biomasse- und Wasserkraftwerken, sowie weiterer Quellen erneuerbarer Energie wie Geothermie berücksichtigt.

In der Wissenschaft werden Szenarien über zukünftige Stromerzeugungen mithilfe von aufwendigen Wetter- und Stromerzeugungsmodellen berechnet. Für unsere Absicht, eine fundierte Einschätzung über die Stromerzeugung mit Wind- und PV-Anlagen zu entwickeln und daraus Argumente für die Diskussion über die Ausgestaltung eines erneuerbaren Energiesystems abzuleiten, reicht es jedoch aus, ein Szenario auf Basis der historischen Stromerzeugungsdaten auf dem Wege eines Dreisatzes zu berechnen: Die historische Stromerzeugung pro installierter Leistung wird mit der für 2030 angestrebten installierten Leistung multipliziert.

Um den erhöhten Strombedarf zu berücksichtigen, wird die historische *Lastkurve* entsprechend nach oben verschoben, die ungefähr dem Nettostromverbrauch entspricht. Wir passen die Lastkurve entsprechend an um einen Stromverbrauch von 750 TWh zu simulieren.

*Lastkurve bezeichnet den Strombezug aller Verbraucher, die an das Stromnetz angeschlossen sind. Nicht enthalten sind die Eigenstromerzeugung von Industrieanlagen, Netzverluste oder der Eigenstrombedarf zum Beispiel von Kraftwerken.*

Der Strombedarf muss dabei zu jeder Stunde gedeckt sein. Um den Anteil von Wind- und PV-Anlagen zu simulieren, reicht es daher nicht aus, die historische Erzeugung für einen bestimmten Zeitraum auf den größeren Anlagenpark umzurechnen.

Daher wird bei der Simulation für jede Stunde berechnet:

-   Wie viel Strom Wind- und PV-Anlagen unter den Bedingungen des aktuellen Zeitraums mit den angestrebten Ausbauzielen für 2030 erzeugen könnten,
-   wie viele Überschüsse entstanden wären,
-   wie viel der Überschüsse durch Speicher aufgenommen werden könnte,
-   welchen Anteil des Bedarfs Wind- und PV-Anlagen (und weitere Erneuerbare Energien) inklusive Speicher decken könnten,
-   wie groß die Lücke zwischen Erzeugung durch Wind- und PV-Anlagen (und weiteren erneuerbaren Energien) plus Speichern zum Bedarf ist,
-   wie die Lücke durch vorübergehendes Ab- und wieder Einschalten von Verbrauchern während eines Tages (**Flexibilisierung**) verringert werden kann.

*Flexibilisierung bezeichnet eine sehr wichtige Technik für ein vor allem auf Wind- und Photovoltaik gestütztes Stromsystem. Die Idee dabei ist, dass bestimmte Verbraucher ohne Verlust von Komfort oder Funktion für eine begrenzte Zeit abgeschaltet und danach wieder eingeschaltet werden. Dazu können Kühlhäuser gehören, Wärmepumpen mit Speichern oder Ladevorgänge von Elektroautos.*

Die verbliebene Lücke müssten flexible Kraftwerke, vorzugsweise auf Basis erneuerbarer Quellen, schließen.

Die Forschung geht davon aus, dass durch größere und effizientere Anlagen vor allem bei der Windkraft die Auslastung steigen wird. Für 2030 wird eine Steigerung der Auslastung zwischen 11 Prozent \[<a href="https://www.agora-energiewende.de/veroeffentlichungen/klimaneutrales-deutschland-2045/" target="_blank">AGORA</a>\] und 34 Prozent \[<a href="https://www.ewi.uni-koeln.de/cms/wp-content/uploads/2022/03/211005_EWI-Gutachterbericht_dena-Leitstudie-Aufbruch-Klimaneutralitaet.pdf" target="_blank">DENA</a>\] für Onshore-Anlagen, zwischen 8 Prozent \[<a href="https://www.agora-energiewende.de/veroeffentlichungen/klimaneutrales-deutschland-2045/" target="_blank">AGORA</a>\] und 25 Prozent \[<a href="https://www.ise.fraunhofer.de/de/veroeffentlichungen/studien/wege-zu-einem-klimaneutralen-energiesystem.html" target="_blank">ISE</a>\] für Offshore-Anlagen und zwischen 4 Prozent \[<a href="https://www.ewi.uni-koeln.de/cms/wp-content/uploads/2022/03/211005_EWI-Gutachterbericht_dena-Leitstudie-Aufbruch-Klimaneutralitaet.pdf" target="_blank">DENA</a>\] und 16 Prozent \[<a href="https://www.ise.fraunhofer.de/de/veroeffentlichungen/studien/wege-zu-einem-klimaneutralen-energiesystem.html" target="_blank">ISE</a>\] für PV-Anlagen im Vergleich zur durchschnittlichen Auslastung der zurückliegenden acht Jahre angenommen.

In allen folgenden Berechnungen nehmen wir für die Effizienzsteigerung den Mittelwert der jeweils genannten Spanne an.

In der Simulation werden Speicher ausschließlich dann geladen, wenn die erneuerbaren Energien mehr Strom erzeugen als benötigt wird. Die Speicher werden zunächst vollständig entladen, bevor andere Quellen zur Deckung des Bedarfs herangezogen werden. Wir nehmen dabei vereinfacht an, dass die Speicher (vor allem kurzfristige Batteriespeicher) nahezu verlustfrei arbeiten.

### Datengrundlage und Code

Alle Daten zur Stromerzeugung, zur installierten Leistung und zur Netzlast stammen von der [Transparenz-Plattform](https://transparency.entsoe.eu/dashboard/show){target="_blank"} des Verbands Europäischer Übertragungsnetzbetreiber (ENTSO-E). Die Daten werden von den Netzbetreibern der einzelnen Länder bereitgestellt. Daten zur Erzeugung und zur Last werden mit einem Verzug von circa 2 Stunden bereitgestellt und haben eine Auflösung von 15 Minuten. Daten zum Stromhandel sind stündlich aufgelöst. Die Daten zur installierten Leistung werden nur jährlich aktualisiert. Die Erzeugungsdaten beschreiben die **realisierte** Erzeugung, also das was tatsächlich in das Netz eingespeist wurde. Der Eigenbedarf der Kraftwerke ist nicht in den Daten enthalten.

Für die Berechnung der Auslastung verwenden wir interpolierte Werte zwischen den bereitgestellten Werten -- beziehungsweise schreiben den aktuellen Wert für das laufende Jahr fort. Dies führt möglicherweise zu einer geringen Überschätzung der Auslastung, da der Erzeugung real eine etwas höhere Leistung zu Grunde liegt. Diese Abweichung ist aufgrund der geringen Ausbaugeschwindigkeit im Verhältnis zur bereits installierten Leistung sehr gering und für die qualitativen Aussagen des Reports nicht relevant.

Den Code für diesen Data Report stellen wir [hier](`r file_name_code`){target="_blank"} zur Verfügung. Neben Standard R-Paketen wird ein eigenes Paket verwendet, das [hier](https://github.com/sciencemediacenter/SMChelpR){target="_blank"} bereitgestellt wird.

Die Daten für den Quartalsrückblick und die Simulation werden [hier](`r file_name_data`){target="_blank"} als ZIP bereitgestellt. Zur Ausführung des Codes muss der Ordner im selben Projektverzeichnis wie das Quarto-Dokument entpackt werden.

### Ihre Ansprechpersonen in Redaktion und SMC Lab

Wenn Sie Fragen zu diesen Daten haben oder weitere Auswertungen erhalten wollen, kann das SMC Lab Auswertungen erzeugen.

*Datenauswertung*\
Bernhard Armingeon\
[lab\@sciencemediacenter.de](mailto:lab@sciencemediacenter.de){.email}

*Redaktion*\
Sönke Gäthke, Redakteur für Energie und Mobilität\
[redaktion\@sciencemediacenter.de](mailto:redaktion@sciencemediacenter.de){.email}

Telefon: +49 221 8888 25-0\
:::
