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

Extend Spaces to Sizing and HVAC #9982

Merged
merged 64 commits into from
Aug 23, 2023
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
adb7535
Initial NFP
mjwitte Apr 26, 2023
196440c
Merge remote-tracking branch 'remotes/origin/develop' into SpaceSizin…
mjwitte May 5, 2023
007e50f
SpaceHVAC NFP Rev 1
mjwitte May 5, 2023
5832cb5
Merge remote-tracking branch 'remotes/origin/develop' into SpaceSizin…
mjwitte May 19, 2023
5d7c5ad
Start design [decent_ci_skip]
mjwitte May 19, 2023
2b37000
Merge remote-tracking branch 'remotes/origin/develop' into SpaceSizin…
mjwitte Jun 13, 2023
dc682fe
Merge remote-tracking branch 'remotes/origin/develop' into SpaceSizin…
mjwitte Jun 15, 2023
352563b
More design [decent_ci_skip]
mjwitte Jun 15, 2023
49a40ac
Merge remote-tracking branch 'remotes/origin/develop' into SpaceSizin…
mjwitte Jul 17, 2023
0e89cf5
SpaceSizing - references and const
mjwitte Jul 17, 2023
a3e6ec1
SpaceSizing - more references and const
mjwitte Jul 18, 2023
6ed366e
Prune TermUnitFinalZoneSizing
mjwitte Jul 19, 2023
dd02d04
SpaceSizing - more const
mjwitte Jul 24, 2023
139e165
Merge remote-tracking branch 'remotes/origin/develop' into SpaceSizin…
mjwitte Jul 24, 2023
d219397
SpaceSizing - break apart UpdateZoneSizing
mjwitte Jul 24, 2023
7739729
SpaceSizing - break apart UpdateZoneSizing cleanup
mjwitte Jul 24, 2023
061a6e9
SpaceSizing - move some loose arrays into ZoneSizingData
mjwitte Jul 24, 2023
c0ad1e7
Merge remote-tracking branch 'remotes/origin/develop' into SpaceSizin…
mjwitte Jul 25, 2023
2f100c7
SpaceSizing - move more loose arrays into ZoneSizingData
mjwitte Jul 25, 2023
670563f
Merge remote-tracking branch 'remotes/origin/develop' into SpaceSizin…
mjwitte Jul 25, 2023
330f074
Merge remote-tracking branch 'remotes/origin/develop' into SpaceSizin…
mjwitte Jul 26, 2023
d21d82c
SpaceSizing - space-level vectors and reporting
mjwitte Jul 26, 2023
5883b28
SpaceSizing - cleanup
mjwitte Jul 27, 2023
60813fc
Merge remote-tracking branch 'remotes/origin/develop' into SpaceSizin…
mjwitte Jul 27, 2023
33b3235
SpaceSizing - SizeZoneEquipment
mjwitte Jul 27, 2023
b1befec
SpaceSizing - cleanup
mjwitte Jul 28, 2023
9d9fe53
SpaceSizing - break apart more UpdateZoneSizing
mjwitte Jul 28, 2023
ed0db06
SpaceSizing - cleanup
mjwitte Jul 31, 2023
ae68c32
SpaceSizing - get reporting right
mjwitte Jul 31, 2023
77a2107
SpaceSizing - cleanup
mjwitte Aug 1, 2023
84eb3b3
Space HVAC - Add SpaceHVAC:EquipmentConnections
mjwitte Aug 1, 2023
3dcd66b
Space HVAC - repair Add SpaceHVAC:EquipmentConnections
mjwitte Aug 1, 2023
f13f499
Merge remote-tracking branch 'remotes/origin/develop' into SpaceSizin…
mjwitte Aug 2, 2023
6f35ee5
Space HVAC - cleanup
mjwitte Aug 2, 2023
46d7688
Space HVAC - fix space HB diffs for space system node
mjwitte Aug 7, 2023
4f414c6
Space HVAC - skip space system node if uncontrolled
mjwitte Aug 7, 2023
2dcbbd2
Merge remote-tracking branch 'remotes/origin/develop' into SpaceSizin…
mjwitte Aug 9, 2023
2bc6b85
Space HVAC - Add SpaceHVAC:ZoneEquipmentSplitter
mjwitte Aug 11, 2023
8c90b25
Space HVAC - cleanup
mjwitte Aug 11, 2023
fa100e1
Space HVAC - updateSystemOutputRequired part 1
mjwitte Aug 11, 2023
083ab22
UPPERcase Remainder space name
mjwitte Aug 11, 2023
e76780b
Space HVAC - Add Ideal thermostat control
mjwitte Aug 11, 2023
b1a040b
Space HVAC - updateSystemOutputRequired part 2
mjwitte Aug 11, 2023
67718b6
Space HVAC - new testfile
mjwitte Aug 11, 2023
f871b06
Space HVAC - add Zone Equip Outlet Node input
mjwitte Aug 11, 2023
4567cb5
Space HVAC - set more props on space inlet nodes
mjwitte Aug 11, 2023
d4bc2e3
Space HVAC - fix airflows - maybe
mjwitte Aug 14, 2023
972877f
Space HVAC - cleanup
mjwitte Aug 15, 2023
4c9c4e4
Space HVAC - fix airflows - more
mjwitte Aug 15, 2023
bdd50ce
Space HVAC - I/O ref
mjwitte Aug 15, 2023
a55aab2
Merge remote-tracking branch 'remotes/origin/develop' into SpaceSizin…
mjwitte Aug 16, 2023
b9eff3b
Space HVAC - field name updates
mjwitte Aug 16, 2023
d73082a
Merge remote-tracking branch 'remotes/origin/develop' into SpaceSizin…
mjwitte Aug 16, 2023
e3dbba9
Space HVAC - cleanups
mjwitte Aug 16, 2023
1e9c6e8
Space HVAC - output rules
mjwitte Aug 16, 2023
f30f250
Merge remote-tracking branch 'remotes/origin/develop' into SpaceSizin…
mjwitte Aug 16, 2023
a1e2fd3
Space HVAC - NonAirSysOutput
mjwitte Aug 17, 2023
77eeb62
Merge remote-tracking branch 'remotes/origin/develop' into SpaceSizin…
mjwitte Aug 17, 2023
69cd732
Space HVAC - add SpaceHVAC:ZoneEquipmentMixer
mjwitte Aug 17, 2023
603368e
Space HVAC - add exhaust fan to new testfile
mjwitte Aug 18, 2023
99ca30f
Space HVAC - repairs
mjwitte Aug 18, 2023
8f0f792
Space HVAC - fix broken ifs
mjwitte Aug 18, 2023
89b3f28
A few minor changes to idd
rraustad Aug 18, 2023
96ebb6a
Merge branch 'develop' of https://github.com/NREL/EnergyPlus into Spa…
rraustad Aug 18, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
303 changes: 276 additions & 27 deletions design/FY2023/NFP-Space Sizing and HVAC.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ Extend Spaces to Sizing and HVAC
**Michael J. Witte, GARD Analytics, Inc.**

