NREL / EnergyPlus

EnergyPlus™ is a whole building energy simulation program that engineers, architects, and researchers use to model both energy consumption and water use in buildings.
https://energyplus.net
Other
1.12k stars 389 forks source link

Issues with Chiller:Electric:ASHRAE205 #9662

Closed jmarrec closed 2 years ago

jmarrec commented 2 years ago

Issue overview

Disclaimer: I realize this is a brand new object and not all of the functionality (eg: Heat Recovery) is implemented.

I'm wrapping this object in the OS SDK, and running into a few issues, this is a running list:

Details

Some additional details for this issue (if relevant):

Checklist

Add to this list or remove from it as applicable. This is a simple templated set of guidelines.

nealkruis commented 2 years ago

Some of these were fixed in a follow PR for bug freeze. @Myoldmopar should we try to get the rest of these cleaned up now, or hold off for the next release?

Myoldmopar commented 2 years ago

There's still a window of time to fix up at least the crash issues. Please go ahead and submit a PR if you are able.

tanaya-mankad commented 2 years ago

@jmarrec, I'm not immediately seeing any checks for inlet node validity in other plant objects, that should be applied here. (I think NodeInputManager::GetOnlySingleNode contains the primary error check.) Do you happen to know if this error occurs if you apply same file input mistake for other, conventional nodes, or other plant objects? Or would you mind posting your input file?

jmarrec commented 2 years ago

Take ElectricEIRChiller.idf, and modify chiller like this

diff --git a/testfiles/ElectricEIRChiller.idf b/testfiles/ElectricEIRChiller.idf
index 58f4912ae5..a437bd265f 100644
--- a/testfiles/ElectricEIRChiller.idf
+++ b/testfiles/ElectricEIRChiller.idf
@@ -1453,9 +1453,9 @@
     ,                        !- Fraction of Compressor Electric Consumption Rejected by Condenser
     5,                       !- Leaving Chilled Water Lower Temperature Limit {C}
     NotModulated,            !- Chiller Flow Mode
-    0.0,                     !- Design Heat Recovery Water Flow Rate {m3/s}
-    ,                        !- Heat Recovery Inlet Node Name
-    ;                        !- Heat Recovery Outlet Node Name
+    1.0,                     !- Design Heat Recovery Water Flow Rate {m3/s}
+    Inexistant Node 1,                        !- Heat Recovery Inlet Node Name
+    Inexistant Node 2;                        !- Heat Recovery Outlet Node Name

eplusout.err:

   ** Severe  ** Plant Component Chiller:Electric:EIR called "BIG CHILLER" was not found on any plant loops.
   **   ~~~   ** Looking for matching inlet Node="INEXISTANT NODE 1".
   **  Fatal  ** InitElectricEIRChiller: Program terminated due to previous condition(s).

So it bails out early and cleanly.

jmarrec commented 2 years ago

Now take ASHRAE901_OfficeLarge_STD2019_Denver_Chiller205_Detailed.idf

First, let's remove the Auxiliary connection on Chiller2, make sure it still runs (it does)

@@ -12648,33 +12619,29 @@
   Branch,
     CoolSys1 Auxiliary Cooling Branch,  !- Name
     ,                        !- Pressure Drop Curve Name
     Chiller:Electric:ASHRAE205,      !- Component 1 Object Type
     CoolSys1 Chiller1,           !- Component 1 Name
     CoolSys1 Chiller1 Oil Cooler Inlet Node,  !- Component 1 Inlet Node Name
     CoolSys1 Chiller1 Oil Cooler Aux Node,  !- Component 1 Outlet Node Name
     Chiller:Electric:ASHRAE205,      !- Component 2 Object Type
     CoolSys1 Chiller1,           !- Component 2 Name
     CoolSys1 Chiller1 Oil Cooler Aux Node,  !- Component 2 Inlet Node Name
     CoolSys1 Chiller2 Oil Cooler Inlet Node,  !- Component 2 Outlet Node Name
     Chiller:Electric:ASHRAE205,      !- Component 3 Object Type
     CoolSys1 Chiller2,           !- Component 3 Name
     CoolSys1 Chiller2 Oil Cooler Inlet Node,  !- Component 3 Inlet Node Name
-    CoolSys1 Chiller2 Oil Cooler Aux Node,  !- Component 3 Outlet Node Name
-    Chiller:Electric:ASHRAE205,      !- Component 4 Object Type
-    CoolSys1 Chiller2,           !- Component 4 Name
-    CoolSys1 Chiller2 Oil Cooler Aux Node,  !- Component 4 Inlet Node Name
-    CoolSys1 Chiller2 Auxiliary Outlet Node;  !- Component 4 Outlet Node Name
+    CoolSys1 Chiller2 Oil Cooler Aux Node;  !- Component 3 Outlet Node Name

