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.
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.
In example.py you can find simple examples for:
- simulation of individual households using
class Household()
fromCorpus/residential.py
, and - simulation of sets of households as inputs for IDEAS using
class IDEAS_Feeder()
fromCorpus/feeder.py
.
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 inCorpus/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.)
- Added in-line comments throughout the code, mainly in
Corpus/residential.py
.
May 8, 2020 (See pull request for details.)
- Added the 4h shift to the occupancy results
occ
andocc_m
and included the functionHousehold.roundUp()
, used to perform this shift, in the execution ofHousehold.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 updatedexample.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
inCorpus/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 ofCorpus/residential.py
. - Updated
Corpus/__calibrate__.py
file to perform automatically the calibration ofcal
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.
- 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
- 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}
}