open-ideas / StROBe

Python module for stochastic residential occupancy behavior for both building and district energy simulations.
38 stars 15 forks source link

Different occupancy per weekday #34

Closed cprotopa closed 4 years ago

cprotopa commented 4 years ago

Currently one weekday is copied for the whole week, and then the week is copied for the whole year. This is done for occupancy only, not load calculations. For several applications it would be prefer to have a more variable schedule, at least with different workdays. It can also be an issue at an aggregate level that a "jump" may exist where the days are sewn together (end state of previous day differs from first state of next day). I will propose a new implementation where a week is created with all 7 different days consecutively simulated. The week is then copied for the year. At the same time, I want to fix the current correction of the 4h difference (rolling last 4h to the front), by simulating an extra day in the front and clipping the extra hours.

Do you think this is better? An other idea was to create all 365 days individually, but the counter argument is that this will result in an average occupancy (at annual level) for everybody, thus limiting diversity within a cluster (occupancy pattern). It also takes more time (non-negligible). Potentially there could be an option to choose, but this will take more time to implement.

@SilkeVerbruggen, @Mathadon, Others?

Mathadon commented 4 years ago

I'm not that familiar with strobe so can't really comment on this one :)

SilkeVerbruggen commented 4 years ago

I've been thinking about it as well. I think the first option is the best one. So simulate each day of one week and then copy that week for the entire year. I'm not a fan of the simulation of occupancy for each day of the year for the reasons you say above.

For the 4h difference: if the new option is faster than that's fine.

We've been wondering as well if we need to include some kind of holiday period in the simulation of the occupancies. For one application I included a 2 week holiday in the summer months, but it was not in the code. I just deleted the occupancy and loads on those two weeks form the output files. But maybe there is a possibility to include it in the code.

cprotopa commented 4 years ago

Then a typical week it is!

For the simulation time, I haven't checked, but I think the change will not be significant if we start by simulating 7 occupancy days compared to 3. Most time is spent on the load modeling, so this would have very limited impact. Furthermore, the different approach to add the extra 4h also will not change much, I think, as we only have to simulate one extra day. It can only add up to the time, but I think it's really very little. The added value is that the first day of the year will not have a weird jump at 4am, because of the rolling.

The holiday issue is indeed important, and something to discuss. I would propose to start a separate issue and pull request though, so it can be cleaner.

cprotopa commented 4 years ago

@SilkeVerbruggen , see pull request #35