@@ -13907,42 +13874,42 @@
   Chiller:Electric:ASHRAE205,
     CoolSys1 Chiller2,       !- Name
     CoolSys1-Chiller-Detailed.RS0001.a205.cbor,  !- Representation File Name
     Cubic,                   !- Performance Interpolation Method
     ,                        !- Reference Capacity
     1.0,                     !- Sizing Factor
     Zone,                    !- Ambient Temperature Indicator
     ,                        !- Ambient Temperature Schedule Name
     Basement,                !- Ambient Temperature Zone Name
     ,                        !- Ambient Temperature Outdoor Air Node Name
     CoolSys1 Pump-CoolSys1 Chiller2Node,  !- Chilled Water Inlet Node Name
     CoolSys1 Supply Equipment Outlet Node 2,  !- Chilled Water Outlet Node Name
     0.04280733733343951,     !- Chilled Water Maximum Requested Flow Rate
     CoolSys1 Chiller2 Water Inlet Node,  !- Condenser Inlet Node Name
     CoolSys1 Chiller2 Water Outlet Node,  !- Condenser Outlet Node Name
     0.05517136253079016,     !- Condenser Maximum Requested Flow Rate
     ConstantFlow,            !- Chiller Flow Mode Type
     CoolSys1 Chiller2 Oil Cooler Inlet Node,  !- Oil Cooler Inlet Node Name
     CoolSys1 Chiller2 Oil Cooler Aux Node,  !- Oil Cooler Outlet Node Name
     0.001,                   !- Oil Cooler Design Flow Rate
-    CoolSys1 Chiller2 Oil Cooler Aux Node,  !- Auxiliary Inlet Node Name
-    CoolSys1 Chiller2 Auxiliary Outlet Node,  !- Auxiliary Outlet Node Name
+    ,  !- Auxiliary Inlet Node Name
+    ,  !- Auxiliary Outlet Node Name
     0.001;                   !- Auxiliary Cooling Design Flow Rate

Now add wrong nodes to the Auxiliary Inlet/Outlet:

@@ -13874,42 +13874,42 @@
   Chiller:Electric:ASHRAE205,
     CoolSys1 Chiller2,       !- Name
     CoolSys1-Chiller-Detailed.RS0001.a205.cbor,  !- Representation File Name
     Cubic,                   !- Performance Interpolation Method
     ,                        !- Reference Capacity
     1.0,                     !- Sizing Factor
     Zone,                    !- Ambient Temperature Indicator
     ,                        !- Ambient Temperature Schedule Name
     Basement,                !- Ambient Temperature Zone Name
     ,                        !- Ambient Temperature Outdoor Air Node Name
     CoolSys1 Pump-CoolSys1 Chiller2Node,  !- Chilled Water Inlet Node Name
     CoolSys1 Supply Equipment Outlet Node 2,  !- Chilled Water Outlet Node Name
     0.04280733733343951,     !- Chilled Water Maximum Requested Flow Rate
     CoolSys1 Chiller2 Water Inlet Node,  !- Condenser Inlet Node Name
     CoolSys1 Chiller2 Water Outlet Node,  !- Condenser Outlet Node Name
     0.05517136253079016,     !- Condenser Maximum Requested Flow Rate
     ConstantFlow,            !- Chiller Flow Mode Type
     CoolSys1 Chiller2 Oil Cooler Inlet Node,  !- Oil Cooler Inlet Node Name
     CoolSys1 Chiller2 Oil Cooler Aux Node,  !- Oil Cooler Outlet Node Name
     0.001,                   !- Oil Cooler Design Flow Rate
-    ,  !- Auxiliary Inlet Node Name
-    ,  !- Auxiliary Outlet Node Name
+    Inexistant Node 1,  !- Auxiliary Inlet Node Name
+    Inexistant Node 2,  !- Auxiliary Outlet Node Name
     0.001;                   !- Auxiliary Cooling Design Flow Rate

This isn't as clean, and in Debug you actual get an assertion contains(i) failed

