PartialPumpBase model for centrifugal pumps |
This information is part of the Modelica Standard Library maintained by the Modelica Association.
This is the base model for pumps.
The model describes a centrifugal pump, or a group of nParallel
identical pumps. The pump model is based on the theory of kinematic similarity: the pump characteristics are given for nominal operating conditions (rotational speed and fluid density), and then adapted to actual operating condition, according to the similarity equations.
Pump characteristics
The nominal hydraulic characteristic (head vs. volume flow rate) is given by the replaceable function flowCharacteristic
.
The pump energy balance can be specified in two alternative ways:
use_powerCharacteristic = false
(default option): the replaceable function efficiencyCharacteristic
(efficiency vs. volume flow rate in nominal conditions) is used to determine the efficiency, and then the power consumption.
The default is a constant efficiency of 0.8.use_powerCharacteristic = true
: the replaceable function powerCharacteristic
(power consumption vs. volume flow rate in nominal conditions) is used to determine the power consumption, and then the efficiency.
Use powerCharacteristic
to specify a non-zero power consumption for zero flow rate.
Several functions are provided in the package PumpCharacteristics
to specify the characteristics as a function of some operating points at nominal conditions.
Depending on the value of the checkValve
parameter, the model either supports reverse flow conditions, or includes a built-in check valve to avoid flow reversal.
It is possible to take into account the mass and energy storage of the fluid inside the pump by specifying its volume V
, and by selecting appropriate dynamic mass and energy balance assumptions (see below);
this is recommended to avoid singularities in the computation of the outlet enthalpy in case of zero flow rate.
If zero flow rate conditions are always avoided, this dynamic effect can be neglected by leaving the default value V = 0
, thus avoiding fast state variables in the model.
Dynamics options
Steady-state mass and energy balances are assumed per default, neglecting the holdup of fluid in the pump; this configuration works well if the flow rate is always positive.
Dynamic mass and energy balance can be used by setting the corresponding dynamic parameters. This is recommended to avoid singularities at zero or reversing mass flow rate. If the initial conditions imply non-zero mass flow rate, it is possible to use the SteadyStateInitial
condition, otherwise it is recommended to use FixedInitial
in order to avoid undetermined initial conditions.
Heat transfer
The Boolean parameter use_HeatTransfer
can be set to true if heat exchanged with the environment
should be taken into account or to model a housing. This might be desirable if a pump with realistic
powerCharacteristic
for zero flow operates while a valve prevents fluid flow.
Diagnostics of Cavitation
The replaceable Monitoring submodel can be configured to PumpMonitoringNPSH, in order to compute the Net Positive Suction Head available and check for cavitation, provided a two-phase medium model is used (see Advanced tab).
allowFlowReversal |
Value: system.allowFlowReversal Type: Boolean Description: = true to allow flow reversal, false restricts to design direction (port_a -> port_b) |
---|---|
energyDynamics |
Value: Types.Dynamics.SteadyState Type: Dynamics Description: Formulation of energy balance |
massDynamics |
Value: Types.Dynamics.SteadyState Type: Dynamics Description: Formulation of mass balance |
substanceDynamics |
Value: massDynamics Type: Dynamics Description: Formulation of substance balance |
traceDynamics |
Value: massDynamics Type: Dynamics Description: Formulation of trace substance balance |
p_start |
Value: p_b_start Type: AbsolutePressure (Pa) Description: Start value of pressure |
use_T_start |
Value: true Type: Boolean Description: = true, use T_start, otherwise h_start |
T_start |
Value: if use_T_start then system.T_start else Medium.temperature_phX(p_start, h_start, X_start) Type: Temperature (K) Description: Start value of temperature |
h_start |
Value: if use_T_start then Medium.specificEnthalpy_pTX(p_start, T_start, X_start) else Medium.h_default Type: SpecificEnthalpy (J/kg) Description: Start value of specific enthalpy |
X_start |
Value: Medium.X_default Type: MassFraction[Medium.nX] (kg/kg) Description: Start value of mass fractions m_i/m |
C_start |
Value: Medium.C_default Type: ExtraProperty[Medium.nC] Description: Start value of trace substances |
p_a_start |
Value: system.p_start Type: AbsolutePressure (Pa) Description: Guess value for inlet pressure |
p_b_start |
Value: p_a_start Type: AbsolutePressure (Pa) Description: Guess value for outlet pressure |
m_flow_start |
Value: system.m_flow_start Type: MassFlowRate (kg/s) Description: Guess value of m_flow = port_a.m_flow |
checkValveHomotopy |
Value: Types.CheckValveHomotopyType.NoHomotopy Type: CheckValveHomotopyType Description: = whether the valve is Closed, Open, or unknown at initialization |
V_flow_single_init |
Value: m_flow_start / rho_nominal / nParallel Type: VolumeFlowRate (m³/s) Description: Used for simplified initialization model |
delta_head_init |
Value: flowCharacteristic(V_flow_single_init * 1.1) - flowCharacteristic(V_flow_single_init) Type: Position (m) Description: Delta head for a 10% increase of flow at the initialization point |
nParallel |
Value: 1 Type: Integer Description: Number of pumps in parallel |
N_nominal |
Value: Type: AngularVelocity_rpm (rev/min) Description: Nominal rotational speed for flow characteristic |
rho_nominal |
Value: Medium.density_pTX(Medium.p_default, Medium.T_default, Medium.X_default) Type: Density (kg/m³) Description: Nominal fluid density for characteristic |
use_powerCharacteristic |
Value: false Type: Boolean Description: Use powerCharacteristic (vs. efficiencyCharacteristic) |
checkValve |
Value: false Type: Boolean Description: = true to prevent reverse flow |
V |
Value: 0 Type: Volume (m³) Description: Volume inside the pump |
use_HeatTransfer |
Value: false Type: Boolean Description: = true to use a HeatTransfer model, e.g., for a housing |
g |
Value: system.g Type: Acceleration (m/s²) Description: Constant gravity acceleration |
fluidVolume |
Default Value: V Type: Volume (m³) Description: Volume |
---|
port_a |
Type: FluidPort_a Description: Fluid connector a (positive design flow direction is from port_a to port_b) |
|
---|---|---|
port_b |
Type: FluidPort_b Description: Fluid connector b (positive design flow direction is from port_a to port_b) |
|
heatPort |
Type: HeatPort_a |
system |
Type: System Description: System properties |
|
---|---|---|
medium |
Type: BaseProperties |
|
heatTransfer |
Type: HeatTransfer |
|
monitoring |
Type: Monitoring Description: Monitoring model |
Modelica.Fluid.Machines Centrifugal pump with ideally controlled speed |
|
Modelica.Fluid.Machines Centrifugal pump with ideally controlled mass flow rate |
|
Modelica.Fluid.Machines Centrifugal pump with mechanical connector for the shaft |