[PRDVHCTL] Predictive heating controller
Function block PRDVHCTL calculates the flow temperature setpoint for heating applications.
PRDVHCTL calculates the flow temperature setpoint for heating applications. A forward-looking, model-based and adaptive controller uses a building and heat transfer model. Moreover, the future room temperature setpoint also considers schedulers and an outside air temperature forecast. Outside air temperature forecast can be based on past outside air temperature measurements performed by PRDVHCTL or supplied to PRDVHCTL via external sources.
- PRDVHCTL can be enabled or disabled via input [EnFnct].
- A constant value via input [OoServ] can replace the flow temperature setpoint.
- Adapting building model parameters can be enabled or disabled via input [EnAda].
- The use of adapted building model parameters can be enabled or disabled via input [TkvAda].
- The adapted building model parameters can be reset via input [ResetAda].
Calculations
PRDVHCTL calculates the optimum flow temperature setpoint [SpTFl], the optimized present operating mode [PrOpMod] and enabled heat distribution [EnHDstr] with the help of the following input values:
- Present room temperature [TR] (optional).
- Present flow temperature [TFl].
- Present outside air temperature [TOa].
- For [EnExtTOa] = 1, the outside air temperature forecast values [ExtTOa0]...[ExtTOa24] are used.
- Present operating mode for room [OpModR] with the associated room temperature setpoint [SpHCmf]/[SpHPcf]/[SpHEco]/[SpHPrt].
- The next operating mode for room [NxOpModR] with the associated room temperature setpoint [SpHCmf]/[SpHPcf]/[SpHEco]/[SpHPrt] and time to next operating mode [TnxOpMod].
- Building model parameters [SpTFlDs], [SpTFlHi], [ExpRad], [TcnBldg], [TcnRoom], [DTRCoef], [WndProp] or their adapted values.
Optimization is calculated every 15 minutes. [TiNxOpt] displays the remaining time to the next calculation. [OptSta] displays the status of optimization.
The calculation includes the following steps:
Process step | [OptSta] | ||
|---|---|---|---|
1 | PRDVHCTL adapts the building model parameters. | Preparation | |
[EnAda] = 1 [OpSta] = 1 [TRSen] = 1 [ErTR] = 0 [ErTFl] = 0 [ErTOa] = 0 | PRDVHCTL adapts the building model parameters based on the present measured values [TR], [TFl] and [TOa]. | ||
All other cases | Building model parameters are not adapted. | ||
2 | PRDVHCTL updates the state estimate of the building model. The estimated room temperature [TREst] is issued. Applied building model parameters: | ||
| [AdaSta] = 1 | PRDVHCTL adapts the building model parameters. | |
| [AdaSta] = 0 | PRDVHCTL uses the configured building model parameters. | |
| Applied room temperature values: | ||
| [TRSen] = 1 | The calculation of state estimate is run using the measured room temperature [TR]. | |
| [TRSen] = 0 | The measured room temperature [TR] is used for the initial calculations of the state estimate (initialization). | |
3 | PRDVHCTL calculates the response of the predictive room temperature setpoint [SpTRPd0]...[SpTRPd21] based on scheduler information. | ||
| [EnNxOpMod] = 1 | The future room temperature setpoint response is calculated with the help of [NxOpModR] and [TnxOpMod] from the scheduler. | |
| [EnNxOpMod] = 0 | The future room temperature setpoint response is the same as the present room temperature setpoint [SpTR] (e.g. for a manual intervention). | |
4 | The function block predicts future outside air temperature [TOaPd0]…[TOaPd20] based on past outside air temperature or external values. | ||
| [EnExtTOa] = 1 | The block predicts future outside air temperature based on external forecast values [ExtTOa0]… [ExtTOa24]. | |
| [EnExtTOa] = 0 | The block predicts future outside air temperature based on past outside air temperature. | |
5 | PRDVHCTL calculates the optimum, future curve of the flow temperature setpoint [TFlPd0]...[TFlPd20] and the associated future curves for room temperature [TRPrdv0]...[TRPrdv20] using temperature curves [SpTRPd0]...[SpTRPd20], [TOaPd0]...[TOaPd20], state estimates, and building parameters. Future curves encompass the next 64 hours. It considers possible shifts over the weekend. The flow temperature is limited at a minimum by the estimated room temperature [TREst] and at a maximum by the maximum flow temperature. The maximum flow temperature setpoint is equal to [SpTFlMax] if the estimated room temperature matches the nominal room temperature of 20 °C. In general, the maximum flow temperature setpoint is the result of [SpTFlMax] + ([TREst] - 20 °C). PRDVHCTL provides [TFlPd0], as the first element of the future flow temperature setpoint curve, on the output for the flow temperature setpoint [SpTFl]. | Optimization | |
6 | PRDVHCTL calculates enable heat distribution [EnHDstr] based on temperature curves [SpTRPd0]...[SpTRPd20], [TOaPd0]...[TOaPd20], state estimate and building model parameters. Enable heat distribution [EnHDstr] is set to 1 if the future room temperature curves deviate significantly from the corresponding room temperature setpoint curve. | Check enable heating | |
[OptSta] provides additional information
Process step | [OptSta] | ||
|---|---|---|---|
| Output [OptSta] also displays the results of optimization after the optimization calculation. |
| |
| Optimization successful | Building model parameters are provided to the following outputs: [SpTFlDsO], [SpTFlHiO], [TcnBldgO], [TcnRoomO], [DTRCoefO]. | Calculation OK |
| Optimization does not result in a solution. | The calculation may conclude that the (future) room temperature setpoint cannot always be achieved. The maximum flow temperature setpoint is planned [SpTFl] = [SpTFlMax] in this case. Outputs [TFlPd0]...[TFlPd20] and [TRPrdv0]...[TRPrdv20] are not relevant. | Out of Range |
|
The function is disabled ([EnFnct] = 0). | Finished | |
|
The function is out of service ([OoServ] = 1). | ||

