Code
import numpy as np
import pandas as pd
= "/home/kr/lehre/effsys/2_en/notes/daten/" path
Die Aufgaben müssen in ILIAS als lauffähige und dokumentierte Jupyter Notebooks inkl. Datenfiles abgegeben werden. LP-Modellierungen können als eingescannte PDFs abgegeben werden.
Load
die Last Total Load - Day Ahead / Actual
für das Jahr 2020 für ein (zu dem von Ihnen gewählten PVGIS-Standort passendes) Land im CSV-Format herunter. Laden Sie die Datei mit Hilfe des Codes unten in ein DataFrame, und stellen Sie die tatsächliche (actual) Last grafisch inkl. Achsenbeschriftung dar. Erklären Sie den angegebenen Code. Die Entsoe-Seite hat ein hilfreiches Glossar.# PV data:
file = "Timeseries_47.245_9.642_SA2_5kWp_crystSi_14_40deg_-6deg_2020_2020.csv"
my_parser = lambda date: pd.to_datetime(date, format='%Y%m%d:%H%M')
# cf. https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes
pv = pd.read_csv(path + file, skiprows=10, header=0, index_col=0,
parse_dates=True, date_parser=my_parser, nrows=8795-11)
pv.index = pv.index- pd.Timedelta(minutes=10)
pv.head(3) # column P: PV system power (W)
P | G(i) | H_sun | T2m | WS10m | Int | |
---|---|---|---|---|---|---|
time | ||||||
2020-01-01 00:00:00 | 0.0 | 0.0 | 0.0 | -9.57 | 1.66 | 0.0 |
2020-01-01 01:00:00 | 0.0 | 0.0 | 0.0 | -9.65 | 1.59 | 0.0 |
2020-01-01 02:00:00 | 0.0 | 0.0 | 0.0 | -10.11 | 1.59 | 0.0 |
# price data:
file = "Total Load - Day Ahead _ Actual_202001010000-202101010000.csv"
my_parser = lambda date: pd.to_datetime(date[:16], format='%d.%m.%Y %H:%M')
load = pd.read_csv(path + file, index_col=0, date_parser=my_parser)
# rename columns "Day-ahead Total Load Forecast [MW] - BZN|AT" and "Actual Total Load [MW] - BZN|AT":
load.columns = ['forecast', 'actual']
load.index.name = 'time'
load.head(3)
forecast | actual | |
---|---|---|
time | ||
2020-01-01 00:00:00 | 5752.0 | 5967.0 |
2020-01-01 01:00:00 | 5467.0 | 5768.0 |
2020-01-01 02:00:00 | 5360.0 | 5592.0 |
Sie betreiben eine kleine E-Mobil-Flotte mit zwei E-Mobilen und folgenden Spezifikationen:
Die E-Mobile können in Ihrem Depot an einer Ladestation mit zwei Ladepunkten geladen werden. Die Ladestation hat in Summe maximal 150 kW Ladeleistung.
Die E-Mobile sind morgens um 8:00 Uhr zu 80 % geladen und sollen bis Mitternacht wieder auf mindestens 60 % geladen werden. Die E-Mobile absolvieren folgende Fahrten, die alle im Depot beginnen und enden:
In den Zeiten, in denen die E-Mobile nicht fahren, können sie im Depot geladen werden. Sie modellieren das Laden verlustfrei und wollen einen optimalen Ladeplan in Stundenschritten für die E-Mobile erstellen, der die Spitzenladeleistung der Ladestation minimiert. Verwenden Sie für die Modellierung die folgenden Variablen:
Die Minimierung der Spitzenleistung kann durch Minimierung einer zusätzlichen Variablen \(m > 0\) in kW in Kombination mit folgenden zusätzlichen Nebenbedingung modelliert werden: \[ m \geq a_j + b_j \quad \forall j. \]