- Original April 26, 2023
- Revised May 5, 2023 - and now for something somewhat different

## Table of Contents ##

Expand Down Expand Up @@ -48,7 +49,7 @@ This NFP proposes additional optional capabilities:

## E-mail and Conference Call Conclusions ##

n/a
Lots of useful comments and input from Rich R.

## Overview ##

Expand All @@ -75,12 +76,24 @@ When "Do Space Heat Balance for Sizing" is active, the following sizing changes
Inputs will be added to describe optional Space-level HVAC equipment, such as:

1. Space air terminal units supplied by a single zone-level air distribution unit. e.g. A zone-level VAV damper supplying multiple space diffusers.
2. Self-contained zone equipment, such as PTACs and fancoil units may be assigned to a Space. Maybe?
2. Self-contained zone equipment, such as PTACs and fancoil units may be distribute to one or more Spaces.
3. Thermostats will still control a Zone, but they may be placed in a specific Space and will control that Space's temperature.
4. Finish adding Space Name options to various features such as ZoneThermalChimney (if budget allows, otherwise restrict these to single-space zones).


## Approach ##
### Sizing
* Refactor sizing so it can be at the Zone or Space level, with reporting for both.

### HVAC
* Leave exsiting ZoneHVAC inputs as-is with the addition of an optional field or two.
* Add inputs to distribute Zone HVAC equipment supply air flows to one or more Spaces within a Zone.
* Add inputs to distribute non-air Zone HVAC equipment output to one or more Spaces within a Zone.
* Allow thermostat control to be placed in a specific Space or averaged across the Zone.
* Keep return flows at the Zone level.