Time frames that apply to forecasts [TRPrdv0]...[ TRPrdv20], [SpTRPd0]...[SpTRPd20], [TOaPd0]... [TOaPd20] and [TFlPd0]...[ TFlPd20] are indicated in seconds after start of optimization in [TiPrdv0]...[TiPrdv20].
Enable and disable function
[EnFnct] = 1 | Normal operation |
[EnFnct] = 0 | The function is disabled. [SpTFl] = Room temperature setpoint [SpHCmf]/[SpHPcf]/[SpHEco]/[SpHPrt] associated to [OpModR]. [EnHDstr] = 1 [PrOpMod] = Disabled [TRPrdv0]...[ TRPrdv20], [SpTRPd0]...[SpTRPd20], [TOaPd0]...[TOaPd20], [TFlPd0]...[ TFlPd20] and [TiPrdv0]...[TiPrdv20] are set to 0. |
Set default value
[OoServ] = 1 | The flow temperature setpoint [SpTFl] is replaced by the default value [DefVal]. [SpTFl] = [DefVal] [EnHDstr] = 1 [PrOpMod] = Command [TRPrdv0]...[ TRPrdv20], [SpTRPd0]...[SpTRPd20], [TOaPd0]...[TOaPd20], [TFlPd0]...[ TFlPd20] and [TiPrdv0]...[TiPrdv20] are set to 0. |
[OoServ] = 0 | Normal operation |
Use adapted parameters
[TkvAda] = 1 | Optimization is calculated using adapted and valid building parameters. |
[TkvAda] = 0 | The optimization is calculated using configured building parameters. Example: No adaptation wanted or no room temperature sensor available ([TRSen] = No) |
Enable and disable parameter adaptation
[EnAda] = 1 | Building model parameters are adapted continuously. |
[EnAda] = 0 | Building model parameters are not adapted. |
Reset adapted building model parameter
[ResetAda] = 1 | The adapted building model parameters are reset. For [EnAda] = 1, all subsequent building model parameters are adapted and used, after a successful acceptance test, to calculate optimization. |
[ResetAda] = 0 | Normal operation |
Select site for room temperature measurements
Room temperature measurements ideally take place in rooms with the highest heat demand, e.g. north-facing rooms and little to no heat gains.
Thermostatic valves are possible and make sense, if PRDVHCTL is used on heating applications with radiators. It is important to not use thermostatic valves in the reference room (i.e. the room where the room temperature is measured). Disable (fully open) where installed. The remaining rooms for the heating circuit can have thermostatic valves.
Building model parameter
PRDVHCTL uses building models to calculate optimization. The model parameters [SpTFlDs], [SpTFlHi], [TcnBldg], [TcnRoom], [DTRCoef], and [WndProp] are configured as constants. They can be adapted by setting [EnAda] = 1. The configured values are only relevant in this case during the initialization phase.
Parameters for nominal heating curve
The parameters for the nominal heating curve [TOaDsgn], [SpTFlDs], [TOaHi], [SpTFlHi], and [ExpRad] describe the relationship between outside air temperature and the flow temperature setpoint for the nominal room temperature setpoint at 20 °C.
- [TOaDsgn], [SpTFlDs]: Design point for the nominal heating curve (defined per the planning data for the heating plant).
- [TOaHi], [SpTFlHi]: High temperature point for the nominal heating curve (defined per the planning data for the heating plant).
- [ExpRad]: Radiator exponent (dependent on the heat output system)
Building type | TcnBldg | TcnRoom | DTRCoef | WndProp | |
|---|---|---|---|---|---|
[h] | [DDDD:HH:MM:SS] | [h] | [K] | [%] | |
Light build | 20 | 0000:20:00:00 | 0.25 – 0.5 | 4.5 | 50 |
Medium build | 50 | 0002:02:00:00 | 3.5 | 50 | |
Heavy build | 100 | 0004:04:00:00 | 2.5 | 50 | |
Mast constructions, glass | 50 | 0002:02:00:00 | 3.0 | 90 | |
Time constant of building
The time constant of building [TcnBldg] represents the delay by which the room temperature reacts in an unheated building to a change in outside air temperature. The time constant of building is based on the thermal mass of the building and the building's insulation.
The same setpoints can be used for the typical design as used for HRA.
Room temperature difference for intermittent heating
The following heating modes can be used for determining [DTRCoef]:
- The heating output system with design heating performance (as defined by the nominal room temperature setpoint of 20 °C and the flow temperature setpoint for design outside air temperature [SpTFlDs]) is switched on for 16 hours.
- The heating output system is completely shut down for 8 hours.
[DTRCoef] is the room temperature difference that is set for this operation (at a constant outside air temperature and constant heat gain).
[DTRCoef] can no longer be preset as desired when setting heating curve parameters and time constants. PRDVHCTL limits the user input of [DTRCoef] to a preset range.
Proportion of windows
The window proportion [WndProp] indicates the heat loss of the windows as a percentage of the entire building shell. The window proportion is not the percentage of window surface area to the overall surface of the building shell. Heat loss from natural ventilation can also be added to heat loss from windows.
The same setpoints can be used for the typical design as used for HRA.
Automatic adaptation from building model parameters
PRDVHCTL uses building model parameters to improve control accuracy. The building model parameters [SpTFiDs], [SpTFiHi], [ExpRad], [TcnBldg], [TcnRoom], [DTRCoef], [WndProp] are parameterized as constants during engineering.
The adaptation function automatically adapts the building model parameters to actual conditions. The calculated, adapted conditions are provided to outputs [SpTFlDsO], [SpTFlHiO], [TcnBldgO], [TcnRoomO], [DTRCoefO]. The adapted building model parameters are stored persistently.

