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 Buildings.BaseClasses.BaseIconExamples (Icon for Examples packages).

Package Content

NameDescription
Manifold Test model for coil manifold
MassExchange Test model for latent heat exchange
EpsilonNTUZ Test model for the functions epsilon_ntuZ and ntu_epsilonZ
HexElement Model that tests the basic element that is used to built heat exchanger models


Buildings.Fluid.HeatExchangers.BaseClasses.Examples.Manifold

Test model for coil manifold

Buildings.Fluid.HeatExchangers.BaseClasses.Examples.Manifold

Parameters

TypeNameDefaultDescription
IntegernPipPar3Number of parallel pipes
IntegernPipSeg4Number of pipe segments

Modelica definition

model Manifold "Test model for coil manifold"
 package Medium = Buildings.Media.ConstantPropertyLiquidWater;
 parameter Integer nPipPar = 3 "Number of parallel pipes";
 parameter Integer nPipSeg = 4 "Number of pipe segments";
    Modelica.Blocks.Sources.Constant POut(k=101325);
  Buildings.Fluid.Sources.Boundary_pT sin_1(                       redeclare 
      package Medium = Medium,
    use_p_in=true,
    T=283.15,
    nPorts=2);
  Buildings.Fluid.Sources.Boundary_pT sou_1(
    redeclare package Medium = Medium,
    use_p_in=true,
    use_T_in=true,
    p=101335,
    T=293.15,
    nPorts=2);
    Fluid.FixedResistances.FixedResistanceDpM res_1(
    m_flow_nominal=5,
    redeclare package Medium = Medium,
    dp_nominal=10,
    use_dh=true,
    from_dp=false);
  Buildings.Fluid.Sensors.MassFlowRate[nPipPar] mfr_1(redeclare each package
      Medium = Medium);
  Modelica.Blocks.Sources.Ramp TDb(
    height=1,
    duration=1,
    offset=293.15);
  Modelica.Blocks.Sources.Ramp P(
    duration=1,
    height=40,
    offset=101305);
  Buildings.Fluid.HeatExchangers.BaseClasses.PipeManifoldFixedResistance
    pipFixRes_1(
    redeclare package Medium = Medium,
    nPipPar=nPipPar,
    m_flow_nominal=5,
    dp_nominal=10,
    linearized=false,
    mStart_flow_a=5);
  Buildings.Fluid.HeatExchangers.BaseClasses.PipeManifoldNoResistance
    pipNoRes_1(
      redeclare package Medium = Medium, nPipPar=nPipPar,
    mStart_flow_a=5);
    Fluid.FixedResistances.FixedResistanceDpM res_2(
    m_flow_nominal=5,
    redeclare package Medium = Medium,
    dp_nominal=10,
    use_dh=true,
    from_dp=false);
  Buildings.Fluid.Sensors.MassFlowRate[nPipPar, nPipSeg] mfr_2(redeclare each 
      package Medium =
               Medium);
  Buildings.Fluid.HeatExchangers.BaseClasses.DuctManifoldFixedResistance
    ducFixRes_2(
    redeclare package Medium = Medium,
    nPipPar=nPipPar,
    nPipSeg=nPipSeg,
    m_flow_nominal=5,
    dp_nominal=10,
    linearized=false,
    mStart_flow_a=5);
  Buildings.Fluid.HeatExchangers.BaseClasses.DuctManifoldNoResistance
    ducNoRes_2(
      redeclare package Medium = Medium,
      nPipPar=nPipPar,
      nPipSeg=nPipSeg,
    mStart_flow_a=5);
  Buildings.Fluid.HeatExchangers.BaseClasses.CoilHeader hea1(
      redeclare package Medium = Medium,
      nPipPar=nPipPar,
    mStart_flow_a=5) "Header for water-side heat exchanger register";
  Buildings.Fluid.HeatExchangers.BaseClasses.CoilHeader hea2(
      redeclare package Medium = Medium,
      nPipPar=nPipPar,
    mStart_flow_a=5) "Header for water-side heat exchanger register";
  inner Modelica.Fluid.System system;
