Buildings.Fluids.HeatExchangers

Package with heat exchanger models

Information


This package contains models for heat exchangers with and without humidity condensation.

Package Content

NameDescription
Buildings.Fluids.HeatExchangers.BaseClasses BaseClasses Package with base classes for heat exchanger models
Buildings.Fluids.HeatExchangers.ConstantEffectiveness ConstantEffectiveness Heat exchanger with constant effectiveness
Buildings.Fluids.HeatExchangers.CoolingTowers CoolingTowers Package with cooling tower models
Buildings.Fluids.HeatExchangers.DryCoilDiscretized DryCoilDiscretized Heat exchanger with discretization along the flow path
Buildings.Fluids.HeatExchangers.DryHexHAInput DryHexHAInput Simple heat exchanger with convective heat transfer as input
Buildings.Fluids.HeatExchangers.Examples Examples Collection of models that illustrate model use and test models
Buildings.Fluids.HeatExchangers.HeaterCoolerIdeal HeaterCoolerIdeal Ideal electric heater or cooler, no losses, no dynamics
Buildings.Fluids.HeatExchangers.Radiators Radiators Package with radiators of hydronic space heating systems
Buildings.Fluids.HeatExchangers.WetCoilDiscretized WetCoilDiscretized Coil with condensation


Buildings.Fluids.HeatExchangers.ConstantEffectiveness Buildings.Fluids.HeatExchangers.ConstantEffectiveness

Heat exchanger with constant effectiveness

Buildings.Fluids.HeatExchangers.ConstantEffectiveness

Information


Model for a heat exchanger with constant effectiveness.

This model transfers heat in the amount of

  Q = Q_max * eps,
where eps is a constant effectiveness and Q_max is the maximum heat that can be transferred.

For a heat and moisture exchanger, use Buildings.Fluids.MassExchangers.ConstantEffectiveness instead of this model.


Extends from Fluids.Interfaces.PartialStaticFourPortHeatMassTransfer (Partial element transporting two fluid streams between four ports without storing mass or energy), Buildings.BaseClasses.BaseIcon (Base icon).

Parameters

TypeNameDefaultDescription
replaceable package Medium_1Modelica.Media.Interfaces.Pa...Medium 1 in the component
replaceable package Medium_2Modelica.Media.Interfaces.Pa...Medium 2 in the component
Realeps0.8Heat exchanger effectiveness
Nominal condition
MassFlowRatem0_flow_1 Nominal mass flow rate [kg/s]
MassFlowRatem0_flow_2m0_flow_1Nominal mass flow rate [kg/s]
Initialization
MassFlowRatem_flow_1.start0Mass flow rate from port_a1 to port_b1 (m_flow_1 > 0 is design flow direction) [kg/s]
Pressuredp_1.start0Pressure difference between port_a1 and port_b1 [Pa]
MassFlowRatem_flow_2.start0Mass flow rate from port_a2 to port_b2 (m_flow_2 > 0 is design flow direction) [kg/s]
Pressuredp_2.start0Pressure difference between port_a2 and port_b2 [Pa]
Assumptions
BooleanallowFlowReversal_1system.allowFlowReversal= true to allow flow reversal in medium 1, false restricts to design direction (port_a -> port_b)
BooleanallowFlowReversal_2system.allowFlowReversal= true to allow flow reversal in medium 2, false restricts to design direction (port_a -> port_b)
Advanced
MassFlowRatem_flow_1_small1E-4*m0_flow_1Small mass flow rate for regularization of zero flow [kg/s]
MassFlowRatem_flow_2_small1E-4*m0_flow_2Small mass flow rate for regularization of zero flow [kg/s]
Diagnostics
Booleanshow_V_flowtrue= true, if volume flow rate at inflowing port is computed
Initialization
AbsolutePressurep_a1_startsystem.p_startGuess value for inlet pressure [Pa]
AbsolutePressurep_b1_startp_a1_startGuess value for outlet pressure [Pa]
AbsolutePressurep_a2_startsystem.p_startGuess value for inlet pressure [Pa]
AbsolutePressurep_b2_startp_a2_startGuess value for outlet pressure [Pa]

Connectors

TypeNameDescription
FluidPort_aport_a1Fluid connector a1 (positive design flow direction is from port_a1 to port_b1)
FluidPort_bport_b1Fluid connector b1 (positive design flow direction is from port_a1 to port_b1)
FluidPort_aport_a2Fluid connector a2 (positive design flow direction is from port_a2 to port_b2)
FluidPort_bport_b2Fluid connector b2 (positive design flow direction is from port_a2 to port_b2)

Modelica definition

