Buildings.Controls.OBC.RadiantSystems.Cooling

Package with control sequences for radiant cooling systems

Information

Package with controllers for radiant cooling systems.

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

Package Content

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

Buildings.Controls.OBC.RadiantSystems.Cooling.HighMassSupplyTemperature_TRoomRelHum Buildings.Controls.OBC.RadiantSystems.Cooling.HighMassSupplyTemperature_TRoomRelHum

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

Buildings.Controls.OBC.RadiantSystems.Cooling.HighMassSupplyTemperature_TRoomRelHum

Information

Controller for a radiant cooling system.

The controller tracks the room temperature set point TRooSet by adjusting the supply water temperature set point TSupSet based on the output signal y of the proportional controller. The supply water temperature set point TSupSet is limited by the dew point temperature that is calculated based on the inputs TRoo and phiRoo. 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_max297.15Maximum cooling supply water temperature [K]
RealTSupSet_min Minimum cooling 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]
input RealInputphiRooMeasured room air relative humidity [1]
output RealOutputTSupSetSet point for cooling 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_TRoomRelHum "Room temperature controller for radiant cooling with constant mass flow and variable supply temperature" parameter Real TSupSet_max( final unit="K", displayUnit="degC") = 297.15 "Maximum cooling supply water temperature"; parameter Real TSupSet_min( final unit="K", displayUnit="degC") "Minimum cooling 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.RealInput phiRoo( final unit="1") "Measured room air relative humidity"; Controls.OBC.CDL.Interfaces.RealOutput TSupSet( final unit="K", displayUnit="degC") "Set point for cooling 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"; CDL.Psychrometrics.DewPoint_TDryBulPhi dewPoi "Dew point temperature, used to avoid condensation"; CDL.Continuous.Hysteresis hysCoo( uLow=0.1, uHigh=0.2) "Hysteresis to switch system on and off"; CDL.Continuous.PID conCoo( final controllerType=controllerType, final k=k, final Ti = Ti, final Td = Td, final yMax=1, final yMin=0, reverseActing=false) "Controller for cooling"; protected CDL.Continuous.Sources.Constant TSupMin( final k( final unit="K", displayUnit="degC") = TSupSet_min, y(final unit="K", displayUnit="degC")) "Minimum cooling supply water temperature"; CDL.Continuous.Sources.Constant TSupMax( final k( final unit="K", displayUnit="degC") = TSupSet_max, y(final unit="K", displayUnit="degC")) "Maximum cooling supply water temperature"; CDL.Continuous.Sources.Constant one(final k=1) "Outputs one"; CDL.Continuous.Sources.Constant zero(final k=0) "Outputs zero"; CDL.Continuous.Line TSupNoDewPoi( limitBelow=false, limitAbove=false, y(final unit="K", displayUnit="degC")) "Set point for supply water temperature without consideration of dew point"; CDL.Continuous.Max TSupCoo "Cooling water supply temperature"; CDL.Conversions.BooleanToReal booToRea( final realFalse=0, final realTrue=1) "Pump control signal as a Real number (either 0 or 1)"; equation connect(hysCoo.y,booToRea.u); connect(conCoo.y,hysCoo.u); connect(TSupCoo.u2,dewPoi.TDewPoi); connect(TSupCoo.y, TSupSet); connect(conCoo.y, y); connect(conCoo.u_s, TRooSet); connect(dewPoi.phi, phiRoo); connect(booToRea.y, yPum); connect(hysCoo.y, on); connect(TSupNoDewPoi.x1, zero.y); connect(TSupNoDewPoi.f1, TSupMax.y); connect(TSupNoDewPoi.x2, one.y); connect(TSupNoDewPoi.f2, TSupMin.y); connect(conCoo.y, TSupNoDewPoi.u); connect(TSupNoDewPoi.y, TSupCoo.u1); connect(TRoo, conCoo.u_m); connect(TRoo, dewPoi.TDryBul); end HighMassSupplyTemperature_TRoomRelHum;