Skip to content

Commit

Permalink
Update source and doc
Browse files Browse the repository at this point in the history
  • Loading branch information
rraustad committed Aug 19, 2023
1 parent 5b8a1f7 commit 06b0800
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 2 deletions.
Binary file added doc/input-output-reference/media/ASHP_Plant.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -463,7 +463,13 @@ \subsection{PlantEquipmentOperation:ChillerHeaterChangeover}\label{plantequipmen

Plant operation can difficult to control when air-to-water or water-to-water heat pumps are used as plant equipment. Individual machines can be operated either as cooling or heat devices at any given time. This object will poll the building to determine what type of loads are dominant and determine how the plant equipment should operate. Once the mode of operation is set the apparant plant loads are dispatched to equipment listed to meet those loads. For example, a heat pump capable of providing heating or cooling will be dispatched in heating mode. It is also possible to create a heat recovery heat pump connected between the heating and cooling plant loops where this heat pump can serve low loads on one plant while supplementing the operation of the other plant. Traditional plant controls cannot meet this type of equipment configuration. This object provides a supervisory controller can be used to control one heating and one cooling hydronic plant.

This object is used as a special plant operation scheme intended for a specific type of plant with both heating and cooling plant loops served by heat pumps which can switch between heating and cooling. EnergyPlus's usual plant operation schemes focus on one plant at a time, however the need to cleanly control heat pumps switching between heating and cooling modes requires an operation scheme that considers both the heating and cooling plant loops at the same time. This object is intended to allow controlling both heating and cooling heating plants served by heat pumps that can changeover between heating and cooling. The main focus is air source heat pumps serving seperate cooling and heating plant loops. The scheme is also able to control operation of secondary heating and cooling loops. The fullest application of this scheme include boiler backup and control of a special water to water heat pump situated to exchange heat between the return hot water and return chilled water on the secondary loops.
This object is used as a special plant operation scheme intended for a specific type of plant with both heating and cooling plant loops served by heat pumps which can switch between heating and cooling. EnergyPlus's usual plant operation schemes focus on one plant at a time, however the need to cleanly control heat pumps switching between heating and cooling modes requires an operation scheme that considers both the heating and cooling plant loops at the same time. This object is intended to allow controlling both heating and cooling heating plants served by heat pumps that can changeover between heating and cooling. The main focus is air source heat pumps serving seperate cooling and heating plant loops. The scheme is also able to control operation of secondary heating and cooling loops. The fullest application of this scheme include boiler backup and control of a special water to water heat pump situated to exchange heat between the return hot water and return chilled water on the secondary loops. The following diagram shows the plant configuration supported by this supervisory controller.

\begin{figure}[hbtp]
\centering
\includegraphics[width=1.0\textwidth, height=1.0\textheight, keepaspectratio=true]{media/ASHP_Plant.png}
\caption{Plant Configuration for Air Source Heat Pump Supervisory Control} \protect \label{fig:IO-ref-ASHP-Plant-Diag}
\end{figure}

This operation scheme also acts like a setpoint manager. It calculates and applies setpoints to the outlet nodes of managed equipment, heat exchangers used for primary/secondary connections, boilers, and supply loop outlet nodes. Traditional setpoint managers may be needed to get input past certain checks, but those are overwritten when using this supervisory plant controller. The heat pumps are controlled by setting a temperature setpoint on the system node for the load side outlet node. The setpoints for heating plants are adjusted using an outdoor air reset and control scheme. The The PlantLoop's input for the field called Load Distribution Scheme is not applied because the plant loads are not distributed explicitly, rather machines are turned on and off and setpoints are applied at the outlet of the heat pumps.

Expand Down
9 changes: 8 additions & 1 deletion src/EnergyPlus/PlantLoopHeatPumpEIR.cc
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@
#include <EnergyPlus/DataHVACGlobals.hh>
#include <EnergyPlus/DataIPShortCuts.hh>
#include <EnergyPlus/DataLoopNode.hh>
#include <EnergyPlus/DataPrecisionGlobals.hh>
#include <EnergyPlus/DataSizing.hh>
#include <EnergyPlus/FluidProperties.hh>
#include <EnergyPlus/General.hh>
Expand Down Expand Up @@ -93,7 +94,13 @@ void EIRPlantLoopHeatPump::simulate(

if (this->waterSource) {
this->setOperatingFlowRatesWSHP(state, FirstHVACIteration);
if (calledFromLocation.loopNum == this->sourceSidePlantLoc.loopNum) { // condenser side
if (calledFromLocation.loopNum == this->sourceSidePlantLoc.loopNum) { // condenser side
Real64 sourceQdotArg = 0.0; // TRANE, pass negative if heat pump heating
if (this->EIRHPType == DataPlant::PlantEquipmentType::HeatPumpEIRHeating) { // TRANE
sourceQdotArg = this->sourceSideHeatTransfer * DataPrecisionGlobals::constant_minusone; // TRANE
} else { // TRANE
sourceQdotArg = this->sourceSideHeatTransfer; // TRANE
} // TRANE

This comment has been minimized.

Copy link
@Myoldmopar

Myoldmopar Sep 20, 2023

Member

Here it is, it's already in place. OK, so we are tracking the heat transfer direction the right way now when we call UpdateChillerComponentCondenserSide. That's good, I had forgotten this was part of that other heat pump PR.

@bonnema this is just a different way to do the fix that I had in place to get the condenser side heat transfer matching, and it's already in develop. The other notable difference was that the wrong temperature was being used for Cp calculations. I will still fix that up as I do final polishing for the release.

PlantUtilities::UpdateChillerComponentCondenserSide(state,
this->sourceSidePlantLoc.loopNum,
this->sourceSidePlantLoc.loopSideNum,
Expand Down

0 comments on commit 06b0800

Please sign in to comment.