modelDynamicHX

Simple dynamic heat exchanger model

Extends from Interfaces.FourPortHeatExchanger (Model transporting two fluid streams between four ports with storing mass or energy in n volumes).

Information

This is a simple dynamic heat exchanger with a heat capacity and convection. The heat exchanger is discretized in n elements and the volume elements are replaceable.

The heat transfer and pressure losses are calculated by nominal values. Nevertheless, the heat transfer coefficient Gc can be overwritten.

Parameters

TypeNameDefaultDescription
IntegernNodes (from FourPortHeatExchanger)2Spatial segmentation
Assumptions
BooleanallowFlowReversal1 (from PartialFourPort)true= false to simplify equations, assuming, but not enforcing, no flow reversal for medium 1
BooleanallowFlowReversal2 (from PartialFourPort)true= false to simplify equations, assuming, but not enforcing, no flow reversal for medium 2
Nominal condition
Modelica.Units.SI.MassFlowRatem1_flow_nominal (from PartialFourPortInterface)Nominal mass flow rate
Modelica.Units.SI.MassFlowRatem2_flow_nominal (from PartialFourPortInterface)Nominal mass flow rate
Modelica.Units.SI.PressureDifferencedp1_nominal (from FourPortFlowResistanceParameters)Pressure difference
Modelica.Units.SI.PressureDifferencedp2_nominal (from FourPortFlowResistanceParameters)Pressure difference
Advanced
Medium1.MassFlowRatem1_flow_small (from PartialFourPortInterface)1E-4*abs(m1_flow_nominal)Small mass flow rate for regularization of zero flow
Medium2.MassFlowRatem2_flow_small (from PartialFourPortInterface)1E-4*abs(m2_flow_nominal)Small mass flow rate for regularization of zero flow
BooleanhomotopyInitialization (from FourPortHeatExchanger)true= true, use homotopy method
Advanced › Diagnostics
Booleanshow_T (from PartialFourPortInterface)false= true, if actual temperature at port is computed
Flow resistance › Medium 1
BooleancomputeFlowResistance1 (from FourPortFlowResistanceParameters)true=true, compute flow resistance. Set to false to assume no friction
Booleanfrom_dp1 (from FourPortFlowResistanceParameters)false= true, use m_flow = f(dp) else dp = f(m_flow)
BooleanlinearizeFlowResistance1 (from FourPortFlowResistanceParameters)false= true, use linear relation between m_flow and dp for any flow rate
RealdeltaM1 (from FourPortFlowResistanceParameters)0.1Fraction of nominal flow rate where flow transitions to laminar
Flow resistance › Medium 2
BooleancomputeFlowResistance2 (from FourPortFlowResistanceParameters)true=true, compute flow resistance. Set to false to assume no friction
Booleanfrom_dp2 (from FourPortFlowResistanceParameters)false= true, use m_flow = f(dp) else dp = f(m_flow)
BooleanlinearizeFlowResistance2 (from FourPortFlowResistanceParameters)false= true, use linear relation between m_flow and dp for any flow rate
RealdeltaM2 (from FourPortFlowResistanceParameters)0.1Fraction of nominal flow rate where flow transitions to laminar
Dynamics › Nominal condition
Modelica.Units.SI.Timetau1 (from FourPortHeatExchanger)30Time constant at nominal flow
Modelica.Units.SI.Timetau2 (from FourPortHeatExchanger)30Time constant at nominal flow
Modelica.Units.SI.Timetau_C10Time constant of heat capacity at nominal heat flow and temperature difference.
Dynamics › Equations
Modelica.Fluid.Types.DynamicsenergyDynamics (from FourPortHeatExchanger)Modelica.Fluid.Types.Dynamics.DynamicFreeInitialType of energy balance: dynamic (3 initialization options) or steady state
Modelica.Fluid.Types.DynamicsmassDynamics (from FourPortHeatExchanger)energyDynamicsType of mass balance: dynamic (3 initialization options) or steady state
Initialization › Medium 1
Medium1.AbsolutePressurep1_start (from FourPortHeatExchanger)Medium1.p_defaultStart value of pressure
Medium1.TemperatureT1_start (from FourPortHeatExchanger)Medium1.T_defaultStart value of temperature
Medium1.MassFraction[Medium1.nX]X1_start (from FourPortHeatExchanger)Medium1.X_defaultStart value of mass fractions m_i/m
Medium1.ExtraProperty[Medium1.nC]C1_start (from FourPortHeatExchanger)fill(0, Medium1.nC)Start value of trace substances
Medium1.ExtraProperty[Medium1.nC]C1_nominal (from FourPortHeatExchanger)fill(1E-2, Medium1.nC)Nominal value of trace substances. (Set to typical order of magnitude.)
Initialization › Medium 2
Medium2.AbsolutePressurep2_start (from FourPortHeatExchanger)Medium2.p_defaultStart value of pressure
Medium2.TemperatureT2_start (from FourPortHeatExchanger)Medium2.T_defaultStart value of temperature
Medium2.MassFraction[Medium2.nX]X2_start (from FourPortHeatExchanger)Medium2.X_defaultStart value of mass fractions m_i/m
Medium2.ExtraProperty[Medium2.nC]C2_start (from FourPortHeatExchanger)fill(0, Medium2.nC)Start value of trace substances
Medium2.ExtraProperty[Medium2.nC]C2_nominal (from FourPortHeatExchanger)fill(1E-2, Medium2.nC)Nominal value of trace substances. (Set to typical order of magnitude.)
Heat Transfer
Modelica.Units.SI.TemperatureDifferencedT_nomTemperature difference at nominal conditions (used to calculate Gc)
Modelica.Units.SI.HeatFlowRateQ_nomTemperature difference at nominal conditions (used to calculate Gc)
Modelica.Units.SI.ThermalConductanceGc1Q_nom/dT_nom*2/nNodesSignal representing the convective thermal conductance in [W/K]
Modelica.Units.SI.ThermalConductanceGc2Q_nom/dT_nom*2/nNodesSignal representing the convective thermal conductance in [W/K]
Initialization › Heat capacity
Modelica.Units.SI.TemperatureTCapacity_start(T1_start + T2_start)/2Start value of temperature

