Modelica.Fluid.Machines.BaseClasses.PumpCharacteristics

Functions for pump characteristics

Package Content

NameDescription
Modelica.Fluid.Machines.BaseClasses.PumpCharacteristics.baseFlow baseFlow Base class for pump flow characteristics
Modelica.Fluid.Machines.BaseClasses.PumpCharacteristics.basePower basePower Base class for pump power consumption characteristics
Modelica.Fluid.Machines.BaseClasses.PumpCharacteristics.baseEfficiency baseEfficiency Base class for efficiency characteristics
Modelica.Fluid.Machines.BaseClasses.PumpCharacteristics.linearFlow linearFlow Linear flow characteristic
Modelica.Fluid.Machines.BaseClasses.PumpCharacteristics.quadraticFlow quadraticFlow Quadratic flow characteristic
Modelica.Fluid.Machines.BaseClasses.PumpCharacteristics.polynomialFlow polynomialFlow Polynomial flow characteristic
Modelica.Fluid.Machines.BaseClasses.PumpCharacteristics.constantEfficiency constantEfficiency Constant efficiency characteristic
Modelica.Fluid.Machines.BaseClasses.PumpCharacteristics.linearPower linearPower Linear power consumption characteristic
Modelica.Fluid.Machines.BaseClasses.PumpCharacteristics.quadraticPower quadraticPower Quadratic power consumption characteristic


Modelica.Fluid.Machines.BaseClasses.PumpCharacteristics.baseFlow Modelica.Fluid.Machines.BaseClasses.PumpCharacteristics.baseFlow

Base class for pump flow characteristics

Information

Extends from Modelica.Icons.Function (Icon for functions).

Inputs

TypeNameDefaultDescription
VolumeFlowRateV_flow Volumetric flow rate [m3/s]

Outputs

TypeNameDescription
HeightheadPump head [m]

Modelica definition

partial function baseFlow "Base class for pump flow characteristics"
  extends Modelica.Icons.Function;
  input SI.VolumeFlowRate V_flow "Volumetric flow rate";
  output SI.Height head "Pump head";
end baseFlow;

Modelica.Fluid.Machines.BaseClasses.PumpCharacteristics.basePower Modelica.Fluid.Machines.BaseClasses.PumpCharacteristics.basePower

Base class for pump power consumption characteristics

Information

Extends from Modelica.Icons.Function (Icon for functions).

Inputs

TypeNameDefaultDescription
VolumeFlowRateV_flow Volumetric flow rate [m3/s]

Outputs

TypeNameDescription
PowerconsumptionPower consumption [W]

Modelica definition

partial function basePower 
  "Base class for pump power consumption characteristics"
  extends Modelica.Icons.Function;
  input SI.VolumeFlowRate V_flow "Volumetric flow rate";
  output SI.Power consumption "Power consumption";
end basePower;

Modelica.Fluid.Machines.BaseClasses.PumpCharacteristics.baseEfficiency Modelica.Fluid.Machines.BaseClasses.PumpCharacteristics.baseEfficiency

Base class for efficiency characteristics

Information

Extends from Modelica.Icons.Function (Icon for functions).

Inputs

TypeNameDefaultDescription
VolumeFlowRateV_flow Volumetric flow rate [m3/s]

Outputs

TypeNameDescription
RealetaEfficiency

Modelica definition

partial function baseEfficiency 
  "Base class for efficiency characteristics"
  extends Modelica.Icons.Function;
  input SI.VolumeFlowRate V_flow "Volumetric flow rate";
  output Real eta "Efficiency";
end baseEfficiency;

Modelica.Fluid.Machines.BaseClasses.PumpCharacteristics.linearFlow Modelica.Fluid.Machines.BaseClasses.PumpCharacteristics.linearFlow

Linear flow characteristic

Information

Extends from baseFlow (Base class for pump flow characteristics).

Inputs

TypeNameDefaultDescription
VolumeFlowRateV_flow Volumetric flow rate [m3/s]
VolumeFlowRateV_flow_nominal[2] Volume flow rate for two operating points (single pump) [m3/s]
Heighthead_nominal[2] Pump head for two operating points [m]

Outputs

TypeNameDescription
HeightheadPump head [m]

Modelica definition