model ConstantEffectiveness 
  "Heat exchanger with constant effectiveness"
  extends Fluids.Interfaces.PartialStaticFourPortHeatMassTransfer;
  extends Buildings.BaseClasses.BaseIcon;
  parameter Real eps(min=0, max=1) = 0.8 "Heat exchanger effectiveness";

  Modelica.SIunits.Temperature T_in1 "Inlet temperature medium 1";
  Modelica.SIunits.Temperature T_in2 "Inlet temperature medium 2";
  Modelica.SIunits.ThermalConductance C_flow_1 
    "Heat capacity flow rate medium 1";
  Modelica.SIunits.ThermalConductance C_flow_2 
    "Heat capacity flow rate medium 2";
  Modelica.SIunits.ThermalConductance CMin_flow(min=0) 
    "Minimum heat capacity flow rate";
  Modelica.SIunits.HeatFlowRate QMax_flow "Maximum heat flow rate";

equation 
  // Definitions for heat transfer effectiveness model
  T_in1 = if m_flow_1 >= 0 then sta_a1.T else sta_b1.T;
  T_in2 = if m_flow_2 >= 0 then sta_a2.T else sta_b2.T;

  // The specific heat capacity is computed using the state of the
  // medium at port_a. For forward flow, this is correct, for reverse flow,
  // this is an approximation.
  C_flow_1 = abs(m_flow_1)* Medium_1.specificHeatCapacityCp(sta_a1);
  C_flow_2 = abs(m_flow_2)* Medium_2.specificHeatCapacityCp(sta_a2);

  CMin_flow = min(C_flow_1, C_flow_2);
  QMax_flow = CMin_flow * (T_in2 - T_in1);

  // transferred heat
  Q_flow_1 = eps * QMax_flow;
  0 = Q_flow_1 + Q_flow_2;

  // no mass exchange
  mXi_flow_1 = zeros(Medium_1.nXi);
  mXi_flow_2 = zeros(Medium_2.nXi);

  // no pressure drop
  dp_1 = 0;
  dp_2 = 0;
end ConstantEffectiveness;

Buildings.Fluids.HeatExchangers.DryCoilDiscretized Buildings.Fluids.HeatExchangers.DryCoilDiscretized

Heat exchanger with discretization along the flow path

Buildings.Fluids.HeatExchangers.DryCoilDiscretized

Information


Model of a discretized coil with no water vapor condensation. The coil consists of nReg registers that are perpendicular to the air flow path. Each register consists of nPipPar parallel pipes, and each pipe can be divided into nPipSeg pipe segments along the pipe length. Thus, the smallest element of the coil consists of a pipe segment. These pipe segments are modeled by the instance ele. Each element has a state variable for the metal. Depending on the value of the boolean parameters steadyState_1 and steadyState_2, the fluid states are modeled dynamically or in steady state. If the parameter steadyStateDuctConnection is set the false then a mixing volume of length dl is added to the duct connection. This can help reducing the dimension of the nonlinear system of equations.

The convective heat transfer coefficients can, for each fluid individually, be computed as a function of the flow rate and/or the temperature, or assigned to a constant. This computation is done in the instance hA.

In this model, the water (or liquid) flow path needs to be connected to port_a1 and port_b1, and the air flow path need to be connected to the other two ports.

To model humidity condensation, use the model Buildings.Fluids.HeatExchangers.WetCoilDiscretized instead of this model, as this model computes only sensible heat transfer.


Extends from Fluids.Interfaces.PartialStaticFourPortInterface (Partial element transporting fluid between two ports without storing mass or energy).

Parameters

