文档库 最新最全的文档下载
当前位置:文档库 › 抽水蓄能电站进出水口临界淹没深度研究

抽水蓄能电站进出水口临界淹没深度研究

抽水蓄能电站进出水口临界淹没深度研究
抽水蓄能电站进出水口临界淹没深度研究

抽水蓄能电站进/出水口临界淹没深度研究

王凯,陈方亮

河海大学水利水电工程,江苏南京(210098)

E-mail:kaiross@https://www.wendangku.net/doc/9913298546.html,

摘要:通过某抽水蓄能电站的模型试验,研究计算临界淹没水深的gardo公式的gardo系数在不同范围内对应的弗汝德数的变化情况,利用模型试验的测量数据计算的结果与经验值的比较并分析了两者不同的原因,获得临界淹没水深的影响参数为实际工程提供参考.

关键词:临界深度,漩涡,戈登公式,模型试验

中图分类号:TV7

1.临界淹没深度的概念

在对进出水口临界淹没深度理论方面国内外都有研究,并且不少研究已经取得了很好的效果,在水利工程,水电站,泵站中得到广泛的应用。本文着重对抽水蓄能电站双向水流进出水口临界淹没深度做一些探讨,所谓抽水蓄能电站双向水流进出水口临界淹没深度是指对应某一流量下,进出水口前的一个必要的最小淹没深度。该水深要保证:①在进水口压力管

道中不能出现负压;②进水口前要避免出现串通的吸气漩涡[1]。

抽水蓄能电站和常规电站相比,水库具有溶剂小,水位变化频繁等特点。为了充分利用其库容,水库水位变幅常达十多米,死库容小,难以获得足够的淹没深度,必须采用防涡梁,板等结构来消除吸气漩涡和拦污栅结构的震动。在进行进水口设计时,必须确定其在自由水面下的最小淹没深度,以保证边界上不出现负压,尽可能减少自由水面的漩涡以及避免夹气漩涡[1]。位于天然水体取水的取水泵房,受天然水体的水位变化,多采用可移动的取水装置,但对于一些较大流量和受地形地貌限制,采用固定取水方式,此时,由于天然水位变动,当水位降低到一定位置后,水面将产生强烈旋转的漩涡,阵发性的漩涡将挟大量空气进入水泵,称漩涡挟气,此时漩涡初生水深称漩涡挟气临界水深,喇叭口淹没深度称为“临界淹没深度”。漩涡挟气现象在实际工程中是必须极力避免的,大量的气泡会对管道产生空化作用,由于管道内流体变成水气二相流,高速水流对管道产生冲击加大,如共振将发生严重事故。显然,取水流量越大,临界水深也越大,根据一些研究,可以认为在一定范围内,临界淹没深度与取水流量的关系式如下:h=0.23Q+1.26(中国水科院水环境研究所),适用流量从2立方每秒到14立方每秒(实验验证范围)。

2.临界淹没水深的计算公式

计算临界淹没水深的公式较多,[1]有以进水口高度构成的公式,如Prosser公式;[2]有以流速水头构成的公式,如Ф.Ф.ГубИН公式等等。各种公式相互之间差别也比较大,这主要是因为公式中考虑的主要影响因素有所不同。但目前在计算电站进水口前临界淹没水深方

面,[3]最常用的还是Gordon公式[2]。

2.1以进口高度构成的公式

s′=na (2-1)

-1-

式中n 为常数,s ′为进水口中心线以上的淹没深度,a 为闸门井处高度。

2.2以流速水头构成的公式

23/2t u ≥g (2-2)

式中g 为重力加速度,u 为喇叭口处的流速,由该式确定的进水口淹没深度与上缘曲线

有很大关系。古宾在《水力发电站》中建议,为避免吸气旋涡,进水口上缘曲线的顶点应低于水库的最低水位。

2.3最常用的Gordon 公式

1

21s v a c m m s m ????=?????????? (2-3)

式中:a 为门高;s 为从门顶算起的淹没水深;v 是闸门处水流流速;c 为综合影响系数。我国《水电站进水口设计规范》中计算进水口临界淹没水深采用的公式就是Gordon 公式。规范中对c 的取值有如下规定,正向引水时取c=0.55,侧向取水时取c=0.73。 定义侧向进水的综合影响系数c 值与正向进水的c 值之比为侧向影响系数β,即β=0.73/0.55=1.327。上式量纲化为一,得

/r s a kF == (2-4)

r F =

式中:a 为门高;,为Froude 数;g 为重力加速度,k 为比例因数。

Gardo 公式还有一种形式也是常见的:

1

2H CVd = (2-5)

式中各参数:最小的淹没深度H ,与引水道孔口高度d ,以及闸门处的流速V 。

C 的取值同式2-3中的c ,具体参数如图1示

-2-

图1 进(出)水口示意图

Pennino 等总结了13 个侧式、井式进水口的模型试验,认为进水口的佛汝德数Fr < 0123 ,则不易出现吸气漩涡。

/r F V = < 0.23 (2-6) 式中 g——重力加速度,——进口中心线以上的最小淹没水深[3]'H 。

目前采用防止入流漩涡的工程措施主要有设置防涡梁、进口上部倾斜、改善进流情况等。根据国内的几个抽水蓄能电站的模型试验研究成果,在合理采用以上工程措施后,进水口的入流漩涡问题明显得到了改善。

3.临界淹没深度的模型试验

试验原型属纯抽水蓄能电站,总装机容量2 400 MW(6 ×400 MW) ,由上,下水库、输水系

统、地下厂房及开关站组成。上水库挡水建筑物采用混凝土面板堆石坝,最大坝高(坝轴线处)131. 8 m ,水库总库容1 136 ×104 m3 。上库进/ 出水口按侧式布置在坝右岸,其建基面高程675 m ,底板高程676 m ,闸门井顶部高程为745. 00 m 。上库进/ 出水口后紧接两条引水隧洞,其洞径均为7. 2 m 。两条引水隧洞在平面上呈“八”字形对称布置,在上库进/ 出水口首端相距30. 9 m 在引水钢岔管处相距66 m 。尾水洞和引水洞布置在平面上形式基本相同,呈“八”字形。上库进/ 出水口由防涡段、矩形渐变段、平洞、闸门段组成。上库进/ 出水口总宽度

61. 8 m ,长21. 6 m ,其中防涡段长10. 8 m(包括拦污栅) ,防涡梁尺寸2. 0 m ×l. 8 m(宽×高) ,净间距1. 8 m 。拦污栅分为8 孔6. 0 m ×10. 8 m(宽×高) ,最大过栅流速0. 93 m/ s 。其后紧接箱形渐变段,渐变段长38.88 m ,使孔口由27. 9 m×l0. 8 m(宽×高) 变成7. 2 m ×7. 2 m(宽×高) ,内

-3-

设3 个分流墩。渐变段平面收缩角为14. 91°,剖面收缩角为5. 29°,详见图2。

图2 原型水库整体布置图

