Buildings.Applications.BaseClasses.Equipment

Equipment models for systems in applications package

Information

Package with equipment models for Buildings.Applications.

Extends from Modelica.Icons.VariantsPackage (Icon for package containing variants).

Package Content

Name Description
Buildings.Applications.BaseClasses.Equipment.ElectricChillerParallel ElectricChillerParallel Multiple identical electric chillers
Buildings.Applications.BaseClasses.Equipment.FlowMachine_m FlowMachine_m Identical m_flow controlled pumps
Buildings.Applications.BaseClasses.Equipment.FlowMachine_y FlowMachine_y Identical speed controlled flow machines
Buildings.Applications.BaseClasses.Equipment.Validation Validation Collection of validation models

Buildings.Applications.BaseClasses.Equipment.ElectricChillerParallel Buildings.Applications.BaseClasses.Equipment.ElectricChillerParallel

Multiple identical electric chillers

Buildings.Applications.BaseClasses.Equipment.ElectricChillerParallel

Information

This model implements a chiller parallel with num identical chillers. For the chiller model please see Buildings.Fluid.Chillers.ElectricEIR.

Note that although the chillers have identical nominal conditions, they can have different performance curves specified in performance data per.

Extends from Buildings.Applications.DataCenters.ChillerCooled.Equipment.BaseClasses.PartialParallelElectricEIR (Partial model for electric chiller parallel).

Parameters

