Buildings.Controls.OBC.RadiantSystems.Heating

Package with control sequences for radiant heating systems

Information

Package with controllers for radiant heating systems.

Extends from Modelica.Icons.Package (Icon for standard packages).

Package Content

Name Description
Buildings.Controls.OBC.RadiantSystems.Heating.HighMassSupplyTemperature_TRoom HighMassSupplyTemperature_TRoom Room temperature controller for radiant heating with constant mass flow and variable supply temperature
Buildings.Controls.OBC.RadiantSystems.Heating.Validation Validation Collection of validation models

Buildings.Controls.OBC.RadiantSystems.Heating.HighMassSupplyTemperature_TRoom Buildings.Controls.OBC.RadiantSystems.Heating.HighMassSupplyTemperature_TRoom

Room temperature controller for radiant heating with constant mass flow and variable supply temperature

Buildings.Controls.OBC.RadiantSystems.Heating.HighMassSupplyTemperature_TRoom

Information

Controller for a radiant heating system.

The controller tracks the room temperature set point TRooSet by adjusting the supply water temperature set point TSupSet linearly between TSupSetMin and TSupSetMax based on the output signal y of the proportional controller. The pump is either off or operates at full speed, in which case yPum = 1. The pump control is based on a hysteresis that switches the pump on when the output of the proportional controller y exceeds 0.2, and the pump is commanded off when the output falls below 0.1. See figure below for the control charts.

Image of control output

For systems with high thermal mass, this controller should be left configured as a P-controller, which is the default setting. PI-controller likely saturate due to the slow system response.

Parameters

TypeNameDefaultDescription
RealTSupSet_max Maximum heating supply water temperature [K]
RealTSupSet_min293.15Minimum heating supply water temperature [K]
Control gains
SimpleControllercontrollerTypeBuildings.Controls.OBC.CDL.T...Type of controller
Realk2Gain of controller
RealTi3600Time constant of integrator block [s]
RealTd0.1Time constant of derivative block [s]

Connectors

TypeNameDescription
input RealInputTRooSetSet point for room air temperature [K]
input RealInputTRooMeasured room air temperature [K]
output RealOutputTSupSetSet point for heating supply water temperature [K]
output RealOutputyControl signal for heating system from P controller [1]
output BooleanOutputonOutputs true if the system is demanded on
output RealOutputyPumPump speed control signal [1]

Modelica definition

block HighMassSupplyTemperature_TRoom "Room temperature controller for radiant heating with constant mass flow and variable supply temperature" parameter Real TSupSet_max( final unit="K", displayUnit="degC") "Maximum heating supply water temperature"; parameter Real TSupSet_min( final unit="K", displayUnit="degC") = 293.15 "Minimum heating supply water temperature"; parameter Controls.OBC.CDL.Types.SimpleController controllerType=Buildings.Controls.OBC.CDL.Types.SimpleController.P "Type of controller"; parameter Real k( min=100*Buildings.Controls.OBC.CDL.Constants.eps)=2 "Gain of controller"; parameter Real Ti( final quantity="Time", final unit="s", min=100*Buildings.Controls.OBC.CDL.Constants.eps)=3600 "Time constant of integrator block"; parameter Real Td( final quantity="Time", final unit="s", min=100*Buildings.Controls.OBC.CDL.Constants.eps)=0.1 "Time constant of derivative block"; Controls.OBC.CDL.Interfaces.RealInput TRooSet( final unit="K", displayUnit="degC") "Set point for room air temperature"; Controls.OBC.CDL.Interfaces.RealInput TRoo( final unit="K", displayUnit="degC") "Measured room air temperature"; Controls.OBC.CDL.Interfaces.RealOutput TSupSet( final unit="K", displayUnit="degC") "Set point for heating supply water temperature"; Controls.OBC.CDL.Interfaces.RealOutput y( final unit="1", final min=0, final max=1) "Control signal for heating system from P controller"; Controls.OBC.CDL.Interfaces.BooleanOutput on "Outputs true if the system is demanded on"; Controls.OBC.CDL.Interfaces.RealOutput yPum( final unit="1", final min=0, final max=1) "Pump speed control signal"; Buildings.Controls.OBC.CDL.Reals.PID conHea( final controllerType=controllerType, final k=k, final Ti = Ti, final Td = Td, final yMax=1, final yMin=0, final reverseActing=true) "Controller for heating supply set point signal"; Buildings.Controls.OBC.CDL.Reals.Hysteresis hysHea( uLow=0.1, uHigh=0.2) "Hysteresis to switch system on and off"; protected Buildings.Controls.OBC.CDL.Reals.Sources.Constant one(final k=1) "Outputs one"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant zero(final k=0) "Outputs zero"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant THeaSup_minimum(final k( final unit="K", displayUnit="degC") = TSupSet_min) "Negative value of minimum heating supply water temperature"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant THeaSup_maximum( final k( final unit="K", displayUnit="degC") = TSupSet_max) "Maximum heating supply water temperature"; Buildings.Controls.OBC.CDL.Reals.Line TSup( limitBelow=false, limitAbove=false, y(final unit="K", displayUnit="degC")) "Set point for supply water temperature"; CDL.Conversions.BooleanToReal booToRea( final realFalse=0, final realTrue=1) "Pump control signal as a Real number (either 0 or 1)"; equation connect(conHea.y,hysHea.u); connect(TRoo, conHea.u_m); connect(TRooSet, conHea.u_s); connect(TSup.x1, zero.y); connect(one.y, TSup.x2); connect(conHea.y, TSup.u); connect(TSup.f1, THeaSup_minimum.y); connect(THeaSup_maximum.y, TSup.f2); connect(TSup.y, TSupSet); connect(hysHea.y, on); connect(conHea.y, y); connect(booToRea.y, yPum); connect(booToRea.u, hysHea.y); end HighMassSupplyTemperature_TRoom;