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

multi-zone simulation #57

Open
MatthiVH opened this issue Nov 16, 2021 · 1 comment
Open

multi-zone simulation #57

MatthiVH opened this issue Nov 16, 2021 · 1 comment

Comments

@MatthiVH
Copy link

Hi,

I was wondering if the python model can be used for a multi-zone hourly simulation as well (and if you have an example of this, e.g. with 2 zones)?

Best,
Matthias

@pjayathissa
Copy link
Collaborator

Hi Matthias

There is an easy, medium, and really difficult way of doing this

Easy

In the past, I have assumed that the thermal transfer between two interior zones is negligible compared to thermal exchanges to the exterior environment. For many internally conditioned spaces, this works. As in the internal temperatures are so similar that we can assume adiabatic exchange. You can then run this as two different zones with no interactions between each other and get quite accurate results. In my opinion, the error margin in the assumption of air changes per hour, is usually greater than internal zone variations.

Medium

Hack your own energetic connection between the two zones at each timestep. This can be done for example by hacking the 'internal gains' parameter. At each timestep

  • calculate the temperature difference between zones (I think based on t_m)
  • calculate the energy transfer that would exist based on the interior wall u-value. Let's call it zone_transfer for now
  • modify the internal gains at each timestep for each zone, for example
Zone1.solve_energy(internal_gains=internal_gains - zone_transfer,
                        solar_gains=SouthWindow.solar_gains,
                        t_out=t_out,
                        t_m_prev=t_m_prev)

Zone2.solve_energy(internal_gains=internal_gains + zone_transfer,
                        solar_gains=SouthWindow.solar_gains,
                        t_out=t_out,
                        t_m_prev=t_m_prev)

Hacking the internal_gains attribute is the easiest as it doesn't have any complex physics associated with it.

If you do achieve this, can you make a pull-request with your code into the examples folder? I think it would make a nice addition for others to follow.
Just double check that this method isn't creating any weird overshoots. I could imagine an error occurring when the walls are paper-thin, a large temperature difference, and the timesteps of one hour could result in a large energy transfer, which then makes the other room hot, and it bounces back. Some way of capturing the logarithmic dynamics of interior temperature transfer may be required. Maybe even just stopping the energy transfer if the temperature difference hits 0 to stop the overshoot

Hard

Rewriting the code to allow for multizone simulation. You may fall down a rabbit hole here, but I'm not going to stop you. Good luck

Prageeth

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants