modelPartialParallelElectricEIR

Partial model for electric chiller parallel

Extends from Buildings.Applications.DataCenters.ChillerCooled.Equipment.BaseClasses.PartialPlantParallel (Partial source plant model with associated valves).

Information

Partial model that implements parallel electric chillers with associated valves. The model has num identical chillers.

Parameters

TypeNameDefaultDescription
Integernum (from PartialPlantParallelInterface)2Number of equipment
IntegernumVal (from ValvesParameters)Number of valves
IntegernumAct (from SignalFilterParameters)4Number of filters
BooleanhomotopyInitialization (from PartialPlantParallel)true= 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
Nominal condition
Modelica.Units.SI.MassFlowRatem1_flow_nominal (from PartialFourPortInterface)Nominal mass flow rate
Modelica.Units.SI.MassFlowRatem2_flow_nominal (from PartialFourPortInterface)Nominal mass flow rate
Modelica.Units.SI.PressureDifferencedp1_nominal (from FourPortFlowResistanceParameters)Pressure difference
Modelica.Units.SI.PressureDifferencedp2_nominal (from FourPortFlowResistanceParameters)Pressure difference
Advanced
Medium1.MassFlowRatem1_flow_small (from PartialFourPortInterface)1E-4*abs(m1_flow_nominal)Small mass flow rate for regularization of zero flow
Medium2.MassFlowRatem2_flow_small (from PartialFourPortInterface)1E-4*abs(m2_flow_nominal)Small mass flow rate for regularization of zero flow
Advanced › Diagnostics
Booleanshow_T (from PartialFourPortInterface)false= true, if actual temperature at port is computed
Flow resistance › Medium 1
BooleancomputeFlowResistance1 (from FourPortFlowResistanceParameters)true=true, compute flow resistance. Set to false to assume no friction
Booleanfrom_dp1 (from FourPortFlowResistanceParameters)false= true, use m_flow = f(dp) else dp = f(m_flow)
Realn1 (from FourPortFlowResistanceParameters)2Flow exponent for side 1, n=1 for laminar, n=2 for turbulent
BooleanlinearizeFlowResistance1 (from FourPortFlowResistanceParameters)false= true, use linear relation between m_flow and dp for any flow rate
RealdeltaM1 (from FourPortFlowResistanceParameters)0.1Fraction of nominal flow rate where flow transitions to laminar
Flow resistance › Medium 2
BooleancomputeFlowResistance2 (from FourPortFlowResistanceParameters)true=true, compute flow resistance. Set to false to assume no friction
Booleanfrom_dp2 (from FourPortFlowResistanceParameters)false= true, use m_flow = f(dp) else dp = f(m_flow)
Realn2 (from FourPortFlowResistanceParameters)2Flow exponent for side 2, n=1 for laminar, n=2 for turbulent
BooleanlinearizeFlowResistance2 (from FourPortFlowResistanceParameters)false= true, use linear relation between m_flow and dp for any flow rate
RealdeltaM2 (from FourPortFlowResistanceParameters)0.1Fraction of nominal flow rate where flow transitions to laminar
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
Real[2]l (from PartialPlantParallel){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
Dynamics › Nominal condition
Modelica.Units.SI.Timetau130Time constant at nominal flow in chillers
Modelica.Units.SI.Timetau230Time constant at nominal flow in chillers
Dynamics › Conservation equations
Modelica.Fluid.Types.DynamicsenergyDynamicsModelica.Fluid.Types.Dynamics.FixedInitialType of energy balance: dynamic (3 initialization options) or steady state
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.)

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.BooleanInput[num]on (from PartialPlantParallelInterface)Set to true to enable equipment, or false to disable equipment
Modelica.Blocks.Interfaces.RealInputTSetSet point for leaving water temperature
Modelica.Blocks.Interfaces.RealOutput[num]PElectric power consumed by chiller compressor

Components

TypeNameDefaultDescription
Medium1.MassFlowRatem1_flow (from PartialFourPortInterface)port_a1.m_flowMass flow rate from port_a1 to port_b1 (m1_flow > 0 is design flow direction)
Modelica.Units.SI.PressureDifferencedp1 (from PartialFourPortInterface)port_a1.p - port_b1.pPressure difference between port_a1 and port_b1
Medium2.MassFlowRatem2_flow (from PartialFourPortInterface)port_a2.m_flowMass flow rate from port_a2 to port_b2 (m2_flow > 0 is design flow direction)
Modelica.Units.SI.PressureDifferencedp2 (from PartialFourPortInterface)port_a2.p - port_b2.pPressure difference between port_a2 and port_b2
Medium1.ThermodynamicStatesta_a1 (from PartialFourPortInterface)if allowFlowReversal1 then Medium1.setState_phX(port_a1.p, noEvent(actualStream(port_a1.h_outflow)), noEvent(actualStream(port_a1.Xi_outflow))) else Medium1.setState_phX(port_a1.p, inStream(port_a1.h_outflow), inStream(port_a1.Xi_outflow))Medium properties in port_a1
Medium1.ThermodynamicStatesta_b1 (from PartialFourPortInterface)if allowFlowReversal1 then Medium1.setState_phX(port_b1.p, noEvent(actualStream(port_b1.h_outflow)), noEvent(actualStream(port_b1.Xi_outflow))) else Medium1.setState_phX(port_b1.p, port_b1.h_outflow, port_b1.Xi_outflow)Medium properties in port_b1
Medium2.ThermodynamicStatesta_a2 (from PartialFourPortInterface)if allowFlowReversal2 then Medium2.setState_phX(port_a2.p, noEvent(actualStream(port_a2.h_outflow)), noEvent(actualStream(port_a2.Xi_outflow))) else Medium2.setState_phX(port_a2.p, inStream(port_a2.h_outflow), inStream(port_a2.Xi_outflow))Medium properties in port_a2
Medium2.ThermodynamicStatesta_b2 (from PartialFourPortInterface)if allowFlowReversal2 then Medium2.setState_phX(port_b2.p, noEvent(actualStream(port_b2.h_outflow)), noEvent(actualStream(port_b2.Xi_outflow))) else Medium2.setState_phX(port_b2.p, port_b2.h_outflow, port_b2.Xi_outflow)Medium properties in port_b2
Modelica.Blocks.Math.BooleanToReal[num]booToRea (from PartialPlantParallelInterface)Boolean to real (if true then 1 else 0)
Buildings.Fluid.Actuators.Valves.TwoWayLinear[num]val2 (from PartialPlantParallel)Isolation valves on medium 2 side for on/off use
Buildings.Fluid.Actuators.Valves.TwoWayLinear[num]val1 (from PartialPlantParallel)Isolation valves on medium 1 side for on/off use
Buildings.Fluid.Chillers.BaseClasses.PartialElectric[num]chi

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.
  • January 26, 2018, by Michael Wetter:
    Added constrainedby to instance chi in order for the parameter assignments to remain when the chiller is redeclared.
    This is for issue 1118.
  • June 30, 2017, by Yangyang Fu:
    First implementation.