modelPerformanceCurvenew
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
| Type | Name | Default | Description |
|---|---|---|---|
| SI.Height | head_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_curve | TRANSFORM.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_rpm | N_nominal (from PartialFlowChar2) | Pump speed | |
| SI.Length | diameter_nominal (from PartialFlowChar2) | Impeller Diameter | |
| SI.VolumeFlowRate | V_flow_nominal (from PartialFlowChar2) | Nominal volumetric flow rate | |
| SI.Height | head_nominal (from PartialFlowChar2) | Nominal head | |
| Internal Interface › Initialization | |||
| SI.VolumeFlowRate | V_flow_start (from PartialFlowChar2) | ||
| Internal Interface › Inputs | |||
| Boolean | checkValve (from PartialFlowChar2) | =true then no reverse flow | |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Medium.ThermodynamicState | state (from PartialFlowChar2) | Thermodynamic state | |
| SI.VolumeFlowRate | V_flow (from PartialFlowChar2) | Flow rate | |
| Modelica.Units.NonSI.AngularVelocity_rpm | N (from PartialFlowChar2) | Pump speed | |
| SI.Length | diameter (from PartialFlowChar2) | Impeller Diameter | |
| SI.Height | head (from PartialFlowChar2) | Pump pressure head | |
| Units.NonDim | affinityLaw_flow (from PartialFlowChar2) | (N/N_nominal)*(diameter/diameter_nominal) | Affinity law for scaling |
| Units.NonDim | affinityLaw_head (from PartialFlowChar2) | (N/N_nominal)^2*(diameter/diameter_nominal)^2 | Affinity law for scaling |
| Real | s | Curvilinear abscissa for the flow curve in parametric form (either volume flow rate or head) |