modelPartialPump
Extends from Modelica.Fluid.Interfaces.PartialTwoPort (Partial component with two ports), Modelica.Fluid.Interfaces.PartialLumpedVolume (Lumped volume with mass and energy balance).
Information
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 functionefficiencyCharacteristic(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 functionpowerCharacteristic(power consumption vs. volume flow rate in nominal conditions) is used to determine the power consumption, and then the efficiency. UsepowerCharacteristicto 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).
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| SI.VolumeFlowRate | V_flow_single_init | m_flow_start/rho_nominal/nParallel | Used for simplified initialization model |
| SI.Position | delta_head_init | flowCharacteristic(V_flow_single_init*1.1) - flowCharacteristic(V_flow_single_init) | Delta head for a 10% increase of flow at the initialization point |
| SI.Acceleration | g | system.g | Constant gravity acceleration |
| Medium.MassFlowRate | unit_m_flow | 1 | |
| Assumptions | |||
| Boolean | allowFlowReversal (from PartialTwoPort) | system.allowFlowReversal | = true to allow flow reversal, false restricts to design direction (port_a -> port_b) |
| Boolean | checkValve | false | = true to prevent reverse flow |
| SI.Volume | V | 0 | Volume inside the pump |
| Initialization | |||
| Medium.AbsolutePressure | p_a_start | system.p_start | Guess value for inlet pressure |
| Medium.AbsolutePressure | p_b_start | p_a_start | Guess value for outlet pressure |
| Medium.MassFlowRate | m_flow_start | system.m_flow_start | Guess value of m_flow = port_a.m_flow |
| Types.CheckValveHomotopyType | checkValveHomotopy | Types.CheckValveHomotopyType.NoHomotopy | = whether the valve is Closed, Open, or unknown at initialization |
| Medium.AbsolutePressure | p_start (from PartialLumpedVolume) | system.p_start | Start value of pressure |
| Boolean | use_T_start (from PartialLumpedVolume) | true | = true, use T_start, otherwise h_start |
| Medium.Temperature | T_start (from PartialLumpedVolume) | if use_T_start then system.T_start else Medium.temperature_phX(p_start, h_start, X_start) | Start value of temperature |
| Medium.SpecificEnthalpy | h_start (from PartialLumpedVolume) | if use_T_start then Medium.specificEnthalpy_pTX(p_start, T_start, X_start) else Medium.h_default | Start value of specific enthalpy |
| Medium.MassFraction[Medium.nX] | X_start (from PartialLumpedVolume) | Medium.X_default | Start value of mass fractions m_i/m |
| Medium.ExtraProperty[Medium.nC] | C_start (from PartialLumpedVolume) | Medium.C_default | Start value of trace substances |
| Characteristics | |||
| Integer | nParallel | 1 | Number of pumps in parallel |
| NonSI.AngularVelocity_rpm | N_nominal | Nominal rotational speed for flow characteristic | |
| Medium.Density | rho_nominal | Medium.density_pTX(Medium.p_default, Medium.T_default, Medium.X_default) | Nominal fluid density for characteristic |
| Boolean | use_powerCharacteristic | false | Use powerCharacteristic (vs. efficiencyCharacteristic) |
| Assumptions › Dynamics | |||
| Types.Dynamics | energyDynamics (from PartialLumpedVolume) | system.energyDynamics | Formulation of energy balance |
| Types.Dynamics | massDynamics (from PartialLumpedVolume) | system.massDynamics | Formulation of mass balance |
| Types.Dynamics | substanceDynamics (from PartialLumpedVolume) | massDynamics | Formulation of substance balance |
| Types.Dynamics | traceDynamics (from PartialLumpedVolume) | massDynamics | Formulation of trace substance balance |
| Assumptions › Heat transfer | |||
| Boolean | use_HeatTransfer | false | = true to use a HeatTransfer model, e.g., for a housing |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Fluid.Interfaces.FluidPort_a | port_a (from PartialTwoPort) | Fluid connector a (positive design flow direction is from port_a to port_b) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b (from PartialTwoPort) | Fluid connector b (positive design flow direction is from port_a to port_b) | |
| Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a | heatPort |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Fluid.System | system (from PartialTwoPort) | System wide properties | |
| SI.Volume | fluidVolume (from PartialLumpedVolume) | Volume | |
| Medium.BaseProperties | medium (from PartialLumpedVolume) | ||
| SI.Energy | U (from PartialLumpedVolume) | Internal energy of fluid | |
| SI.Mass | m (from PartialLumpedVolume) | Mass of fluid | |
| SI.Mass | mXi (from PartialLumpedVolume) | Masses of independent components in the fluid | |
| SI.Mass | mC (from PartialLumpedVolume) | Masses of trace substances in the fluid | |
| Medium.ExtraProperty[Medium.nC] | C (from PartialLumpedVolume) | Trace substance mixture content | |
| SI.MassFlowRate | mb_flow (from PartialLumpedVolume) | Mass flows across boundaries | |
| SI.MassFlowRate | mbXi_flow (from PartialLumpedVolume) | Substance mass flows across boundaries | |
| Medium.ExtraPropertyFlowRate | mbC_flow (from PartialLumpedVolume) | Trace substance mass flows across boundaries | |
| SI.EnthalpyFlowRate | Hb_flow (from PartialLumpedVolume) | Enthalpy flow across boundaries or energy source/sink | |
| SI.HeatFlowRate | Qb_flow (from PartialLumpedVolume) | Heat flow across boundaries or energy source/sink | |
| SI.Power | Wb_flow (from PartialLumpedVolume) | Work flow across boundaries or source term | |
| HeatTransfer | heatTransfer | ||
| Medium.Density | rho | medium.d | |
| SI.Pressure | dp_pump | port_b.p - port_a.p | Pressure change |
| SI.Position | head | dp_pump/(rho*g) | Pump head |
| SI.MassFlowRate | m_flow | port_a.m_flow | Mass flow rate (total) |
| SI.MassFlowRate | m_flow_single | m_flow/nParallel | Mass flow rate (single pump) |
| SI.VolumeFlowRate | V_flow | Volume flow rate (total) | |
| SI.VolumeFlowRate | V_flow_single | Volume flow rate (single pump) | |
| NonSI.AngularVelocity_rpm | N | Shaft rotational speed | |
| SI.Power | W_single | Power Consumption (single pump) | |
| SI.Power | W_total | W_single*nParallel | Power Consumption (total) |
| Real | eta | Global Efficiency | |
| Real | s | Curvilinear abscissa for the flow curve in parametric form (either mass flow rate or head) | |
| Monitoring | monitoring | Monitoring model |
Contents
| Name | Description |
|---|---|
| Head vs. V_flow characteristic at nominal speed and density | |
| Power consumption vs. V_flow at nominal speed and density | |
| Monitoring |
Revisions
- 8 Jan 2013
by Rüdiger Franke:
moved NPSH diagnostics from PartialPump to replaceable sub-model PumpMonitoring.PumpMonitoringNPSH (see ticket #646) - Dec 2008
by Rüdiger Franke:
- Replaced simplified mass and energy balances with rigorous formulation (base class PartialLumpedVolume)
- Introduced optional HeatTransfer model defining Qb_flow
- Enabled events when the checkValve is operating to support the opening of a discrete valve before port_a
- 31 Oct 2005
by Francesco Casella:
Model added to the Fluid library