1. 개요[편집]
| WNTR Water Network Tool for Resilience | |
|---|---|
| 개발 | 미국 EPA · 샌디아 국립연구소 |
| 언어·라이선스 | Python · BSD 계열 오픈소스 |
| 입력 | EPANET .inp (읽고 쓰기 모두) |
| 솔버 | EpanetSimulator(툴킷 호출) · WNTRSimulator(자체 뉴턴) |
| 수요 모형 | 수요기반(DD) / 압력기반(PDD, Wagner 형) |
| 추가 물리 | 누수 오리피스, 관 파손, 상태 제어 |
| 대표 논문 | Klise 등 (2017), Environmental Modelling & Software |
관망 해석은 “평상시 압력이 얼마인가”를 오래 물어 왔다. WNTR은 질문을 바꾼다 — 지진이 나서 관 300개가 터졌을 때, 며칠 뒤에 몇 명이 물을 받는가.
WNTR(Water Network Tool for Resilience)은 미국 EPA와 샌디아 국립연구소가 만든 파이썬 상수관망 회복탄력성 해석 패키지로, EPANET 입력 파일을 그대로 읽어 재해 시나리오·손상·복구를 관망 위에 얹고 그 결과를 지표로 환산하는 도구다.
핵심은 “새 수리 엔진을 만들었다”가 아니다. 관망 수리 자체는 EPANET이 이미 잘 푼다. WNTR이 채운 자리는 그 바깥의 시나리오 층이다 — 어떤 관이 언제 터지고, 터진 관에서 물이 얼마나 새고, 압력이 떨어진 절점이 수요를 얼마나 못 받고, 수리반이 언제 도착해 무엇을 막으며, 그 전체 과정을 하나의 숫자로 어떻게 요약하는가. 이 층은 원래 각 연구실이 EPANET 툴킷 위에 매번 새로 짜던 것이었고, WNTR은 그것을 표준화했다.1
관망을 네트워크 흐름이 아니라 회복탄력성을 가진 기반시설로 보는 관점 자체는 지진공학에서 왔다. 손상 → 기능 저하 → 복구로 이어지는 시간 곡선을 그리고 그 아래 면적을 재는 방식이 그대로 이식되어 있다.
2. 두 개의 시뮬레이터[편집]
WNTR은 같은 관망 객체를 두 엔진으로 돌릴 수 있고, 이 이원 구조가 설계의 전부다.
EpanetSimulator — EPANET 2.2 툴킷을 그대로 호출한다. C 코드라 빠르고, EPANET의 전역 경사법과 수질 모듈을 통째로 물려받는다. 수천 개 시나리오를 돌리는 앙상블에서는 사실상 이쪽만 쓴다.
WNTRSimulator — 파이썬으로 다시 쓴 정상류 해석기다. 절점 연속식과 관로 손실식을 대수 모형으로 조립해 야코비안을 만들고, 감쇠 뉴턴-랩슨법으로 푼 뒤 희소행렬 LU로 각 반복을 처리한다. 알고리즘 자체는 EPANET과 크게 다르지 않다. 존재 이유는 방정식을 열어 둔다는 것 하나다.
- 누수 오리피스처럼 EPANET에 없는 항을 방정식에 직접 추가할 수 있다.
- 시뮬레이션을 시간 스텝 도중에 멈추고 관망 객체를 파이썬에서 뜯어고친 뒤 이어서 돌릴 수 있다. “3시간 뒤 관 두 개를 잠그고 다시 계산” 같은 복구 논리가 자연스럽게 표현된다.
- 압력 부족으로 절점이 아예 물을 못 받는 상황에서도 계가 붕괴하지 않도록 수요 함수를 매끄럽게 다듬어 둔다.
대가는 속도다. 파이썬 반복이라 큰 관망에서는 EPANET보다 눈에 띄게 느리다. 그래서 실무 워크플로는 대개 **“기본 수리는 EpanetSimulator, 누수·복구가 얽힌 구간만 WNTRSimulator”**로 갈린다. EPANET 2.2가 압력 의존 수요를 흡수하면서 둘의 격차가 줄었지만, 누수 항과 중간 개입은 여전히 WNTRSimulator의 몫이다.
3. 압력기반 수요 — 왜 이게 회복탄력성의 전제인가[편집]
기본 관망 해석(수요기반, DD)은 절점 수요를 주어진 상수로 놓는다. 압력이 10 m든 −30 m든 지정한 유량이 나온다고 가정한다. 정상 운영에서는 무해하지만, 관이 터진 순간 이 가정은 답을 통째로 뒤집는다 — 압력이 음수인 절점에서 물이 콸콸 나오는 결과가 나오고, 그 물이 어디서 왔는지는 아무도 묻지 않는다.
그래서 재해 해석은 압력기반 수요(PDD)를 전제로 한다. 바그너(Wagner 등, 1988) 형이 사실상 표준이다.
는 요구 수요, 는 물이 나오기 시작하는 최소 압력(보통 0), 는 요구 수요가 전부 나오는 압력(관행적으로 20 m 안팎)이다. 지수 은 결국 오리피스 식이다 — 수도꼭지도 구멍이니까.
수치적으로 이 식에는 함정이 있다. 와 에서 미분이 꺾인다. 뉴턴 반복이 그 꺾임 위를 지나가면 야코비안이 튀고 수렴이 멈춘다. WNTR은 두 전이점 부근을 3차 다항식으로 이어 붙여 도함수를 연속으로 만든다. MODFLOW가 마른 셀에서 포화도 함수를 매끄럽게 다듬는 것과 정확히 같은 처방이며, 두 분야가 독립적으로 같은 결론에 도달한 사례다.
4. 누수와 관 파손[편집]
WNTR은 손상을 두 종류로 구분한다.
- 누수(leak) — 관에 구멍이 나 물이 새지만 통수는 계속된다. 절점에 오리피스 방출항을 붙인다.
는 방출계수(기본 0.75), 는 누수 면적, 는 누수 지수로 기본값이 다. 다만 현장 실측 지수는 0.5가 아닌 경우가 훨씬 많다. 플라스틱 관에서는 압력이 오르면 균열 자체가 벌어져 가 커지므로 유효 지수가 1을 넘고, 배수구역 실측에서 1.15 근처의 평균값이 반복 보고된다. 즉 이 지수는 물리상수가 아니라 관종과 균열 형태를 흡수하는 보정값이다.2
- 파손(break) — 관이 끊어져 양쪽이 분리된다. 관을 자르고 양 끝에 큰 누수를 다는 방식으로 표현한다.
여기서 실무적으로 중요한 것이 하나 더 있다. 터진 관을 고치려면 밸브를 잠가 구간을 격리해야 하는데, 잠글 수 있는 밸브가 어디 있느냐에 따라 실제로 단수되는 범위가 관 하나보다 훨씬 커진다. WNTR은 밸브 배치를 별도 레이어로 받아 밸브 구간(valve segment)을 계산한다 — 밸브만 보고 관망을 조각으로 나눈 뒤, 각 조각의 크기와 그 조각을 끊는 데 필요한 밸브 수를 센다. 관망 신뢰성이 관 자체가 아니라 밸브 대장의 품질에 걸려 있다는 사실이 이 계산에서 정면으로 드러난다.
5. 재해 시나리오 — 지진을 예로[편집]
wntr.scenario 는 재해를 손상 확률로 바꾸는 사슬을 제공한다. 지진의 경우 흐름은 이렇다.
- 진원 정보 → 지반운동. 진앙 위치·규모·심도에서 각 관의 위치까지 거리를 재고, 감쇠식(가와시마 등, 1984 계열)으로 PGA·PGV를 준다.
- 지반운동 → 파손율. 미국 ALA(2001)의 매설관 취약 함수를 쓴다. 단위 길이당 파손율이 PGV에 선형이고, 관종·관경·접합 방식·부식 상태를 곱셈 보정계수로 흡수하는 형태다. 주철 접합관은 계수가 크고 용접 강관이나 HDPE는 작다.
- 파손율 → 손상 개수. 길이 인 관의 손상 개수를 평균 인 푸아송 분포에서 뽑는다. 뽑힌 손상은 다시 누수와 파손으로 나뉘는데, ALA의 관행값은 지진동에 의한 손상은 누수 80% · 파손 20%, 지반 영구변형(액상화·단층변위)에 의한 손상은 그 비율이 뒤집힌다. 지반이 어긋나면 관이 새는 게 아니라 끊어진다는 뜻이다.
- 탱크·펌프. 이쪽은 관과 달리 대수정규 취약도 곡선으로 손상 상태를 뽑는다.
지진만 있는 것은 아니다. 정전(펌프 정지), 화재(소화전 유량 요구), 오염물질 주입, 관 노후에 의한 무작위 파손이 같은 골격에서 표현된다. 정전은 특히 얌전한 시나리오처럼 보이지만, 고지대 배수지가 비는 데 걸리는 시간이 짧으면 관 하나 안 터지고도 단수가 난다.
모든 시나리오는 결국 확률적이다. 손상 위치는 뽑기이고, 그래서 WNTR 해석의 최소 단위는 한 번의 실행이 아니라 몬테카를로 방법으로 뿌린 수백~수천 개 실현의 앙상블이다.
6. 회복탄력성 지표[편집]
손상과 복구를 시간에 따라 돌린 뒤 남는 것은 절점별·시각별 압력과 공급량의 거대한 표다. 이걸 사람이 읽을 숫자로 줄이는 것이 wntr.metrics 다.
물 공급 가용성(water service availability)이 가장 직관적이다. 실제 공급량을 요구 수요로 나눈 비다.
시간에 대해 그리면 재해 직후 뚝 떨어졌다가 복구와 함께 1로 돌아오는 곡선이 나오고, 1에서 그 곡선을 뺀 면적이 곧 “잃어버린 물”이다. 지진공학의 회복탄력성 삼각형과 같은 구조다. 여기에 절점별 급수 인구를 곱하면 영향 인구가 된다 — 보고서에 실제로 실리는 숫자는 대개 이쪽이다.
토디니 지수(Todini, 2000)는 성격이 다르다. 손상 후가 아니라 평상시 관망이 여유 에너지를 얼마나 갖고 있는가를 잰다.
분자는 각 절점에서 요구 수두 를 넘겨 실제로 전달된 잉여 동력, 분모는 수원과 펌프가 넣은 총 동력에서 요구 동력을 뺀 값, 즉 잉여로 쓸 수 있었던 최대치다. 가 1에 가까우면 관망이 손실을 거의 안 내고 여유 수두를 그대로 들고 있다는 뜻이고, 0에 가까우면 마찰로 다 태워 버려 어떤 교란에도 버틸 여유가 없다는 뜻이다.
이 지수를 어떻게 읽어야 하는지는 논쟁이 있다. 토디니 지수를 올리는 가장 쉬운 방법은 관을 굵게 까는 것인데, 굵은 관은 체류시간을 늘려 잔류염소를 잡아먹는다. 회복탄력성과 수질이 정면으로 충돌하는 지점이고, 그래서 관망 최적설계는 언제나 다목적 문제가 된다.
지형적 지표도 있다. 관망을 그래프로 보고 절단점(articulation point)·다리(bridge)·차수 분포·중심성을 계산하는 것으로, 복잡 네트워크 쪽 도구를 그대로 가져온다. 유량을 안 풀어도 되니 싸다는 것이 장점이고, 수리적 여유를 전혀 모른다는 것이 한계다. 그래프상 다리인 관이 실제로는 평소 유량이 거의 없어 끊겨도 아무 일도 안 일어나는 경우가 흔하다.
7. 복구 스케줄[편집]
WNTR의 복구는 최적화가 아니라 제어 규칙으로 표현된다. “시각 에 관 의 누수를 닫는다” 같은 조건을 관망 객체에 넣고 돌리면 그 시각부터 계가 바뀐다. 수리반 수·이동 시간·부품 재고 같은 자원 제약은 사용자가 바깥에서 스케줄을 만들어 넣는 방식이고, WNTR이 대신 풀어 주지는 않는다.
이 설계는 정직하다. 복구 순서 최적화는 그 자체로 조합 문제이고, 현실의 제약은 지자체마다 다르다. 대신 WNTR은 주어진 순서를 빠르게 평가하는 쪽에 집중해, 바깥에 유전 알고리즘이나 강화학습을 두고 목적함수 평가기로 쓰는 사용법을 열어 뒀다.
8. 한계[편집]
- 정상류다. EPANET과 마찬가지로 확장기간 모의(EPS)이므로 관성과 압력파가 없다. 밸브를 급히 닫는 순간의 수충격은 이 모형의 세계에 존재하지 않는데, 하필 지진 시나리오는 밸브를 급히 닫는 이야기다. 압력 이력을 근거로 “2차 파손이 없다”고 말하면 안 되는 이유.
- 취약 함수가 답을 정한다. 감쇠식과 파손율식의 계수는 대부분 북미·일본 지진 자료에서 왔다. 관종 구성과 매설 환경이 다른 나라에 그대로 옮기면, 앙상블을 아무리 크게 돌려도 그 편향은 안 씻긴다. 불확실성 정량화를 아무리 정성껏 해도 취약 함수 자체의 불확실성은 그 바깥에 있다.
- 자료 문제는 EPANET에서 그대로 상속한다. 관 조도, 수요 배분, 그리고 특히 밸브 대장. 밸브 구간 계산은 밸브 위치를 안다는 전제 위에 서 있는데, 40년 된 관망에서 그 전제가 성립하는 곳은 많지 않다.
- 수질은 EPANET 엔진에서만 돈다. WNTRSimulator에는 수질 모듈이 없어서, 누수를 켠 해석과 수질 추적을 한 번에 하려면 워크플로를 나눠야 한다.
- 회복탄력성이 하나의 숫자가 아니다. WSA·토디니 지수·영향 인구·격리 구간 크기는 서로 다른 방향을 가리키고, 어떤 대책은 하나를 올리며 다른 하나를 내린다. 지표를 고르는 행위가 이미 정책 결정이며, 결함수 분석 같은 전통적 신뢰성 기법과 마찬가지로 답보다 질문의 설계가 어렵다.3
9. 관련 문서[편집]
- EPANET · 하젠-윌리엄스 식 · 달시-바이스바흐 식 · 하디-크로스법
- 관유동 · 수충격 · SWMM
- 뉴턴-랩슨법 · 희소행렬 · 촐레스키 분해
- 네트워크 흐름 · 그래프 분할 · 최소 신장 트리
- 몬테카를로 방법 · 불확실성 정량화 · 신뢰성 해석 · 민감도 해석
- 유전 알고리즘 · 선형계획법 · 역문제
- 검증 및 확인 · 극값 통계
10. Footnotes[편집]
-
이 “표준화”의 값어치를 과소평가하면 안 된다. 2010년대 초 관망 회복탄력성 논문들은 저마다 EPANET 툴킷을 감싼 자기 코드로 지진 시나리오를 돌렸고, 그 코드는 논문과 함께 사라졌다. 결과를 비교할 방법이 없으니 분야가 축적되지 않았다. 지금 WNTR 논문의 절반이 “우리 지표가 더 낫다”를 주장하는 논문인데, 적어도 같은 판 위에서 싸울 수 있게 됐다는 점이 진짜 기여다. ↩
-
누수 지수 이야기는 현장에서 꽤 정치적이다. 지수가 1보다 크면 “압력을 낮추면 누수가 압력보다 빠르게 준다”가 되어 압력관리 사업의 근거가 되기 때문이다. 실제로 배수구역 압력을 10% 낮춰 누수를 15% 줄였다는 보고가 이 지수에 기대어 나온다. 물론 압력을 낮추면 고지대 민원도 같이 온다. 이 바닥의 모든 최적화가 그렇듯, 손잡이 하나에 두 개의 부서가 매달려 있다. ↩
-
회복탄력성 지표의 난점을 한 줄로 요약하면 “곡선 아래 면적은 재해 규모와 복구 속도를 구분하지 못한다”이다. 큰 재해를 빨리 복구한 관망과 작은 재해를 느리게 복구한 관망이 같은 점수를 받는다. 그래서 실무 보고서는 결국 지표 하나가 아니라 곡선 그림을 붙이고, 심의위원은 그 그림의 밑바닥이 언제인지부터 본다. 사람은 면적보다 최저점을 무서워한다. ↩