Worked example: a tank filled by a pump on level control
Written by Haimi Jordaan, MEng (Mechanical), University of Pretoria. Seven years in a specialist engineering analysis and design group across CFD, FEA and DEM. He wrote the solver behind Fluid Network Studio.Published . Last updated .
Most pipe-network questions are steady-state, but a tank filling and draining is not: the level rises and falls over time, and a pump switches on and off to keep it between two thresholds. This worked example is a time simulation (an extended-period run) of exactly that, and it is where you watch a network behave over a timeline rather than at a single instant.
The setup
A pump draws from a source at zero head and lifts water into an open tank, with a head-flow curve from 20 m at shut-off to 15 m at 50 L/s and zero at 100 L/s. The tank has a plan area of 3 square metres, an initial level of 2 m and a working range of 0 to 10 m. A leak line, 200 m of DN150 pipe, drains the tank continuously to a sink at zero head.
The control is a level trigger with a deadband: the pump starts when the tank level falls below 2 m and stops when it rises above 5 m. The run uses a time step of 20 seconds over a total of 2000 seconds, long enough to see several on-off cycles.
The physics and the method
This is a quasi-steady (extended-period) simulation. At each time step the solver treats the tank level as a fixed head and solves the steady hydraulics of the pump and the leak line, then integrates the tank level forward over the step from the net inflow, the pump delivery minus the leak. The level trigger switches the pump with hysteresis, so once it starts it runs until the level clears 5 m, and once it stops it stays off until the level drops back below 2 m. The result is a saw-tooth: the level climbs while the pump runs and falls while it rests.
This is a slow, level-driven transient, not water hammer or surge. Fluid Network Studio models the change in tank storage over time, not the pressure waves that travel when a valve slams. Those fast, inertial transients stay with the specialist surge packages.
The solved result
A time simulation has no single steady answer to publish, because the heads and flows change at every one of the 101 recorded timesteps. What it does have is a duty cycle, and that settles into a clean repeating pattern: the pump runs 140 seconds in every 500.
| Quantity | Value |
|---|---|
| Pump run time per cycle | 140 s |
| Pump rest time per cycle | 360 s |
| Cycle period | 500 s |
| Duty cycle | running 140 s in every 500, so 28 per cent of the time |
| Tank level range over the run | 1.943 m to 5.063 m |
| Pump delivery while running | up to 95.02 L/s |
| Leak flow at the moment the pump starts, level 1.943 m | 19.32 L/s |
| Leak flow at the moment the pump stops, level 5.063 m | 31.37 L/s |
| Tank storage residual over the whole run | 0 m3 |
The switching times over the 2000 second run, which begins with the pump already running:
| Time (s) | Event |
|---|---|
| 140 | pump stops, tank has reached 5.063 m |
| 500 | pump starts, tank has fallen to 1.943 m |
| 640 | pump stops |
| 1000 | pump starts |
| 1140 | pump stops |
| 1500 | pump starts |
| 1640 | pump stops |
| 2000 | pump starts, on the last recorded step of the run |
Two things fall out of this. The first is the asymmetry: filling takes 140 seconds and draining takes 360, because the pump adds far more than the leak takes away while it runs, so the tank recovers quickly and then drains slowly. The second is the overshoot. The stop threshold is 5 m and the tank actually reaches 5.063 m, and the start threshold is 2 m while the tank actually falls to 1.943 m. That is not an error, it is the timestep: with a 20 second step the level is only tested every 20 seconds, so it can carry a little past the threshold before the trigger sees it. Shorten the step and the overshoot shrinks. It is a good reminder that in an extended-period simulation the timestep is part of the answer, not just a setting.
Note what is deliberately not in that table. There are no surge pressures, no wave speeds and no pipe-inertia terms, because this is a quasi-steady run: each step solves the steady network at the current tank level and then integrates the level forward. Storage is the only dynamics modelled. The storage balance closes exactly across the run, with a residual of 0 cubic metres.
Every figure above comes from the transient engine driving the same verified steady solve at each step, not from a hand calculation. Open the example, press Solve, and scrub the timeline to read the level plot for yourself.
What you learn
Solve the example, then play or scrub the timeline and select the tank to read its level-versus-time plot. The duty cycle is right there: how long the pump runs, how long it rests, and how the period depends on the tank area and the leak-line size. Shrink the tank area or widen the leak and the pump cycles faster. Time simulation is included on every plan, so this example is free to run and explore. The method behind it is described on the how it works page.
Open this example in FNS and shrink the tank area to see the pump cycle faster.