Smart Water Grid

Smart Water Grid spoort lekken sneller op

Lekken in het drinkwaternet zorgen voor waterverliezen en financiële kosten. Via een Smart Water Grid kan een waterlek sneller worden opgespoord en gedicht.

Een waterlek opsporen is traditioneel een hele klus. Het drinkwaternet is ingedeeld in zones, van tweehonderd tot maximaal duizend klanten. De hoeveelheid water die naar elke zone gaat, wordt nauwkeurig gemeten. Doordat het verbruiksprofiel binnen een zone gekend is, kunnen mogelijke lekken worden opgespoord. Als het nachtverbruik in een zone bijvoorbeeld plots sterk toeneemt, dan is er wellicht een probleem.

introductie foto Smart Water Grid spoort lekken sneller op

Efficiënter 

In een volledige zone naar een lek beginnen speuren, is nog altijd niet eenvoudig. “Een Smart Water Grid kan lekken gerichter opsporen op basis van data-analyse”, zegt Nele Philips, programmabeheerder Onderzoek en Ontwikkeling. “Binnen zo’n grid combineren we de verbruiksgegevens van een zone met gegevens van draadloze druksensoren en feedback van technici en klanten. We ontwikkelen een digital twin die onder meer gebruik maakt van GIS-data en machine learning. Op die manier kunnen we een lek sneller en efficiënter vinden en dichten.” Smart Water Grid is een gesubsidieerd Imec:ICON-project, met Hydroscan, Aloxy en Itineris als industriële partners en financiële steun van VLAIO.

function swipedetect(el, callback){ var touchsurface = el, swipedir, startX, startY, distX, distY, threshold = 200, //required min distance traveled to be considered swipe restraint = 100, // maximum distance allowed at the same time in perpendicular direction allowedTime = 300, // maximum time allowed to travel that distance elapsedTime, startTime, handleswipe = callback || function(swipedir){} touchsurface.addEventListener('touchstart', function(e){ var touchobj = e.changedTouches[0] swipedir = 'none' dist = 0 startX = touchobj.pageX startY = touchobj.pageY startTime = new Date().getTime() // record time when finger first makes contact with surface e.preventDefault() }, false) touchsurface.addEventListener('touchmove', function(e){ e.preventDefault() // prevent scrolling when inside DIV }, false) touchsurface.addEventListener('touchend', function(e){ var touchobj = e.changedTouches[0] distX = touchobj.pageX - startX // get horizontal dist traveled by finger while in contact with surface distY = touchobj.pageY - startY // get vertical dist traveled by finger while in contact with surface elapsedTime = new Date().getTime() - startTime // get time elapsed if (elapsedTime <= allowedTime){ // first condition for awipe met if (Math.abs(distX) >= threshold && Math.abs(distY) <= restraint){ // 2nd condition for horizontal swipe met swipedir = (distX < 0)? 'left' : 'right' // if dist traveled is negative, it indicates left swipe } else if (Math.abs(distY) >= threshold && Math.abs(distX) <= restraint){ // 2nd condition for vertical swipe met swipedir = (distY < 0)? 'up' : 'down' // if dist traveled is negative, it indicates up swipe } } handleswipe(swipedir) e.preventDefault() }, false) } window.addEventListener('load', function(){ var el = document.getElementById('prevnextbar') var nextpage = document.getElementById('nextpage') var prevpage = document.getElementById('prevpage') swipedetect(el, function(swipedir){ if (swipedir != 'right'){ prevpage.click() } if (swipedir != 'left'){ nextpage.click() } }) }, false)