modelPartialChillerWSE

Partial model for chiller and WSE package

Extends from Buildings.Applications.DataCenters.ChillerCooled.Equipment.BaseClasses.PartialChillerWSEInterface (Partial model that defines the interface for chiller and WSE package), Buildings.Applications.DataCenters.ChillerCooled.Equipment.BaseClasses.FourPortResistanceChillerWSE (Flow resistance model for the chiller and WSE package), Buildings.Applications.DataCenters.ChillerCooled.Equipment.BaseClasses.PartialControllerInterface (Partial interface model for waterside economizer temperature controller), Buildings.Applications.DataCenters.ChillerCooled.Equipment.BaseClasses.ValvesParameters (Model with parameters for multiple valves), Buildings.Applications.DataCenters.ChillerCooled.Equipment.BaseClasses.SignalFilterParameters (Record that contains the parameters of the filtered opening for multiple valves and dampers), Buildings.Applications.DataCenters.ChillerCooled.Equipment.BaseClasses.ThreeWayValveParameters (Model with parameters for a three-way valve).

Information

Partial model that can be extended to different configurations inclduing chillers and integrated/non-integrated water-side economizers.

Parameters

TypeNameDefaultDescription
Integernum (from PartialChillerWSEInterface)2Total number of chillers and waterside economizer
Booleanuse_controller (from PartialControllerInterface)trueSet to ture if the built-in controller is enabled to maintain the outlet temperature on the load side of a heat exchanger
IntegernumVal (from ValvesParameters)Number of valves
IntegernumAct (from SignalFilterParameters)4Number of filters
Booleanactivate_ThrWayVal (from ThreeWayValveParameters)Activate the use of three-way valve: True-use three-way valve; False-not use the three-way valve
BooleanhomotopyInitializationtrue= true, use homotopy method
Assumptions
BooleanallowFlowReversal1 (from PartialFourPort)true= false to simplify equations, assuming, but not enforcing, no flow reversal for medium 1
BooleanallowFlowReversal2 (from PartialFourPort)true= false to simplify equations, assuming, but not enforcing, no flow reversal for medium 2
Chiller
Modelica.Units.SI.MassFlowRatem1_flow_chi_nominal (from PartialChillerWSEInterface)Nominal mass flow rate on the medium 1 side in the chiller
Modelica.Units.SI.MassFlowRatem2_flow_chi_nominal (from PartialChillerWSEInterface)Nominal mass flow rate on the medium 2 side in the chiller
Modelica.Units.SI.PressureDifferencedp1_chi_nominal (from FourPortResistanceChillerWSE)Pressure difference on medium 1 side in the chillers
Modelica.Units.SI.PressureDifferencedp2_chi_nominal (from FourPortResistanceChillerWSE)Pressure difference on medium 2 side in the chillers
IntegernumChiNumber of chillers
Buildings.Fluid.Chillers.Data.ElectricEIR.Generic[numChi]perChiPerformance data for chillers
Waterside economizer
Modelica.Units.SI.MassFlowRatem1_flow_wse_nominal (from PartialChillerWSEInterface)Nominal mass flow rate on the medium 1 side in the waterside economizer
Modelica.Units.SI.MassFlowRatem2_flow_wse_nominal (from PartialChillerWSEInterface)Nominal mass flow rate on the medium 2 side in the waterside economizer
Modelica.Units.SI.PressureDifferencedp1_wse_nominal (from FourPortResistanceChillerWSE)Pressure difference on medium 1 side in the waterside economizer
Modelica.Units.SI.PressureDifferencedp2_wse_nominal (from FourPortResistanceChillerWSE)Pressure difference on medium 2 side in the waterside economizer
Modelica.Units.SI.Efficiencyeta0.8Heat exchange effectiveness
Advanced
Medium1.MassFlowRatem1_flow_small (from PartialChillerWSEInterface)1E-4*abs(m1_flow_chi_nominal)Small mass flow rate for regularization of zero flow
Medium2.MassFlowRatem2_flow_small (from PartialChillerWSEInterface)1E-4*abs(m2_flow_chi_nominal)Small mass flow rate for regularization of zero flow
Modelica.Fluid.Types.PortFlowDirectionportFlowDirection_1 (from ThreeWayValveParameters)Modelica.Fluid.Types.PortFlowDirection.BidirectionalFlow direction for port_1 in the three-way valve
Modelica.Fluid.Types.PortFlowDirectionportFlowDirection_2 (from ThreeWayValveParameters)Modelica.Fluid.Types.PortFlowDirection.BidirectionalFlow direction for port_2 in the three-way valve
Modelica.Fluid.Types.PortFlowDirectionportFlowDirection_3 (from ThreeWayValveParameters)Modelica.Fluid.Types.PortFlowDirection.BidirectionalFlow direction for port_3 in the three-way valve
Advanced › Diagnostics
Booleanshow_T (from PartialChillerWSEInterface)false= true, if actual temperature at port is computed
Flow resistance › Medium 1
BooleancomputeFlowResistance1 (from FourPortResistanceChillerWSE)true=true, compute flow resistance. Set to false to assume no friction
Booleanfrom_dp1 (from FourPortResistanceChillerWSE)false= true, use m_flow = f(dp) else dp = f(m_flow)
Realn1 (from FourPortResistanceChillerWSE)2Flow exponent, n1=1 for laminar, n1=2 for turbulent
BooleanlinearizeFlowResistance1 (from FourPortResistanceChillerWSE)false= true, use linear relation between m_flow and dp for any flow rate
RealdeltaM1 (from FourPortResistanceChillerWSE)0.1Fraction of nominal flow rate where flow transitions to laminar
Flow resistance › Medium 2
BooleancomputeFlowResistance2 (from FourPortResistanceChillerWSE)true=true, compute flow resistance. Set to false to assume no friction
Booleanfrom_dp2 (from FourPortResistanceChillerWSE)false= true, use m_flow = f(dp) else dp = f(m_flow)
Realn2 (from FourPortResistanceChillerWSE)2Flow exponent, n2=1 for laminar, n2=2 for turbulent
BooleanlinearizeFlowResistance2 (from FourPortResistanceChillerWSE)false= true, use linear relation between m_flow and dp for any flow rate
RealdeltaM2 (from FourPortResistanceChillerWSE)0.1Fraction of nominal flow rate where flow transitions to laminar
Controller
Modelica.Blocks.Types.SimpleControllercontrollerType (from PartialControllerInterface)Modelica.Blocks.Types.SimpleController.PIDType of controller
Realk (from PartialControllerInterface)1Gain of controller
Modelica.Units.SI.TimeTi (from PartialControllerInterface)0.5Time constant of integrator block
Modelica.Units.SI.TimeTd (from PartialControllerInterface)0.1Time constant of derivative block
RealyMax (from PartialControllerInterface)1Upper limit of output
RealyMin (from PartialControllerInterface)0Lower limit of output
Realwp (from PartialControllerInterface)1Set-point weight for Proportional block (0..1)
Realwd (from PartialControllerInterface)0Set-point weight for Derivative block (0..1)
RealNi (from PartialControllerInterface)0.9Ni*Ti is time constant of anti-windup compensation
RealNd (from PartialControllerInterface)10The higher Nd, the more ideal the derivative block
BooleanreverseActing (from PartialControllerInterface)falseSet to true for throttling the water flow rate through a cooling coil controller
Controller › Initialization
Modelica.Blocks.Types.InitinitType (from PartialControllerInterface)Modelica.Blocks.Types.Init.InitialStateType of initialization (1: no init, 2: steady state, 3: initial state, 4: initial output)
Realxi_start (from PartialControllerInterface)0Initial or guess value value for integrator output (= integrator state)
Realxd_start (from PartialControllerInterface)0Initial or guess value for state of derivative block
RealyCon_start (from PartialControllerInterface)0Initial value of output from the controller
Controller › Integrator reset
Buildings.Types.Resetreset (from PartialControllerInterface)Buildings.Types.Reset.DisabledType of controller output reset
Realy_reset (from PartialControllerInterface)xi_startValue to which the controller output is reset if the boolean trigger has a rising edge, used if reset == Buildings.Types.Reset.Parameter
Two-way valve
Buildings.Fluid.Types.CvTypesCvData (from ValvesParameters)Buildings.Fluid.Types.CvTypes.OpPointSelection of flow coefficient
RealKv (from ValvesParameters)Kv (metric) flow coefficient [m3/h/(bar)^(1/2)]
RealCv (from ValvesParameters)Cv (US) flow coefficient [USG/min/(psi)^(1/2)]
Modelica.Units.SI.AreaAv (from ValvesParameters)Av (metric) flow coefficient
Modelica.Units.SI.MassFlowRatem_flow_nominal (from ValvesParameters)Nominal mass flow rate
Modelica.Units.SI.PressureDifferencedpValve_nominal (from ValvesParameters)fill(6000, numVal)Nominal pressure drop of fully open valve, used if CvData=Buildings.Fluid.Types.CvTypes.OpPoint
ReallValChi{0.0001, 0.0001}Valve leakage, l=Kv(y=0)/Kv(y=1)
ReallValWSE{0.0001, 0.0001}Valve leakage, l=Kv(y=0)/Kv(y=1)
Pressure-flow linearization
RealdeltaM (from ValvesParameters)0.02Fraction of nominal flow rate where linearization starts, if y=1
Advanced › Two-way valve
Modelica.Units.SI.DensityrhoStd (from ValvesParameters)Inlet density for which valve coefficients are defined
Dynamics › Time needed to open or close valve
Booleanuse_strokeTime (from SignalFilterParameters)false= true, if opening is filtered to avoid a step change in actuator position
Modelica.Units.SI.TimestrokeTime (from SignalFilterParameters)30Time needed to open or close valve
Modelica.Blocks.Types.InitinitValve (from SignalFilterParameters)Modelica.Blocks.Types.Init.InitialOutputType of initialization (no init/steady state/initial state/initial output)
RealyValve_start (from SignalFilterParameters)fill(1, numAct)Initial value of output:0-closed, 1-fully opened
RealyValChi_startfill(0, numChi)Initial value of output from on/off valves in chillers
RealyValWSE_start0Initial value of output from on/off valve in WSE
RealyThrWayValWSE_start0Initial value of output from three-way bypass valve in WSE
Three-way Valve
Modelica.Units.SI.PressureDifferencedpThrWayVal_nominal (from ThreeWayValveParameters)6000Nominal pressure drop of fully open valve
RealfraK_ThrWayVal (from ThreeWayValveParameters)0.7Fraction Kv(port_3→port_2)/Kv(port_1→port_2)for the three-way valve
Real[2]l_ThrWayVal (from ThreeWayValveParameters){0.0001, 0.0001}Bypass valve leakage, l=Kv(y=0)/Kv(y=1)
RealR (from ThreeWayValveParameters)50Rangeability, R=50...100 typically for the three-way valve
Realdelta0 (from ThreeWayValveParameters)0.01Range of significant deviation from equal percentage law for the three-way valve
Dynamics › Conservation equations
Modelica.Fluid.Types.DynamicsenergyDynamicsModelica.Fluid.Types.Dynamics.DynamicFreeInitialType of energy balance: dynamic (3 initialization options) or steady state
Dynamics › Chiller
Modelica.Units.SI.TimetauChi130Time constant at nominal flow in chillers
Modelica.Units.SI.TimetauChi230Time constant at nominal flow in chillers
Dynamics › Waterside economizer
Modelica.Units.SI.TimetauWSE10Time constant at nominal flow for dynamic energy and momentum balance of the three-way valve
Initialization › Medium 1
Medium1.AbsolutePressurep1_startMedium1.p_defaultStart value of pressure
Medium1.TemperatureT1_startMedium1.T_defaultStart value of temperature
Medium1.MassFraction[Medium1.nX]X1_startMedium1.X_defaultStart value of mass fractions m_i/m
Medium1.ExtraProperty[Medium1.nC]C1_startfill(0, Medium1.nC)Start value of trace substances
Medium1.ExtraProperty[Medium1.nC]C1_nominalfill(1E-2, Medium1.nC)Nominal value of trace substances. (Set to typical order of magnitude.)
Initialization › Medium 2
Medium2.AbsolutePressurep2_startMedium2.p_defaultStart value of pressure
Medium2.TemperatureT2_startMedium2.T_defaultStart value of temperature
Medium2.MassFraction[Medium2.nX]X2_startMedium2.X_defaultStart value of mass fractions m_i/m
Medium2.ExtraProperty[Medium2.nC]C2_startfill(0, Medium2.nC)Start value of trace substances
Medium2.ExtraProperty[Medium2.nC]C2_nominalfill(1E-2, Medium2.nC)Nominal value of trace substances. (Set to typical order of magnitude.)
Dynamics › Temperature Sensor
Modelica.Units.SI.TimetauSenT1Time constant at nominal flow rate (use tau=0 for steady-state sensor, but see user guide for potential problems)
Modelica.Blocks.Types.InitinitTSenorModelica.Blocks.Types.Init.InitialStateType of initialization of the temperature sensor (InitialState and InitialOutput are identical)

