Buildings.Fluid.HeatExchangers.BaseClasses.Examples

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.HeatExchangers.BaseClasses.

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

Package Content

Name Description
Buildings.Fluid.HeatExchangers.BaseClasses.Examples.EpsilonNTUZ EpsilonNTUZ Test model for the functions epsilon_ntuZ and ntu_epsilonZ
Buildings.Fluid.HeatExchangers.BaseClasses.Examples.HACoilInside HACoilInside Test model for HACoilInside
Buildings.Fluid.HeatExchangers.BaseClasses.Examples.HANaturalCylinder HANaturalCylinder Test model for natural convection outside of a coil
Buildings.Fluid.HeatExchangers.BaseClasses.Examples.HexElementLatent HexElementLatent Model that tests the basic element that is used to built heat exchanger models
Buildings.Fluid.HeatExchangers.BaseClasses.Examples.HexElementSensible HexElementSensible Model that tests the basic element that is used to built heat exchanger models
Buildings.Fluid.HeatExchangers.BaseClasses.Examples.MassExchange MassExchange Test model for latent heat exchange
Buildings.Fluid.HeatExchangers.BaseClasses.Examples.RayleighNumber RayleighNumber Test model for RayleighNumber

Buildings.Fluid.HeatExchangers.BaseClasses.Examples.EpsilonNTUZ Buildings.Fluid.HeatExchangers.BaseClasses.Examples.EpsilonNTUZ

Test model for the functions epsilon_ntuZ and ntu_epsilonZ

Information

Model to test the implementation of the epsilon-NTU functions and their inverse functions.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model EpsilonNTUZ "Test model for the functions epsilon_ntuZ and ntu_epsilonZ" extends Modelica.Icons.Example; import f = Buildings.Fluid.Types.HeatExchangerFlowRegime; Real Z[6] "Ratio of capacity flow rates"; Real epsilon[6] "Heat exchanger effectiveness"; Real eps[6] "Heat exchanger effectiveness"; Real ntu[6] "Number of transfer units"; Real diff[6] "Difference in results"; equation for conf in {Integer(f.ParallelFlow), Integer(f.CounterFlow), Integer(f.CrossFlowUnmixed), Integer(f.CrossFlowCMinMixedCMaxUnmixed), Integer(f.CrossFlowCMinUnmixedCMaxMixed), Integer(f.ConstantTemperaturePhaseChange)} loop Z[conf] = abs(cos(time)); epsilon[conf] = 0.01 + 0.98*abs(sin(time)) * 1/(1+Z[conf]); ntu[conf] = ntu_epsilonZ(epsilon[conf], Z[conf], conf); eps[conf] = epsilon_ntuZ(ntu[conf], Z[conf], conf); diff[conf] = epsilon[conf] - eps[conf]; end for; end EpsilonNTUZ;

Buildings.Fluid.HeatExchangers.BaseClasses.Examples.HACoilInside Buildings.Fluid.HeatExchangers.BaseClasses.Examples.HACoilInside

Test model for HACoilInside

Buildings.Fluid.HeatExchangers.BaseClasses.Examples.HACoilInside

Information

Test model for Buildings.Fluid.HeatExchanger.BaseClassess.HACoilInside.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model HACoilInside "Test model for HACoilInside" extends Modelica.Icons.Example; Modelica.Blocks.Sources.Sine sine( freqHz=0.1, amplitude=0.063, offset=0.063) "Mass flow rate"; Modelica.Blocks.Sources.Sine sine1( amplitude=10, freqHz=0.1, offset=273.15 + 50) "Temperature"; Buildings.Fluid.HeatExchangers.BaseClasses.HACoilInside hASin( hA_nominal=13*(0.5+1)/0.5, m_flow_nominal=0.063) "Model for convection coefficient"; equation connect(sine1.y, hASin.T); connect(sine.y, hASin.m_flow); end HACoilInside;

Buildings.Fluid.HeatExchangers.BaseClasses.Examples.HANaturalCylinder Buildings.Fluid.HeatExchangers.BaseClasses.Examples.HANaturalCylinder

Test model for natural convection outside of a coil

Buildings.Fluid.HeatExchangers.BaseClasses.Examples.HANaturalCylinder

Information

Test model for Buildings.Fluid.HeatExchangers.BaseClasses.HANaturalCylinder.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model HANaturalCylinder "Test model for natural convection outside of a coil" extends Modelica.Icons.Example; Buildings.Fluid.HeatExchangers.BaseClasses.HANaturalCylinder hANatCyl(redeclare package Medium = Buildings.Media.Water, ChaLen=0.1, hA_nominal=10, TFlu_nominal=293.15, TSur_nominal=313.15) "Calculates an hA value for natural convection around a cylinder"; Modelica.Blocks.Sources.Ramp TSur( duration=100, height=50, offset=293.15) "Temperature of the pipe surface"; Modelica.Blocks.Sources.Ramp TFlu( duration=100, startTime=150, height=50, offset=293.15) "Temperature of the surrounding fluid"; equation connect(TSur.y, hANatCyl.TSur); connect(TFlu.y, hANatCyl.TFlu); end HANaturalCylinder;