![SpaceHVACSchematic](SpaceHVACSchematic.png)



## Testing/Validation/Data Sources ##
Expand All @@ -92,12 +105,23 @@ Some new objects and some changes to existing objects are proposed.

### ZoneControl:Thermostat:\*
* *Change field "Zone or ZoneList Name" to "Zone or ZoneList or Space or SpaceList Name."*
* When a thermostat is assigned to a zone, it will calculate the lumped loads to setpoint for all spaces in the zone.
* When a thermostat is assigned to a space, it will calculate the loads to setpoint for that space.
* When a thermostat is assigned to a Zone, it will calculate the lumped loads to setpoint for all spaces in the zone.
* When a thermostat is assigned to a Space, it will calculate the loads to setpoint for that Space.

### ZoneHVAC:EquipmentConnections
* *Add a new ield to list ZoneHVAC:SpaceDistribution objects.*

```
ZoneHVAC:EquipmentConnections,

A9, \field Space Distribution List Name
\type object-list
\object-list SpaceDistributionLists
```


### SpaceHVAC:EquipmentConnections
* *New object to connect nodes to a Space, similar to ZoneHVAC:EquipmentConnections.*
* *New object to connect nodes to a Space, same as ZoneHVAC:EquipmentConnections, but for Spaces.*

```
SpaceHVAC:EquipmentConnections,
Expand All @@ -114,48 +138,198 @@ SpaceHVAC:EquipmentConnections,
\type node
```
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or even here is better to add the flow fraction? I assume unconditioned spaces are not allowed in a conditioned zone so each space would have this object.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or even here is better to add the flow fraction? I assume unconditioned spaces are not allowed in a conditioned zone so each space would have this object.

Maybe, but this would not allow different balancing for different equipment. I'll work on expanding the NFP and adding some diagrams to consider some options here.

Also, I started with a space equipment list to allow space-level HVAC equipment, then decide that wasn't necessary, but I probably need to allow that back in, because a fan coil, say, would rarely serve more than one room (space).

