供水管网水力计算引擎OWA-EPA 2.2特性分析及应用
0 引言
目前,OWA-EPANET Toolkit 2.2(以下简称EPANET 2.2)是US EPA的官方版本
1 EPANET 2.2的主要改进
1.1 计算引擎的改进
1.1.1 支持压力驱动分析
EPANET 2.0的计算引擎采用需水量驱动分析(Demand Driven Analysis,DDA)进行水力计算。DDA在水力模拟过程中节点的需水量与节点的压力水头无关,始终等于节点的设计用水量。实际工程中,节点的需水量和该节点的压力水头紧密相关。当压力水头低于该节点产生流量的最小水头时,节点的可用水量为0;当压力水头大于该节点的设计水头时,该节点的需水量等于设计用水量;当压力水头介于节点产生流量的最小水头和设计水头之间时,节点的可用水量满足特定的函数关系见式(1),这种方法称为压力驱动分析(Pressure Driven Analysis,PDA)

式中α———节点流量的调节系数;
Q———节点的可用水量;
Qreq———节点的设计用水量;
H———节点实际压力水头;
Hmin———节点产生流量的最小水头;
Hreq———节点的设计水头。
EPANET 2.2中采用Wanger等

EPANET 2.2中压力驱动分析的配置过程十分简洁,可以通过三种方式实现:(1)在集成开发环境中调用EN_setdemandmodel函数设置;(2)按照EP-ANET输入文件的格式直接在inp文件中设置;(3)在EPANET桌面环境下通过模拟选项(Options)—水力类(Hydraulics)—需水量模型(Demand Model)进行设置。
1.1.2 提高单周期水力模拟速度
EPANET水力计算引擎通过Todini等
EPANET 2.2使用更有效的多重极小度(Multiple Minimum Degree)算法改进了节点重排序过程,因此可以缩短单周期水力模拟的时间。然而,由于节点重排序算法只需在加载管网文件时执行一次,对于延时模拟(Extended Period Simulation)分析,大部分时间会消耗在迭代运算中,所以整体速度提升并不明显。
1.1.3 改善低/零流量情况下的模拟结果
当管道流量接近0时,EPANET水力求解器(Hydraulic Solver)得到的水头损失梯度也接近于0,从而导致管道流量的倒数趋向无穷大;然而这一数值又是解矩阵的系数,从而形成一个病态的解矩阵。EPANET 2.0通过设置一个水头损失梯度阈值来防止该系数成为0。这使得水头损失梯度在阈值以下时,管道的水头损失与管道流量没有关系,这对一些管网可能会产生错误的模拟结果
EPANET 2.2对水力求解器进行了改进,在管道流量接近于0时采用线性水头损失和流量关系。对于达西-维斯巴赫(Darcy-Weisbach)公式,层流(雷诺数≤2 000)时采用线性哈根-泊肃叶(HagenPoiseuille)公式;对于海曾-威廉公式(Hazen-Williams)和谢才-曼宁公式(Chezy-Manning)公式,如果给定流量下的水头损失梯度低于EPANET 2.0梯度阈值,则采用斜率等于截线的线性水头损失关系。
1.1.4 改善水质分析中质量不守恒的问题
2018年,Davis等指出当模拟管网短期外源物质输入(Short-term mass injections)时,EPANET2.0的水质模拟会产生重大的质量守恒误差
1.2 编程接口的改进
1.2.1 支持多线程运行
现代计算机的CPU多为多核处理器,运行EP-ANET时,理论上可以通过并发执行的方式来成倍加速计算量较大的应用(如采用进化算法的优化程序)。以前版本的EPANET编程接口(Application Programming Interface,API)不支持多线程执行,若想并发执行只能采用多进程方式(Multiprocessing),这不仅增加了编程的难度,还有进程间通信(Inter-process communication)等额外开销。EPA-NET 2.2开始支持多线程(Multithreading)。EP-ANET 2.2API的多线程版本允许用户创建多个可以同时分析的EPANET项目,相关的函数具有线程安全性。
EPANET 2.2包含功能相同的两个版本———单线程和多线程版本。两个版本使用相同的函数名称和参数列表,但存在以下差别:
(1)调用的头文件(*.h)不同。单线程版本调用epanet 2.h,多线程版本调用epanet 2_2.h。
(2)函数写法不同。单线程库中的函数名称以“EN”开头,与EPANET 2.0工具箱保持一致,而多线程库中的函数名称以“EN_”开头。
(3)函数需要的参数个数不同。多线程函数多包含一个附加参数,每个函数的第一个参数是项目名称的句柄,用于标识要分析的特定项目,然后才是与调用该函数相关的参数。
(4)所含函数个数不同。多线程库中包含两个附加函数,用于创建和删除EPANET项目。
(5)使用数据类型不同。单线程库的函数使用单精度浮点数,而多线程库的函数使用双精度浮点数。
1.2.2 通过函数建立管网模型
EPANET 2.2保留了通过inp文件导入管网数据的功能。同时,还可以通过内置函数直接构建完整的管网模型。在调用多线程版本的EPANET2.2函数前,需要新建一个项目以获取其句柄;在完成项目分析后需要删除这个项目及其句柄。不管使用哪种方式导入管网数据,都需要在新建项目后立即将管网信息导入
EPANET 2.2仅通过调用函数即可构建完整的管网,无需始终使用EPANET格式的输入文件,这为充分利用其他形式的管网数据源(例如关系数据库文件或以GIS/CAD形式保存的文件)提供了有效工具。
1.3 其他改进
EPANET 2.2提供一组完整的函数来设置/获取管网模型中所有的参数。本文按照EPANET2.2中函数的分类方法,比较了EPANET 2.2和EPANET 2.0工具箱中的函数和参数的分类统计结果,如表1所示。EPANET 2.2中共有126个函数,比EPANET 2.0新增了72个函数。EPANET2.0中的函数可分为10类,EPANET 2.2对EPA-NET 2.0中已有的10类函数进行扩充,这些扩充的函数一方面是为了支撑EPANET 2.2的新功能,如管网节点类、节点需求类、管网连接类、时间模式类中新增的函数主要是通过函数实现新建管网的功能。同时,节点需求类中的函数也实现了对管网水力计算分析的设置功能(例如选择需水量驱动分析或压力驱动分析)。
另一方面,EPANET 2.2也可以获取水力和水质计算的信息,如可以通过分析报告类中EN_getstatistic函数获取水力计算收敛的迭代次数以及当前水质计算中产生的质量守恒累积误差。EPANET 2.2还新增了两类函数———数据曲线类和控制规则类。数据曲线类函数主要是对与水泵曲线有关的信息进行设置和获取;相比于简单控制类函数,控制规则类函数可以对管道、阀门、水泵设置更加复杂的调控规则,增强了EPANET 2.2的模拟能力(见表1)。
2 EPANET 2.2的应用
2.1 单周期水力分析的加速效果
为了对比单周期管网水力分析的计算效率,本文选取6个不同大小的案例管网,具体管网信息如表2所示。本文对比了EPANET 2.0和EPANET2.2进行单周期水力模拟的CPU时间,并使用EN_solveH和EN_openH-EN_initH-EN_runH-EN_nextH-EN_closeH(以下简称EN_runH方式)两种方式进行水力计算。本试验的CPU为Intel(R)Core(TM)i5-8250U@3.4GHz,每个案例管网模拟1 000次的平均CPU时间如表3和表4所示。
试验表明,使用EN_solveH方式进行水力计算时,EPANET 2.2在较小规模管网上可节省大约10%~20%的CPU时间;在中等规模管网上可节约40%以上的CPU时间;在较大规模管网上可节省50%以上的CPU时间,尤其是在virtRome管网上节省了98%的CPU时间。可见,随着管网规模的增加,EPANET 2.2缩短的计算时间更加显著,这将大大提升求解实际大型管网应用问题的计算效率。
当采用EN_runH方式进行求解时,在virtRome管网中节约了98%的CPU时间,对于其他管网节省CPU时间在50%左右。当使用EN_runH方式进行水力计算时,EPANET 2.2对于较小规模管网节省的计算时间更加明显,始终保持在50%左右;对于中等规模管网的计算速度也有小幅度的提升。同时,实验数据表明,不管使用哪个版本的计算引擎,采用EN_runH方式都比EN_solveH方式更高效。
2.2 压力驱动分析的实际应用
为了对比压力驱动分析和需水量驱动分析之间的差异,本文比较了管道失效情景下EPANET 2.0的DDA和EPANET 2.2的PDA的模拟结果。本文采用我国南方TX镇供水管网的简化模型(见图1),供水管网服务面积约128km2,服务人口大约为40万人,含有2 196个节点,1 847根管道,3个水厂,总供水能力为5.56×105 m3/d。
本文通过关闭管道来模拟管道失效情景下可能出现的低压供水工况。从图1中需求节点的分布来看,管网西南片区有着更加密集的大需求节点,最近的XGY水厂供水能力为3.2万m3/d,难以满足本区域的全部用水要求。本试验中同时关闭了从ZX水厂和FH水厂输送至该区域的管道1和管道2(见图1)。
从试验结果来看,EPANET 2.2和EPANET2.0的DDA在正常和管道失效条件下获得的计算结果一致;在满足节点的设计水头(正常工况)的情况下,EPANET 2.2的PDA的分析结果与DDA保持一致,这也和PDA的定义相符合。
当管道1和2同时关闭时,使用DDA进行求解时管网中会出现了48个负压节点(见图2a),其节点的可用水量仍等于设计水量;而在实际情况中,管网中并不会出现压力为负值的情况。当使用PDA求解时,均未出现压力水头小于0的情况(见图2b);而且当实际的压力水头低于设计水头时,节点流量的需水量会随着压力水头的降低而减少。由此可见,使用EPANET 2.2的PDA能够更准确地反映管网中的实际状态。
3 结语
EPANET 2.2不仅增加了压力驱动分析和通过函数建立管网模型的新功能,提高了管网单周期的模拟速度并支持多线程并行方式,还修复了旧版EPAENT在低/零流量情况下计算结果不稳定以及在水质计算时产生的错误。此外,本文通过实例管网对部分新增功能进行了验证,结果表明EPANET2.2比EPANET 2.0可以更快速和准确地模拟供水管网系统。
当前,实现数字水务的转型已经成为水务公司的迫切需求。水力模型的计算速度成为数字水务转型过程中的技术瓶颈。EPANET 2.2支持以多线程的并行计算深度加速水力模拟过程,这将显著提高基于水力模型和优化计算技术解决大型管网实际问题的效率,为水务公司实现数字化转型奠定了重要基础。
[1]Rossman L A,Woo H,Tryby M,et al.EPANET 2.2user manual[R].Washington,DC:U.S.Environmental Protecttion Agency,2020.
[2]Pacchin E,Alvisi S,Franchini M.Analysis of non-iterative methods and proposal of a new one for pressure-driven snapshot simulations with EPANET[J].Water Resources Management,2017,31(1):75-91.
[3]Wanger J M,Shamir U,Marks D H.Water distribution reliability:Simulation methods[J].Journal of Water Resources Planning&Management,1988,114(3):276-294.
[4]Todini E,Pilati S.A gradient method for the analysis of pipe networks[C]//Computer Applications in Water Supply(vol.1):Systems Analysis and Simulation.Somerset,UK:Research Studies Press Ltd,1988:1-20.
[5]Estrada C,Gonzalez C,Aliod R,et al.Improved pressurized pipe network hydraulic solver for applications in irrigation systems[J].Journal of Irrigation and Drainage Engineering,2009,135(4):421-430.
[6]Davis M J,Janke R,Taxon T N.Mass imbalances in EPA-NET water-quality simulations[J].Drinking Water Engineering&Science,2017,11(1):25-47.