Skip to content

Commit 0e009d2

Browse files
committed
Merge remote-tracking branch 'origin/develop' into Blind
2 parents 63a5723 + 2fda843 commit 0e009d2

File tree

57 files changed

+4213
-1371
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+4213
-1371
lines changed
Lines changed: 214 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,214 @@
1+
Extend Spaces to Sizing and HVAC - Part 4
2+
================
3+
4+
**Michael J. Witte, GARD Analytics, Inc.**
5+
6+
- Original June 17, 2024
7+
- Revised, August 2, 2024
8+
9+
## Table of Contents ##
10+
11+
[E-mail and Conference Call Conclusions](#e-mail-and-conference-call-conclusions)
12+
13+
[Background and Overiew](#background-and-overview)
14+
15+
[Approach](#approach)
16+
17+
[Testing/Validation/Data Sources](#testingvalidationdata-sources)
18+
19+
[Input Description](#input-description)
20+
21+
[Outputs Description](#outputs-description)
22+
23+
[Engineering Reference](#engineering-reference)
24+
25+
[Example File and Transition Changes](#example-file-and-transition-changes)
26+
27+
[Design](#design)
28+
29+
## E-mail and Conference Call Conclusions ##
30+
June 17-20, Q&A in the pull request with rraustad. Made some minor updates to the NFP to clarify the sizing methods and to mention that an spsz output file will be created, similar to the existing zsz output.
31+
32+
33+
## Background and Overview ##
34+
35+
Space was added as a new concept in v9.6. Each EnergyPlus Zone contains one or more Spaces which are used for:
36+
37+
* assigning and allocating internal gains
38+
* specifying enclosure boundaries,
39+
* reporting inputs grouped by space types, and
40+
* reporting select output grouped by space types.
41+
42+
For the zone heat balance each thermal Zone is composed of one or more Spaces controlled by a single thermostat or HVAC system control point such as a VAV terminal unit.
43+
44+
In version 23.1 options were added to perform the air heat balance for each Space or each Zone, and space-level heat balance output variables were added.
45+
46+
In version 23.2, the following capabilities were added:
47+
48+
* When ZoneAirHeatBalanceAlgorithm "Do Space Heat Balance for Sizing" = Yes, zone sizing is also done for all spaces. The HVAC Sizing Summary table report will include subtables for Space Sensible Cooling and Heating as well as for Zone Sensible Cooling and Heating. Space Sizing will also be reported to the eio output. The space sizing results are reported, but not used.
49+
50+
* Three new objects, SpaceHVAC:EquipmentConnections, SpaceHVAC:ZoneEquipmentSplitter, and SpaceHVAC:ZoneEquipmentMixer allow one or more zones to be simulated at the space level for HVAC, leading to independent air temperature and humidity in each space.
51+
52+
* For zone equipment serving multiple spaces, three thermostat control options (SingleSpace, Ideal, and Maximum).
53+
54+
This NFP proposes additional optional capabilities:
55+
56+
* Use the Space-level (room-by-room) sizing results to size Zone-level equipment to either the coincident or non-coincident peak across the Spaces (rooms).
57+
58+
* Refine existing Space-level HVAC simulation.
59+
60+
* Extend space HVAC to support more special objects (e.g. ZoneThermalChimney, if budget allows).
61+
62+
63+
64+
## Approach ##
65+
### Sizing
66+
A new input will be added to Sizing:Zone to allow zone sizing using the non-coincident space peaks or the coincident peak.
67+
68+
Space sizing is an actual heat balance on each space. Currently zone sizing is an actual heat balance on each zone (as a whole) although some of the components for the zone heat balance are sums across the spaces (even when space heat balance is off). e.g. internal gains. The current zone sizing calculations will be used to calculate the coincident zone sizing using the combined spaces.
69+
70+
For the non-coincident zone sizing, the individual space peaks will be summed and other values (such as outdoor temperature) will be averaged.
71+
72+
When space sizing is active, sizing results are reported in the table output for both spaces and zones. There will be no change here.
73+
74+
When space sizing is active, a new spssz output file will be generated, similar to the existing zsz output. This will require a new field in the OutputControl:Files object.
75+
76+
77+
### HVAC
78+
* Calculate return flows at the Space level. Currently, space return nodes can be specified, but there is no flow assigned to them. All return flow is lumped at the zone level.
79+
80+
81+
![SpaceHVACSchematic](SpaceHVACSchematic.png)
82+
83+
84+
85+
## Testing/Validation/Data Sources ##
86+
87+
Compare Space vs Zone-level results.
88+
89+
## Input Description ##
90+
Some new objects and some changes to existing objects are proposed.
91+
92+
### Sizing:Zone
93+
* *New field at the end:"*
94+
```
95+
A15; \field Type of Space Sum to Use
96+
\type choice
97+
\key Coincident
98+
\key NonCoincident
99+
\default Coincident
100+
```
101+
102+
### OutputControl:Files
103+
* *New field in the middle:"*
104+
```
105+
A9 , \field Output Space Sizing
106+
\type choice
107+
\key Yes
108+
\key No
109+
\default Yes
110+
```
111+
112+
### ZoneRefrigerationDoorMixing
113+
(If budget allows, otherwise limit these to single-space zones.)
114+
* *Change field "Zone 1 Name" to "Zone or Space Name 1."*
115+
116+
* *Change field "Zone 2 Name" to "Zone or Space Name 2."*
117+
118+
### ZoneCoolTower:Shower
119+
(If budget allows, otherwise limit these to single-space zones.)
120+
* *Change field "Zone Name" to "Zone or Space Name."*
121+
122+
### ZoneThermalChimney
123+
(If budget allows, otherwise limit these to single-space zones.)
124+
* *Change field "Zone N Name" to "Inlet Zone or Space Name N."*
125+
126+
### idf Example
127+
128+
129+
## Outputs Description ##
130+
A new Spsz output file will be created when space sizing is active.
131+
132+
133+
## Engineering Reference ##
134+
135+
136+
## Example File and Transition Changes ##
137+
138+
* Transition will be required for idf OutputControl:Files.
139+
140+
* Field name changes may be required for epJSON inputs for ZoneRefrigerationDoorMixing, ZoneCoolTower:Shower, and/or ZoneThermalChimney.
141+
142+
* The existing example file 5ZoneAirCooledWithSpaces will be copied to a new example file that uses the new Sizing:Zone Coincident Space sum option.
143+
144+
145+
## Design ##
146+
147+
### Sizing ###
148+
149+
When Space sizing is requested, the following arrays are created for Spaces.
150+
151+
```
152+
Array2D<DataSizing::ZoneSizingData> SpaceSizing; // Data for space sizing (all data, all design)
153+
EPVector<DataSizing::ZoneSizingData> FinalSpaceSizing; // Final data for space sizing including effects
154+
Array2D<DataSizing::ZoneSizingData> CalcSpaceSizing; // Data for space sizing (all data)
155+
EPVector<DataSizing::ZoneSizingData> CalcFinalSpaceSizing; // Final data for space sizing (calculated only)
156+
```
157+
158+
The main calculation flow for Zone sizing is:
159+
160+
* `SizingManager::ManageSizing`
161+
* Get sizing inputs (`GetOARequirements . . . GetPlantSizingInput`).
162+
* Loop over sizing environments and days
163+
```
164+
UpdateZoneSizing(state, Constant::CallIndicator::BeginDay);
165+
Loop over hours and timesteps
166+
ManageWeather(state);
167+
UpdateSysSizing(state, Constant::CallIndicator::DuringDay);
168+
ManageHeatBalance(state);
169+
UpdateZoneSizing(state, Constant::CallIndicator::EndDay);
170+
UpdateZoneSizing(state, Constant::CallIndicator::EndZoneSizingCalc);
171+
```
172+
* Repeat (with a pulse) if zone component loads report is requested.
173+
* `ZoneEquipmentManager::UpdateZoneSizing` (where all the work is done.)
174+
* `case Constant::CallIndicator::BeginDay:`
175+
* Do some initializations on `CalcZoneSizing`
176+
* `case Constant::CallIndicator::DuringDay:`
177+
* Called from `HVACManager`
178+
* save the results of the ideal zone component calculation in the CalcZoneSizing sequence variables
179+
* Works on `ZoneSizing` and `CalcZoneSizing`
180+
* `case Constant::CallIndicator::EndDay:`
181+
* Compute moving averages
182+
* Save values at peak heating and cooling
183+
* Works on `CalcZoneSizing` and `CalcFinalZoneSizing`
184+
* *In this function add the zone sizing coincident/non-coincident option and calculations.*
185+
186+
* `case Constant::CallIndicator::EndZoneSizingCalc:`
187+
* Apply EMS overrides
188+
* Output sizing results from `CalcFinalZoneSizing`
189+
* Move sizing data into final sizing array according to sizing method
190+
* Works on `CalcZoneSizing`, `CalcFinalZoneSizing`, `ZoneSizing`, and `FinalZoneSizing`
191+
* Lots going on in here.
192+
193+
### HVAC ###
194+
195+
The main calculation flow for Zone and Space HVAC in `HVACManager:ManageHVAC` is as follows, with notes about changes required for Space-HVAC.
196+
197+
* `ZoneTempPredictorCorrector::ManageZoneAirUpdates(... GetZoneSetPoints)`
198+
* `CalcZoneAirTempSetPoints`
199+
* `ZoneTempPredictorCorrector::ManageZoneAirUpdates(... PredictStep)`
200+
* `PredictSystemLoads`
201+
* `SimHVAC`
202+
* `SetPointManager::ManageSetPoints(state);`
203+
* `SimSelectedEquipment`
204+
* `SimAirServingZones::ManageAirLoops`
205+
* `ZoneEquipmentManager::ManageZoneEquipment`
206+
* `CalcZoneReturnFlows`*
207+
* *Add space return flow calculations here.*
208+
* *Likely refactor this function to be callable for either zone or space.*
209+
* `PlantManager::ManagePlantLoops`
210+
* `ZoneTempPredictorCorrector::ManageZoneAirUpdates(... CorrectStep)`
211+
* `correctZoneAirTemps`
212+
213+
214+

design/FY2024/SpaceHVACSchematic.png

35.6 KB
Loading

doc/input-output-reference/src/overview/group-airflow.tex

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1518,21 +1518,21 @@ \subsection{ZoneRefrigerationDoorMixing}\label{zonerefrigerationdoormixing}
15181518

15191519
ZoneRefrigerationDoorMixing is ideally suited for two zones, at least one of which is refrigerated, that exchange an equal amount of dry air. As with \hyperref[zonemixing]{ZoneMixing}, this is a simplified interzone airflow in EnergyPlus. The ZoneRefrigerationDoorMixing approach shares some features of both \hyperref[zonemixing]{ZoneMixing} and \hyperref[zonecrossmixing]{ZoneCrossMixing}. Like \hyperref[zonecrossmixing]{ZoneCrossMixing}, ZoneRefrigerationDoorMixing has an energy effect on both the source and the receiving zone, thus maintaining both the air mass and energy balances in the two zones. Unlike the other two mixing objects, ZoneRefrigerationDoorMixing always calculates the air exchange rate based on the zone temperature and relative humidity. That is, the user does not specify the air flow rate. The user can moderate the flow through a door-opening schedule.
15201520

1521-
ZoneRefrigerationDoorMixing can only be entered once for any unique pair of zones. It doesn't matter which zone is listed first and the zones will automatically switch back and forth between source and receiving zones depending upon which zone is colder.
1521+
ZoneRefrigerationDoorMixing can only be entered once for any unique pair of zones. It doesn't matter which zone is listed first and the zones will automatically switch back and forth between source and receiving zones depending upon which zone is colder. If space heat balance is active and a space name is specified for Zone or Space Name 1 or 2, then the space conditions will be used and the exchange will be with that space only. If space heat balance is active and a zone name is specified, then the aveerage zone conditions will be used, and the exchange will be proportioned to all spaces in the zone by space volume.
15221522

15231523
\subsubsection{Inputs}\label{inputs-7-003}
15241524

15251525
\paragraph{Field: Name}\label{field-name-7-002}
15261526

15271527
The name of the ZoneRefrigerationDoorMixing object.
15281528

1529-
\paragraph{Field: Zone 1~ Name}\label{field-zone-1-name}
1529+
\paragraph{Field: Zone or Space Name 1}\label{field-zone-1-name}
15301530

1531-
This field is the name of one of the two zones (ref: Zone) exchanging air and attaches a particular refrigeration door~ mixing statement to both thermal zones in the building.
1531+
This field is the name of one of the two zones (ref: Zone) or spaces exchanging air and attaches a particular refrigeration door~ mixing statement to both thermal zones or spaces in the building. If a space name is used, it must belong to a different zone than Zone or Space Name 2.
15321532

1533-
\paragraph{Field: Zone 2~ Name}\label{field-zone-2-name}
1533+
\paragraph{Field: Zone or Space Name 2}\label{field-zone-2-name}
15341534

1535-
This field is the name of the other zone (ref: Zone) exchanging air and attaches a particular refrigeration door~ mixing statement to both thermal zones in the building.
1535+
This field is the name of the other zone (ref: Zone) or space exchanging air and attaches a particular refrigeration door~ mixing statement to both thermal zones or spaces in the building. If a space name is used, it must belong to a different zone than Zone or Space Name 1.
15361536

15371537
\paragraph{Field: Schedule Name}\label{field-schedule-name-5}
15381538

@@ -1965,9 +1965,9 @@ \subsubsection{Inputs}\label{inputs-8-002}
19651965

19661966
This field is the name of the schedule that denotes whether the cooltower can run during a given time period. A schedule value greater than 0 (usually 1 is used) indicates that the cooltower is available and can be on during the time period. A value less than or equal to 0 (usually 0 is used) denotes that the cooltower is not available and must be off for the time period. If this field is blank, the schedule has values of 1 for all time periods.
19671967

1968-
\paragraph{Field: Zone Name}\label{field-zone-name-6}
1968+
\paragraph{Field: Zone or Space Name}\label{field-zone-name-6}
19691969

1970-
This field is the name of the zone (ref: Zone) and attaches a particular cooltower statement to a thermal zone in the building.
1970+
This field is the name of the zone (ref: Zone) or space the cooltower is attached to.
19711971

19721972
\paragraph{Field: Water Supply Storage Tank Name}\label{field-water-supply-storage-tank-name}
19731973

@@ -2185,9 +2185,9 @@ \subsubsection{Inputs}
21852185

21862186
This dimensionless number is the discharge coefficient of the thermal chimney. The ventilation rate enhanced by the thermal chimney is also dependent on the discharge coefficient.
21872187

2188-
\paragraph{Field: Zone \textless{}\#\textgreater{} Name}\label{field-zone-name-8}
2188+
\paragraph{Field: Zone or Space Name \textless{}\#\textgreater{}}\label{field-zone-name-8}
21892189

2190-
This field is the name of the zone (ref: Zone) to which the thermal chimney is attached. It is used in conjunction with the next three fields. Note that up to 20 sets of zone name, distance from the top of the thermal chimney to each inlet, relative ratios of air flow rates passing through each zone and cross sectional areas of each air channel inlet may be entered for a single thermal chimney if multiple zones share the common thermal chimney.
2190+
This field is the name of the zone (ref: Zone) or space to which the thermal chimney is attached. It is used in conjunction with the next three fields. Note that up to 20 sets of zone or space name, distance from the top of the thermal chimney to each inlet, relative ratios of air flow rates passing through each zone and cross sectional areas of each air channel inlet may be entered for a single thermal chimney if multiple zones or spaces share the common thermal chimney. If space heat balance is active and a space name is specified for Zone or Space Name, then the space conditions will be used and the exchange will be with that space only. If space heat balance is active and a zone name is specified, then the aveerage zone conditions will be used, and the exchange will be proportioned to all spaces in the zone by space volume.
21912191

21922192
\paragraph{Field: Distance from Top of Thermal Chimney to Inlet \textless{}\#\textgreater{}}\label{field-distance-from-top-of-thermal-chimney-to-inlet}
21932193

doc/input-output-reference/src/overview/group-design-objects.tex

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1295,11 +1295,15 @@ \subsubsection{Inputs}\label{inputs-4-008}
12951295
Sizing Method = Sensible Load Only No Latent Load or a zone humidistat is present. A default of 50.0 will be used if no schedule is provided and no humidistat is
12961296
associated with this zone.
12971297

1298+
\paragraph{Field: Type of Space Sum to Use}\label{field-type-of-space-sum-to-use}
1299+
1300+
If the input is \emph{coincident} the zone equipment will be sized on the coincident zone load across all spaces in the zone. If the input is \emph{noncoincident} the zone equipment will be sized on the sum of the noncoincident space loads. The default is \emph{coincident}. This field is ignored unless \hyperref[zoneairheatbalancealgorithm]{ZoneAirHeatBalanceAlgorithm} ``Do Space Heat Balance for Sizing'' is Yes.
1301+
12981302
An IDF example:
12991303

13001304
\begin{lstlisting}
13011305

1302-
Sizing:Zone,
1306+
Sizing:Zone,
13031307
SPACE5-1, !- Name of a zone
13041308
14., !- Zone cooling design supply air temperature {C}
13051309
50., !- Zone heating design supply air temperature {C}
@@ -1331,16 +1335,17 @@ \subsubsection{Inputs}\label{inputs-4-008}
13311335
, !- Zone Humidification Design Supply Air Humidity Ratio
13321336
0.005, !- Zone Heating Design Supply Air Humidity Ratio Difference
13331337
, !- Zone Humidistat Dehumidification Set Point Schedule Name
1334-
; !- Zone Humidistat Humidification Set Point Schedule Name
1335-
1338+
, !- Zone Humidistat Humidification Set Point Schedule Name
1339+
Coincident; !- Type of Space Sum to Use
1340+
13361341
DesignSpecification:OutdoorAir,
1337-
DSOA1, !- Name
1338-
SUM, !- Outdoor Air Method
1339-
0.00236, !- Outdoor Air Flow per Person
1340-
0.000305, !- Outdoor Air Flow per Zone Floor Area
1341-
0.0, !- Outdoor Air Flow per Zone
1342-
0.0, !- Outdoor Air Flow Air Changes per Hour
1343-
; !- Outdoor Air Flow Rate Fraction Schedule Name
1342+
DSOA1, !- Name
1343+
SUM, !- Outdoor Air Method
1344+
0.00236, !- Outdoor Air Flow per Person
1345+
0.000305, !- Outdoor Air Flow per Zone Floor Area
1346+
0.0, !- Outdoor Air Flow per Zone
1347+
0.0, !- Outdoor Air Flow Air Changes per Hour
1348+
; !- Outdoor Air Flow Rate Fraction Schedule Name
13441349

13451350
DesignSpecification:ZoneAirDistribution,
13461351
DSZADO1, !- Name

doc/input-output-reference/src/overview/group-simulation-parameters.tex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -473,7 +473,7 @@ \subsubsection{Inputs}\label{inputs-8-023}
473473
If yes, space-level heat balance will be calculated and reported during sizing, and space sizing results will be reported along with zone sizing results. If no, then only zone-level heat balance will be calculated. This field defaults to No. For zones with more than one space, the zone sizing results are calculated for the whole zone and represent the coincident peak for the spaces in the zone. Note that space heat balance is not supported for \hyperref[inputs-hm]{HybridModel:Zone}, \hyperref[roomairmodeltype]{RoomAirModelType} other than Mixing, \hyperref[heatbalancealgorithm]{HeatBalanceAlgorithm} MoisturePenetrationDepthConductionTransferFunction and CombinedHeatAndMoistureFiniteElement.
474474

475475
\paragraph{Field: Do Space Heat Balance for Simulation}\label{field-do-space-heat-balance-simulation}
476-
If yes, space-level heat balance will be calculated and reported during the simulation. If no, then only zone-level heat balance will be calculated. This field defaults to No. When this field is Yes, optional SpaceHVAC objects may be used to distribute zone HVAC equipment output to the spaces in the zone. See \hyperref[spacehvacequipmentconnections]{SpaceHVAC:EquipmentConnections}, \hyperref[spacehvaczoneequipmentsplitter]{SpaceHVAC:ZoneEquipmentSplitter} and \hyperref[spacehvaczoneequipmentmixer]{SpaceHVAC:ZoneEquipmentMixer}.
476+
If yes, space-level heat balance will be calculated and reported during the simulation. If no, then only zone-level heat balance will be calculated. This field defaults to No. When this field is Yes, optional SpaceHVAC objects may be used to distribute zone HVAC equipment output to the spaces in the zone. See \hyperref[spacehvacequipmentconnections]{SpaceHVAC:EquipmentConnections}, \hyperref[spacehvaczoneequipmentsplitter]{SpaceHVAC:ZoneEquipmentSplitter}, \hyperref[spacehvaczoneequipmentmixer]{SpaceHVAC:ZoneEquipmentMixer} and \hyperref[spacehvaczonereturnmixer]{SpaceHVAC:ZoneReturnMixer}.
477477

478478
And, a default IDF example is shown below:
479479

0 commit comments

Comments
 (0)