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 |
HighMassSupplyTemperature_TRoomRelHum
|
Controller for radiant cooling that controls the room temperature using constant mass flow and variable supply temperature |
HighMassSupplyTemperature_TSurRelHum
|
Controller for radiant cooling that controls the surface temperature using constant mass flow and variable supply temperature |
Validation
|
Collection of validation models |
Controller for radiant cooling that controls the room temperature using constant mass flow and variable supply temperature
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.
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
Type | Name | Default | Description |
Real | TSupSet_max | 297.15 | Maximum cooling supply water temperature [K] |
Real | TSupSet_min | | Minimum cooling supply water temperature [K] |
Control gains |
SimpleController | controllerType | Buildings.Controls.OBC.CDL.T... | Type of controller |
Real | k | 2 | Gain of controller |
Real | Ti | 3600 | Time constant of integrator block [s] |
Real | Td | 0.1 | Time constant of derivative block [s] |
Connectors
Type | Name | Description |
input RealInput | TRooSet | Set point for room air temperature [K] |
input RealInput | TRoo | Measured room air temperature [K] |
input RealInput | phiRoo | Measured room air relative humidity [1] |
output RealOutput | TSupSet | Set point for cooling supply water temperature [K] |
output RealOutput | y | Control signal for heating system from P controller [1] |
output BooleanOutput | on | Outputs true if the system is demanded on |
output RealOutput | yPum | Pump speed control signal [1] |
Modelica definition
block HighMassSupplyTemperature_TRoomRelHum
parameter Real TSupSet_max(
final unit="K",
displayUnit="degC") = 297.15 ;
parameter Real TSupSet_min(
final unit="K",
displayUnit="degC") ;
parameter Controls.OBC.CDL.Types.SimpleController controllerType=Buildings.Controls.OBC.CDL.Types.SimpleController.P
;
parameter Real k(
min=100*Buildings.Controls.OBC.CDL.Constants.eps)=2
;
parameter Real Ti(
final quantity="Time",
final unit="s",
min=100*Buildings.Controls.OBC.CDL.Constants.eps)=3600
;
parameter Real Td(
final quantity="Time",
final unit="s",
min=100*Buildings.Controls.OBC.CDL.Constants.eps)=0.1
;
Controls.OBC.CDL.Interfaces.RealInput TRooSet(
final unit="K",
displayUnit="degC")
;
Controls.OBC.CDL.Interfaces.RealInput TRoo(
final unit="K",
displayUnit="degC") ;
Controls.OBC.CDL.Interfaces.RealInput phiRoo(
final unit="1") ;
Controls.OBC.CDL.Interfaces.RealOutput TSupSet(
final unit="K",
displayUnit="degC") ;
Controls.OBC.CDL.Interfaces.RealOutput y(
final unit="1",
final min=0,
final max=1)
;
Controls.OBC.CDL.Interfaces.BooleanOutput on
;
Controls.OBC.CDL.Interfaces.RealOutput yPum(
final unit="1",
final min=0,
final max=1)
;
CDL.Psychrometrics.DewPoint_TDryBulPhi dewPoi
;
CDL.Continuous.Hysteresis hysCoo(
uLow=0.1,
uHigh=0.2)
;
CDL.Continuous.PID conCoo(
final controllerType=controllerType,
final k=k,
final Ti = Ti,
final Td = Td,
final yMax=1,
final yMin=0,
reverseActing=false)
;
protected
CDL.Continuous.Sources.Constant TSupMin(
final k(
final unit="K",
displayUnit="degC") = TSupSet_min,
y(
final unit="K", displayUnit="degC"))
;
CDL.Continuous.Sources.Constant TSupMax(
final k(
final unit="K",
displayUnit="degC") = TSupSet_max,
y(
final unit="K", displayUnit="degC"))
;
CDL.Continuous.Sources.Constant one(
final k=1) ;
CDL.Continuous.Sources.Constant zero(
final k=0) ;
CDL.Continuous.Line TSupNoDewPoi(
limitBelow=false,
limitAbove=false,
y(
final unit="K", displayUnit="degC"))
;
CDL.Continuous.Max TSupCoo
;
CDL.Conversions.BooleanToReal booToRea(
final realFalse=0,
final realTrue=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;
Controller for radiant cooling that controls the surface temperature using constant mass flow and variable supply temperature
Information
Controller for a radiant cooling system.
The controller tracks the surface temperature set point TSurSet
by
adjusting the supply water temperature set point TSupSet
based on the output signal y
of the proportional controller.
Both, the surface temperature set point TSurSet
and the resulting
supply water temperature set point TSupSet
are
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.
ASHRAE Standard 55-2004 recommends that the surface temperature of a radiant floor is above
18°C to avoid discomfort for spaces in which people wear typical footwear.
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
Type | Name | Default | Description |
Real | TSupSet_max | 297.15 | Maximum cooling supply water temperature [K] |
Real | TSupSet_min | | Minimum cooling supply water temperature [K] |
Control gains |
SimpleController | controllerType | Buildings.Controls.OBC.CDL.T... | Type of controller |
Real | k | 2 | Gain of controller |
Real | Ti | 3600 | Time constant of integrator block [s] |
Real | Td | 0.1 | Time constant of derivative block [s] |
Connectors
Type | Name | Description |
input RealInput | TSurSet | Set point for room air temperature [K] |
input RealInput | TRoo | Measured room air temperature [K] |
input RealInput | phiRoo | Measured room air relative humidity [1] |
input RealInput | TSur | Measured room air temperature [K] |
output RealOutput | TSupSet | Set point for cooling supply water temperature [K] |
output RealOutput | y | Control signal for heating system from P controller [1] |
output BooleanOutput | on | Outputs true if the system is demanded on |
output RealOutput | yPum | Pump speed control signal [1] |
Modelica definition
block HighMassSupplyTemperature_TSurRelHum
parameter Real TSupSet_max(
final unit="K",
displayUnit="degC") = 297.15 ;
parameter Real TSupSet_min(
final unit="K",
displayUnit="degC") ;
parameter Controls.OBC.CDL.Types.SimpleController controllerType=Buildings.Controls.OBC.CDL.Types.SimpleController.P
;
parameter Real k(
min=100*Buildings.Controls.OBC.CDL.Constants.eps)=2
;
parameter Real Ti(
final quantity="Time",
final unit="s",
min=100*Buildings.Controls.OBC.CDL.Constants.eps)=3600
;
parameter Real Td(
final quantity="Time",
final unit="s",
min=100*Buildings.Controls.OBC.CDL.Constants.eps)=0.1
;
Controls.OBC.CDL.Interfaces.RealInput TSurSet(
final unit="K",
displayUnit="degC")
;
Controls.OBC.CDL.Interfaces.RealInput TRoo(
final unit="K",
displayUnit="degC") ;
Controls.OBC.CDL.Interfaces.RealInput phiRoo(
final unit="1") ;
Controls.OBC.CDL.Interfaces.RealInput TSur(
final unit="K",
displayUnit="degC") ;
Controls.OBC.CDL.Interfaces.RealOutput TSupSet(
final unit="K",
displayUnit="degC") ;
Controls.OBC.CDL.Interfaces.RealOutput y(
final unit="1",
final min=0,
final max=1)
;
Controls.OBC.CDL.Interfaces.BooleanOutput on
;
Controls.OBC.CDL.Interfaces.RealOutput yPum(
final unit="1",
final min=0,
final max=1)
;
CDL.Psychrometrics.DewPoint_TDryBulPhi dewPoi
;
CDL.Continuous.Hysteresis hysCoo(
uLow=0.1,
uHigh=0.2)
;
CDL.Continuous.PID conCoo(
final controllerType=controllerType,
final k=k,
final Ti = Ti,
final Td = Td,
final yMax=1,
final yMin=0,
reverseActing=false)
;
protected
CDL.Continuous.Sources.Constant TSupMin(
final k(
final unit="K",
displayUnit="degC") = TSupSet_min,
y(
final unit="K", displayUnit="degC"))
;
CDL.Continuous.Sources.Constant TSupMax(
final k(
final unit="K",
displayUnit="degC") = TSupSet_max,
y(
final unit="K", displayUnit="degC"))
;
CDL.Continuous.Sources.Constant one(
final k=1) ;
CDL.Continuous.Sources.Constant zero(
final k=0) ;
CDL.Continuous.Line TSupNoDewPoi(
limitBelow=false,
limitAbove=false,
y(
final unit="K", displayUnit="degC"))
;
CDL.Continuous.Max TSupCoo
;
CDL.Conversions.BooleanToReal booToRea(
final realFalse=0,
final realTrue=1)
;
CDL.Continuous.Max TSurConMin
;
equation
connect(hysCoo.y,booToRea.u);
connect(conCoo.y,hysCoo.u);
connect(TSupCoo.y, TSupSet);
connect(conCoo.y, y);
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, dewPoi.TDryBul);
connect(conCoo.u_m, TSur);
connect(dewPoi.TDewPoi, TSurConMin.u2);
connect(TSurSet, TSurConMin.u1);
connect(TSurConMin.y, conCoo.u_s);
connect(dewPoi.TDewPoi, TSupCoo.u2);
end HighMassSupplyTemperature_TSurRelHum;