模型制作时考虑上库模型进/ 出口靠近两岸,考虑边壁对水流运动的影响,模型两岸边界保持不变,由于场地的限制,所以原型的西南角部分无法布置模型,但是这部分离上库进/ 出水口较远,因此并不影响模型实验的结果。上库进/ 出水口模型采用有机玻璃制成,其糙率和原型的糙率应满足糙率相似要求, 进/ 出水口模型的水力阻力相似主要受控于主体结构的形状阻力,即使模型的糙率和原型的糙率应存在差异也不会影响结果。模拟抽水工况实验时,由泵房抽水提供流动水体;模拟发电工况实验时,由水体自身存在的落差来实现。模型比尺为1:50。进出水口具体结构如图3,图4。(均为原型图示)

-4-

图3 上库整体布置及进水口体型布置图

图4 下库整体布置及进水口体型布置图

-5-

机组过流量:

水轮机工况单机额定流量Q=67.2 m3/s

水泵工况最大扬程724.61m 时抽水流量Q =50.42m3/s

水泵工况最小扬程670.39m 时抽水流量Q =58.75m3/s

测量仪器及测量方法:进/出水口模型有一较长水平直管段,其直径等于尾水隧洞。此

水平直管道中央安装经过标准薄壁三角堰标定的孔板流量计。发电工况和抽水工况所引用流量由孔板流量计量测。在测量进/出水口的流速分布时,在8个孔口外沿各安装了CSY 旋桨流速仪,流速仪测量的流速由计算机同步采集。计算机每隔10秒自动同步记录各通道的流速值一次,每个测点采样15次,取这15次采集数据的平均值作为该测点的流速值。8台流速仪均匀对称地布置在两进/出水口的8孔流道上,而且可同步上下移动。

4.临界淹没深度的计算

12

CVd r F =

利用戈登公式:=cr S 和弗汝德数:行计算。

在戈登公式中,其他参数V 、d 、都可以由实验资料和结果得到或推算出,从而得到系数C 的值,同样弗汝德数也可以计算得到。戈登公式中V 定义为闸门处引水道流速,但现在用戈登公式计算临界淹没深度时多用进/出水口栏污栅处平均流速来进行计算。

cr S r F 表1,表2列出了上、下库不同算法的戈登系数C 值和弗汝德数的值,从表1中我们可以看出上库在水位较高时C1范围在1.579~1.913之间,C2范围在0.353~0.423之间,而在靠进死水位附近时C1范围在0.682~1.043之间,C2范围在0.151~0.231之间。C 是经验值为正向引水时取0.55,侧向取水时取C=0.73,一般在死水位附近容易产生还害的吸气旋涡,如果按戈登公式原文中定义的闸门井处的流速计算系数C ,那给出的经验值要比试验值大的多,如用拦污栅处断面流速计算所的系数C 的值与比经验值偏大些,目前工程中计算确定临界淹没深度多采用后者,若用经验系数来计算,那所得结果比实验值偏小,没有足够的淹没深度,容易产生还害的吸气旋涡。弗汝德数计算值范围在0.156~0.202之间,满足小于0.23的要求,如以0.23来计算可以获得足够临界淹没水深,可避免产生吸气旋涡。

r F r F 从表2中我们可以看出下库原方案C1范围在0.607~0.767之间,C2范围在0.173~0.219之间,弗汝德数范围在0.192~0.226之间,C1与戈登公式所给的经验值0.73较为接近,如按闸门井处的流速计算临界淹没深度,那C 取值在0.173~0.219之间,弗汝德数<0.23满足临界条件。由于原方案进出水口是伸进河道中的,表中可以看出河道流速对临界淹没深度是有影响的,河道流速越大,进出水口前越不易产生有害的吸气旋涡。

r F r F 上述试验数据说明了进出水口的体型、库区地形以及河道流速等因素都会对进出口的临界淹没深度产生影响,在工程中确定进水口临界淹没深度,需要用模型试验对用经验公式计算出的临界淹没水深进行验证。

-6-

https://www.wendangku.net/doc/9913298546.html, -7-

r F

表2 下库不同河道流速淹没试验对系数C 和弗汝德数的计算

r F =

=

0.101 0.232 Δ=0.125 42.593 0.325

1.392 0.607 0.1730.215 1#0.095 0.226 Δ=0.111 1#37.620 0.287 1.229 0.647 0.1850.192 =0.08

Δ2#中流速

V=0.9

0.099 0.230 Δ=0.56137.954 0.289 1.240 0.668 0.1910.192 1#高流速

V=1.07 河道流速变为高流速时,进出水口前的吸气旋涡消失

5.结论与建议

(1)上库在死水位附近试验时戈登系数C1范围在0.682~1.043之间,C2范围在0.151~0.231之间,C1值总的来说比公式中给出的经验值0.73大,按经验值计算可能不能获得足够的淹没水深,在进水口产生吸气旋涡。临界弗汝德数计算值范围在0.156~0.202之间,满足小于0.23的要求。

r F 下库方案C1范围在0.607~0.767之间,C2范围在0.173~0.219之间,弗汝德数范围在0.192~0.226之间;方案3的C1范围在0.772~0.926之间,C2范围在0.238~0.288之间,弗汝德数范围在0.176~0.219之间。由于该方案进出水口是伸进河道中的,表中可以看出河道流速对临界淹没深度是有影响的,河道流速越大,进出水口前越不易产生有害的吸气旋涡。试验结果说明进出水口的体型、库区地形以及河道流速等因素都会对进出口的临界淹没深度产生影响,在工程中确定进水口临界淹没深度,需要用模型试验对用经验公式计算出的临界淹没水深进行验证。

r F r F (2)由于戈登公式中的戈登系数C 是经验值给出的,即正向引水时取0.55,侧向取水时取C=0.73,这是对一般水电站计算临界淹没深度时所用的经验值,而对于抽水蓄能电站中此经验值是否适用,需要进行计算验证,同样弗汝德数的范围也需要进行计算并验证.

r F (3)影响临界淹没深度的因素包括①进出水口的型式,本文中的抽蓄电站采用的是侧式进水口,进水口型式还有敞开式进水口和顶板式进水口,不同进水口对淹没深度的影响不可忽略;②进水口的几何尺寸;③流体本身的特性譬如粘滞力和表面张力等;④进水口处的流速;⑤减少最小淹没深度的一个最有效方法就是减少离墙间距。

(4)临界淹没深度的影响因素众多,该模型试验忽略了地形条件,采用的是近似的模拟边界条件,还有其他因素如要计入如何解决,模型仿真和数值仿真的结论是否相同或相近,如何衡量他们的精度,最终采用哪个的结论都是需要探讨的问题。

另外试验管道有轻微漏水,试验水流中带有少量的泥沙,水面有漂浮物,用来读取水位高度的测压管的排气彻底与否,CSY 旋桨流速仪用铁架固定,能否保持水平,流速较小时能否测出,采样频率的选择是否合理都需要与原型观测值进行对比来确定。

-8-

参考文献

[1] 夏毓常,进水口漩涡问题的探讨,泻水工程与高速水流[J],吉林科学技术出版社,1998。