Connectors

TypeNameDefaultDescription
Modelica.Fluid.Interfaces.FluidPort_aport_a1 (from PartialFourPort)Fluid connector a1 (positive design flow direction is from port_a1 to port_b1)
Modelica.Fluid.Interfaces.FluidPort_bport_b1 (from PartialFourPort)Fluid connector b1 (positive design flow direction is from port_a1 to port_b1)
Modelica.Fluid.Interfaces.FluidPort_aport_a2 (from PartialFourPort)Fluid connector a2 (positive design flow direction is from port_a2 to port_b2)
Modelica.Fluid.Interfaces.FluidPort_bport_b2 (from PartialFourPort)Fluid connector b2 (positive design flow direction is from port_a2 to port_b2)
Modelica.Blocks.Interfaces.RealInputTSet (from PartialChillerWSEInterface)Set point for leaving water temperature
Modelica.Blocks.Interfaces.BooleanInput[num]on (from PartialChillerWSEInterface)Set to true to enable equipment, or false to disable equipment
Modelica.Blocks.Interfaces.BooleanInputtrigger (from PartialControllerInterface)Resets the controller output when trigger becomes true
Modelica.Blocks.Interfaces.RealInputy_reset_in (from PartialControllerInterface)Input signal for state to which integrator is reset, enabled if reset = Buildings.Types.Reset.Input
Modelica.Blocks.Interfaces.RealOutputTCHWSupWSEChilled water supply temperature in the waterside economizer
Modelica.Blocks.Interfaces.RealOutput[numChi]powChiElectric power consumed by chiller compressor