As a side note, I always find the reverse maxavail flow resolution in the airloops to be rather opaque (i.e. I can't follow it in the code). So my goal is to keep this as simple and straightforward as possible.


### ZoneHVAC:SpaceSplitter
* *New object, splits the air flow from a single piece of zone equipment to one or more Spaces.*
### ZoneHVAC:SpaceDistributionList
* *New object to list ZoneHVAC:SpaceDistribution objects for a Zone.*
```
ZoneHVAC:SpaceSplitter,
A1 , \field Name
\ memo List of ZoneHVAC:SpaceDisribution objects for a given Zone.
\ memo There must be one space distribution object for each piece of equipment in the ZoneHVAC:EquipmentList (order does not matter).
\extensible:2
\memo Split one air stream into N outlet streams. Node names
\memo Node names must be unique across all ZoneHVAC:SpaceSplitter objects.
\required-field
\reference SpaceDistributionLists
A2 , \field Space Distribution 1 Object Type
\begin-extensible
\required-field
\type choice
\key ZoneHVAC:SpaceDistribution:AirFlow
\key ZoneHVAC:SpaceDistribution:ANonirFlow
A3 , \field Space Distribution 1 Name
\required-field
\type object-list
\object-list SpaceDistributionNames

```

### ZoneHVAC:SpaceDistribution:AirFlow
* *New object, splits the air flow from a single piece of zone equipment to one or more Spaces.*
* *Would likely also add a ZoneHVAC:SpaceDistributionList that's referenced at the end of the ZoneHVAC:EquuipmentConnections object
```
ZoneHVAC:SpaceDistribution:AirFlow,
\extensible:3
\memo Distributes the airflow from a piece of zone equipment to one or more Spaces in the Zone.
A1, \field Name
\required-field
\reference SpaceSplitters
A2, \field Inlet Node Name
\reference SpaceDistributionNames
A2, \field Zone Equipment Object Type
\required-field
\type choice
\key ZoneHVAC:TerminalUnit:VariableRefrigerantFlow
\key ZoneHVAC:AirDistributionUnit
\key ZoneHVAC:EnergyRecoveryVentilator
\key ZoneHVAC:EvaporativeCoolerUnit
\key ZoneHVAC:HybridUnitaryHVAC
\key ZoneHVAC:ForcedAir:UserDefined
\key ZoneHVAC:FourPipeFanCoil
\key ZoneHVAC:OutdoorAirUnit
\key ZoneHVAC:PackagedTerminalAirConditioner
\key ZoneHVAC:PackagedTerminalHeatPump
\key ZoneHVAC:UnitHeater
\key ZoneHVAC:UnitVentilator
\key ZoneHVAC:VentilatedSlab
\key ZoneHVAC:WaterToAirHeatPump
\key ZoneHVAC:WindowAirConditioner
\key ZoneHVAC:Dehumidifier:DX
\key ZoneHVAC:IdealLoadsAirSystem
\key ZoneHVAC:RefrigerationChillerSet
\key Fan:ZoneExhaust
\key WaterHeater:HeatPump:PumpedCondenser
\key WaterHeater:HeatPump:WrappedCondenser
\key HeatExchanger:AirToAir:FlatPlate
\key AirLoopHVAC:UnitarySystem
A3, \field Zone Equipment Name
\required-field
\type object-list
\object-list ZoneEquipmentNames
A4, \field Zone Equipment Outlet Node Name
\required-field
\type node
A3, \field Outlet 1 Node Name
A5, \field Thermostat Control Method
\type choice
\key SingleSpace
\key SpaceAverage
\default SpaceAverage
A6, \field Thermostat Space Name
\note Used with SingleSpace thermostat control method
\type object-list
\object-list SpaceNames
A7, \field Space Sizing Basis
\type choice
\default DesignLoad
\key DesignLoad
\key FloorArea
\key Volume
\key PerimeterLength
A8, \field Space 1 Name
\begin-extensible
\required-field
\type object-list
\object-list SpaceNames
A9, \field Space 1 Supply Node Name
\note Matches a SpaceHVAC:EquipmentConnections Inlet Node Name
\required-field
\type node
N1, \field Outlet 1 Flow Fraction
\units dimensionless
\type real
\minimum 0
\maximum 1.0
\autosizable
N1, \field Space 1 Maximum Air Flow Rate
\default autosize
A4, \field Outlet 2 Node Name
\units m3/s
\minimum 0.0
\autosizable
A10, \field Space 2 Name
\required-field
\type object-list
\object-list SpaceNames
A11, \field Space 2 Supply Node Name
\required-field
\type node
N2, \field Outlet 2 Flow Fraction
N2; \field Space 2 Maximum Air Flow Rate
\default autosize
\units m3/s
\minimum 0.0
\autosizable
```

### ZoneHVAC:SpaceDistribution:NonAirFlow
* *New object, splits the output from a single piece of zone equipment to one or more Spaces.*
* *Would likely also add a ZoneHVAC:SpaceDistributionList that's referenced at the end of the ZoneHVAC:EquuipmentConnections object
```
ZoneHVAC:SpaceDistribution:NonAirFlow,
\extensible:2
\memo Distributes the output from a piece of zone equipment to one or more Spaces in the Zone.
A1, \field Name
\required-field
\reference SpaceDistribution
A2, \field Zone Equipment Object Type
\required-field
\type choice
\key ZoneHVAC:Baseboard:RadiantConvective:Electric
\key ZoneHVAC:Baseboard:RadiantConvective:Water
\key ZoneHVAC:Baseboard:RadiantConvective:Steam
\key ZoneHVAC:CoolingPanel:RadiantConvective:Water
\key ZoneHVAC:Baseboard:Convective:Electric
\key ZoneHVAC:Baseboard:Convective:Water
\key ZoneHVAC:HighTemperatureRadiant
\key ZoneHVAC:LowTemperatureRadiant:VariableFlow
\key ZoneHVAC:LowTemperatureRadiant:ConstantFlow
\key ZoneHVAC:LowTemperatureRadiant:Electric
A3, \field Zone Equipment Name
\required-field
\type object-list
\object-list ZoneEquipmentNames
A5, \field Thermostat Control Method
\type choice
\key SingleSpace
\key SpaceAverage
\default SpaceAverage
A6, \field Thermostat Space Name
\note Used with SingleSpace thermostat control method
\type object-list
\object-list SpaceNames
A7, \field Space Sizing Basis
\type choice
\default DesignLoad
\key DesignLoad
\key FloorArea
\key Volume
\key PerimeterLength
A8, \field Space 1 Name
\begin-extensible
\required-field
\type object-list
\object-list SpaceNames
N1, \field Space 1 Output Fraction
\default autosize
\units dimensionless
\type real
\minimum 0
\minimum 0.0
\maximum 1.0
\autosizable
A9, \field Space 2 Name
\required-field
\type object-list
\object-list SpaceNames
N2, \field Space 2 Output Fraction
\default autosize
\units dimensionless
\minimum 0.0
\maximum 1.0
\autosizable
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should probably run these extensible fields out to about 10 in the idd when implemented. I can see a hallway with 5 or more spaces on a single zone on each side of the hallway.

```

### ZoneHVAC:AirDistributionUnit
* *Add new field.*
### SpaceHVAC:EquipmentConnections
* *New object to connect nodes to a Space, same as ZoneHVAC:EquipmentConnections, but for Spaces.*

A6 ; \field Space Splitter Name
```
SpaceHVAC:EquipmentConnections,
\memo Specifies the HVAC equipment connections for a Space. Node names are specified for the
\memo Space air node and air inlet nodes.
A1 , \field Space Name
\required-field
\type object-list
\object-list SpaceSplitters
\object-list SpaceNames
A2 , \field Space Air Node Name
\required-field
\type node
A3 ; \field Space Air Inlet Node or NodeList Name
\type node
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did not understand this on the first go around. Why doesn't a space have an exhaust or return outlet node? Will these nodes be implied as connecting to a zone exhaust/return outlet? and how to know which space has which outlet type? If an air loop connects to these spaces then yes, the air flow would sum to a zone return node. If a PTAC is connected to a space then the space would need an exhaust node. Also need a space exhaust node for "space" exhaust fans.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I was hoping to avoid space-level return/exhaust nodes, but that might not work out.

```

### ZoneRefrigerationDoorMixing
(If budget allows, otherwise limit these to single-space zones.)
Expand All @@ -171,6 +345,81 @@ ZoneHVAC:SpaceSplitter,
(If budget allows, otherwise limit these to single-space zones.)
* *Change field "Zone N Name" to "Inlet Zone or Space Name N."*

### idf Example
```
ZoneHVAC:EquipmentConnections,
Zone 1, !- Zone Name
Zone 1 Eq, !- Zone Conditioning Equipment List Name
Zone 1 In Node, !- Zone Air Inlet Node or NodeList Name
, !- Zone Air Exhaust Node or NodeList Name
Zone 1 Node, !- Zone Air Node Name
Zone 1 Out Node; !- Zone Return Air Node or NodeList Name
, !- Zone Return Air Node 1 Flow Rate Fraction Schedule Name
, !- Zone Return Air Node 1 Flow Rate Basis Node or NodeList Name
Zone 1 Space Distribution; !- Space Distribution List Name

ZoneHVAC:EquipmentList,
Zone 1 Eq, !- Name
SequentialLoad, !- Load Distribution Scheme
ZoneHVAC:Baseboard:Convective:Electric, !- Zone Equipment 1 Object Type
Zone 1 Baseboard, !- Zone Equipment 1 Name
1, !- Zone Equipment 1 Cooling Sequence
1, !- Zone Equipment 1 Heating or No-Load Sequence
, !- Zone Equipment 1 Sequential Cooling Fraction Schedule Name
, !- Zone Equipment 1 Sequential Heating Fraction Schedule Name
ZoneHVAC:AirDistributionUnit, !- Zone Equipment 1 Object Type
Zone 1 ATU, !- Zone Equipment 1 Name
2, !- Zone Equipment 1 Cooling Sequence
2, !- Zone Equipment 1 Heating or No-Load Sequence
, !- Zone Equipment 1 Sequential Cooling Fraction Schedule Name
; !- Zone Equipment 1 Sequential Heating Fraction Schedule Name

ZoneHVAC:SpaceDistributionList,
Zone 1 Space Distribution, !- Name
ZoneHVAC:SpaceDistribution:AirFlow, !- Space Distribution 1 Object Type
Zone 1 VAV Splitter, !- Space Distribution 1 Object Name
ZoneHVAC:SpaceDistribution:NonAirFlow, !- Space Distribution 1 Object Type
Zone 1 Baseboard Splitter; !- Space Distribution 2 Object Name

SpaceHVAC:EquipmentConnections,
Space 1A, !-Space Name
Space 1A Node, !-Space Air Node Name
Space 1A VAV Supply Node; !-Space Air Inlet Node or NodeList Name

SpaceHVAC:EquipmentConnections,
Space 1B, !-Space Name
Space 1B Node, !-Space Air Node Name
Space 1B VAV Supply Node; !-Space Air Inlet Node or NodeList Name

ZoneHVAC:SpaceDistribution:AirFlow,
Zone 1 VAV Splitter, !-Name
ZoneHVAC:AirDistributionUnit, !-Zone Equipment Object Type
Zone 1 VAV Box, !-Zone Equipment Name
Zone 1 VAV Outlet Node, !-Zone Equipment Outlet Node Name
SingleSpace, !-Thermostat Control Method
Space 1A, !-Thermostat Space Name
DesignLoad, !-Space Sizing Basis
Space 1A, !-Space 1 Name
Space 1A VAV Supply Node, !-Space 1 Supply Node Name
autosize, !-Space 2 Maximum Air Flow Rate {m3/s}
Space 1B, !-Space 2 Name
Space 1B VAV Supply Node, !-Space 2 Supply Node Name
autosize; !-Space 2 Maximum Air Flow Rate {m3/s}

ZoneHVAC:SpaceDistribution:NonAirFlow,
Zone 1 Baseboard Splitter, !-Name
ZoneHVAC:Baseboard:Convective:Electric, !-Zone Equipment Object Type
Zone 1 Baseboard, !-Zone Equipment Name
SpaceAverage, !-Thermostat Control Method
Space 1A, !-Thermostat Space Name
PerimeterLength, !-Space Sizing Basis
Space 1A, !-Space 1 Name
autosize, !-Space 1 Output Fraction
Space 1B, !-Space 2 Name
autosize; !-Space 2 Output Fraction
```


## Outputs Description ##
Existing relevant Space Output Variables (from 5ZoneAirCooledWithSpaceHeatBalance.rdd)
```
Expand Down
Binary file added design/FY2023/SpaceHVACSchematic.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.