function linearFlow "Linear flow characteristic"
  extends baseFlow;
  input SI.VolumeFlowRate V_flow_nominal[2] 
    "Volume flow rate for two operating points (single pump)";
  input SI.Height head_nominal[2] "Pump head for two operating points";
  /* Linear system to determine the coefficients:
  head_nominal[1] = c[1] + V_flow_nominal[1]*c[2];
  head_nominal[2] = c[1] + V_flow_nominal[2]*c[2];
  */
protected 
  Real c[2] = Modelica.Math.Matrices.solve([ones(2),V_flow_nominal],head_nominal) 
    "Coefficients of linear head curve";
algorithm 
  // Flow equation: head = q*c[1] + c[2];
  head := c[1] + V_flow*c[2];
end linearFlow;

Modelica.Fluid.Machines.BaseClasses.PumpCharacteristics.quadraticFlow Modelica.Fluid.Machines.BaseClasses.PumpCharacteristics.quadraticFlow

Quadratic flow characteristic

Information

Extends from baseFlow (Base class for pump flow characteristics).

Inputs

TypeNameDefaultDescription
VolumeFlowRateV_flow Volumetric flow rate [m3/s]
VolumeFlowRateV_flow_nominal[3] Volume flow rate for three operating points (single pump) [m3/s]
Heighthead_nominal[3] Pump head for three operating points [m]

Outputs

TypeNameDescription
HeightheadPump head [m]

Modelica definition

function quadraticFlow "Quadratic flow characteristic"
  extends baseFlow;
  input SI.VolumeFlowRate V_flow_nominal[3] 
    "Volume flow rate for three operating points (single pump)";
  input SI.Height head_nominal[3] "Pump head for three operating points";
protected 
  Real V_flow_nominal2[3] = {V_flow_nominal[1]^2,V_flow_nominal[2]^2, V_flow_nominal[3]^2} 
    "Squared nominal flow rates";
  /* Linear system to determine the coefficients:
  head_nominal[1] = c[1] + V_flow_nominal[1]*c[2] + V_flow_nominal[1]^2*c[3];
  head_nominal[2] = c[1] + V_flow_nominal[2]*c[2] + V_flow_nominal[2]^2*c[3];
  head_nominal[3] = c[1] + V_flow_nominal[3]*c[2] + V_flow_nominal[3]^2*c[3];
  */
  Real c[3] = Modelica.Math.Matrices.solve([ones(3), V_flow_nominal, V_flow_nominal2],head_nominal) 
    "Coefficients of quadratic head curve";
algorithm 
  // Flow equation: head  = c[1] + V_flow*c[2] + V_flow^2*c[3];
  head := c[1] + V_flow*c[2] + V_flow^2*c[3];
end quadraticFlow;

Modelica.Fluid.Machines.BaseClasses.PumpCharacteristics.polynomialFlow Modelica.Fluid.Machines.BaseClasses.PumpCharacteristics.polynomialFlow

Polynomial flow characteristic

Information

Extends from baseFlow (Base class for pump flow characteristics).

Inputs

TypeNameDefaultDescription
VolumeFlowRateV_flow Volumetric flow rate [m3/s]
VolumeFlowRateV_flow_nominal[:] Volume flow rate for N operating points (single pump) [m3/s]
Heighthead_nominal[:] Pump head for N operating points [m]

Outputs

TypeNameDescription
HeightheadPump head [m]

Modelica definition

function polynomialFlow "Polynomial flow characteristic"
  extends baseFlow;
  input SI.VolumeFlowRate V_flow_nominal[:] 
    "Volume flow rate for N operating points (single pump)";
  input SI.Height head_nominal[:] "Pump head for N operating points";
protected 
  Integer N = size(V_flow_nominal,1) "Number of nominal operating points";
  Real V_flow_nominal_pow[N,N] = {{V_flow_nominal[i]^(j-1) for j in 1:N} for i in 1:N} 
    "Rows: different operating points; columns: increasing powers";
  /* Linear system to determine the coefficients (example N=3):
  head_nominal[1] = c[1] + V_flow_nominal[1]*c[2] + V_flow_nominal[1]^2*c[3];
  head_nominal[2] = c[1] + V_flow_nominal[2]*c[2] + V_flow_nominal[2]^2*c[3];
  head_nominal[3] = c[1] + V_flow_nominal[3]*c[2] + V_flow_nominal[3]^2*c[3];
  */
  Real c[N] = Modelica.Math.Matrices.solve(V_flow_nominal_pow,head_nominal) 
    "Coefficients of polynomial head curve";