Buildings.Fluid.HeatExchangers.BaseClasses.Examples.HexElementLatent Buildings.Fluid.HeatExchangers.BaseClasses.Examples.HexElementLatent

Model that tests the basic element that is used to built heat exchanger models

Buildings.Fluid.HeatExchangers.BaseClasses.Examples.HexElementLatent

Information

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model HexElementLatent "Model that tests the basic element that is used to built heat exchanger models" extends Modelica.Icons.Example; package Medium_W = Buildings.Media.Water; package Medium_A = Buildings.Media.Air; Buildings.Fluid.Sources.Boundary_pT sin_2( redeclare package Medium = Medium_A, use_p_in=true, use_T_in=true, T=288.15, nPorts=1); Modelica.Blocks.Sources.Ramp PIn( height=20, duration=300, startTime=300, offset=101325); Buildings.Fluid.Sources.Boundary_pT sou_2( redeclare package Medium = Medium_A, use_p_in=true, use_T_in=true, T=283.15, nPorts=1); Modelica.Blocks.Sources.Ramp TWat( startTime=1, height=4, duration=300, offset=303.15) "Water temperature"; Modelica.Blocks.Sources.Constant TDb(k=278.15) "Drybulb temperature"; Modelica.Blocks.Sources.Constant POut(k=101325); Buildings.Fluid.Sources.Boundary_pT sin_1( redeclare package Medium = Medium_W, use_p_in=true, T=288.15, nPorts=1); Buildings.Fluid.Sources.Boundary_pT sou_1( redeclare package Medium = Medium_W, use_T_in=true, nPorts=1, p=101340, T=293.15); Buildings.Fluid.FixedResistances.PressureDrop res_22( m_flow_nominal=5, dp_nominal=5, redeclare package Medium = Medium_A); Buildings.Fluid.FixedResistances.PressureDrop res_12( m_flow_nominal=5, dp_nominal=5, redeclare package Medium = Medium_W); Buildings.Fluid.HeatExchangers.BaseClasses.HexElementLatent hex( m1_flow_nominal=5, m2_flow_nominal=5, UA_nominal=9999, redeclare package Medium1 = Medium_W, redeclare package Medium2 = Medium_A, dp1_nominal=5, dp2_nominal=5, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial); Modelica.Blocks.Sources.Constant TDb1(k=303.15) "Drybulb temperature"; Buildings.Fluid.FixedResistances.PressureDrop res_11( m_flow_nominal=5, dp_nominal=5, redeclare package Medium = Medium_W); Buildings.Fluid.FixedResistances.PressureDrop res_21( m_flow_nominal=5, dp_nominal=5, redeclare package Medium = Medium_A); Modelica.Blocks.Sources.Constant hACon(k=10000) "Convective heat transfer"; equation connect(TDb.y, sou_1.T_in); connect(POut.y, sin_1.p_in); connect(PIn.y, sou_2.p_in); connect(TWat.y, sou_2.T_in); connect(POut.y, sin_2.p_in); connect(hex.port_b1, res_12.port_a); connect(res_22.port_a, hex.port_b2); connect(TDb1.y, sin_2.T_in); connect(res_11.port_b, hex.port_a1); connect(hex.port_a2, res_21.port_b); connect(hACon.y, hex.Gc_1); connect(hACon.y, hex.Gc_2); connect(sou_2.ports[1], res_21.port_a); connect(sin_1.ports[1], res_12.port_b); connect(sou_1.ports[1], res_11.port_a); connect(sin_2.ports[1], res_22.port_b); end HexElementLatent;

Buildings.Fluid.HeatExchangers.BaseClasses.Examples.HexElementSensible Buildings.Fluid.HeatExchangers.BaseClasses.Examples.HexElementSensible

Model that tests the basic element that is used to built heat exchanger models

Buildings.Fluid.HeatExchangers.BaseClasses.Examples.HexElementSensible