TypeNameDefaultDescription
replaceable package Medium_1Modelica.Media.Interfaces.Pa...Medium 1 in the component
replaceable package Medium_2Modelica.Media.Interfaces.Pa...Medium 2 in the component
Nominal condition
MassFlowRatem0_flow_1 Nominal mass flow rate [kg/s]
MassFlowRatem0_flow_2m0_flow_1Nominal mass flow rate [kg/s]
TemperatureDifferencedT010Temperature difference [K]
HeatFlowRateQ0_flow1000Heat transfer at dT0 [W]
ThermalConductanceUA0Q0_flow/dT0Thermal conductance at nominal flow, used to compute heat capacity [W/K]
Pressuredp0_1 Pressure drop for all pipes [Pa]
Pressuredp0_2 Pressure drop inside duct [Pa]
Timetau_120Time constant at nominal flow for medium 1 [s]
Timetau_21Time constant at nominal flow for medium 2 [s]
Timetau_m20Time constant of metal at nominal UA value [s]
Initialization
MassFlowRatem_flow_1.start0Mass flow rate from port_a1 to port_b1 (m_flow_1 > 0 is design flow direction) [kg/s]
Pressuredp_1.start0Pressure difference between port_a1 and port_b1 [Pa]
MassFlowRatem_flow_2.start0Mass flow rate from port_a2 to port_b2 (m_flow_2 > 0 is design flow direction) [kg/s]
Pressuredp_2.start0Pressure difference between port_a2 and port_b2 [Pa]
MassFlowRatemStart_flow_a1m0_flow_1Guess value for mass flow rate at port_a1 [kg/s]
MassFlowRatemStart_flow_a2m0_flow_2Guess value for mass flow rate at port_a2 [kg/s]
Geometry
IntegernReg2Number of registers
IntegernPipPar3Number of parallel pipes in each register
IntegernPipSeg4Number of pipe segments per register used for discretization
Lengthdh_10.025Hydraulic diameter for a single pipe [m]
Lengthdh_21Hydraulic diameter for duct [m]
Assumptions
BooleanallowFlowReversal_1system.allowFlowReversal= true to allow flow reversal in medium 1, false restricts to design direction (port_a -> port_b)
BooleanallowFlowReversal_2system.allowFlowReversal= true to allow flow reversal in medium 2, false restricts to design direction (port_a -> port_b)
Dynamics
DynamicsenergyDynamics_1Modelica_Fluid.Types.Dynamic...Default formulation of energy balances for volume 1
DynamicsenergyDynamics_2Modelica_Fluid.Types.Dynamic...Default formulation of energy balances for volume 2
DynamicsductConnectionDynamicsModelica_Fluid.Types.Dynamic...Default formulation of energy balances for duct connection
Lengthdl0.3Length of mixing volume for duct connection [m]
Advanced
MassFlowRatem_flow_1_small1E-4*m0_flow_1Small mass flow rate for regularization of zero flow [kg/s]
MassFlowRatem_flow_2_small1E-4*m0_flow_2Small mass flow rate for regularization of zero flow [kg/s]
Booleanfrom_dp_1false= true, use m_flow = f(dp) else dp = f(m_flow)
Booleanfrom_dp_2false= true, use m_flow = f(dp) else dp = f(m_flow)
RealdeltaM_10.3Fraction of nominal mass flow rate where transition to laminar occurs
RealdeltaM_20.3Fraction of nominal mass flow rate where transition to laminar occurs
Booleanlinearized_1false= true, use linear relation between m_flow and dp for any flow rate
Booleanlinearized_2false= true, use linear relation between m_flow and dp for any flow rate
Booleanuse_dh_1falseSet to true to specify hydraulic diameter for pipe pressure drop
Booleanuse_dh_2falseSet to true to specify hydraulic diameter for duct pressure drop)
RealReC_14000Reynolds number where transition to laminar starts inside pipes
RealReC_24000Reynolds number where transition to laminar starts inside ducts
Diagnostics
Booleanshow_V_flowtrue= true, if volume flow rate at inflowing port is computed
Initialization
AbsolutePressurep_a1_startsystem.p_startGuess value for inlet pressure [Pa]
AbsolutePressurep_b1_startp_a1_startGuess value for outlet pressure [Pa]
AbsolutePressurep_a2_startsystem.p_startGuess value for inlet pressure [Pa]
AbsolutePressurep_b2_startp_a2_startGuess value for outlet pressure [Pa]
Heat transfer
BooleanwaterSideFlowDependentfalseSet to false to make water-side hA independent of mass flow rate
BooleanairSideFlowDependentfalseSet to false to make air-side hA independent of mass flow rate
BooleanwaterSideTemperatureDependentfalseSet to false to make water-side hA independent of temperature

Connectors

TypeNameDescription
FluidPort_aport_a1Fluid connector a1 (positive design flow direction is from port_a1 to port_b1)
FluidPort_bport_b1Fluid connector b1 (positive design flow direction is from port_a1 to port_b1)
FluidPort_aport_a2Fluid connector a2 (positive design flow direction is from port_a2 to port_b2)
FluidPort_bport_b2Fluid connector b2 (positive design flow direction is from port_a2 to port_b2)

Modelica definition

