Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
ccd7531
Naive IDD add Chiller:Electric:ASHRAE205
jmarrec Sep 15, 2022
22b2099
Adjust for ConnectionObject + ExternalFileNames
jmarrec Sep 15, 2022
75b2316
Make everything rquired-field where appropriate
jmarrec Sep 15, 2022
7f278fc
Commit stub files
jmarrec Sep 15, 2022
65b57af
Switch the Ambient Temperature Outdoor Air Node Name to an alpha, not…
jmarrec Sep 15, 2022
4a9d4c4
First pass a model implementation for ChillerElectricASHRAE205
jmarrec Sep 15, 2022
c599454
Progress on model implementation + Gtest
jmarrec Sep 15, 2022
180ec11
Fixup model / tests + add a clone gtest
jmarrec Sep 16, 2022
dcb6cf1
Start implementing connection to Oil Cooler / Auxiliary Loop
jmarrec Sep 16, 2022
e4a2fc4
Add `addDemandBranchOnOilCoolerLoop` + Need to override the clone met…
jmarrec Sep 16, 2022
15f5ec5
Need to override edges too for the oil cooler and aux loops...
jmarrec Sep 16, 2022
201491a
Wrap up the model side!
jmarrec Sep 16, 2022
1a7147b
Write FT + FT test
jmarrec Sep 16, 2022
f53424a
Write a RT
jmarrec Sep 16, 2022
0a6d3fe
Extend FT testign to check the PlantEquipmentOperation
jmarrec Sep 16, 2022
c2e7925
Missed a field
jmarrec Sep 16, 2022
7de096e
Wrap up FT testing
jmarrec Sep 19, 2022
bc3e48e
Write a RT test and fix RT: when a Zone is RT'ed, a Space is returned…
jmarrec Sep 19, 2022
6d1b68e
Caught a few of the same issue in existing RTs: when a Zone is trnasl…
jmarrec Sep 19, 2022
2de0acb
Clarify why I'm not allowing ChillerElectricASRHAE205 to be present T…
jmarrec Sep 19, 2022
0cb44c7
Openstudio-resources reg tests showed that I must write a full path t…
jmarrec Sep 19, 2022
1679b2f
Cosmetic AutoSize > Autosize
jmarrec Sep 19, 2022
352b01f
OpenStudio-resources test showed that checking the loop isn't enough,…
jmarrec Sep 19, 2022
1211428
Disable Heat Recovery as it's 1) Not implemented in E+, 2) Make E+ Fatal
jmarrec Sep 19, 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
1 change: 1 addition & 0 deletions resources/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,7 @@ set(model_resources_src
model/offset_tests.osm
model/ParkUnder_Retail_Office_C2.osm
model/ASHRAECourthouse.osm
model/A205ExampleChiller.RS0001.a205.cbor
Copy link
Collaborator

Choose a reason for hiding this comment

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

How was this generated/obtained? Would we ever foresee it needing to get updated in the future?

Copy link
Collaborator Author

@jmarrec jmarrec Sep 28, 2022

Choose a reason for hiding this comment

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

)


Expand Down
121 changes: 121 additions & 0 deletions resources/energyplus/ProposedEnergy+.idd
Original file line number Diff line number Diff line change
Expand Up @@ -42357,6 +42357,127 @@ Boiler:Steam,
\retaincase
\default General