Information

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model HexElementSensible "Model that tests the basic element that is used to built heat exchanger models" extends Modelica.Icons.Example; package Medium_W = Buildings.Media.Water; package Medium_A = Buildings.Media.Air; Buildings.Fluid.Sources.Boundary_pT sin_2( redeclare package Medium = Medium_A, use_p_in=true, use_T_in=true, T=288.15, nPorts=1); Modelica.Blocks.Sources.Ramp PIn( height=20, duration=300, startTime=300, offset=101325); Buildings.Fluid.Sources.Boundary_pT sou_2( redeclare package Medium = Medium_A, use_p_in=true, use_T_in=true, T=283.15, nPorts=1); Modelica.Blocks.Sources.Ramp TWat( startTime=1, height=4, duration=300, offset=303.15) "Water temperature"; Modelica.Blocks.Sources.Constant TDb(k=278.15) "Drybulb temperature"; Modelica.Blocks.Sources.Constant POut(k=101325); Buildings.Fluid.Sources.Boundary_pT sin_1( redeclare package Medium = Medium_W, use_p_in=true, T=288.15, nPorts=1); Buildings.Fluid.Sources.Boundary_pT sou_1( redeclare package Medium = Medium_W, use_T_in=true, nPorts=1, p=101340, T=293.15); Buildings.Fluid.FixedResistances.PressureDrop res_22( m_flow_nominal=5, dp_nominal=5, redeclare package Medium = Medium_A); Buildings.Fluid.FixedResistances.PressureDrop res_12( m_flow_nominal=5, dp_nominal=5, redeclare package Medium = Medium_W); Buildings.Fluid.HeatExchangers.BaseClasses.HexElementSensible hex( m1_flow_nominal=5, m2_flow_nominal=5, UA_nominal=9999, redeclare package Medium1 = Medium_W, redeclare package Medium2 = Medium_A, dp1_nominal=5, dp2_nominal=5, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial); Modelica.Blocks.Sources.Constant TDb1(k=303.15) "Drybulb temperature"; Buildings.Fluid.FixedResistances.PressureDrop res_11( m_flow_nominal=5, dp_nominal=5, redeclare package Medium = Medium_W); Buildings.Fluid.FixedResistances.PressureDrop res_21( m_flow_nominal=5, dp_nominal=5, redeclare package Medium = Medium_A); Modelica.Blocks.Sources.Constant hACon(k=10000) "Convective heat transfer"; equation connect(TDb.y, sou_1.T_in); connect(POut.y, sin_1.p_in); connect(PIn.y, sou_2.p_in); connect(TWat.y, sou_2.T_in); connect(POut.y, sin_2.p_in); connect(hex.port_b1, res_12.port_a); connect(res_22.port_a, hex.port_b2); connect(TDb1.y, sin_2.T_in); connect(res_11.port_b, hex.port_a1); connect(hex.port_a2, res_21.port_b); connect(hACon.y, hex.Gc_1); connect(hACon.y, hex.Gc_2); connect(sou_2.ports[1], res_21.port_a); connect(sin_1.ports[1], res_12.port_b); connect(sou_1.ports[1], res_11.port_a); connect(sin_2.ports[1], res_22.port_b); end HexElementSensible;

Buildings.Fluid.HeatExchangers.BaseClasses.Examples.MassExchange Buildings.Fluid.HeatExchangers.BaseClasses.Examples.MassExchange

Test model for latent heat exchange

Buildings.Fluid.HeatExchangers.BaseClasses.Examples.MassExchange

Information

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model MassExchange "Test model for latent heat exchange" extends Modelica.Icons.Example; package Medium = Buildings.Media.Air; Buildings.Fluid.HeatExchangers.BaseClasses.MassExchange masExc(redeclare package Medium = Medium) "Model for mass exchange"; Modelica.Blocks.Sources.Ramp TSur( duration=1, height=20, offset=273.15 + 5) "Surface temperature"; Modelica.Blocks.Sources.Constant X_w(k=0.01) "Humidity mass fraction in medium"; Modelica.Blocks.Sources.Constant Gc(k=1) "Sensible convective thermal conductance"; equation connect(TSur.y, masExc.TSur); connect(Gc.y, masExc.Gc); connect(X_w.y, masExc.XInf); end MassExchange;

Buildings.Fluid.HeatExchangers.BaseClasses.Examples.RayleighNumber Buildings.Fluid.HeatExchangers.BaseClasses.Examples.RayleighNumber

Test model for RayleighNumber

Buildings.Fluid.HeatExchangers.BaseClasses.Examples.RayleighNumber

Information

Test model for Buildings.Fluid.HeatExchangers.BaseClasses.RayleighNumber.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model RayleighNumber "Test model for RayleighNumber" extends Modelica.Icons.Example; Buildings.Fluid.HeatExchangers.BaseClasses.RayleighNumber rayleighNumber(ChaLen= 0.1, redeclare package Medium = Buildings.Media.Water); Modelica.Blocks.Sources.Sine TSur( amplitude=50, freqHz=1/50, offset=273.15 + 50) "Temperature of the hot surface"; Modelica.Blocks.Sources.Sine TFlu( amplitude=50, freqHz=1/25, offset=273.15 + 50) "Temperature of the surrounding fluid"; equation connect(TSur.y, rayleighNumber.TSur); connect(TFlu.y, rayleighNumber.TFlu); end RayleighNumber;