recordGeneric

Generic data record for movers

Extends from Modelica.Icons.Record (Icon for records).

Information

Record containing parameters for pumps or fans.

Typical use

This record may be used to assign for example fan performance data using declaration such as

  IBPSA.Fluid.Movers.SpeedControlled_y fan(
    redeclare package Medium = Medium,
      per(pressure(V_flow={0,m_flow_nominal,2*m_flow_nominal}/1.2,
                   dp={2*dp_nominal,dp_nominal,0}))) "Fan";

This data record can be used with IBPSA.Fluid.Movers.SpeedControlled_Nrpm, IBPSA.Fluid.Movers.SpeedControlled_y, IBPSA.Fluid.Movers.FlowControlled_dp, IBPSA.Fluid.Movers.FlowControlled_m_flow.

An example that uses manufacturer data can be found in IBPSA.Fluid.Movers.Validation.Pump_Nrpm_stratos.

Declaration of the peak condition

The variable peak is intentionally declared in a way that each of its element is declared individually. If it was delcared the same way as does peak_internal, Modelica would prevent the modification of its specific elements with the following error message:
Record has a value, and attempt to modify specific elements.
The element modification of e.g. V_flow will be ignored.
The other variable peak_internal uses a function call to compute its default values. By passing them to peak one by one, the model can both have default values and also allow the user to override them easily. See Modelica Specification issue #791.

Parameters in RPM

The parameters speed_rpm_nominal, constantSpeed_rpm and speeds_rpm are used to assign the non-dimensional speeds

  parameter Real constantSpeed(final min=0, final unit="1") = constantSpeed_rpm/speed_rpm_nominal;
  parameter Real[:] speeds(each final min = 0, each final unit="1") = speeds_rpm/speed_rpm_nominal;

In addition, speed_rpm_nominal is used in IBPSA.Fluid.Movers.SpeedControlled_Nrpm to normalize the control input signal. Otherwise, these speed parameters in RPM are not used in the models.

Parameters

TypeNameDefaultDescription
Modelica.Units.SI.VolumeFlowRateV_flow_maxif havePressureCurve then (pressure.V_flow[end] - (pressure.V_flow[end] - pressure.V_flow[end - 1])/(pressure.dp[end] - pressure.dp[end - 1])*pressure.dp[end]) else 0Volume flow rate on the curve when pressure rise is zero
Modelica.Units.SI.PressureDifferencedpMaxif havePressureCurve then (pressure.dp[1] - (pressure.dp[1] - pressure.dp[2])/(pressure.V_flow[1] - pressure.V_flow[2])*pressure.V_flow[1]) else 0Pressure rise on the curve when flow rate is zero
IBPSA.Fluid.Movers.BaseClasses.Euler.peakpeak_internalIBPSA.Fluid.Movers.BaseClasses.Euler.getPeak(pressure = pressure, power = power)Internal peak variable
IBPSA.Fluid.Movers.BaseClasses.Characteristics.efficiencyParameters_yMotmotorEfficiency_yMot_genericIBPSA.Fluid.Movers.BaseClasses.Characteristics.motorEfficiencyCurve(P_nominal = WMot_nominal, eta_max = etaMot_max)Motor efficiency vs. part load ratio
BooleanhaveWMot_nominalWMot_nominal > Modelica.Constants.eps= true, if the rated motor power is provided
BooleanhavePressureCurvesum(pressure.V_flow) > Modelica.Constants.eps and sum(pressure.dp) > Modelica.Constants.eps= true, if default record values are being used
Pressure curve
IBPSA.Fluid.Movers.BaseClasses.Characteristics.flowParameterspressureVolume flow rate vs. total pressure rise
Power computation
IBPSA.Fluid.Movers.BaseClasses.Types.HydraulicEfficiencyMethodetaHydMetIBPSA.Fluid.Movers.BaseClasses.Types.HydraulicEfficiencyMethod.EulerNumberEfficiency computation method for the hydraulic efficiency etaHyd
IBPSA.Fluid.Movers.BaseClasses.Types.MotorEfficiencyMethodetaMotMetif powerOrEfficiencyIsHydraulic then IBPSA.Fluid.Movers.BaseClasses.Types.MotorEfficiencyMethod.GenericCurve else IBPSA.Fluid.Movers.BaseClasses.Types.MotorEfficiencyMethod.NotProvidedEfficiency computation method for the motor efficiency etaMot
BooleanpowerOrEfficiencyIsHydraulictrue=true if hydraulic power or efficiency is provided, instead of total
IBPSA.Fluid.Movers.BaseClasses.Characteristics.efficiencyParametersefficiencyTotal or hydraulic efficiency vs. volumetric flow rate
IBPSA.Fluid.Movers.BaseClasses.Characteristics.efficiencyParametersmotorEfficiencyMotor efficiency vs. volumetric flow rate
IBPSA.Fluid.Movers.BaseClasses.Characteristics.efficiencyParameters_yMotmotorEfficiency_yMotMotor efficiency vs. part load ratio yMot, where yMot = WHyd/WMot_nominal
IBPSA.Fluid.Movers.BaseClasses.Characteristics.powerParameterspowerPower (either consumed or hydraulic) vs. volumetric flow rate
IBPSA.Fluid.Movers.BaseClasses.Euler.peakpeakVolume flow rate, pressure rise, and efficiency (either total or hydraulic) at peak condition
Modelica.Units.SI.PowerWMot_nominalif max(power.P) > Modelica.Constants.eps then if powerOrEfficiencyIsHydraulic then max(power.P)*1.2 else max(power.P) else if havePressureCurve then V_flow_max/2*dpMax/2/0.7*1.2 else 0Rated motor power
Modelica.Units.SI.EfficiencyetaMot_max0.7Maximum motor efficiency
Motor heat rejection
BooleanmotorCooledByFluidtrueIf true, then motor heat is added to fluid stream
Normalized speeds (used in model, default values assigned from speeds in rpm)
Realspeed_nominal1Nominal rotational speed for flow characteristic
RealconstantSpeedconstantSpeed_rpm/speed_rpm_nominalNormalized speed set point, used if inputType = IBPSA.Fluid.Types.InputType.Constant
Realspeedsspeeds_rpm/speed_rpm_nominalVector of normalized speed set points, used if inputType = IBPSA.Fluid.Types.InputType.Stages
Speeds in RPM
Modelica.Units.NonSI.AngularVelocity_rpmspeed_rpm_nominal1500Nominal rotational speed for flow characteristic
Modelica.Units.NonSI.AngularVelocity_rpmconstantSpeed_rpmspeed_rpm_nominalSpeed set point, used if inputType = IBPSA.Fluid.Types.InputType.Constant
Modelica.Units.NonSI.AngularVelocity_rpmspeeds_rpm{speed_rpm_nominal}Vector of speed set points, used if inputType = IBPSA.Fluid.Types.InputType.Stages

Revisions

  • March 1, 2022, by Hongxiang Fu:
    These are for #2668.
  • February 19, 2016, by Filip Jorissen:
    Refactored model such that SpeedControlled_Nrpm, SpeedControlled_y and FlowControlled are integrated into one record. This is for #417.
  • February 17, 2016, by Michael Wetter:
    Changed parameter N_nominal to speed_rpm_nominal as it is the same quantity as speeds_rmp. This is for #396.
  • January 19, 2016, by Filip Jorissen:
    Added parameter speeds_rpm. This is for #396.
  • February 13, 2015, by Michael Wetter:
    Updated documentation.
  • January 6, 2015, by Michael Wetter:
    Revised record for OpenModelica.
  • November 22, 2014 by Michael Wetter:
    First implementation.