Surprisingly, EnergyPlus still lacks a feature of variable condenser water flow as of V23-2-0. I referred to @Julien Marrec and @Gio 's 4 year old answers.
My case is as follows. The condenser water loop has 6 nos. of CoolingTower:SingleSpeed
and one HeaderedPumps:VariableSpeed
with 6 pumps in bank.
After much consideration, my EMS was finally as follows.
SetpointManager:FollowOutdoorAirTemperature,
CHWloop CndW Temp Manager, !- Name
Temperature, !- Control Variable
OutdoorAirWetBulb, !- Reference Temperature Type
3.6, !- Offset Temperature Difference {deltaC}
32, !- Maximum Setpoint Temperature {C}
5, !- Minimum Setpoint Temperature {C}
CHWloop CndW Supply Setpoint Nodes; !- Setpoint Node or NodeList Name
EnergyManagementSystem:Sensor,
ChW_Supply_Cooling_Demand, !- Name
CHWloop Chilled Water Loop, !- Output:Variable or Output:Meter Index Key Name
Plant Supply Side Cooling Demand Rate; !- Output:Variable or Output:Meter Name
EnergyManagementSystem:Sensor,
CndW_Supply_Inlet_Temp, !- Name
CHWloop Condenser Water Loop, !- Output:Variable or Output:Meter Index Key Name
Plant Supply Side Inlet Temperature ; !- Output:Variable or Output:Meter Name
EnergyManagementSystem:Sensor,
Site_OA_WB, !- Name
Environment, !- Output:Variable or Output:Meter Index Key Name
Site Outdoor Air Wetbulb Temperature ; !- Output:Variable or Output:Meter Name
EnergyManagementSystem:Sensor,
CndW_Demand_Outlet_Temp, !- Name
CHWloop CndW Demand Outlet, !- Output:Variable or Output:Meter Index Key Name
System Node Temperaure ; !- Output:Variable or Output:Meter Name
EnergyManagementSystem:Actuator,
CndW_Supply_Pump_Mass_Flow, !- Name
CndW Supply Pump,!- Actuated Component Unique Name
Pump, !- Actuated Component Type
Pump Mass Flow Rate; !- Actuated Component Control Type
EnergyManagementSystem:ProgramCallingManager,
EMS_PCM_CndW_Supply_Pump_Mass_Flow_Override, !- Name
InsideHVACSystemIterationLoop, !- EnergyPlus Model Calling Point
EMS_Program_CndW_Supply_Pump_Mass_Flow_Override; !- Program Name 1
EnergyManagementSystem:Program,
EMS_Program_CndW_Supply_Pump_Mass_Flow_Override, !- Name
IF ChW_Supply_Cooling_Demand == 0, !- Program Line 1
SET CndW_Supply_Pump_Mass_Flow = 0, !- Program Line 2
ELSEIF CndW_Supply_Inlet_Temp <= 5, !- A4
SET CndW_Supply_Pump_Mass_Flow = 80.3, !- A5
ELSEIF CndW_Demand_Outlet_Temp >= 40, !- A6
SET CndW_Supply_Pump_Mass_Flow = 963.8, !- A7
ELSEIF Site_OA_WB <= 1.4, !- A8
SET CndW_Supply_Pump_Mass_Flow = @MIN (@MAX 20.075 (ChW_Supply_Cooling_Demand * 1.25 / 4180 / (CndW_Supply_Inlet_Temp - 5))) 963.8, !- A9
ELSE, !- A10
SET CndW_Supply_Pump_Mass_Flow = @MIN (@MAX 20.075 (ChW_Supply_Cooling_Demand * 1.25 / 4180 / (CndW_Supply_Inlet_Temp - (Site_OA_WB + 3.6)))) 963.8, !- A11
ENDIF; !- A12
The chart below shows the condensor water pump flow rate of two cases (No EMS and With EMS) in May as an example. The building has retails, restaurants and plant rooms, and chillers run 24h/day. Please note that since the condenser water pump is a headered pump with 6 pumps in bank, the condenser water flow rate varies to some extent according to the number of cooling towers in operation even if there is no EMS. HeaderedPumps:VariableSpeed
acts as if it is HeaderedPumps:ConstantSpeed
if there is no EMS.
The annual electricity end uses are -51.4% condenser water pump, +8.8% heat rejection, +0.3% cooling, and -0.1% chilled water pump in my case. The total end use of above 4 categories is -10.3%. No increase in the cooling unmet hours.
Here are some findings.
I had to use Plant Supply Side Cooling Demand Rate
[W] of Chilled water loop instead of Condenser water loop to calculate Pump Mass Flow Rate
of the condenser water pump. When I used Plant Supply Side Cooling Demand Rate
[W] of Condenser ...
(more)