From c894587d9257067cc05f15681daa0142f8c1fe4d Mon Sep 17 00:00:00 2001 From: "Michael J. Witte" Date: Mon, 28 Oct 2024 20:02:50 -0500 Subject: [PATCH] Fix chiller off when condenser flow is zero for all other chillers --- src/EnergyPlus/ChillerAbsorption.cc | 1 + src/EnergyPlus/ChillerElectricASHRAE205.cc | 7 ++++++- src/EnergyPlus/ChillerIndirectAbsorption.cc | 3 ++- src/EnergyPlus/ChillerReformulatedEIR.cc | 5 ++++- src/EnergyPlus/PlantChillers.cc | 20 ++++++++++++++++---- 5 files changed, 29 insertions(+), 7 deletions(-) diff --git a/src/EnergyPlus/ChillerAbsorption.cc b/src/EnergyPlus/ChillerAbsorption.cc index 879e1725eda..ab707456f3f 100644 --- a/src/EnergyPlus/ChillerAbsorption.cc +++ b/src/EnergyPlus/ChillerAbsorption.cc @@ -1728,6 +1728,7 @@ void BLASTAbsorberSpecs::calculate(EnergyPlusData &state, Real64 &MyLoad, bool R this->CondOutletTemp = state.dataLoopNodes->Node(this->CondInletNodeNum).Temp; this->CondMassFlowRate = 0.0; this->QCondenser = 0.0; + MyLoad = 0.0; return; // V7 plant upgrade, no longer fatal here anymore, set some things and return } diff --git a/src/EnergyPlus/ChillerElectricASHRAE205.cc b/src/EnergyPlus/ChillerElectricASHRAE205.cc index 77786d58266..00fc1e5a1d2 100644 --- a/src/EnergyPlus/ChillerElectricASHRAE205.cc +++ b/src/EnergyPlus/ChillerElectricASHRAE205.cc @@ -1337,7 +1337,12 @@ void ASHRAE205ChillerSpecs::calculate(EnergyPlusData &state, Real64 &MyLoad, boo PlantUtilities::PullCompInterconnectTrigger( state, this->CWPlantLoc, this->CondMassFlowIndex, this->CDPlantLoc, DataPlant::CriteriaType::MassFlowRate, this->CondMassFlowRate); - if (this->CondMassFlowRate < DataBranchAirLoopPlant::MassFlowTolerance) return; + if (this->CondMassFlowRate < DataBranchAirLoopPlant::MassFlowTolerance) { + MyLoad = 0.0; + this->Power = standbyPower; + this->AmbientZoneGain = standbyPower; + return; + } } Real64 EvapOutletTempSetPoint(0.0); // Evaporator outlet temperature setpoint [C] switch (state.dataPlnt->PlantLoop(PlantLoopNum).LoopDemandCalcScheme) { diff --git a/src/EnergyPlus/ChillerIndirectAbsorption.cc b/src/EnergyPlus/ChillerIndirectAbsorption.cc index 9a60e43c688..3f9c435d173 100644 --- a/src/EnergyPlus/ChillerIndirectAbsorption.cc +++ b/src/EnergyPlus/ChillerIndirectAbsorption.cc @@ -1604,7 +1604,7 @@ void IndirectAbsorberSpecs::sizeChiller(EnergyPlusData &state) } } -void IndirectAbsorberSpecs::calculate(EnergyPlusData &state, Real64 const MyLoad, bool const RunFlag) +void IndirectAbsorberSpecs::calculate(EnergyPlusData &state, Real64 MyLoad, bool const RunFlag) { // SUBROUTINE INFORMATION: // AUTHOR R. Raustad (FSEC) @@ -1999,6 +1999,7 @@ void IndirectAbsorberSpecs::calculate(EnergyPlusData &state, Real64 const MyLoad this->CondOutletTemp = CondInletTemp; this->CondMassFlowRate = 0.0; this->QCondenser = 0.0; + MyLoad = 0.0; return; // V7 plant upgrade, no longer fatal here anymore... set some things and return } diff --git a/src/EnergyPlus/ChillerReformulatedEIR.cc b/src/EnergyPlus/ChillerReformulatedEIR.cc index d1922a404c9..dedf512b681 100644 --- a/src/EnergyPlus/ChillerReformulatedEIR.cc +++ b/src/EnergyPlus/ChillerReformulatedEIR.cc @@ -2147,7 +2147,10 @@ void ReformulatedEIRChillerSpecs::calculate(EnergyPlusData &state, Real64 &MyLoa PlantUtilities::PullCompInterconnectTrigger( state, this->CWPlantLoc, this->CondMassFlowIndex, this->CDPlantLoc, DataPlant::CriteriaType::MassFlowRate, this->CondMassFlowRate); - if (this->CondMassFlowRate < DataBranchAirLoopPlant::MassFlowTolerance) return; + if (this->CondMassFlowRate < DataBranchAirLoopPlant::MassFlowTolerance) { + MyLoad = 0.0; + return; + } } Real64 FRAC = 1.0; Real64 EvapOutletTempSetPoint(0.0); // Evaporator outlet temperature setpoint [C] diff --git a/src/EnergyPlus/PlantChillers.cc b/src/EnergyPlus/PlantChillers.cc index b5ebfc224c5..7c1311fc15f 100644 --- a/src/EnergyPlus/PlantChillers.cc +++ b/src/EnergyPlus/PlantChillers.cc @@ -1468,7 +1468,10 @@ namespace PlantChillers { PlantUtilities::SetComponentFlowRate(state, this->CondMassFlowRate, this->CondInletNodeNum, this->CondOutletNodeNum, this->CDPlantLoc); PlantUtilities::PullCompInterconnectTrigger( state, this->CWPlantLoc, this->CondMassFlowIndex, this->CDPlantLoc, DataPlant::CriteriaType::MassFlowRate, this->CondMassFlowRate); - if (this->CondMassFlowRate < DataBranchAirLoopPlant::MassFlowTolerance) return; + if (this->CondMassFlowRate < DataBranchAirLoopPlant::MassFlowTolerance) { + MyLoad = 0.0; + return; + } } // LOAD LOCAL VARIABLES FROM DATA STRUCTURE (for code readability) @@ -3593,7 +3596,10 @@ namespace PlantChillers { PlantUtilities::SetComponentFlowRate(state, this->CondMassFlowRate, this->CondInletNodeNum, this->CondOutletNodeNum, this->CDPlantLoc); PlantUtilities::PullCompInterconnectTrigger( state, this->CWPlantLoc, this->CondMassFlowIndex, this->CDPlantLoc, DataPlant::CriteriaType::MassFlowRate, this->CondMassFlowRate); - if (this->CondMassFlowRate < DataBranchAirLoopPlant::MassFlowTolerance) return; + if (this->CondMassFlowRate < DataBranchAirLoopPlant::MassFlowTolerance) { + MyLoad = 0.0; + return; + } } // LOAD LOCAL VARIABLES FROM DATA STRUCTURE (for code readability) @@ -5605,7 +5611,10 @@ namespace PlantChillers { PlantUtilities::PullCompInterconnectTrigger( state, this->CWPlantLoc, this->CondMassFlowIndex, this->CDPlantLoc, DataPlant::CriteriaType::MassFlowRate, this->CondMassFlowRate); - if (this->CondMassFlowRate < DataBranchAirLoopPlant::MassFlowTolerance) return; + if (this->CondMassFlowRate < DataBranchAirLoopPlant::MassFlowTolerance) { + MyLoad = 0.0; + return; + } } // LOAD LOCAL VARIABLES FROM DATA STRUCTURE (for code readability) @@ -7313,7 +7322,10 @@ namespace PlantChillers { PlantUtilities::PullCompInterconnectTrigger( state, this->CWPlantLoc, this->CondMassFlowIndex, this->CDPlantLoc, DataPlant::CriteriaType::MassFlowRate, this->CondMassFlowRate); - if (this->CondMassFlowRate < DataBranchAirLoopPlant::MassFlowTolerance) return; + if (this->CondMassFlowRate < DataBranchAirLoopPlant::MassFlowTolerance) { + MyLoad = 0.0; + return; + } } // If FlowLock is True, the new resolved mdot is used to update Power, QEvap, Qcond, and