Program Version,EnergyPlus, Version 22.2.0-599c64df55, YMD=2022.09.20 10:07,
   ************* Beginning Zone Sizing Calculations
   ** Warning ** Weather file location will be used rather than entered (IDF) Location object.
   **   ~~~   ** ..Location object=DENVER-AURORA-BUCKLEY.AFB_CO_USA WMO=724695
   **   ~~~   ** ..Weather File Location=Chicago Ohare Intl Ap IL USA TMY3 WMO#=725300
   **   ~~~   ** ..due to location differences, Latitude difference=[2.26] degrees, Longitude difference=[16.83] degrees.
   **   ~~~   ** ..Time Zone difference=[1.0] hour(s), Elevation difference=[88.35] percent, [1525.00] meters.
   ** Warning ** SetUpDesignDay: Entered DesignDay Barometric Pressure=82237 differs by more than 10% from Standard Barometric Pressure=98934.
   **   ~~~   ** ...occurs in DesignDay=DENVER-AURORA-BUCKLEY.AFB_CO_USA ANN HTG 99.6% CONDNS DB, Standard Pressure (based on elevation) will be used.
   ** Warning ** ProcessScheduleInput: Schedule:Constant="VAV_BOT WITH REHEAT MAX OA FRACTION", Blank Schedule Type Limits Name input -- will not be validated.
   ** Warning ** ProcessScheduleInput: Schedule:Constant="VAV_MID WITH REHEAT MAX OA FRACTION", Blank Schedule Type Limits Name input -- will not be validated.
   ** Warning ** ProcessScheduleInput: Schedule:Constant="VAV_TOP WITH REHEAT MAX OA FRACTION", Blank Schedule Type Limits Name input -- will not be validated.
   ** Warning ** CheckUsedConstructions: There are 19 nominally unused constructions in input.
   **   ~~~   ** For explicit details on each unused construction, use Output:Diagnostics,DisplayExtraWarnings;
   ** Warning ** GetDaylightingControls: Fraction of zone or space controlled by the Daylighting reference points is < 1.0.
   **   ~~~   ** ..discovered in Daylighting:Controls="PERIMETER_BOT_ZN_1_DAYLCTRL", only 0.524 of the zone or space is controlled.
   ** Warning ** GetDaylightingControls: Fraction of zone or space controlled by the Daylighting reference points is < 1.0.
   **   ~~~   ** ..discovered in Daylighting:Controls="PERIMETER_BOT_ZN_2_DAYLCTRL", only 0.524 of the zone or space is controlled.
   ** Warning ** GetDaylightingControls: Fraction of zone or space controlled by the Daylighting reference points is < 1.0.
   **   ~~~   ** ..discovered in Daylighting:Controls="PERIMETER_BOT_ZN_3_DAYLCTRL", only 0.524 of the zone or space is controlled.
   ** Warning ** GetDaylightingControls: Fraction of zone or space controlled by the Daylighting reference points is < 1.0.
   **   ~~~   ** ..discovered in Daylighting:Controls="PERIMETER_BOT_ZN_4_DAYLCTRL", only 0.524 of the zone or space is controlled.
   ** Warning ** GetDaylightingControls: Fraction of zone or space controlled by the Daylighting reference points is < 1.0.
   **   ~~~   ** ..discovered in Daylighting:Controls="PERIMETER_MID_ZN_1_DAYLCTRL", only 0.524 of the zone or space is controlled.
   ** Warning ** GetDaylightingControls: Fraction of zone or space controlled by the Daylighting reference points is < 1.0.
   **   ~~~   ** ..discovered in Daylighting:Controls="PERIMETER_MID_ZN_2_DAYLCTRL", only 0.524 of the zone or space is controlled.
   ** Warning ** GetDaylightingControls: Fraction of zone or space controlled by the Daylighting reference points is < 1.0.
   **   ~~~   ** ..discovered in Daylighting:Controls="PERIMETER_MID_ZN_3_DAYLCTRL", only 0.524 of the zone or space is controlled.
   ** Warning ** GetDaylightingControls: Fraction of zone or space controlled by the Daylighting reference points is < 1.0.
   **   ~~~   ** ..discovered in Daylighting:Controls="PERIMETER_MID_ZN_4_DAYLCTRL", only 0.524 of the zone or space is controlled.
   ** Warning ** GetDaylightingControls: Fraction of zone or space controlled by the Daylighting reference points is < 1.0.
   **   ~~~   ** ..discovered in Daylighting:Controls="PERIMETER_TOP_ZN_1_DAYLCTRL", only 0.524 of the zone or space is controlled.
   ** Warning ** GetDaylightingControls: Fraction of zone or space controlled by the Daylighting reference points is < 1.0.
   **   ~~~   ** ..discovered in Daylighting:Controls="PERIMETER_TOP_ZN_2_DAYLCTRL", only 0.524 of the zone or space is controlled.
   ** Warning ** GetDaylightingControls: Fraction of zone or space controlled by the Daylighting reference points is < 1.0.
   **   ~~~   ** ..discovered in Daylighting:Controls="PERIMETER_TOP_ZN_3_DAYLCTRL", only 0.524 of the zone or space is controlled.
   ** Warning ** GetDaylightingControls: Fraction of zone or space controlled by the Daylighting reference points is < 1.0.
   **   ~~~   ** ..discovered in Daylighting:Controls="PERIMETER_TOP_ZN_4_DAYLCTRL", only 0.524 of the zone or space is controlled.
   ** Severe  ** Plant Component Chiller:Electric:ASHRAE205 called "COOLSYS1 CHILLER2" was not found on any plant loops.
   **   ~~~   ** Looking for matching inlet Node="INEXISTANT NODE 1".
   ** Warning ** SetUpDesignDay: Entered DesignDay Barometric Pressure=82237 differs by more than 10% from Standard Barometric Pressure=98934.
   **   ~~~   ** ...occurs in DesignDay=DENVER-AURORA-BUCKLEY.AFB_CO_USA ANN CLG .4% CONDNS DB=>MWB, Standard Pressure (based on elevation) will be used.
   ** Warning ** Calculated design heating load for zone=BASEMENT is zero.
   **   ~~~   ** Check Sizing:Zone and ZoneControl:Thermostat inputs.
   ** Warning ** Calculated design heating load for zone=CORE_BOTTOM is zero.
   **   ~~~   ** Check Sizing:Zone and ZoneControl:Thermostat inputs.
   ** Warning ** Calculated design heating load for zone=DATACENTER_BOT_ZN_6 is zero.
   **   ~~~   ** Check Sizing:Zone and ZoneControl:Thermostat inputs.
   ** Warning ** Calculated design heating load for zone=DATACENTER_MID_ZN_6 is zero.
   **   ~~~   ** Check Sizing:Zone and ZoneControl:Thermostat inputs.
   ** Warning ** Calculated design heating load for zone=DATACENTER_TOP_ZN_6 is zero.
   **   ~~~   ** Check Sizing:Zone and ZoneControl:Thermostat inputs.
   ** Warning ** Calculated design heating load for zone=DATACENTER_BASEMENT_ZN_6 is zero.
   **   ~~~   ** Check Sizing:Zone and ZoneControl:Thermostat inputs.
   ************* Beginning System Sizing Calculations
   ************* Beginning Plant Sizing Calculations
   ** Warning ** SizeWaterCoil: Coil="CAV_BAS_COOLC", Cooling Coil has leaving humidity ratio > entering humidity ratio.
   **   ~~~   **     Wair,in =  6.412872E-003 [kgWater/kgDryAir]
   **   ~~~   **     Wair,out = 7.000000E-003 [kgWater/kgDryAir]
   **   ~~~   ** ....coil leaving humidity ratio will be reset to:
   **   ~~~   **     Wair,out = 6.412872E-003 [kgWater/kgDryAir]
   ** Warning ** SizeWaterCoil: Coil="VAV_BOT WITH REHEAT_COOLC", Cooling Coil has leaving humidity ratio > entering humidity ratio.
   **   ~~~   **     Wair,in =  6.415521E-003 [kgWater/kgDryAir]
   **   ~~~   **     Wair,out = 7.000000E-003 [kgWater/kgDryAir]
   **   ~~~   ** ....coil leaving humidity ratio will be reset to:
   **   ~~~   **     Wair,out = 6.415521E-003 [kgWater/kgDryAir]
   ** Warning ** SizeWaterCoil: Coil="VAV_MID WITH REHEAT_COOLC", Cooling Coil has leaving humidity ratio > entering humidity ratio.
   **   ~~~   **     Wair,in =  6.339082E-003 [kgWater/kgDryAir]
   **   ~~~   **     Wair,out = 7.000000E-003 [kgWater/kgDryAir]
   **   ~~~   ** ....coil leaving humidity ratio will be reset to:
   **   ~~~   **     Wair,out = 6.339082E-003 [kgWater/kgDryAir]
   ** Warning ** SizeWaterCoil: Coil="VAV_TOP WITH REHEAT_COOLC", Cooling Coil has leaving humidity ratio > entering humidity ratio.
   **   ~~~   **     Wair,in =  6.442769E-003 [kgWater/kgDryAir]
   **   ~~~   **     Wair,out = 7.000000E-003 [kgWater/kgDryAir]
   **   ~~~   ** ....coil leaving humidity ratio will be reset to:
   **   ~~~   **     Wair,out = 6.442769E-003 [kgWater/kgDryAir]
   ** Severe  ** SetComponentFlowRate: trapped plant loop index = 0, check component with inlet node named=INEXISTANT NODE 1
   ** Warning ** Water heater = SHWSYS1 WATER HEATER:  Recovery Efficiency and Energy Factor could not be calculated during the test for standard ratings
   **   ~~~   ** Setpoint was never recovered and/or heater never turned on
   ** Severe  ** SetComponentFlowRate: trapped plant loop index = 0, check component with inlet node named=INEXISTANT NODE 1
   ** Severe  ** SetComponentFlowRate: trapped plant loop index = 0, check component with inlet node named=INEXISTANT NODE 1
   ** Severe  ** SetComponentFlowRate: trapped plant loop index = 0, check component with inlet node named=INEXISTANT NODE 1
   ** Severe  ** SetComponentFlowRate: trapped plant loop index = 0, check component with inlet node named=INEXISTANT NODE 1
   ** Severe  ** SetComponentFlowRate: trapped plant loop index = 0, check component with inlet node named=INEXISTANT NODE 1
   ** Severe  ** SetComponentFlowRate: trapped plant loop index = 0, check component with inlet node named=INEXISTANT NODE 1
   ** Severe  ** SetComponentFlowRate: trapped plant loop index = 0, check component with inlet node named=INEXISTANT NODE 1
   ** Severe  ** SetComponentFlowRate: trapped plant loop index = 0, check component with inlet node named=INEXISTANT NODE 1
   ** Severe  ** SetComponentFlowRate: trapped plant loop index = 0, check component with inlet node named=INEXISTANT NODE 1
   ** Severe  ** SetComponentFlowRate: trapped plant loop index = 0, check component with inlet node named=INEXISTANT NODE 1
   ** Severe  ** SetComponentFlowRate: trapped plant loop index = 0, check component with inlet node named=INEXISTANT NODE 1
   ** Severe  ** SetComponentFlowRate: trapped plant loop index = 0, check component with inlet node named=INEXISTANT NODE 1
   ** Severe  ** SetComponentFlowRate: trapped plant loop index = 0, check component with inlet node named=INEXISTANT NODE 1
   ** Severe  ** SetComponentFlowRate: trapped plant loop index = 0, check component with inlet node named=INEXISTANT NODE 1
   ** Severe  ** SetComponentFlowRate: trapped plant loop index = 0, check component with inlet node named=INEXISTANT NODE 1
   ** Severe  ** SetComponentFlowRate: trapped plant loop index = 0, check component with inlet node named=INEXISTANT NODE 1
   ** Severe  ** basic_string::_M_create
   ************* Warning:  Node connection errors not checked - most system input has not been read (see previous warning).
   ************* Fatal error -- final processing.  Program exited before simulations began.  See previous error messages.
