Collection of models that illustrate model use and test models
Information
This package contains examples for the use of models that can be found in
Buildings.Fluid.HeatPumps.
Extends from Modelica.Icons.ExamplesPackage (Icon for packages containing runnable examples).
Package Content
Name |
Description |
Carnot_TCon
|
Test model for heat pump based on Carnot efficiency and condenser outlet temperature control signal |
Carnot_y
|
Test model for heat pump based on Carnot efficiency |
EquationFitReversible
|
Test model for reverse heat pump based on performance curves |
EquationFitReversible_CoolingClosedLoop
|
Test model for a closed loop of a reverse heat pump based on performance curves |
ScrollWaterToWater_OneRoomRadiator
|
Heat pump with scroll compressor connected to a simple room model with radiator |
Test model for heat pump based on Carnot efficiency and condenser outlet temperature control signal
Information
Example that simulates a chiller whose efficiency is scaled based on the
Carnot cycle.
The chiller takes as an input the evaporator leaving water temperature.
The condenser mass flow rate is computed in such a way that it has
a temperature difference equal to dTEva_nominal
.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
Type | Name | Default | Description |
TemperatureDifference | dTEva_nominal | -5 | Temperature difference evaporator inlet-outlet [K] |
TemperatureDifference | dTCon_nominal | 10 | Temperature difference condenser outlet-inlet [K] |
HeatFlowRate | QCon_flow_nominal | 100E3 | Evaporator heat flow rate [W] |
MassFlowRate | m1_flow_nominal | QCon_flow_nominal/dTCon_nomi... | Nominal mass flow rate at condenser [kg/s] |
Modelica definition
model Carnot_TCon
extends Modelica.Icons.Example;
package Medium1 =
Buildings.Media.Water ;
package Medium2 =
Buildings.Media.Water ;
parameter Modelica.Units.SI.TemperatureDifference dTEva_nominal=-5
;
parameter Modelica.Units.SI.TemperatureDifference dTCon_nominal=10
;
parameter Modelica.Units.SI.HeatFlowRate QCon_flow_nominal=100E3
;
parameter Modelica.Units.SI.MassFlowRate m1_flow_nominal=QCon_flow_nominal/
dTCon_nominal/4200 ;
Buildings.Fluid.HeatPumps.Carnot_TCon heaPum(
redeclare package Medium1 = Medium1,
redeclare package Medium2 = Medium2,
dTEva_nominal=dTEva_nominal,
dTCon_nominal=dTCon_nominal,
m1_flow_nominal=m1_flow_nominal,
show_T=true,
allowFlowReversal1=false,
allowFlowReversal2=false,
use_eta_Carnot_nominal=true,
etaCarnot_nominal=0.3,
QCon_flow_nominal=QCon_flow_nominal,
dp1_nominal=6000,
dp2_nominal=6000) ;
Buildings.Fluid.Sources.MassFlowSource_T sou1(nPorts=1,
redeclare package Medium = Medium1,
m_flow=m1_flow_nominal,
T=293.15);
Buildings.Fluid.Sources.MassFlowSource_T sou2(nPorts=1,
redeclare package Medium = Medium2,
use_T_in=false,
use_m_flow_in=true,
T=288.15);
Modelica.Blocks.Sources.Ramp TConLvg(
duration=60,
startTime=1800,
height=15,
offset=273.15 + 35) ;
Modelica.Blocks.Math.Gain mEva_flow(k=-1/cp2_default/dTEva_nominal)
;
Modelica.Blocks.Math.Add QEva_flow(k2=-1) ;
Buildings.Fluid.Sources.Boundary_pT sin2(
redeclare package Medium = Medium2,
nPorts=1);
Buildings.Fluid.Sources.Boundary_pT sin1(
redeclare package Medium = Medium1,
nPorts=1);
final parameter Modelica.Units.SI.SpecificHeatCapacity cp2_default=
Medium2.specificHeatCapacityCp(
Medium2.setState_pTX(
Medium2.p_default,
Medium2.T_default,
Medium2.X_default))
;
equation
connect(sou1.ports[1], heaPum.port_a1);
connect(sou2.ports[1], heaPum.port_a2);
connect(QEva_flow.y,mEva_flow. u);
connect(TConLvg.y, heaPum.TSet);
connect(mEva_flow.y, sou2.m_flow_in);
connect(QEva_flow.u1, heaPum.QCon_flow);
connect(QEva_flow.u2, heaPum.P);
connect(sin2.ports[1], heaPum.port_b2);
connect(heaPum.port_b1, sin1.ports[1]);
end Carnot_TCon;
Test model for heat pump based on Carnot efficiency
Information
Example that simulates a heat pump whose efficiency is scaled based on the
Carnot cycle.
The control signal of the heat pump is the compressor speed.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
Type | Name | Default | Description |
Real | COP_nominal | 6 | Nominal COP |
Power | P_nominal | 10E3 | Nominal compressor power (at y=1) [W] |
TemperatureDifference | dTEva_nominal | -10 | Temperature difference evaporator outlet-inlet [K] |
TemperatureDifference | dTCon_nominal | 10 | Temperature difference condenser outlet-inlet [K] |
MassFlowRate | m2_flow_nominal | -P_nominal*(COP_nominal - 1)... | Nominal mass flow rate at chilled water side [kg/s] |
MassFlowRate | m1_flow_nominal | P_nominal*COP_nominal/cp1_de... | Nominal mass flow rate at condenser water wide [kg/s] |
Modelica definition
model Carnot_y
extends Modelica.Icons.Example;
package Medium1 =
Buildings.Media.Water ;
package Medium2 =
Buildings.Media.Water ;
parameter Real COP_nominal = 6 ;
parameter Modelica.Units.SI.Power P_nominal=10E3
;
parameter Modelica.Units.SI.TemperatureDifference dTEva_nominal=-10
;
parameter Modelica.Units.SI.TemperatureDifference dTCon_nominal=10
;
parameter Modelica.Units.SI.MassFlowRate m2_flow_nominal=-P_nominal*(
COP_nominal - 1)/cp2_default/dTEva_nominal
;
parameter Modelica.Units.SI.MassFlowRate m1_flow_nominal=P_nominal*
COP_nominal/cp1_default/dTCon_nominal
;
Buildings.Fluid.HeatPumps.Carnot_y heaPum(
redeclare package Medium1 = Medium1,
redeclare package Medium2 = Medium2,
P_nominal=P_nominal,
dTEva_nominal=dTEva_nominal,
dTCon_nominal=dTCon_nominal,
dp1_nominal=6000,
dp2_nominal=6000,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
show_T=true,
use_eta_Carnot_nominal=false,
COP_nominal=COP_nominal,
TCon_nominal=303.15,
TEva_nominal=278.15) ;
Buildings.Fluid.Sources.MassFlowSource_T sou1(nPorts=1,
redeclare package Medium = Medium1,
use_T_in=true,
m_flow=m1_flow_nominal,
T=298.15);
Buildings.Fluid.Sources.MassFlowSource_T sou2(nPorts=1,
redeclare package Medium = Medium2,
use_T_in=true,
m_flow=m2_flow_nominal,
T=291.15);
Buildings.Fluid.Sources.Boundary_pT sin1(
nPorts=1,
redeclare package Medium = Medium1);
Buildings.Fluid.Sources.Boundary_pT sin2(
nPorts=1,
redeclare package Medium = Medium2);
Modelica.Blocks.Sources.Ramp uCom(
height=-1,
duration=60,
offset=1,
startTime=1800) ;
Modelica.Blocks.Sources.Ramp TCon_in(
height=10,
duration=60,
offset=273.15 + 20,
startTime=60) ;
Modelica.Blocks.Sources.Ramp TEva_in(
height=10,
duration=60,
startTime=900,
offset=273.15 + 15) ;
final parameter Modelica.Units.SI.SpecificHeatCapacity cp1_default=
Medium1.specificHeatCapacityCp(
Medium1.setState_pTX(
Medium1.p_default,
Medium1.T_default,
Medium1.X_default))
;
final parameter Modelica.Units.SI.SpecificHeatCapacity cp2_default=
Medium2.specificHeatCapacityCp(
Medium2.setState_pTX(
Medium2.p_default,
Medium2.T_default,
Medium2.X_default))
;
equation
connect(sou1.ports[1], heaPum.port_a1);
connect(sou2.ports[1], heaPum.port_a2);
connect(heaPum.port_b1, sin1.ports[1]);
connect(sin2.ports[1], heaPum.port_b2);
connect(TCon_in.y, sou1.T_in);
connect(TEva_in.y, sou2.T_in);
connect(uCom.y, heaPum.y);
end Carnot_y;
Test model for reverse heat pump based on performance curves
Information
Example that simulates the performance of
Buildings.Fluid.HeatPumps.EquationFitReversible based on the equation fit method.
The heat pump takes as an input the set point for the heating or the chilled leaving
water temperature and an integer input to
specify the heat pump operational mode.
Parameters
Type | Name | Default | Description |
Trane_Axiom_EXW240 | per | | Reverse heat pump performance data |
MassFlowRate | mSou_flow_nominal | per.hea.mSou_flow | Source heat exchanger nominal mass flow rate [kg/s] |
MassFlowRate | mLoa_flow_nominal | per.hea.mLoa_flow | Load heat exchanger nominal mass flow rate [kg/s] |
Modelica definition
model EquationFitReversible
package Medium =
Buildings.Media.Water ;
parameter Data.EquationFitReversible.Trane_Axiom_EXW240 per
;
parameter Modelica.Units.SI.MassFlowRate mSou_flow_nominal=per.hea.mSou_flow
;
parameter Modelica.Units.SI.MassFlowRate mLoa_flow_nominal=per.hea.mLoa_flow
;
Buildings.Fluid.HeatPumps.EquationFitReversible heaPum(
redeclare package Medium1 = Medium,
redeclare package Medium2 = Medium,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
T1_start=281.4,
per=per)
;
Modelica.Blocks.Math.RealToInteger reaToInt
;
Sources.MassFlowSource_T loaPum(
redeclare package Medium = Medium,
use_m_flow_in=false,
m_flow=mLoa_flow_nominal,
use_T_in=true,
nPorts=1)
;
Sources.MassFlowSource_T souPum(
redeclare package Medium = Medium,
m_flow=mSou_flow_nominal,
nPorts=1,
use_T_in=true)
;
Modelica.Fluid.Sources.FixedBoundary loaVol(
redeclare package Medium = Medium,
nPorts=1)
;
Modelica.Fluid.Sources.FixedBoundary souVol(
redeclare package Medium = Medium,
nPorts=1)
;
Controls.OBC.CDL.Continuous.Sources.Ramp THeaLoaSet(
height=5,
duration(displayUnit="h") = 14400,
offset=55 + 273.15)
;
Controls.OBC.CDL.Continuous.Sources.Ramp TCooLoaSet(
height=1,
duration(displayUnit="h") = 14400,
offset=6 + 273.15) ;
Controls.OBC.CDL.Integers.GreaterThreshold intGreThr(t=-1)
;
Controls.OBC.CDL.Continuous.Switch swi ;
Controls.OBC.CDL.Continuous.Sources.Ramp TSouEntCoo(
height=5,
duration(displayUnit="h") = 14400,
offset=28 + 273.15)
;
Modelica.Blocks.Sources.Ramp uMod(
height=2,
duration(displayUnit="h") = 14400,
offset=-1) ;
Controls.OBC.CDL.Continuous.Switch swi1
;
Controls.OBC.CDL.Continuous.Switch swi2
;
Controls.OBC.CDL.Continuous.Sources.Ramp TSouEntHea(
height=2,
duration(displayUnit="h") = 14400,
offset=12 + 273.15)
;
Controls.OBC.CDL.Continuous.Sources.Ramp TLoaEntHea(
height=5,
duration(displayUnit="h") = 14400,
offset=50 + 273.15)
;
Controls.OBC.CDL.Continuous.Sources.Ramp TLoaEntCoo(
height=5,
duration(displayUnit="h") = 14400,
offset=10 + 273.15)
;
equation
connect(souPum.ports[1], heaPum.port_a2);
connect(heaPum.port_b1, loaVol.ports[1]);
connect(heaPum.port_b2, souVol.ports[1]);
connect(swi.u2,intGreThr. y);
connect(intGreThr.u, reaToInt.y);
connect(reaToInt.u, uMod.y);
connect(swi2.u3, TSouEntCoo.y);
connect(TSouEntHea.y, swi2.u1);
connect(intGreThr.y, swi2.u2);
connect(swi1.y, loaPum.T_in);
connect(intGreThr.y, swi1.u2);
connect(TLoaEntCoo.y, swi1.u3);
connect(TLoaEntHea.y, swi1.u1);
connect(swi.y, heaPum.TSet);
connect(swi2.y, souPum.T_in);
connect(loaPum.ports[1], heaPum.port_a1);
connect(THeaLoaSet.y, swi.u1);
connect(TCooLoaSet.y, swi.u3);
connect(reaToInt.y, heaPum.uMod);
end EquationFitReversible;
Test model for a closed loop of a reverse heat pump based on performance curves
Information
Example that simulates the performance of
Buildings.Fluid.HeatPumps.EquationFitReversible based on the equation fit method.
The heat pump takes as an input the set point for the chilled leaving
water temperature and an integer input equals to -1 which corresponds to the cooling operational mode.
The heat pump is connected to a control volume to which heat is added and the pump moves the water
to the heatpump where it is cooled to meet the corresponding set point water temperature.
Parameters
Type | Name | Default | Description |
Trane_Axiom_EXW240 | per | | Reversible heat pump performance data |
MassFlowRate | mSou_flow_nominal | per.hea.mSou_flow | Source heat exchanger nominal mass flow rate [kg/s] |
MassFlowRate | mLoa_flow_nominal | per.hea.mLoa_flow | Load heat exchanger nominal mass flow rate [kg/s] |
Modelica definition
model EquationFitReversible_CoolingClosedLoop
package Medium =
Buildings.Media.Water ;
parameter Data.EquationFitReversible.Trane_Axiom_EXW240 per
;
parameter Modelica.Units.SI.MassFlowRate mSou_flow_nominal=per.hea.mSou_flow
;
parameter Modelica.Units.SI.MassFlowRate mLoa_flow_nominal=per.hea.mLoa_flow
;
Buildings.Fluid.HeatPumps.EquationFitReversible heaPum(
redeclare package Medium1 = Medium,
redeclare package Medium2 = Medium,
energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState,
per=per,
scaling_factor=1)
;
Modelica.Blocks.Math.RealToInteger reaToInt
;
Sources.MassFlowSource_T souPum(
redeclare package Medium = Medium,
m_flow=mSou_flow_nominal,
nPorts=1,
use_T_in=true)
;
Modelica.Fluid.Sources.FixedBoundary souVol(
redeclare package Medium = Medium,
nPorts=1)
;
Controls.OBC.CDL.Continuous.Sources.Pulse uMod(
amplitude=-1,
width=0.7,
period=200,
offset=0)
;
Controls.OBC.CDL.Continuous.Sources.Pulse pulse(
amplitude=1,
width=0.7,
period(displayUnit="s") = 200,
offset=0);
Modelica.Blocks.Math.Gain Q_flow(k=4200)
;
Modelica.Blocks.Math.Gain m_flow(k=mLoa_flow_nominal)
;
HeatTransfer.Sources.PrescribedHeatFlow heaFlo
;
Movers.FlowControlled_m_flow pum(
redeclare package Medium = Medium,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
m_flow_nominal=mLoa_flow_nominal,
addPowerToMedium=false,
nominalValuesDefineDefaultPressureCurve=true)
;
MixingVolumes.MixingVolume vol(
redeclare package Medium = Medium,
massDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
T_start=285.15,
m_flow_nominal=mLoa_flow_nominal,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
V=0.1*3600*mLoa_flow_nominal/1000,
nPorts=2)
;
Controls.OBC.CDL.Continuous.Sources.Pulse TSouEnt(
amplitude=3,
width=0.7,
period=200,
offset=25 + 273.15)
;
Controls.OBC.CDL.Continuous.Sources.Pulse TLoaSet(
y(
final unit="K", displayUnit="degC"),
amplitude=1,
width=0.7,
period=200,
offset=6 + 273.15)
;
Sources.Boundary_pT pre(
redeclare package Medium = Medium,
nPorts=1) ;
equation
connect(souPum.ports[1], heaPum.port_a2);
connect(uMod.y, reaToInt.u);
connect(reaToInt.y, heaPum.uMod);
connect(heaPum.port_b2, souVol.ports[1]);
connect(pulse.y,m_flow. u);
connect(m_flow.y,Q_flow. u);
connect(heaFlo.port, vol.heatPort);
connect(pum.port_a, vol.ports[1]);
connect(vol.ports[2], heaPum.port_b1);
connect(pum.port_b, heaPum.port_a1);
connect(m_flow.y, pum.m_flow_in);
connect(Q_flow.y, heaFlo.Q_flow);
connect(souPum.T_in, TSouEnt.y);
connect(TLoaSet.y, heaPum.TSet);
connect(pum.port_a, pre.ports[1]);
end EquationFitReversible_CoolingClosedLoop;
Heat pump with scroll compressor connected to a simple room model with radiator
Information
Example that simulates one room equipped with a radiator. Hot water is produced
by a 24 kW nominal capacity heat pump. The source side water temperature to the
heat pump is constant at 10°C.
The heat pump is turned on when the room temperature falls below
19°C and turned
off when the room temperature rises above 21°C.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
Type | Name | Default | Description |
replaceable package MediumA | Buildings.Media.Air | Medium model for air |
replaceable package MediumW | Buildings.Media.Water | Medium model for water |
HeatFlowRate | Q_flow_nominal | 20000 | Nominal heat flow rate of radiator [W] |
Temperature | TRadSup_nominal | 273.15 + 50 | Radiator nominal supply water temperature [K] |
Temperature | TRadRet_nominal | 273.15 + 45 | Radiator nominal return water temperature [K] |
MassFlowRate | mHeaPum_flow_nominal | Q_flow_nominal/4200/5 | Heat pump nominal mass flow rate [kg/s] |
Volume | V | 6*10*3 | Room volume [m3] |
MassFlowRate | mA_flow_nominal | V*1.2*6/3600 | Nominal mass flow rate [kg/s] |
HeatFlowRate | QRooInt_flow | 4000 | Internal heat gains of the room [W] |
Connectors
Type | Name | Description |
replaceable package MediumA | Medium model for air |
replaceable package MediumW | Medium model for water |
Bus | weaBus | Weather data bus |
Modelica definition
model ScrollWaterToWater_OneRoomRadiator
extends Modelica.Icons.Example;
replaceable package MediumA =
Buildings.Media.Air ;
replaceable package MediumW =
Buildings.Media.Water ;
parameter Modelica.Units.SI.HeatFlowRate Q_flow_nominal=20000
;
parameter Modelica.Units.SI.Temperature TRadSup_nominal=273.15 + 50
;
parameter Modelica.Units.SI.Temperature TRadRet_nominal=273.15 + 45
;
parameter Modelica.Units.SI.MassFlowRate mHeaPum_flow_nominal=Q_flow_nominal/
4200/5 ;
parameter Modelica.Units.SI.Volume V=6*10*3 ;
parameter Modelica.Units.SI.MassFlowRate mA_flow_nominal=V*1.2*6/3600
;
parameter Modelica.Units.SI.HeatFlowRate QRooInt_flow=4000
;
Buildings.Fluid.MixingVolumes.MixingVolume vol(
redeclare package Medium =
MediumA,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
m_flow_nominal=mA_flow_nominal,
V=V);
Modelica.Thermal.HeatTransfer.Components.ThermalConductor theCon(G=20000/40)
;
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow preHea
;
Modelica.Thermal.HeatTransfer.Components.HeatCapacitor heaCap(C=2*V*1.2*1006)
;
Modelica.Blocks.Sources.CombiTimeTable timTab(
extrapolation=Modelica.Blocks.Types.Extrapolation.Periodic,
smoothness=Modelica.Blocks.Types.Smoothness.ConstantSegments,
table=[-6*3600, 0;
8*3600, QRooInt_flow;
18*3600, 0]) ;
Buildings.Fluid.HeatExchangers.Radiators.RadiatorEN442_2 rad(
redeclare package Medium =
MediumW,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
Q_flow_nominal=Q_flow_nominal,
T_a_nominal=TRadSup_nominal,
T_b_nominal=TRadRet_nominal,
m_flow_nominal=mHeaPum_flow_nominal,
T_start=TRadSup_nominal) ;
Buildings.Fluid.Sensors.TemperatureTwoPort temSup(
redeclare package Medium =
MediumW,
m_flow_nominal=mHeaPum_flow_nominal,
T_start=TRadSup_nominal) ;
Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor temRoo
;
Buildings.Fluid.Movers.FlowControlled_m_flow pumHeaPum(
redeclare package Medium =
MediumW,
m_flow_nominal=mHeaPum_flow_nominal,
m_flow_start=0.85,
T_start=TRadSup_nominal,
nominalValuesDefineDefaultPressureCurve=true,
use_inputFilter=false,
energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState) ;
Buildings.Fluid.Sensors.TemperatureTwoPort temRet(
redeclare package Medium =
MediumW,
m_flow_nominal=mHeaPum_flow_nominal,
T_start=TRadSup_nominal) ;
Buildings.BoundaryConditions.WeatherData.ReaderTMY3 weaDat(filNam=
Modelica.Utilities.Files.loadResource(
"modelica://Buildings/Resources/weatherdata/USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.mos"))
;
Buildings.BoundaryConditions.WeatherData.Bus weaBus ;
Buildings.HeatTransfer.Sources.PrescribedTemperature TOut
;
ScrollWaterToWater heaPum(
redeclare package Medium1 =
MediumW,
redeclare package Medium2 =
MediumW,
redeclare package ref =
Buildings.Media.Refrigerants.R410A,
dp1_nominal=2000,
dp2_nominal=2000,
tau1=15,
tau2=15,
show_T=true,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
m1_flow_nominal=mHeaPum_flow_nominal,
m2_flow_nominal=mHeaPum_flow_nominal,
datHeaPum=
Data.ScrollWaterToWater.Heating.Daikin_WRA072_24kW_4_30COP_R410A(),
T1_start=TRadSup_nominal)
;
Buildings.Fluid.Movers.FlowControlled_m_flow pumHeaPumSou(
redeclare package Medium =
MediumW,
m_flow_start=0.85,
m_flow_nominal=mHeaPum_flow_nominal,
nominalValuesDefineDefaultPressureCurve=true,
use_inputFilter=false,
energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState)
;
Modelica.Blocks.Logical.Hysteresis hysteresis(
uLow=273.15 + 19,
uHigh=273.15 + 21) ;
Modelica.Blocks.Logical.Not not2 ;
Modelica.Blocks.Math.BooleanToReal booToReaPum(realTrue=1, y(start=0))
;
Modelica.Blocks.Logical.And and1;
Modelica.Blocks.Logical.And and2;
Modelica.Blocks.Math.BooleanToReal booToReaPum1(
realTrue=1,
y(start=0))
;
Modelica.Blocks.Logical.Hysteresis tesConHea(
uHigh=0.25*mHeaPum_flow_nominal,
uLow=0.20*mHeaPum_flow_nominal) ;
Modelica.Blocks.Logical.Hysteresis tesEvaPum(
uLow=0.20*mHeaPum_flow_nominal,
uHigh=0.25*mHeaPum_flow_nominal) ;
Buildings.Fluid.Sources.Boundary_pT sou(
redeclare package Medium =
MediumW,
T=281.15,
nPorts=1) ;
Buildings.Fluid.Sources.Boundary_pT sin(
redeclare package Medium =
MediumW,
T=283.15,
nPorts=1) ;
Buildings.Fluid.Sources.Boundary_pT preSou(
redeclare package Medium =
MediumW,
T=TRadSup_nominal,
nPorts=1)
;
equation
connect(theCon.port_b, vol.heatPort);
connect(preHea.port, vol.heatPort);
connect(heaCap.port, vol.heatPort);
connect(timTab.y[1], preHea.Q_flow);
connect(temSup.port_b, rad.port_a);
connect(temRoo.port, vol.heatPort);
connect(rad.heatPortCon, vol.heatPort);
connect(rad.heatPortRad, vol.heatPort);
connect(weaDat.weaBus, weaBus);
connect(weaBus.TDryBul, TOut.T);
connect(TOut.port, theCon.port_a);
connect(temRet.port_b, heaPum.port_a1);
connect(pumHeaPumSou.port_b, heaPum.port_a2);
connect(hysteresis.y, not2.u);
connect(temRoo.T, hysteresis.u);
connect(pumHeaPum.port_b, temSup.port_a);
connect(temRet.port_a, rad.port_b);
connect(booToReaPum1.y, heaPum.y);
connect(tesConHea.y, and1.u1);
connect(tesEvaPum.y, and1.u2);
connect(heaPum.port_b1, pumHeaPum.port_a);
connect(booToReaPum.y, pumHeaPum.m_flow_in);
connect(booToReaPum.y, pumHeaPumSou.m_flow_in);
connect(not2.y, and2.u1);
connect(not2.y, booToReaPum.u);
connect(sou.ports[1], pumHeaPumSou.port_a);
connect(sin.ports[1], heaPum.port_b2);
connect(pumHeaPum.m_flow_actual, tesConHea.u);
connect(and1.y, and2.u2);
connect(pumHeaPumSou.m_flow_actual, tesEvaPum.u);
connect(and2.y, booToReaPum1.u);
connect(preSou.ports[1], temRet.port_b);
end ScrollWaterToWater_OneRoomRadiator;