Conversation
|
|
Here are the results for the (GAHP) defect file after updating it to 25.2 and with this branch. Here's the updated file: |
|
ESO diff explanation: |
lymereJ
left a comment
There was a problem hiding this comment.
Code changes walkthrough:
| : this->sourceSideDesignMassFlowRate; | ||
|
|
||
| if (!FirstHVACIteration && this->flowControl == DataPlant::FlowMode::VariableSpeedPump) { | ||
| if (!FirstHVACIteration && this->flowMode == DataPlant::FlowMode::VariableSpeedPump) { |
There was a problem hiding this comment.
Use flowMode to be consistent with the enum class name.
| } | ||
| } | ||
|
|
||
| void EIRFuelFiredHeatPump::setOperatingFlowRatesASHP(EnergyPlusData &state, bool FirstHVACIteration, Real64 const currentLoad) |
There was a problem hiding this comment.
Set the flow rates at the same time as EIRPlantLoopHeatPumps. Move the logic from EIRFuelFiredHeatPump::doPhysics here.
| if (partLoadRatio < this->minPLR) { | ||
| this->fuelRate = 0.0; | ||
| this->powerUsage = 0.0; | ||
| } else { | ||
| this->fuelRate = this->loadSideHeatTransfer / (this->referenceCOP * CRF) * eirModifierFuncPLR * eirModifierFuncTemp * eirDefrost; | ||
| this->fuelRate = this->loadSideHeatTransfer / (this->referenceCOP * CRF) * eirModifierFuncPLR * eirModifierFuncTemp * eirDefrost; |
There was a problem hiding this comment.
The previous behavior was to zero out the fuel rate when the partLoadRatio was less than the minPLR which triggered instances where the unit was not using any energy.
| bool firstHVAC = true; | ||
| Real64 curLoad = 100; | ||
| bool runFlag = true; | ||
| Real64 constexpr specifiedLoadSetpoint = 45; | ||
| state->dataLoopNodes->Node(thisHeatingPLHP->loadSideNodes.outlet).TempSetPoint = specifiedLoadSetpoint; | ||
| state->dataLoopNodes->Node(thisHeatingPLHP->loadSideNodes.inlet).Temp = 40; | ||
| state->dataLoopNodes->Node(thisHeatingPLHP->sourceSideNodes.inlet).Temp = 30; | ||
| thisHeatingPLHP->simulate(*state, myLoadLocation, firstHVAC, curLoad, runFlag); | ||
| EXPECT_TRUE(thisHeatingPLHP->fuelRate > 0); | ||
| EXPECT_NEAR(5.0, thisHeatingPLHP->loadSideMassFlowRate, 0.001); | ||
| } |
There was a problem hiding this comment.
Test to check that fuelRate > 0 when partLoadRatio < minPLR.
| { | ||
| bool firstHVAC = false; | ||
| Real64 curLoad = 2000; | ||
| bool runFlag = true; | ||
| Real64 constexpr expectedLoadMassFlowRate = 0.0478; | ||
| Real64 constexpr specifiedLoadSetpoint = 45; | ||
| state->dataLoopNodes->Node(thisHeatingPLHP->loadSideNodes.outlet).TempSetPoint = specifiedLoadSetpoint; | ||
| state->dataLoopNodes->Node(thisHeatingPLHP->loadSideNodes.inlet).Temp = 35; | ||
| state->dataLoopNodes->Node(thisHeatingPLHP->sourceSideNodes.inlet).Temp = 30; | ||
| thisHeatingPLHP->flowMode = DataPlant::FlowMode::LeavingSetpointModulated; | ||
| thisHeatingPLHP->simulate(*state, myLoadLocation, firstHVAC, curLoad, runFlag); | ||
| EXPECT_NEAR(expectedLoadMassFlowRate, thisHeatingPLHP->loadSideMassFlowRate, 0.001); | ||
| } |
There was a problem hiding this comment.
Test to check the variable flow logic.
# Conflicts: # src/EnergyPlus/PlantLoopHeatPumpEIR.cc
|
| } | ||
| this->powerUsage = this->nominalAuxElecPower * eirAuxElecFuncTemp * eirAuxElecFuncPLR; | ||
| if (this->defrostType == DefrostType::Timed) { | ||
| this->powerUsage += this->defrostResistiveHeaterCap * this->defrostOpTimeFrac * reportingInterval; |
There was a problem hiding this comment.
Why is reportingInterval included here? It was included before but looks odd. It seems that defrostOpTimeFrac * reportingInterval = seconds and J/s * s = joules. So powerUsage += joules ??
There was a problem hiding this comment.
Yes, that does not seem correct. Should I make the change in this PR? Or, open an issue and fix it in a different one?
There was a problem hiding this comment.
I think go ahead and make the change here rather than opening a new PR.
|


Pull request overview
Description of the purpose of this PR
Fix gas-fired absorption flow requests.
Pull Request Author
Reviewer