[2] 马吉明,梁元博,电站双孔进水口临界淹没水深的试验研究,清华大学学报,Vol.40 No.5 P.122-124,2000.

[3] 陆佑楣,潘家铮主编,抽水蓄能电站,北京:水利水电出版社,1992年4月

[4] 梅祖彦主编,抽水蓄能技术,清华大学出版社,1988年5月

[5] 蔡付林,周建旭,曹青,胡明,侧式进/出水口体型与水力特性关系研究,河海大学水电学院,2004年全国抽水蓄能学术年会论文集.

Study on critical submergence depth of Pumped storage

plants ' inlet/outlet

Wang Kai ,Chen Fangliang

Hohai University, Nanjing, China (210098)

Abstract

Through some Pumped storage plants 'model experiment to study on the computationthe gardo coefficient of critical submergence water depth which corresponds the change situation in the different scopes, using model experiment survey number it is estimated the result and the empirical value comparison and has analyzed two different reasons, obtains the critical submergence water depth the decisive parameter and provides the reference for the actual project.

r F Key words: Critical depth ; V ortices ; Gordon formula ;Model Experimental

作者简介:王凯,男,1982年生,江苏淮安人,河海大学水利水电工程学院在读研究生,主要从事抽水蓄能技术方面的研究。

-9-

图的深度优先遍历算法课程设计报告

合肥学院 计算机科学与技术系 课程设计报告 2013~2014学年第二学期 课程数据结构与算法 课程设计名称图的深度优先遍历算法的实现 学生姓名陈琳 学号1204091022 专业班级软件工程 指导教师何立新 2014 年9 月 一:问题分析和任务定义 涉及到数据结构遍会涉及到对应存储方法的遍历问题。本次程序采用邻接表的存储方法,并且以深度优先实现遍历的过程得到其遍历序列。

深度优先遍历图的方法是,从图中某顶点v 出发: (1)访问顶点v ; (2)依次从v 的未被访问的邻接点出发,对图进行深度优先遍历;直至图中和v 有路径相通的顶点都被访问; (3)若此时图中尚有顶点未被访问,则从一个未被访问的顶点出发,重新进行深度优先遍历,直到图中所有顶点均被访问过为止。 二:数据结构的选择和概要设计 设计流程如图: 图1 设计流程 利用一维数组创建邻接表,同时还需要一个一维数组来存储顶点信息。之后利用创建的邻接表来创建图,最后用深度优先的方法来实现遍历。 图 2 原始图 1.从0开始,首先找到0的关联顶点3 2.由3出发,找到1;由1出发,没有关联的顶点。 3.回到3,从3出发,找到2;由2出发,没有关联的顶点。 4.回到4,出4出发,找到1,因为1已经被访问过了,所以不访问。

所以最后顺序是0,3,1,2,4 三:详细设计和编码 1.创建邻接表和图 void CreateALGraph (ALGraph* G) //建立邻接表函数. { int i,j,k,s; char y; EdgeNode* p; //工作指针. printf("请输入图的顶点数n与边数e(以逗号做分隔符):\n"); scanf("%d,%d",&(G->n),&(G->e)); scanf("%c",&y); //用y来接收回车符. for(s=0;sn;s++) { printf("请输入下标为%d的顶点的元素:\n",s); scanf("%c",&(G->adjlist[s].vertex)); scanf("%c",&y); //用y来接收回车符.当后面要输入的是和单个字符有关的数据时候要存贮回车符,以免回车符被误接收。 G->adjlist[s].firstedge=NULL; } printf("请分别输入该图的%d条弧\n",G->e); for(k=0;ke;k++) { printf("请输入第%d条弧的起点和终点(起点下标,终点下标):\n",(k+1)); scanf("%d,%d",&i,&j); p=(EdgeNode*)malloc(sizeof(EdgeNode)); p->adjvex=j; p->next=G->adjlist[i].firstedge; G->adjlist[i].firstedge=p; } } 2.深度优先遍历 void DFS(ALGraph* G,int v) //深度优先遍历 { EdgeNode* p;

射孔

5.3.完井设计的基本理论 5.3.1.完井方式 5.3.1.1射孔完井方式 套管射孔完井是钻穿油层直至设计井深,然后下面层套管至油层底部注水泥固井,最后射孔,射孔弹射穿油层套管、水泥环并穿透油层某一深度,建立起油流的通道。套管射孔完井既可选择性地射开不同压力、不同物性的油层,以避免层间干扰,还可避开夹层水、底水、气顶和夹层的坍塌,具备实施分层注采和选择性压裂或酸化等分层作业的条件。 尾管射孔完井是在钻头钻至油层顶界后,下技术套管注水泥固井,而后用小一级的钻头钻穿油层至设计井深,用钻具将尾管送下并悬挂在技术套管上,尾管 50,再对尾管注水泥固井,最后射孔。尾管射和技术套管的重合段一般不小于m 孔完井由于在钻开油层以前上部地层已被技术套管封固。因此,可以采用与油层相配伍的钻井液以平衡压力、欠平衡压力的方法钻开油层,有利于保护油层。此外这种完井方式可以减少套管重量和油井水泥的用量,从而降低完井成本。目前较深的油,气井大多采用此方法完井。 图5.2 套管射孔完井图5.3 尾管射孔完井 5.3.1.2裸眼完井方式

裸眼完井的最主要特点是油层完全裸露,因而油层具有最大的渗流面积。这种井称为水动力学完善井,其产能较高。裸眼完井虽然完善程度高,但使用局限性很大,例如:不能克服井壁坍塌和油层出砂对油井生产的影响;不能克服生产层范围内不同压力的油、气、水层的相互干扰;无法进行选择性酸化和压裂等。 5.3.1.3割缝衬管完井方式 割缝衬管完井方式是钻头钻至油层顶界后,先下技术套管注水泥固井,再从技术套管中下入直径小一级的钻头钻穿油层至设计井深。最后在油层部位下入预先割缝的衬管,依靠衬管顶部的衬管悬挂器(卡瓦封隔器),将衬管悬挂在技术套管上,并密封衬管和套管之间的环形空间,使油气通过衬管的割缝流入井筒。这种完井方式油层不会遭受固井水泥浆的损害,可以采用与油层相配伍的钻井液或其它保护油层的钻井技术钻开油层,当割缝衬管发生磨损或失效时也可以起出修理或更换。 5.3.1.4砾石充填完井方式 它是先将绕丝筛管下入井内油层部位,然后用充填液将在地面上预先选好的砾石泵送至绕丝筛管与井眼或绕丝筛管与套管之间的环形空间内,构成一个砾石充填层,以阻挡油层砂流入井筒,达到保护井壁、防砂入井的目的。砾石充填完井一般都使用不锈钢绕丝筛管而不用割缝衬管。

图的深度遍历