Connectors

TypeNameDefaultDescription
Modelica.Fluid.Interfaces.FluidPort_aport_a1 (from PartialFourPort)Fluid connector a1 (positive design flow direction is from port_a1 to port_b1)
Modelica.Fluid.Interfaces.FluidPort_bport_b1 (from PartialFourPort)Fluid connector b1 (positive design flow direction is from port_a1 to port_b1)
Modelica.Fluid.Interfaces.FluidPort_aport_a2 (from PartialFourPort)Fluid connector a2 (positive design flow direction is from port_a2 to port_b2)
Modelica.Fluid.Interfaces.FluidPort_bport_b2 (from PartialFourPort)Fluid connector b2 (positive design flow direction is from port_a2 to port_b2)

Components

TypeNameDefaultDescription
Medium1.MassFlowRatem1_flow (from PartialFourPortInterface)port_a1.m_flowMass flow rate from port_a1 to port_b1 (m1_flow > 0 is design flow direction)
Modelica.Units.SI.PressureDifferencedp1 (from PartialFourPortInterface)port_a1.p - port_b1.pPressure difference between port_a1 and port_b1
Medium2.MassFlowRatem2_flow (from PartialFourPortInterface)port_a2.m_flowMass flow rate from port_a2 to port_b2 (m2_flow > 0 is design flow direction)
Modelica.Units.SI.PressureDifferencedp2 (from PartialFourPortInterface)port_a2.p - port_b2.pPressure difference between port_a2 and port_b2
Medium1.ThermodynamicStatesta_a1 (from PartialFourPortInterface)if allowFlowReversal1 then Medium1.setState_phX(port_a1.p, noEvent(actualStream(port_a1.h_outflow)), noEvent(actualStream(port_a1.Xi_outflow))) else Medium1.setState_phX(port_a1.p, inStream(port_a1.h_outflow), inStream(port_a1.Xi_outflow))Medium properties in port_a1
Medium1.ThermodynamicStatesta_b1 (from PartialFourPortInterface)if allowFlowReversal1 then Medium1.setState_phX(port_b1.p, noEvent(actualStream(port_b1.h_outflow)), noEvent(actualStream(port_b1.Xi_outflow))) else Medium1.setState_phX(port_b1.p, port_b1.h_outflow, port_b1.Xi_outflow)Medium properties in port_b1
Medium2.ThermodynamicStatesta_a2 (from PartialFourPortInterface)if allowFlowReversal2 then Medium2.setState_phX(port_a2.p, noEvent(actualStream(port_a2.h_outflow)), noEvent(actualStream(port_a2.Xi_outflow))) else Medium2.setState_phX(port_a2.p, inStream(port_a2.h_outflow), inStream(port_a2.Xi_outflow))Medium properties in port_a2
Medium2.ThermodynamicStatesta_b2 (from PartialFourPortInterface)if allowFlowReversal2 then Medium2.setState_phX(port_b2.p, noEvent(actualStream(port_b2.h_outflow)), noEvent(actualStream(port_b2.Xi_outflow))) else Medium2.setState_phX(port_b2.p, port_b2.h_outflow, port_b2.Xi_outflow)Medium properties in port_b2
Modelica.Units.SI.HeatFlowRateQ1_flow (from FourPortHeatExchanger)sum(vol1.heatPort.Q_flow)Heat flow rate into medium 1
Modelica.Units.SI.HeatFlowRateQ2_flow (from FourPortHeatExchanger)sum(vol2.heatPort.Q_flow)Heat flow rate into medium 2
AixLib.Fluid.MixingVolumes.BaseClasses.MixingVolumeHeatPort[nNodes]vol1 (from FourPortHeatExchanger)
AixLib.Fluid.MixingVolumes.MixingVolume[nNodes]vol2 (from FourPortHeatExchanger)
AixLib.Fluid.FixedResistances.PressureDroppreDro1 (from FourPortHeatExchanger)Flow resistance of fluid 1
AixLib.Fluid.FixedResistances.PressureDroppreDro2 (from FourPortHeatExchanger)Flow resistance of fluid 2
Modelica.Thermal.HeatTransfer.Components.HeatCapacitor[nNodes]heatCapacitor
Modelica.Blocks.Sources.RealExpression[nNodes]Gc1_Expression
Modelica.Thermal.HeatTransfer.Components.Convection[nNodes]convection1
Modelica.Blocks.Sources.RealExpression[nNodes]Gc2_Expression
Modelica.Thermal.HeatTransfer.Components.Convection[nNodes]convection2

Revisions