equation 
  connect(POut.y, sin_1.p_in);
  connect(TDb.y, sou_1.T_in);
  connect(P.y, sou_1.p_in);
  connect(res_1.port_a, pipNoRes_1.port_a);
  connect(res_2.port_a,ducNoRes_2. port_a);
  connect(pipFixRes_1.port_b, hea1.port_a);
  connect(hea1.port_b, mfr_1.port_a);
  connect(mfr_1.port_b, hea2.port_a);
  connect(hea2.port_b, pipNoRes_1.port_b);
  connect(ducFixRes_2.port_b, mfr_2.port_a);
  connect(mfr_2.port_b, ducNoRes_2.port_b);
  connect(sou_1.ports[1], pipFixRes_1.port_a);
  connect(sou_1.ports[2], ducFixRes_2.port_a);
  connect(sin_1.ports[1], res_1.port_b);
  connect(sin_1.ports[2], res_2.port_b);
end Manifold;

Buildings.Fluid.HeatExchangers.BaseClasses.Examples.MassExchange

Test model for latent heat exchange

Buildings.Fluid.HeatExchangers.BaseClasses.Examples.MassExchange

Modelica definition

model MassExchange "Test model for latent heat exchange"
   package Medium = Buildings.Media.PerfectGases.MoistAir;
  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.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.

Modelica definition

model EpsilonNTUZ 
  "Test model for the functions epsilon_ntuZ and ntu_epsilonZ"
  import f = Buildings.Fluid.Types.HeatExchangerFlowRegime;
  Real epsilon[5] "Heat exchanger effectiveness";
  Real eps[5] "Heat exchanger effectiveness";
  Real Z[5] "Ratio of capacity flow rates";
  Real ntu[5] "Number of transfer units";
  Real diff[5] "Difference in results";

equation 
  for conf in {f.ParallelFlow,
               f.CounterFlow,
               f.CrossFlowUnmixed,
               f.CrossFlowCMinMixedCMaxUnmixed,
               f.CrossFlowCMinUnmixedCMaxMixed} 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];
     assert(abs(diff[conf]) < 1E-10, "Check model implementation for bugs.");
  end for;
end EpsilonNTUZ;

Buildings.Fluid.HeatExchangers.BaseClasses.Examples.HexElement

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

Buildings.Fluid.HeatExchangers.BaseClasses.Examples.HexElement

Modelica definition

model HexElement 
  "Model that tests the basic element that is used to built heat exchanger models"
  import Buildings;
 package Medium_W = Buildings.Media.ConstantPropertyLiquidWater;
// package Medium_W = Modelica.Media.Air.SimpleAir;
// package Medium_A = Buildings.Media.GasesPTDecoupled.SimpleAir;
// package Medium_A = Modelica.Media.Air.SimpleAir;
// package Medium_A = Modelica.Media.Air.SimpleAir;
// package Medium_A = Buildings.Media.PerfectGases.MoistAirUnsaturated;
 package Medium_A = Buildings.Media.PerfectGases.MoistAir;
  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);
    Fluid.FixedResistances.FixedResistanceDpM res_22(
    m_flow_nominal=5,
    dp_nominal=5,
    redeclare package Medium = Medium_A);
    Fluid.FixedResistances.FixedResistanceDpM res_12(
    m_flow_nominal=5,
    dp_nominal=5,
    redeclare package Medium = Medium_W);
  Buildings.Fluid.HeatExchangers.BaseClasses.HexElement hex(
    m1_flow_nominal=5,
    m2_flow_nominal=5,
    UA_nominal=9999,
    redeclare package Medium1 = Medium_W,
    redeclare package Medium2 = Medium_A,
    allowCondensation=false,
    dp1_nominal=5,
    dp2_nominal=5);
  Modelica.Blocks.Sources.Constant TDb1(k=303.15) "Drybulb temperature";
    Fluid.FixedResistances.FixedResistanceDpM res_11(
    m_flow_nominal=5,
    dp_nominal=5,
    redeclare package Medium = Medium_W);
    Fluid.FixedResistances.FixedResistanceDpM res_21(
    m_flow_nominal=5,
    dp_nominal=5,
    redeclare package Medium = Medium_A);
  Modelica.Blocks.Sources.Constant hACon(k=10000) "Convective heat transfer";
  inner Modelica.Fluid.System system;
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 HexElement;

HTML-documentation generated by Dymola Thu Mar 17 10:15:27 2011.