model DryCoilDiscretized 
  "Heat exchanger with discretization along the flow path"
  extends Fluids.Interfaces.PartialStaticFourPortInterface;


  parameter Modelica.SIunits.TemperatureDifference dT0(min=0) = 10 
    "Temperature difference";
  parameter Modelica.SIunits.HeatFlowRate Q0_flow(min=0) = 1000 
    "Heat transfer at dT0";
  parameter Modelica.SIunits.ThermalConductance UA0(min=0) = Q0_flow/dT0 
    "Thermal conductance at nominal flow, used to compute heat capacity";
  parameter Integer nReg(min=2)=2 "Number of registers";
  parameter Integer nPipPar(min=1) = 3 
    "Number of parallel pipes in each register";
  parameter Integer nPipSeg(min=1) = 4 
    "Number of pipe segments per register used for discretization";
  parameter Boolean from_dp_1 = false 
    "= true, use m_flow = f(dp) else dp = f(m_flow)";
  parameter Boolean from_dp_2 = false 
    "= true, use m_flow = f(dp) else dp = f(m_flow)";
  parameter Real deltaM_1(min=0) = 0.3 
    "Fraction of nominal mass flow rate where transition to laminar occurs";
  parameter Real deltaM_2(min=0) = 0.3 
    "Fraction of nominal mass flow rate where transition to laminar occurs";
  parameter Boolean linearized_1 = false 
    "= true, use linear relation between m_flow and dp for any flow rate";
  parameter Boolean linearized_2 = false 
    "= true, use linear relation between m_flow and dp for any flow rate";
  parameter Boolean use_dh_1 = false 
    "Set to true to specify hydraulic diameter for pipe pressure drop";
  parameter Boolean use_dh_2 = false 
    "Set to true to specify hydraulic diameter for duct pressure drop)";

  parameter Modelica_Fluid.Types.Dynamics energyDynamics_1=
    Modelica_Fluid.Types.Dynamics.DynamicFreeInitial 
    "Default formulation of energy balances for volume 1";
  parameter Modelica_Fluid.Types.Dynamics energyDynamics_2=
    Modelica_Fluid.Types.Dynamics.DynamicFreeInitial 
    "Default formulation of energy balances for volume 2";

  Buildings.Fluids.HeatExchangers.BaseClasses.CoilRegister hexReg[nReg](
    redeclare each package Medium_1 = Medium_1,
    redeclare each package Medium_2 = Medium_2,
    each final allowFlowReversal_1=allowFlowReversal_1,
    each final allowFlowReversal_2=allowFlowReversal_2,
    each final nPipPar=nPipPar,
    each final nPipSeg=nPipSeg,
    each final UA0=Q0_flow/dT0/nReg,
    each final m0_flow_1=m0_flow_1/nPipPar,
    each final m0_flow_2=m0_flow_1/nPipPar/nPipSeg,
    each tau_1=tau_1,
    each tau_2=tau_2,
    each tau_m=tau_m,
    each final energyDynamics_1=energyDynamics_1,
    each final energyDynamics_2=energyDynamics_2,
    each allowCondensation=allowCondensation) "Heat exchanger register";
  Buildings.Fluids.HeatExchangers.BaseClasses.PipeManifoldFixedResistance
    pipMan_a(
    redeclare package Medium = Medium_1,
    final nPipPar=nPipPar,
    final m0_flow=m0_flow_1,
    final dp0=dp0_1,
    final dh=dh_1,
    final ReC=ReC_1,
    final mStart_flow_a=mStart_flow_a1,
    final linearized=linearized_1,
    final use_dh=use_dh_1,
    final deltaM=deltaM_1,
    final from_dp=from_dp_1,
    final allowFlowReversal=allowFlowReversal_1) "Pipe manifold at port a";
  Buildings.Fluids.HeatExchangers.BaseClasses.PipeManifoldNoResistance pipMan_b(
    redeclare package Medium = Medium_1,
    final nPipPar=nPipPar,
    final mStart_flow_a=-mStart_flow_a1,
    final allowFlowReversal=allowFlowReversal_1) "Pipe manifold at port b";
  Buildings.Fluids.HeatExchangers.BaseClasses.DuctManifoldNoResistance ducMan_b(
    redeclare package Medium = Medium_2,
    final nPipPar=nPipPar,
    final nPipSeg=nPipSeg,
    final mStart_flow_a=-mStart_flow_a2,
    final allowFlowReversal=allowFlowReversal_2) "Duct manifold at port b";
  Buildings.Fluids.HeatExchangers.BaseClasses.DuctManifoldFixedResistance
    ducMan_a(
    redeclare package Medium = Medium_2,
    final nPipPar = nPipPar,
    final nPipSeg = nPipSeg,
    final m0_flow=m0_flow_2,
    final dp0=dp0_2,
    final dh=dh_2,
    final ReC=ReC_2,
    final dl=dl,
    final mStart_flow_a=mStart_flow_a2,
    final linearized=linearized_2,
    final use_dh=use_dh_2,
    final deltaM=deltaM_2,
    final from_dp=from_dp_2,
    final allowFlowReversal=allowFlowReversal_2,
    final energyDynamics=ductConnectionDynamics) "Duct manifold at port a";
public 
  parameter Modelica.SIunits.Length dh_1=0.025 
    "Hydraulic diameter for a single pipe";
  parameter Real ReC_1=4000 
    "Reynolds number where transition to laminar starts inside pipes";
  parameter Real ReC_2=4000 
    "Reynolds number where transition to laminar starts inside ducts";
  parameter Modelica.SIunits.MassFlowRate m0_flow_1 
    "Mass flow rate at port_a1 for all pipes";
  parameter Modelica.SIunits.Pressure dp0_1 "Pressure drop for all pipes";
  parameter Modelica.SIunits.Length dh_2=1 "Hydraulic diameter for duct";
  parameter Modelica.SIunits.MassFlowRate m0_flow_2 
    "Mass flow rate at port_a_2 for duct";
  parameter Modelica.SIunits.Pressure dp0_2 "Pressure drop inside duct";
  Modelica.SIunits.HeatFlowRate Q_flow_1 
    "Heat transfered from solid into medium 1";
  Modelica.SIunits.HeatFlowRate Q_flow_2 
    "Heat transfered from solid into medium 2";
  parameter Modelica.SIunits.Time tau_1=20 
    "Time constant at nominal flow for medium 1";
  parameter Modelica.SIunits.Time tau_2=1 
    "Time constant at nominal flow for medium 2";
  parameter Modelica.SIunits.Time tau_m=20 
    "Time constant of metal at nominal UA value";

