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

Dedicated general exhaust system #9209

Merged
merged 201 commits into from
Feb 22, 2022
Merged
Show file tree
Hide file tree
Changes from 167 commits
Commits
Show all changes
201 commits
Select commit Hold shift + click to select a range
5325aaf
NFP skeleton draft.
jcyuan2020 Jul 14, 2021
0d88897
Add a figure illustration to NFP, fix tabs, plus some updates.
jcyuan2020 Jul 14, 2021
2fb7ef6
NFP revise idd object items.
jcyuan2020 Jul 14, 2021
e4d3ba1
Update the NFP and some design contents [decent_ci_skip].
jcyuan2020 Jul 21, 2021
1bccf6a
Merge remote-tracking branch 'remotes/origin/develop' into Dedicated_…
mjwitte Oct 22, 2021
f8f5cea
Exhaust NFP Approach B
mjwitte Oct 22, 2021
cc76bfd
Exhaust NFP Approach C
mjwitte Oct 25, 2021
6c34962
Approach D and exhaust system airloop assignment.
jcyuan2020 Nov 10, 2021
443e80e
Consider heat or enthalpy recovery.
jcyuan2020 Nov 10, 2021
4750ab1
Modify Approach D and add thoughts about Approach E using new airloop…
jcyuan2020 Nov 11, 2021
06806aa
Some changes on the background overview.
jcyuan2020 Nov 15, 2021
c0ff572
Reorganize and combine Approaches options.
jcyuan2020 Nov 16, 2021
3cf24a3
NFP changes and some design updates.
jcyuan2020 Nov 16, 2021
f992f49
Decide on approach options part 1.
jcyuan2020 Nov 18, 2021
912611f
New objects descriptions update.
jcyuan2020 Nov 19, 2021
75ec865
Remove zonehvac exhaust system fan objet but added a few more options.
jcyuan2020 Nov 19, 2021
5bd5f1d
Update input description document.
jcyuan2020 Nov 19, 2021
7db14be
NFP text updates.
jcyuan2020 Nov 24, 2021
538524f
NFP text updates.
jcyuan2020 Nov 24, 2021
b946cbe
Additional updates.
jcyuan2020 Nov 30, 2021
a6dde59
Output reporting update.
jcyuan2020 Dec 1, 2021
44fabb6
Update Airloop exhaust system and zone exhaust equipment calls.
jcyuan2020 Dec 1, 2021
1c2f23e
Revisions by Mike (MJW) on 2021-12-07.
jcyuan2020 Dec 7, 2021
bb2bfc6
Some minor revisons.
jcyuan2020 Dec 8, 2021
5902355
Updates using zone mixers, non-zone equipment, objects and idd etc.
jcyuan2020 Dec 10, 2021
e5c476f
A few minor changes.
jcyuan2020 Dec 11, 2021
17c3669
Some additional clean-ups.
jcyuan2020 Dec 11, 2021
397ab2d
Merge remote-tracking branch 'upstream/develop' into Dedicated_Exhaus…
jcyuan2020 Feb 8, 2022
7fffb05
Add the first air loop hvac new idd object.
jcyuan2020 Jan 11, 2022
a7d6c57
Add zone hvac new idd object.
jcyuan2020 Jan 11, 2022
18b2acf
Add zone equipment definitions for exhaust air systems.
jcyuan2020 Jan 13, 2022
ec3d3f1
Temporily use return path name space to develop exhaust system proces…
jcyuan2020 Jan 13, 2022
e088a94
Air loop exhaust processing frame draft using json helper.
jcyuan2020 Jan 13, 2022
f5fad77
Try the zone mixer validation.
jcyuan2020 Jan 13, 2022
f25a0ff
Minor change on availability manager processing, however, may need to…
jcyuan2020 Jan 14, 2022
88a41d2
Set it to a compilable state before further tuning.
jcyuan2020 Jan 14, 2022
7a597ae
Ready to add new files about exhaust air systems; first reset the ret…
jcyuan2020 Jan 15, 2022
06159db
Added two new files for exhaust air systems, together with eplus data…
jcyuan2020 Jan 15, 2022
60c3506
Clean up in the exhaust air system set up.
jcyuan2020 Jan 15, 2022
9abc827
Add required common includes for newly added files.
jcyuan2020 Jan 15, 2022
6dc8036
Processing part for zone exhaust inputs.
jcyuan2020 Jan 17, 2022
fac8120
One more variable for zone hvac input processing.
jcyuan2020 Jan 18, 2022
383f0b3
Revise the exhaust air system manager part.
jcyuan2020 Jan 18, 2022
67dd474
Add zone equipment data structure for holding processed information a…
jcyuan2020 Jan 18, 2022
c242149
Add schedule matching code lines.
jcyuan2020 Jan 18, 2022
0d9961e
Fan object processing.
jcyuan2020 Jan 18, 2022
7e5fed9
Use enum fan types.
jcyuan2020 Jan 18, 2022
6f5579f
Fan name processed into index.
jcyuan2020 Jan 18, 2022
b464c43
Warning messages to adequate levels.
jcyuan2020 Jan 18, 2022
e7c2f4f
Added a few more notes and examples to remind next development steps.
jcyuan2020 Jan 18, 2022
976254c
Added code to process zone mixers inputs for exhaust systems.
jcyuan2020 Jan 20, 2022
1f01d7f
Add node processing for zone hvac exhaust controls.
jcyuan2020 Jan 20, 2022
f516843
Update data zone equipment defs for exhaust air systems and zone exha…
jcyuan2020 Jan 20, 2022
431e266
Update avail manager treatment, may need a change in idd as well.
jcyuan2020 Jan 20, 2022
f59918f
Change idd for Airloop hvac exhaust system avaiability schedule.
jcyuan2020 Jan 21, 2022
5d92a3f
Update data zone equipment definitions for exhaust systems and zone e…
jcyuan2020 Jan 21, 2022
b0a120a
Update, store, and connect exhaust system and zone exhaust control in…
jcyuan2020 Jan 21, 2022
aa5b2a7
Correct the epjson field name for avail schedule change in idd.
jcyuan2020 Jan 21, 2022
f7f9901
Add processing of fan component model and adjust code for fan system …
jcyuan2020 Jan 21, 2022
7a94479
Draft unit test for input processing.
jcyuan2020 Jan 24, 2022
9c1e0b6
Exhaust system calculation draft and framework.
jcyuan2020 Jan 24, 2022
0b2e7cc
Add central exhaust fan name in the data struct to facilitate simulat…
jcyuan2020 Jan 25, 2022
20959f3
Add exhaust system fan calls draft.
jcyuan2020 Jan 25, 2022
35ba98c
Nodelist connection type correction.
jcyuan2020 Jan 25, 2022
5ea3bc4
Minor change in node and nodelist call.
jcyuan2020 Jan 26, 2022
ec04f7e
Fan simulation call parameters simplified.
jcyuan2020 Jan 26, 2022
bedc715
Set up zone hvac control calc sim structure.
jcyuan2020 Jan 26, 2022
ba8e699
Set up zone equipment calling structure and also add ways to handle f…
jcyuan2020 Jan 26, 2022
967076b
Add zone equipment simulation calls.
jcyuan2020 Jan 26, 2022
7e598a5
Add a global struct for input flag of zone hvac exhasut control.
jcyuan2020 Jan 26, 2022
06dbeb7
More on zone hvac exhaust control simulation procedures.
jcyuan2020 Jan 26, 2022
993be17
More about simulation structures.
jcyuan2020 Jan 26, 2022
a187c3a
Avaiability schedule impact notes and some procedure notes changes.
jcyuan2020 Jan 26, 2022
c56541c
Set output variables note.
jcyuan2020 Jan 27, 2022
9ad124a
Exhaust control calculation.
jcyuan2020 Jan 27, 2022
22e1f19
zone hvac exhaust control calc continued.
jcyuan2020 Jan 27, 2022
a0a9d2b
zone hvac exhaust control calc continue, min zone temp.
jcyuan2020 Jan 27, 2022
c5a1ba5
Balance exhaust etc as well previoius logic reorganized.
jcyuan2020 Jan 27, 2022
3e7e5f0
zone hvac exhaust control processing additional note for a warning sc…
jcyuan2020 Jan 27, 2022
5cdc87e
A few notes added.
jcyuan2020 Jan 28, 2022
380ce14
Subroutine comments clean up and removal.
jcyuan2020 Jan 28, 2022
99e9969
Place ExhaustAir and ZoneExhaustControl structs to exhaust air system…
jcyuan2020 Jan 28, 2022
d172827
IDD changes to add zone name field for zone hvac exhaust control.
jcyuan2020 Jan 28, 2022
b187d28
Zone name input processing added for zone hvac exhaust control.
jcyuan2020 Jan 28, 2022
ddcd00c
Changes made for testing.
jcyuan2020 Jan 31, 2022
639eaa5
Flow logic update.
jcyuan2020 Jan 31, 2022
11641d6
Revise node and nodelist processing.
jcyuan2020 Feb 1, 2022
41b2608
Add a new data loop node connection object enum type.
jcyuan2020 Feb 1, 2022
0d953a8
Revise node nodelist processing for zone hvac exhaust control.
jcyuan2020 Feb 1, 2022
5a532f9
Note for sizing report, variables experiment, and supply nodes verifi…
jcyuan2020 Feb 2, 2022
014df32
Add place holder for exhaust control flow rate autosizing function.
jcyuan2020 Feb 2, 2022
60a6a19
Update unit test for input (with some corrections as well).
jcyuan2020 Feb 2, 2022
f0673d5
Create mapping for the mixer branch node and zone number.
jcyuan2020 Feb 3, 2022
2c0fb2c
Use map for zone num and mixer branches instead.
jcyuan2020 Feb 3, 2022
a15305a
Zone exhaust flow autosizing.
jcyuan2020 Feb 3, 2022
8307d98
Link zone exhaust control auto sizing.
jcyuan2020 Feb 3, 2022
9e949d0
exhaust control flow sizing minor change; and added supply node check…
jcyuan2020 Feb 3, 2022
d7849b4
Add object list property to zone mixer field in idd.
jcyuan2020 Feb 4, 2022
f23e923
Fix exhaust control manager struct initilization.
jcyuan2020 Feb 4, 2022
03a23ef
Add protection mechanisim to make sure fan system model is process fi…
jcyuan2020 Feb 4, 2022
5741797
Fixed fan system model input process; and also fixed a bug in coting …
jcyuan2020 Feb 4, 2022
b1a4e61
Output variables set up for first batch experimented.
jcyuan2020 Feb 8, 2022
77c3b5d
Add test file.
jcyuan2020 Feb 8, 2022
3e988f6
Update follow supply flow calculations.
jcyuan2020 Feb 8, 2022
e982eed
Doc air loop zone mixer change.
jcyuan2020 Feb 8, 2022
7c13b3a
Doc air loop exhaust system.
jcyuan2020 Feb 8, 2022
4b6bf96
Doc zone havc exhaust control.
jcyuan2020 Feb 8, 2022
9a235d5
Update zone exhaust control flow calc.
jcyuan2020 Feb 8, 2022
c4a48d4
Some early clean up on exhaust air manager.
jcyuan2020 Feb 8, 2022
9188448
Unit test preset object items.
jcyuan2020 Feb 8, 2022
7298c23
Zone Mixer processing simplify and clean up batch 1.
jcyuan2020 Feb 8, 2022
dacc913
Clean up batch 2.
jcyuan2020 Feb 8, 2022
4da0c4d
Some zone exhaust calculation logic adjustments and clean up batch 3.
jcyuan2020 Feb 8, 2022
802becb
Clear state for Exhaust control system mrg state variable.
jcyuan2020 Feb 8, 2022
03ea7fd
Remove C style comments.
jcyuan2020 Feb 8, 2022
c773c33
Correct output fan energy for component type fan, also stop using usi…
jcyuan2020 Feb 9, 2022
88302d5
C Lang formatting.
jcyuan2020 Feb 9, 2022
044ac8b
C Lang formatting again.
jcyuan2020 Feb 9, 2022
337d846
Unit test update 1.
jcyuan2020 Feb 10, 2022
2482ec1
fix a mixer processing bug after the simplification.
jcyuan2020 Feb 10, 2022
d8ee740
Unit test update 2.
jcyuan2020 Feb 10, 2022
8726c84
Remove more using statement.
jcyuan2020 Feb 10, 2022
6661496
Add volumetric flow rate output variable for central exhaust outputs.
jcyuan2020 Feb 10, 2022
6c46061
Mixer sizing flow update for fan; also use std air condition for fan …
jcyuan2020 Feb 10, 2022
0054755
Exhaust system sizing hookup.
jcyuan2020 Feb 10, 2022
972fe7c
Correct exhaust system sizing function declaration.
jcyuan2020 Feb 10, 2022
19065ef
C Lang formatting.
jcyuan2020 Feb 10, 2022
756b02b
IDD change per MJW comments except the exhaust system avail schedule.
jcyuan2020 Feb 10, 2022
b787e30
Clean up batch 4.
jcyuan2020 Feb 10, 2022
53ca08c
IDD change to remove exhaust system availability schedule input.
jcyuan2020 Feb 11, 2022
4b0d164
Changes related to central exhaust fan avail schedule.
jcyuan2020 Feb 11, 2022
00a33f0
C Lang again.
jcyuan2020 Feb 11, 2022
2a43026
Use standard density for volume flow rate calculation [decent_ci_skip…
jcyuan2020 Feb 11, 2022
74e55fd
Corrdinate exhuast branches and centrla exh fan flows skeleton.[decen…
jcyuan2020 Feb 11, 2022
328dec6
Exhaust system simulation flow feedback logic set up.
jcyuan2020 Feb 14, 2022
6d4e904
Set up Comp Sets for component fans.
jcyuan2020 Feb 14, 2022
a4b453d
Clean up mapping by removing the struct not used.
jcyuan2020 Feb 14, 2022
bb648a3
Zone exhaust flows grouping by zone skeleton, for balance and unbalan…
jcyuan2020 Feb 14, 2022
293a085
Fix a code line that should have been commented out.
jcyuan2020 Feb 15, 2022
d4ec407
Update zone exhaust control balance and unbalanced flow logic.
jcyuan2020 Feb 15, 2022
8c28b32
Collect balanced and unbalanced flows at zone level.
jcyuan2020 Feb 15, 2022
84979aa
Scale balanced and unbalanced flow based on reassignemnt ratio as well.
jcyuan2020 Feb 15, 2022
c79b440
Changes in central fan simplified sizing, and also zone temperature v…
jcyuan2020 Feb 15, 2022
46e020f
Controlled zone number from zone number, plus C lang fomratting.
jcyuan2020 Feb 15, 2022
312b26b
Exhaust fan sizing short cut revisions [decent_ci_skip] [skip actions].
jcyuan2020 Feb 15, 2022
0d9c701
Clean up batch 5 [decent_ci_skip] [skip actions].
jcyuan2020 Feb 15, 2022
eb2390b
Unit test move the exhaust system unit test to a separate new file [d…
jcyuan2020 Feb 15, 2022
60d4132
Unit test adjustment for removed idd field [decent_ci_skip] [skip act…
jcyuan2020 Feb 15, 2022
840a656
Fix zone name json field name change.
jcyuan2020 Feb 15, 2022
a31b00a
Unit test working fine again.
jcyuan2020 Feb 15, 2022
a34e7af
Revise test file slightly to comply with recent idd field change [dec…
jcyuan2020 Feb 15, 2022
a0a0663
Clean up batch 6 [decent_ci_skip] [skip actions].
jcyuan2020 Feb 15, 2022
a053dd3
Add calls to check supply list nodes [decent_ci_skip] [skip actions].
jcyuan2020 Feb 15, 2022
99e0ced
Address comment batch 1 EnergyPlus namespace [decent_ci_skip] [skip a…
jcyuan2020 Feb 15, 2022
c37eea6
Address comments batch 2 - function parameters change from ref type t…
jcyuan2020 Feb 15, 2022
9560310
Warnings messages changes at a few places.
jcyuan2020 Feb 16, 2022
8a6df9a
Address build warnings about redudant variables, function parameters,…
jcyuan2020 Feb 16, 2022
f29b027
Add current volume flow rate output variable.
jcyuan2020 Feb 16, 2022
78cbad4
Revised testfile idf file by removing several unused schedules.
jcyuan2020 Feb 16, 2022
8baeb82
Address comments batch 3 - idd info corrections.
jcyuan2020 Feb 16, 2022
321fd9f
Address comments 4 - Add connection type name strings to data loop node.
jcyuan2020 Feb 16, 2022
7e3cf6a
Address comments 5 - use predefined const for the small flow rate value.
jcyuan2020 Feb 17, 2022
783d238
Address comment 6 -- using exhaust system reference shortcut.
jcyuan2020 Feb 17, 2022
365ae53
Address comments 6 -- using exhaust system reference shortcut another…
jcyuan2020 Feb 17, 2022
3fe4007
Address comments 7 -- using inlet and oulet nodes shortcuts for zone …
jcyuan2020 Feb 17, 2022
96df8c2
Add central fan sizing conditions and eio report items.
jcyuan2020 Feb 17, 2022
53df98c
Output report updates for two existing heat rejection related output …
jcyuan2020 Feb 17, 2022
a64d0ae
Output report updates for two existing heat rejection variables, mino…
jcyuan2020 Feb 17, 2022
954cd93
IDD texts minor updates again.
jcyuan2020 Feb 17, 2022
5341cb0
Address comments 8 - use format rather than string concatenation.
jcyuan2020 Feb 17, 2022
9c0ff7a
Fan sizing report value minor correction using vol flow rate vlaues f…
jcyuan2020 Feb 17, 2022
7991ce4
Fix a json field name typo.
jcyuan2020 Feb 18, 2022
69e1356
Fix output variable again, temporarily leave the current density out.
jcyuan2020 Feb 18, 2022
f4f96ad
Fix an issue in update zone exhaust flows.
jcyuan2020 Feb 18, 2022
9227ddb
Add functions and calls to handle air loop hvac zone mixer in exhaust…
jcyuan2020 Feb 18, 2022
9664bd2
Add Air loop havc exhasut system usage as one of the valid usages in …
jcyuan2020 Feb 18, 2022
607e2f4
Unit test string correction and some updates.
jcyuan2020 Feb 18, 2022
ef120a2
Current density based volume flow rate output put variable calcualtio…
jcyuan2020 Feb 18, 2022
c307aac
Current density based volume flow rate output put variable calcualtio…
jcyuan2020 Feb 18, 2022
20ecb07
Address building warnings again.
jcyuan2020 Feb 18, 2022
f6e07ec
Output report updates for two existing heat rejection variables, addr…
jcyuan2020 Feb 18, 2022
fc7cf96
Test idf file updated with orders and updated description texts.
jcyuan2020 Feb 18, 2022
e4b37ce
Temporarily change the check supply note function to zeor parameter t…
jcyuan2020 Feb 18, 2022
c5361c5
Address comments 9 -- code simplification for exhaust system haaving …
jcyuan2020 Feb 18, 2022
ea8e38f
Address one more int type build warning.
jcyuan2020 Feb 18, 2022
1403e55
Merge remote-tracking branch 'upstream/develop' into Dedicated_Exhaus…
jcyuan2020 Feb 18, 2022
62d4fb7
IORef TeX document update. [decent_ci_skip] [skip actions]
jcyuan2020 Feb 18, 2022
7d99c98
Fan flow rate output variables names minor corrections in the code.
jcyuan2020 Feb 18, 2022
de2de94
Add a new entry to the transition output rules file.
jcyuan2020 Feb 18, 2022
5f39040
Addressing comments 10 - remove an unnecessary exhaust system array s…
jcyuan2020 Feb 19, 2022
425f001
Keep central fan name string recorded as well.
jcyuan2020 Feb 19, 2022
80661f5
Unit test update to test more input scenarios.
jcyuan2020 Feb 19, 2022
0e9d011
Addressing comments 11 -- get input flag instead of allocation().
jcyuan2020 Feb 20, 2022
b0da8af
Output report updates for the existing heat relief variable, remove …
jcyuan2020 Feb 21, 2022
73bbe25
IORef Documentation update.
jcyuan2020 Feb 21, 2022
db76cc8
Resolve merge conflict when merging upstream develop; took contents f…
jcyuan2020 Feb 21, 2022
32fefa7
Add another SetupCompSets.
jcyuan2020 Feb 21, 2022
e4c7c0b
Clean up batch 7.
jcyuan2020 Feb 21, 2022
964177d
Resolved merge conflic again while merging in most recent upstream de…
jcyuan2020 Feb 21, 2022
3527b95
Add EIO sizing report change to the Output Changes md file.
jcyuan2020 Feb 22, 2022
53b8276
IDD change by adding min-fields for the exhaust system block.
jcyuan2020 Feb 22, 2022
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
Binary file added design/FY2021/Dedicated_Airstream.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
418 changes: 418 additions & 0 deletions design/FY2021/NFP-Dedicated_Exhaust_Fans.md

Large diffs are not rendered by default.

118 changes: 117 additions & 1 deletion doc/input-output-reference/src/overview/group-air-path.tex
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,122 @@ \subsubsection{Inputs}\label{inputs-3-002}
Zone Supply Air Splitter; ! Component 2 Name
\end{lstlisting}

\subsection{AirLoopHVAC:ExhaustSystem}\label{airloophvacexhaustsystem}

The AirLoopHVAC:ExhaustSystem and ZoneHVAC:ExhaustControl objects are used to describe the way that the exhaust air streams are configured. These objects provide a way for the exhaust air streams from multiple zones to be rerouted and recombined to form a new central exhausts. The exhaust system is composed of a central exhaust fan and a zone mixer).

\subsubsection{AirLoopHVAC:ExhaustSystem Input Fields}

The AirLoopHVAC:ExhaustSystem will take the following input fields:

\paragraph{Field: Name}

The name of the exhaust system.

\paragraph{Field: Availability Schedule}

This is the availability manager list name for the exhaust system.

\paragraph{Field: AirLoopHVAC:ZoneMixer Name}

This is the name of the AirLoopHVAC:ZoneMixer object that connects the exhaust air streams from multiple zones. The zone mixer will have the inlet nodes for the exhaust system defined; and typically each inlet node must be the outlet node of a ZoneHVAC:ExhaustControl object.

\paragraph{Field: Fan Object Type}

This is the type of fan object for the central exhaust fan. The available choices are Fan:SystemModel or Fan:ComponentModel.

\paragraph{Field: Fan Name}

This is a required field for the name of the central exhaust fan.

An example of the AirLoopHVAC:ExhaustSystem input object is like this:

\begin{lstlisting}

AirLoopHVAC:ExhaustSystem,
Central Exhaust 1, !- Name
Exhaust Avail List, !- Availability Manager List Name
AirLoopExhaustMixer1, !- AirLoopHVAC:ZoneMixer Name
Fan:SystemModel, !- Fan Object Type
CentralExhaustFan1; !- Fan Name

\end{lstlisting}

\subsection{ZoneHVAC:ExhaustControl}

The input fields for the ZoneHVAC:ExhaustControl object are as follows.

\subsubsection{Inputs}

\paragraph{Field: Name}

This is the name of the ZoneHVAC:ExhaustControl.

\paragraph{Field: Availability Schedule Name}

This is the availability schedule name of the ZoneHVAC:ExhaustControl equipment. A schedule value of zero means off, and >0 means on. If the connected AirloopHVAC:ExhaustSystem is on, then this schedule may be used to turn on (or off) the ZoneHVAC:ExhaustControl system. If the connected AirloopHVAC:ExhaustSystem is off, then this ZoneHVAC:ExhaustControl system will be off, and this schedule will be ignored.

\paragraph{Zone Name}

The name of the zone that the exhaust is located within.

\paragraph{Field: Inlet Node Name}

This is the inlet node name of the ZoneHVAC:ExhaustControl object. This should be an exhaust node of the zone.

\paragraph{Field: Outlet Node Name}

This is the outlet node name of the ZoneHVAC:ExhaustControl object. This node must be connected to an AirLoopHVAC:ExhaustSystem object as an inlet node.

\paragraph{Field: Design Flow Rate {m3/s}}

This numerical field is the design exhaust flow rate of the exhaust system in [m3/s]. This field could be autosized. The default is autosize.

\paragraph{Field: Flow Control Type}

This field is the control type on how the exhaust flows are controlled. The available choices are: Scheduled or FollowSupply. Scheduled means that the target exhaust flow rate will be the Design Flow Rate times the Flow Fraction Schedule. FollowSupply means that the target exhaust flow rate will be the current total flow rate at the node(s) specified in Supply Node or NodeList Name times the Flow Fraction Schedule. For both control types, if the central exhaust fan is not able to meet the total target exhaust flow rate for all of its inlets, then the flow rate will be reduced proportionally to match the available fan flow.

\paragraph{Field: Flow Fraction Schedule Name}

This is the schedule name for the exhaust flow fraction. If left empty, the default value is 1.0. This schedule is only applied for Flow Control Type - Schedules.

\paragraph{Field: Supply Node or NodeList Name}

This is the supply air node or nodelist name used for the \emph{FollowSupply} flow control type.

\paragraph{Field: Minimum Zone Temperature Limit Schedule Name}

This will be the minimum zone temperature limit schedule name. It will be used to shut down the exhaust flow rate to the Minimum Flow Fraction Schedule value if the zone temperature get below this limit.

\paragraph{Field: Minimum Flow Fraction Schedule Name}

This is the schedule name for the minimum exhaust flow fraction. If left empty, the default value would be 1.0.

\paragraph{Field: Balanced Exhaust Fraction Schedule Name}

This field is optional. If it is not used, then all the exhaust air flow is assumed to be unbalanced by any simple air flows, such as infiltration, ventilation, or zone mixing. Unbalanced exhaust is then modeled as being provided by the outdoor air system in the central air system. The modeling of unbalanced will reduce the flow rates at the zone’s return air node by the flow rate that is being exhausted and will ensure that the outdoor air flow rate is sufficient to serve the exhaust. If this field is used, then enter the name of a schedule with fractional values between 0.0 and 1.0, inclusive. This fraction is applied to the exhaust fan flow rate and the model tracks the portion of the exhaust that is balanced. Balanced exhaust is then modeled as being provided by simple airflows and does not impact the central air system return air or outdoor air flow rates. For example, if a kitchen zone with an exhaust fan is designed to draw half of its make up air from a neighboring dining room and the other half from the outdoor air system, then a schedule value of 0.5 could be used here. This input field must be blank when the zone air flow balance is enforced. If user specifies a schedule and zone air flow balance is enforced, then EnergyPlus throws a warning error message, ignores the schedule and simulation continues.

An example of the ZoneHVAC:ExhaustControl input object is like this:

\begin{lstlisting}

ZoneHVAC:ExhaustControl,
Zone2 Exhaust System, !-Name
HVACOperationSchd, !- Availability Schedule Name
Zone2, !- Zone Name
Zone2 Exhaust Node, !- Inlet Node Name
Zone2 ExhaustSystem Node, !- Outlet Node Name
0.1, !- Design Flow Rate {m3/s}
Scheduled, !- Flow Control Type (Scheduled, FollowSupply, Other?)
Zone2 Exhaust Flow Sched, !- Flow Fraction Schedule Name
, !- Supply Node or NodeList Name (used with FollowSupply control type)
, !- System Availability Manager Name
, !- Minimum Zone Temperature Limit Schedule Name
Zone2 Min Exhaust Flow Sched, !- Minimum Flow Fraction Schedule Name
FlowBalancedSched; !- Balanced Exhaust Fraction Schedule Name

\end{lstlisting}

\subsection{AirLoopHVAC:ZoneSplitter}\label{airloophvaczonesplitter}

The AirLoopHVAC:ZoneSplitter is a component that splits airflow from a single inlet to multiple outlets. This component must be referenced in an \hyperref[airloophvacsupplypath]{AirLoopHVAC:SupplyPath} object. The input contains only node connection information.
Expand Down Expand Up @@ -251,7 +367,7 @@ \subsubsection{Inputs}

\subsection{AirLoopHVAC:ZoneMixer}\label{airloophvaczonemixer}

The AirLoopHVAC:ZoneMixer takes the air from multiple inlets and mixes the streams together to be sent out of a single outlet node. This is a simple process of summing flows and averaging the air properties. This compoment may be part of an air loop return path or part of an induction terminal unit. When used as a return air mixer, this component must be listed in an \hyperref[airloophvacreturnpath]{AirLoopHVAC:ReturnPath} object, and the inlets may be zone return air nodes or \hyperref[airloophvacreturnplenum]{AirLoopHVAC:ReturnPlenum} outlet nodes. When used in an induction terminal unit (ref. \hyperref[airterminalsingleductseriespiureheat]{AirTerminal:SingleDuct:SeriesPIU:Reheat}, \hyperref[airterminalsingleductparallelpiureheat]{AirTerminal:SingleDuct:ParallelPIU:Reheat}, and \hyperref[airterminalsingleductconstantvolumefourpipeinduction]{AirTerminal:SingleDuct:ConstantVolume:FourPipeInduction}), one inlet node is the supply (primary) air inlet from the central air handler, and the second inlet node is the induced (secondary) air inlet. These node names should match equivalent node names in the terminal unit.
The AirLoopHVAC:ZoneMixer takes the air from multiple inlets and mixes the streams together to be sent out of a single outlet node. This is a simple process of summing flows and averaging the air properties. This component may be part of an air loop return path, an air loop exhaust system, or part of an induction terminal unit. When used as a return air mixer, this component must be listed in an \hyperref[airloophvacreturnpath]{AirLoopHVAC:ReturnPath} object, and the inlets may be zone return air nodes or \hyperref[airloophvacreturnplenum]{AirLoopHVAC:ReturnPlenum} outlet nodes. When used as an exhaust air mixer, this component must be listed in an \hyperref[airloophvacexhaustsystem]{AirLoopHVAC:ExhaustSystem} object, and the inlets may be zone exhaust air nodes. When used in an induction terminal unit (ref. \hyperref[airterminalsingleductseriespiureheat]{AirTerminal:SingleDuct:SeriesPIU:Reheat}, \hyperref[airterminalsingleductparallelpiureheat]{AirTerminal:SingleDuct:ParallelPIU:Reheat}, and \hyperref[airterminalsingleductconstantvolumefourpipeinduction]{AirTerminal:SingleDuct:ConstantVolume:FourPipeInduction}), one inlet node is the supply (primary) air inlet from the central air handler, and the second inlet node is the induced (secondary) air inlet. These node names should match equivalent node names in the terminal unit.

\subsubsection{Inputs}

Expand Down
80 changes: 80 additions & 0 deletions idd/Energy+.idd.in
Original file line number Diff line number Diff line change
Expand Up @@ -48608,6 +48608,64 @@ ZoneHVAC:AirDistributionUnit,
\type object-list
\object-list DesignSpecificationAirTerminalSizingName

ZoneHVAC:ExhaustControl,
\memo Defines a controlled exhaust flow from a zone which finally feeds into
\memo one of AirloopHVAC:ZoneMixer's inlets, which are part of an AirloopHVAC:ExhaustSystem.
Copy link
Contributor

Choose a reason for hiding this comment

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

an AirloopHVAC:ZoneMixer inlet which is part of an AirloopHVAC;Exhuast system.

Copy link
Contributor

Choose a reason for hiding this comment

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

The first "AirloopHVAC:ExhaustSystem" should be "AirloopHVAC:ZoneMixer" in the memo.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Texts corrected.

A1 , \field Name
\required-field
A2 , \field Availability Schedule Name
\note Availability schedule name for this exhaust system. Schedule value > 0 means it is available.
\note If this field is blank, the exhaust system is always available. If the attached
\note AirloopHVAC:ExhaustSystem is off, then the flow will be zero.
\type object-list
\object-list ScheduleNames
A3 , \field Zone Name
Copy link
Contributor

Choose a reason for hiding this comment

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

\required-field

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Added.

\required-field
\note Zone the exhaust inlet node is part of
\type object-list
\object-list ZoneNames
A4 , \field Inlet Node Name
Copy link
Contributor

Choose a reason for hiding this comment

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

...exhaust. Must be a zone exhaust node.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done.

\note Inlet node name for the exhaust. Must be a zone exhaust node.
\required-field
\type node
A5 , \field Outlet Node Name
\note Outlet node name for the exhaust
\required-field
\type node
N1 , \field Design Exhaust Flow Rate
\autosizable
\units m3/s
\minimum> 0
\default autosize
A6 , \field Flow Control Type
Copy link
Contributor

Choose a reason for hiding this comment

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

Control type of the zone exhaust flow

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done.

\note Control type of the zone exhaust flow
\type choice
\key Scheduled
\key FollowSupply
\default Scheduled
Copy link
Member

Choose a reason for hiding this comment

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

Is it worth putting min-fields on these new objects?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thanks! I think a min-fields 4 would be helpful for the AirLoopHVAC:ExhaustSystem one, which I will add to it. The ZoneHVAC:ExhaustControl might benefit from some number as well but with only min-fields numbers it is not fully defined--there would be multiple different ways to meet that min fields number but then but still be insufficient--so for this one I would like to pass.

A7 , \field Exhaust Flow Fraction Schedule Name
Copy link
Contributor

Choose a reason for hiding this comment

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

Do we want to apply this schedule to both control types? For FollowSupply, the flow would be Supply Node flow * Schedule value.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, for both types.

\note Schedule name of the exhaust flow fraction. Used only with Scheduled control type.
\note If this field is blank, the flow fraction is always 1.0.
\type object-list
\object-list ScheduleNames
A8 , \field Supply Node or NodeList Name
\note Used only with FollowSupply control type.
\type node
A9, \field Minimum Zone Temperature Limit Schedule Name
Copy link
Contributor

Choose a reason for hiding this comment

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

\note Schedule name . . . . . Limit in deg. C
\note If this field is blank, there is no limit.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Text modified.

\note Schedule name of the Minimum Zone Temperature Limit in degree Celsius
Copy link
Contributor

Choose a reason for hiding this comment

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

Celcius --> Celsius

Copy link
Contributor Author

Choose a reason for hiding this comment

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

These texts are now corrected.

\note If this field is blank, there is no limit.
\type object-list
\object-list ScheduleNames
Copy link
Contributor

Choose a reason for hiding this comment

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

... flow fraction. Applied when the zone temperature falls below the Minimum Zone Temperature Limit.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Text added.

A10, \field Minimum Exhaust Flow Fraction Schedule Name
\note Schedule name of the minimum exhaust flow fraction.
\note Applied when the zone temperature falls below the Minimum Zone Temperature Limit.
Copy link
Contributor

Choose a reason for hiding this comment

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

A tab character slipped in here.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Corrected. Thanks!

\type object-list
Copy link
Contributor

Choose a reason for hiding this comment

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

... of the Balanced Exhaust Fraction.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Text corrected.

\object-list ScheduleNames
A11; \field Balanced Exhaust Fraction Schedule Name
\note Schedule name of the Balanced Exhaust Fraction
\type object-list
\object-list ScheduleNames

\group Zone HVAC Equipment Connections

!*****************ZONE EQUIPMENT SPECIFICATION*********************
Expand Down Expand Up @@ -67194,6 +67252,28 @@ AirLoopHVAC:ReturnPath,
\type object-list
\object-list ReturnPathComponentNames
Copy link
Contributor

Choose a reason for hiding this comment

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

systems --> system

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done.


AirLoopHVAC:ExhaustSystem,
\memo Defines a general exhaust system with a central exhaust fan drawing from one or more
\memo ZoneHVAC:ExhaustControl outlet nodes.
A1 , \field Name
Copy link
Contributor

Choose a reason for hiding this comment

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

At one point in our (many) discussions, we discussed eliminating this field, because the fan has it's own schedule.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This field now removed.

\required-field
\note Name of the exhaust system
A2 , \field Zone Mixer Name
\required-field
\type object-list
Copy link
Contributor

Choose a reason for hiding this comment

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

\field Zone Mixer Name
To be consistent with other similar fields (e.g. AirTerminal:SingleDuct:ConstantVolume:FourPipeInduction).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Text updated.

\note The name of the exhaust system AirLoopHVAC:ZoneMixer
\object-list ZoneMixers
A3 , \field Fan Object Type
\required-field
\type choice
\key Fan:SystemModel
\key Fan:ComponentModel
A4 ; \field Fan Name
\required-field
\type object-list
\object-list FansSystemModel
\object-list FansComponentModel

AirLoopHVAC:DedicatedOutdoorAirSystem,
\extensible:1 Just duplicate last field and comments (changing numbering, please)
\min-fields 11
Expand Down
2 changes: 2 additions & 0 deletions src/EnergyPlus/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,8 @@ set(SRC
EvaporativeCoolers.hh
EvaporativeFluidCoolers.cc
EvaporativeFluidCoolers.hh
ExhaustAirSystemManager.cc
ExhaustAirSystemManager.hh
ExteriorEnergyUse.cc
ExteriorEnergyUse.hh
ExternalInterface.cc
Expand Down
1 change: 1 addition & 0 deletions src/EnergyPlus/Data/CommonIncludes.hh
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@
#include <EnergyPlus/ElectricPowerServiceManager.hh>
#include <EnergyPlus/EvaporativeCoolers.hh>
#include <EnergyPlus/EvaporativeFluidCoolers.hh>
#include <EnergyPlus/ExhaustAirSystemManager.hh>
#include <EnergyPlus/ExteriorEnergyUse.hh>
#include <EnergyPlus/ExternalInterface.hh>
#include <EnergyPlus/FanCoilUnits.hh>
Expand Down
4 changes: 4 additions & 0 deletions src/EnergyPlus/Data/EnergyPlusData.cc
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,8 @@ EnergyPlusData::EnergyPlusData()
this->dataReportFlag = std::make_unique<ReportFlagData>();
this->dataResultsFramework = std::make_unique<ResultsFrameworkData>();
this->dataRetAirPathMrg = std::make_unique<ReturnAirPathMgr>();
this->dataExhAirSystemMrg = std::make_unique<ExhaustAirSystemMgr>();
this->dataExhCtrlSystemMrg = std::make_unique<ExhaustControlSystemMgr>();
this->dataRoomAirMod = std::make_unique<RoomAirModelData>();
this->dataRoomAirModelMgr = std::make_unique<RoomAirModelManagerData>();
this->dataRoomAirModelTempPattern = std::make_unique<RoomAirModelUserTempPatternData>();
Expand Down Expand Up @@ -485,6 +487,8 @@ void EnergyPlusData::clear_state()
this->dataReportFlag->clear_state();
this->dataResultsFramework->clear_state();
this->dataRetAirPathMrg->clear_state();
this->dataExhAirSystemMrg->clear_state();
this->dataExhCtrlSystemMrg->clear_state();
this->dataRoomAirMod->clear_state();
this->dataRoomAirModelMgr->clear_state();
this->dataRoomAirModelTempPattern->clear_state();
Expand Down
4 changes: 4 additions & 0 deletions src/EnergyPlus/Data/EnergyPlusData.hh
Original file line number Diff line number Diff line change
Expand Up @@ -242,6 +242,8 @@ struct ReportCoilSelectionData;
struct ReportFlagData;
struct ResultsFrameworkData;
struct ReturnAirPathMgr;
struct ExhaustAirSystemMgr;
struct ExhaustControlSystemMgr;
struct RoomAirModelAirflowNetworkData;
struct RoomAirModelData;
struct RoomAirModelManagerData;
Expand Down Expand Up @@ -502,6 +504,8 @@ struct EnergyPlusData : BaseGlobalStruct
std::unique_ptr<ReportFlagData> dataReportFlag;
std::unique_ptr<ResultsFrameworkData> dataResultsFramework;
std::unique_ptr<ReturnAirPathMgr> dataRetAirPathMrg;
std::unique_ptr<ExhaustAirSystemMgr> dataExhAirSystemMrg;
std::unique_ptr<ExhaustControlSystemMgr> dataExhCtrlSystemMrg;
std::unique_ptr<RoomAirModelAirflowNetworkData> dataRoomAirflowNetModel;
std::unique_ptr<RoomAirModelData> dataRoomAirMod;
std::unique_ptr<RoomAirModelManagerData> dataRoomAirModelMgr;
Expand Down
3 changes: 3 additions & 0 deletions src/EnergyPlus/DataLoopNode.hh
Original file line number Diff line number Diff line change
Expand Up @@ -384,6 +384,7 @@ namespace DataLoopNode {
ZoneHVACEnergyRecoveryVentilator,
ZoneHVACEquipmentConnections,
ZoneHVACEvaporativeCoolerUnit,
ZoneHVACExhaustControl,
Copy link
Contributor

Choose a reason for hiding this comment

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

@jcyuan2020 I found the problem that is causing the GetParentData warnings. You need to add this new type to the ConnectionObjectTypeNames and ConnectionObjectTypeNamesUC string arrays.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thanks! The string values has been added to the two places.

ZoneHVACForcedAirUserDefined,
ZoneHVACFourPipeFanCoil,
ZoneHVACHighTemperatureRadiant,
Expand Down Expand Up @@ -645,6 +646,7 @@ namespace DataLoopNode {
"ZoneHVAC:EnergyRecoveryVentilator",
"ZoneHVAC:EquipmentConnections",
"ZoneHVAC:EvaporativeCoolerUnit",
"ZoneHVAC:ExhaustControl",
"ZoneHVAC:ForcedAir:UserDefined",
"ZoneHVAC:FourPipeFanCoil",
"ZoneHVAC:HighTemperatureRadiant",
Expand Down Expand Up @@ -905,6 +907,7 @@ namespace DataLoopNode {
"ZONEHVAC:ENERGYRECOVERYVENTILATOR",
"ZONEHVAC:EQUIPMENTCONNECTIONS",
"ZONEHVAC:EVAPORATIVECOOLERUNIT",
"ZONEHVAC:EXHAUSTCONTROL",
"ZONEHVAC:FORCEDAIR:USERDEFINED",
"ZONEHVAC:FOURPIPEFANCOIL",
"ZONEHVAC:HIGHTEMPERATURERADIANT",
Expand Down
9 changes: 9 additions & 0 deletions src/EnergyPlus/DataZoneEquipment.hh
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@
#include <EnergyPlus/DataGlobals.hh>
#include <EnergyPlus/DataHVACSystems.hh>
#include <EnergyPlus/EnergyPlus.hh>
#include <EnergyPlus/ExhaustAirSystemManager.hh>
#include <EnergyPlus/OutputProcessor.hh>
#include <EnergyPlus/SystemReports.hh>

Expand Down Expand Up @@ -512,6 +513,8 @@ struct DataZoneEquipmentData : BaseGlobalStruct
int GetZoneEquipmentDataFound = 0;
int NumSupplyAirPaths = 0;
int NumReturnAirPaths = 0;
int NumExhaustAirSystems = 0;
int NumZoneExhaustControls = 0;
bool ZoneEquipInputsFilled = false;
bool ZoneEquipSimulatedOnce = false;
int NumOfZoneEquipLists = 0;
Expand All @@ -526,13 +529,17 @@ struct DataZoneEquipmentData : BaseGlobalStruct
Array1D<DataZoneEquipment::EquipList> ZoneEquipList;
Array1D<DataZoneEquipment::SupplyAir> SupplyAirPath;
Array1D<DataZoneEquipment::ReturnAir> ReturnAirPath;
Array1D<ExhaustAirSystemManager::ExhaustAir> ExhaustAirSystem;
Array1D<ExhaustAirSystemManager::ZoneExhaustControl> ZoneExhaustControlSystem; // 2022-01: maybe a better name?

void clear_state() override
{
this->GetZoneEquipmentDataErrorsFound = false;
this->GetZoneEquipmentDataFound = 0;
this->NumSupplyAirPaths = 0;
this->NumReturnAirPaths = 0;
this->NumExhaustAirSystems = 0;
this->NumZoneExhaustControls = 0;
this->ZoneEquipInputsFilled = false;
this->ZoneEquipSimulatedOnce = false;
this->NumOfZoneEquipLists = 0;
Expand All @@ -547,6 +554,8 @@ struct DataZoneEquipmentData : BaseGlobalStruct
this->ZoneEquipList.deallocate();
this->SupplyAirPath.deallocate();
this->ReturnAirPath.deallocate();
this->ExhaustAirSystem.deallocate();
this->ZoneExhaustControlSystem.deallocate();
}
};

Expand Down
Loading