blockControllerHeatPumps
Information
HW minimum flow
The HW minimum flow bypass valve is modulated based on a reverse acting control loop to maintain the primary HW flow rate at setpoint. The setpoint is calculated as described in Buildings.Templates.Plants.Controls.MinimumFlow.Setpoint using the number of units commanded on in heating mode at each stage.
When using isolation valve command signals
(have_valInlIso=true or have_valOutIso=true): When
any HW isolation valve is commanded open, the HW bypass valve control loop
is enabled. The valve is opened 100 % otherwise. When enabled,
the HW bypass valve loop shall be biased to start with the valve
100 % open.
Otherwise
(have_valInlIso=false and have_valOutIso=false):
- For heating and cooling plants with common dedicated CHW and HW pumps: When any primary pump is proven on and the associated heat pump is commanded in heating mode, the HW bypass valve control loop is enabled. The valve is opened 100 % otherwise. When enabled, the HW bypass valve loop shall be biased to start with the valve 100 % open.
- For any other plants: When any primary HW pump is proven on, the HW bypass valve control loop is enabled. The valve is opened 100 % otherwise. When enabled, the HW bypass valve loop shall be biased to start with the valve 100 % open.
CHW minimum flow
The CHW minimum flow bypass valve is modulated based on a reverse acting control loop to maintain the primary CHW flow rate at setpoint. The setpoint is calculated as described in Buildings.Templates.Plants.Controls.MinimumFlow.Setpoint using the number of units commanded on in cooling mode at each stage.
When using isolation valve command signals
(have_valInlIso=true or have_valOutIso=true): When
any CHW isolation valve is commanded open, the CHW bypass valve control loop
is enabled. The valve is opened 100 % otherwise. When enabled,
the CHW bypass valve loop shall be biased to start with the valve
100 % open.
Otherwise
(have_valInlIso=false and have_valOutIso=false):
- For heating and cooling plants with common dedicated CHW and HW pumps: When any primary pump is proven on and the associated heat pump is commanded in cooling mode, the CHW bypass valve control loop is enabled. The valve is opened 100 % otherwise. When enabled, the CHW bypass valve loop shall be biased to start with the valve 100 % open.
- For any other plants: When any primary CHW pump is proven on, the CHW bypass valve control loop is enabled. The valve is opened 100 % otherwise. When enabled, the CHW bypass valve loop shall be biased to start with the valve 100 % open.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Boolean | have_heaWat | Set to true for plants that provide HW | |
| Boolean | have_chiWat | Set to true for plants that provide CHW | |
| Boolean | have_pumPriHdr | Set to true for headered primary pumps, false for dedicated pumps | |
| Boolean | have_pumChiWatPriDedHp | Set to true for HP with separate dedicated primary pumps for CHW and HW circuits | |
| Boolean[nEqu] | use_valEqu | {(have_valInlIso or have_valOutIso) and (not have_pumPriHdr and i <= nHp and not have_pumChiWatPriDedHp or have_pumPriHdr) for i in 1:nEqu} | Set to true to use isolation valve command to enable control loop – Each unit |
| Boolean | use_val | (have_valInlIso or have_valOutIso) and (not have_pumPriHdr and nHp > 0 and not have_pumChiWatPriDedHp or have_pumPriHdr) | Set to true to use isolation valve command to enable control loop – Any unit |
| Boolean[nEqu] | use_pumPriDedEqu | {not have_pumPriHdr for i in 1:nEqu} | Set to true to use dedicated primary pump status to enable control loop – Each unit |
| Boolean | use_pumPriDed | not have_pumPriHdr | Set to true to use dedicated primary pump status to enable control loop – Any unit |
| Integer | nHp | Number of 2-pipe heat pumps | |
| Integer | nPhp | Number of polyvalent heat pumps | |
| Integer | nEqu | nHp + nPhp | Heating or cooling equipment count |
| Boolean | have_valInlIso | Set to true if inlet isolation valves are present | |
| Boolean | have_valOutIso | Set to true if outlet isolation valves are present | |
| Real[nEqu] | VHeaWat_flow_nominal | Design HW flow rate – Each unit | |
| Real[nEqu] | VHeaWat_flow_min | Minimum HW flow rate – Each unit | |
| Real[nEqu] | VChiWat_flow_nominal | Design CHW flow rate – Each unit | |
| Real[nEqu] | VChiWat_flow_min | Minimum CHW flow rate – Each unit | |
| Real | k | 1 | Gain of controller |
| Modelica.Units.SI.Time | Ti | 0.5 | Time constant of integrator block |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nHp] | u1PumHeaWatPriDedHp_actual | Primary HW pump status – HP dedicated pumps | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nPhp] | u1PumHeaWatPriDedPhp_actual | Primary HW pump status – Polyvalent HP dedicated pumps | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput | VChiWatPri_flow | Primary CHW volume flow rate | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput | VHeaWatPri_flow | Primary HW volume flow rate | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nEqu] | u1ValHeaWatInlIso | Inlet HW isolation valve command | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nEqu] | u1ValHeaWatOutIso | Outlet HW isolation valve command | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput | yValHeaWatMinByp | HW minimum flow bypass valve command | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nHp] | u1Hp | HP enable command | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput | VHeaWatPriSet_flow | Primary HW flow setpoint | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nHp] | u1HeaHp | HP heating mode command | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nEqu] | u1ValChiWatInlIso | Inlet CHW isolation valve command | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nEqu] | u1ValChiWatOutIso | Outlet CHW isolation valve command | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput | yValChiWatMinByp | CHW minimum flow bypass valve command | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput | VChiWatPriSet_flow | Primary CHW flow setpoint | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nPhp] | u1HeaPhp | Polyvalent HP heating mode command | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nPhp] | u1CooPhp | Polyvalent HP cooling mode command | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nHp] | u1PumChiWatPriDedHp_actual | Primary CHW pump status – HP dedicated pumps | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput[nPhp] | u1PumChiWatPriDedPhp_actual | Primary CHW pump status – Polyvalent HP dedicated pumps |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Controller | ctlFloMinHeaWat | HW minimum flow control | |
| Controller | ctlFloMinChiWat | CHW minimum flow control | |
| Utilities.PlaceholderLogical[nHp] | phHeaCooHp | Placeholder signal for single mode applications | |
| Buildings.Controls.OBC.CDL.Logical.Not[nHp] | u1CooHp | True if HP in cooling mode | |
| Buildings.Controls.OBC.CDL.Logical.And[nHp] | onAndHeaHp | True if HP commanded on in heating mode | |
| Buildings.Controls.OBC.CDL.Logical.And[nHp] | onAndCooHp | True if HP commanded on in cooling mode | |
| Buildings.Controls.OBC.CDL.Logical.And[nHp] | pumDedOnAndCooHp | Dedicated pump on and cooling mode – HP with common CHW and HW pumps | |
| Buildings.Controls.OBC.CDL.Logical.And[nHp] | pumDedOnAndHeaHp | Dedicated pump on and HP in heating mode – HP with common CHW and HW pump | |
| Utilities.PlaceholderLogical[nEqu] | phValHeaWatInlIso | Placeholder signal | |
| Utilities.PlaceholderLogical[nEqu] | phValHeaWatOutIso | Placeholder signal | |
| Buildings.Controls.OBC.CDL.Logical.Or[nEqu] | valHeaWatInlOrOutIso | Inlet or outlet HW isolation valve commanded open | |
| Utilities.PlaceholderLogical[nEqu] | phValChiWatInlIso | Placeholder signal | |
| Utilities.PlaceholderLogical[nEqu] | phValChiWatOutIso | Placeholder signal | |
| Buildings.Controls.OBC.CDL.Logical.Or[nEqu] | valChiWatInlOrOutIso | Inlet or outlet CHW isolation valve commanded open | |
| Utilities.ConcatenateSelectLogical | pumDedOnCoo | Dedicated pump on and cooling mode | |
| Utilities.ConcatenateSelectLogical | pumDedOnHeaHpPhp | Dedicated pump on and heating mode | |
| Utilities.PlaceholderLogical[nHp] | pumDedOnAndHeaHp1 | Dedicated pump on and heating mode – HP | |
| Utilities.PlaceholderLogical[nHp] | pumDedOnAndHeaHp2 | Dedicated pump on and heating mode – HP | |
| Utilities.ConcatenateSelectLogical | onAndHea | Heating mode enable | |
| Utilities.ConcatenateSelectLogical | onAndCoo | Cooling mode enable |
Revisions
-
July 10, 2026, by Antoine Gautier:
Renamed fromControllerDualModeand refactored to support plants with polyvalent heat pumps.
This is for #4512. -
May 31, 2024, by Antoine Gautier:
First implementation.