Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/add thermal building model #985

Draft
wants to merge 13 commits into
base: dev
Choose a base branch
from

Conversation

Maxhi77
Copy link

@Maxhi77 Maxhi77 commented Oct 6, 2023

This pull request aims to add a 5RC thermal building model to oemof. The building model is based on capacitors and resistances and is explained in detail in ISO 13790:2008. Building configurations for the 5RC model can be calculated based on the tabula database.

The idea is to extract all information from a tabula database CSV file and calculate a 5RC building configuration based on this information. For this purpose, functions to calculate solar gains through windows were added as well. Solar gains through windows are connected to window-specific values, which are extracted from the CSV file. For the calculation of this solar gains, a weather file was added. With the building configuration, a building model can be generated. The user has to set temperatures for heating and cooling in the building model.

grafik

Right now, the heat_flows goes into the model as input and cooling_flows as output. All in all the idea is to optimize the internal temperature of the building, called t_air, to use the building as thermal storage and save energy and cost.

In this bullet points I want to summarize open questions / todos

  • Should the calculation of solar gains be part of the model? (If yes)
    • Data structure of the weather file
  • building model heat flows as input and cooling flows as output, or both as input

ISO 13790:2008 “Energy performance of buildings –Calculation of energy use for space heating and cooling“.
Tabula - https://webtool.building-typology.eu/#bm , https://episcope.eu/building-typology/tabula-webtool/

@pep8speaks
Copy link

pep8speaks commented Oct 6, 2023

Hello @Maxhi77! Thanks for updating this PR. We checked the lines you've touched for PEP 8 issues, and found:

Line 2:80: E501 line too long (81 > 79 characters)
Line 123:80: E501 line too long (83 > 79 characters)
Line 125:80: E501 line too long (90 > 79 characters)
Line 131:80: E501 line too long (81 > 79 characters)
Line 227:80: E501 line too long (81 > 79 characters)
Line 229:80: E501 line too long (91 > 79 characters)
Line 232:80: E501 line too long (97 > 79 characters)
Line 261:80: E501 line too long (90 > 79 characters)
Line 263:80: E501 line too long (100 > 79 characters)
Line 265:80: E501 line too long (83 > 79 characters)
Line 266:80: E501 line too long (118 > 79 characters)
Line 294:80: E501 line too long (84 > 79 characters)
Line 295:80: E501 line too long (96 > 79 characters)

Line 25:80: E501 line too long (97 > 79 characters)
Line 32:80: E501 line too long (89 > 79 characters)
Line 34:80: E501 line too long (84 > 79 characters)
Line 36:80: E501 line too long (103 > 79 characters)
Line 40:80: E501 line too long (97 > 79 characters)
Line 111:80: E501 line too long (93 > 79 characters)
Line 242:80: E501 line too long (130 > 79 characters)
Line 309:80: E501 line too long (99 > 79 characters)
Line 392:80: E501 line too long (85 > 79 characters)
Line 397:80: E501 line too long (90 > 79 characters)

Line 21:80: E501 line too long (85 > 79 characters)
Line 86:80: E501 line too long (108 > 79 characters)

Line 23:1: E302 expected 2 blank lines, found 1
Line 131:80: E501 line too long (80 > 79 characters)
Line 135:80: E501 line too long (87 > 79 characters)
Line 239:80: E501 line too long (80 > 79 characters)

Comment last updated at 2023-10-12 09:52:01 UTC

import pprint as pp
import logging

import pandas as pd

Check notice

Code scanning / CodeQL

Unused import Note

Import of 'pd' is not used.
import pytest
from types import SimpleNamespace

from oemof.tools import economics

Check notice

Code scanning / CodeQL

Unused import Note test

Import of 'economics' is not used.
##########################################################################

# check if the new result object is working for custom components
results = solph.processing.results(om)

Check warning

Code scanning / CodeQL

Variable defined multiple times Warning test

This assignment to 'results' is unnecessary as it is
redefined
before this value is used.
building_status = "no_refurbishment"
expert_mode = None
if expert_mode:
if building_status == "no_refurbishment":

Check warning

Code scanning / CodeQL

Unreachable code Warning

This statement is unreachable.
building_example = None

# Generates 5RC Building-Model
building_status = "no_refurbishment"

Check notice

Code scanning / CodeQL

Unused local variable Note

Variable building_status is not used.
building_status = "no_refurbishment"
expert_mode = None
if expert_mode:
if building_status == "no_refurbishment":

Check warning

Code scanning / CodeQL

Unreachable code Warning

This statement is unreachable.
import pprint as pp
import logging

import pandas as pd

Check notice

Code scanning / CodeQL

Unused import Note

Import of 'pd' is not used.
raise ValueError(f"All keys in {field_name} must start with {required_prefix}")

try:
int_part = int(key[len(required_prefix):])

Check notice

Code scanning / CodeQL

Unused local variable Note

Variable int_part is not used.
building_example = None

# Generates 5RC Building-Model
building_status = "no_refurbishment"

Check notice

Code scanning / CodeQL

Unused local variable Note

Variable building_status is not used.
timeindex=date_time_index, infer_last_interval=False
)

epc_heat_pump = economics.annuity(capex=1000, n=20, wacc=0.05)

Check notice

Code scanning / CodeQL

Unused local variable Note

Variable epc_heat_pump is not used.
es.results["meta"] = solph.processing.meta_results(model)
results = es.results["main"]
custom_building = views.node(results, "GenericBuilding")
electricity_bus = solph.views.node(results, "electricity")

Check notice

Code scanning / CodeQL

Unused local variable Note

Variable electricity_bus is not used.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants