Package with heat exchanger models
Extends from Modelica.Icons.VariantsPackage (Icon for package containing variants).
Name | Description |
---|---|
ConstantEffectiveness | Heat exchanger with constant effectiveness |
HeaterCooler_T | Ideal heater or cooler with a prescribed outlet temperature |
HeaterCooler_u | Heater or cooler with prescribed heat flow rate |
ActiveBeams | |
Radiators | Package with radiators models for hydronic space heating systems |
Examples | Collection of models that illustrate model use and test models |
Validation | Collection of models that validate the heat exchanger models |
BaseClasses | Package with base classes for Annex60.Fluid.HeatExchangers |
Heat exchanger with constant effectiveness
Model for a heat exchanger with constant effectiveness.
This model transfers heat in the amount of
Q = Qmax ε,
where ε is a constant effectiveness and Qmax is the maximum heat that can be transferred.
For a heat and moisture exchanger, use Annex60.Fluid.MassExchangers.ConstantEffectiveness instead of this model.
Extends from Annex60.Fluid.HeatExchangers.BaseClasses.PartialEffectiveness (Partial model to implement heat exchangers based on effectiveness model).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium1 | PartialMedium | Medium 1 in the component | |
replaceable package Medium2 | PartialMedium | Medium 2 in the component | |
HeatFlowRate | Q1_flow | eps*QMax_flow | Heat transferred into the medium 1 [W] |
MassFlowRate | mWat1_flow | 0 | Moisture mass flow rate added to the medium 1 [kg/s] |
HeatFlowRate | Q2_flow | -Q1_flow | Heat transferred into the medium 2 [W] |
MassFlowRate | mWat2_flow | 0 | Moisture mass flow rate added to the medium 2 [kg/s] |
Boolean | sensibleOnly1 | true | Set to true if sensible exchange only for medium 1 |
Boolean | sensibleOnly2 | true | Set to true if sensible exchange only for medium 2 |
Efficiency | eps | 0.8 | Heat exchanger effectiveness [1] |
Nominal condition | |||
MassFlowRate | m1_flow_nominal | Nominal mass flow rate [kg/s] | |
MassFlowRate | m2_flow_nominal | Nominal mass flow rate [kg/s] | |
PressureDifference | dp1_nominal | Pressure difference [Pa] | |
PressureDifference | dp2_nominal | Pressure difference [Pa] | |
Assumptions | |||
Boolean | allowFlowReversal1 | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 1 |
Boolean | allowFlowReversal2 | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 2 |
Advanced | |||
MassFlowRate | m1_flow_small | 1E-4*abs(m1_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
MassFlowRate | m2_flow_small | 1E-4*abs(m2_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
Boolean | homotopyInitialization | true | = true, use homotopy method |
Diagnostics | |||
Boolean | show_T | false | = true, if actual temperature at port is computed |
Flow resistance | |||
Medium 1 | |||
Boolean | from_dp1 | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearizeFlowResistance1 | false | = true, use linear relation between m_flow and dp for any flow rate |
Real | deltaM1 | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
Medium 2 | |||
Boolean | from_dp2 | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearizeFlowResistance2 | false | = true, use linear relation between m_flow and dp for any flow rate |
Real | deltaM2 | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
Type | Name | Description |
---|---|---|
FluidPort_a | port_a1 | Fluid connector a1 (positive design flow direction is from port_a1 to port_b1) |
FluidPort_b | port_b1 | Fluid connector b1 (positive design flow direction is from port_a1 to port_b1) |
FluidPort_a | port_a2 | Fluid connector a2 (positive design flow direction is from port_a2 to port_b2) |
FluidPort_b | port_b2 | Fluid connector b2 (positive design flow direction is from port_a2 to port_b2) |
Ideal heater or cooler with a prescribed outlet temperature
Model for an ideal heater or cooler with a prescribed outlet temperature.
This model forces the outlet temperature at port_b
to be equal to the temperature
of the input signal TSet
, subject to optional limits on the
heating or cooling capacity Q_flow_max
and Q_flow_min
.
For unlimited capacity, set Q_flow_maxHeat = Modelica.Constant.inf
and Q_flow_maxCool=-Modelica.Constant.inf
.
The output signal Q_flow
is the heat added (for heating) or subtracted (for cooling)
to the medium if the flow rate is from port_a
to port_b
.
If the flow is reversed, then Q_flow=0
.
The outlet temperature at port_a
is not affected by this model.
If the parameter energyDynamics
is not equal to
Modelica.Fluid.Types.Dynamics.SteadyState
,
the component models the dynamic response using a first order differential equation.
The time constant of the component is equal to the parameter tau
.
This time constant is adjusted based on the mass flow rate using
τeff = τ |ṁ| ⁄ ṁnom
where τeff is the effective time constant for the given mass flow rate ṁ and τ is the time constant at the nominal mass flow rate ṁnom. This type of dynamics is equal to the dynamics that a completely mixed control volume would have.
Optionally, this model can have a flow resistance.
If no flow resistance is requested, set dp_nominal=0
.
For a model that uses a control signal u ∈ [0, 1] and multiplies this with the nominal heating or cooling power, use Annex60.Fluid.HeatExchangers.HeaterCooler_u
This model only adds or removes heat for the flow from
port_a
to port_b
.
The enthalpy of the reverse flow is not affected by this model.
This model does not affect the humidity of the air. Therefore, if used to cool air below the dew point temperature, the water mass fraction will not change.
The model has been validated against the analytical solution in the examples Annex60.Fluid.HeatExchangers.Validation.HeaterCooler_T and Annex60.Fluid.HeatExchangers.Validation.HeaterCooler_T_dynamic.
Extends from Annex60.Fluid.Interfaces.PartialTwoPortInterface (Partial model transporting fluid between two ports without storing mass or energy), Annex60.Fluid.Interfaces.TwoPortFlowResistanceParameters (Parameters for flow resistance for models with two ports), Annex60.Fluid.Interfaces.PrescribedOutletStateParameters (Parameters for models with prescribed outlet state).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium | PartialMedium | Medium in the component | |
HeatFlowRate | Q_flow_maxHeat | Modelica.Constants.inf | Maximum heat flow rate for heating (positive) [W] |
HeatFlowRate | Q_flow_maxCool | -Modelica.Constants.inf | Maximum heat flow rate for cooling (negative) [W] |
Nominal condition | |||
MassFlowRate | m_flow_nominal | Nominal mass flow rate [kg/s] | |
PressureDifference | dp_nominal | Pressure difference [Pa] | |
Assumptions | |||
Boolean | allowFlowReversal | true | = false to simplify equations, assuming, but not enforcing, no flow reversal |
Advanced | |||
MassFlowRate | m_flow_small | 1E-4*abs(m_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
Boolean | homotopyInitialization | true | = true, use homotopy method |
Diagnostics | |||
Boolean | show_T | false | = true, if actual temperature at port is computed |
Flow resistance | |||
Boolean | computeFlowResistance | (abs(dp_nominal) > Modelica.... | =true, compute flow resistance. Set to false to assume no friction |
Boolean | from_dp | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearizeFlowResistance | false | = true, use linear relation between m_flow and dp for any flow rate |
Real | deltaM | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
Dynamics | |||
Time | tau | 10 | Time constant at nominal flow rate (used if energyDynamics <> Modelica.Fluid.Types.Dynamics.SteadyState) [s] |
Initialization | |||
Temperature | T_start | Medium.T_default | Initial or guess value of set point [K] |
Equations | |||
Dynamics | energyDynamics | Modelica.Fluid.Types.Dynamic... | Type of energy balance: dynamic (3 initialization options) or steady state |
Type | Name | Description |
---|---|---|
FluidPort_a | port_a | Fluid connector a (positive design flow direction is from port_a to port_b) |
FluidPort_b | port_b | Fluid connector b (positive design flow direction is from port_a to port_b) |
input RealInput | TSet | Set point temperature of the fluid that leaves port_b [K] |
output RealOutput | Q_flow | Heat added to the fluid (if flow is from port_a to port_b) [W] |
Heater or cooler with prescribed heat flow rate
Model for an ideal heater or cooler with prescribed heat flow rate to the medium.
This model adds heat in the amount of Q_flow = u Q_flow_nominal
to the medium.
The input signal u
and the nominal heat flow rate Q_flow_nominal
can be positive or negative.
Optionally, this model can have a flow resistance.
If no flow resistance is requested, set dp_nominal=0
.
For a model that uses as an input the fluid temperature leaving at
port_b
, use
Annex60.Fluid.HeatExchangers.HeaterCooler_T
This model does not affect the humidity of the air. Therefore, if used to cool air below the dew point temperature, the water mass fraction will not change.
The model has been validated against the analytical solution in the example Annex60.Fluid.HeatExchangers.Validation.HeaterCooler_u.
Extends from Annex60.Fluid.Interfaces.TwoPortHeatMassExchanger (Partial model transporting one fluid stream with storing mass or energy).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium | PartialMedium | Medium in the component | |
HeatFlowRate | Q_flow_nominal | Heat flow rate at u=1, positive for heating [W] | |
Nominal condition | |||
MassFlowRate | m_flow_nominal | Nominal mass flow rate [kg/s] | |
PressureDifference | dp_nominal | Pressure difference [Pa] | |
Assumptions | |||
Boolean | allowFlowReversal | true | = false to simplify equations, assuming, but not enforcing, no flow reversal |
Advanced | |||
MassFlowRate | m_flow_small | 1E-4*abs(m_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
Boolean | homotopyInitialization | true | = true, use homotopy method |
Diagnostics | |||
Boolean | show_T | false | = true, if actual temperature at port is computed |
Flow resistance | |||
Boolean | from_dp | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearizeFlowResistance | false | = true, use linear relation between m_flow and dp for any flow rate |
Real | deltaM | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
Dynamics | |||
Nominal condition | |||
Time | tau | 30 | Time constant at nominal flow (if energyDynamics <> SteadyState) [s] |
Equations | |||
Dynamics | energyDynamics | Modelica.Fluid.Types.Dynamic... | Type of energy balance: dynamic (3 initialization options) or steady state |
Dynamics | massDynamics | energyDynamics | Type of mass balance: dynamic (3 initialization options) or steady state |
Initialization | |||
AbsolutePressure | p_start | Medium.p_default | Start value of pressure [Pa] |
Temperature | T_start | Medium.T_default | Start value of temperature [K] |
MassFraction | X_start[Medium.nX] | Medium.X_default | Start value of mass fractions m_i/m [kg/kg] |
ExtraProperty | C_start[Medium.nC] | fill(0, Medium.nC) | Start value of trace substances |
Type | Name | Description |
---|---|---|
FluidPort_a | port_a | Fluid connector a (positive design flow direction is from port_a to port_b) |
FluidPort_b | port_b | Fluid connector b (positive design flow direction is from port_a to port_b) |
input RealInput | u | Control input |
output RealOutput | Q_flow | Heat added to the fluid [W] |