Components

TypeNameDefaultDescription
Medium1.MassFlowRatem1_flow (from PartialChillerWSEInterface)port_a1.m_flowMass flow rate from port_a1 to port_b1 (m1_flow > 0 is design flow direction)
Modelica.Units.SI.PressureDifferencedp1 (from PartialChillerWSEInterface)port_a1.p - port_b1.pPressure difference between port_a1 and port_b1
Medium2.MassFlowRatem2_flow (from PartialChillerWSEInterface)port_a2.m_flowMass flow rate from port_a2 to port_b2 (m2_flow > 0 is design flow direction)
Modelica.Units.SI.PressureDifferencedp2 (from PartialChillerWSEInterface)port_a2.p - port_b2.pPressure difference between port_a2 and port_b2
Medium1.ThermodynamicStatesta_a1 (from PartialChillerWSEInterface)Medium1.setState_phX(port_a1.p, noEvent(actualStream(port_a1.h_outflow)), noEvent(actualStream(port_a1.Xi_outflow)))Medium properties in port_a1
Medium1.ThermodynamicStatesta_b1 (from PartialChillerWSEInterface)Medium1.setState_phX(port_b1.p, noEvent(actualStream(port_b1.h_outflow)), noEvent(actualStream(port_b1.Xi_outflow)))Medium properties in port_b1
Medium2.ThermodynamicStatesta_a2 (from PartialChillerWSEInterface)Medium2.setState_phX(port_a2.p, noEvent(actualStream(port_a2.h_outflow)), noEvent(actualStream(port_a2.Xi_outflow)))Medium properties in port_a2
Medium2.ThermodynamicStatesta_b2 (from PartialChillerWSEInterface)Medium2.setState_phX(port_b2.p, noEvent(actualStream(port_b2.h_outflow)), noEvent(actualStream(port_b2.Xi_outflow)))Medium properties in port_b2
Buildings.Applications.BaseClasses.Equipment.ElectricChillerParallelchiParChillers with identical nominal parameters but different performance curves
Buildings.Applications.DataCenters.ChillerCooled.Equipment.WatersideEconomizerwseWaterside economizer
Buildings.Fluid.Sensors.TemperatureTwoPortsenTemTemperature sensor
Fluid.FixedResistances.Junctionspl1Splitter
Fluid.FixedResistances.Junctionjun1Junction

Revisions

  • March 3, 2022, by Michael Wetter:
    Moved massDynamics to Advanced tab, added assertion and changed type from record to block.
    This is for issue 1542.
  • April 26, 2021, by Kathryn Hinkelman:
    Removed kFixed redundancies. See IBPSA, #1472.
  • April 14, 2020, by Michael Wetter:
    Changed homotopyInitialization to a constant.
    This is for IBPSA, #1341.
  • June 30, 2017, by Yangyang Fu:
    First implementation.