TypeNameDefaultDescription
replaceable package Medium1PartialMediumMedium 1 in the component
replaceable package Medium2PartialMediumMedium 2 in the component
Integernum2Number of equipment
Genericper[num]redeclare parameter Building...Performance data
Nominal condition
MassFlowRatem1_flow_nominal Nominal mass flow rate [kg/s]
MassFlowRatem2_flow_nominal Nominal mass flow rate [kg/s]
PressureDifferencedp1_nominal Pressure difference [Pa]
PressureDifferencedp2_nominal Pressure difference [Pa]
Two-way valve
CvTypesCvDataBuildings.Fluid.Types.CvType...Selection of flow coefficient
RealKv[numVal] Kv (metric) flow coefficient [m3/h/(bar)^(1/2)]
RealCv[numVal] Cv (US) flow coefficient [USG/min/(psi)^(1/2)]
AreaAv[numVal] Av (metric) flow coefficient [m2]
PressureDifferencedpValve_nominal[numVal]fill(6000, numVal)Nominal pressure drop of fully open valve, used if CvData=Buildings.Fluid.Types.CvTypes.OpPoint [Pa]
Reall[2]{0.0001,0.0001}Valve leakage, l=Kv(y=0)/Kv(y=1)
Assumptions
BooleanallowFlowReversal1true= false to simplify equations, assuming, but not enforcing, no flow reversal for medium 1
BooleanallowFlowReversal2true= false to simplify equations, assuming, but not enforcing, no flow reversal for medium 2
Advanced
MassFlowRatem1_flow_small1E-4*abs(m1_flow_nominal)Small mass flow rate for regularization of zero flow [kg/s]
MassFlowRatem2_flow_small1E-4*abs(m2_flow_nominal)Small mass flow rate for regularization of zero flow [kg/s]
Diagnostics
Booleanshow_Tfalse= true, if actual temperature at port is computed
Two-way valve
DensityrhoStd[numVal]{Medium1.density_pTX(101325,...Inlet density for which valve coefficients are defined [kg/m3]
Flow resistance
Medium 1
Booleanfrom_dp1false= true, use m_flow = f(dp) else dp = f(m_flow)
BooleanlinearizeFlowResistance1false= true, use linear relation between m_flow and dp for any flow rate
RealdeltaM10.1Fraction of nominal flow rate where flow transitions to laminar
Medium 2
Booleanfrom_dp2false= true, use m_flow = f(dp) else dp = f(m_flow)
BooleanlinearizeFlowResistance2false= true, use linear relation between m_flow and dp for any flow rate
RealdeltaM20.1Fraction of nominal flow rate where flow transitions to laminar
Dynamics
Filtered opening
Booleanuse_inputFilterfalse= true, if opening is filtered with a 2nd order CriticalDamping filter
TimeriseTimeValve30Rise time of the filter (time to reach 99.6 % of an opening step) [s]
InitinitValveModelica.Blocks.Types.Init.I...Type of initialization (no init/steady state/initial state/initial output)
RealyValve_start[numFil]fill(1, numFil)Initial value of output:0-closed, 1-fully opened
Nominal condition
Timetau130Time constant at nominal flow in chillers [s]
Timetau230Time constant at nominal flow in chillers [s]
Conservation equations
DynamicsenergyDynamicsModelica.Fluid.Types.Dynamic...Type of energy balance: dynamic (3 initialization options) or steady state
Initialization
Medium 1
AbsolutePressurep1_startMedium1.p_defaultStart value of pressure [Pa]
TemperatureT1_startMedium1.T_defaultStart value of temperature [K]
MassFractionX1_start[Medium1.nX]Medium1.X_defaultStart value of mass fractions m_i/m [kg/kg]
ExtraPropertyC1_start[Medium1.nC]fill(0, Medium1.nC)Start value of trace substances
ExtraPropertyC1_nominal[Medium1.nC]fill(1E-2, Medium1.nC)Nominal value of trace substances. (Set to typical order of magnitude.)
Medium 2
AbsolutePressurep2_startMedium2.p_defaultStart value of pressure [Pa]
TemperatureT2_startMedium2.T_defaultStart value of temperature [K]
MassFractionX2_start[Medium2.nX]Medium2.X_defaultStart value of mass fractions m_i/m [kg/kg]
ExtraPropertyC2_start[Medium2.nC]fill(0, Medium2.nC)Start value of trace substances
ExtraPropertyC2_nominal[Medium2.nC]fill(1E-2, Medium2.nC)Nominal value of trace substances. (Set to typical order of magnitude.)

Connectors

TypeNameDescription
FluidPort_aport_a1Fluid connector a1 (positive design flow direction is from port_a1 to port_b1)
FluidPort_bport_b1Fluid connector b1 (positive design flow direction is from port_a1 to port_b1)
FluidPort_aport_a2Fluid connector a2 (positive design flow direction is from port_a2 to port_b2)
FluidPort_bport_b2Fluid connector b2 (positive design flow direction is from port_a2 to port_b2)
input BooleanInputon[num]Set to true to enable equipment, or false to disable equipment
input RealInputTSetSet point for leaving water temperature [K]
output RealOutputP[num]Electric power consumed by chiller compressor [W]

Modelica definition

model ElectricChillerParallel "Multiple identical electric chillers" extends Buildings.Applications.DataCenters.ChillerCooled.Equipment.BaseClasses.PartialParallelElectricEIR ( redeclare final Buildings.Fluid.Chillers.ElectricEIR chi[num]( final per=per)); replaceable parameter Buildings.Fluid.Chillers.Data.ElectricEIR.Generic per[num] "Performance data"; end ElectricChillerParallel;

Buildings.Applications.BaseClasses.Equipment.FlowMachine_m Buildings.Applications.BaseClasses.Equipment.FlowMachine_m

Identical m_flow controlled pumps

Buildings.Applications.BaseClasses.Equipment.FlowMachine_m

Information

This model implements a parallel of identical pumps with m_flow being controlled. The number can be specified by setting a value of num. The shutoff valves are used to avoid circulating flow among pumps.

Extends from Buildings.Applications.DataCenters.ChillerCooled.Equipment.BaseClasses.PartialPumpParallel (Partial model for pump parallel).

Parameters

TypeNameDefaultDescription
replaceable package MediumPartialMediumMedium in the component
Genericper[num]redeclare parameter Building...Record with performance data
Integernum2The number of pumps
Realthreshold0.05Hysteresis threshold
Nominal condition
MassFlowRatem_flow_nominal Nominal mass flow rate [kg/s]
PressureDifferencedpValve_nominal Nominal pressure drop of fully open valve, used if CvData=Buildings.Fluid.Types.CvTypes.OpPoint [Pa]
Flow Coefficient
CvTypesCvDataBuildings.Fluid.Types.CvType...Selection of flow coefficient
RealKv Kv (metric) flow coefficient [m3/h/(bar)^(1/2)]
RealCv Cv (US) flow coefficient [USG/min/(psi)^(1/2)]
AreaAv Av (metric) flow coefficient [m2]
Pressure-flow linearization
RealdeltaM0.02Fraction of nominal flow rate where linearization starts, if y=1
Pump
BooleanaddPowerToMediumfalseSet to false to avoid any power (=heat and flow work) being added to medium (may give simpler equations)
Two-way valve
Reall0.0001Valve leakage, l=Kv(y=0)/Kv(y=1)
Assumptions
BooleanallowFlowReversaltrue= false to simplify equations, assuming, but not enforcing, no flow reversal
Advanced
MassFlowRatem_flow_small1E-4*abs(m_flow_nominal)Small mass flow rate for regularization of zero flow [kg/s]
PressuredpMax2*max(pum.per.pressure.dp) +...Maximum pressure allowed to operate the model, if exceeded, the simulation stops with an error [Pa]
Diagnostics
Booleanshow_Tfalse= true, if actual temperature at port is computed
Nominal condition
DensityrhoStdMedium.density_pTX(101325, 2...Inlet density for which valve coefficients are defined [kg/m3]
Dynamics
Pump
Timetau1Time constant at nominal flow (if energyDynamics <> SteadyState) [s]
Booleanuse_inputFiltertrue= true, if speed is filtered with a 2nd order CriticalDamping filter
TimeriseTimePump30Rise time of the filter (time to reach 99.6 % of the speed) [s]
InitinitModelica.Blocks.Types.Init.I...Type of initialization (no init/steady state/initial state/initial output)
RealyPump_start[num]fill(0, num)Initial value of pump signals
Valve
TimeriseTimeValveriseTimePumpRise time of the filter (time to become 99.6 % open) [s]
RealyValve_start[num]fill(1, num)Initial value of valve signals
Conservation equations
DynamicsenergyDynamicsModelica.Fluid.Types.Dynamic...Type of energy balance: dynamic (3 initialization options) or steady state
Initialization
AbsolutePressurep_startMedium.p_defaultStart value of pressure [Pa]
TemperatureT_startMedium.T_defaultStart value of temperature [K]
MassFractionX_start[Medium.nX]Medium.X_defaultStart value of mass fractions m_i/m [kg/kg]
ExtraPropertyC_start[Medium.nC]fill(0, Medium.nC)Start value of trace substances
ExtraPropertyC_nominal[Medium.nC]fill(1E-2, Medium.nC)Nominal value of trace substances. (Set to typical order of magnitude.)
Flow resistance
Booleanfrom_dpfalse= true, use m_flow = f(dp) else dp = f(m_flow)
BooleanlinearizeFlowResistancefalse= true, use linear relation between m_flow and dp for any flow rate

Connectors

TypeNameDescription
FluidPort_aport_aFluid connector a (positive design flow direction is from port_a to port_b)
FluidPort_bport_bFluid connector b (positive design flow direction is from port_a to port_b)
input RealInputu[num]Continuous input signal for the flow machine [1]
output RealOutputP[num]Electrical power consumed by the pumps [W]

Modelica definition

model FlowMachine_m "Identical m_flow controlled pumps" extends Buildings.Applications.DataCenters.ChillerCooled.Equipment.BaseClasses.PartialPumpParallel ( redeclare final Buildings.Fluid.Movers.FlowControlled_m_flow pum( each final m_flow_nominal = m_flow_nominal, final m_flow_start=yPump_start*m_flow_nominal, each final dpMax=dpMax), rhoStd=Medium.density_pTX(101325, 273.15+4, Medium.X_default)); // Note: Below we set a huge value for dpMax. This is needed for Dymola 2023 // to run // simulateModel("Buildings.Applications.DataCenters.ChillerCooled.Examples.IntegratedPrimarySecondaryEconomizer", stopTime=86400, method="Cvode", tolerance=1e-07, resultFile="IntegratedPrimarySecondaryEconomizer"); // on commit 3362be949be55b3c1e320faec8c8bac999f98ba4. // It seems to be an issue of Dymola evaluating the assertion before convergence, // because the result file does not show such large a pressure, and the model // works fine with Optimica. parameter Modelica.Units.SI.Pressure dpMax( displayUnit="Pa")=2*max(pum.per.pressure.dp)+6E11 "Maximum pressure allowed to operate the model, if exceeded, the simulation stops with an error"; Modelica.Blocks.Math.Gain gaiM_flow[num](each final k=m_flow_nominal) "Gain for mass flow rate"; equation connect(swi.y, gaiM_flow.u); connect(gaiM_flow.y, pum.m_flow_in); end FlowMachine_m;

Buildings.Applications.BaseClasses.Equipment.FlowMachine_y Buildings.Applications.BaseClasses.Equipment.FlowMachine_y

Identical speed controlled flow machines

Buildings.Applications.BaseClasses.Equipment.FlowMachine_y

Information

This model implements a parallel of identical pumps with speed being controlled. The number can be specified by setting a value of num. The shutoff valves are used to avoid circulating flow among pumps.

Extends from Buildings.Applications.DataCenters.ChillerCooled.Equipment.BaseClasses.PartialPumpParallel (Partial model for pump parallel).

Parameters

TypeNameDefaultDescription
replaceable package MediumPartialMediumMedium in the component
Genericper[num]redeclare parameter Building...Record with performance data
Integernum2The number of pumps
Realthreshold0.05Hysteresis threshold
Nominal condition
MassFlowRatem_flow_nominal Nominal mass flow rate [kg/s]
PressureDifferencedpValve_nominal Nominal pressure drop of fully open valve, used if CvData=Buildings.Fluid.Types.CvTypes.OpPoint [Pa]
Flow Coefficient
CvTypesCvDataBuildings.Fluid.Types.CvType...Selection of flow coefficient
RealKv Kv (metric) flow coefficient [m3/h/(bar)^(1/2)]
RealCv Cv (US) flow coefficient [USG/min/(psi)^(1/2)]
AreaAv Av (metric) flow coefficient [m2]
Pressure-flow linearization
RealdeltaM0.02Fraction of nominal flow rate where linearization starts, if y=1
Pump
BooleanaddPowerToMediumfalseSet to false to avoid any power (=heat and flow work) being added to medium (may give simpler equations)
Two-way valve
Reall0.0001Valve leakage, l=Kv(y=0)/Kv(y=1)
Assumptions
BooleanallowFlowReversaltrue= false to simplify equations, assuming, but not enforcing, no flow reversal
Advanced
MassFlowRatem_flow_small1E-4*abs(m_flow_nominal)Small mass flow rate for regularization of zero flow [kg/s]
Diagnostics
Booleanshow_Tfalse= true, if actual temperature at port is computed
Nominal condition
DensityrhoStdMedium.density_pTX(101325, 2...Inlet density for which valve coefficients are defined [kg/m3]
Dynamics
Pump
Timetau1Time constant at nominal flow (if energyDynamics <> SteadyState) [s]
Booleanuse_inputFiltertrue= true, if speed is filtered with a 2nd order CriticalDamping filter
TimeriseTimePump30Rise time of the filter (time to reach 99.6 % of the speed) [s]
InitinitModelica.Blocks.Types.Init.I...Type of initialization (no init/steady state/initial state/initial output)
RealyPump_start[num]fill(0, num)Initial value of pump signals
Valve
TimeriseTimeValveriseTimePumpRise time of the filter (time to become 99.6 % open) [s]
RealyValve_start[num]fill(1, num)Initial value of valve signals
Conservation equations
DynamicsenergyDynamicsModelica.Fluid.Types.Dynamic...Type of energy balance: dynamic (3 initialization options) or steady state
Initialization
AbsolutePressurep_startMedium.p_defaultStart value of pressure [Pa]
TemperatureT_startMedium.T_defaultStart value of temperature [K]
MassFractionX_start[Medium.nX]Medium.X_defaultStart value of mass fractions m_i/m [kg/kg]
ExtraPropertyC_start[Medium.nC]fill(0, Medium.nC)Start value of trace substances
ExtraPropertyC_nominal[Medium.nC]fill(1E-2, Medium.nC)Nominal value of trace substances. (Set to typical order of magnitude.)
Flow resistance
Booleanfrom_dpfalse= true, use m_flow = f(dp) else dp = f(m_flow)
BooleanlinearizeFlowResistancefalse= true, use linear relation between m_flow and dp for any flow rate

Connectors

TypeNameDescription
FluidPort_aport_aFluid connector a (positive design flow direction is from port_a to port_b)
FluidPort_bport_bFluid connector b (positive design flow direction is from port_a to port_b)
input RealInputu[num]Continuous input signal for the flow machine [1]
output RealOutputP[num]Electrical power consumed by the pumps [W]

Modelica definition

model FlowMachine_y "Identical speed controlled flow machines" extends Buildings.Applications.DataCenters.ChillerCooled.Equipment.BaseClasses.PartialPumpParallel ( redeclare final Buildings.Fluid.Movers.SpeedControlled_y pum(final y_start=yPump_start), rhoStd=Medium.density_pTX(101325, 273.15+4, Medium.X_default)); equation connect(swi.y, pum.y); end FlowMachine_y;