To persistently store the parameters, the extension "Predictive heating control" must be enabled as an extension by persistency on the associated BACnet object.
The extension by persistency has the following values:
Adaptation time | The adaptation time is the time period during which the adaptation is performed. |
Estimated parameters | Estimated parameters are the currently adapted building parameters. |
Estimated array | The estimated array identifies the current adaptation process. |
Input | Description | Data type | Default value |
|---|---|---|---|
EnFnct | Enable function Enables the function. | Boolean | 1 |
0 - The function is disabled. | |||
OoServ | Out of service | Boolean | 0 |
0 - Normal function. | |||
|
DefVal | Default value Default value for [SpTFl], if [OoServ] = 1. | Real | 20.0 [°C] |
OpModR | Operating mode for room Present operating mode for room | Integer | 4: Pre-Comfort 1…9 |
1: Inactive | |||
EnNxOpMod | Enable next operating mode | Boolean | 1 |
0 - The predictive room temperature setpoint [SpTRPd0]...[SpTRPd20] corresponds to the present room temperature setpoint. | |||
NxOpModR | Next operating mode for room Next operating mode for room, requested by the scheduler | Integer | 2: Protection 1…9 |
1: Inactive | |||
TnxOpMod | Time to next operating mode Time (duration) to next operating mode, requested by the scheduler. | Time | 0 |
OpSta | Operating state Operating state of the circulating pump in the heating circuit. | Boolean | 0 |
TRSen | Room temperature sensor | Boolean | 1 |
0 - Calculates function block without room temperature measurement ([TR] is only used for initialization). | |||
TR | Room temperature Measures the (reference) room temperature. | Real | 20.0 [°C] 0.0…50.0 [°C] |
ErTR | Error room temperature Indicates if the room temperature [TR] is faulty. | Boolean | 0 |
TFl | Flow temperature Measured flow temperature | Real | 20.0 [°C] 0.0...130.0 [°C] |
ErTFl | Error flow temperature Indicates if [TFI] is faulty. | Boolean | 0 |
TOa | Outside temperature | Real | 20.0 [°C] -100.0…50.0 [°C] |
ErTOa | Error for outside temperature Indicates if the outside air temperature [TOa] is faulty. | Boolean | 0 |
EnExtTOa | Enable external outside temperature prediction Switch on the use of external outside air temperature forecast. | Boolean | 0 |
ExtTOa0...ExtTOa24 | External prediction outside air temperature 0... External prediction outside air temperature 24 External outside air temperature forecast by the hour. Note | Real | 20.0 [°C] -100.0...50.0 [°C] |
SpHCmf | Heating setpoint for comfort Room temperature setpoint for operating mode "Comfort". | Real | 21.0 [°C] 5.0...35.0 [°C] |
SpHPcf | Heating setpoint for pre-comfort Room temperature setpoint for operating mode "Pre-Comfort". | Real | 19.0 [°C] 5.0...35.0 [°C] |
SpHEco | Heating setpoint for economy Room temperature setpoint for operating mode "Economy". | Real | 15.0 [°C] 5.0...35.0 [°C] |
SpHPrt | Heating setpoint for protection Room temperature setpoint for operating mode "Protection". | Real | 12.0 [°C] 5.0...35.0 [°C] |
SpTFlMax | Maximum flow temperature setpoint | Real | 95.0 [°C] 25.0…130.0 [°C] |
TiStpMax | Maximum stop time Maximum time (duration) for stop phase | Time | 1h 0…3h |
TOaDsgn | Design outside temperature Defined as per heating plant planning data | Real | -11.0 [°C] -50.0…10.0 [°C] |
SpTFlDs | Flow temperature setpoint for design outside temperature Defined as per heating plant planning data | Real | 60.0 [°C] 25.0…130.0 [°C] |
TOaHi | Outside temperature high Defined as per heating plant planning data | Real | 15.0 [°C] 5.0…25.0 [°C] |
SpTFlHi | Flow temperature setpoint for high outside temperature Defined as per heating plant planning data | Real | 30.0 [°C] 20.0…65.0 [°C] |
ExpRad | Radiator exponent Defines the deviation of the heating curve from a straight line Recommended setting for typical heating plants: | Real | 1.3 1.0…1.5 |
TcnBldg | Time constant of building | Time | 2d_2h 0…200h |
TcnRoom | Time constant of room Time constant for the influence of a jump in flow temperature to the room temperature | Time | 15m 0…5h |
DTRCoef | Room temperature difference coefficient | Real | 5 [deltaK] 0.0...20.0 [deltaK] |
WndProp | Proportion of windows Reference value for percentage of heat loss from windows. | Real | 50.0 0.0…100.0 [%] |
EnAda | Enable adaptation | Boolean | 1 |
0 - Building model parameters are not adapted. | |||
TkvAda | Takeover adapted parameters | Boolean | 1 |
0 - The adapted building model parameters are not used. | |||
ResetAda | Reset adaptation Resets the adapted building model parameters. | Boolean | 0 |
|
BaObjRef | BA-Object reference | Structure | --- |
BaObjRef | Device identifier | Double Word | 16#3FFFFF |
BaObjRef | Object identifier | Double Word | 16#3FFFFF |
BaObjRef | Item identifier | Integer | -1 |
Output | Description | Data type | Default value |
|---|---|---|---|
PrOpMod | Present operating mode | Integer | 1: Inactive 1...6 |
1: Inactive | |||
SpTFl | Flow temperature setpoint | Real | 20.0 [°C] |
SpTR | Room temperature setpoint | Real | 20.0 [°C] |
TREst | Estimated room temperature | Real | 20.0 [°C] |
EnHDstr | Enable heat distribution | Boolean | 0 |
0 - Disable heat distribution. | |||
AdaSta | Adaptation state | Boolean | 0 |
0 - Adaptation of building model parameters is switched off or invalid. | |||
OptSta | Optimization state | Integer | 1: Optimized 1…8 |
1: Optimized | |||
TiNxOpt | Time to next optimization | Time | 0 |
SpTFlDsO | Flow temperature setpoint for design outside temperature output Output flow temperature setpoint for the design outside air temperature | Real | 60.0 [°C] |
SpTFlHiO | Flow temperature setpoint for high outside temperature output Output flow temperature setpoint for high outside air temperature. | Real | 30.0 [°C] |
TcnBldgO | Time constant of building output Output for time constant of the building | Time | 2d_2h |
TcnRoomO | Time constant of room output Output for time constant of the room | Time | 15m |
DTRCoefO | Room temperature difference coefficient output Output for the room temperature different coefficient. | Real | 3 [deltaK] |
TiPrdv | Predictive time points Time span in seconds after the last start of optimization, for which forecasts [TFlPrdv], [TOaPrdv], [TRPrdv] and [SpTRPrdv] apply. | Structure | - |
TiPrdv | Element0...20 Forecast of time values | Real | 0 |
TFlPrdv | Predictive flow temperature setpoint Forecast of flow temperature setpoint | Structure | - |
TFlPrdv | Element0...20 Forecast of flow temperature setpoints | Real | 0 [°C] |
TOaPrdv | Predictive outside temperature Forecast outside air temperature | Structure | - |
TOaPrdv | Element0...20 Forecast of outside air temperature values | Real | 0 [°C] |
TRPrdv | Predictive room temperature Forecast of room temperature | Structure | - |
TRPrdv | Element0...20 Forecast of room temperature values | Real | 0 [°C] |
SpTRPrdv | Predictive room temperature setpoint Forecast of room temperature setpoint | Structure | - |
SpTRPrdv | Element0...20 Forecast of room temperature setpoints | Real | 0 [°C] |
TiPrdv0...TiPrdv20 | Predictive time point 0...Predictive time point 20 Corresponds to the individual values from [TiPrdv]. | Real | 0 |
TFlPd0...TFlPd20 | Predictive flow temperature setpoint 0...Predictive flow temperature setpoint 20 Corresponds to the individual values from [TFlPrdv]. | Real | 20.0 [°C] |
TOaPd0...TOaPd20 | Predictive outside temperature 0...Predictive outside temperature 20 Corresponds to the individual values from [TOaPrdv]. | Real | 20.0 [°C] |
TRPrdv0...TRPrdv20 | Predictive room temperature 0...Predictive room temperature 20 Corresponds to the individual values from [TRPrdv]. | Real | 20.0 [°C] |
SpTRPd0...SpTRPd20 | Predictive room temperature setpoint 0...Predictive room temperature setpoint 20 Corresponds to the individual values from [SpTRPrdv]. | Real | 20.0 [°C] |
Dstb | Disturbed | Boolean | 0 |
0 - Success reading persistent values. | |||
|
SysUnits | System of units Indicates the system of units used by the block. | Integer | 1: International system of units (SI) (fallback) 1...5 |
1: International system of units (SI) (fallback) | |||
ErrCode | Error code indication | Integer | 0: No error |
= 0 - No error | |||
Prerequisites:
- [EnAda] = 1
- A (reference) room temperature sensor must be available ([TRSen] = 1).
- A constant flow of heating medium is required in the reference room (the circulating pump is switched on and no thermostatic valves are operating in the reference room).
- No fault on the temperature measurements ([ErTR] = [ErTFl] = [ErTOa] = 0).
Adaptation process:
- After switching on [EnAda] = 1, the building parameters are adapted to the current conditions during an adaptation period of at least one week. The time frame during which an adaptation is conducted can be read in property 'Adaptation time' of the associated BACnet object.
- The adapted building model parameters are then subjected to an internal block acceptance test. The adaptation states can be viewed on output [AdaSta]. The values as calculated are set to outputs [SpTFlDsO], [SpTFlHiO], [TcnBldgO], [TcnRoomO], [DTRCoefO].
- The adapted building model parameters can then be used to calculate optimization.
[TkvAda] = 1 | The adapted building model parameters are used to calculate optimization. |
[TkvAda] = 0 | The configured building model parameters calculate optimization, e.g. if the control response does not suffice using the adapted building model parameters. |
[ResetAda] = 1 | The adaptation process restarts, e.g. if the control response does not suffice using the adapted building model parameters. |
Enable and disable adaptation
[EnAda] = 1 | Prerequisites:
Normal operation: | |
[TkvAda] = 1 | The adapted building model parameters are used to calculate optimization. | |
[TkvAda] = 0 | The configured building model parameters calculate optimization, e.g. if the control response does not suffice using the adapted building model parameters. | |
[EnAda] = 0 | Example: No adaptation wanted or no (reference) room temperature sensor is available ([TRSen] = No). | |
Present operating mode
PRDVHCTL supplies the present operating mode in addition to the calculated flow temperature setpoint.
Inactive | PRDVHCTL is switched off ([EnFnct] = 0). |
On | Switch on circulating pump |
Off | Switch off circulating pump |
Boost heating | Boost heating prior to start of room occupancy |
Stop | Switch off circulating pump (energy supply) prior to the end of room occupancy |
Command | PRDVHCTL is out of service ([OoServ] = 1). |
Use estimated room temperature
Estimated room temperature [TREst] can be used as the room model output for other applications, e.g. if no room sensor is available.
Use PRDVHCTL as adaptive heating curve
PRDVHCTL can be used together with HCRV as adaptive heating curve logics.
The following inputs are linked together on PRDVHCTL:
- The measured temperatures [TR], [TFl], [TOa] and the corresponding error inputs [ErTR], [ErTFl], [ErTOa].
- The state of the circulating pump [OpSta]
The following settings are required for PRDVHCTL:
- The function is enabled: [EnFnct] = 1 and [OoServ] = 0.
- A room temperature sensor is available: [TRSen] = 1.
- Adaptation is enabled: [EnAda] = 1.
- The adapted building model parameters must be used: [TkvAda] = 1.
The adapted flow temperature setpoints for the heating curve are linked to HCRV.
- [SpTFlDsO] is linked to input [SpTFlDs] from HCRV.
- [SpTFlHiO] is linked to input [SpTFlHi] from HCRV.
The radiator exponent [ExpRad] is not adapted. The configured value is used.