jmarrec commented 2 years ago

It's because this #if 0 #endif is misplaced: https://github.com/NREL/EnergyPlus/blob/599c64df5584701dc1c2020f9667c5f7a720fb34/src/EnergyPlus/ChillerElectricASHRAE205.cc#L516-L519

I'm going to push a branch with some fixes for this and the wrong handling of autosizable fields.

Please see https://github.com/NREL/EnergyPlus/compare/9662_ChillerElectricASHRAE205_Errors . You can reuse/hijack as you want.

Note: If you don't have time to address I can also take care of it...

jmarrec commented 2 years ago

Some of these were fixed in a follow PR for bug freeze

Note that I used the current develop in my testing after finding issues with 22.2.0 iofreeze. Is that PR not merged yet? Can you link to it in that case?

jmarrec commented 2 years ago

See defect file at https://github.com/NREL/EnergyPlusDevSupport/commit/d5e9115ce3117e552933c98e34edebbfd0a57962

(I tested with before and after my fix in https://github.com/NREL/EnergyPlusDevSupport/commit/d5e9115ce3117e552933c98e34edebbfd0a57962 and confirm that it works)

tanaya-mankad commented 2 years ago

Hi @jmarrec, the follow-up PR was merged on Sept 15, so it's probably what you have been working with. I'll merge your #endif fix into my branch so it will be incorporated. Will you push it before the end of your workday?

jmarrec commented 2 years ago

@tanaya-bigladder it's pushed. See the above comment it has a link: https://github.com/NREL/EnergyPlus/compare/9662_ChillerElectricASHRAE205_Errors