Package with examples of active beam models
Information
This package contains examples for the use of models that can be found in
Buildings.Fluid.HeatExchangers.ActiveBeams.
Extends from Modelica.Icons.ExamplesPackage (Icon for packages containing runnable examples).
Package Content
Information
This example tests the implementation of
Buildings.Fluid.HeatExchangers.ActiveBeams.CoolingAndHeating
for both heating and cooling mode. An air volume is maintained at a temperature between 22°C and
25°C by two controllers that regulate the water flow rate in the active beam.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Modelica definition
model CoolingAndHeating
extends Modelica.Icons.Example;
package MediumA =
Buildings.Media.Air ;
package MediumW =
Buildings.Media.Water ;
Buildings.Fluid.Sources.Boundary_pT sin_1(
redeclare package Medium = MediumW,
nPorts=1) ;
Buildings.Fluid.Sources.MassFlowSource_T souAir(
redeclare package Medium = MediumA,
m_flow=0.0792,
use_m_flow_in=false,
nPorts=1,
T=285.85) ;
Buildings.Fluid.Sources.Boundary_pT bou(
redeclare package Medium = MediumA,
nPorts=1) ;
Modelica.Thermal.HeatTransfer.Components.ThermalConductor theConWal(G=200)
;
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow heaFlo
;
Modelica.Blocks.Sources.Constant TSetHea(k=273.15 + 22)
;
Buildings.HeatTransfer.Sources.FixedTemperature TOut(T=301.15)
;
Buildings.Controls.Continuous.LimPID conHea(
yMax=0.094,
Td=0,
Ti=100,
k=0.1)
;
Sources.MassFlowSource_T pumCoo(
redeclare package Medium = MediumW,
use_m_flow_in=true,
nPorts=1,
T=288.15) ;
Modelica.Blocks.Math.Gain gain(k=1200) ;
Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor senTem
;
Sources.MassFlowSource_T pumHea(
redeclare package Medium = MediumW,
use_m_flow_in=true,
nPorts=1,
T=320.95) ;
Buildings.Fluid.Sources.Boundary_pT sin_2(
redeclare package Medium = MediumW,
nPorts=1) ;
Modelica.Blocks.Sources.Sine sine(
freqHz=1/86400,
amplitude=1,
phase=-1.5707963267949) ;
Buildings.Fluid.MixingVolumes.MixingVolume vol(nPorts=2,
redeclare package Medium = MediumA,
m_flow_nominal=0.1,
V=30,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial)
;
Modelica.Blocks.Sources.Constant TSetCoo(k=273.15 + 25)
;
Buildings.Controls.Continuous.LimPID conCoo(
yMax=0.094,
reverseActing=false,
Td=0,
k=0.5,
Ti=70)
;
Buildings.Fluid.HeatExchangers.ActiveBeams.CoolingAndHeating beaCooHea(
redeclare package MediumWat = MediumW,
redeclare package MediumAir = MediumA,
redeclare Buildings.Fluid.HeatExchangers.ActiveBeams.Data.Trox.DID632A_nozzleH_length6ft_cooling
perCoo,
redeclare Buildings.Fluid.HeatExchangers.ActiveBeams.Data.Trox.DID632A_nozzleH_length6ft_heating
perHea,
energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyStateInitial)
;
equation
connect(TOut.port, theConWal.port_a);
connect(gain.y, heaFlo.Q_flow);
connect(senTem.T,conHea. u_m);
connect(sine.y, gain.u);
connect(bou.ports[1], vol.ports[1]);
connect(theConWal.port_b, vol.heatPort);
connect(heaFlo.port, vol.heatPort);
connect(senTem.port, vol.heatPort);
connect(TSetHea.y, conHea.u_s);
connect(TSetCoo.y, conCoo.u_s);
connect(conCoo.u_m, senTem.T);
connect(beaCooHea.watCoo_b, sin_1.ports[1]);
connect(sin_2.ports[1], beaCooHea.watHea_b);
connect(souAir.ports[1], beaCooHea.air_a);
connect(beaCooHea.air_b, vol.ports[2]);
connect(beaCooHea.heaPor, vol.heatPort);
connect(conCoo.y, pumCoo.m_flow_in);
connect(conHea.y, pumHea.m_flow_in);
connect(pumCoo.ports[1], beaCooHea.watCoo_a);
connect(pumHea.ports[1], beaCooHea.watHea_a);
end CoolingAndHeating;
Information
This example tests the implementation of
Buildings.Fluid.HeatExchangers.ActiveBeams.Cooling.
An air volume is maintained at a temperature below 25°C by a controller
that regulates the water flow rate in the active beam.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Modelica definition
model CoolingOnly
extends Modelica.Icons.Example;
package MediumA =
Buildings.Media.Air ;
package MediumW =
Buildings.Media.Water ;
Buildings.Fluid.Sources.Boundary_pT sin_1(
redeclare package Medium = MediumW,
nPorts=1) ;
Buildings.Fluid.Sources.MassFlowSource_T souAir(
redeclare package Medium = MediumA,
use_m_flow_in=false,
m_flow=0.0792,
nPorts=1,
T=285.85) ;
Buildings.Fluid.Sources.Boundary_pT bou(
redeclare package Medium = MediumA,
nPorts=1) ;
Modelica.Thermal.HeatTransfer.Components.ThermalConductor theConWal(G=200)
;
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow heaFlo
;
Modelica.Blocks.Sources.Constant TSetCoo(k=273.15 + 25)
;
Buildings.HeatTransfer.Sources.FixedTemperature TOut(T=301.15)
;
Buildings.Controls.Continuous.LimPID conPID(
reverseActing=false,
Td=0,
k=0.5,
Ti=70,
yMax=0.094) ;
Sources.MassFlowSource_T pum(
redeclare package Medium = MediumW,
use_m_flow_in=true,
nPorts=1,
T=288.15) ;
Modelica.Blocks.Math.Gain gain(k=1200) ;
Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor senTem
;
Modelica.Blocks.Sources.Sine sine(
freqHz=1/86400,
amplitude=1,
phase=-1.5707963267949) ;
Buildings.Fluid.MixingVolumes.MixingVolume vol(
nPorts=2,
redeclare package Medium = MediumA,
m_flow_nominal=0.1,
V=30,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
T_start=293.15) ;
Buildings.Fluid.HeatExchangers.ActiveBeams.Cooling beaCoo(
redeclare package MediumWat = MediumW,
redeclare package MediumAir = MediumA,
redeclare Buildings.Fluid.HeatExchangers.ActiveBeams.Data.Trox.DID632A_nozzleH_length6ft_cooling
perCoo,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial) ;
equation
connect(TOut.port, theConWal.port_a);
connect(gain.y, heaFlo.Q_flow);
connect(TSetCoo.y, conPID.u_s);
connect(senTem.T, conPID.u_m);
connect(vol.ports[1], bou.ports[1]);
connect(heaFlo.port, vol.heatPort);
connect(theConWal.port_b, vol.heatPort);
connect(senTem.port, vol.heatPort);
connect(sine.y, gain.u);
connect(beaCoo.watCoo_b, sin_1.ports[1]);
connect(beaCoo.heaPor, vol.heatPort);
connect(souAir.ports[1], beaCoo.air_a);
connect(beaCoo.air_b, vol.ports[2]);
connect(pum.ports[1], beaCoo.watCoo_a);
connect(pum.m_flow_in, conPID.y);
end CoolingOnly;
Information
This example tests the implementation of
Buildings.Fluid.HeatExchangers.ActiveBeams.CoolingAndHeating, but operates it only in heating mode.
An air volume is maintained at a temperature above 22°C by a controller
that regulates the water flow rate in the active beam.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Modelica definition
model HeatingOnly
extends Modelica.Icons.Example;
package MediumA =
Buildings.Media.Air ;
package MediumW =
Buildings.Media.Water ;
Buildings.Fluid.Sources.Boundary_pT sin_1(
redeclare package Medium = MediumW,
nPorts=1) ;
Buildings.Fluid.Sources.MassFlowSource_T souAir(
redeclare package Medium = MediumA,
m_flow=0.0792,
use_m_flow_in=false,
nPorts=1,
T=285.85) ;
Buildings.Fluid.Sources.Boundary_pT bou(
redeclare package Medium = MediumA,
nPorts=1) ;
Modelica.Thermal.HeatTransfer.Components.ThermalConductor theConWal(G=200)
;
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow heaFlo
;
Modelica.Blocks.Sources.Constant TSetHea(k=273.15 + 22)
;
Buildings.HeatTransfer.Sources.FixedTemperature TOut(T=301.15)
;
Buildings.Controls.Continuous.LimPID conPID(
yMax=0.094,
Td=0,
Ti=100,
k=0.1) ;
Buildings.Fluid.Sources.Boundary_pT sou_1(
redeclare package Medium = MediumW,
T=288.15,
nPorts=1) ;
Modelica.Blocks.Math.Gain gain(k=1200);
Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor senTem
;
Sources.MassFlowSource_T pumHea(
redeclare package Medium = MediumW,
use_m_flow_in=true,
nPorts=1,
T=320.95) ;
Buildings.Fluid.Sources.Boundary_pT sin_2(
redeclare package Medium = MediumW,
nPorts=1) ;
Modelica.Blocks.Sources.Sine sine(
freqHz=1/86400,
amplitude=1,
phase=-1.5707963267949) ;
Buildings.Fluid.MixingVolumes.MixingVolume vol(nPorts=2,
redeclare package Medium = MediumA,
m_flow_nominal=0.1,
V=30,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
T_start=293.15) ;
Buildings.Fluid.HeatExchangers.ActiveBeams.CoolingAndHeating beaCooHea(
redeclare package MediumWat = MediumW,
redeclare package MediumAir = MediumA,
redeclare Buildings.Fluid.HeatExchangers.ActiveBeams.Data.Trox.DID632A_nozzleH_length6ft_cooling
perCoo,
redeclare Buildings.Fluid.HeatExchangers.ActiveBeams.Data.Trox.DID632A_nozzleH_length6ft_heating
perHea,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial) ;
equation
connect(TOut.port, theConWal.port_a);
connect(gain.y, heaFlo.Q_flow);
connect(TSetHea.y, conPID.u_s);
connect(senTem.T, conPID.u_m);
connect(sine.y, gain.u);
connect(bou.ports[1], vol.ports[1]);
connect(theConWal.port_b, vol.heatPort);
connect(heaFlo.port, vol.heatPort);
connect(senTem.port, vol.heatPort);
connect(beaCooHea.watHea_b, sin_2.ports[1]);
connect(beaCooHea.heaPor, vol.heatPort);
connect(souAir.ports[1], beaCooHea.air_a);
connect(sin_1.ports[1], beaCooHea.watCoo_b);
connect(sou_1.ports[1], beaCooHea.watCoo_a);
connect(beaCooHea.air_b, vol.ports[2]);
connect(pumHea.ports[1], beaCooHea.watHea_a);
connect(pumHea.m_flow_in, conPID.y);
end HeatingOnly;