modelPartialIntegratedPrimary
Integrated water-side economizer for primary-only chilled water system
Extends from Buildings.Applications.DataCenters.ChillerCooled.Equipment.BaseClasses.PartialChillerWSE (Partial model for chiller and WSE package).
Information
Partial model that implements integrated waterside economizer in primary-ony chilled water system.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | num (from PartialChillerWSEInterface) | 2 | Total number of chillers and waterside economizer |
| Boolean | use_controller (from PartialControllerInterface) | true | Set to ture if the built-in controller is enabled to maintain the outlet temperature on the load side of a heat exchanger |
| Integer | numVal (from ValvesParameters) | Number of valves | |
| Integer | numAct (from SignalFilterParameters) | 4 | Number of filters |
| Boolean | activate_ThrWayVal (from ThreeWayValveParameters) | Activate the use of three-way valve: True-use three-way valve; False-not use the three-way valve | |
| Boolean | homotopyInitialization (from PartialChillerWSE) | true | = true, use homotopy method |
| Assumptions | |||
| Boolean | allowFlowReversal1 (from PartialFourPort) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 1 |
| Boolean | allowFlowReversal2 (from PartialFourPort) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 2 |
| Chiller | |||
| Modelica.Units.SI.MassFlowRate | m1_flow_chi_nominal (from PartialChillerWSEInterface) | Nominal mass flow rate on the medium 1 side in the chiller | |
| Modelica.Units.SI.MassFlowRate | m2_flow_chi_nominal (from PartialChillerWSEInterface) | Nominal mass flow rate on the medium 2 side in the chiller | |
| Modelica.Units.SI.PressureDifference | dp1_chi_nominal (from FourPortResistanceChillerWSE) | Pressure difference on medium 1 side in the chillers | |
| Modelica.Units.SI.PressureDifference | dp2_chi_nominal (from FourPortResistanceChillerWSE) | Pressure difference on medium 2 side in the chillers | |
| Integer | numChi (from PartialChillerWSE) | Number of chillers | |
| Buildings.Fluid.Chillers.Data.ElectricEIR.Generic[numChi] | perChi (from PartialChillerWSE) | Performance data for chillers | |
| Waterside economizer | |||
| Modelica.Units.SI.MassFlowRate | m1_flow_wse_nominal (from PartialChillerWSEInterface) | Nominal mass flow rate on the medium 1 side in the waterside economizer | |
| Modelica.Units.SI.MassFlowRate | m2_flow_wse_nominal (from PartialChillerWSEInterface) | Nominal mass flow rate on the medium 2 side in the waterside economizer | |
| Modelica.Units.SI.PressureDifference | dp1_wse_nominal (from FourPortResistanceChillerWSE) | Pressure difference on medium 1 side in the waterside economizer | |
| Modelica.Units.SI.PressureDifference | dp2_wse_nominal (from FourPortResistanceChillerWSE) | Pressure difference on medium 2 side in the waterside economizer | |
| Modelica.Units.SI.Efficiency | eta (from PartialChillerWSE) | 0.8 | Heat exchange effectiveness |
| Advanced | |||
| Medium1.MassFlowRate | m1_flow_small (from PartialChillerWSEInterface) | 1E-4*abs(m1_flow_chi_nominal) | Small mass flow rate for regularization of zero flow |
| Medium2.MassFlowRate | m2_flow_small (from PartialChillerWSEInterface) | 1E-4*abs(m2_flow_chi_nominal) | Small mass flow rate for regularization of zero flow |
| Modelica.Fluid.Types.PortFlowDirection | portFlowDirection_1 (from ThreeWayValveParameters) | Modelica.Fluid.Types.PortFlowDirection.Bidirectional | Flow direction for port_1 in the three-way valve |
| Modelica.Fluid.Types.PortFlowDirection | portFlowDirection_2 (from ThreeWayValveParameters) | Modelica.Fluid.Types.PortFlowDirection.Bidirectional | Flow direction for port_2 in the three-way valve |
| Modelica.Fluid.Types.PortFlowDirection | portFlowDirection_3 (from ThreeWayValveParameters) | Modelica.Fluid.Types.PortFlowDirection.Bidirectional | Flow direction for port_3 in the three-way valve |
| Advanced › Diagnostics | |||
| Boolean | show_T (from PartialChillerWSEInterface) | false | = true, if actual temperature at port is computed |
| Flow resistance › Medium 1 | |||
| Boolean | computeFlowResistance1 (from FourPortResistanceChillerWSE) | true | =true, compute flow resistance. Set to false to assume no friction |
| Boolean | from_dp1 (from FourPortResistanceChillerWSE) | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
| Real | n1 (from FourPortResistanceChillerWSE) | 2 | Flow exponent, n1=1 for laminar, n1=2 for turbulent |
| Boolean | linearizeFlowResistance1 (from FourPortResistanceChillerWSE) | false | = true, use linear relation between m_flow and dp for any flow rate |
| Real | deltaM1 (from FourPortResistanceChillerWSE) | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
| Flow resistance › Medium 2 | |||
| Boolean | computeFlowResistance2 (from FourPortResistanceChillerWSE) | true | =true, compute flow resistance. Set to false to assume no friction |
| Boolean | from_dp2 (from FourPortResistanceChillerWSE) | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
| Real | n2 (from FourPortResistanceChillerWSE) | 2 | Flow exponent, n2=1 for laminar, n2=2 for turbulent |
| Boolean | linearizeFlowResistance2 (from FourPortResistanceChillerWSE) | false | = true, use linear relation between m_flow and dp for any flow rate |
| Real | deltaM2 (from FourPortResistanceChillerWSE) | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
| Controller | |||
| Modelica.Blocks.Types.SimpleController | controllerType (from PartialControllerInterface) | Modelica.Blocks.Types.SimpleController.PID | Type of controller |
| Real | k (from PartialControllerInterface) | 1 | Gain of controller |
| Modelica.Units.SI.Time | Ti (from PartialControllerInterface) | 0.5 | Time constant of integrator block |
| Modelica.Units.SI.Time | Td (from PartialControllerInterface) | 0.1 | Time constant of derivative block |
| Real | yMax (from PartialControllerInterface) | 1 | Upper limit of output |
| Real | yMin (from PartialControllerInterface) | 0 | Lower limit of output |
| Real | wp (from PartialControllerInterface) | 1 | Set-point weight for Proportional block (0..1) |
| Real | wd (from PartialControllerInterface) | 0 | Set-point weight for Derivative block (0..1) |
| Real | Ni (from PartialControllerInterface) | 0.9 | Ni*Ti is time constant of anti-windup compensation |
| Real | Nd (from PartialControllerInterface) | 10 | The higher Nd, the more ideal the derivative block |
| Boolean | reverseActing (from PartialControllerInterface) | false | Set to true for throttling the water flow rate through a cooling coil controller |
| Controller › Initialization | |||
| Modelica.Blocks.Types.Init | initType (from PartialControllerInterface) | Modelica.Blocks.Types.Init.InitialState | Type of initialization (1: no init, 2: steady state, 3: initial state, 4: initial output) |
| Real | xi_start (from PartialControllerInterface) | 0 | Initial or guess value value for integrator output (= integrator state) |
| Real | xd_start (from PartialControllerInterface) | 0 | Initial or guess value for state of derivative block |
| Real | yCon_start (from PartialControllerInterface) | 0 | Initial value of output from the controller |
| Controller › Integrator reset | |||
| Buildings.Types.Reset | reset (from PartialControllerInterface) | Buildings.Types.Reset.Disabled | Type of controller output reset |
| Real | y_reset (from PartialControllerInterface) | xi_start | Value 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.CvTypes | CvData (from ValvesParameters) | Buildings.Fluid.Types.CvTypes.OpPoint | Selection of flow coefficient |
| Real | Kv (from ValvesParameters) | Kv (metric) flow coefficient [m3/h/(bar)^(1/2)] | |
| Real | Cv (from ValvesParameters) | Cv (US) flow coefficient [USG/min/(psi)^(1/2)] | |
| Modelica.Units.SI.Area | Av (from ValvesParameters) | Av (metric) flow coefficient | |
| Modelica.Units.SI.MassFlowRate | m_flow_nominal (from ValvesParameters) | Nominal mass flow rate | |
| Modelica.Units.SI.PressureDifference | dpValve_nominal (from ValvesParameters) | fill(6000, numVal) | Nominal pressure drop of fully open valve, used if CvData=Buildings.Fluid.Types.CvTypes.OpPoint |
| Real | lValChi (from PartialChillerWSE) | {0.0001, 0.0001} | Valve leakage, l=Kv(y=0)/Kv(y=1) |
| Real | lValWSE (from PartialChillerWSE) | {0.0001, 0.0001} | Valve leakage, l=Kv(y=0)/Kv(y=1) |
| Real | lVal5 | 0.0001 | Valve leakage, l=Kv(y=0)/Kv(y=1) |
| Real | lVal6 | 0.0001 | Valve leakage, l=Kv(y=0)/Kv(y=1) |
| Pressure-flow linearization | |||
| Real | deltaM (from ValvesParameters) | 0.02 | Fraction of nominal flow rate where linearization starts, if y=1 |
| Advanced › Two-way valve | |||
| Modelica.Units.SI.Density | rhoStd (from ValvesParameters) | Inlet density for which valve coefficients are defined | |
| Dynamics › Time needed to open or close valve | |||
| Boolean | use_strokeTime (from SignalFilterParameters) | false | = true, if opening is filtered to avoid a step change in actuator position |
| Modelica.Units.SI.Time | strokeTime (from SignalFilterParameters) | 30 | Time needed to open or close valve |
| Modelica.Blocks.Types.Init | initValve (from SignalFilterParameters) | Modelica.Blocks.Types.Init.InitialOutput | Type of initialization (no init/steady state/initial state/initial output) |
| Real | yValve_start (from SignalFilterParameters) | fill(1, numAct) | Initial value of output:0-closed, 1-fully opened |
| Real | yValChi_start (from PartialChillerWSE) | fill(0, numChi) | Initial value of output from on/off valves in chillers |
| Real | yValWSE_start (from PartialChillerWSE) | 0 | Initial value of output from on/off valve in WSE |
| Real | yThrWayValWSE_start (from PartialChillerWSE) | 0 | Initial value of output from three-way bypass valve in WSE |
| Real | yVal5_start | 0 | Initial value of output:0-closed, 1-fully opened |
| Real | yVal6_start | 1 - yVal5_start | Initial value of output:0-closed, 1-fully opened |
| Three-way Valve | |||
| Modelica.Units.SI.PressureDifference | dpThrWayVal_nominal (from ThreeWayValveParameters) | 6000 | Nominal pressure drop of fully open valve |
| Real | fraK_ThrWayVal (from ThreeWayValveParameters) | 0.7 | Fraction 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) |
| Real | R (from ThreeWayValveParameters) | 50 | Rangeability, R=50...100 typically for the three-way valve |
| Real | delta0 (from ThreeWayValveParameters) | 0.01 | Range of significant deviation from equal percentage law for the three-way valve |
| Dynamics › Conservation equations | |||
| Modelica.Fluid.Types.Dynamics | energyDynamics (from PartialChillerWSE) | Modelica.Fluid.Types.Dynamics.DynamicFreeInitial | Type of energy balance: dynamic (3 initialization options) or steady state |
| Dynamics › Chiller | |||
| Modelica.Units.SI.Time | tauChi1 (from PartialChillerWSE) | 30 | Time constant at nominal flow in chillers |
| Modelica.Units.SI.Time | tauChi2 (from PartialChillerWSE) | 30 | Time constant at nominal flow in chillers |
| Dynamics › Waterside economizer | |||
| Modelica.Units.SI.Time | tauWSE (from PartialChillerWSE) | 10 | Time constant at nominal flow for dynamic energy and momentum balance of the three-way valve |
| Initialization › Medium 1 | |||
| Medium1.AbsolutePressure | p1_start (from PartialChillerWSE) | Medium1.p_default | Start value of pressure |
| Medium1.Temperature | T1_start (from PartialChillerWSE) | Medium1.T_default | Start value of temperature |
| Medium1.MassFraction[Medium1.nX] | X1_start (from PartialChillerWSE) | Medium1.X_default | Start value of mass fractions m_i/m |
| Medium1.ExtraProperty[Medium1.nC] | C1_start (from PartialChillerWSE) | fill(0, Medium1.nC) | Start value of trace substances |
| Medium1.ExtraProperty[Medium1.nC] | C1_nominal (from PartialChillerWSE) | fill(1E-2, Medium1.nC) | Nominal value of trace substances. (Set to typical order of magnitude.) |
| Initialization › Medium 2 | |||
| Medium2.AbsolutePressure | p2_start (from PartialChillerWSE) | Medium2.p_default | Start value of pressure |
| Medium2.Temperature | T2_start (from PartialChillerWSE) | Medium2.T_default | Start value of temperature |
| Medium2.MassFraction[Medium2.nX] | X2_start (from PartialChillerWSE) | Medium2.X_default | Start value of mass fractions m_i/m |
| Medium2.ExtraProperty[Medium2.nC] | C2_start (from PartialChillerWSE) | fill(0, Medium2.nC) | Start value of trace substances |
| Medium2.ExtraProperty[Medium2.nC] | C2_nominal (from PartialChillerWSE) | fill(1E-2, Medium2.nC) | Nominal value of trace substances. (Set to typical order of magnitude.) |
| Dynamics › Temperature Sensor | |||
| Modelica.Units.SI.Time | tauSenT (from PartialChillerWSE) | 1 | Time constant at nominal flow rate (use tau=0 for steady-state sensor, but see user guide for potential problems) |
| Modelica.Blocks.Types.Init | initTSenor (from PartialChillerWSE) | Modelica.Blocks.Types.Init.InitialState | Type of initialization of the temperature sensor (InitialState and InitialOutput are identical) |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Fluid.Interfaces.FluidPort_a | port_a1 (from PartialFourPort) | Fluid connector a1 (positive design flow direction is from port_a1 to port_b1) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b1 (from PartialFourPort) | Fluid connector b1 (positive design flow direction is from port_a1 to port_b1) | |
| Modelica.Fluid.Interfaces.FluidPort_a | port_a2 (from PartialFourPort) | Fluid connector a2 (positive design flow direction is from port_a2 to port_b2) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b2 (from PartialFourPort) | Fluid connector b2 (positive design flow direction is from port_a2 to port_b2) | |
| Modelica.Blocks.Interfaces.RealInput | TSet (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.BooleanInput | trigger (from PartialControllerInterface) | Resets the controller output when trigger becomes true | |
| Modelica.Blocks.Interfaces.RealInput | y_reset_in (from PartialControllerInterface) | Input signal for state to which integrator is reset, enabled if reset = Buildings.Types.Reset.Input | |
| Modelica.Blocks.Interfaces.RealOutput | TCHWSupWSE (from PartialChillerWSE) | Chilled water supply temperature in the waterside economizer | |
| Modelica.Blocks.Interfaces.RealOutput[numChi] | powChi (from PartialChillerWSE) | Electric power consumed by chiller compressor | |
| Modelica.Blocks.Interfaces.RealInput | yVal6 | Actuator position for valve 6 (0: closed, 1: open) | |
| Modelica.Blocks.Interfaces.RealInput | yVal5 | Actuator position for valve 5(0: closed, 1: open) |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Medium1.MassFlowRate | m1_flow (from PartialChillerWSEInterface) | port_a1.m_flow | Mass flow rate from port_a1 to port_b1 (m1_flow > 0 is design flow direction) |
| Modelica.Units.SI.PressureDifference | dp1 (from PartialChillerWSEInterface) | port_a1.p - port_b1.p | Pressure difference between port_a1 and port_b1 |
| Medium2.MassFlowRate | m2_flow (from PartialChillerWSEInterface) | port_a2.m_flow | Mass flow rate from port_a2 to port_b2 (m2_flow > 0 is design flow direction) |
| Modelica.Units.SI.PressureDifference | dp2 (from PartialChillerWSEInterface) | port_a2.p - port_b2.p | Pressure difference between port_a2 and port_b2 |
| Medium1.ThermodynamicState | sta_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.ThermodynamicState | sta_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.ThermodynamicState | sta_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.ThermodynamicState | sta_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.ElectricChillerParallel | chiPar (from PartialChillerWSE) | Chillers with identical nominal parameters but different performance curves | |
| Buildings.Applications.DataCenters.ChillerCooled.Equipment.WatersideEconomizer | wse (from PartialChillerWSE) | Waterside economizer | |
| Buildings.Fluid.Sensors.TemperatureTwoPort | senTem (from PartialChillerWSE) | Temperature sensor | |
| Fluid.FixedResistances.Junction | spl1 (from PartialChillerWSE) | Splitter | |
| Fluid.FixedResistances.Junction | jun1 (from PartialChillerWSE) | Junction | |
| Buildings.Fluid.Actuators.Valves.TwoWayLinear | val5 | Bypass valve: closed when fully mechanic cooling is activated; open when fully mechanic cooling is activated | |
| Buildings.Fluid.Actuators.Valves.TwoWayLinear | val6 | Bypass valve: closed when free cooling mode is deactivated; open when free cooling is activated | |
| Fluid.FixedResistances.Junction | spl2 | Splitter | |
| Fluid.FixedResistances.Junction | jun2 | Junction |
Revisions
-
November 1, 2021, by Michael Wetter:
Rerouted connection to avoid connections on top of each other in extending classes. -
April 13, 2021, by Kathryn Hinkelman:
Added junctions. -
July 1, 2017, by Yangyang Fu:
First implementation.