-
Notifications
You must be signed in to change notification settings - Fork 389
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
Add Space Concept to EnergyPlus Zone Structure, Part 1 #8394
Changes from 1 commit
e694abc
06ace49
00d64cd
0bb911e
1b0e7f9
bf631c2
bfb7410
85db3f8
5604cba
4793fbc
d8c1cb6
5d9462e
dff7946
3b92576
14c7c3b
e963950
aff8376
e5c2eca
6b47dc7
5c27cd0
578e769
f29eeba
c8178c4
77a1a60
8de8956
44e3048
4c98b94
0dec20a
1777cb7
a358735
2185eaa
5f4055e
0bca57e
bba1775
6eb4804
0bb0cc3
015ee17
7097f64
71810c9
e3d4458
b4c80ab
93b60b5
d067ec9
04b3eb1
531fff6
e09b772
7486e9d
b0aca1f
d06fb71
dbd7fc7
2de351f
cfa218a
d80b0f9
ee8379c
b5922de
53b1a41
75909b4
4a010d0
a34dfd7
58baba3
6fd04fe
05c39ec
16b8acf
9582936
638d213
ffdc09a
585c477
d4d3074
5a2eba4
9301c0a
0e8bc59
df66277
b828a71
aa5e2cc
5a961f3
9cb52ed
d47aac4
33f7a1e
286a617
7a4b932
aa0698b
86d2bec
de24f91
f7531f4
e00fe1c
3e32ba1
dc8d216
6a0e4d7
adb587d
5b736ca
27cec54
4c68f2f
f1758c1
fa014e1
7bf5185
b40cc7b
477aaf7
7e74f43
3d653fe
0a7253e
c8a069e
9fd14a0
7a8f75c
bca9228
7e2c6a4
adb8c16
b5b949b
4744f65
3748c12
0fe6f1f
0f1c86a
3e2d7a1
5fc2331
f177d90
8b7cf07
7421b46
24376bc
1216007
02e72c1
70389a2
0bc8f15
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,234 @@ | ||
# Adding "Spaces" to EnergyPlus # | ||
|
||
**Michael J. Witte, GARD Analytics, Inc.** | ||
**Jason W. DeGraw, ORNL** | ||
**With input from many more . . .** | ||
|
||
- Original, November 22, 2019 | ||
- Revised, April 1, 2020 | ||
* Keep the current definition of Zone | ||
* Add new objects for Space, SpaceType, CompoundSpaceType, and Enclosure | ||
- Revised, November 25, 2020 | ||
* Condensed and focused on final proposal somewhat agreed to back in April 2020 | ||
* Revised to reflect simplified Construction:AirBoundary object (radiant and solar enclosures are now the same) | ||
|
||
## Justification for New Feature ## | ||
|
||
Thermal zones (HVAC zones) are often composed of a variety of spaces grouped together to be served by | ||
a single thermostat. For example, an office building core zone may include private offices, conference rooms, restrooms | ||
and corridors. Each of these spaces (rooms) has different internal gains and may or may not be fully enclosed by solid surfaces. | ||
Currently, the smallest building element is a zone. This requires the user (or interface) to blend these spaces together for surfaces, | ||
internal gains, and other specifications. The option to specify each space explicitly would greatly simplify input in data managemenent, | ||
especially for space-based interfaces (such as OpenStudio) and for codes and standards modeling. | ||
|
||
There are also computing performance advantages to dividing zones into smaller enclosures for radiant exchange. | ||
|
||
## Overview ## | ||
|
||
### Current EnergyPlus model ### | ||
EnergyPlus input currently has the following (very flat) heierarchy: | ||
|
||
Zone | ||
Surfaces (references a zone name) | ||
People, Lights, etc. (references a zone name or zone list name) | ||
Thermostat (one per zone) | ||
HVAC equipment (attaches to a zone) | ||
|
||
Zones represent an air mass (air node) that exchanges heat with surfaces, internal loads, HVAC equipment, etc. | ||
A Zone is essentially the "atomic unit" of the building. By default a zone has a uniform air temperature, but there are room air models | ||
that allow modeling of stratification and other non-uniform temperature effects. Thermostats and HVAC equipment are assigned per Zone. | ||
|
||
The internal data model adds another layer: | ||
|
||
Enclosure | ||
Zone | ||
Surfaces | ||
People, Lights, etc. | ||
Thermostat | ||
HVAC equipment | ||
Zone | ||
Surfaces | ||
People, Lights, etc. | ||
Thermostat | ||
HVAC equipment | ||
|
||
Enclosures are used for radiant and solar/daylighting exchange. Enclosures are primarily concerned with Surfaces, but they | ||
are also related to internal gains (which cast radiant and visible energy into the enclosure). By default there is one Enclosure for each | ||
Zone. By using Construction:AirBoundary, multiple zones may be grouped into a single larger Enclosure. | ||
Enclosures are assigned automatically based on the zones connected by an air boundary surface. | ||
|
||
|
||
## New Space Object | ||
|
||
### Relationship assumptions ## | ||
|
||
If we keep the current definition of "Zone" and add the concept of | ||
"Space" (<= Zone), then this would add a new layer to the data model: | ||
|
||
Zone | ||
Thermostat | ||
HVAC equipment | ||
Space 2 | ||
Surfaces | ||
Internal Gains (People, Lights, etc.) | ||
Space 3 | ||
Surfaces | ||
Internal Gains (People, Lights, etc.) | ||
|
||
Enclosure | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This doesn't look like a correct tree hierarchy to me. OpenStudio's geometry is in a tree hierarchy (due to the physical reality that Spaces are physical objects that can't overlap). ThermalZones are off to the side, they are not part of the tree, they reference Spaces by ID rather than literally nesting the Spaces inside them.
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think the proposed hierarchy is conceptual and conceptually matches OS. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. |
||
Space 1 | ||
Surfaces | ||
Internal Gains (People, Lights, etc.) | ||
Space 2 | ||
Surfaces | ||
Internal Gains (People, Lights, etc.) | ||
|
||
|
||
### Definitions | ||
|
||
* Surface - A geometric plane which is attached to a Space. | ||
* A Surface can be opaque, transparent, or an air boundary. | ||
* Each Surface belongs to one Space. | ||
|
||
* Space - A collection of one or more Surfaces and internal gains. | ||
* Each Space belongs to one Zone (explicitly user-assigned). | ||
* The Spaces in a Zone are lumped together for the Zone heat balance. | ||
* There is no heat balance at the Space level. | ||
* Each Space belongs to one Enclosure (implicitly assigned). | ||
|
||
* Zone - An air mass connecting Surfaces, internal gains, and HVAC equipment for heat balance and HVAC control. | ||
* Each Zone is comprised of one or more Spaces. | ||
* All Surfaces and internal gains associated with the Spaces are included in the Zone. | ||
* The Zone heat balance does not change: it has an air node (or a Room Air Model) and includes all Surfaces and | ||
internal gains from its Spaces plus any HVAC which is attached to the Zone. | ||
|
||
* Enclosure - A continuous volume connecting Surfaces for radiant, solar, and daylighting exchange. | ||
* Each Enclosure is comprised of one or more Spaces. | ||
* There is one Enclosure for each Space unless there are air boundary surfaces | ||
which group multiple Spaces into a single Enclosure. | ||
* All Surfaces and internal radiant gains associated with the Spaces are included in the Enclosure. | ||
* Enclosures only distribute radiant (thermal), solar, and visible energy to and from the Surfaces. | ||
* There is no full heat balance at the Enclosure level. Each Enclosure only balances the radiant/solar flux on each | ||
Surface. These fluxes then become part of the Surface inside heat balance. | ||
|
||
## Proposed Input Approach ## | ||
Very minimal changes to current inputs. | ||
|
||
* Old Zone object becomes Space object plus some tags. | ||
* New Zone object has a name and a list of Spaces. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Suggest the name ThermalZone which would align with OpenStudio and allow for other types of Zones. I'd suggest naming Enclosure something like RadiantTransferZone or something that better captures its simulation purpose. To me, the word Enclosure is more about being waterproof and keeping your stuff out of the elements. OpenStudio envisioned Zones for calculating and controlling lighting like DaylightingZone, ElectricLightingZone. There could also be AirflowZone or others in the future. BuildingStory and Unit (e.g. apartment or commercial unit) are other useful groupings of Spaces. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It seems like these different *Zones could be used to partition the simulation into separate calculations and might even be useful in parallelizing the simulation in the future? |
||
* Surfaces will reference a Space instead of a Zone. | ||
* ZoneHVAC and Thermostats remain as-is and continue to reference a Zone or ZoneList. | ||
* New SpaceList object (equivalent to ZoneList, but for Spaces). | ||
* Internal gains reference Space or Spacelist (instead of Zone or ZoneList). | ||
* ZoneInfiltration and ZoneVentilation remain at the zone level. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is it possible to make infiltration or ventilation at the space level? That would simplify input for cases where ventilation requirements are a function of space type. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think it is possible, I think we probably just want to avoid having both (e.g. SpaceInfiltration and ZoneInfiltration). Moving everything to the space level will probably be more work, but if that's the right solution then we should do that. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Whether it's SpaceInfiltration or ZoneInfiltration, it'd be nice to be able to get individual outputs for each object. With current EnergyPlus, you can have multiple ZoneInfiltration objects in a zone, but can only get aggregate outputs (i.e., the key for Zone Infiltration Sensible Heat Gain Energy is a zone object, not an infiltration object). There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Should probably have outputs for both space and zone to show individual as well as aggregated. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I agree with this: limit to one input approach but output at both the space and zone level. |
||
|
||
### Proposed objects: | ||
|
||
Space, !- Same fields as old Zone object plus new tags at the end | ||
Name, | ||
Origin, | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Do we really need to continue using origin? Why? |
||
Multiplier, | ||
Ceiling Height, | ||
Volume, | ||
Floor Area, | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Shouldn't floor area be calculated from the floor surface attached to this space? Shouldn't ceiling height and air volume be calculated from the other surfaces attached to this space? |
||
Convection algorithms, | ||
Part of Total Floor Area, | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Part of total floor area of what? Zone? Enclosure? |
||
User-defined Tags for Space Types (for reporting purposes only at this point) | ||
|
||
Lighting/People/Equipment | ||
Name, | ||
Space or SpaceList Name, !- Replace current Zone or ZoneList Name | ||
Schedule Name, | ||
... | ||
|
||
ZoneVentilation and ZoneInfiltration | ||
Name, | ||
Zone or ZoneList Name, (or should these more to the Space level and be renamed?) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I haven't thought about this before. I have in the past included a part of a hallway with the adjacent office space as a single zone, just to save time on data entry. The hallway in a commercial building would have a different infiltration rate than other spaces since it would be connected to external doors, and would typically not have a thermostat. Of course you could add a thermostat in a simulation but that would defeat the purpose of "zoning" spaces around a common thermostat. So if this is left as a zone object the user would need to correctly group spaces of like ventilation/infiltration to a single zone instead of grouping spaces near a thermostat to a single zone. So it seems to me ventilation/infiltration should be applied at the space level. |
||
... | ||
Part of Total Floor Area; | ||
|
||
Surface, | ||
Name, | ||
... | ||
Space Name, !- Replace current Zone Name | ||
(InterZone surfaces becomes InterSpace surfaces, air boundary surfaces will connect spaces in an enclosure) | ||
|
||
## Data Structure Considerations ## | ||
|
||
* Add fields to `Surface` to track the Space name and index along with the existing Zone and Enclosure fields. | ||
|
||
* Proposed Surface ordering (same as current): | ||
- All shading surfaces are first | ||
- All air boundary surfaces are next (once PR8370 merges). | ||
- Group by Zone | ||
- Group by surface type within each Zone | ||
|
||
e.g., Zone1 contains Space1 and Space3, Zone2 contains Space2. | ||
|
||
Shading Surfaces | ||
Air Boundary Surfaces | ||
Space1-OpaqueSurface1 (begin surfaces in Zone1) | ||
Space1-OpaqueSurface2 | ||
Space3-OpaqueSurface1 | ||
Space3-OpaqueSurface2 | ||
Space1-Window1 | ||
Space1-Window2 | ||
Space2-OpaqueSurface1 (begin surfaces in Zone2) | ||
Space2-OpaqueSurface2 | ||
Space2-Window1 | ||
|
||
* Alternate Surface ordering: | ||
- All shading surfaces are first | ||
- All air boundary surfaces are next | ||
- Group by Enclosure (because enclosure radiant exchange is more computationally intensive than zone heat balance?) | ||
- Group by Space within each Enclosure. | ||
- Group by surface type within each Space | ||
- Modify heat balance Zone loops to be Space loops(?) | ||
|
||
e.g., Enclosure1 contains Space1 and Space3, Enclosure2 contains Space2. | ||
|
||
Shading Surfaces | ||
Air Boundary Surfaces | ||
Space1-OpaqueSurface1 (begin surfaces in Enclosure1) | ||
Space1-OpaqueSurface2 | ||
Space1-Window1 | ||
Space1-Window2 | ||
Space3-OpaqueSurface1 | ||
Space3-OpaqueSurface2 | ||
Space2-OpaqueSurface1 (begin surfaces in Enclosure2) | ||
Space2-OpaqueSurface2 | ||
Space2-Window1 | ||
|
||
## Options/Questions for Discussion | ||
* Keep ZoneVentilation and ZoneInfiltration at the Zone level or move to the Space level (and rename)? | ||
* Allow Zone Names to be the same as Space Names or force all names to be unique across Spaces and Zones? | ||
* Zone-based or Enclosure-based surface grouping? | ||
|
||
## Testing/Validation/Data Sources ## | ||
|
||
There should be no substantive diffs (possibly some small diffs due to change in computational order). | ||
For the regression tests which are one-to-one Space-To-Zone, all numeric results | ||
should stay exactly the same, but output variable names and table headings may change. | ||
|
||
## Input Output Reference Documentation ## | ||
|
||
The I/O Reference section for Zone becomes Space with some explanatory text at the top. | ||
The new Zone becomes a list of Spaces. | ||
|
||
## Outputs Description ## | ||
|
||
Output variables which are zone-based will remain the same. | ||
Some space-level output variables may be added. | ||
Table reports summarizing inputs at the space level will be added. | ||
Table reports allocating energy at the space level *may* be added. | ||
|
||
## Engineering Reference ## | ||
|
||
Calulations won't change, so doc changes will be minimal to clarify when Space, Zone, and Enclosure. | ||
|
||
## Example File and Transition Changes ## | ||
|
||
* Convert Zone objects to Space objects and add "-Space" to the name. | ||
* Insert new Zone objects (one for each original Zone, no name change). | ||
* Surfaces - Change all Zone names to add "-Space" | ||
* Internal gains - Change all Zone names to add "-Space" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If Spaces are fully enclosed (air boundaries count as being fully enclosed because the volume is defined) and Spaces cannot overlap, then ThermalZones and Enclosures composed of Spaces will be fully enclosed (but possibly disjoint) and non-overlapping.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Spaces are fully enclosed as you describe (with the possibility of air boundaries), so yes to the rest.