PyPSA / pypsa-eur

PyPSA-Eur: A Sector-Coupled Open Optimisation Model of the European Energy System
https://pypsa-eur.readthedocs.io/
328 stars 229 forks source link

Separate residential and tertiary/services time series for decentralised heating #606

Open nworbmot opened 5 years ago

nworbmot commented 5 years ago

Currently the daily heating profile we use for the time series includes both residential and tertiary demand, so it has a peak at midday (for tertiary) and a peak in the evening (for residential). However, since these two peaks happen in different building stocks, we're underestimating the total peak demand by using only a single time series. Therefore we should split heating demand into residential and tertiary sectors. (In district heating it's OK because both sectors are served by the same source.) We already have the total thermal energy demand in data/energy_totals.csv by sector, so we just need to find weekday and weekend daily profiles for tertiary and residential demand from somewhere. Sources to try: RLI, look on openmod forum, standard profiles for Germany, etc.

nworbmot commented 5 years ago

Kun Zhu is on this and will use the excellent https://github.com/oemof/demandlib for this task, which has aggregated residential and commerical profiles.

anyexingluzk commented 5 years ago

The demandlib from OEMOF is created to generate demand profiles, from standard BDEW load files. A short description of the model can be found here. The resulting heat demand profiles do distinguish between residential and commercial heating load as different peaking hours are observed. heating_profiles.pdf Compared to the one we have been using, it follows a similar trend yet has more variations. Main reasons could be that Aarhus' data is from district heating company with a substantial amount of thermal storage and the building fleet is better insulated. heating_profiles_comparison.pdf

nworbmot commented 5 years ago

The first part of this is done: different heat profiles are generated for (residential, services) x (water, space) based on the daily profiles in data/heat_load_profile.csv, see commit https://github.com/nworbmot/pypsa-eur-sec/commit/d3a0f7e67d82c4744a5fee541a2849e0ffd5b005. @anyexingluzk: can you provide me with the correct daily weekend/weekday profiles, and then I'll add them? After that, we just need to add different components for residential and services heat loads.

anyexingluzk commented 5 years ago

The following profiles are generated based on the old format for (residential, services) x (weekday, weekend). The hot water demand profiles are assumed as constant. heat_load_profile_BDEW.csv.zip

nworbmot commented 5 years ago

Thanks Kun! Can you also send me the code to get these from demandlib? I thought they had hot water demand too?

anyexingluzk commented 5 years ago

I use this notebook together with the demandlib module. Unfortunately, I didn't manage to find the hot water demand profiles. I assume that the details are described in the thesis mentioned here, but I can't read it. heating_profile_clean.ipynb.zip

nworbmot commented 5 years ago

As of commits https://github.com/nworbmot/pypsa-eur-sec/commit/019e2f3f25ffbecebe60eabfac62b3de07dc46c6 and https://github.com/nworbmot/pypsa-eur-sec/commit/8d68146e7c98865a44eb00718027560382051232 we now have separated demand and supply for residential and services space and water heating, including the BDEW-based demandlib profiles. The total objective function difference from the old joint Aarhus-based profile is an increase of only 0.25%. The code is now much cleaner, with no repeated code blocks for central/decentral rural/urban. All that's left to do is incorporate Kun's code to get the profiles from demandlib and find profiles for water heating (currently they're just flat).