-
Notifications
You must be signed in to change notification settings - Fork 398
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
Waterside economizer coil new feature CoilSystem:Cooling:Water #8466
Changes from 116 commits
519ee99
1e69bf9
00d06e9
430e4e1
4d89541
f62cc1d
787c0de
14f0579
68bfdfb
ba514ac
04207c7
8945d7c
a70fad4
9cd9050
2108ebb
6d0f6b5
f0caea3
f37b158
d37fb5e
c75d226
c60dbf6
b8d55dc
3be6ab6
7eda95f
8e66450
f06a763
d71bc3e
031da74
1b76858
497975e
d82cf92
84c75de
6236ec5
59b261e
66a2c5a
48b4902
ab99800
d98fa57
0cd8b28
8e2c9c7
36afab5
7f4e84a
8732a75
0719a63
b7f06b0
3537188
879122c
e62dcec
31c8231
bdfd056
ee0f85c
de4dd49
ec430de
3128a06
684edbe
aca266e
0b12497
e955799
e6e3f3e
7c48ae3
05a3a0a
2831cf4
cf16d65
9ad2de2
7908cf7
d9f6566
4a47666
c3fd044
26b5896
d7dfc16
38c6963
4306928
885716e
8f513a1
406129e
b43d5f0
3121854
74a9663
0ce154a
9b3c608
399177d
95f58cf
384e00b
d7b866c
5738afc
fa72d83
a980719
f1f832f
80e336d
d6dc892
4762ab6
3844933
e73ca18
255cd4d
f735ebd
e5e6f7e
80890fe
4fc9a43
3f52ac6
8478388
6bb9c50
e89268f
efbdad1
47a3fcf
852c0f2
3372813
6dd5e42
d4cb48f
3893cd8
9c452f2
2b5b112
55b4a5e
99e3038
a8e373d
a47bbaf
5985882
4587f34
61f7eb9
9c68aae
cc2d00b
ce6225e
c434a08
5945efc
7a01583
39aca34
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -534,6 +534,12 @@ \subsubsection{Coil Depth}\label{coil-depth} | |
\emph{Depth\(_{coil}\)} = \emph{Depth\(_{tube\, spacing}\)} * \emph{N\(_{tube\, rows}\)} | ||
\end{equation} | ||
|
||
|
||
\subsection{CoilSystem:Cooling:Water}\label{coilsystemcoolingwater} | ||
|
||
The sizing of water cooling coil componets wrapped in this coil system is done in function \textit{SizeWaterCoil} of module \textit{WaterCoils}. See componment sizing sections for \textit{Coil:Cooling:Water} and \textit{Coil:Cooling:Water:detailedGeometry}. | ||
|
||
|
||
\subsection{Coil:Cooling:WaterToAirHeatPump:EquationFit Sizing}\label{coilcoolingwatertoairheatpumpequationfit-sizing} | ||
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. Documenting and pointing that sizing is done at the component level. |
||
|
||
The sizing is done in subroutine \emph{SizeHVACWaterToAir}. | ||
|
Large diffs are not rendered by default.
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -49467,13 +49467,107 @@ Coil:Cooling:Water:DetailedGeometry, | |
A7 , \field Condensate Collection Water Storage Tank Name | ||
\type object-list | ||
\object-list WaterStorageTankNames | ||
N17; \field Design Water Temperature Difference | ||
N17, \field Design Water Temperature Difference | ||
\type real | ||
\units deltaC | ||
\minimum> 0.0 | ||
\note This input field is optional. If specified, it is used for sizing the Design Water Flow Rate. | ||
\note If blank or omitted, the Loop Design Temperature Difference value specified in Sizing:Plant | ||
\note object is used for sizing the Design Water Flow Rate. | ||
N18; \field Design Inlet Water Temperature | ||
\type real | ||
\units C | ||
\autosizable | ||
\default autosize | ||
\minimum> 0 | ||
\note This input field is optional. If specified, it is used for sizing the coil Design Geomtery | ||
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. The new input field. 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 should probably be \autosizable with a default of autosize, like the same field in Coil:Cooling:Water. 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 believe we are talking about this field being blank or autosizable. I'd rather see autosizable and if not an economizer coil just read from the plant sizing object. If it is an economizer coil then use a 10C detlaT (or whatever is reasonable for this application) from what will be used for sizing (e.g., peak OAT - 10 or something like that, or maybe a fraction of OAT - precool temp so coil size changes by geography or some other fuzzy math). I see Design Inlet Water Temperature in the Coil:Cooling:Water object, probably should use the same field name. 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. Renamed the field to Design Inlet Water Temperature. 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 am going to set the Des Inlet Water Temperature to Design Supply Air Temperature minus 5.0 if the water cooling coil is used as water-side economizer as shown below and the field is autosized. The same logic will be used for simple and detailed water cooling coils if the coil is used as water side economizer. @rraustad @mjwitte your thought?
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'd rather not have any magic behind the scenes. We want this to be general use. I suppose the warning could mention that there is an input field to set this directly. And if the -5.0C is too arbitrary, maybe we just make this a severe/fatal and say use this field to fix it. 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 @mjwitte, we should try to avoid adding a logic that is not obvious to the user. We have input fields that the user can use in the simple and detailed water cooling coil objects. May be we should add description in the input field how it is used when these coils are used as water-side economizer. 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. Below is sample text description hat we can add to the idd for these coil types:
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. Looking at this again, since we made this autosizable, you can replace "If blank or omitted" with "If autosized, ...". 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. Done. |
||
\note Parameters. If blank or omitted, the Design Loop Exit Temperature value specified in | ||
\note Sizing:Plant object is used for sizing the coil Design Geomtery Parameters. | ||
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 this would be better if it was grouped with the other coilsystem objects. Since the water cooling coils come first, then the dx and other coils, I would put this right before CoilSystem:Cooling:DX, so the order of objects would be 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. OK. Moved the CoilSystem:Cooling:Water documentation before the CoilSystem:Cooling:DX. 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. Currently the order will be as follows:
May be it should be arranged as follows since the the group-heating-and-cooling-coils contains the CoilSystem:Heating:DX
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. Not wanting to make extra work for you, but I think it would be better to paste the contents of 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. And then what? Delete group-coil-system-cooling-water.tex. Anything else that needs to be done? I thought these tex files were to be somewhat specific to object 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. Well, yes. group-coil-system-cooling-water.tex is a new file here and contains only one component, not a whole group, so it would be deleted. But, to your point the whole tex file organization is inconsistent. It's not worth lots of effort here, I just think it make more sense to keep the three coilsystem object together. If you want, you could move the other two into group-coil-system-cooling-water.tex and rename it to group-coil-system, but that seems like more trouble than it's worth. I'm probably the only one who cares what the order of the TOC looks like, but I expect to find similar things near each other. 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. The water cooling coil objects 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. @Nigusse That's not my intent. Just paste the section for CoilSystem:Cooling:Water right before the section for CoilSystem:Cooling:DX. Nothing more. 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. The following is going to be the order of the water coils in
|
||
|
||
CoilSystem:Cooling:Water, | ||
\memo Virtual container component that consists of a water cooling coil | ||
\memo and its associated controls. This control object supports the | ||
\memo available water coil types and may be placed directly on an | ||
\memo air loop branch or in an outdoor air equipment list. | ||
\min-fields 6 | ||
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. So, if 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. OK. Done. |
||
A1, \field Name | ||
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 \reference name isn't used anywhere, so it's not needed. I see that Coilsystem:Cooling:DX has a similar nade that is referenced in FaultModel:TemperatureSensorOffset:CoilSupplyAir. I'm not suggesting this PR needs to add fault support for this system type, but you should post a new issue to have it added at some point. 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. Removed \reference WaterCoilSystemName. 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. @mjwitte If this field is autosizable, the auto-sized value is set to the condenser loop Design Loop Exit Temperature value and usually it ranges from 25C - 29C. This values is greater than the design supply air temperature, which leads to sizing problem. This field was added to overcome this limitation. 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. True, for your file, leaving it blank or setting it to autosize won't make sense. But when this coil is used for other applications, when it's blank or autosize (as suggested) it would grab the connected loop value. The behavior doesn't change here, it's a matter of do we want blank to be significant or do we want to say "autosize" to be consistent with other similar fields. And by that argument "Design Water Temperature Difference" should probably be autosizable also with a default of autosize. @rraustad @Myoldmopar Any opinions on blank vs autosize for fields like this? 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. And if we agree to \default autosize, min-fields will need to be increased to include this field so that the default gets applied. 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.
Added new issue #8941 |
||
\required-field | ||
\type alpha | ||
\reference-class-name validBranchEquipmentTypes | ||
\reference validBranchEquipmentNames | ||
\reference-class-name validOASysEquipmentTypes | ||
\reference validOASysEquipmentNames | ||
A2, \field Air Inlet Node Name | ||
\required-field | ||
\type node | ||
A3, \field Air Outlet Node Name | ||
\required-field | ||
\type node | ||
A4, \field Availability Schedule Name | ||
\note Availability schedule name for this system. Schedule value > 0 | ||
\note means the system is available. | ||
\note If this field is blank, the system is always available. | ||
\type object-list | ||
\object-list ScheduleNames | ||
A5, \field Cooling Coil Object Type | ||
\type choice | ||
\required-field | ||
\key Coil:Cooling:Water | ||
\key Coil:Cooling:Water:DetailedGeometry | ||
\key CoilSystem:Cooling:Water:HeatExchangerAssisted | ||
A6, \field Cooling Coil Name | ||
\required-field | ||
\type object-list | ||
\object-list CoolingCoilsWater | ||
A7, \field Dehumidification Control Type | ||
\type choice | ||
\key None | ||
\key Multimode | ||
\key CoolReheat | ||
\default None | ||
\note None = meet sensible load only | ||
\note Multimode = activate water coil and meet sensible load. | ||
\note If no sensible load exists, and Run on Latent Load = Yes, and a latent | ||
\note load exists, the coil will operate to meet the latent load. | ||
\note If the latent load cannot be met the heat exchanger will be activated. | ||
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. Hmm, I don't think this is what we want. If control type = multimode and run on sensible = yes but run on latent = no, I would still expect the humidity control to switch on/off the HX as needed. The only thing run on latent = no indicates is that the coil shouldn't operate if there's only a latent load. |
||
\note IF Run on Latent Load = No, the heat exchanger will always be active. | ||
\note This control mode either switches the coil mode or allows the heat exchanger to | ||
\note be turned on and off based on the zone dehumidification requirements. Valid | ||
\note only with cooling coil type CoilSystem:Cooling:Water:HeatExchangerAssisted. | ||
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 is misleading and a little repetitive. Suggested change: \note Multimode = activate water coil and meet sensible load. 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. Changes Done. |
||
\note CoolReheat = cool beyond the dry-bulb setpoint as required to meet the | ||
\note humidity setpoint. Valid with all cooling coil types. When a heat exchanger | ||
\note assisted cooling coil is used, the heat exchanger is locked on at all times. | ||
\note For all dehumidification controls, the max | ||
\note humidity setpoint on the Sensor Node is used. | ||
\note SetpointManager:SingleZone:Humidity:Maximum, | ||
\note SetpointManager:MultiZone:Humidity:Maximum, or | ||
\note SetpointManager:MultiZone:MaximumHumidity:Average, and | ||
\note SetpointManager:OutdoorAirPretreat (optional) objects. | ||
A8, \field Run on Sensible Load | ||
\type choice | ||
\key Yes | ||
\key No | ||
\default Yes | ||
\note If Yes, unit will run if there is a sensible load. | ||
\note If No, unit will not run if there is only a sensible load. | ||
\note Dehumidification controls will be active if specified. | ||
A9, \field Run on Latent Load | ||
\type choice | ||
\key Yes | ||
\key No | ||
\default No | ||
\note If Yes, unit will run if there is a latent load. | ||
\note even if there is no sensible load. | ||
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. If No, unit will not run 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. Done. |
||
\note If No, unit will not run if there is only a latent load. | ||
\note Dehumidification controls will be active if specified. | ||
N1; \field Minimum Air To Water Temperature Offset | ||
\note Coil will turn on as required when inlet air temperature is above | ||
\note water temperature by amount of offset. To model a waterside | ||
\note economizer connect to condenser loop and increase offset as desired. | ||
\type real | ||
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. \units deltaC 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. Done. |
||
\units deltaC | ||
\minimum 0.0 | ||
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. Updated the IDD to correct key choices in Dehumidification Control Type input field. |
||
\default 0.0 | ||
|
||
Coil:Cooling:DX, | ||
\memo New general DX cooling coil supporting on or more speeds and one or or operating modes. | ||
|
@@ -60577,6 +60671,7 @@ AirLoopHVAC:UnitarySystem, | |
\object-list UnitarySystemPerformaceNames | ||
\note Enter the name of the performance specification object used to describe the multispeed coil. | ||
|
||
|
||
UnitarySystemPerformance:Multispeed, | ||
\memo The UnitarySystemPerformance object is used to specify the air flow ratio at each | ||
\memo operating speed. This object is primarily used for multispeed DX and water coils to allow | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -591,6 +591,34 @@ void SimOAComponent(EnergyPlusData &state, | |
latOut); | ||
} | ||
OACoolingCoil = true; | ||
} else if (CompTypeNum == SimAirServingZones::CompType::CoilSystemWater) { // "CoilSystem:Cooling:Water" | ||
if (state.dataAirLoop->OutsideAirSys(OASysNum).compPointer[CompIndex] == nullptr) { | ||
UnitarySystems::UnitarySys thisSys; | ||
state.dataAirLoop->OutsideAirSys(OASysNum).compPointer[CompIndex] = | ||
thisSys.factory(state, DataHVACGlobals::UnitarySys_AnyCoilType, CompName, false, 0); | ||
UnitarySystems::UnitarySys::checkUnitarySysCoilInOASysExists(state, CompName, 0); | ||
} | ||
if (Sim) { | ||
bool HeatingActive = false; | ||
bool CoolingActive = false; | ||
Real64 OAUCoilOutTemp = 0.0; | ||
bool ZoneEquipFlag = false; | ||
Real64 sensOut = 0.0; | ||
Real64 latOut = 0.0; | ||
state.dataAirLoop->OutsideAirSys(OASysNum).compPointer[CompIndex]->simulate(state, | ||
CompName, | ||
FirstHVACIteration, | ||
AirLoopNum, | ||
CompIndex, | ||
HeatingActive, | ||
CoolingActive, | ||
CompIndex, | ||
OAUCoilOutTemp, | ||
ZoneEquipFlag, | ||
sensOut, | ||
latOut); | ||
} | ||
OACoolingCoil = true; | ||
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. Adds a new calling point for "CoilSystem:Cooling:Water" placed in OA system. If the pointer is null, then invokes the new instantiates this coil system as UnitarySystem. |
||
} else if (CompTypeNum == SimAirServingZones::CompType::UnitarySystemModel) { // AirLoopHVAC:UnitarySystem | ||
if (Sim) { | ||
bool HeatingActive = false; | ||
|
@@ -1110,6 +1138,12 @@ void GetOutsideAirSysInputs(EnergyPlusData &state) | |
// CheckDXCoolingCoilInOASysExists(state, state.dataAirLoop->OutsideAirSys(OASysNum).ComponentName(CompNum)); | ||
} else if (SELECT_CASE_var == "COILSYSTEM:HEATING:DX") { | ||
state.dataAirLoop->OutsideAirSys(OASysNum).ComponentType_Num(CompNum) = SimAirServingZones::CompType::DXHeatPumpSystem; | ||
} else if (SELECT_CASE_var == "COILSYSTEM:COOLING:WATER") { | ||
state.dataAirLoop->OutsideAirSys(OASysNum).ComponentType_Num(CompNum) = SimAirServingZones::CompType::CoilSystemWater; | ||
state.dataAirLoop->OutsideAirSys(OASysNum).ComponentIndex(CompNum) = CompNum; | ||
UnitarySystems::UnitarySys thisSys; | ||
state.dataAirLoop->OutsideAirSys(OASysNum).compPointer[CompNum] = thisSys.factory( | ||
state, DataHVACGlobals::UnitarySys_AnyCoilType, state.dataAirLoop->OutsideAirSys(OASysNum).ComponentName(CompNum), false, 0); | ||
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. Saves the component type and component index and instantiates this coil system as UnitarySystem. |
||
} else if (SELECT_CASE_var == "AIRLOOPHVAC:UNITARYSYSTEM") { | ||
state.dataAirLoop->OutsideAirSys(OASysNum).ComponentType_Num(CompNum) = SimAirServingZones::CompType::UnitarySystemModel; | ||
UnitarySystems::UnitarySys thisSys; | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -101,6 +101,38 @@ namespace MixedAir { | |
constexpr int On(1); // normal coil operation | ||
constexpr int Off(0); // signal coil shouldn't run | ||
|
||
// component types addressed by this module | ||
enum class ComponentType | ||
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 is another merge error - this enum class was moved or eliminated. 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. Done. |
||
{ | ||
Unassigned = -1, | ||
None, | ||
OAMixer_Num, | ||
Fan_Simple_CV, | ||
Fan_Simple_VAV, | ||
WaterCoil_SimpleCool, | ||
WaterCoil_Cooling, | ||
WaterCoil_SimpleHeat, | ||
SteamCoil_AirHeat, | ||
WaterCoil_DetailedCool, | ||
Coil_ElectricHeat, | ||
Coil_GasHeat, | ||
WaterCoil_CoolingHXAsst, | ||
DXSystem, | ||
HeatXchngr, | ||
Desiccant, | ||
Unglazed_SolarCollector, | ||
EvapCooler, | ||
PVT_AirBased, | ||
Fan_ComponentModel, | ||
DXHeatPumpSystem, | ||
Coil_UserDefined, | ||
Humidifier, | ||
Fan_System_Object, | ||
UnitarySystemModel, | ||
VRFTerminalUnit, | ||
CoilSystemWater | ||
}; | ||
|
||
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. Update from develop and added new component type CoilSystemWater. |
||
enum class iControllerType | ||
{ | ||
None, | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -797,6 +797,8 @@ void GetAirPathData(EnergyPlusData &state) | |
PackagedUnit(AirSysNum) = true; | ||
} else if (componentType == "COILSYSTEM:HEATING:DX") { | ||
PackagedUnit(AirSysNum) = true; | ||
} else if (componentType == "COILSYSTEM:COOLING:WATER") { | ||
PackagedUnit(AirSysNum) = true; | ||
} else if (componentType == "AIRLOOPHVAC:UNITARYSYSTEM") { | ||
PackagedUnit(AirSysNum) = true; | ||
} else if (componentType == "AIRLOOPHVAC:UNITARY:FURNACE:HEATONLY") { | ||
|
@@ -1244,6 +1246,15 @@ void GetAirPathData(EnergyPlusData &state) | |
PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).Name, | ||
false, | ||
0); | ||
} else if (componentType == "COILSYSTEM:COOLING:WATER") { | ||
PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = CompType::CoilSystemWater; | ||
UnitarySystems::UnitarySys thisSys; | ||
PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).compPointer = | ||
thisSys.factory(state, | ||
DataHVACGlobals::UnitarySys_AnyCoilType, | ||
PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).Name, | ||
false, | ||
0); | ||
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. Saves the component type and instantiates this coil system as UnitarySystem. |
||
} else if (componentType == "AIRLOOPHVAC:UNITARY:FURNACE:HEATONLY") { | ||
PrimaryAirSystems(AirSysNum).Branch(BranchNum).Comp(CompNum).CompType_Num = CompType::Furnace_UnitarySys_HeatOnly; | ||
} else if (componentType == "AIRLOOPHVAC:UNITARY:FURNACE:HEATCOOL") { | ||
|
@@ -3641,7 +3652,27 @@ void SimAirLoopComponent(EnergyPlusData &state, | |
ZoneEquipFlag, | ||
sensOut, | ||
latOut); | ||
|
||
} else if (SELECT_CASE_var == CompType::CoilSystemWater) { // 'CoilSystemCooling:Water' | ||
if (CompPointer == nullptr) { | ||
UnitarySystems::UnitarySys thisSys; | ||
CompPointer = thisSys.factory(state, DataHVACGlobals::UnitarySys_AnyCoilType, CompName, false, 0); | ||
// temporary fix for saving pointer, eventually apply to UnitarySystem 16 lines above | ||
state.dataAirSystemsData->PrimaryAirSystems(airLoopNum).Branch(branchNum).Comp(compNum).compPointer = CompPointer; | ||
} | ||
Real64 sensOut = 0.0; | ||
Real64 latOut = 0.0; | ||
CompPointer->simulate(state, | ||
CompName, | ||
FirstHVACIteration, | ||
AirLoopNum, | ||
CompIndex, | ||
HeatingActive, | ||
CoolingActive, | ||
OAUnitNum, | ||
OAUCoilOutTemp, | ||
ZoneEquipFlag, | ||
sensOut, | ||
latOut); | ||
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. Simulation calling point for "CoilSystem:Cooling:Water" object placed in airloop. |
||
} else if (SELECT_CASE_var == CompType::Furnace_UnitarySys_HeatOnly || SELECT_CASE_var == CompType::Furnace_UnitarySys_HeatCool) { | ||
// 'AirLoopHVAC:Unitary:Furnace:HeatOnly', 'AirLoopHVAC:Unitary:Furnace:HeatCool', | ||
// 'AirLoopHVAC:UnitaryHeatOnly', 'AirLoopHVAC:UnitaryHeatCool' | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -74,6 +74,38 @@ namespace SimAirServingZones { | |
|
||
// CompType numerics -- for this module | ||
// component types addressed by this module | ||
constexpr int OAMixer_Num(1); | ||
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 is a merge mistake - all of these 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. Done. |
||
constexpr int Fan_Simple_CV(2); | ||
constexpr int Fan_Simple_VAV(3); | ||
constexpr int WaterCoil_SimpleCool(4); | ||
constexpr int WaterCoil_Cooling(5); | ||
constexpr int WaterCoil_SimpleHeat(6); | ||
constexpr int SteamCoil_AirHeat(7); | ||
constexpr int WaterCoil_DetailedCool(8); | ||
constexpr int Coil_ElectricHeat(9); | ||
constexpr int Coil_GasHeat(10); | ||
constexpr int WaterCoil_CoolingHXAsst(11); | ||
constexpr int DXCoil_CoolingHXAsst(12); | ||
constexpr int Coil_DeSuperHeat(13); | ||
constexpr int DXSystem(14); | ||
constexpr int HeatXchngr(15); | ||
constexpr int Desiccant(16); | ||
constexpr int Unglazed_SolarCollector(17); | ||
constexpr int EvapCooler(18); | ||
constexpr int Furnace_UnitarySys_HeatOnly(19); | ||
constexpr int Furnace_UnitarySys_HeatCool(20); | ||
constexpr int Humidifier(21); | ||
constexpr int Duct(22); | ||
constexpr int UnitarySystem_BypassVAVSys(23); | ||
constexpr int UnitarySystem_MSHeatPump(24); | ||
constexpr int Fan_ComponentModel(25); | ||
constexpr int DXHeatPumpSystem(26); | ||
constexpr int CoilUserDefined(27); | ||
constexpr int Fan_System_Object(28); | ||
constexpr int UnitarySystemModel(29); | ||
constexpr int ZoneVRFasAirLoopEquip(30); | ||
constexpr int CoilSystemWater(31); | ||
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. Adds new component type. |
||
|
||
enum class CompType | ||
{ | ||
Unassigned = -1, | ||
|
@@ -108,7 +140,8 @@ namespace SimAirServingZones { | |
UnitarySystemModel, | ||
ZoneVRFasAirLoopEquip, | ||
PVT_AirBased, | ||
VRFTerminalUnit | ||
VRFTerminalUnit, | ||
CoilSystemWater | ||
}; | ||
|
||
void ManageAirLoops(EnergyPlusData &state, | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3915,6 +3915,7 @@ void CalcSystemEnergyUse(EnergyPlusData &state, | |
COILSYSTEM_COOLING_DX, | ||
COILSYSTEM_COOLING_DX_HEATEXCHANGERASSISTED, | ||
COILSYSTEM_COOLING_WATER_HEATEXCHANGERASSISTED, | ||
COILSYSTEM_COOLING_WATER, | ||
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. Adds enum type "COILSYSTEM_COOLING_WATER" for use with CalcSystemEnergyUse() function and system reports. |
||
COILSYSTEM_HEATING_DX, | ||
DEHUMIDIFIER_DESICCANT_NOFANS, | ||
DEHUMIDIFIER_DESICCANT_SYSTEM, | ||
|
@@ -4009,6 +4010,7 @@ void CalcSystemEnergyUse(EnergyPlusData &state, | |
{"COILSYSTEM:COOLING:DX", COILSYSTEM_COOLING_DX}, | ||
{"COILSYSTEM:COOLING:DX:HEATEXCHANGERASSISTED", COILSYSTEM_COOLING_DX_HEATEXCHANGERASSISTED}, | ||
{"COILSYSTEM:COOLING:WATER:HEATEXCHANGERASSISTED", COILSYSTEM_COOLING_WATER_HEATEXCHANGERASSISTED}, | ||
{"COILSYSTEM:COOLING:WATER", COILSYSTEM_COOLING_WATER}, | ||
{"COILSYSTEM:HEATING:DX", COILSYSTEM_HEATING_DX}, | ||
{"DEHUMIDIFIER:DESICCANT:NOFANS", DEHUMIDIFIER_DESICCANT_NOFANS}, | ||
{"DEHUMIDIFIER:DESICCANT:SYSTEM", DEHUMIDIFIER_DESICCANT_SYSTEM}, | ||
|
@@ -4090,6 +4092,7 @@ void CalcSystemEnergyUse(EnergyPlusData &state, | |
case COIL_COOLING_WATERTOAIRHEATPUMP_VARIABLESPEEDEQUATIONFIT: | ||
case COIL_COOLING_DX_VARIABLESPEED: | ||
case COILSYSTEM_COOLING_WATER_HEATEXCHANGERASSISTED: | ||
case COILSYSTEM_COOLING_WATER: | ||
case COIL_COOLING_WATER_DETAILEDGEOMETRY: | ||
case COIL_COOLING_WATER: | ||
case COIL_COOLING_DX_SINGLESPEED_THERMALSTORAGE: | ||
|
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.
componets --> components
componment --> component
detailedGeometry --> DetailedGeometry
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.
Done.