The following sections explain the details of the control algorithms. They are easier to understand if you have the hydraulic schema and an overview of the control system at hand (PDF or TAPPS2).
Our floor heating system is controlled by the UVR1611 function module Heating circuit controller FBHEIZ. Here the flow temperature is regulated using a mixer A8/A9 which feeds warm water into the floor heating circuit thus keeping the flow temperature at its desired level. Source of thermal energy preferrably is the buffer or alternatively the gas-fired furnace in case the buffer is empty. The Heating circuit controller FBHEIZ also measures the outside temperature S 12 to calculate the required flow temperature via the built-in and properly parameterized heat curve. Additionally this controller switches the floor heating circulation pump A 7 as required. This pump autonomously adapts its pump speed.
The function module Heating demand HZ_ANF checks if the floor heating system can be fed with thermal energy from the buffer (S 6) or if the activation of the gas-fired furnace is required. It does so by comparing the actual flow temperature S 10 with its target value calculated by the Heating circuit controller FBHEIZ. It requests the activation of the gas-fired furnace if the flow temperature drops significantly below its target value meaning that the demand of thermal energy can no longer be supplied by the buffer. As trigger temperature to stop the gas-fired furnace the temperature in the middle of the buffer S 6 is used because thermal energy for the floor heating system is drawn from this buffer zone. Additionally a small underflow is allowed in order to increase the overall system stability and to compensate for small fluctuations in the temperature caused by water currents within the buffer which shall not lead to an immediate start of the gas-fired furnace. By combining this underflow and the temperature set/trigger points it is possible to empty the buffer even a few degrees below the target flow temperature before starting the gas-fired furnace.
Power control of the gas-fired furnace is done via a 0-10V voltage signal A 15 created by the PID controller Brenner1. This controller is operated in difference value control mode with the calculated flow temperature as the upper and the actual flow temperature S 10 as the lower value of the difference. The actual flow temperature S 10 here acts as the control factor, the desired difference to the target is fixed to small positive value (approx. 0.5°C). This will control the output power of the gas-fired furnace A 15 so that the actual flow temperature S 10 is slightly lower than the calculated target value. The heat curve in the Heating circuit controller FBHEIZ is shifted to a higher set temperature by this amount so that eventually the floor heating system is operated with the correct flow temperature.
This trick is required to compensate for the design of the hydraulic schema. The flow temperature in the floor heating circuit is influenced by the mixer A8/A9 which is controlled by the Heating circuit controller FBHEIZ. It is also influenced the the temperature S 9 in the feed line which in turn is a result of the currently set furnace power controlled by the PID controller Brenner1 in case the gas-fired furnace is active. This means that two independent control variables act upon the same control factor S 10 which may lead to unexpected behavior of the controller. By setting different target values for both controllers we achieve a prioritization resulting in this behavior:
The Timer VERZG1 hereby delays the activation of the PID controller Brenner1 a few minutes whereas the activation signal is forwarded to the Analog function Max(An)3 in parallel. This has the effect that the gas-fired furnace is started with its minimum power setting and its power is adapted by the PID controller Brenner1 a few minutes later. This improves stability of the control because immediately after starting the gas-fired furnace all the lines are filled with cold water which would cause the PID controller Brenner1 to increase the furnace power way too high and induce unwanted oscillations in the control loop.
For tap water heating we use an autonomous system which heats cold tap water on demand to the desired temperature via a water heat exchanger. The required thermal energy is taken from the topmost thermal layer in the buffer which is held at the desired tap water temperature at all times. The supply of warm water to the top of the buffer occurs via the solar thermal system if sufficient solar power is available. Otherwise the gas-fired furnace is used to heat the topmost thermal layer in the buffer.
The algorithm to start and power-control the gas-fired furnace is simular to the one used in the floor heating mode. In this case however the target temperature is set to a fixed value and independent of the outside temperature. The DHW demand WW_ANF module checks if the temperature at the top of the buffer (S 7) is sufficient for tap water heating. If this is not the case the gas fired-furnace A 15 is started and via the PID controller Brenner2 set to the power level required to heat the water in its output line S 9 to the effective target temperature for tap water heating. In other words the water is not heated to a higher temperature than necessary.
The water fed from the buffer to the gas-fired furnace in this phase is taken from the zone below the topmost zone in the buffer. This is accomplished by a switch of the water flow paths in the system via the valves A 3 and A 5. So only the minimum required amount of water needs to be circulated and heated. The water is the fed into the buffer at its top so that the termal layers in the buffer will shift downward over time. The shift of the thermal layers within the buffer causes the water supplied to the furnace to get warmer during the process so the power of the gas-fired furnace can be reduced. The valves are operated using thermal drives so the switching process itself takes a couple of minutes. Delay timers within the control algorithms are used to take this into account. Summing up the individual moduls express the following overall behavior: