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.
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.
use_constantHeaTemShift