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

Addresses #4362, add support of HeatPump:PlantLoop:EIR:Heating to model air-to-water heat pump #4368

Merged
merged 48 commits into from
Aug 18, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
58f3c74
Update idd.
joseph-robertson Jun 28, 2021
9e164fc
Stub model files.
joseph-robertson Jun 28, 2021
a5bcaac
Stub ft files.
joseph-robertson Jun 28, 2021
c289db7
Update other model files.
joseph-robertson Jun 28, 2021
e7ddb21
Update other ft files.
joseph-robertson Jun 28, 2021
a6a5978
Apply clang format.
joseph-robertson Jun 28, 2021
1822217
Fill out model and ft files.
joseph-robertson Jun 29, 2021
c9bedf9
Minor idd updates.
joseph-robertson Jun 29, 2021
1de1171
Missing metods.
joseph-robertson Jun 29, 2021
92718da
Fill out model tests for hp heating.
joseph-robertson Jun 29, 2021
95e1961
Apply clang format.
joseph-robertson Jun 29, 2021
2b30cbe
Fix hp heating model test file.
joseph-robertson Jun 30, 2021
dd37073
Fill out hp cooling model tests.
joseph-robertson Jun 30, 2021
9695a50
Missing object types in idd.
joseph-robertson Jun 30, 2021
0cab715
Fix object lists in proposed idd.
joseph-robertson Jun 30, 2021
902f24f
Update var names in ft test.
joseph-robertson Jun 30, 2021
b88c745
Fill out curve fields in ctors.
joseph-robertson Jul 1, 2021
7257aaa
Typos in proposed idd curve objects.
joseph-robertson Jul 6, 2021
af9e61f
Merge branch 'develop' into issue-4362
jmarrec Jul 27, 2021
f92dfa3
Remove coments that only existed in ProposedE+.idd and aren't true here
jmarrec Jul 27, 2021
1b30d9a
Switch model load and source.
joseph-robertson Jul 27, 2021
2d93697
Adjust curves in model files.
joseph-robertson Jul 28, 2021
5f3c3c0
Add valid condenser type values.
joseph-robertson Jul 28, 2021
09cf5c8
Update model tests.
joseph-robertson Jul 28, 2021
809d58f
Improve ft test.
joseph-robertson Jul 28, 2021
aa09bae
Clean up types.
joseph-robertson Jul 28, 2021
29fda9f
Typo in heating cpp.
joseph-robertson Jul 28, 2021
0f97e07
Fix typos in tests.
joseph-robertson Jul 28, 2021
e74e228
Include model in test files.
joseph-robertson Jul 28, 2021
4d5fbf1
Clean up ft test.
joseph-robertson Jul 28, 2021
f88cb0c
Use curve concrete model objects for model tests.
joseph-robertson Jul 30, 2021
894ffcc
Merge branch 'develop' into issue-4362
joseph-robertson Jul 30, 2021
c7d2885
Add ft test for plant eq op schemes.
joseph-robertson Aug 2, 2021
4d46d02
Initialize a var.
joseph-robertson Aug 2, 2021
fae6167
Update ft for water vs air source nodes.
joseph-robertson Aug 3, 2021
c5747e6
Update ft test for node name changes.
joseph-robertson Aug 3, 2021
8a5d7bc
Fix typos.
joseph-robertson Aug 3, 2021
8e22d2e
Fix formatting in ft files.
joseph-robertson Aug 3, 2021
5a27cd1
More formatting in ft files.
joseph-robertson Aug 3, 2021
e5ee8a2
Fix expected node names in ft test.
joseph-robertson Aug 3, 2021
ea37e88
Merge remote-tracking branch 'origin/develop' into issue-4362
jmarrec Aug 4, 2021
b929379
Enforce condenserType in addToNode / removeFromSecondaryPlantLoop / s…
jmarrec Aug 4, 2021
7eb1714
Add More convenience functions to get the nodes (it's confusing other…
jmarrec Aug 4, 2021
12aac9c
Add a model GTest for enforcing condenserType + convenience functions…
jmarrec Aug 4, 2021
9e499d1
Adjust FT test
jmarrec Aug 4, 2021
3d1f597
Name getters/setters like the IDD field, like GenerateClass.rb would …
jmarrec Aug 5, 2021
2e98e01
Merge branch 'develop' into issue-4362
joseph-robertson Aug 10, 2021
2f7221d
Merge branch 'develop' into issue-4362
joseph-robertson Aug 13, 2021
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
10 changes: 5 additions & 5 deletions resources/energyplus/ProposedEnergy+.idd
Original file line number Diff line number Diff line change
Expand Up @@ -43271,7 +43271,8 @@ HeatPump:PlantLoop:EIR:Cooling,
\note object for this cooling object. The companion is used in
\note sizing the heat pump as well as to allow checks for unexpected
\note simultaneous operation of the two objects.
\reference PLHPHeatingNames
\type object-list
\object-list PLHPHeatingNames
Comment on lines +43274 to +43275
Copy link
Collaborator

Choose a reason for hiding this comment

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

The same should be applied to the actual E+ idd. Did you do a PR to NREL/EnergyPlus or opened an issue?

Anyways, good catch 👍

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I did not open an issue or PR in NREL/EnergyPlus.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Filled a PR at NREL/EnergyPlus#8982

N1, \field Load Side Reference Flow Rate
\note This component is currently a constant-flow device, meaning it will always
\note try to request the full design flow from the central plant manager.
Expand Down Expand Up @@ -43331,7 +43332,7 @@ HeatPump:PlantLoop:EIR:Cooling,
\note EIR = 1/COP
\required-field
\type object-list
\object-list UniVariateFunctions
\object-list UnivariateFunctions
\note quadratic curve = a + b*PLR + c*PLR**2 is typical, other univariate curves may be used
\note PLR = part load ratio (cooling load/steady state capacity)

Expand Down Expand Up @@ -43370,8 +43371,7 @@ HeatPump:PlantLoop:EIR:Heating,
\note sizing the heat pump as well as to allow checks for unexpected
\note simultaneous operation of the two objects.
\type object-list
\object-list WWHPCoolingNames
\reference PLHPCoolingNames
\object-list PLHPCoolingNames
N1, \field Load Side Reference Flow Rate
\note This component is currently a constant-flow device, meaning it will always
\note try to request the full design flow from the central plant manager.
Expand Down Expand Up @@ -43422,7 +43422,7 @@ HeatPump:PlantLoop:EIR:Heating,
\note EIR = 1/COP
\required-field
\type object-list
\object-list BiVariateFunctions
\object-list BivariateFunctions
\note curve = a + b*CWS + c*CWS**2 + d*ECT + e*ECT**2 + f*CWS*ECT
\note CWS = supply (leaving) hot water temperature(C)
\note ECT = entering condenser fluid temperature(C)
Expand Down
194 changes: 194 additions & 0 deletions resources/model/OpenStudio.idd
Original file line number Diff line number Diff line change
Expand Up @@ -12666,6 +12666,200 @@ OS:HeatPump:WaterToWater:EquationFit:Cooling,
\object-list WWHPHeatingNames
\note This optional field is used to coordinate sizing calculations between heating and cooling modes.

OS:HeatPump:PlantLoop:EIR:Heating,
\memo An EIR formulated water to water heat pump model, heating operation
\min-fields 16
A1, \field Handle
\type handle
\required-field
A2, \field Name
\type alpha
\reference PLHPHeatingNames
\required-field
\reference ConnectionObject
A3, \field Load Side Inlet Node Name
\type object-list
\required-field
\object-list ConnectionNames
A4, \field Load Side Outlet Node Name
\type object-list
\required-field
\object-list ConnectionNames
A5, \field Condenser Type
\type choice
\key WaterSource
joseph-robertson marked this conversation as resolved.
Show resolved Hide resolved
\key AirSource
\required-field
A6, \field Source Side Inlet Node Name
\type object-list
\required-field
\object-list ConnectionNames
A7, \field Source Side Outlet Node Name
\type object-list
\required-field
\object-list ConnectionNames
A8, \field Companion Heat Pump Name
\note This field allows the user to specify a companion cooling
\note object for this heating object. The companion is used in
\note sizing the heat pump as well as to allow checks for unexpected
\note simultaneous operation of the two objects.
\type object-list
\object-list PLHPCoolingNames
joseph-robertson marked this conversation as resolved.
Show resolved Hide resolved
N1, \field Load Side Reference Flow Rate
\note This component is currently a constant-flow device, meaning it will always
\note try to request the full design flow from the central plant manager.
\type real
\minimum> 0.0
\units m3/s
\ip-units gal/min
\autosizable
\required-field
N2, \field Source Side Reference Flow Rate
\type real
\minimum> 0.0
\units m3/s
\ip-units gal/min
\autosizable
\required-field
N3, \field Reference Capacity
\type real
\minimum> 0.0
\units W
\autosizable
\required-field
N4, \field Reference Coefficient of Performance
\type real
\minimum> 0.0
\required-field
\units W/W
N5, \field Sizing Factor
\note Multiplies the autosized capacity and flow rates
\type real
\minimum> 0.0
\required-field
A9, \field Capacity Modifier Function of Temperature Curve Name
\note Heating capacity modifier as a function of CW supply temp and entering condenser temp
\required-field
\type object-list
\object-list BivariateFunctions
\note curve = a + b*CWS + c*CWS**2 + d*ECT + e*ECT**2 + f*CWS*ECT
\note CWS = supply (leaving) hot water temperature(C)
\note ECT = entering condenser fluid temperature(C)
A10,\field Electric Input to Output Ratio Modifier Function of Temperature Curve Name
\note Electric Input Ratio (EIR) modifier as a function of temperature
\note EIR = 1/COP
\required-field
\type object-list
\object-list BivariateFunctions
\note curve = a + b*CWS + c*CWS**2 + d*ECT + e*ECT**2 + f*CWS*ECT
\note CWS = supply (leaving) hot water temperature(C)
\note ECT = entering condenser fluid temperature(C)
A11;\field Electric Input to Output Ratio Modifier Function of Part Load Ratio Curve Name
\note Electric Input Ratio (EIR) modifier as a function of Part Load Ratio (PLR)
\note EIR = 1/COP
\required-field
\type object-list
\object-list UnivariateFunctions
\note quadratic curve = a + b*PLR + c*PLR**2 is typical, other univariate curves may be used
\note PLR = part load ratio (hot load/steady state capacity)

OS:HeatPump:PlantLoop:EIR:Cooling,
\memo An EIR formulated water to water heat pump model, cooling operation.
\min-fields 16
A1, \field Handle
\type handle
\required-field
A2, \field Name
\type alpha
\reference PLHPCoolingNames
\required-field
\reference ConnectionObject
A3, \field Load Side Inlet Node Name
\type object-list
\required-field
\object-list ConnectionNames
A4, \field Load Side Outlet Node Name
\type object-list
\required-field
\object-list ConnectionNames
A5, \field Condenser Type
\type choice
\key WaterSource
\key AirSource
\required-field
A6, \field Source Side Inlet Node Name
\type object-list
\required-field
\object-list ConnectionNames
A7, \field Source Side Outlet Node Name
\type object-list
\required-field
\object-list ConnectionNames
A8, \field Companion Heat Pump Name
\note This field allows the user to specify a companion heating
\note object for this cooling object. The companion is used in
\note sizing the heat pump as well as to allow checks for unexpected
\note simultaneous operation of the two objects.
\type object-list
\object-list PLHPHeatingNames
N1, \field Load Side Reference Flow Rate
\note This component is currently a constant-flow device, meaning it will always
\note try to request the full design flow from the central plant manager.
\type real
\minimum> 0.0
\units m3/s
\ip-units gal/min
\autosizable
\required-field
N2, \field Source Side Reference Flow Rate
\type real
\minimum> 0.0
\units m3/s
\ip-units gal/min
\autosizable
\required-field
N3, \field Reference Capacity
\type real
\minimum> 0.0
\units W
\autosizable
\required-field
N4, \field Reference Coefficient of Performance
\type real
\minimum> 0.0
\required-field
\units W/W
N5, \field Sizing Factor
\note Multiplies the autosized capacity and flow rates
\type real
\minimum> 0.0
\required-field
A9, \field Capacity Modifier Function of Temperature Curve Name
\note Cooling capacity modifier as a function of CW supply temp and entering condenser temp
\required-field
\type object-list
\object-list BivariateFunctions
\note curve = a + b*CWS + c*CWS**2 + d*ECT + e*ECT**2 + f*CWS*ECT
\note CWS = supply (leaving) chilled water temperature(C)
\note ECT = entering condenser fluid temperature(C)
A10,\field Electric Input to Output Ratio Modifier Function of Temperature Curve Name
\note Electric Input Ratio (EIR) modifier as a function of temperature
\note EIR = 1/COP
\required-field
\type object-list
\object-list BivariateFunctions
\note curve = a + b*CWS + c*CWS**2 + d*ECT + e*ECT**2 + f*CWS*ECT
\note CWS = supply (leaving) chilled water temperature(C)
\note ECT = entering condenser fluid temperature(C)
A11;\field Electric Input to Output Ratio Modifier Function of Part Load Ratio Curve Name
\note Electric Input Ratio (EIR) modifier as a function of Part Load Ratio (PLR)
\note EIR = 1/COP
\required-field
\type object-list
\object-list UnivariateFunctions
\note quadratic curve = a + b*PLR + c*PLR**2 is typical, other univariate curves may be used
\note PLR = part load ratio (cooling load/steady state capacity)

OS:Chiller:Electric:EIR,
\memo This chiller model is the empirical model from the DOE-2 building Energy
\memo simulation program. Chiller performance at off-reference conditions is modeled
Expand Down
3 changes: 3 additions & 0 deletions src/energyplus/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,8 @@ set(${target_name}_src
ForwardTranslator/ForwardTranslateHeatExchangerFluidToFluid.cpp
ForwardTranslator/ForwardTranslateHeatPumpWaterToWaterEquationFitCooling.cpp
ForwardTranslator/ForwardTranslateHeatPumpWaterToWaterEquationFitHeating.cpp
ForwardTranslator/ForwardTranslateHeatPumpPlantLoopEIRCooling.cpp
ForwardTranslator/ForwardTranslateHeatPumpPlantLoopEIRHeating.cpp
ForwardTranslator/ForwardTranslateHotWaterEquipment.cpp
ForwardTranslator/ForwardTranslateHumidifierSteamElectric.cpp
ForwardTranslator/ForwardTranslateHumidifierSteamGas.cpp
Expand Down Expand Up @@ -671,6 +673,7 @@ set(${target_name}_test_src
Test/HeatExchangerDesiccantBalancedFlow_GTest.cpp
Test/HeatExchangerDesiccantBalancedFlowPerformanceDataType1_GTest.cpp
Test/HeatPumpWaterToWaterEquationFit_GTest.cpp
Test/HeatPumpPlantLoopEIR_GTest.cpp
Test/HotWaterEquipment_GTest.cpp
Test/IlluminanceMap_GTest.cpp
Test/InteriorPartitionSurface_GTest.cpp
Expand Down
10 changes: 10 additions & 0 deletions src/energyplus/ForwardTranslator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1831,6 +1831,16 @@ namespace energyplus {
retVal = translateHeatPumpWaterToWaterEquationFitHeating(mo);
break;
}
case openstudio::IddObjectType::OS_HeatPump_PlantLoop_EIR_Cooling: {
auto mo = modelObject.cast<HeatPumpPlantLoopEIRCooling>();
retVal = translateHeatPumpPlantLoopEIRCooling(mo);
break;
}
case openstudio::IddObjectType::OS_HeatPump_PlantLoop_EIR_Heating: {
auto mo = modelObject.cast<HeatPumpPlantLoopEIRHeating>();
retVal = translateHeatPumpPlantLoopEIRHeating(mo);
break;
}
case openstudio::IddObjectType::OS_HotWaterEquipment: {
model::HotWaterEquipment hotWaterEquipment = modelObject.cast<HotWaterEquipment>();
retVal = translateHotWaterEquipment(hotWaterEquipment);
Expand Down
6 changes: 6 additions & 0 deletions src/energyplus/ForwardTranslator.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -273,6 +273,8 @@ namespace model {
class HeatExchangerFluidToFluid;
class HeatPumpWaterToWaterEquationFitCooling;
class HeatPumpWaterToWaterEquationFitHeating;
class HeatPumpPlantLoopEIRCooling;
class HeatPumpPlantLoopEIRHeating;
class HotWaterEquipment;
class HumidifierSteamElectric;
class HumidifierSteamGas;
Expand Down Expand Up @@ -1037,6 +1039,10 @@ namespace energyplus {

boost::optional<IdfObject> translateHeatPumpWaterToWaterEquationFitHeating(model::HeatPumpWaterToWaterEquationFitHeating& modelObject);

boost::optional<IdfObject> translateHeatPumpPlantLoopEIRCooling(model::HeatPumpPlantLoopEIRCooling& modelObject);

boost::optional<IdfObject> translateHeatPumpPlantLoopEIRHeating(model::HeatPumpPlantLoopEIRHeating& modelObject);

boost::optional<IdfObject> translateHumidifierSteamElectric(model::HumidifierSteamElectric& modelObject);

boost::optional<IdfObject> translateHumidifierSteamGas(model::HumidifierSteamGas& modelObject);
Expand Down
Loading