protected 
  BaseClasses.CoilHeader hea1[nReg/2](
      redeclare each final package Medium = Medium_1,
      each final nPipPar = nPipPar,
      each final mStart_flow_a=mStart_flow_a1,
      each allowFlowReversal=allowFlowReversal_1) if 
      nReg > 1 "Pipe header to redirect flow into next register";
  BaseClasses.CoilHeader hea2[nReg/2-1](
      redeclare each final package Medium = Medium_1,
      each final nPipPar = nPipPar,
      each final mStart_flow_a=mStart_flow_a1,
      each allowFlowReversal=allowFlowReversal_1) if 
      nReg > 2 "Pipe header to redirect flow into next register";
  Modelica.Blocks.Math.Gain gai_1(k=1/nReg) 
    "Gain medium-side 1 to take discretization into account";
  Modelica.Blocks.Math.Gain gai_2(k=1/nReg) 
    "Gain medium-side 2 to take discretization into account";
public 
  parameter Boolean waterSideFlowDependent = false 
    "Set to false to make water-side hA independent of mass flow rate";
  parameter Boolean airSideFlowDependent = false 
    "Set to false to make air-side hA independent of mass flow rate";
  parameter Boolean waterSideTemperatureDependent = false 
    "Set to false to make water-side hA independent of temperature";
  constant Boolean airSideTemperatureDependent = false 
    "Set to false to make air-side hA independent of temperature";
  BaseClasses.HADryCoil hA(
    final UA0=UA0,
    final m0_flow_a=m0_flow_2,
    final m0_flow_w=m0_flow_1,
    final waterSideTemperatureDependent=waterSideTemperatureDependent,
    final waterSideFlowDependent=waterSideFlowDependent,
    final airSideTemperatureDependent=airSideTemperatureDependent,
    final airSideFlowDependent=airSideFlowDependent) 
    "Model for convective heat transfer coefficient";
protected 
  constant Boolean allowCondensation = false 
    "Set to false to compute sensible heat transfer only";

protected 
  Modelica_Fluid.Sensors.TemperatureTwoPort temSen_1(
                                              redeclare package Medium = 
        Medium_1) "Temperature sensor";
  Modelica_Fluid.Sensors.MassFlowRate masFloSen_1(redeclare package Medium = 
        Medium_1) "Mass flow rate sensor";
  Modelica_Fluid.Sensors.TemperatureTwoPort temSen_2(
                                              redeclare package Medium = 
        Medium_2) "Temperature sensor";
  Modelica_Fluid.Sensors.MassFlowRate masFloSen_2(redeclare package Medium = 
        Medium_2) "Mass flow rate sensor";
public 
  parameter Modelica_Fluid.Types.Dynamics ductConnectionDynamics=
    Modelica_Fluid.Types.Dynamics.DynamicFreeInitial 
    "Default formulation of energy balances for duct connection";
  parameter Modelica.SIunits.Length dl=0.3 
    "Length of mixing volume for duct connection";
  parameter Modelica.SIunits.MassFlowRate mStart_flow_a1=m0_flow_1 
    "Guess value for mass flow rate at port_a1";
  parameter Modelica.SIunits.MassFlowRate mStart_flow_a2=m0_flow_2 
    "Guess value for mass flow rate at port_a2";
initial equation 
  assert(dT0>0,     "Parameter dT0 is negative. Check heat exchanger parameters.");
  assert(Q0_flow>0, "Parameter Q0_flow is negative. Check heat exchanger parameters.");
equation 
  Q_flow_1 = sum(hexReg[i].Q_flow_1 for i in 1:nReg);
  Q_flow_2 = sum(hexReg[i].Q_flow_2 for i in 1:nReg);

  // air stream connections
  for i in 2:nReg loop
    connect(hexReg[i].port_a2, hexReg[i-1].port_b2);
  end for;
  connect(ducMan_a.port_b, hexReg[1].port_a2);
  connect(hexReg[nReg].port_b2, ducMan_b.port_b);
  connect(pipMan_a.port_b, hexReg[1].port_a1);
  connect(hexReg[nReg].port_b1, pipMan_b.port_b);
  connect(pipMan_b.port_a, port_b1);
  connect(ducMan_b.port_a, port_b2);
  for i in 1:2:nReg loop

  // header after first hex register
    connect(hexReg[i].port_b1, hea1[(i+1)/2].port_a);
    connect(hea1[(i+1)/2].port_b, hexReg[i+1].port_b1);
  end for;
  // header after 2nd hex register
  for i in 2:2:(nReg-1) loop
    connect(hexReg[i].port_a1, hea2[i/2].port_a);
    connect(hea2[i/2].port_b, hexReg[i+1].port_a1);
  end for;
  connect(masFloSen_1.m_flow, hA.m_flow_1);
  connect(port_a2, masFloSen_2.port_a);
  connect(masFloSen_2.port_b, temSen_2.port_a);
  connect(temSen_2.port_b, ducMan_a.port_a);
  connect(temSen_2.T, hA.T_2);
  connect(masFloSen_2.m_flow, hA.m_flow_2);
  connect(hA.hA_1, gai_1.u);
  connect(hA.hA_2, gai_2.u);
  for i in 1:nReg loop
    connect(gai_1.y, hexReg[i].Gc_1);
    connect(gai_2.y, hexReg[i].Gc_2);
  end for;
  connect(port_a1, masFloSen_1.port_a);
  connect(masFloSen_1.port_b, temSen_1.port_a);
  connect(temSen_1.port_b, pipMan_a.port_a);
  connect(temSen_1.T, hA.T_1);
