open-ideas / StROBe

Python module for stochastic residential occupancy behavior for both building and district energy simulations.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

StROBe

Currently in beta.

StROBe (Stochastic Residential Occupancy Behaviour) is an open web tool developed at the KU Leuven Building Physics Section to model the pervasive space for residential integrated district energy assessment simulations in the openIDEAS modeling environment (among others). Primarily conceived as a tool for scientific researchers, StROBe aims at providing missing boundary conditions in integrated district energy assessment simulations related to human behavior, such as the use of appliances and lighting, space heating settings and domestic hot water redrawals. StROBe is also highly customizable and extensible, accepting model changes or extensions defined by users.

Dependencies

StROBe is implemented in Python 3.7 and uses the packages os, numpy, random, time, datetime, calendar, cPickle, itertools, and jason, which are all generally available. An old Python 2.7 version is available in branch python2.7, with changes up to February 03, 2021.

Examples

In example.py you can find simple examples for:

  • simulation of individual households using class Household() from Corpus/residential.py, and
  • simulation of sets of households as inputs for IDEAS using class IDEAS_Feeder() from Corpus/feeder.py.

Revision history

Feb 03, 2021 (See pull request for details.)

  • Changes to make the code compatible with Python 3, checked at least with Python 3.7.
  • irradiation.txt file changed to simple text format to avoid reading problems with cpickle. Corresponding changes in Corpus/residentia.py.

Oct 22, 2020 (See pull request for details.)

  • Changed occupancy generation in Corpus/residentia.py. Now a typical week is created with all different days (previously all weekdays were the same), which is then copied for the year.
  • Changed way 4h shift is implemented. One extra day is simulated in the front, of which 20 hours are then cut, so that the data starts at midnight of the first day of the year. The last 4h are also cut. This replaces a previous solution which took the last 4h of the year and put them in the front.
  • Other minor fixes.

Oct 9, 2020 (See pull request for details.)

  • Fixed problem with wrong occupancy cluster selection, in Corpus/data.py. Now all different occupancy patterns should be correctly represented.

May 8, 2020 (See pull request for details.)

May 8, 2020 (See pull request for details.)

  • Added the 4h shift to the occupancy results occ and occ_m and included the function Household.roundUp(), used to perform this shift, in the execution of Household.simulate(), to guarantee the correct time shifting also when someone simulates independent households.

May 8, 2020 (See pull request for details.)

  • Added revision history and references and updated dependencies in README.md, and updated example.py.

Apr 27, 2020 (See pull request for details.)

  • Added option to save output files generated by Corpus/feeder.py for temperature set-points in K (default) instead of Celsius. In this way these outputs will be consistent with the StROBe input readers in IDEAS. See also related thread in IDEAS.

Mar 9, 2020 (See pull request for details.)

  • Fixed problem of appliances being used independently by more than one occupant at a time, which was generating higher loads. Note that this can influence the total electricity demand, which is not verified in any way.

Mar 9, 2020 (See pull request for details.)

  • Changed delay times of cycle loads in Data/Appliances.py such that the specified annual demand and number of cycles are obtained on average, instead of fixing the number of cycles and delay only (which lead to high annual demand).

Feb 13, 2020 (See pull request for details.)

  • Added extra rules for cold appliances ownership such there is always at least one fridge and not more than two freezers. Note that this can influence the total electricity demand, which is not verified in any way.

Feb 4, 2020 (See pull request for details.)

  • Changed Corpus/feeder.py output function to only load pickled household files once for all outputted variables. This reduces outputting time, while keeping the same outputs and file formats.

Jul 18, 2019 (See pull request for details.)

  • Fixed cycling loads implementation to account for cycle length, as before the power was only applied for one minute.

Jun 15, 2018 (See pull request for details.)

  • Added a minimal working example to simulate a single household and a group of buildings (feeder). See example.py.

Jul 3, 2018 (See pull request for details.)

  • Fixed problem in lighting adjustment.
  • Fixed standby-use of appliances and DHW, which was only included one time-step before the appliance/water use is turned on.

Jun 15, 2018 (See pull request for details.)

  • Fixed problem in activity probabilities in class DTMC in Corpus/stats.py, where Sunday was used twice instead of Saturday.

Jun 15, 2018 (See pull request for details.)

  • Brought last 4h of resulting time series to the front so that data starts at midnight instead of 4am (which is when the survey statistics begin). This is applied in the roundUp() function of Corpus/residential.py.
  • Updated Corpus/__calibrate__.py file to perform automatically the calibration of cal values of appliances, and added check for annual electricity load.

Sep 28, 2017 (See pull request for details.)

  • Fixed space heating type definition that previously produced many unheated household profiles.

Apr 20, 2017 (See pull request for details.)

  • Added a function to generate several scenarios of demands for the same household and period: Corpus/simulation.py.
  • Fixed the generation of lighting loads, that was on when asleep or away.
  • Fixed the selection of appliances, which selected only less probable devices.
  • Updated paths, data importation and initialization files.

Mar 13, 2014

  • First full working version. See repository at that point.

Oct 1, 2013

  • Initial commit.

References

  1. Baetens, R., & Saelens, D. (2016). Modelling uncertainty in district energy simulations by stochastic residential occupant behaviour. Journal of Building Performance Simulation, 9(4), 431–447. https://doi.org/10.1080/19401493.2015.1070203
  2. Baetens, R. (2015). On externalities of heat pump based low-energy dwellings at the low-voltage distribution grid. Ph.D. thesis, Arenberg Doctoral School, KU Leuven.

Please cite StROBe using the information below.

@article{Baetens2016,
author = {Baetens, Ruben and Saelens, Dirk},
title = {{Modelling uncertainty in district energy simulations by stochastic residential occupant behaviour}},
journal = {Journal of Building Performance Simulation},
volume = {9},
number = {4},
pages = {431--447},
publisher = {Taylor {\&} Francis},
doi = {10.1080/19401493.2015.1070203},
year = {2016}
}

About

Python module for stochastic residential occupancy behavior for both building and district energy simulations.


Languages

Language:Python 100.0%