This is the base model for fans and pumps. It provides an interface between the equations that compute head and power consumption, and the implementation of the energy and pressure balance of the fluid.
Optionally, the fluid volume is computed using a dynamic balance or a steady-state balance.
The parameter addPowerToMedium
determines whether
any power is added to the fluid. The default is addPowerToMedium=true
,
and hence the outlet enthalpy is higher than the inlet enthalpy if the
flow device is operating.
The setting addPowerToMedium=false
is physically incorrect
(since the flow work, the flow friction and the fan heat do not increase
the enthalpy of the medium), but this setting does in some cases lead to simpler equations
and more robust simulation, in particular if the mass flow is equal to zero.
In the previous implementation, this model extends from
IBPSA.Fluid.Interfaces.PartialTwoPortInterface.
Now it copies much of the code instead.
This is to resolve a potential circular parameter binding that occurs when
IBPSA.Fluid.Movers.Preconfigured.SpeedControlled_y
extends from
IBPSA.Fluid.Movers.SpeedControlled_y.
The former uses the nominal flow rate provided by user to construct
the pressure curve, whilst the latter uses the user-provided pressure curve
to determine the nominal flow rate. The new implementation removes the
original declaration of nominal flow rate from
IBPSA.Fluid.Interfaces.PartialTwoPortInterface
and hides it (protected _m_flow_nominal
) from the user.
This way, A higher-level model (e.g.
IBPSA.Fluid.Movers.FlowControlled_dp),
can still provide a default but not the other way around.
See discussions in
#1705.
m_flow_nominal
as protected _m_flow_nominal
.haveVMax
from here to
IBPSA.Fluid.Movers.BaseClasses.FlowMachineInterface
and V_flow_max
from here to
IBPSA.Fluid.Movers.Data.Generic.
per.peak
, per.totalEfficiency,
,
per.motorEfficiency_yMot
to be also passed down to eff.per
at instantiation.
assert()
warning when the model has to make an unreliable
guess for efficiency computation using .EulerNumber
.
assert()
warning when the model has to overwrite
per.etaMotMet
.
m_flow_nominal
.filteredSpeed
to use_inputFilter
.min
attribute as otherwise numerical noise can cause
the assertion on the limit to fail.VMachine_flow
to avoid a warning in
IBPSA.Fluid.Movers.Examples.MoverContinuous.
Extractor
protected so that it can be removed later
with a backwards compatible change.
dp
and m_flow
when having
compressible flow.
This is for
#458.
dynamicBalance
.
This is for
#411.
showDesignFlowDirection
in extends
statement.
This is for
#349.
Removed assignment of min
and max
attributes
of the port mass flow rate as this is already done in the base class.
Removed import
statement.
m_flow_small
of instance vol
and made
all its parameters final.