客服电话:400-000-2365

基于污水管网拓扑关系子流域汇流演算顺序计算方法

中国污水处理工程网 时间:2018-3-18 8:20:43

污水处理专利技术

  申请日2017.03.02

  公开(公告)日2017.06.27

  IPC分类号G06F17/50

  摘要

  本发明公开了一种基于污水管网拓扑关系的子流域汇流演算顺序计算方法,包括:依据天然水系划分子流域,并为各子流域分配唯一编码;根据天然水系汇流路径及子流域编码构建天然水系所在子流域上下游汇流拓扑关系表;根据污水管网汇流路径及子流域编号构建污水管网所在子流域上下游汇流拓扑关系表;根据上述两个拓扑关系表,逐子流域循环检测天然水系和污水管网上游子流域,并按照上游子流域能够顺利完成汇流演算的先后顺序,依次为其分配连续的汇流演算序号,直到所有子流域都具有汇流演算序号;根据汇流演算序号,确定各子流域汇流演算顺序。本发明解决了模型汇流演算过程中计算单元重复计算或跳跃计算的问题,提高了汇流演算运行效率。

  权利要求书

  1.一种基于污水管网拓扑关系的子流域汇流演算顺序计算方法,其特征在于,包括以下步骤:

  步骤S10、依据天然水系划分子流域,并为每一子流域分配唯一编码;

  步骤S20、根据天然水系汇流路径以及子流域编码,构建天然水系所在子流域上下游汇流拓扑关系表;

  步骤S30、根据污水管网汇流路径以及子流域编号,构建污水管网所在子流域上下游汇流拓扑关系表;

  步骤S40、根据天然水系和污水管网所在子流域上下游汇流拓扑关系表,逐子流域循环检测其天然水系和污水管网上游子流域,并按照上游子流域能够顺利完成汇流演算的先后顺序,依次为子流域分配连续的汇流演算序号,直到所有子流域都具有汇流演算序号;

  步骤S50、根据汇流演算序号,确定各子流域在分布式水质模型中的汇流演算顺序。

  2.如权利要求1所述的方法,其特征在于,

  天然水系所在子流域上下游汇流拓扑关系表是根据天然水系汇流路径拓扑关系,获取的各子流域的相对天然水系的上下游拓扑关系信息构建的;

  污水管网所在子流域上下游汇流拓扑关系表是根据流域内污水管网拓扑关系,获取的各子流域的相对污水管网的上下游拓扑关系信息构建的;

  天然水系或污水管网所在子流域上下游汇流拓扑关系表包括:

  子流域编码:系统中所有子流域的唯一编码;

  上游“m”编码:表示天然水系或污水管网中汇入当前子流域的上游子流域编码,m表示当前子流域的第几个上游子流域,上游“m”编码值为“0”表示没有上游子流域,大于“0”表示该子流域所对应的上游子流域的编码数值;

  上游子流域数目:等于天然水系或污水管网所在子流域上下游汇流拓扑关系表中上游“m”编码值不为0的上游子流域个数。

  3.如权利要求2所述的方法,其特征在于,在步骤S40中,上游子流域能够顺利完成汇流演算判定标准为:

  子流域没有上游子流域;

  或者,其对应的天然水系和污水管网的所有上游子流域都已经具有汇流演算序号。

  4.如权利要求3所述的方法,其特征在于,步骤S40包括以下步骤:

  步骤S41、设置整个汇流演算系统中所有子流域的汇流演算序号数组runId(1:n)=0,当前汇流演算序号nowId=0,n为整个汇流演算系统中子流域的数目;

  步骤S42、设当前子流域的遍历序号s=0,根据天然水系和污水管网所在子流域上下游汇流拓扑关系表,开始逐个遍历子流域;

  步骤S43、判断s是否为n,如果是,执行步骤S42;否则,执行步骤S44;

  步骤S44、令s=s+1,开始检测下一个子流域;

  步骤S45、判定当前子流域的汇流演算序号runId(s)是否为0,如果是,执行步骤S46;否则,执行步骤S43;

  步骤S46、判定当前子流域是否存在天然水系上游子流域或污水管网的上游子流域,且有汇流演算序号为0的上游子流域,如果存在,执行步骤S43;否则,执行步骤S47;

  步骤S47、令nowId=nowId+1,并将nowId值赋值给当前子流域的汇流演算序号runId(s)=nowId;

  步骤S48、判断nowId是否等于子流域数目n,如果是,执行步骤S49;否则,执行步骤S43;

  步骤S49、结束程序。

  5.如权利要求1所述的方法,其特征在于,步骤S50包括以下步骤:

  步骤S51、构建汇流演算顺序数组runSub(1:n),并初始化为0,其中,runSub(i)表示第i次运算的子流域编码,设置当前运算序号r=1;

  步骤S52、设当前子流域的遍历序号s=0;

  步骤S53、令s=s+1,并判断遍历序号s是否大于子流域数目n,如果是,执行步骤S52;否则,执行步骤S54;

  步骤S54、判断当前子流域的汇流演算序号runId(s)是否等于前运算序号r,如果是,执行步骤S55;否则,执行步骤S53;

  步骤S55、将当前子流域编码赋予runSub(r),并令r=r+1;

  步骤S56、判断当前运算序号r是否大于子流域数目n,如果是,则执行步骤S57,否则,执行步骤S54;

  步骤S57、结束程序。

  说明书

  基于污水管网拓扑关系的子流域汇流演算顺序计算方法

  技术领域

  本发明涉及水文模型领域,具体涉及一种基于污水管网拓扑关系的子流域汇流演算顺序计算方法。

  背景技术

  随着工业和城市化进程的发展,城市管网覆盖率越来越大,管网汇流过程越来越复杂,分布式水文模型和管网模型常用于城市内涝以及城市水环境的模拟,如何合理的进行汇流运算,直接影响水量水质的模拟结果和模型效率。现有的水文模型多基于数字高程信息对进行子流域划分,并按从上游到下游的顺序逐级编码,这样,在进行河道汇流演算时,只需根据子流域编号从小到大进行演算,就能保证下游子流域进行汇流演算时其上游子流域已经完成汇流演算。

  但是,由于城市管网分布复杂,管网污水路径沿程的子流域编码并非从小到大排列,这就使得管网汇流与坡面河道汇流不能同时计算,或者存在重复计算,有发生结果错误的风险。因此对相关子流域进行管网汇流的编码是否合理直接影响流域水量水质的计算效率与结果。

  发明内容

  本发明所要解决的技术问题是现有水文模型按天然水系上下游关系进行汇流演算,使其各子流域污水管汇流过程存在重复计算或跳跃计算,从而致使计算结果错误的问题。

  为了解决上述技术问题,本发明所采用的技术方案是提供一种基于污水管网拓扑关系的子流域汇流演算顺序计算方法,包括以下步骤:

  步骤S10、依据天然水系划分子流域,并为每一子流域分配唯一编码;

  步骤S20、根据天然水系汇流路径以及子流域编码,构建天然水系所在子流域上下游汇流拓扑关系表;

  步骤S30、根据污水管网汇流路径以及子流域编号,构建污水管网所在子流域上下游汇流拓扑关系表;

  步骤S40、根据天然水系和污水管网所在子流域上下游汇流拓扑关系表,逐子流域循环检测其天然水系和污水管网上游子流域,并按照上游子流域能够顺利完成汇流演算的先后顺序,依次为子流域分配连续的汇流演算序号,直到所有子流域都具有汇流演算序号;

  步骤S50、根据汇流演算序号,确定各子流域在分布式水质模型中的汇流演算顺序。

  在上述方法中,

  天然水系所在子流域上下游汇流拓扑关系表是根据天然水系汇流路径拓扑关系,获取的各子流域的相对天然水系的上下游拓扑关系信息构建的;

  污水管网所在子流域上下游汇流拓扑关系表是根据流域内污水管网拓扑关系,获取的各子流域的相对污水管网的上下游拓扑关系信息构建的;

  天然水系或污水管网所在子流域上下游汇流拓扑关系表包括:

  子流域编码:系统中所有子流域的唯一编码;

  上游“m”编码:表示天然水系或污水管网中汇入当前子流域的上游子流域编码,m表示当前子流域的第几个上游子流域,上游“m”编码值为“0”表示没有上游子流域,大于“0”表示该子流域所对应的上游子流域的编码数值;

  上游子流域数目:等于天然水系或污水管网所在子流域上下游汇流拓扑关系表中上游“m”编码值不为0的上游子流域个数。

  在上述方法中,在步骤S40中,上游子流域能够顺利完成汇流演算判定标准为:

  子流域没有上游子流域;

  或者,其对应的天然水系和污水管网的所有上游子流域都已经具有汇流演算序号。

  在上述方法中,步骤S40包括以下步骤:

  步骤S41、设置整个汇流演算系统中所有子流域的汇流演算序号数组runId(1:n)=0,当前汇流演算序号nowId=0,n为整个汇流演算系统中子流域的数目;

  步骤S42、设当前子流域的遍历序号s=0,根据天然水系和污水管网所在子流域上下游汇流拓扑关系表,开始逐个遍历子流域;

  步骤S43、判断s是否为n,如果是,执行步骤S42;否则,执行步骤S44;

  步骤S44、令s=s+1,开始检测下一个子流域;

  步骤S45、判定当前子流域的汇流演算序号runId(s)是否为0,如果是,执行步骤S46;否则,执行步骤S43;

  步骤S46、判定当前子流域是否存在天然水系上游子流域或污水管网的上游子流域,且有汇流演算序号为0的上游子流域,如果存在,执行步骤S43;否则,执行步骤S47;

  步骤S47、令nowId=nowId+1,并将nowId值赋值给当前子流域的汇流演算序号runId(s)=nowId;

  步骤S48、判断nowId是否等于子流域数目n,如果是,执行步骤S49;否则,执行步骤S43;

  步骤S49、结束程序。

  在上述方法中,步骤S50包括以下步骤:

  构建汇流演算顺序数组runSub(1:n),并初始化为0,其中,runSub(i)表示第i次运算的子流域编码,设置当前运算序号r=1;

  步骤S52、设当前子流域的遍历序号s=0;

  步骤S53、令s=s+1,并判断遍历序号s是否大于子流域数目n,如果是,执行步骤S52;否则,执行步骤S54;

  步骤S54、判断当前子流域的汇流演算序号runId(s)是否等于前运算序号r,如果是,执行步骤S55;否则,执行步骤S53;

  步骤S55、将当前子流域编码赋予runSub(r),并令r=r+1;

  步骤S56、判断当前运算序号r是否大于子流域数目n,如果是,则执行步骤S57,否则,执行步骤S54;

  步骤S57、结束程序。

  本发明通过对每个子流域进行唯一编码,并分别根据天然水系和污水管网所在子流域上下游汇流拓扑关系表,遍历每个子流域,在保证每个子流域上游子流域的天然水系汇流过程和污水管网汇流过程均已完成的前提下,对其进行汇流演算,以便直接使用上游子流域计算所得天然径流和污水进入量,解决现有水文模型按天然水系上下游关系进行汇流演算重复计算或跳跃计算的问题,具体有益效果如下:

  (1)本发明能够同时满足子流域的天然水系河道汇流和污水管网汇流演算要求;

  (2)本发明充分考虑了污水管网在子流域中的拓扑关系,提高运行效率;

  (3)本发明根据不同管段的拓扑关系,避免污水汇流的重复计算。