Chiller:Electric:ASHRAE205,
\min-fields 11
\memo This chiller model utilizes ASHRAE Standard 205 compliant representations
\memo for chillers (Representation Specification RS0001).
A1, \field Name
\type alpha
\reference Chillers
\required-field
\reference-class-name validPlantEquipmentTypes
\reference validPlantEquipmentNames
\reference-class-name validBranchEquipmentTypes
\reference validBranchEquipmentNames
A2, \field Representation File Name
\note The name of the ASHRAE205 RS0001 (chiller) representation file
\type alpha
\retaincase
\required-field
A3, \field Performance Interpolation Method
\type choice
\key Linear
\key Cubic
\default Linear
N1, \field Rated Capacity
\note Not yet implemented / reserved for future use. Full load capacity at AHRI 550/590 test conditions.
\note Used to scale representation data.
\type real
\units W
\minimum> 0.0
\autosizable
\default autosize
N2, \field Sizing Factor
\note Multiplies the autosized flow rates.
\type real
\minimum> 0.0
\default 1.0
A4 , \field Ambient Temperature Indicator
\note Used to determine standby losses
\required-field
\type choice
\key Schedule
\key Zone
\key Outdoors
A5 , \field Ambient Temperature Schedule Name
\type object-list
\object-list ScheduleNames
A6, \field Ambient Temperature Zone Name
\note Any energy imbalance on the chiller results in heat added to this zone.
\type object-list
\object-list ZoneNames
A7, \field Ambient Temperature Outdoor Air Node Name
\type node
\note required for Ambient Temperature Indicator=Outdoors
A8, \field Chilled Water Inlet Node Name
\type node
\required-field
A9, \field Chilled Water Outlet Node Name
\type node
\required-field
A10, \field Chilled Water Maximum Requested Flow Rate
\type real
\units m3/s
\minimum> 0
\autosizable
\ip-units gal/min
\default autosize
A11, \field Condenser Inlet Node Name
\type node
A12, \field Condenser Outlet Node Name
\type node
A13, \field Condenser Maximum Requested Flow Rate
\type real
\units m3/s
\minimum> 0
\autosizable
\ip-units gal/min
\default autosize
A14, \field Chiller Flow Mode
\note Select operating mode for fluid flow through the chiller. "NotModulated" is for
\note either variable or constant pumping with flow controlled by the external plant system.
\note "ConstantFlow" is for constant pumping with flow controlled by chiller to operate at
\note full design flow rate. "LeavingSetpointModulated" is for variable pumping with flow
\note controlled by chiller to vary flow to target a leaving temperature setpoint.
\type choice
\key ConstantFlow
\key LeavingSetpointModulated
\key NotModulated
\default NotModulated
A15, \field Oil Cooler Inlet Node Name
\note Use if the oil cooler uses an external cooling loop, otherwise the oil cooler will add
\note heat to the ambient conditions (i.e., it is air cooled).
\type node
A16, \field Oil Cooler Outlet Node Name
\type node
A17, \field Oil Cooler Design Flow Rate
\type real
\units m3/s
\minimum> 0
\ip-units gal/min
A18, \field Auxiliary Inlet Node Name
\note Use if the auxiliary components of the chiller use an external cooling loop, otherwise
\note the auxiliary components will add heat to the ambient conditions (i.e., they are air cooled).
\type node
A19, \field Auxiliary Outlet Node Name
\type node
A20, \field Auxiliary Cooling Design Flow Rate
\type real
\units m3/s
\minimum> 0
\ip-units gal/min
A21, \field Heat Recovery Inlet Node Name
\note Not yet implemented / reserved for future use. Heat recovery is not yet within scope of ASHRAE Stanard 205.
\type node
A21, \field Heat Recovery Outlet Node Name
\note Not yet implemented / reserved for future use. Heat recovery is not yet within scope of ASHRAE Stanard 205.
\type node
A23; \field End-Use Subcategory
\note Any text may be used here to categorize the end-uses in the ABUPS End Uses by Subcategory table.
\type alpha
\retaincase
\default General
Comment on lines +42360 to +42479
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

New IDD object. Everything is required-field as much as possible.

NOTE:

  • This object will eventually have FIVE loops: chilled water, condenser, heat recovery, oil cooler, and auxiliary
  • Heat Recovery is reserved as a Tertiary connection, but it's disabled right now in model SDK due to the fact that E+ doesn't implement it yet.


Chiller:Electric:EIR,
\min-fields 23
\memo This chiller model is the empirical model from the DOE-2 building Energy
Expand Down
Binary file not shown.
131 changes: 131 additions & 0 deletions resources/model/OpenStudio.idd
Original file line number Diff line number Diff line change
Expand Up @@ -13813,6 +13813,137 @@ OS:Chiller:Electric:ReformulatedEIR,
\retaincase
\default General