algorithm 
  // Flow equation (example N=3): head  = c[1] + V_flow*c[2] + V_flow^2*c[3];
  // Note: the implementation is numerically efficient only for low values of Na
  head := sum(V_flow^(i-1)*c[i] for i in 1:N);
end polynomialFlow;

Modelica.Fluid.Machines.BaseClasses.PumpCharacteristics.constantEfficiency Modelica.Fluid.Machines.BaseClasses.PumpCharacteristics.constantEfficiency

Constant efficiency characteristic

Information

Extends from baseEfficiency (Base class for efficiency characteristics).

Inputs

TypeNameDefaultDescription
VolumeFlowRateV_flow Volumetric flow rate [m3/s]
Realeta_nominal Nominal efficiency

Outputs

TypeNameDescription
RealetaEfficiency

Modelica definition

function constantEfficiency "Constant efficiency characteristic"
   extends baseEfficiency;
   input Real eta_nominal "Nominal efficiency";
algorithm 
  eta := eta_nominal;
end constantEfficiency;

Modelica.Fluid.Machines.BaseClasses.PumpCharacteristics.linearPower Modelica.Fluid.Machines.BaseClasses.PumpCharacteristics.linearPower

Linear power consumption characteristic

Information

Extends from basePower (Base class for pump power consumption characteristics).

Inputs

TypeNameDefaultDescription
VolumeFlowRateV_flow Volumetric flow rate [m3/s]
VolumeFlowRateV_flow_nominal[2] Volume flow rate for two operating points (single pump) [m3/s]
PowerW_nominal[2] Power consumption for two operating points [W]

Outputs

TypeNameDescription
PowerconsumptionPower consumption [W]

Modelica definition

function linearPower "Linear power consumption characteristic"
  extends basePower;
  input SI.VolumeFlowRate V_flow_nominal[2] 
    "Volume flow rate for two operating points (single pump)";
  input SI.Power W_nominal[2] "Power consumption for two operating points";
  /* Linear system to determine the coefficients:
  W_nominal[1] = c[1] + V_flow_nominal[1]*c[2];
  W_nominal[2] = c[1] + V_flow_nominal[2]*c[2];
  */
protected 
  Real c[2] = Modelica.Math.Matrices.solve([ones(3),V_flow_nominal],W_nominal) 
    "Coefficients of linear power consumption curve";
algorithm 
  consumption := c[1] + V_flow*c[2];
end linearPower;

Modelica.Fluid.Machines.BaseClasses.PumpCharacteristics.quadraticPower Modelica.Fluid.Machines.BaseClasses.PumpCharacteristics.quadraticPower

Quadratic power consumption characteristic

Information

Extends from basePower (Base class for pump power consumption characteristics).

Inputs

TypeNameDefaultDescription
VolumeFlowRateV_flow Volumetric flow rate [m3/s]
VolumeFlowRateV_flow_nominal[3] Volume flow rate for three operating points (single pump) [m3/s]
PowerW_nominal[3] Power consumption for three operating points [W]

Outputs

TypeNameDescription
PowerconsumptionPower consumption [W]

Modelica definition

function quadraticPower "Quadratic power consumption characteristic"
  extends basePower;
  input SI.VolumeFlowRate V_flow_nominal[3] 
    "Volume flow rate for three operating points (single pump)";
  input SI.Power W_nominal[3] "Power consumption for three operating points";
protected 
  Real V_flow_nominal2[3] = {V_flow_nominal[1]^2,V_flow_nominal[2]^2, V_flow_nominal[3]^2} 
    "Squared nominal flow rates";
  /* Linear system to determine the coefficients:
  W_nominal[1] = c[1] + V_flow_nominal[1]*c[2] + V_flow_nominal[1]^2*c[3];
  W_nominal[2] = c[1] + V_flow_nominal[2]*c[2] + V_flow_nominal[2]^2*c[3];
  W_nominal[3] = c[1] + V_flow_nominal[3]*c[2] + V_flow_nominal[3]^2*c[3];
  */
  Real c[3] = Modelica.Math.Matrices.solve([ones(3),V_flow_nominal,V_flow_nominal2],W_nominal) 
    "Coefficients of quadratic power consumption curve";
algorithm 
  consumption := c[1] + V_flow*c[2] + V_flow^2*c[3];
end quadraticPower;

Automatically generated Fri Nov 12 16:31:16 2010.