Minimum Nightly Flow is a simple calculation that can be set up in Info360 to estimate the leakage in each zone of your system, and is used around the world as a tool due to its accessible calculations.
Here is a recording of a webinar we hosted on using Info360 to monitor and minimize leakage in your system:
The premise of minimum nightly flow calculations is that you filter out what happens in your system just in the middle of the night when usage is at a minimum and leakage is at a peak. Background leakage is generally influenced by zonal pressures following an orifice flow relationship. In many systems the pressure is higher overnight while head loss is minimal and tanks fill up; this coincides with higher leakage. The following example chart shows this relationship (values are not to scale).
What do I need?
Minimum nightly flow can be calculated for either the full system or a particular zone where the usage can be isolated.
- Calculated water usage - the easiest way to get this is by setting up Mass Balance for the zone or system and then use the Usage output.
- One or more pressure sensors in the zone/system.
Approach
To calculate these values over time as data comes in, we'll set up a BizBlock that uses calculated usage in a zone or system as well as pressure measurements.
We can first filter out the usage and flow and only use values that occur during certain hours of the night, say from 3:00 to 4:00 AM.
If we subtract out our estimated actual billed usage during the night at that time, we can directly find the leakage at night. If we don't know that value (most of us don't), various strategies can be used such as tracking the lowest nightly usage over along period of time, or detecting when the usage drops to a lowest number and stays the same for several minutes at a time.
The numerically tricky part of the equation is using the nightime leakage to estimate the average leakage throughout the day. If the pressure is mostly stable, then the nightime leakage can be extrapolated throughout the day, otherwise we can determine the Day-Night factor based on the ratio of pressures throughout the day with an orifice relationship.
The day-night factor is calculated as:
Finally, the average leakage throughout the day is equal to (Minimum Nightly Flow - Nightime Usage) * Day-Night Factor.
Workflow
- Go to the BizBlock tab and create a new BizBlock with a name that specifies either your target zone or the full system.
- Add the BizBlock to your Workspace and set it to Design mode
- Set up the following Inputs and BizBlocks according to the tables and diagram below:
Input | Description |
---|---|
P1, P2, etc. | Input relevant pressure sensors that capture the average operating pressure of the zone or system. |
Usage | Set this input as the net flow volume used by the zone or system. This is most easily accomplished using the Usage output from a Mass Balance Network. |
StartTime | Set this as a constant value representing the first hour of the night to include in the minimum nightly flow. For example "3" will represent 3:00 AM. |
EndTime | Set this as a constant value representing the last hour of the night to include in the minimum nightly flow. For example "4" will represent 4:00 AM. |
N1 | Set as constant value equal to the orifice exponent for system leakage. N1 can be found via tests at night by monitoring the leakage while varying the pressure. This number typically ranges from 0.5 to 1.5, while around 1.15 is most common. |
Night_Use | Set this equal to the estimated average water consumption in the zone or system. Enter it in units equivalent to the Usage input above. By default, usage is output from Mass Balance in units of MG per hour. |
BizBlock | Calculation Time Step | Description |
---|---|---|
Zone_X_Pressure | Hourly | This block is used to simply aggregate relevant pressure feeds into one spatially averaged pressure feed. |
Zone_X_Nightime | Hourly | This block is where we filter out usage and pressure that happens only at night between StartTime and EndTime. The remaining daytime values are left as NULL. |
Zone_X_Daily | Daily | The purpose of this block is simply to turn the filtered hourly values at night into daily summary values. |
Zone_X_FDN | Hourly | This block compares the pressure each hour of the day against the nightime pressure to generate a day-night factor for estimating leakage throughout the day. |
Zone_X_Leakage | Daily | The final block calculates the average daily leakage. |
Output | Units | Function |
---|---|---|
AVG_P | Pressure | ({@P1}+{@P2}+{@P3}+{@P4})/4 Here we do a simple average of four input pressure sensors. Be sure to modify as needed, for example if you have three sensors, then divide by three. You can also do a weighted average, and set the denominator equal to the sum of the coefficients on each input pressure sensor. Tip: If any pressure sensor has a gap in data during your study period, you can use the Last() function to fill the gap and avoid getting an incorrect low average pressure. |
NightlyFlow | Volume/hour | IIF(((Hour() > {@StartTime} ) and (Hour() <= {@EndTime})),IIF({@Usage}>0, {@Usage},''), '') Here we pass the Usage input only if the current Hour() is between the start and end time. We also filter out negative values to preserve the integrity of later calculations. |
NightlyPressure | Pressure | IIF(((Hour() > {@StartTime} ) and (Hour() <= {@EndTime})),IIF({@AVG_P}>0, {@AVG_P},''), '') Here we pass the Avg_P values only if the current Hour() is between the start and end time. We also filter out negative values. |
Night_P | Pressure | Sum({@NightlyPressure},24)/CountValue({@NightlyPressure},24,0,'>') This assigns a constant value for all hours, based on the average of any values greater than zero. The input feed only has values at a couple hours of the day, which won't sample well when moving to Daily timesteps. |
MNF | Volume/day | Sum({@NightlyFlow},24)/CountValue({@NightlyFlow},24,0,'>')*24 This assigns a constant value for all hours, based on the average of any values greater than zero. The input feed only has values at a couple hours of the day, which won't sample well when moving to Daily timesteps. We also multiply by 24 here to convert hourly volumes to daily average volume. |
FDN | Unitless | Sum(Power({@AVG_P}/{@Night_P},{@N1}),24)/24 This equation determines the average leakage factor throughout the full day compared to just at night using an orifice relationship. |
Leakage | Volume/day | ({@MNF}-{@Night_Use}) * {@FDN} Finally we estimate leakage by subtracting the nighttime usage from MNF and multiply by the day-night factor. Feel free to apply any desired smoothing functions here as well to throw out spikes, such as Median() or WMA(). |