end DryCoilDiscretized;

Buildings.Fluids.HeatExchangers.DryHexHAInput Buildings.Fluids.HeatExchangers.DryHexHAInput

Simple heat exchanger with convective heat transfer as input

Buildings.Fluids.HeatExchangers.DryHexHAInput

Information


Simple heat exchanger with convective heat transfer as input. The hA values are an input and energy storage in the metal and in the fluid is taken into account.


Extends from Fluids.Interfaces.PartialDynamicFourPortTransformer (Partial element transporting two fluid streams between four ports with storing mass or energy), Buildings.BaseClasses.BaseIcon (Base icon).

Parameters

TypeNameDefaultDescription
replaceable package Medium_1Modelica.Media.Interfaces.Pa...Medium 1 in the component
replaceable package Medium_2Modelica.Media.Interfaces.Pa...Medium 2 in the component
MixingVolumeDryAirvol_2redeclare Buildings.Fluids.M...Volume for fluid 2
HeatCapacityCtau_m*UA0Heat capacity of metal (= cp*m) [J/K]
Nominal condition
MassFlowRatem0_flow_1 Nominal mass flow rate [kg/s]
MassFlowRatem0_flow_2m0_flow_1Nominal mass flow rate [kg/s]
Timetau_160Time constant at nominal flow [s]
Timetau_260Time constant at nominal flow [s]
ThermalConductanceUA0 Thermal conductance at nominal flow [W/K]
Timetau_m2Time constant of metal [s]
Initialization
MassFlowRatem_flow_1.start0Mass flow rate from port_a1 to port_b1 (m_flow_1 > 0 is design flow direction) [kg/s]
Pressuredp_1.start0Pressure difference between port_a1 and port_b1 [Pa]
MassFlowRatem_flow_2.start0Mass flow rate from port_a2 to port_b2 (m_flow_2 > 0 is design flow direction) [kg/s]
Pressuredp_2.start0Pressure difference between port_a2 and port_b2 [Pa]
Assumptions
BooleanallowFlowReversal_1system.allowFlowReversal= true to allow flow reversal in medium 1, false restricts to design direction (port_a -> port_b)
BooleanallowFlowReversal_2system.allowFlowReversal= true to allow flow reversal in medium 2, false restricts to design direction (port_a -> port_b)
Advanced
MassFlowRatem_flow_1_small1E-4*m0_flow_1Small mass flow rate for regularization of zero flow [kg/s]
MassFlowRatem_flow_2_small1E-4*m0_flow_2Small mass flow rate for regularization of zero flow [kg/s]
Diagnostics
Booleanshow_V_flowtrue= true, if volume flow rate at inflowing port is computed
Initialization
AbsolutePressurep_a1_startsystem.p_startGuess value for inlet pressure [Pa]
AbsolutePressurep_b1_startp_a1_startGuess value for outlet pressure [Pa]
AbsolutePressurep_a2_startsystem.p_startGuess value for inlet pressure [Pa]
AbsolutePressurep_b2_startp_a2_startGuess value for outlet pressure [Pa]

Connectors

TypeNameDescription
FluidPort_aport_a1Fluid connector a1 (positive design flow direction is from port_a1 to port_b1)
FluidPort_bport_b1Fluid connector b1 (positive design flow direction is from port_a1 to port_b1)
FluidPort_aport_a2Fluid connector a2 (positive design flow direction is from port_a2 to port_b2)
FluidPort_bport_b2Fluid connector b2 (positive design flow direction is from port_a2 to port_b2)
input RealInputGc_1Signal representing the convective thermal conductance of fluid 1 in [W/K]
input RealInputGc_2Signal representing the convective thermal conductance of fluid 2 in [W/K]

Modelica definition

