IEA EBC Annex 60 EBC logo

Annex60.Fluid.HeatExchangers.ActiveBeams.Examples

Package with examples of active beam models

Information

This package contains examples for the use of models that can be found in Annex60.Fluid.HeatExchangers.ActiveBeams.

Extends from Modelica.Icons.ExamplesPackage (Icon for packages containing runnable examples).

Package Content

Name Description
Annex60.Fluid.HeatExchangers.ActiveBeams.Examples.CoolingAndHeating CoolingAndHeating  
Annex60.Fluid.HeatExchangers.ActiveBeams.Examples.CoolingOnly CoolingOnly  
Annex60.Fluid.HeatExchangers.ActiveBeams.Examples.HeatingOnly HeatingOnly  

Annex60.Fluid.HeatExchangers.ActiveBeams.Examples.CoolingAndHeating Annex60.Fluid.HeatExchangers.ActiveBeams.Examples.CoolingAndHeating


Annex60.Fluid.HeatExchangers.ActiveBeams.Examples.CoolingAndHeating

Information

This example tests the implementation of Annex60.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 = Annex60.Media.Air "Medium model for air"; package MediumW = Annex60.Media.Water "Medium model for water"; Annex60.Fluid.Sources.FixedBoundary sin_1( redeclare package Medium = MediumW, nPorts=1) "Sink chilled water"; Annex60.Fluid.Sources.MassFlowSource_T souAir( redeclare package Medium = MediumA, m_flow=0.0792, use_m_flow_in=false, nPorts=1, T=285.85) "Source air"; Annex60.Fluid.Sources.FixedBoundary bou( redeclare package Medium = MediumA, nPorts=1) "Sink air"; Modelica.Thermal.HeatTransfer.Components.ThermalConductor theConWal(G=200) "Thermal conductor for wall"; Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow heaFlo "Thermal loads"; Modelica.Blocks.Sources.Constant TSetHea(k=273.15 + 22) "Heating set-point temperature"; Modelica.Thermal.HeatTransfer.Sources.FixedTemperature TOut(T=301.15) "Outdoor air temperature"; Annex60.Controls.Continuous.LimPID conHea( yMax=0.094, Td=0, reverseAction=false, Ti=100, k=0.1, controllerType=Modelica.Blocks.Types.SimpleController.PI) "Controller for heating"; Sources.MassFlowSource_T pumCoo( redeclare package Medium = MediumW, use_m_flow_in=true, nPorts=1, T=288.15) "Source chilled water"; Modelica.Blocks.Math.Gain gain(k=1200) "Gain for thermal loads"; Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor senTem "Room air temperature sensor"; Sources.MassFlowSource_T pumHea( redeclare package Medium = MediumW, use_m_flow_in=true, nPorts=1, T=320.95) "Source hot water"; Annex60.Fluid.Sources.FixedBoundary sin_2( redeclare package Medium = MediumW, nPorts=1) "Sink hot water"; Modelica.Blocks.Sources.Sine sine( freqHz=1/86400, amplitude=1, phase=-1.5707963267949) "Source for thermal loads"; Annex60.Fluid.MixingVolumes.MixingVolume vol(nPorts=2, redeclare package Medium = MediumA, m_flow_nominal=0.1, V=30, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial) "Air volume for room"; Modelica.Blocks.Sources.Constant TSetCoo(k=273.15 + 25) "Cooling set-point temperature"; Annex60.Controls.Continuous.LimPID conCoo( yMax=0.094, reverseAction=true, Td=0, k=0.5, Ti=70, controllerType=Modelica.Blocks.Types.SimpleController.PI) "Controller for cooling"; Annex60.Fluid.HeatExchangers.ActiveBeams.CoolingAndHeating beaCooHea( redeclare package MediumWat = MediumW, redeclare package MediumAir = MediumA, redeclare Annex60.Fluid.HeatExchangers.ActiveBeams.Data.Trox.DID632A_nozzleH_length6ft_cooling perCoo, redeclare Annex60.Fluid.HeatExchangers.ActiveBeams.Data.Trox.DID632A_nozzleH_length6ft_heating perHea, energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyStateInitial) "Active Beam"; 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;

Annex60.Fluid.HeatExchangers.ActiveBeams.Examples.CoolingOnly Annex60.Fluid.HeatExchangers.ActiveBeams.Examples.CoolingOnly


Annex60.Fluid.HeatExchangers.ActiveBeams.Examples.CoolingOnly

Information