#include #include #define n 4 //图的顶点数 #define e 5 //图的边数 typedef struct node { int adjvex; struct node *next; } edgenode;//边表节点 typedef struct { char vertex; edgenode *link; }vexnode;//顶点表节点 vexnode ga[n]; int visited[n]; void Creatadjlist(vexnode ga[])//建立无向图的邻接表{ int i,j,k; edgenode *s; printf("请输入各个顶点:"); for(i=0;iadjvex=j; s->next=ga[i].link; ga[i].link=s; s=malloc(sizeof(edgenode)); s->adjvex=i; s->next=ga[j].link; ga[j].link=s; } } void Dfsl(int i)//邻接表的深度遍历 {

edgenode *p; printf("node:%c\n",ga[i].vertex); visited[i]=1; p=ga[i].link; while(p!=NULL) { if(!visited[p->adjvex]) { Dfsl(p->adjvex); } p=p->next; } } void main() { int i; Creatadjlist( ga); printf("请输入需要遍历的顶点:\n"); scanf("%d",&i); Dfsl(i); }

深度优先遍历(邻接矩阵)

上机实验报告 学院:计算机与信息技术学院 专业:计算机科学与技术(师范)课程名称:数据结构 实验题目:深度优先遍历(邻接矩阵)班级序号:师范1班 学号:201421012731 学生姓名:邓雪 指导教师:杨红颖 完成时间:2015年12月25号

一、实验目的: 1﹒掌握图的基本概念和邻接矩阵存储结构。 2﹒掌握图的邻接矩阵存储结构的算法实现。 3﹒掌握图在邻接矩阵存储结构上遍历算法的实现。 二、实验环境: Windows 8.1 Microsoft Visual c++ 6.0 二、实验内容及要求: 编写图的深度优先遍历邻接矩阵算法。建立图的存储结构,能够输入图的顶点和边的信息,并存储到相应存储结构中,而后输出图的邻接矩阵。 四、概要设计: 深度优先搜索遍历类似于树的先根遍历,是树的先根遍历的推广。假设初始状态是图中所有的顶点未曾被访问,则深度优先遍历可从图的某个顶点V出发,访问此顶点,然后依次从V的未被访问的邻接点出发深度优先遍历图,直至图中所有和V有路径相通的顶点都被访问到;若此时图中尚有顶点未被访问,则另选图中的一个未被访问的顶点,重复上述过程,直至图中所有顶点都被访问到为止。 以图中无向图G4为例,深度优先遍历图的过程如图所示。假设从顶点V1出发进行搜索,在访问了顶点V1后,选择邻接点V2。因为V2未曾访问,则从V2出发进行搜索。依次类推,接着从V4,V8,V5出发进行搜索。在访问了V5之后,由于V5的邻接点已都被访问,则搜索回到V8。由于同样的理由,搜索继续回到V4,V2直至V1,此时由于V1的另一个邻接点为被访问,则搜索又从V1到V3,再继续进行下去。由此得到顶点的访问序列为: V1 V2 V4 V8 V5 V3 V6 V7 五、代码 #include #include #define n 8 #define e 9 typedef char vextype; typedef float adjtype; int visited[n]; //定义结构体

射孔专业试题集3

射孔专业试题集 一、填空题: 1、目前所使用的射孔跟踪图检验标准是《Q/SH1020 0428-2010射孔跟踪图检验规程》。 2、在射孔与测试一体化施工中,封隔器坐封后所受压力一般控制在7-15吨。 3、一次或层发射率在 50%-80 %之间的,应按未发射孔数均匀布孔,进行补孔。发射率低于 50 %的,应按该次或层的应射孔数进行补射。可明显辨认的未发射井段在0.4 m以上时,应在未发射井段进行补孔。 4、硫化氢是一种无色、剧毒、强酸性气体。低浓度的硫化氢气体有臭皮蛋味。其相对密度为1.176g/cm3,较空气重。硫化氢与空气混合,浓度达到 4.3%-46% 的范围内时,就形成一种爆炸混合物。当空气中的含量在0.001%-0.002%时,不会对人体造成危害,当空气中的含量> 0.002 %时,会对人体造成危害,当达到 0.07 %时,2分钟内就致人死亡。 5、SL3000型射孔取心仪的绞车面板可以提供电缆总张力、微分电缆张力和校正后的深度脉冲等。 6、静密封“O”型圈具有单向密封的能力,动密封“O”型圈具有双向密封的能力。 7、检查射孔电缆绝缘时,兆欧表的G接线柱与电缆的绝缘层连接; L接线柱与电缆的缆芯连接;E接线柱与电缆的外皮连接。 8、灭火的基本方法有隔离法、冷却法、窒息法。 9、SL300型射孔取心作业之前,首先应该输入工程参数。SL300型射孔取心面板设置了射孔点火安全保障:主机确认、带锁开关、面板确认三级互锁控制。 10、数字电路信号的数值大小和增减变化在时间上是离散的。 11、利用井壁取心,可以测定油气层的孔隙度、渗透率、含油饱和度。 12、电流对人体的伤害可分为电击和电伤。我国额定的工频安全电压为36 V,外接220V工作电压时,必须配戴绝缘手套,以保安全,人体触电后,采取的第一步措施是摆脱电源。

邻接矩阵的深度优先遍历

#include #include using namespace std; #define INFINITY 32767 #define MAX_VEX 50 #define OK 1 #define FALSE 0 #define TRUE 1 #define ERROR -1 bool *visited; //图的邻接矩阵存储结构 typedef struct { char *vexs; //动态分配空间存储顶点向量 int arcs[MAX_VEX][MAX_VEX]; //邻接矩阵 int vexnum, arcnum; //图的当前定点数和弧数 }Graph; //图G中查找顶点c的位置 int LocateVex(Graph G, char c) { for(int i = 0; i < G.vexnum; ++i) { if(G.vexs[i] == c) return i; } return ERROR; } //创建无向网 void CreateUDN(Graph &G){ //采用数组(邻接矩阵)表示法,构造无向图G cout << "请输入定点数和弧数:"; cin >> G.vexnum >> G.arcnum; cout << "请输入" << G.vexnum << "个顶点" << endl; G.vexs = (char *) malloc((G.vexnum+1) * sizeof(char)); //需要开辟多一个空间存储'\0' //构造顶点向量 for(int i = 0; i < G.vexnum; i++) { cout << "请输入第" << i+1 << "个顶点:"; cin >> G.vexs[i]; } G.vexs[G.vexnum] = '\0';

图的深度广度遍历(算法与数据结构课程设计)

图的操作 一、问题描述 图是一种较线性表和树更为复杂的数据结构。在图形结构中,节点间的关系可以是任意的,图中任意两个数据元素之间都可以相关。由此,图的应用极为广泛。现在邻接矩阵和邻接表的存储结构下,完成图的深度、广度遍历。 二、基本要求 1、选择合适的存储结构完成图的建立; 2、建立图的邻接矩阵,能按矩阵方式输出图,并在此基础上,完成图的深度和广度遍历,输出遍历序列; 3、建立图的邻接表,并在此基础上,完成图的深度和广度遍历,输出遍历序列; 三、测试数据 四、算法思想 1、邻接矩阵 顶点向量的存储。用两个数组分别存储数据(定点)的信息和数据元素之间的关系(边或弧)的信息。 2、邻接表 邻接表是图的一种链式存储结构。在邻接表中,对图中每个定点建立一个单链表,第i 个单链表中的节点表示依附于定点vi的边。每个节点由3个域组成,其中邻接点域(adjvex)指示与定点vi邻接的点在图中的位置,链域(nextarc)指示下一条边或弧的节点;数据域(info)存储和边或弧相关的信息,如权值等。每个链表上附设一个头节点。在表头节点中,

