一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

水电站拓扑数据结构构建方法、装置、产品及存储介质与流程

2022-04-02 03:05:13 来源:中国专利 TAG:


1.本发明属于水电站过渡过程可视化仿真软件领域,更具体地,涉及一种输水发电系统图形化模型的拓扑数据结构的自动构建方法,用于输水发电系统图形对象的动态编号和管线拓扑结构的自动识别。


背景技术:

2.水电站的过渡过程是水流从一种稳定工况或状态过渡到另一种工况或状态的瞬态变动过程。在此过程中,水流的速度和流量变化剧烈,若控制不当容易造成机组转速和水压力急剧上升,进而引发抬机、压力管道破裂、调压室毁坏或水轮机部件损坏等重大安全事故。因此水电站在设计过程中必须进行水利过渡过程计算,预估不同工况下输水系统水击压力、机组转速等关键运行参数变化趋势,进而采取合适的控制策略,实现水电站在不同工况之间的安全转换,减少水电机组运行过程中的事故发生率,对水电站的设计和安全稳定运行具有重要意义。
3.当前,水电站过渡过程的计算理论与计算方法已经比较成熟,手工计算逐步的被水电站过渡过程仿真计算软件所替代。可视化软件作为水电站过渡过程仿真计算软件的发展趋势,已经成为其重要分支。针对可视化软件中存在的图形化模型拓扑数据结构构建问题,目前国内水电行业采用的拓扑识别方法有:1)唐岳灏等人提出的递归管线拓扑结构识别法(唐岳灏,杨建东.面向图形系统的水电站过渡过程程序编码问题的研究[j].水力发电学报,2002(04):93-99.);2)莫剑等人提出的子管线组合法(莫剑,杨建东,赵桂连.引水发电系统的图形模拟及参数设计[j].水力发电学报,2005(06):83-87.)。然而,上述两种方法均存在一定的缺陷,递归管线拓扑结构识别程序过于繁琐且效率低下;子管线组合法虽然优于递归管线识别方法,但是识别出的是几条完整的管线,并不能反映实际的管线拓扑关系,故不能直接用于过渡过程计算。因此,有必要提出一种简单的编码原则,然后基于该方法研究并提出既能简洁高效地识别水电站输水发电系统管线拓扑关系,又能直接将识别结果用于过渡过程计算的新型图形化模型管线拓扑结构的构建方法,推动水电站过渡过程可视化仿真软件的发展。


技术实现要素:

[0004]
本发明所要解决的技术问题是,针对现有技术不足,提供一种水电站拓扑数据结构构建方法、装置、产品及存储介质,实现水电站输水系统图形对象的动态编号和管线拓扑数据结构自动识别,且识别结果可直接用于水电站过渡过程的计算。
[0005]
为解决上述技术问题,本发明所采用的技术方案是:一种水电站拓扑数据结构构建方法,包括以下步骤:
[0006]
s1、建立水电站管道节点与边界节点的关联关系,实现水电站输水发电系统图形化模型中图形对象的动态编号;
[0007]
s2、根据水电站输水发电系统的有向性,以管道节点与边界节点的关联关系为基
础,从上游水库开始向下游水库依次搜索管道节点,完成对管线拓扑结构的自动识别,实现整个图形化模型拓扑数据结构的自动构建。
[0008]
本发明采用动态编号的方式实现图形对象编号的动态变化,无需遍历所有的图形对象,实现过程简单,利用动态编号,结合水电站输水发电系统的有向性搜索管道节点,可以不重复、不遗漏的遍历管线中的所有管道节点,完整的识别整个水电站输水发电系统图形化模型的拓扑关系,自动构建水电站输水发电系统拓扑数据结构,且管线拓扑结构的识别结果可以直接用于过渡过程计算,节省了计算资源。
[0009]
为便于实现动态编号,步骤s1之前,还包括:
[0010]
将水电站输水发电系统划分为管道节点与边界节点,其中边界节点包括上游水库、下游水库、闸门槽、调压室、调压阀、分叉管、串联节点、阀门和水轮发电机组;将各个边界节点表示为图形不同,大小、形状相同的位图对象;将管道节点表示为具有长度和方向属性的线性对象;
[0011]
以绘制线性对象时的起始点和终止点分别表示管道节点的上游端和下游端;在软件绘图区域设置坐标系,为位图对象设置一个宽度为m像素的捕捉区域;管道的上游节点即为捕捉到的线性对象上游端的边界节点,管道的下游节点即为捕捉到的线性对象下游端的边界节点。
[0012]
步骤s1的具体实现过程包括:
[0013]
将边界节点和管道节点抽象为各不相同的类,为每个类设置5个属性;
[0014]
第一个属性存放类对象的编号;第二个属性存放类对象的上游节点编号,用于表示类对象与上游节点的关联关系;第三个属性存放类对象的上游节点类型;第四个属性存放类对象的下游节点编号,用于表示类对象与下游节点的关联关系;第五个属性存放类对象的下游节点类型;
[0015]
为每个类设置一个动态数组,用于储存各类的所有对象,其中对象的编号为字符型,表示方法为对象所属类的类名 对象在动态数组中的序号;
[0016]
移动位图对象,使线性对象的上游端或下游端位于位图对象的捕捉区域内,建立管道节点与边界节点的关联关系,并为类对象的5个属性赋值。
[0017]
在用户对图形对象进行增删操作时,本发明提出的动态自适应编号法通过计算机遍历发生更改的图形对象所在类的动态数组即可实现图形对象编号的动态变化,无需遍历所有的图形对象。除此之外,本发明的方法还将边界节点在过渡过程计算时所涉及的数据交互限制在增设的5个成员变量代表的对象之间进行,为图形化模型管道拓扑结构的自动识别建立了基础。
[0018]
步骤s2的具体实现过程包括:
[0019]
1)建立一个三维的动态数组,其中所述动态数组的第一维用于存放每一条管线中包含的所有线性对象,第二维用于存放每一个水力单元所包含的所有管线,第三维用于存放用户搭建的所有水力单元;
[0020]
2)根据水电站输水发电系统的有向性,选择上游水库为起始点,遍历管道类的动态数组,寻找以所选上游水库为上游节点的管道节点,该管道节点即为与所选上游水库相连的管道;
[0021]
3)遍历管道类的动态数组,利用两个相连管道节点共有的边界节点,向下游搜寻
管道节点;
[0022]
4)判断步骤3)中所找到的管道节点的下游是否没有与之相连的管道节点或其下游节点是否为下游水库,若否,则执行步骤5);若是,则该水力单元的管线搜索结束,转至步骤6);
[0023]
5)判断步骤2)中所找到的管道节点的下游管道节点个数n大于1还是等于1,若n=1,则转至步骤3);若n》1,则分别以此n个管道节点为起始点,转至步骤3);
[0024]
6)从存放该水力单元所有完整管线的三维的动态数组中取最长的一条管线作为基管线,将其余管线与基管线求异,最终得到能反映整个水电站输水发电系统图形化模型拓扑关系的拓扑数据结构。
[0025]
本发明提出的叉点分割法充分结合了前述自适应编号法的优势,可以不重复、不遗漏的遍历管线中的所有管道节点,完整地识别整个水电站输水发电系统图形化模型的拓扑关系,实现了水电站输水系统图形对象的动态编号和管线拓扑数据结构自动识别,且识别结果可直接用于水电站过渡过程的计算。
[0026]
为简化实现过程,上述步骤6)中,若有多条管线同时为最长管线,则按照该几条管线在动态数组中的存储顺序,取索引号最小的管线为基管线。
[0027]
本发明还提供了一种计算机装置,包括存储器、处理器及存储在存储器上的计算机程序;其特征在于,所述处理器执行所述计算机程序,以实现本发明方法的步骤。
[0028]
本发明还提供了一种计算机程序产品,包括计算机程序/指令;该计算机程序/指令被处理器执行时实现本发明方法的步骤。
[0029]
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序/指令所述计算机程序/指令被处理器执行时实现本发明方法的步骤。
[0030]
与现有技术相比,本发明所具有的有益效果为:
[0031]
(1)在用户对图形对象进行增删操作时,本发明提出的动态自适应编号法通过计算机遍历发生更改的图形对象所在类的动态数组即可实现图形对象编号的动态变化,无需遍历所有的图形对象。除此之外,该方法还将边界节点在过渡过程计算时所涉及的数据交互限制在增设的5个成员变量代表的对象之间进行,为图形化模型管道拓扑结构的自动识别建立了基础。
[0032]
(2)相比于子管线组合法,本发明提出的叉点分割法充分利用了自适应编号法的成果,可以不重复、不遗漏的遍历管线中的所有管道节点,完整的识别整个水电站输水发电系统图形化模型的拓扑关系,自动构建水电站输水发电系统拓扑数据结构,且管线拓扑结构的识别结果可以直接用于过渡过程计算,节省了计算资源。
附图说明
[0033]
图1为水电站输水发电系统模块划分与图形对象关联关系图;
[0034]
图2为某水电站的输水发电系统图形化模型拓扑结构图;
[0035]
图3为本发明提出的叉点分割法的流程图;
[0036]
图4为某抽水蓄能电站的输水发电系统管道布置图。
具体实施方式
[0037]
本发明涉及一种水电站拓扑数据结构构建方法。根据对象的层次结构及关联关系,如图1所示,将水电站输水发电系统划分为管道节点和边界节点两大模块,并由这两大模块抽象设计出管道、上游水库、下游水库、闸门槽、调压室、调压阀、分叉管、串联节点、阀门和水轮发电机组十种不同的图形对象。本发明的目的是提出一种能自动构建水电站输水发电系统图形化模型拓扑数据结构的方法,从而实现图形对象编号的动态变化,并在完整的识别图形化模型的整个拓扑结构后,能够将识别结果直接用于该图形化模型的过渡过程计算,提高计算效率。下面通过实例一和实例二阐述自适应编号法和叉点分割法的具体实施方式。
[0038]
实例一:
[0039]
为展示本发明提出的自适应编号法的使用效果,以图2所示某水电站树状布置的输水发电系统图形化模型拓扑结构为例,对本文提出的自适应编号法和叉点分割法进行详细说明:
[0040]
步骤(1):图2所示的图形化模型拓扑结构中包含七种图形对象,可抽象为7个类,为每个类设置一个成员变量,用以表示该类的类型。则图2中每个类的类型及其所包含的图形对象如表1所示:
[0041]
表1类与图形对象关系表
[0042][0043]
步骤(2):为每个类对象增设五个成员变量,其中类对象的编号方法为:按照每个类对象在搭建图形化模型过程中出现的先后顺序依次存放在其相对应类的arraylist中,并自动生成类对象在arraylist中的序号,最后每个类对象的编号由它所属类型和它在arraylist中的序号组成。图2中每个类对象对应的五个成员变量如表2所示:
[0044]
表2图形对象的成员变量
[0045][0046][0047]
在图2所示的水电站输水发电系统图形化模型中,以自适应编号法建立的节点之间的关联关系为基础,结合图3所示的叉点分割法的流程图,对本发明提出的叉点分割法进行详细说明:
[0048]
步骤(1):如图2所示的水电站输水发电系统图形化模型中,根据系统的有向性,以上游水库节点uprev1为拓扑结构的起始节点,向下搜索可寻得管道节点pipeline1。由于pipeline1的下游节点不是下游水库,故应继续向下搜索其他管道节点。每寻到一个管道节点,就必须先判断其下游节点是否为下游水库或其下游节点后是否没有相连的管道节点,若是则搜索结束;若否,则继续向下搜索其他管道节点。在以下步骤中,为了便于描述,若所寻到管道节点的下游节点不是下游水库,均省略此判断。
[0049]
步骤(2):管道节点pipeline1-p1的下游节点与管道节点pipeline2-p2的上游节点均为串联节点innernode1-n2,由pipeline1-p1向下继续搜索可寻得管道节点
pipeline2-p2。按此方法,继续向下搜索可依次寻得管道节点pipeline3-p3、pipeline4-p4。
[0050]
步骤(3):由管道节点pipeline4-p4继续向下搜索会同时寻得管道节点pipeline5-p5和pipeline8-p8。此时管道系统会分裂为a和b两条管线,两条管线所包含的管道节点如表3所示。
[0051]
步骤(4):以a管线的最后一个管道节点pipeline5-p5继续向下搜索,会一次搜寻到管道节点pipeline6-p6、pipeline7-p7。由于管道节点pipeline7-p7的下游节点为下游水库,故该条管线搜索结束,得到一条完整管线c。以b管线的最后一个管道节点pipeline8-p8继续向下搜索,会同时得到管道节点pipeline9-p9和pipeline10-p10。此时管道系统会分裂出d、e四条管线。c、d、e三条管线各自所包含的管道节点如表3所示。
[0052]
步骤(5):以d管线的最后一个管道节点pipeline9-p9继续向下搜索,会依次寻到管道节点pipeline11-p11、pipeline13-p13。由于管道节点pipeline13-p13的下游节点为下游水库,所以该条管线搜索结束得到管线f。同理,以e管线的最后一个管道节点pipeline10-p10继续向下搜索,搜索结束会得到管线g。f、g管线各自包含的管道节点如表3所示。
[0053]
步骤(6):从最终得到的c、f、g三条管线中选择最长的一条管线为基管线。由于本实例中最终寻得的f、g两条管线同为最长管线,故根据这两条管线在arraylist中的存储顺序,选择存储位置较前的管线f为基管线,其他两条管线均与基管线求异,最终得到h、i、j三条管线,每条管线所包含的管道节点如表3所示。至此,图2所示的水电站输水发电系统图形化模型的管线拓扑数据结构已自动构建完毕,自动识别的管线拓扑结构如实的反映了该水电站图形化模型所展示的拓扑结构。
[0054]
表3管线名称与管道节点关系表
[0055][0056]
实例二:
[0057]
以图4所示的某抽水蓄能电站环状管道布置的输水发电系统为例,对本发明提出的叉点分割法的应用进行详细的说明。
[0058]
步骤(1):图4所示的水电站输水发电系统管道布置图中,1-15表示边界节点,16-32表示管道节点。根据系统的有向性,以上游水库节点1为管线拓扑结构自动识别的起始节点,向下搜索可寻得管道节点16。
[0059]
步骤(2):利用两相邻管道之间的共有边界节点,以管道节点16向下继续搜索可依
次搜寻到管道节点17、18。
[0060]
步骤(3):由管道节点18继续向下搜索会同时寻得管道节点19和27。此时管道系统会分裂为a和b两条管线,每条管线所包含的管道节点序号如表4所示。
[0061]
步骤(4):以管道节点19继续向下搜索,会同时寻到管道节点20和25;以管道节点27继续向下搜索,会同时得到管道节点28和31。此时管道系统会分裂出c、d、e、f四条管线,每条管线包含的管道节点如表4所示。
[0062]
步骤(5):以管道节点20继续向下搜索,会依次寻到管道节点21、22、23和24。由于管道节点24的下游节点为下游水库,所以该条管线搜索结束,得到管线g。同理,分别以管道节点25、28和31继续向下搜索,会分别得到h、i、j三条管线,每条管线包含的管道节点如表4所示。
[0063]
步骤(6):从最终得到的g、h、i、j四条管线中选择最长的一条管线为基管线,由于本实例中的最终寻得的四条管线长度相同,故根据四条管线在arraylist中的存储顺序,取第一条管线g为基管线,其他三条管线均与基管线求异(每条管线中包含多个管道节点,求异就是,以基管线为基础,利用管道节点编号,将其余管线中与基管线中相同的管道节点删除,最后保持每条管线中的管道节点是各不相同的),最终得到k、l、m、n四条管线,每条管线所包含的管道节点如表4所示。
[0064]
表4管线名称与管道节点关系表
[0065][0066]
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献