Розробка AI-системи оптимізації водопостачання та водовідведення
Водопостачання – критична інфраструктура з мінімальним рівнем цифровізації у більшості міст. AI оптимізує роботу насосних станцій, виявляє витоку та керує якістю води в реальному часі.
Управління насосними станціями
Оптимізація розкладу насосів:
Насоси – найбільший споживач електроенергії у водопостачанні. Завдання: підтримувати тиск та рівні резервуарів за мінімальних витрат на електроенергію:
import numpy as np
from scipy.optimize import minimize
import pandas as pd
class PumpScheduleOptimizer:
"""Оптимизация расписания насосов с учётом тарифной сетки"""
def __init__(self, n_pumps, reservoir_capacity_m3):
self.n_pumps = n_pumps
self.V_max = reservoir_capacity_m3
self.V_min = reservoir_capacity_m3 * 0.2 # мин. 20% объёма
def optimize_24h(self, demand_forecast, tariff_schedule, pump_specs, V_init):
"""
demand_forecast: потребление по часам [м³/ч]
tariff_schedule: тариф электроэнергии по часам [руб/кВтч]
pump_specs: [{flow_m3h, power_kw, min_run_time_h}]
V_init: начальный уровень резервуара [м³]
"""
T = 24 # горизонт 24 часа
# Решение задачи LP: [on/off] каждого насоса в каждый час
from pulp import LpProblem, LpMinimize, LpVariable, lpSum, LpBinary
prob = LpProblem("pump_schedule", LpMinimize)
# Бинарные переменные: насос i включён в час t
pump_on = [[LpVariable(f"pump_{i}_{t}", cat='Binary')
for t in range(T)] for i in range(self.n_pumps)]
# Переменная уровня резервуара
V = [LpVariable(f"V_{t}", lowBound=self.V_min, upBound=self.V_max)
for t in range(T+1)]
V[0].setInitialValue(V_init)
# Цель: минимизировать стоимость электроэнергии
prob += lpSum(
pump_specs[i]['power_kw'] * pump_on[i][t] * tariff_schedule[t]
for i in range(self.n_pumps) for t in range(T)
)
# Баланс резервуара
for t in range(T):
inflow = lpSum(pump_specs[i]['flow_m3h'] * pump_on[i][t]
for i in range(self.n_pumps))
prob += V[t+1] == V[t] + inflow - demand_forecast[t]
prob.solve()
return [[pump_on[i][t].value() for t in range(T)] for i in range(self.n_pumps)]
Ефект оптимізації:
За рахунок зсуву роботи насосів на нічний годинник (дешевий тариф): економія 15–25% від витрат на електроенергію за того ж обсягу подачі води.
Виявлення витоків
Балансовий метод:
Матеріальний баланс: обсяг подачі (лічильники на насосних) – обсяг споживання (лічильники у абонентів) = втрати. Non-Revenue Water (NRW) у РФ: 20-40% - типовий рівень.
Pressure transient analysis:
Витоки створюють характерні зміни тиску в мережі: - Sudden pressure drops: прорив труби - Gradual trend: повільний витік через дефект - LSTM на тимчасових лавах тиску → детекція аномалій
Просторова локалізація витоку:
- Кореляційний метод: два акустичні датчики → затримка звуку → відстань до витоку – ML на мережі датчиків тиску: від якого вузла розходяться аномалії → зона пошуку
Точність локалізації: 50-100 м без виїмки ґрунту.
Якість води
Онлайн-моніторинг параметрів:
IoT датчики на розподільній мережі та у споживачів: - Хлор залишковий: повинен бути >0.05 мг/л по всій мережі (СанПіН 2.1.3684) - Мутність, pH, температура - Нітрати, амоній (точки водозабору)
Модель поширення хлору:
Гідравлічна модель + кінетика споживання хлору (EPANET2): - прогноз концентрації хлору в будь-якій точці мережі; - оптимізація дозування хлору: мінімальна доза → забезпечити норму у всій мережі
Детекція забруднення:
Атиповий профіль кількох параметрів одночасно → ML-класифікатор → alert: - турбидність + pH відхилення + органіка - геолокування: в якому районі мережі виникло → ймовірне джерело
Управління мережею водовідведення
Прогноз витрати в колекторах:
При зливах об'єм поверхневого стоку + стічних вод = ризик переповнення: - LSTM на даних дощомірів + рівнів у колекторах - Прогноз за 1-2 години → pre-emptive керування засувками
Оптимізація режиму насосних станцій каналізації:
Аналогічно водопостачанню: згладити піки надходження → уникнути перевантаження КОС (каналізаційні очисні споруди), використовувати ємність колекторів, що акумулює.
Термін розробки: 4-7 місяців для AI-системи водопостачання з оптимізацією насосів, моніторингом втрат та якості води.







