How can I model controls that cycle between multiple pumps? Meaning, based on the same set of on and off conditions, the first time the condition occurs to turn on a pump, the first pump turns on, and the next time the same condition occurs, a second, different pump turns on instead, and so on.
First, consider if it is hydraulically relevant to the design and decision-making. Meaning, if for example the two pumps are in parallel and have the same pump curve, you could simply use controls on one pump and achieve the correct hydraulic results, without having to add additional complexity to the model.
If cycling between different pumps is necessary, there are two possible solutions - manually set up time-based controls, or use a fictitious pipe as a control variable to construct the control logic. Both methods are described below.
One option is to set up controls based on clock time or time from start. With this approach, you won't be able to have conditions based on other things like tank HGL. For example:
The two simple controls take care of the initial (time zero) conditions and then the other two controls with composite control conditions swap the pump status every 24 hours.
Here is the graph of flow through pumps with, one pump running for 24 hrs, then the other.
Another way of modeling cycling pumps using logical controls is to use a variable based on the status of a fictitious pipe. An example model is available below to demonstrate this concept, which was created in WaterGEMS/WaterCAD version 08.11.02.31. To open this model, you will need to be using this version or a newer version (including CONNECT Edition) In order for the cycling to work, you will need a fictitious pipe as a control variable. This pipe will open and closed based on the controls and will help govern which pump is open to supply the demands and fill the tank downstream of the pumps (or any other condition). Assume that the condition is based on a tank called T-1, the pumps are called PMP-1 and PMP-2, and the fictitious pipes are called Control Pipe and Fake Pipe. Fake Pipe is only there to help avoid "system disconnection" user notifications; Fake Pipe will be left open at all times. See the image below for the general setup:
If you want the Pump-1 to supply the tank first, Pump-2 will be off and Control Pipe will be closed. Then set up the controls to say:IF (T-1 HGL<xxx) and (Control Pipe Status = Closed), THEN (PMP-1 status = On)To turn off Pump-1:IF (T-1 HGL>xxx) and (PMP-1 Status = On), THEN (PMP-1 status = Off) and (Control Pipe Status = Open)Then for Pump-2 to supply the tank:IF (T-1 HGL<xxx) and (Control Pipe Status = Open), THEN (PMP-2 status = On)To turn off Pump-2:IF (T-1 HGL>xxx) and (PMP-2 status = On), THEN (PMP-2 status = Off) and (control Pipe Status = Closed)
Note that this workflow could be used with the GVF-Convex (SewerCAD) solver as well, available in SewerCAD and SewerGEMS. The sample model below is not compatible with SewerCAD.
If you need to cycle between three or more pumps, you can extend the same general concept, using two or more fictitious pipes in order to have multiple combinations of open and closed, to determine which pump should turn on next. Here is a shortened example of cycling between three pumps:
Cycling between Pumps - WaterGEMS model
Creating Controls - Conditions, Actions and Control Sets for WaterGEMS and WaterCAD SELECTseries 6