modelPerformanceCurvenew

Cubic spline of a characteristic curve of head vs. volume flow rate

Extends from PartialFlowChar2 (Base class for pump flow characteristics. Extending class solves for head.).

Information

Status: in-progress / unused. Not referenced from any model or example as of this writing — the only example named like a test for it (QuadraticCurve_Testnew) actually redeclares the regular PerformanceCurve rather than this variant.

Intent. This variant rewrites the head characteristic in the inverted form V_flow = affinityLaw_flow * f(head/affinityLaw_head, head_curve, V_flow_curve, N/N_nominal) — treating head as an input and V_flow as the unknown, and applying the pump affinity laws on both axes (affinityLaw_flow = (N/N_nom)(d/d_nom), affinityLaw_head = (N/N_nom)²(d/d_nom)²) via PartialFlowChar2. This matches the formulation already used by Flow.PerformanceCurve, and is more correct than the original PartialFlowChar form which only scales the head output by (N/N_nom)² and does not rescale the flow axis with speed.

What is unfinished. No example exercises this variant, no upstream pump model uses it, and the partial base PartialFlowChar2 duplicates members from PartialCharacteristic rather than extending it — so any future work would also want to consolidate those base classes.

Parameters

TypeNameDefaultDescription
SI.Heighthead_start (from PartialFlowChar2)
SI.Height[:]head_curve{2*head_nominal, head_nominal, 0}Pump head nominal operating points
SI.VolumeFlowRate[size(head_curve, 1)]V_flow_curve{0, V_flow_nominal, 1.5*V_flow_nominal}Volume flow rate nominal operating points (single pump)
Real[size(head_curve, 1)]d_curveTRANSFORM.Math.splineDerivatives(x = head_curve, y = V_flow_curve, ensureMonotonicity = TRANSFORM.Math.isMonotonic(x = V_flow_curve, strict = false))Spline tangents at the support points (precomputed once for analytic derivative)
Internal Interface › Nominal Operating Parameters
Modelica.Units.NonSI.AngularVelocity_rpmN_nominal (from PartialFlowChar2)Pump speed
SI.Lengthdiameter_nominal (from PartialFlowChar2)Impeller Diameter
SI.VolumeFlowRateV_flow_nominal (from PartialFlowChar2)Nominal volumetric flow rate
SI.Heighthead_nominal (from PartialFlowChar2)Nominal head
Internal Interface › Initialization
SI.VolumeFlowRateV_flow_start (from PartialFlowChar2)
Internal Interface › Inputs
BooleancheckValve (from PartialFlowChar2)=true then no reverse flow

Components

TypeNameDefaultDescription
Medium.ThermodynamicStatestate (from PartialFlowChar2)Thermodynamic state
SI.VolumeFlowRateV_flow (from PartialFlowChar2)Flow rate
Modelica.Units.NonSI.AngularVelocity_rpmN (from PartialFlowChar2)Pump speed
SI.Lengthdiameter (from PartialFlowChar2)Impeller Diameter
SI.Heighthead (from PartialFlowChar2)Pump pressure head
Units.NonDimaffinityLaw_flow (from PartialFlowChar2)(N/N_nominal)*(diameter/diameter_nominal)Affinity law for scaling
Units.NonDimaffinityLaw_head (from PartialFlowChar2)(N/N_nominal)^2*(diameter/diameter_nominal)^2Affinity law for scaling
RealsCurvilinear abscissa for the flow curve in parametric form (either volume flow rate or head)