除了设有链域(firstarc)指向链表中第一个节点之外,还设有存储定点vi的名或其他有关信息的数据域(data)。 3、图的深度遍历 深度优先搜索遍历类似于树的先根遍历,是树的先跟遍历的推广。假设初始状态是图中所有顶点未曾被访问,则深度优先搜索可从图中某个顶点v出发,访问此顶点,然后依次从v的未被访问的邻接点出发深度优先遍历图,甚至图中所有和v相通的顶点都被访问到;若此时图中尚有顶点未被访问,则另选图中一个未曾被访问的顶点作起始点,重复上述过程,直至图中所有顶点都被访问到为止。 4、图的广度遍历 广度优先遍历类似于树的按层次遍历过程。假设从图中某顶点v出发,在访问了v之后依次访问v的各个未曾访问过的邻接点,然后分别从这些邻接点出发依次访问它们的邻接点,并使“先被访问的顶点的邻接点”先与“后被访问的顶点的邻接点”被访问,直至图中所有已被访问的顶点的邻接点都被访问到。若此时图中尚有顶点未被访问,则另选图中一个 曾被访问的顶点作起始点,重复上述过程,直至图中所有顶点都被访问到为止。 五、模块划分 一、基于邻接矩阵的深广度遍历 1.Status InitQueue(LinkQueue *Q) 根据已知Q初始化队列 2.Status QueueEmpty (LinkQueue Q) 判断队列是否为空 3.Status EnQueue(LinkQueue *Q, QElemType e) 将e压入队尾 4.Status DeQueue(LinkQueue *Q, QElemType *e) 取队头元素e 5.int LocateVex(MGraph G,VertexType v) 定位定点v 6.void CreateGraph(MGraph *G) 建立无向图的邻接矩阵 7.void PrintGraph(MGraph G) 输出邻接矩阵的无向图 8.int FirstAdjVex(MGraph G,int v) 第一个邻接点的定位 9.int NextAdjVex(MGraph G,int v,int w) 查找下一个邻接点

图的深度优先遍历和广度优先遍历

华北水利水电学院数据结构实验报告 20 10 ~20 11 学年第一学期2008级计算机专业 班级:107学号:200810702姓名:王文波 实验四图的应用 一、实验目的: 1.掌握图的存储结构及其构造方法 2.掌握图的两种遍历算法及其执行过程 二、实验内容: 以邻接矩阵或邻接表为存储结构,以用户指定的顶点为起始点,实现无向连通图的深度优先及广度优先搜索遍历,并输出遍历的结点序列。 提示:首先,根据用户输入的顶点总数和边数,构造无向图,然后以用户输入的顶点为起始点,进行深度优先和广度优先遍历,并输出遍历的结果。 三、实验要求: 1.各班学号为单号的同学采用邻接矩阵实现,学号为双号的同学采用邻接表实现。 2.C/ C++完成算法设计和程序设计并上机调试通过。 3.撰写实验报告,提供实验结果和数据。 4.写出算法设计小结和心得。 四、程序源代码: #include #define MaxVerNum 50 struct edgenode { int endver; int inform; edgenode* edgenext; }; struct vexnode { char vertex; edgenode* edgelink; }; struct Graph { vexnode adjlists[MaxVerNum]; int vexnum; int arcnum; }; //队列的定义及相关函数的实现 struct QueueNode

{ int nData; QueueNode* next; }; struct QueueList { QueueNode* front; QueueNode* rear; }; void EnQueue(QueueList* Q,int e) { QueueNode *q=new QueueNode; q->nData=e; q->next=NULL; if(Q==NULL) return; if(Q->rear==NULL) Q->front=Q->rear=q; else { Q->rear->next=q; Q->rear=Q->rear->next; } } void DeQueue(QueueList* Q,int* e) { if (Q==NULL) return; if (Q->front==Q->rear) { *e=Q->front->nData; Q->front=Q->rear=NULL; } else { *e=Q->front->nData; Q->front=Q->front->next; } } //创建图 void CreatAdjList(Graph* G) { int i,j,k; edgenode* p1; edgenode* p2;

影响电缆射孔深度的几个因素

