Skip to content

HIVE_RC_simulator

Justin Zarb edited this page Aug 15, 2018 · 23 revisions

Overview

An energy simulation has three main components:

  1. Element: The parts which separate the zone from outside (eg. wall, window, roof). Internal elements are assumed to be adiabatic. Window element components calculate solar gains, which are one of the Simulation inputs.
  2. Zone: The zone being simulated. Takes any number of elements. Parameters for systems, setpoints, ventilation rates, etc. are defined by this component.
  3. Simulation: Takes all the important data streams and calculates internal temperature, heating and cooling in the zone.

The workflow is described in terms of the components developed for each stage.

Use Cases

  1. Shading design for a specific window Directly visualise the effect of window shading on energy demand. Shading geometry can be rapidly optimized to minimize enregy consumption. There is a lot of potential: PV shading, dynamic shading, adding cost functions to shading elements, etc.

  2. Overall window layout for a building Calculate the ideal window/wall ratio for a building for diferent window types, by minimizing the energy demand. Explore the tradeoff between higher thermal losses and solar gains.

  3. Model adjacent unconditioned spaces When simulating single zone models, the temperatures in adjacent unconditioned spaces need to be assumed or calculated to calculate the conductivity reduction factors on elements separating them from conditioned spaces. Rapidly modelling the adjacent unconditioned spaces in Grasshopper could provide more accurate estimates of boundary conditions, possibly reducing modeling error. This hypothesis needs to be tested.

  4. Design passive and active shading Based on the Energie & Klimasysteme coursework

Testing

Unittests

  • Replicate Python unit tests for the single-hour model

GHPython does not seem to support unittests, so a master/slave system was devised to run various scenarios. The values in the tests are exactly the same as in the python-based tests. Rather than fitting each test in a function, a set of dictionaries are created with test parameters and expected results. To add new tests, simply modify the dictionaries in the test master component.

Irradiation checks

  • Sun position calculations relative to Ladybug value. This is currently accurate to one decimal place (Based on the sunpath version in ASF_control)
  • Compare direct and diffuse components (separately) on different orientations between Ladybug, Hive and the radiation model in RC_BuildingSimulator.
  • Compare direct and diffuse components (separately) on different window tilts between Ladybug, Hive and the radiation model in RC_BuildingSimulator.

  • Test shading geometry

  • Test shading geometry with window tilt

  • Compare the Perez and simple diffuse irradiation models using AIC or F-tests.

  • polysurface inputs for shading device

  • multiple shading input

  • Automate all tests into a one-click processs

Internal gains

  • Check if occupancy schedules and internal gains fall within a reasonable range
  • Check sensitivity of all inputs

Global checks

  • Conduct speed tests to find bottlenecks
  • Export inputs and results into Python and run a unit test asserting equal results.
  • Run the RC model through Besttest

Editing and updating components

For all future developers, here's a handy set of tutorials to making Ladybug Components, by Mostapha Sadeghipour Roudsari. This approach is r Hive.

Future compatibility with the RC_BuildingSimulator repository

For maximum compatibility between the Python version and the RC tool, the classes for Building, Supply and emission systems each have their own component. When a new version of the building_physics.py, supply_system.py or emission_system.py is created, the code can be pasted in place of the old code in the corresponding Grasshopper user objects.

Clone this wiki locally