modelHeatPumpModular
Modular heat pump controller
Information
This is a controller for the heat pump system, which includes controls for the valves that ensure a minimum condenser outlet and a maximum evaporator outlet temperature.
The system is enabled if any of the input control signals uHeaSpa,
uHeaDhw,
or uCoo is true.
When enabled, the following control is used:
- Two proportional controllers compute the required compressor speed to track the heating or cooling set point.
- Moving averages of these compressor speed signals determine whether the heating or the cooling compressor speed should be taken. The larger of the moving averages determines whether the heat pump is controlled to meet the heating or cooling demand.
- The compressor speed is modulated between a minimum and maximum speed based on the heating or cooling control signal. A rate limiter is used to avoid step changes in demanded compressor speed.
- The condenser and evaporator mixing valves are modulated with a proportional controller to maintain a minimum (resp. maximum) outlet temperature from the heat pump.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Real | PLRMin | Minimum part load ratio | |
| Real | kHea | 2 | Gain of controller for compressor during heating operation |
| Real | kCoo | 2 | Gain of controller for compressor during cooling |
| Real | THeaWatSupSetMin | Minimum value of heating water supply temperature set point | |
| Real | TChiWatSupSetMax | Maximum value of chilled water supply temperature set point | |
| Modelica.Units.SI.TemperatureDifference | dTOffSetHea | Temperature to be added to the set point in order to be slightly above what the heating load requires | |
| Modelica.Units.SI.TemperatureDifference | dTOffSetCoo | Temperature to be added to the set point in order to be slightly below what the cooling load requires |
Connectors
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Controls.OBC.CDL.Logical.Or | heaOrCoo | Heating or cooling requested | |
| Buildings.Controls.OBC.CDL.Reals.PID | conValHea | Condenser three-way valve control | |
| Buildings.Controls.OBC.CDL.Reals.PID | conValCoo | Evaporator three-way valve control | |
| Buildings.Controls.OBC.Utilities.PIDWithEnable | conCoo | Chiller compressor speed control during cooling mode | |
| Buildings.Controls.OBC.Utilities.PIDWithEnable | conHea | Chiller compressor speed control during heating mode | |
| Buildings.Controls.OBC.CDL.Reals.Switch | swi | Switch to select heating or cooling control signal | |
| Buildings.Controls.OBC.CDL.Reals.LimitSlewRate | ramLimCom | Ramp limiter to avoid sudden load increase from chiller | |
| Buildings.Controls.OBC.CDL.Logical.Or | hea | Heating requested | |
| Buildings.Controls.OBC.CDL.Reals.MovingAverage | movAveHea | Moving average of heating compressor signal | |
| Buildings.Controls.OBC.CDL.Reals.MovingAverage | movAveCoo | Moving average of cooling compressor signal | |
| Buildings.Controls.OBC.CDL.Reals.Greater | heaDom | Output true if heating dominates the operation | |
| Buildings.Controls.OBC.CDL.Reals.Switch | swi1 | Switch to select heating or cooling control signal | |
| Buildings.Controls.OBC.CDL.Reals.Sources.Constant | zer | Outputs zero | |
| Buildings.Controls.OBC.CDL.Reals.Sources.Constant | TSupSetDhw | Supply water temperature set point during domestic hot water charging | |
| Buildings.Controls.OBC.CDL.Reals.Switch | swiTSupSetHea | Switch for heating water temperature set point | |
| Buildings.Controls.OBC.CDL.Reals.AddParameter | offSetHea | Offset temperature for 3-way valve control during heating | |
| Buildings.Controls.OBC.CDL.Reals.AddParameter | offSetCoo | Offset temperature for 3-way valve control during cooling | |
| Buildings.DHC.ETS.Combined.Controls.Reset | resTHeaSup | Heating water supply temperature reset | |
| Buildings.DHC.ETS.Combined.Controls.Reset | resTCooSup | Chilled water supply temperature reset | |
| Buildings.Controls.OBC.CDL.Reals.Max | maxTSup | Maximum to pick the larger value of space heating or hot water supply temperature setpoint | |
| Buildings.Controls.OBC.CDL.Logical.TrueDelay | delSta | Delay start of compressor to ensure pumps have sufficient speed | |
| Buildings.Controls.OBC.CDL.Logical.TrueDelay | delPumOff | Delay pump off signal to allow compressor to ramp down | |
| Buildings.Controls.OBC.CDL.Logical.Not | not1 | ||
| Buildings.Controls.OBC.CDL.Logical.Not | not2 | ||
| Buildings.Controls.OBC.CDL.Reals.AddParameter | dTOffHea | Offset to slightly increase the set point | |
| Buildings.Controls.OBC.CDL.Reals.AddParameter | dTOffCoo | Offset to slightly decrease the set point |
Revisions
-
November 15, 2025, by Michael Wetter:
Refactored implementation.
This is for #4354. -
July 31, 2020, by Antoine Gautier:
First implementation.