model DryHexHAInput 
  "Simple heat exchanger with convective heat transfer as input"
  extends Fluids.Interfaces.PartialDynamicFourPortTransformer(final C=tau_m*UA0);
  extends Buildings.BaseClasses.BaseIcon;


   parameter Modelica.SIunits.ThermalConductance UA0(min=0) 
    "Thermal conductance at nominal flow";
  parameter Modelica.SIunits.Time tau_m(min=0) = 2 "Time constant of metal";
  Modelica.Blocks.Interfaces.RealInput Gc_1 
    "Signal representing the convective thermal conductance of fluid 1 in [W/K]";
  Modelica.Blocks.Interfaces.RealInput Gc_2 
    "Signal representing the convective thermal conductance of fluid 2 in [W/K]";
equation 
  connect(Gc_1, con1.Gc);
  connect(Gc_2, con2.Gc);
end DryHexHAInput;

Buildings.Fluids.HeatExchangers.HeaterCoolerIdeal Buildings.Fluids.HeatExchangers.HeaterCoolerIdeal

Ideal electric heater or cooler, no losses, no dynamics

Buildings.Fluids.HeatExchangers.HeaterCoolerIdeal

Information


Model for an ideal heater or cooler.

This model adds heat in the amount of Q_flow = u Q0_flow to the medium. The input signal u and the nominal heat flow rate Q0_flow can be positive or negative.

Note that if the mass flow rate tends to zero, the temperature difference over this component tends to infinity for non-zero Q_flow, so add proper control when using this component.


Extends from Fluids.Interfaces.PartialStaticTwoPortHeatMassTransfer (Partial element transporting fluid between two ports without storing mass or energy), Buildings.BaseClasses.BaseIcon (Base icon).

Parameters

TypeNameDefaultDescription
replaceable package MediumModelica.Media.Interfaces.Pa...Medium in the component
HeatFlowRateQ0_flow Heat flow rate at u=1, positive for heating [W]
Nominal condition
MassFlowRatem0_flow Nominal mass flow rate [kg/s]
Initialization
MassFlowRatem_flow.start0Mass flow rate from port_a to port_b (m_flow > 0 is design flow direction) [kg/s]
Pressuredp.start0Pressure difference between port_a and port_b [Pa]
Assumptions
BooleanallowFlowReversalsystem.allowFlowReversal= true to allow flow reversal, false restricts to design direction (port_a -> port_b)
Advanced
MassFlowRatem_flow_small1E-4*m0_flowSmall mass flow rate for regularization of zero flow [kg/s]
Diagnostics
Booleanshow_V_flowtrue= true, if volume flow rate at inflowing port is computed
Initialization
AbsolutePressurep_a_startsystem.p_startGuess value for inlet pressure [Pa]
AbsolutePressurep_b_startp_a_startGuess value for outlet pressure [Pa]

Connectors

TypeNameDescription
FluidPort_aport_aFluid connector a (positive design flow direction is from port_a to port_b)
FluidPort_bport_bFluid connector b (positive design flow direction is from port_a to port_b)
input RealInputu 

Modelica definition

model HeaterCoolerIdeal 
  "Ideal electric heater or cooler, no losses, no dynamics"
  extends Fluids.Interfaces.PartialStaticTwoPortHeatMassTransfer;
  extends Buildings.BaseClasses.BaseIcon;

  parameter Modelica.SIunits.HeatFlowRate Q0_flow 
    "Heat flow rate at u=1, positive for heating";
  Modelica.Blocks.Interfaces.RealInput u;
equation 
  dp = 0;
  Q_flow = Q0_flow * u;
  mXi_flow = zeros(Medium.nXi); // no mass added or removed (sensible heat only)
end HeaterCoolerIdeal;

Buildings.Fluids.HeatExchangers.WetCoilDiscretized Buildings.Fluids.HeatExchangers.WetCoilDiscretized

Coil with condensation

Buildings.Fluids.HeatExchangers.WetCoilDiscretized

Information


Model of a discretized coil with humidity condensation. This model is identical to Buildings.Fluids.HeatExchangers.DryCoilDiscretized but in addition, the mass transfer from fluid 2 to the metal is computed. The mass transfer is computed based using similarity laws between heat and mass transfer, as implemented by the model Buildings.Media.PerfectGases.MoistAir and Modelica.Media.Air.MoistAir.


Extends from DryCoilDiscretized (Heat exchanger with discretization along the flow path).

Parameters

