陈立华,滕 翔,严 诚,黄舒萍,甘富万
(1.广西大学土木建筑工程学院,南宁 530004;2. 广西防灾减灾与工程安全重点实验室,南宁 530004;3. 广西大学工程防灾与结构安全教育部重点实验室,南宁 530004)
水资源优化调度模型的基础工作之一是构建水资源优化调度网络图[1]。水资源优化调度网络图具有普适通用性,能起到简化流域系统、降低难度、减少重复工作量的作用[2],因此将其应用于流域水系系统,能清晰的得到流域时空分布信息,且能够充分表现河网的层次关系且便于计算机实现,对流域适应性强。
任洪玉等[3]利用Arc/Info基于DEM 水文分析生成流域图和河网图后,根据流域和河段的对应关系,人工进行流域拓扑关系的建立;刘先龙等[4]基于该方法将河段看作节点,将河段的拓扑关系看作节点的连接边,从而利用ArcGIS图表达河网结构;雷晓辉等以DEM为基础数据利用ArcGIS开展海河流域划分研究[5];此类方法虽能构建流域的拓扑关系,但形成的调度网络图是静态的,且系统针对性较强,难以适应调度程序动态变化的需求。唐勇等[6]提出了一个分析流域洪水计算的拓扑分析法,此方法的核心为通过建立流域概化图,以深度优先遍历的递归原理为基础,采用可视化编程技术,实现流域拓扑的建立;陈玉芬等[7]运用此方法基于计算机图论的节点连接表描述各水源地之间的逻辑联系;此种方法能较好地建立流域拓扑关系,搜索精确,但搜索量相对较低,更适用于中小型流域。魏传江等[8]详细论述了水资源系统网络图的基本原理,提出绘制水资源系统网络图的基础是水量平衡原理,并针对水资源配置供需平衡分析和耗水平衡分析,将经济、生态环境、水资源系统简化和抽象为节点、计算单元水传输系统、流域单元水传输系统三类元素,并进行了实例应用[9,10]。
西江流域是一个需同时满足防洪、发电、生态等各类调度目标的复杂流域系统,构建水资源调度系统网络图是解决不同调度目标之间的统筹协调问题的关键基础工作。因此,针对西江流域构建水资源优化调度网络图,主要以点、线两大要素构成各个水库、水文站、控制断面及河段边线之间的网络图形,利用库表结构设计来存储节点与边线信息,并采用遍历关联法识别各要素之间拓扑关系,基于unity3D平台动态绘制水网图,形成以西江流域为基础的水资源优化调度网络图。
(1)将流域内的骨干水库群、水文站点、控制断面及河段边线概化和抽象为由点、线组成的水网拓扑图,该拓扑图需满足一个条件:即每个节点只能连接一个下游节点,而一个节点会有一个或多个上游节点,使得拓扑图以直观的方式展示流域内的基础信息。
(2)数据库结构设计时,通过关联属性字段来实现节点、河段边线库表之间的相互关联,从而构成完整的流域水资源优化调度网络图的数据库表结构;并采用遍历关联法,即对各河段边线的汇出节点及汇入节点进行遍历筛选,若某一河段的汇出节点正好等于另一河段的汇入节点,则两条河段边线构成上下游关系,依据这一方法可确定流域内各河段边线之间的相互关联;最后基于unity3D平台动态绘制西江流域水资源优化调度网络图。其设计流程图如1所示。
图1 网络图设计流程图Fig.1 Network diagram design flow chart
水资源优化调度网络图的库表结构设计是在网络图绘制的基础上,将各个节点及河段信息反映在数据结构中。节点信息主要包括水利工程节点、控制断面节点及水文站点,为将这些节点信息存储入数据结构中,需要建立节点属性表,河流需要建立河段边线表,两种属性表一般用属性字段来描述要素的本身性质。
流域水文的点线要素属性表主要是通过河段边线作为桥梁连接的,将它分别与水库工程节点、控制断面节点、水文站点进行关联,即可把流域内不同的水文要素间接地关联在一起,以便构建出不同类型要素之间的拓扑关系,数据库表关联字段结构如图2所示。
图2 数据库库表关联字段结构图Fig.2 Database tables associated field structure
具体来说,图2中河段边线的汇入节点(F-node)和汇出节点(T-node)所记录的是河段边线端点,也就是水文节点的唯一标识码,可以是水库工程(RESVOIR)、水文测站(STNM)和控制断面(XSNM)。流域上以水流流向来确定水流的汇流方向,分别以汇入河段边线(RV-in)和汇出河段边线(RV-out)来记录,记录该河段的唯一标识码(RVNM)。
根据设计的库表结构,采用以下规则确定节点间的拓扑排序:根据前文图2所知,河流的汇流关系是通过各河段边线的汇入节点(F-node)和汇出节点(T-node)属性来确定的,通过这一汇流规则,对每一条河段进行判断,即可确定流域的汇流关系。具体来说,将按照以下步骤确定河段的汇流关系,其遍历关联法流程图如图3所示。
图3 遍历关联法流程图Fig.3 Traverse the correlation method of flow chart
(1)在确定汇流关系前,首先要对设计的数据库库表进行调用,可用MySqlConnection调用数据库中水文节点及河段边数信息,用receiveMessage()获取数据库信息函数。
(2)定义公共类public class getMessage,公共类中的成员表包括:水库节点数据表、水文站及断面节点数据表、河段边线数据及水库类别数据表;并用状态变量数组ComputerOrderState(i)记录第i河段是否已经确定了汇流的顺序,其状态设置TURE
和FALSE,TURE表示已经确定了顺序,FALSE表示未确定顺序。
(3)确定河段顺序:定义整型i、j,对所有河段进行循环(For i=0 To n)、(For j=0 To n),依次对汇入河段数(branch)为0,1,2,3,4,5的河段进行判断,如branch为0的河段即为初始河段,branch为2即为两条branch为1的河段的汇入河段,branch为3、4、5河段以此类推;若同为branch为1的河段,第i个河段RVNum(i)的汇出节点(T-node)若为第j个河段RVNum(j)的汇入节点(F-node),即RVNum(i).T-node =RVNum(j).F-node,则第i个河段RVNum(i)的下游河段(RV-out)是第j个河段RVNum(j)的唯一标识码(RVNM),此时状态变为TRUE,并用Index(Index∈[1,n])来表示下一个要确定的河段,赋初值为1,设置状态变量数组ComputerOrderState(i)=Index,并让Index加1,再次重复上述循环,若状态为TRUE,则Index再加1。
(4)判断Index总数是否与河段数相等,若满足条件即可退出循环,若不满足即继续从第三步继续循环,直至满足条件。
基于unity3D平台将线段与节点依次显示,以西江流域为例,其主要步骤为:
(1)定义开始面板public GameObject mainImage,面板中包括okButton(开始)与exitButton(退出),其运行结果如图4(a)所示;定义数据显示面板public GameObject dataImage,面板中包括Image[](图形)与Text[](数据)。
(2)逐次显示河段边线for(int i = 0; i < manyRiver.Length; i++),其运行结果如图4(b)所示;逐次显示水库工程节点for(int i = 0; i < 95; i++),给95个水库工程节点替换颜色image[i].sprite = ABCDlist[i].ToString(),其运行结果如图4(c)所示;逐次显示水文站网节点for(int i = 0; i < 70; i++),其运行结果如图4(d)所示。
(3)面向西江流域水资源网络图构建,涉及众多的水文节点及河段边线。共包含95个水利枢纽(水库及电站),其中18个年、季调节水库、70水文站、21个防洪控制断面、12个生态控制断面,节点间实线为河段边线。
通过以上步骤,可构建出西江流域优化调度网络图,为更清晰展示节点与河段关系和便于肉眼分析,对西江流域的右上角部分进行了放大,详见图5(a)。对桂江流域川江水库嵌套一个DP动态规划算法,以削峰最大准则对历史一场洪水过程进行调洪演算,其计算结果详见图5(b)。
图4 拓扑排序运行结果图Fig.4 Topological sort run results
图5 水库调度运行结果图Fig.5 Reservoir operation result diagram
按照表1的数据库表结构存储流域各河段的参数,然后将水库的出库流量以二维数组的方式存储。从数据库中提取各河段的起始节点F-node,终止节点T-node,流量比重因素X,传播时间K,演算时段长度T,并通过以下公式计算各河段的C0,C1,C2:
(1)
表1 LJ_CC_MSJG_B(马斯京根场次预报参数表)Tab.1 Table of forecast parameters for Muskingum field
根据调洪演算的水库出流量数据Q[N,T],代入公式计算出的各河段的C0,C1,C2以及确定的节点间计算顺序,即可进行马斯京根河道演算,得到各河段出口的汇流量Qt+Δt。公式如下所示:
Qt+Δt=C0It+Δt+C1It+C2Qt
(2)
以川江至大榕江为例,其演算结果详见图6。
图6 河道演算结果图Fig.6 River course diagram
本文借鉴水资源系统网络图的思想,将水库、电站、水文站、控制断面等简化和抽象为节点(点),河道简化为河段边线(线),对西江流域进行概化,运用遍历关联法识别节点及河段边线间的拓扑关系,基于unity3d平台动态绘制西江流域水资源优化调度网络图,并在水库调度及河道演算中进行实例应用。该方法可自动生成的水资源优化调度网络图,能够较真实地反映流域内的基础信息,具有直观、清晰、易懂、接近实际地理位置等优点,通过西江流域水资源优化调度网络图动态构建使水资源优化调度更趋于通用性和复用性。
□