影响电缆射孔深度的几个因素 发表时间:2018-08-06T10:06:51.663Z 来源:《科技中国》2018年3期作者:张恩东 [导读] 摘要:电缆射孔深度是电缆射孔的关键,随着大庆油田不断的开采已经进入油田开采的后期阶段因此开发的层位都是一些小层,这就使我们射孔深度的准确性变的尤为重要,如果深度没有管理好就会使射孔失去了意义,从而降低了油田的产量无法完成四千万吨的任务。在我们每年的工作量中有70%是使用电缆射孔来完成的因此提高电缆射孔深度的准确性是十分有意义的。 摘要:电缆射孔深度是电缆射孔的关键,随着大庆油田不断的开采已经进入油田开采的后期阶段因此开发的层位都是一些小层,这就使我们射孔深度的准确性变的尤为重要,如果深度没有管理好就会使射孔失去了意义,从而降低了油田的产量无法完成四千万吨的任务。在我们每年的工作量中有70%是使用电缆射孔来完成的因此提高电缆射孔深度的准确性是十分有意义的。 关键词:电缆;射孔;深度 从“深度是射孔的灵魂”这句话中我们可以深刻的体会到深度对我们射孔人是多么的重要,如果深度不准射孔便失去了意义,所以我们一定要提高电缆射孔深度的准确性,在我们提高电缆射孔深度的准确性之前我们应该知道影响电缆射孔深度的几个因素。 1现状 由于长期施工射孔枪自身的重量、井底温度、井底压力等自然原因所造成的电缆本身长度的变化,因此要及时的校记号。由于在施工过程中重新做电缆头、电缆破皮严重等人为原因所造成的电缆长度的变化,因此施工人员一定要有责任心做到心中有数并且标准化施工。在井口对零时不准,井口对零过早会造成所测深度比实际要深,反之井口对零过晚会造成所测深度比实际要浅。因此我们在井口对零时应该把电缆头先下放到井里0.5米左右然后再上提对零,误差不应该超过0.02米。在对大记号时不准,对大记号过早会造成所测深度比实际要深,反之对大记号过晚会造成所测深度比实际要浅。因此我们在井口对零时应该把电缆头先下放到井里0.5米左右然后再上提对零,误差不应该超过0.02米。 2影响因素 在施工过程中吊滑轮不要移动并尽量保持滑轮的清洁。在施工过程中定滑轮要保持清洁特别是在冬季否则会导致滑轮变大或与电缆的摩擦力不够影响深度,滑轮侧面与马达咬合的齿轮必须保持清洁能与马达完全咬合,另外还要注意滑轮平时的保养要按时打黄油。在施工中滑轮还有一项重要参数会影响到射孔深度的准确性那就是滑轮误差。在射孔定位时深度是从马达系统传输过来的,马达主要是靠圈数来计算深度的。理想情况下滑轮每走一圈走过的电缆应是1.5米,而滑轮走一圈马达走六圈,所以整个深度系统把马达走六圈换算成电缆走1.5米,由此可见深度系统通过这个比例得到了深度。在实际施工中我们用的滑轮并不标准,不标准的主要原因有俩个:一是滑轮出厂时就不标准相对于标准的滑轮的直径或大获小;二是在我们平时施工中对滑轮有一定的磨损导致滑轮的直径变小。以上两个原因导致的直接结果就是滑轮的直径或大或小,从而导致滑轮走一圈就大于1.5米或小于1.5米。在滑轮直径变大或变小的情况下系统仍然按马达走六圈走过滑轮的电缆长度为1.5米计算,最后得到的深度一定是有误差的,这就是滑轮误差。我们想要消灭这个误差就需要在校记号时确定走一千米滑轮误差是多少,然后通过电脑把滑轮误差抵消,我们得到的深度就准确了。 马达的因素比较复杂我们现在使用的是光电脉冲马达主要由编码器、齿轮、锁紧销及信号接头体式极板等部分组成。由井口马达为光电编码器组成的深度系统,从马达线上传输过来的为数字信号,由于现场没示波器,无法对数字信号进行观察。遇到这种情况,首先测量马达线的通断,在井上施工的马达线一般有五根线组成。这四根主要是为马达提供电流和传递信号的。在测量时应用万用表的俩个表笔分别接触马达线俩个接头的“1-1”、“2-2”、“3-3”、“5-5”,如果其中有一根是不相通的就应该截断一段马达线重新测量,如此重复直至4根马达线全部相通再接上新的接头重新使用。如最开始时测量马达线,马达线是连通的则更换马达;现场施工时有时会出现深度忽通忽断的现象,深度时走时不走导致深度不准,射孔失去了依据。导致深度不准大概有几方面的原因:一是马达齿轮与井口滑轮齿轮咬合不好,由于我们在井上施工的条件比较恶劣油和泥沙比较多或在搬运的过程中磕碰多会导致井口滑轮的齿轮有所损伤从而导致马达的齿轮无法与井口滑轮的齿轮准确咬合最终影响了射孔的深度。二是马达软轴的锁紧销松动导致软轴与齿轮的转动不同步会导致马达的丢转的现象直接影响到深度的准确性。三是马达线接头与马达连接处由于与水、空气等接触产生氧化物,由于我们的马达长期在井口使用并且接触油、水、空气,这些物质长期接触会在马达线的接头处产生氧化物使马达线的接头与马达金属柱接触不良从而导致深度的不准。如果是马达齿轮与井口滑轮齿轮咬合不好,只能更换井口定滑轮。如果是马达软轴锁紧销松动可用专用六方固紧或者更换新的马达。 现场施工中以上几个因素都没有问题时深度仍然不准我们就可以考虑到DB-3型数控仪,主要从以下几个方面考虑。由于它在车里长期震动有可能会造成线路的松动,因此在出问题时打开面板检查里面的线是否松动,如有松动接好再重新确认深度是否准确。由于长期使用里面的电路板发生故障,这时我们应该按照规程进入DB-3型数控仪的自检程序,在运行一段时间后观察数码管的深度和电脑屏幕上的实时深度是否一致。如果不一致应及时更换电路板,如果一致再找其他原因。当我们发现电脑画面不流畅并且深度不准时我们应该更换射孔程序或重做系统以保证射孔深度的准确。 在我们施工中有时会出现置入、调节深度的现象由于操作员操作失误从而导致深度出现错误最终影响射孔的质量,因此我们工作时一定要标准化施工避免不应该有的失误。综合以上六种因素我们应该在施工中做到以下几点从而提高电缆射孔深度的准确性:及时校记号并且确定滑轮误差。标准化施工;井口对零一定要准确;保养好滑轮等工具;仔细观察数码管和实时深度的变化保证马达和马达线的正常工作;平时保养好DB-3数控仪,保证各板子的正常工作;不允许违反标准置入、调节深度标准化施工希望通过以上七条可以提高电缆射孔深度的准确性,从而使我们的射孔更加准确顺利为石油事业多贡献一份力量。 3 措施及建议 以上所分析的这些因素在一定程度上都会对射孔深度造成误差,产生的误差累计效应有时相当大。它们中有些属于系统本身的误差,有些是在进行资料处理时出现的,还有些是人为操作时产生的。针对以上因素,为了能进一步把射孔深度误差减小到最低限度,完井电测作业,应对深度系统进行定期校正,对天地滑轮、马丁代克等深度传输系统及时维修保养,磨损严重的及时更换,电缆记号定期校对,尽量把测井深度误差减小到最低限度,为测井解释提供准确的深度依据。目前的射孔作业,校正值不可避免。建议在确定各井段的校正值时,应当把校正井段取得尽量短一些,这样细化以后,每段的校正值就有可能控制在20cm,避免相邻两段的校正值存在较大的差别。 4 结论 从完井电测到最后的射孔要经过许多环节,测井所用的设备一般都需要3套,对其中一两个环节的误差也许不大,但是其累积起来的误差可

图的深度遍历与广度遍历

图的深度遍历和广度遍历程序源代码如下: #include"stdio.h" #include"stdlib.h" #define MAXQSIZE 100 #define MVNum 100 int visited[100]; typedef struct { char *base; int front; int rear; }SqQueue; int InitQueue(SqQueue &Q) //初始化队列 { Q.base=new char[MAXQSIZE]; if(!Q.base) exit(-1); //存储失败 Q.front=Q.rear=0; //队列为空 return 1; } int QueueEmpty(SqQueue &Q) //判断队非空 { if(Q.front==Q.rear) return 0; return 1; } int EnQueue(SqQueue &Q,char e) //入队 { if((Q.rear+1)%MAXQSIZE==Q.front) //队满 return 0; Q.base[Q.rear]=e; //新元素插入队尾 Q.rear=(Q.rear+1)%MAXQSIZE; //队尾指针加1 return 1; } int DeQueue(SqQueue &Q,char &e) //出队

{ if(Q.front==Q.rear) return 0; //队空 e=Q.base[Q.front]; Q.front=(Q.front+1)%MAXQSIZE; return 1; } int GetHead(SqQueue Q) //取队头元素{ if(Q.front!=Q.rear) return Q.base[Q.front]; } typedef struct //定义图 { char vexs[MVNum]; int arcs[MVNum][MVNum]; int vexnum,arcnum; }AMGraph; int LocateVex(AMGraph G,char u) { int i; for(i=0;i

采用非递归深度优先遍历算法

2007-05-27 晴 //采用非递归深度优先遍历算法,可以将回溯法表示为一个非递归过程 #include using namespace std; class Knap { friend int Knapsack(int p[],int w[],int c,int n ); //设置友元函数 public: void print() //定义类内函数打印结果 { for(int m=1;m<=n;m++) { cout<

}; private: int Bound(int i); void Backtrack(int i); int c; //背包容量 int n; //物品数 int *w; //物品重量数组int *p; //物品价值数组int cw; //当前重量 int cp; //当前价值 int bestp; //当前最优值int *bestx; //当前最优解int *x; //当前解 }; int Knap::Bound(int i) //装满背包