OS:Chiller:Electric:ASHRAE205,
\min-fields 12
\memo This chiller model utilizes ASHRAE Standard 205 compliant representations
\memo for chillers (Representation Specification RS0001).
A1, \field Handle
\type handle
\required-field
A2, \field Name
\type alpha
\reference Chillers
\required-field
\reference ConnectionObject
A3, \field Representation File Name
\note The name of the ASHRAE205 RS0001 (chiller) representation file
\type object-list
\object-list ExternalFileNames
\required-field
A4, \field Performance Interpolation Method
\type choice
\key Linear
\key Cubic
\required-field
Copy link
Collaborator

Choose a reason for hiding this comment

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

Using requireds 👍

N1, \field Rated Capacity
\note Not yet implemented / reserved for future use. Full load capacity at AHRI 550/590 test conditions.
\note Used to scale representation data.
\type real
\units W
\minimum> 0.0
\autosizable
\required-field
N2, \field Sizing Factor
\note Multiplies the autosized flow rates.
\type real
\minimum> 0.0
\required-field
A5 , \field Ambient Temperature Indicator
\note Used to determine standby losses
\required-field
\type choice
\key Schedule
\key Zone
\key Outdoors
A6 , \field Ambient Temperature Schedule Name
\type object-list
\object-list ScheduleNames
A7, \field Ambient Temperature Zone Name
\note Any energy imbalance on the chiller results in heat added to this zone.
\type object-list
\object-list ThermalZoneNames
A8, \field Ambient Temperature Outdoor Air Node Name
\type alpha
\note required for Ambient Temperature Indicator=Outdoors
A9, \field Chilled Water Inlet Node Name
\type object-list
\object-list ConnectionNames
\required-field
A10, \field Chilled Water Outlet Node Name
\type object-list
\object-list ConnectionNames
\required-field
A11, \field Chilled Water Maximum Requested Flow Rate
\type real
\units m3/s
\minimum> 0
\autosizable
\ip-units gal/min
\required-field
A12, \field Condenser Inlet Node Name
\type object-list
\object-list ConnectionNames
A13, \field Condenser Outlet Node Name
\type object-list
\object-list ConnectionNames
A14, \field Condenser Maximum Requested Flow Rate
\type real
\units m3/s
\minimum> 0
\autosizable
\ip-units gal/min
\required-field
A15, \field Chiller Flow Mode
\note Select operating mode for fluid flow through the chiller. "NotModulated" is for
\note either variable or constant pumping with flow controlled by the external plant system.
\note "ConstantFlow" is for constant pumping with flow controlled by chiller to operate at
\note full design flow rate. "LeavingSetpointModulated" is for variable pumping with flow
\note controlled by chiller to vary flow to target a leaving temperature setpoint.
\type choice
\key ConstantFlow
\key LeavingSetpointModulated
\key NotModulated
\required-field
A16, \field Oil Cooler Inlet Node Name
\note Use if the oil cooler uses an external cooling loop, otherwise the oil cooler will add
\note heat to the ambient conditions (i.e., it is air cooled).
\type object-list
\object-list ConnectionNames
A17, \field Oil Cooler Outlet Node Name
\type object-list
\object-list ConnectionNames
A18, \field Oil Cooler Design Flow Rate
\type real
\units m3/s
\minimum> 0
\ip-units gal/min
A19, \field Auxiliary Inlet Node Name
\note Use if the auxiliary components of the chiller use an external cooling loop, otherwise
\note the auxiliary components will add heat to the ambient conditions (i.e., they are air cooled).
\type object-list
\object-list ConnectionNames
A20, \field Auxiliary Outlet Node Name
\type object-list
\object-list ConnectionNames
A21, \field Auxiliary Cooling Design Flow Rate
\type real
\units m3/s
\minimum> 0
\ip-units gal/min
A22, \field Heat Recovery Inlet Node Name
\note Not yet implemented / reserved for future use. Heat recovery is not yet within scope of ASHRAE Stanard 205.
\type object-list
\object-list ConnectionNames
A22, \field Heat Recovery Outlet Node Name
\note Not yet implemented / reserved for future use. Heat recovery is not yet within scope of ASHRAE Stanard 205.
\type object-list
\object-list ConnectionNames
A24; \field End-Use Subcategory
\note Any text may be used here to categorize the end-uses in the ABUPS End Uses by Subcategory table.
\type alpha
\retaincase
\default General