TypeNameDefaultDescription
replaceable package Medium_1Modelica.Media.Interfaces.Pa...Medium 1 in the component
replaceable package Medium_2Modelica.Media.Interfaces.Pa...Medium 2 in the component
Nominal condition
MassFlowRatem0_flow_1 Nominal mass flow rate [kg/s]
MassFlowRatem0_flow_2m0_flow_1Nominal mass flow rate [kg/s]
TemperatureDifferencedT010Temperature difference [K]
HeatFlowRateQ0_flow1000Heat transfer at dT0 [W]
ThermalConductanceUA0Q0_flow/dT0Thermal conductance at nominal flow, used to compute heat capacity [W/K]
Pressuredp0_1 Pressure drop for all pipes [Pa]
Pressuredp0_2 Pressure drop inside duct [Pa]
Timetau_120Time constant at nominal flow for medium 1 [s]
Timetau_21Time constant at nominal flow for medium 2 [s]
Timetau_m20Time constant of metal at nominal UA value [s]
Initialization
MassFlowRatem_flow_1.start0Mass flow rate from port_a1 to port_b1 (m_flow_1 > 0 is design flow direction) [kg/s]
Pressuredp_1.start0Pressure difference between port_a1 and port_b1 [Pa]
MassFlowRatem_flow_2.start0Mass flow rate from port_a2 to port_b2 (m_flow_2 > 0 is design flow direction) [kg/s]
Pressuredp_2.start0Pressure difference between port_a2 and port_b2 [Pa]
MassFlowRatemStart_flow_a1m0_flow_1Guess value for mass flow rate at port_a1 [kg/s]
MassFlowRatemStart_flow_a2m0_flow_2Guess value for mass flow rate at port_a2 [kg/s]
Geometry
IntegernReg2Number of registers
IntegernPipPar3Number of parallel pipes in each register
IntegernPipSeg4Number of pipe segments per register used for discretization
Lengthdh_10.025Hydraulic diameter for a single pipe [m]
Lengthdh_21Hydraulic diameter for duct [m]
Assumptions
BooleanallowFlowReversal_1system.allowFlowReversal= true to allow flow reversal in medium 1, false restricts to design direction (port_a -> port_b)
BooleanallowFlowReversal_2system.allowFlowReversal= true to allow flow reversal in medium 2, false restricts to design direction (port_a -> port_b)
Dynamics
DynamicsenergyDynamics_1Modelica_Fluid.Types.Dynamic...Default formulation of energy balances for volume 1
DynamicsenergyDynamics_2Modelica_Fluid.Types.Dynamic...Default formulation of energy balances for volume 2
DynamicsductConnectionDynamicsModelica_Fluid.Types.Dynamic...Default formulation of energy balances for duct connection
Lengthdl0.3Length of mixing volume for duct connection [m]
Advanced
MassFlowRatem_flow_1_small1E-4*m0_flow_1Small mass flow rate for regularization of zero flow [kg/s]
MassFlowRatem_flow_2_small1E-4*m0_flow_2Small mass flow rate for regularization of zero flow [kg/s]
Booleanfrom_dp_1false= true, use m_flow = f(dp) else dp = f(m_flow)
Booleanfrom_dp_2false= true, use m_flow = f(dp) else dp = f(m_flow)
RealdeltaM_10.3Fraction of nominal mass flow rate where transition to laminar occurs
RealdeltaM_20.3Fraction of nominal mass flow rate where transition to laminar occurs
Booleanlinearized_1false= true, use linear relation between m_flow and dp for any flow rate
Booleanlinearized_2false= true, use linear relation between m_flow and dp for any flow rate
Booleanuse_dh_1falseSet to true to specify hydraulic diameter for pipe pressure drop
Booleanuse_dh_2falseSet to true to specify hydraulic diameter for duct pressure drop)
RealReC_14000Reynolds number where transition to laminar starts inside pipes
RealReC_24000Reynolds number where transition to laminar starts inside ducts
Diagnostics
Booleanshow_V_flowtrue= true, if volume flow rate at inflowing port is computed
Initialization
AbsolutePressurep_a1_startsystem.p_startGuess value for inlet pressure [Pa]
AbsolutePressurep_b1_startp_a1_startGuess value for outlet pressure [Pa]
AbsolutePressurep_a2_startsystem.p_startGuess value for inlet pressure [Pa]
AbsolutePressurep_b2_startp_a2_startGuess value for outlet pressure [Pa]
Heat transfer
BooleanwaterSideFlowDependentfalseSet to false to make water-side hA independent of mass flow rate
BooleanairSideFlowDependentfalseSet to false to make air-side hA independent of mass flow rate
BooleanwaterSideTemperatureDependentfalseSet to false to make water-side hA independent of temperature

Connectors

TypeNameDescription
FluidPort_aport_a1Fluid connector a1 (positive design flow direction is from port_a1 to port_b1)
FluidPort_bport_b1Fluid connector b1 (positive design flow direction is from port_a1 to port_b1)
FluidPort_aport_a2Fluid connector a2 (positive design flow direction is from port_a2 to port_b2)
FluidPort_bport_b2Fluid connector b2 (positive design flow direction is from port_a2 to port_b2)

Modelica definition

model WetCoilDiscretized "Coil with condensation"
  extends DryCoilDiscretized(final allowCondensation=true,
  each hexReg(ele(redeclare each Buildings.Fluids.MixingVolumes.MixingVolumeMoistAir
          vol_2(
          final use_HeatTransfer = true,
          medium(T(stateSelect=StateSelect.never))))));
end WetCoilDiscretized;

HTML-documentation generated by Dymola Thu Feb 19 16:51:39 2009.