This example tests the implementation of Annex60.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 = Annex60.Media.Air "Medium model for air"; package MediumW = Annex60.Media.Water "Medium model for water"; Annex60.Fluid.Sources.FixedBoundary sin_1( redeclare package Medium = MediumW, nPorts=1) "Sink for water"; Annex60.Fluid.Sources.MassFlowSource_T souAir( redeclare package Medium = MediumA, use_m_flow_in=false, m_flow=0.0792, nPorts=1, T=285.85) "Source for air"; Annex60.Fluid.Sources.FixedBoundary bou( redeclare package Medium = MediumA, nPorts=1) "Sink for air"; Modelica.Thermal.HeatTransfer.Components.ThermalConductor theConWal(G=200) "Thermal conductor for wall"; Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow heaFlo "Thermal loads"; Modelica.Blocks.Sources.Constant TSetCoo(k=273.15 + 25) "Set-point temperature"; Modelica.Thermal.HeatTransfer.Sources.FixedTemperature TOut(T=301.15) "Outdoor air temperature"; Annex60.Controls.Continuous.LimPID conPID( reverseAction=true, Td=0, k=0.5, Ti=70, controllerType=Modelica.Blocks.Types.SimpleController.PI, yMax=0.094) "Controller"; Sources.MassFlowSource_T pum( redeclare package Medium = MediumW, use_m_flow_in=true, nPorts=1, T=288.15) "Source for water"; Modelica.Blocks.Math.Gain gain(k=1200) "Gain thermal loads"; Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor senTem "Room air temperature sensor"; Modelica.Blocks.Sources.Sine sine( freqHz=1/86400, amplitude=1, phase=-1.5707963267949) "Source for thermal loads"; Annex60.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) "Air volume for room"; Annex60.Fluid.HeatExchangers.ActiveBeams.Cooling beaCoo( redeclare package MediumWat = MediumW, redeclare package MediumAir = MediumA, redeclare Annex60.Fluid.HeatExchangers.ActiveBeams.Data.Trox.DID632A_nozzleH_length6ft_cooling perCoo, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial) "Active beam"; 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;

Annex60.Fluid.HeatExchangers.ActiveBeams.Examples.HeatingOnly Annex60.Fluid.HeatExchangers.ActiveBeams.Examples.HeatingOnly


Annex60.Fluid.HeatExchangers.ActiveBeams.Examples.HeatingOnly

Information

This example tests the implementation of Annex60.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 = Annex60.Media.Air "Medium model for air"; package MediumW = Annex60.Media.Water "Medium model for water"; Annex60.Fluid.Sources.FixedBoundary sin_1( redeclare package Medium = MediumW, nPorts=1) "Sink for chilled water"; Annex60.Fluid.Sources.MassFlowSource_T souAir( redeclare package Medium = MediumA, m_flow=0.0792, use_m_flow_in=false, nPorts=1, T=285.85) "Source for air"; Annex60.Fluid.Sources.FixedBoundary bou( redeclare package Medium = MediumA, nPorts=1) "Sink for air"; Modelica.Thermal.HeatTransfer.Components.ThermalConductor theConWal(G=200) "Thermal conductor for wall"; Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow heaFlo "Thermal loads"; Modelica.Blocks.Sources.Constant TSetHea(k=273.15 + 22) "Heating set-point temperature"; Modelica.Thermal.HeatTransfer.Sources.FixedTemperature TOut(T=301.15) "Outdoor air temperature"; Annex60.Controls.Continuous.LimPID conPID( yMax=0.094, Td=0, reverseAction=false, Ti=100, k=0.1, controllerType=Modelica.Blocks.Types.SimpleController.PI) "Controller"; Annex60.Fluid.Sources.FixedBoundary sou_1( redeclare package Medium = MediumW, T=288.15, nPorts=1) "Soure chilled water"; Modelica.Blocks.Math.Gain gain(k=1200); Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor senTem "Room air temperature sensor"; Sources.MassFlowSource_T pumHea( redeclare package Medium = MediumW, use_m_flow_in=true, nPorts=1, T=320.95) "Source for heating"; Annex60.Fluid.Sources.FixedBoundary sin_2( redeclare package Medium = MediumW, nPorts=1) "Sink for hot water"; Modelica.Blocks.Sources.Sine sine( freqHz=1/86400, amplitude=1, phase=-1.5707963267949) "Source for thermal loads"; Annex60.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) "Air volume for room"; Annex60.Fluid.HeatExchangers.ActiveBeams.CoolingAndHeating beaCooHea( redeclare package MediumWat = MediumW, redeclare package MediumAir = MediumA, redeclare Annex60.Fluid.HeatExchangers.ActiveBeams.Data.Trox.DID632A_nozzleH_length6ft_cooling perCoo, redeclare Annex60.Fluid.HeatExchangers.ActiveBeams.Data.Trox.DID632A_nozzleH_length6ft_heating perHea, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial) "Active beam"; 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;

http://iea-annex60.org