OS:CentralHeatPumpSystem,
A1, \field Handle
\type handle
Expand Down
3 changes: 3 additions & 0 deletions src/energyplus/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ set(${target_name}_src
ForwardTranslator/ForwardTranslateCFactorUndergroundWallConstruction.cpp
ForwardTranslator/ForwardTranslateChillerAbsorption.cpp
ForwardTranslator/ForwardTranslateChillerAbsorptionIndirect.cpp
ForwardTranslator/ForwardTranslateChillerElectricASHRAE205.cpp
ForwardTranslator/ForwardTranslateChillerElectricEIR.cpp
ForwardTranslator/ForwardTranslateChillerElectricReformulatedEIR.cpp
ForwardTranslator/ForwardTranslateChillerHeaterPerformanceElectricEIR.cpp
Expand Down Expand Up @@ -457,6 +458,7 @@ set(${target_name}_src
ReverseTranslator/ReverseTranslateBuilding.cpp
ReverseTranslator/ReverseTranslateBuildingSurfaceDetailed.cpp
ReverseTranslator/ReverseTranslateControllerOutdoorAir.cpp
ReverseTranslator/ReverseTranslateChillerElectricASHRAE205.cpp
ReverseTranslator/ReverseTranslateCoilCoolingDX.cpp
ReverseTranslator/ReverseTranslateCoilCoolingDXCurveFitPerformance.cpp
ReverseTranslator/ReverseTranslateCoilCoolingDXCurveFitOperatingMode.cpp
Expand Down Expand Up @@ -659,6 +661,7 @@ set(${target_name}_test_src
Test/AvailabilityManagerNightCycle_GTest.cpp
Test/AvailabilityManagerHybridVentilation_GTest.cpp
Test/Building_GTest.cpp
Test/ChillerElectricASHRAE205_GTest.cpp
Test/CentralHeatPumpSystem_GTest.cpp
Test/CoilCoolingDX_GTest.cpp
Test/CoilCoolingDXCurveFitPerformance_GTest.cpp
Expand Down
5 changes: 5 additions & 0 deletions src/energyplus/ForwardTranslator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -937,6 +937,11 @@ namespace energyplus {
retVal = translateChillerAbsorptionIndirect(mo);
break;
}
case openstudio::IddObjectType::OS_Chiller_Electric_ASHRAE205: {
auto mo = modelObject.cast<ChillerElectricASHRAE205>();
retVal = translateChillerElectricASHRAE205(mo);
break;
}
case openstudio::IddObjectType::OS_Chiller_Electric_EIR: {
model::ChillerElectricEIR chiller = modelObject.cast<ChillerElectricEIR>();
retVal = translateChillerElectricEIR(chiller);
Expand Down
3 changes: 3 additions & 0 deletions src/energyplus/ForwardTranslator.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,7 @@ namespace model {
class CFactorUndergroundWallConstruction;
class ChillerAbsorption;
class ChillerAbsorptionIndirect;
class ChillerElectricASHRAE205;
class ChillerElectricEIR;
class ChillerElectricReformulatedEIR;
class ChillerHeaterPerformanceElectricEIR;
Expand Down Expand Up @@ -747,6 +748,8 @@ namespace energyplus {

boost::optional<IdfObject> translateChillerAbsorptionIndirect(model::ChillerAbsorptionIndirect& modelObject);

boost::optional<IdfObject> translateChillerElectricASHRAE205(model::ChillerElectricASHRAE205& modelObject);

boost::optional<IdfObject> translateChillerElectricEIR(model::ChillerElectricEIR& modelObject);

boost::optional<IdfObject> translateChillerElectricReformulatedEIR(model::ChillerElectricReformulatedEIR& modelObject);
Expand Down
Loading