This component transports fluid between its two ports, without storing mass or energy. It is based on Modelica.Fluid.Interfaces.PartialTwoPortTransport but it does use a different implementation for handling reverse flow because in this component, mass flow rate can be added or removed from the medium.
If dp_nominal > Modelica.Constants.eps
, this component computes
pressure drop due to flow friction.
The pressure drop is defined by a quadratic function that goes through
the point (m_flow_nominal, dp_nominal)
. At |m_flow| < deltaM * m_flow_nominal
,
the pressure drop vs. flow relation is linearized.
If the parameter linearizeFlowResistance
is set to true,
then the whole pressure drop vs. flow resistance curve is linearized.
Q_flow
, which is the heat flow rate added to the medium.
mWat_flow
, which is the moisture mass flow rate added to the medium.
Set the constant sensibleOnly=true
if the model that extends
or instantiates this model sets mWat_flow = 0
.
To increase the numerical robustness of the model, the constant
prescribedHeatFlowRate
can be set.
Use the following settings:
prescribedHeatFlowRate=true
if the only means of heat transfer
at the heatPort
is a prescribed heat flow rate that
is not a function of the temperature difference
between the medium and an ambient temperature. Examples include an ideal electrical heater,
a pump that rejects heat into the fluid stream, or a chiller that removes heat based on a performance curve.
If the heatPort
is not connected, then set prescribedHeatFlowRate=true
as
in this case, heatPort.Q_flow=0
.
prescribedHeatFlowRate=false
if there is heat flow at the heatPort
computed as K * (T-heatPort.T), for some temperature T and some conductance K,
which may itself be a function of temperature or mass flow rate.prescribedHeatFlowRate=false
.
If prescribedHeatFlow=true
, then energy and mass balance
equations are formulated to guard against numerical problems near
zero flow that can occur if Q_flow
or m_flow
are the results of an iterative solver.
use_dh
is no longer a parameter in the pressure drop model.sensibleOnly
in bal1
and bal2
as this constant has been removed in
Annex60.Fluid.Interfaces.StaticTwoPortHeatMassExchanger.
showDesignFlowDirection
in extends
statement.
This is for
#349.
port_a
if allowFlowReversal=false
and
updated documentation.
See
issue 281 for a discussion.
use_safeDivision
into
prescribedHeatFlowRate
.
See
issue 282 for a discussion.
homotopyInitialization
as
it has been removed in the base class.
show_V_flow
to pressure drop calculation, as this model no longer has
that parameter.
mXi_flow[Medium.nXi]
to a scalar input connector mWat_flow
.
The reason is that mXi_flow
does not allow
to compute the other components in mX_flow
and
therefore leads to an ambiguous use of the model.
By only requesting mWat_flow
, the mass balance
and species balance can be implemented correctly.
COut
,
and added min and max attributes for XiOut
.
hOut
, XiOut
and
COut
to no longer declare that it is continuous.
The declaration of continuity, i.e, the
smooth(0, if (port_a.m_flow >= 0) then ...
declaration,
was required for Dymola 2012 to simulate, but it is no longer needed
for Dymola 2012 FD01.
hOut
, XiOut
and
COut
to declare that it is not differentiable.
m_flow=0
.
homotopy
operator.
port_b
was multiplied with the mass flow rate at
port_a
. The old implementation led to small errors that were proportional
to the amount of moisture change. For example, if the moisture added by the component
was 0.005 kg/kg
, then the error was 0.5%
.
Also, the results for forward flow and reverse flow differed by this amount.
With the new implementation, the energy and moisture balance is exact.
sensibleOnly
to
simplify species balance equation.