if(i<=n) b+=p/w*cleft; return b; } void Knap::Backtrack(int i) { if(i>n) { if(bestp

邻接矩阵表示图_深度_广度优先遍历

*问题描述: 建立图的存储结构,能够输入图的顶点和边的信息,并存储到相应存储结构中,而后输出图的邻接矩阵。 1、邻接矩阵表示法: 设G=(V,E)是一个图,其中V={V1,V2,V3…,Vn}。G的邻接矩阵是一个他有下述性质的n阶方阵: 1,若(Vi,Vj)∈E 或∈E; A[i,j]={ 0,反之 图5-2中有向图G1的邻接矩阵为M1 M1=┌0 1 0 1 ┐ │ 1 0 1 0 │ │ 1 0 0 1 │ └0 0 0 0 ┘ 用邻接矩阵表示法来表示一个具有n个顶点的图时,除了用邻接矩阵中的n*n个元素存储顶点间相邻关系外,往往还需要另设一个向量存储n个顶点的信息。因此其类型定义如下: VertexType vertex[MAX_VERTEX_NUM]; // 顶点向量 AdjMatrix arcs; // 邻接矩阵 int vexnum, arcnum; // 图的当前顶点数和弧(边)数 GraphKind kind; // 图的种类标志 若图中每个顶点只含一个编号i(1≤i≤vnum),则只需一个二维数组表示图的邻接矩阵。此时存储结构可简单说明如下: type adjmatrix=array[1..vnum,1..vnum]of adj; 利用邻接矩阵很容易判定任意两个顶点之间是否有边(或弧)相联,并容易求得各个顶点的度。

对于有向图,顶点Vi的出度OD(Vi)为邻接矩阵第i行元素之和,顶点Vi 的入度ID(Vi)为第i列元素之和。即 n n OD(Vi)=∑A[i,j],OD(Vi)=∑A[j,i]) j=1j=1 用邻接矩阵也可以表示带权图,只要令 Wij, 若或(Vi,Vj) A[i,j]={ ∞, 否则。 其中Wij为或(Vi,Vj)上的权值。相应地,网的邻接矩阵表示的类型定义应作如下的修改:adj:weightype ; {weightype为权类型} 2、图的遍历: *深度优先搜索 深度优先搜索遍历类似于树的先根遍历,是树的先根遍历的推广。假设初始状态是图中所有的顶点未曾被访问,则深度优先遍历可从图的某个顶点V出发,访问此顶点,然后依次从V的未被访问的邻接点出发深度优先遍历图,直至图中所有和V有路径相通的顶点都被访问到;若此时图中尚有顶点未被访问,则另选图中的一个未被访问的顶点,重复上述过程,直至图中所有顶点都被访问到为止。 以图中无向图G 4为例,深度优先遍历图的过程如图所示。假设从顶点V 1 出 发进行搜索,在访问了顶点V 1后,选择邻接点V 2 。因为V 2 未曾访问,则从V 2 出 发进行搜索。依次类推,接着从V 4,V 8 ,V 5 出发进行搜索。在访问了V 5 之后,由于 V 5的邻接点已都被访问,则搜索回到V 8 。由于同样的理由,搜索继续回到V 4 ,V 2 直至V 1,此时由于V 1 的另一个邻接点为被访问,则搜索又从V 1 到V 3 ,再继续进 行下去。由此得到顶点的访问序列为: V 1 V 2 V 4 V 8 V 5 V 3 V 6 V 7

射孔名词解释

1、聚能射流jet 聚能装药的爆轰能量使药型罩压垮并朝轴向汇聚而形成的高温、高速金属流。 2、杵体slug 聚能装药爆炸时由药型罩外层形成的低速、无穿孔能力的杵状物。 3、自然炸高stand-off 聚能装药药型罩大端面与枪或壳体内壁间的垂直距离。 4、射孔器perforator 用于射孔的爆破器材及其配套件的组合体。 5、射孔弹perforating charge 用于油气井射孔的由炸药及壳体、药型罩等构成的组合体。 6、聚能式射孔器jet-perforator 利用聚能效应产生射流完成射孔作业的射孔器,分为有枪身和无枪身两大类。 7、子弹式射孔器bullet gun 利用火药发射金属子弹完成射孔作业的射孔器。 8、射孔枪perforating gun block 射孔施工中,用于承载射孔弹的密封承压发射体,一般由枪身、枪头、枪尾和密封件等组成。 9、多次使用射孔枪reusable gun 枪身可重复使用的射孔枪。 10、一次使用射孔枪expendable gun 枪身不可重复使用的射孔枪。 11、可回收式射孔枪retrievable gun 一次使用和多次使用的射孔枪总称为可回收式射孔枪(国外仅指一次使用射孔枪)。

12、喷火孔port 多次使用射孔枪的枪身上预先加工好供射流穿过的通孔。 13、孔塞port plug 多次使用射孔枪喷火孔的封堵件。 14、盲孔scallop 射孔枪枪身上供射流通过的未贯通的孔。 15、弹架charge strip 射孔器中固定射孔弹的专用支架。 16、聚能射孔弹shaped charge 具有聚能效应的射孔弹。 17、无杵堵射孔弹slug-free shaped charge 在规定的条件下不在射孔孔道中产生坚实杵体的射孔弹。 18、有枪身射孔弹charge for hollow steel carrier 必须装入射孔枪内使用的射孔弹。 19、无枪身射孔弹strip charge 自身壳体可以承受压力和温度额射孔弹。 20、传爆药饼booster 传爆序列中用于增大雷管或导爆索的爆轰波的输出,起爆主炸药的轴状传爆药。 21、传爆管detonator 传爆序列中用于传递雷管或导爆索爆轰能量的火工品。 22、聚能切割器jet cutter 利用聚能效应进行切割作业的切割器,由聚能切割弹和雷管等组成。23、药型罩liner 紧贴在药柱聚能穴上能形成射流的衬套。按使用材料分为以下三种:

射孔操作步骤

KN3000射孔操作步骤 深度计算: 上提射孔: S0(上提值)=S标—S目顶+LC(零长) 下放射孔: S0(下放值)= S目顶—S标—LC(零长) 一、开机设置: 开机后,自动进入DOS系统,(“>”为回车) 提示depth:输入深度“0”> 输入“KN”> Depth,再输入“0”> 自动到D:\cj,输入“cd..”> (目的:退回到D盘下,CD为修改当前目录)D:\ 输“cd_sk”> D:\SK 输“md_k502> (K502为井号,MD为建一个新的子目录) D:\SK 输“cd_K502>

D:\sk\k502 输“copy_d:\sk\yj\zystable.dat”> 1 copy D:\sk\k502 输“dir”> (显示文件列表的命令) (显示文件名后自动返回)至 D:\sk\k502 输入“sk”> 系统进入测井(射孔)操作界面。 二、测井(射孔)操作界面 点F2-2-1:图头编辑:输入井名,井号等。 下放测CCL,校深。出图。 1、井口深度对零 在CCL入井时,仪器记录点对准井口平面,停车。键入“S”回车,“0”回车。 2、仪器下井 仪器下井,在距离射孔层段70米处(7根套管)停车,挂图下拉(按F4,2,进入深度驱动测井,即为挂图),下放速度1800米\小时左右,跟原图进行对比,每根套管的长度误差不超过±5cm。下至油层下第四根套管处。打印图,和原图进行对比。 3、校深 通过和原图进行对比,找出校深接箍。按原图对应的接箍深度重新置入深度:下放或上提出校深短套管接箍1-2米后,停车,键入“X”,按原图输入对应接箍的深度“000.00”,回车,系统自动更改图中的深度。 4、上提测井 上提仪器,至浅于校深接箍一根套管处停车,挂图下测,下拉对比。下拉至标接下第二个接箍N2,停车,按ESC退出。(标准接箍:油层下界以下的第一个接箍或上界以上的第一个接箍)。上提挂图测井,上提前按“Ctr+B”,在屏幕右上角显示CCL值的实时变化。 ESC退出,回到DOS: 三、深度设置 D:\sk\k502 输入O,出现大图头。 输入“tc_rsk.inp”> (填写文件) 进入“文件编辑”界面,输入一个大写字母为文件名,挂图自动存图系统会按编号生成文件

算法设计:深度优先遍历和广度优先遍历

算法设计:深度优先遍历和广度优先遍历实现 深度优先遍历过程 1、图的遍历 和树的遍历类似,图的遍历也是从某个顶点出发,沿着某条搜索路径对图中每个顶点各做一次且仅做一次访问。它是许多图的算法的基础。 深度优先遍历和广度优先遍历是最为重要的两种遍历图的方法。它们对无向图和有向图均适用。 注意: 以下假定遍历过程中访问顶点的操作是简单地输出顶点。 2、布尔向量visited[0..n-1]的设置 图中任一顶点都可能和其它顶点相邻接。在访问了某顶点之后,又可能顺着某条回路又回到了该顶点。为了避免重复访问同一个顶点,必须记住每个已访问的顶点。为此,可设一布尔向量visited[0..n-1],其初值为假,一旦访问了顶点Vi之后,便将visited[i]置为真。 -------------------------- 深度优先遍历(Depth-First Traversal) 1.图的深度优先遍历的递归定义 假设给定图G的初态是所有顶点均未曾访问过。在G中任选一顶点v为初始出发点(源点),则深度优先遍历可定义如下:首先访问出发点v,并将其标记为已访问过;然后依次从v出发搜索v的每个邻接点w。若w未曾访问过,则以w为新的出发点继续进行深度优先遍历,直至图中所有和源点v有路径相通的顶点(亦称为从源点可达的顶点)均已被访问为止。若此时图中仍有未访问的顶点,则另选一个尚未访问的顶点作为新的源点重复上述过程,直至图中所有顶点均已被访问为止。 图的深度优先遍历类似于树的前序遍历。采用的搜索方法的特点是尽可能先对纵深方向进行搜索。这种搜索方法称为深度优先搜索(Depth-First Search)。相应地,用此方法遍历图就很自然地称之为图的深度优先遍历。 2、深度优先搜索的过程 设x是当前被访问顶点,在对x做过访问标记后,选择一条从x出发的未检测过的

第六章射孔介绍

第六章射孔 射孔是利用高能炸药爆炸形成射流束射穿油气井的套管、水泥环和部分地层,建立油气层和井筒之间的油气流通道的工艺。射孔是完井工艺的重要组成部分,它对油气井的完井方式、产能、寿命和开发生产成本等都有重大的影响。 从1932年开始在油气田的勘探开发中应用射孔工艺以来,射孔弹由最初的子弹式发展成为目前广泛使用的聚能弹。射孔弹分为深穿透型和大孔径型两种,能满足高温、中温、低温地层的完井射孔需要。射孔方式分为电缆射孔、油管输送射孔和过油管射孔。 海上油气田开发费用昂贵,根据不同地层物性条件选择合理的射孔工艺和优化射孔参数(孔径、孔密、相位、孔深),对增加产能和减少修井补射孔作业,提高油气田开发生产效益有重大的影响。 第一节射孔方式和选择 一、射孔方式 1.电缆射孔 电缆射孔是在下入完井生产管柱前,用电缆下入套管射孔枪,利用油气层顶部的套管短节进行射孔深度定位,电雷管引爆射孔枪。在井筒液柱压力高于地层压力的条件下射开生产油气层。 电缆射孔枪有开孔枪和高效枪及高孔密枪等。开孔枪简称PPG(Pore Plug Gun),高效 枪简称HEG(High Efficiency Gun)。PPG和HEG的射孔相位均为90°,最大射 孔孔密为13孔/m。高孔密枪简称HSD(High Shot Donsity)的射孔相位有 120°、90°、60°、45°、30°,最大射孔孔密为39孔/m。射孔弹有深穿透 (DP)和大孔径(BH)两种。 (1)电缆射孔优缺点 1)优点。 ①射孔枪和射孔弹的种类多,能使用大直径射孔枪和大药量射孔弹,满足高 孔密、深穿透、大孔径的射孔要求。 ②射孔定位快速、准确。 ③电雷管引爆可靠性强。 ④作业简便快捷,能连续进行多层射孔。 2)缺点。 ①正压射孔,对地层造成污染损害,影响产能。 ②在地层压力掌握不准时,射孔后易发生井喷,为防井喷必须安装防喷器和 防喷管。 ③受电缆输送能力和防喷管长度的限制,每次下枪长度只能在10m左右,厚 度大,油气层的射孔作业时间长,在大斜度井、水平井和高密度泥浆中的应用也 受限制。 ①容易受电火花、强烈震击等外界因素的干扰而发生爆炸。 (2)电缆射孔选择射孔枪和射孔弹的因素 l)完井套管内径; 2)地层温度和压力; 3)深穿透或大孔径射孔要求; 4)射孔相位和孔密要求; 5)射孔工艺特性要求。 电缆射孔枪串由枪身、点火头、CCL,校深仪和电缆接头组成,如图6-1-1所示。电缆接头有三种作用,一是连接枪串和电缆;二是作为电缆弱点,当电缆射孔枪遇卡时从电缆接头拉断,取出电缆;三是作为打捞头。 2.油管输送射孔 油管输送射孔简称TCP(Tubing Conveyed Perforation),是用油管输送射孔枪到射孔层位进行射孔,是70年代发展起来的一种射孔方法。 油管输送射孔有棒击引爆、油管内加压延时引爆、环空加压引爆、电雷管引爆和钢丝作业震击引爆等引爆方式。

相关文档
相关文档 最新文档