modelPump
Container class for circulating pumps
Extends from Buildings.Fluid.Interfaces.LumpedVolumeDeclarations (Declarations for lumped volumes), Buildings.Fluid.Interfaces.PartialTwoPortInterface (Partial model with two ports and declaration of quantities that are used by many models).
Information
This is a container class for pump models from Buildings.Fluid.Movers.
Two parameters allow configuring the model.
-
The parameter
typenables selecting the type of pump based on the enumeration Buildings.Fluid.HydronicConfigurations.Types.Pump. If "No pump" is selected the model resolves into a simple fluid direct pass-through. -
The parameter
typModenables selecting the type of pump model based on the enumeration Buildings.Fluid.HydronicConfigurations.Types.PumpModel.
The model takes the following input variables that are conditional
to the parameter typ.
| Variable | Type (unit) | Condition | Description |
|---|---|---|---|
y1 |
Boolean | Only available if typ<>None |
Start signal |
y |
Real (-) | Only available if typ==VariableInput |
Analog control signal. Whatever the type of pump model (specified with typMod) the container class takes a non-dimensional input between 0 and 1. |
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Fluid.Movers.Data.Generic | per | ||
| Boolean | addPowerToMedium | true | Set to false to avoid any power (=heat and flow work) being added to medium (may give simpler equations) |
| Dynamics › Conservation equations | |||
| Modelica.Fluid.Types.Dynamics | energyDynamics (from LumpedVolumeDeclarations) | Modelica.Fluid.Types.Dynamics.DynamicFreeInitial | Type of energy balance: dynamic (3 initialization options) or steady state |
| Modelica.Fluid.Types.Dynamics | substanceDynamics (from LumpedVolumeDeclarations) | energyDynamics | Type of independent mass fraction balance: dynamic (3 initialization options) or steady state |
| Modelica.Fluid.Types.Dynamics | traceDynamics (from LumpedVolumeDeclarations) | energyDynamics | Type of trace substance balance: dynamic (3 initialization options) or steady state |
| Advanced › Dynamics | |||
| Modelica.Fluid.Types.Dynamics | massDynamics (from LumpedVolumeDeclarations) | energyDynamics | Type of mass balance: dynamic (3 initialization options) or steady state, must be steady state if energyDynamics is steady state |
| Initialization | |||
| Medium.AbsolutePressure | p_start (from LumpedVolumeDeclarations) | Medium.p_default | Start value of pressure |
| Medium.Temperature | T_start (from LumpedVolumeDeclarations) | Medium.T_default | Start value of temperature |
| Medium.MassFraction[Medium.nX] | X_start (from LumpedVolumeDeclarations) | Medium.X_default | Start value of mass fractions m_i/m |
| Medium.ExtraProperty[Medium.nC] | C_start (from LumpedVolumeDeclarations) | fill(0, Medium.nC) | Start value of trace substances |
| Medium.ExtraProperty[Medium.nC] | C_nominal (from LumpedVolumeDeclarations) | fill(1E-2, Medium.nC) | Nominal value of trace substances. (Set to typical order of magnitude.) |
| Dynamics | |||
| Real | mSenFac (from LumpedVolumeDeclarations) | 1 | Factor for scaling the sensible thermal mass of the volume |
| Assumptions | |||
| Boolean | allowFlowReversal (from PartialTwoPort) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal |
| Nominal condition | |||
| Modelica.Units.SI.MassFlowRate | m_flow_nominal (from PartialTwoPortInterface) | Nominal mass flow rate | |
| Modelica.Units.SI.PressureDifference | dp_nominal | Pump head at design conditions | |
| Advanced | |||
| Modelica.Units.SI.MassFlowRate | m_flow_small (from PartialTwoPortInterface) | 1E-4*abs(m_flow_nominal) | Small mass flow rate for regularization of zero flow |
| Advanced › Diagnostics | |||
| Boolean | show_T (from PartialTwoPortInterface) | false | = true, if actual temperature at port is computed |
| Configuration | |||
| Buildings.Fluid.HydronicConfigurations.Types.Pump | typ | Buildings.Fluid.HydronicConfigurations.Types.Pump.VariableInput | Type of secondary pump |
| Buildings.Fluid.HydronicConfigurations.Types.PumpModel | typMod | Buildings.Fluid.HydronicConfigurations.Types.PumpModel.Speed | Type of pump model |
| Control | |||
| Buildings.Fluid.Types.InputType | inputType | Buildings.Fluid.Types.InputType.Continuous | Control input type |
| Dynamics › Motor speed | |||
| Boolean | use_riseTime | true | Set to true to continuously change motor speed |
| Modelica.Units.SI.Time | riseTime | 30 | Time needed to change motor speed between zero and full speed |
| Modelica.Blocks.Types.Init | init | Modelica.Blocks.Types.Init.InitialOutput | Type of initialization (no init/steady state/initial state/initial output) |
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) | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput | y | Analog control signal | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput | y1 | Start signal | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput | y_actual | Actual pump input value that is used for computations | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput | P | Electrical power consumed | |
| Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a | heatPort | Heat dissipation to environment |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Units.SI.MassFlowRate | m_flow (from PartialTwoPortInterface) | port_a.m_flow | Mass flow rate from port_a to port_b (m_flow > 0 is design flow direction) |
| Modelica.Units.SI.PressureDifference | dp (from PartialTwoPortInterface) | port_a.p - port_b.p | Pressure difference between port_a and port_b |
| Medium.ThermodynamicState | sta_a (from PartialTwoPortInterface) | if allowFlowReversal then Medium.setState_phX(port_a.p, noEvent(actualStream(port_a.h_outflow)), noEvent(actualStream(port_a.Xi_outflow))) else Medium.setState_phX(port_a.p, noEvent(inStream(port_a.h_outflow)), noEvent(inStream(port_a.Xi_outflow))) | Medium properties in port_a |
| Medium.ThermodynamicState | sta_b (from PartialTwoPortInterface) | if allowFlowReversal then Medium.setState_phX(port_b.p, noEvent(actualStream(port_b.h_outflow)), noEvent(actualStream(port_b.Xi_outflow))) else Medium.setState_phX(port_b.p, noEvent(port_b.h_outflow), noEvent(port_b.Xi_outflow)) | Medium properties in port_b |
| Modelica.Units.SI.VolumeFlowRate | VMachine_flow | V_flow.V_flow | Volume flow rate |
| Modelica.Units.SI.PressureDifference | dpMachine | port_b.p - port_a.p | Pressure rise |
| Movers.FlowControlled_dp | pumDp | Pump with ideally controlled head as input signal | |
| Movers.SpeedControlled_y | pumSpe | Pump with ideally controlled normalized speed as input | |
| Movers.FlowControlled_m_flow | pumFlo | Pump with ideally controlled mass flow rate as input | |
| Sensors.VolumeFlowRate | V_flow | Volume flow rate | |
| Buildings.Controls.OBC.CDL.Reals.MultiplyByParameter | scaHea | Scale control input to design head | |
| Buildings.Controls.OBC.CDL.Reals.MultiplyByParameter | scaSpe | Scale control input to design speed | |
| Buildings.Controls.OBC.CDL.Reals.MultiplyByParameter | scaFlo | Scale control input to design flow rate | |
| Buildings.Controls.OBC.CDL.Reals.Sources.Constant | zer | Zero | |
| Buildings.Controls.OBC.CDL.Reals.Switch | swi | Switch on/off | |
| Buildings.Controls.OBC.CDL.Reals.Sources.Constant | One | one | |
| FixedResistances.LosslessPipe | noPum | Direct fluid pass-through in case of no pump |
Revisions
-
April 4, 2023, by Hongxiang Fu:
Deleted the mover withNrpmsignal. This is for IBPSA, #1704. -
June 30, 2022, by Antoine Gautier:
First implementation.