modelPartialEffectiveness

Partial model to implement heat exchangers based on effectiveness model

Extends from Fluid.Interfaces.StaticFourPortHeatMassExchanger.

Information

Partial model to implement heat exchanger models.

Classes that extend this model need to implement heat and mass balance equations in a form like

  // transferred heat
  Q1_flow = eps * QMax_flow;
  // no heat loss to ambient
  0 = Q1_flow + Q2_flow;
  // no mass exchange
  mXi1_flow = zeros(Medium1.nXi);
  mXi2_flow = zeros(Medium2.nXi);

Thus, if medium 1 is heated in this device, then Q1_flow > 0 and QMax_flow > 0.

Components

TypeNameDefaultDescription
Medium1.TemperatureT_in1if allowFlowReversal1 then fra_a1*Medium1.temperature(state_a1_inflow) + fra_b1*Medium1.temperature(state_b1_inflow) else Medium1.temperature(state_a1_inflow)Inlet temperature medium 1
Medium2.TemperatureT_in2if allowFlowReversal2 then fra_a2*Medium2.temperature(state_a2_inflow) + fra_b2*Medium2.temperature(state_b2_inflow) else Medium2.temperature(state_a2_inflow)Inlet temperature medium 2
Modelica.Units.SI.ThermalConductanceC1_flowabs(m1_flow)*(if allowFlowReversal1 then fra_a1*Medium1.specificHeatCapacityCp(state_a1_inflow) + fra_b1*Medium1.specificHeatCapacityCp(state_b1_inflow) else Medium1.specificHeatCapacityCp(state_a1_inflow))Heat capacity flow rate medium 1
Modelica.Units.SI.ThermalConductanceC2_flowabs(m2_flow)*(if allowFlowReversal2 then fra_a2*Medium2.specificHeatCapacityCp(state_a2_inflow) + fra_b2*Medium2.specificHeatCapacityCp(state_b2_inflow) else Medium2.specificHeatCapacityCp(state_a2_inflow))Heat capacity flow rate medium 2
Modelica.Units.SI.ThermalConductanceCMin_flowmin(C1_flow, C2_flow)Minimum heat capacity flow rate
Modelica.Units.SI.HeatFlowRateQMax_flowCMin_flow*(T_in2 - T_in1)Maximum heat flow rate into medium 1

Revisions

  • April 27, 2023, by Michael Wetter:
    Set nominal and min attributes for capacity flow rates.
    Moved assignments from initial equation to parameter declaration. This avoids a warning in Dymola 2023x about non-literal nominal values.
    This is for #3360.
  • February 21, 2019, by Filip Jorissen:
    Revised implementation of all equations such that a binding equation is used. I.e. we set the variable value at the variable definition instead of using the equation section. This allows overwriting the equation when extending the model.
    See #1102.
  • April 30, 2018, by Filip Jorissen:
    Set prescribedHeatFlowRate1=true and prescribedHeatFlowRate2=true.
    See #907.
  • June 9, 2015 by Michael Wetter:
    Changed type of T_in1 and T_in2 to Medium1.Temperature and Medium2.Temperature to avoid an error because of conflicting start values if Buildings.Examples.ChillerPlant.BaseClasses.Controls.Examples.ChillerSetPointControl is translated using pedantic mode in Dymola 2016. This is for #426.
  • October 8, 2011, by Michael Wetter:
    Set show_T=false to avoid state events near zero flow.
  • August 31, 2011, by Michael Wetter:
    Removed unused variables gai1 and gai2.
  • February 12, 2010, by Michael Wetter:
    Changed model structure to implement effectiveness-NTU model.
  • January 28, 2010, by Michael Wetter:
    Added regularization near zero flow.
  • October 2, 2009, by Michael Wetter:
    Changed computation of inlet temperatures to use state_*_inflow which is already known in base class.
  • April 28, 2008, by Michael Wetter:
    First implementation.