modelMainPump1Pipe

Main pump controller for 1 pipe networks, developed for reservoir network main circulation loop

Information

Controller for the main circulation pump.

This controller adjusts the pump speed in order to reduce it, unless the water temperature at the mixing points after the agents in the district is too high or too low, as measured by the difference to TMin and TMax. In that case, the pump speed is increased to prevent the loop getting too cold or too warm. The control is as follows: Let TMixMin and TMixMax be the minimum and maximum mixing temperatures. If TMax-TMixMax or TMixMin-TMin is too small, the pump speed is increased. If the difference is larger than dTSlo, then the pump speed is set to the minimum speed yPumMin. This calculation is done for both, TMixMin and TMixMax. The actual pump speed is then the larger of the two pump signals. Therefore, the pump speeds are calculated as shown in the figure below.


Image of the control that adjusts the pump speed

Moreover, if the parameter use_temperatureShift is set to true, then the district loop temperature is adjusted by changing the mass flow rate of the pump to increase the overall efficiency if there is net cooling or net heating on the loop. Specifically, if the district heating or cooling loop is in net heating (cooling) mode, it may be favorable to increase (decrease) the loop temperature, which can be done by increasing the pump speed. Whether the loop is in heating or cooling mode is determined based on the temperature differences across the loop sources, which are the inputs TSouIn and TSouOut. Each heat source or sink needs to be connected to one element of these vectorized input signals. This net difference is then used with a PI-controller to determine how much the slopes should be shifted in order to increase the pump speed. The shift of these slopes is indicated by the arrows in the figure. Note that this controller must be configured to be slow reacting, as it requires the feedback from the district heating and cooling loop. Furthermore, if the parameter use_constantHeaTemShift is set to true, then a constant temperature offset offTMax is added when only heating is present, this determination is done by checking that the cooling demand for each energy transfer station via QCoo is close to zero. This mode can used by itself or in conjuction with use_temperatureShift.

For a typical usage of this controller, see Buildings.DHC.Examples.Combined.SeriesVariableFlow.

Parameters

TypeNameDefaultDescription
IntegernMixNumber of mixing points after the substations
IntegernSouNumber of heat sources (and heat sinks)
IntegernBuiNumber of heat sources (and heat sinks)
RealyPumMin0.05Minimum pump speed
RealTMin281.15Minimum loop temperature
RealTMax291.15Maximum loop temperature
RealdTSlo2Temperature difference for slope
Booleanuse_temperatureShiftfalseSet to false to disable temperature shift of slopes
Booleanuse_constantHeaTemShifttrueSet to false to disable constant temperature shift of TMax when only heating is occurring
RealoffTMax2TMax constant temperature shift
Realdeltaif use_temperatureShift then TMax - TMin - 3*dTSlo else 0Maximum shift of slopes
Real[nSou]dTSou_nominalfill(4, nSou)Nominal temperature difference over source
Realk0.01Gain of controller that shifts upper and lower temperature setpoints
RealTi300Time constant of integrator block that shifts upper and lower temperature setpoints
RealPpumCooThr100Threshold for comparison for pump cooling power
RealhysPpumCoo10Hysteresis for cooling pump power threshold

Connectors

TypeNameDefaultDescription
Buildings.Controls.OBC.CDL.Interfaces.RealInput[nMix]TMixTemperatures at the mixing points
Buildings.Controls.OBC.CDL.Interfaces.RealInput[nSou]TSouInTemperatures at the inlets of the sources
Buildings.Controls.OBC.CDL.Interfaces.RealInput[nSou]TSouOutTemperatures at the outlets of the sources
Buildings.Controls.OBC.CDL.Interfaces.RealInput[nBui]QCoo_flowCooling power required by each building
Buildings.Controls.OBC.CDL.Interfaces.RealOutputyPump control signal

Components

TypeNameDefaultDescription
Buildings.Controls.OBC.CDL.Reals.MultiMinTMixMinMinimum temperature at mixing points
Buildings.Controls.OBC.CDL.Reals.MultiMaxTMixMaxMaximum temperature at mixing points
Buildings.Controls.OBC.CDL.Reals.MultiSummulSum
Buildings.Controls.OBC.CDL.Reals.Subtract[nSou]dTSouTemperature differences over source
Buildings.Controls.OBC.CDL.Reals.MultiplyByParameterdTSou_norNormalization of temperature difference over source
Buildings.Controls.OBC.CDL.Reals.PIDconShiController to shift the min/max slopes
Buildings.Controls.OBC.CDL.Reals.Sources.ConstantzerSet point for source dT
Buildings.Controls.OBC.CDL.Reals.LineuppCurUpper curve
Buildings.Controls.OBC.CDL.Reals.Sources.ConstantoneConstant 1
Buildings.Controls.OBC.CDL.Reals.Sources.ConstantyMinMinimum pump speed
Buildings.Controls.OBC.CDL.Reals.Sources.ConstantTMax_nominalMaximum temperature
Buildings.Controls.OBC.CDL.Reals.AddTMax_upperUpper value of upper slope after shifting it
Buildings.Controls.OBC.CDL.Reals.MaxsPosPositive shift
Buildings.Controls.OBC.CDL.Reals.MinsNegNegative shift
Buildings.Controls.OBC.CDL.Reals.AddParameterTMax_lowerMinimum temperatuer value of upper slope after shifting it
Buildings.Controls.OBC.CDL.Reals.LinelowCurLower curve
Buildings.Controls.OBC.CDL.Reals.Sources.ConstantTMin_nominalMinimum temperature
Buildings.Controls.OBC.CDL.Reals.AddTMin_lowerLower value of lower slope after shifting it
Buildings.Controls.OBC.CDL.Reals.AddParameterTMin_upperMaximum temperatuer value of lower slope after shifting it
Buildings.Controls.OBC.CDL.Reals.MaxySetPumChange in pump signal
Buildings.Controls.OBC.CDL.Reals.Switchswi2Switch on and off constant offset
Buildings.Controls.OBC.CDL.Logical.Sources.ConstantactModTrue: activate mode
Buildings.Controls.OBC.CDL.Reals.GreaterThresholdgreThrCheck pump consumption higher than zero
Buildings.Controls.OBC.CDL.Logical.Andand2With pump consumption and activate mode
Buildings.Controls.OBC.CDL.Reals.MultiSummulSum1Sum of all pump consumptions
Buildings.Controls.OBC.CDL.Reals.MultiplyByParametergaiGain factor
Buildings.Controls.OBC.CDL.Reals.MultiplyByParametergai2Gain factor
Buildings.Controls.OBC.CDL.Reals.Sources.ConstantoffTMaxExpConstant TMax offset
Buildings.Controls.OBC.CDL.Reals.AddAddIf use_heaTemShift and not use_temperatureShift use constant offset, if use_temperatureShift use PI
Buildings.Controls.OBC.CDL.Reals.MultiplyByParametergai1Gain factor

Revisions

  • April 3, 2023, by Ettore Zanetti:
    Added parameter use_constantHeaTemShift
    This is for issue 3431.
  • September 12, 2019, by Michael Wetter:
    First implementation.