The value for outside air temperature [TOaHi] and [TOaDsgn] and the radiator exponent [ExpRad] must be set with the same value on PRDVHCTL and HCRV.
Use external outside air temperature forecast
In the event an external outside air temperature forecast is available for the building site, e.g. a weather service, the forecast can be provided to PRDVHCTL via inputs [ExtTOa0]...[ExtTOa24]. The external forecast is used if [EnExtTOa] = 1. [EnExtTOa] = 0 can be set if an external forecast is unavailable or incorrect. PRDVHCTL switches to an internal forecast for the next optimization.
Inputs [ExtTOa0]...[ExtTOa24] generate a time profile in 1-hour steps. Value [ExtTOa0] represents the outside air temperature forecast for the present time. Value [ExtTOa1] represents the outside air temperature forecast for an hour in the future.

A value of [ExtTOa0] is equal to the measured value from [TOa] in an ideal forecast. PRDVHCTL corrects the forecast since this is not the case for a real forecast, e.g. by a weather service. The measured value [TOa] is used as the present forecast and the next forecast values are adapted linearly. The difference between [ExtTOa0] and [TOa] is corrected within the next hour of the forecast. If unwanted, link the measured value [TOa] to [ExtTOa0].
During start-up, PRDVHCTL is initialized with the present values at the inputs. This can have undesired effects if the inputs do not have measured values during start-up (e.g., BACnet references).
To avoid such a situation, PRDVHCTL can be held in inactive state via [EnFnct] until the inputs receive measured values. While PRDVHCTL is in inactive state, it provides the present heating setpoint (selected by [OpModR]) at [SpTFl] and [SpTR] outputs, [EnHDstr] and [PrOpMod] are set with 1 and [TREst] is set with present room temperature [TR].
