(流体机械及工程专业论文)变截面气井压力温度预测综合数值模拟.pdf_第1页
(流体机械及工程专业论文)变截面气井压力温度预测综合数值模拟.pdf_第2页
(流体机械及工程专业论文)变截面气井压力温度预测综合数值模拟.pdf_第3页
(流体机械及工程专业论文)变截面气井压力温度预测综合数值模拟.pdf_第4页
(流体机械及工程专业论文)变截面气井压力温度预测综合数值模拟.pdf_第5页
已阅读5页,还剩63页未读 继续免费阅读

(流体机械及工程专业论文)变截面气井压力温度预测综合数值模拟.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西华大学硕士学位论文 变截面气井压力温度预测综合数值模拟 流体机械及工程 硕士生:王晓影导师:陈次昌教授 摘要 气井的开采技术一直是实施勘探与开发的关键性难题。在开采过程中,由 于井身结构、地层传热等各种原因都可能会使井内温度、压力发生变化。开采 过程中对井内温度、压力、流速、密度的掌握和控制,有利于进行气井生产系 统动态分析和生产设施的优化设计。特别对于变截面气井来说,井筒压力、温 度的预测与其产量是密切相关的。因此,对于变截面气井井筒动态的研究一直 受到广泛的关注。通过对井筒压力分布的预测,可以提高井筒压力预测的精度。 由于开采过程中难以用实测方法对井内压力温度进行连续测量,因此,建 立适当的数学模型就成为确定井简内压力温度变化的主要途径。国内外已经有 很多学者对此进行了研究,并得出了一些模型,而这些模型或多或少地在某些 方面进行了简化,从而使其准确度和适用范围受到了限制,但这些为以后的计 算传热学的进一步发展奠定了基础。 本文在分析研究现有的关于井筒内压力温度分布的数学模型的基础上,先 运用公式直接求解法,即从基本方程和气体状态方程出发,导出描述气体稳定 流动时其压力和温度分布的常微分方程组,采用四阶龙格一库塔法直接数值求 解,还编制了相应的计算机程序,并采用混合编程技术对计算程序进行封装, 同时结合实际测井数据对计算结果进行验证,得出了井简内压力和温度分布曲 线。再用控制容积积分法对井内的实际压力和温度进行二维计算,并对其结果 进行了相应的分析处理,通过实验验证,为变截面气井的压力、温度的预测提 供参考。 关键词:气井、变截面、数值模拟 i l l 西华大学硕士学位论文 a b s t r a c t t h ee x p l o i t a t i o no fg a sw e l li st h ek e yp u z z l eo fe x p l o r a t i o na l lt h et i m e t h e p r o c e s so fe x p l o i t ,d u et ot h ec h a n g eo fw e l ls t r u c t u r e 、h e a tt r a n s f e ra n ds oo n a l l t h e s er e a s o n sm a ym a k et e m p e r a t u r ea n dp r e s s u r e c h a n g e d i nt h ec o n t r o lo f p r e s s u r ea n dt e m p e r a t u r eo fe x p l o i tp r o c e s si st h ei m p o r t a n tp r o b l e m ,a tt h es a m e t i m e ,i sa l s of a v o rf o rd y n a m i cd e s i g n i n go fm a n u f a c t u r es y s t e m e s p e c i a l l y ,t h e p r e s s u r ea n dt e m p e r a t u r eo fv a r i a b l e a r e ag a sw e l la r er e l a t e dt ot h eo u t p u t ,s ow e s h o u l dp a ym o r ea t t e n t i o nt ot h es t u d y i n go fv a r i a b l e a r e ag a sw e l l t h ef o r e c a s to f p r e s s u r ed i s t r i b u t i o nm a ym a k eh i 曲p r e c i s i o n i ti sd i f f i c u l to fc o n t i n u o u sm e a s u r i n gp r e s s u r ea n dt e m p e r a t u r e ,s oc r e a t e d p r o p e rm a t h e m a t i cm o d e lf o rd e f i n i n gt h ec h a n g eo fp r e s s u r ea n dt e m p e r a t u r ei s v e r yi m p o r t a n t a tt h eh o m ea n da b r o a d ,m a n ys c h o l a r sh a v es t u d i e do ni t ,a n d d e d u c e ds o m em o d e l s ,b u tt h e s em o d e l sm o r eo rl e s sp r e d i g e s ti nc e r t a i nf a c e t si n o r d e rt ot h ed e v e l o p m e n to fc a l c u l a t e dh e s tt r a n s f e r t h et e x t a n a l y s e s t h e e x i s t i n g m o d e l so f p r e s s u r e a n dt e m p e r a t u r e d i s t r i b u t i o n ,a p p l i e df o r m u l as o l u t i o n ,d e d u c t e do r d i n a r yd i f f e r e n t i a le q u a t i o no f p r e s s u r ea n dt e m p e r a t u r ed i s t r i b u t i o n ,a n dp r o g r a m m e dc o r r e s p o n d i n gc o m p u t e r p r o g r a m ,a tt h es a m et i m e ,u s e dm e a s u r e dd a t at ov e r i f y ,d r a w i n gp r e s s u r ea n d t e m p e r a t u r ed i s t r i b u t i o nc u r v e ,t h e na p p l i e dc o n t r o lv o l u m em e t h o dt oc a l c u l a t e r e a l p r e s s u r ea n dt e m p e r a t u r eo fv a r i a b l e a r e ao i lt u b e ,a n a l y z e dr e s u l t ,p a s s e d e x p e r i m e n t a lv e r i f i c a t i o n ,i n o r d e rt oo f f e rt h er e f e r e n c ef o r p r e s s u r e a n d t e m p e r a t u r ef o r e c a s t i n go fv a r i a b l e - a r e ag a sw e l l k e yw o r d s :g a s - w e l l ,v a r i a b l e a r e a ,n u m e r i c a ls i m u l a t i o n 西华大学硕士学位论文 1 i 课题来源 第一章绪论 本课题为四川省教育厅重点科技攻关项目,是中国石油西南油气田分公司 与西南石油学院合作开发项目。 i 2 课题研究的意义及目的 天然气是一种特殊的气体,有它自身的发生、发展、形成矿藏的地质规律, 而且天然气的化学成分以甲烷为主,其中还含有二氧化碳、一氧化碳、硫化氢、 氢及微量惰性气体;具有可压缩性和膨胀性;易燃易爆,所以天然气的开采也 具有一定的难度。在实际情况下,地层流体本身就具有较高的压力,气体溢 流在井内的形成和发展过程很快,若认识不足或控制不当极易导致因井内压力 失去平衡而发生井喷,严重影响正常开采作业。由于天然气溢流发生的特殊环 境条件、危险性和复杂性,一般在现场或实验室条件下很难进行真实的重复和 物理模拟实验研究。为此,通过建立合理的理论模型,并借助计算机技术来实 时再现这一过程,研究在各种复杂情况下井内流体流动状态、参数变化及控制 规律,从而更为准确和全面地认识描述整个井控过程,也利于对开采过程中井 内温度、压力的掌握、控制和调节。同时,不同地层的井内温度、压力特性和 规律也是开采高保真取样系统、开采装备、和开采技术系统等设计和实施的依 据。开采过程中的温度、压力特性和规律的研究程度将是未来推动或制约我国 和其他国家对天然气开采和利用的研究和实施进程的关键因素。因此,各国( 包 括美国、日本、印度、德国等) 都将天然气开采过程中的温度、压力特性作为 关键问题开展研究,并最终建立钻井过程的温度一压力预测和控制。 该课题的研究成功,将有利于进行气井生产系统动态分析和生产设施的优 化设计,同时也有利于天然气的开采和输送。对于变截面气井来说,井筒压力、 西华大学硕士学位论文 温度的预测不仅与产量有关,还与井筒截面的变化密切相关。气井压力、温度 分析的正确与否,直接影响到气井产能评价、生产系统动态分析和生产设施的 优化。因此,对于气井井筒动态的研究一直受到广泛的关注。通过对井筒压力、 温度分布进行数值模拟,不但可以提高井筒压力温度预测的精度,而且对于高 温高压和含腐蚀性介质( 如硫) 气井,温度、压力的预测对预防钢材的氢脆断裂 有着更为重要的意义“1 。 1 3 课题研究的国内外现状及存在的问题口 近几年,国内外很多学者都不同程度上开展了对气井压力、温度预测的研 究,发现井筒气体的压力温度主要受井筒周围地热损耗速度的影响。此外,它 还与气体所在的位置深度、生产或注入时间等因素有关,并在此基础上有人提 出了估算井简稳定流动时液体温度的模型。其预测方法有以下几种:1 、苏博哥 尔( s c h l u m b e r g e r ) 提出的温度测量法,在此之后,利日姆( l e s e m ) 、摩思( m o s s ) 和威特( w h i t e ) 等人提出了估算井筒液体温度的经验方法,雷米( r a m e y ) ”1 和埃德华生( e d w a r d s o n ) 最先提出了考虑时间和井深影响时的井筒液体温度计 算的理论模型,但是在他们的方法中将压力合理的分离出来,只研究井筒中气 体的温度分布。2 、著名的c u l l e n d e r s m i t h ”。方法,即通过将井筒整体或分段温 度平均的方法,但对于变截面气井采用这种温度平均法,就会忽略了气井油管 突扩处的温度变化而产生过大的误差。3 、t a k a c s 和g u f f e y ”1 采用统计试验中的 因子设计分析方法,回归了一个能最佳拟合给定气田井底压力数据的代数公式, 该公式可预测气井井底流压。但是他所提出的方法也没有考虑到井筒截面突扩 的情况,且预测压力时需要多次迭代,其预测结果与实测值之间存在较大偏差。 4 、在传统节点系统分析的求解过程中,将井口温度作为已知量,井筒流体温度 变化看成线性分布。实际上,井口的温度随产量的改变而改变。当气井产量增 大,流向井口的热流量增大,从而使井口温度升高。把井口温度作为已知量, 往往会因为井口温度估计不准而是温度、压力预测存在较大的误差,进而导致 2 西华大学硕士学位论文 系统设计结果于实际情况有较大出入。5 、通过假设井筒中的传热为稳定传热, 井筒周围地层中的传热为非稳态传热,根据能量守恒定律建立了计算气井井筒 温度分布的数学模型。这种预测结果肯定了流速随截面的变化会产生突变,但 是却忽略了压力温度受截面突扩影响而产生的变化。 考虑到以上方法的不足,目前国内外很多学者都致力于气井压力温度预测 的研究,而且研究的重点也由过去的等截面逐渐向变截面过渡。通过对气井油 管突扩段进行分析,清晰地了解到天然气在经过该处时的流动状态,从而提出 相应的假设条件,然后再从基本方程及气体状态方程出发,导出综合描述气体 稳定流动时其压力、温度、流速及密度分布的常微分方程组,并且同时计算出 流动气体的温度、压力、流速及其密度沿井深的分布以及相同井底条件下不同 产量情况下气体温度、压力、流速及密度沿井深的分布。 1 4 本课题要解决的问题及研究途径 论文主要对如下问题进行模拟: 分析油管内流体的流动状态,在本文中将其分为油管截面不变和突扩变化 两种情况,并采用不同的方法分别针对两种情况下井筒内的压力、温度、密度 和流速进行综合数值模拟。 一、油管截面无变化的情况,本文主要是基于质量、动能、能量守恒原理 及传热学理论,建立预测气井井筒流体压力、温度、流速及密度分布的数学模 型,导出描述流动气柱的压力、温度、流速及密度分布的常微分方程组,并进 行相关的数值求解。同时要综合考虑井斜角、井深结构、油管柱结构,气井井 筒的径向传热、不同环空传热介质及地层的热物理性质沿井深的变化以及井筒 截面变化的影响,以便符合气井的实际情况“1 。对井筒内压力、温度、流速及 密度进行数值模拟,并绘出气体压力、温度、流速及密度沿井深的分布曲线, 直观地反映了气井的流动规律和地层的传热持征。可为高温高压气井试井工艺 设计和生产动态分析( 如水化物预测、油管柱设计等) 提供技术依据。 西华大学硕士学位论文 其主要技术路线如下: 1 模型建立,利用主要假设条件将质量守恒方程、动量守恒方程、能量守 恒方程进行适当的简化,以便于建立相关的数值求解关系式。 2 利用计算机语言编写计算相关气体参数的源程序并制作出相应的界面软 件,通过把己知的初始条件及边界条件输入到软件中达到对实际井下压力温度 预测的数值模拟,从而实现天然气开采的自动控制,能够大大提高天然气开采 过程中参数控制的自动化。 3 将计算机程序所得数据与实际数据进行对比,并根据对比情况再对相关 的数学模型进行修正,最后得到误差允许范围内的计算数据。 二、油管截面突扩的情况,管路突然扩张的下游流动无论在理论上还是实 际应用上都具有重要的意义,因为它包含了大量的基础流动现象,由于管道面 积的突然扩张,在面积突然变化的截面后面存在着回流、分离、重附和剪切等 流动现象,这些现象对于流动的数值分析有着一定的帮助。特别是对气井而言, 在对天然气的开采和输送过程中,因其井内各项参数变化的复杂性,实际工作 起来难以进行较为精确的监测,如果能够通过对井内突扩处的温度、压力变化 情况进行模拟,可以提高井下作业的安全性。”1 基本思路如下: 1 分析管路突扩处气体的流动状态“ 管路突扩后气体的分离流动具有一定的复杂性,包括漩涡、高湍流水平的 自由剪切层、基本回流区和非常贴近于突扩区的假定第二回流区或角漩涡。随 着管壁上剪切层的回附,流动继续发展,最后得到全发展湍流管流。 分离一回附的过程通过分离剪切层和邻近流体之间复杂的相互作用来表现。 交互状况中最重要的变化依赖于在分离区和回附区流动到底是湍流还是层流。 三种不同的流动现象都可能发生:( i ) 层流一层流,即分离区和回附区的边界 层流动都是层流。( 2 ) 层流一湍流,即分离区流动为层流,回附区的流动为湍 流。( 3 ) 湍流一湍流,即分离区和回附区的边界层流动都是湍流。 2 数学模型的建立 通过对流体流动状态进行分析,利用主要假设条件将质量守恒方程、动量 守恒方程、能量守恒方程进行适当的简化,以便于建立相关的数值求解关系式。 4 西华大学硕士学位论文 除此以外对于湍流还需建立湍动能和湍流耗散率方程。 3 模型的求解“ 本文中主要采用有限体积法对控制方程进行离散。首先,用网格线将连续 的计算域分为有限离散点( 网格节点) 集,并选取适当的途径将微分方程及其 定界条件转化为网格节点上相应得代数方程组;然后,在计算机上求解离散方 程组,得到节点上的解 1 5 课题的研究内容及其组织结构 本论文的研究目的是希望通过用数值模拟的方法来研究气井油管截面不变 和突扩两种情况下井筒内压力、温度、流速及密度变化。 论文各章内容安排如下: 第一章为绪论,介绍论文的研究意义、内容及研究方法,简介课题研究的 国内外进展情况。 第二章通过编写程序制作出相应的界面软件以实现天然气开采的自动化 第三章对气井油管截面不变情况下的温度、压力、流速、密度进行数值模 拟,并通过实例计算对结果进行分析。 第四章分析变截面气井,利用实际气井测井数据对之进行验证,得出井内 温度、压力、流速及密度分布模型和分析结果。 第五章结论与建议 西华大学硕士学位论文 2 1 物理模型。1 第二章数学模型的求解 在气田开发过程中,气体在井筒内的流动复杂主要表现在井筒内的气体流 动压力、温度和流速分布随井深呈非线性变化。从井底到井口,气井的温度和 压力逐渐降低。温度降低将导致气体体积缩小,密度增大,体积流速减小;而 压力降低会导致气体体积膨胀,密度减小,体积流速增大。如图2 1 所示,气体 在井筒中流动,同时会通过油管、环空气柱、套管、水泥环最后是地层作热交 换。正确预测气井井筒温度、压力分布,有利于进行气井生产系统动态分析和 生产设施的优化设计。对于高温高压和含腐蚀性介质( 如硫) 气井、温度、压 力的预测对预防钢材的氢脆断裂有着更为重要的意义。 誊 荔蕊 骓 i l 业祟 釜綦 一环 姜 _ j 水一 彳地亍 拢二 靠蓬荔 一空一 羹 。l 图2 一l 井段结构示意图 f i g 2 1 s k e t c hp l a no fw e l ls e g m e n ts t r u c t u r e 2 2 等截面气井压力温度数学模型乜“1 对于气井井筒动态的研究一直受到广泛的关注。研究气井井筒压力温度动 曲华大学硕士学位论文 态的方法有三类:第一类,r a m e y 方法,合理地分离压力,只研究井筒中气 体的温度分布。第二类,井筒整体或分段温度平均的方法,推导出井底压力的 迭代时算公式,如著名的c u l l e n d e r - - s m i t h 方法。第三类,较为复杂,但更为合 理,考虑井筒中的流动是稳定流动,而地层中的传热过程为不稳定的,利用稳 定热源精确数学解构造与时间相关的散热关系表达式代入到能量守恒方程中 去,实现压力与温度的计算耦合。本课题中,要求出气井井筒内的压力、温度、 密度、流速的分布情况,尤其是截面突扩处的压力、温度分布。故本文中井筒 内的流动是稳定流动而地层中传热是不稳定的。建立了相应的数学模型,并给 出了数值算法。该方法能计算任意流动状况沿井筒的压力温度分布。 圈2 - 2 管流压降分析图 f i g 2 - 2p r e s s u r ed r o pa n a l y s i so fp i p ef l o w 气体自井底而上运动,遵循质量守恒、动量守恒和能量守恒,同时,气体 还遵循状态方程。天然气井井筒系统的管流问题主要假设条件为: 1 气体流动状态为稳定单向流动 2 假设井筒内传热为稳定传热 3 假设地层传热为不稳定传热,且服从r e m a y 1 推荐的五因次时间函数; 4 油套管同心。如图卜2 所示,取地面为坐标原点,沿管线向下的方向为 坐标轴z 正向, 建立坐标系。 质量守恒方程 口坐+ v 翌。o( 2 一1 ) 西华大学硕士学位论文 动量守但万程 罢;偌s t n p 一,掣一芝 能量守恒方程 侈警- gs i n 0 1 = 。 状态方程 d :生 。 r z 。t 比焓梯度 石d h = c v 石d t - - c p t 2 l j t 塞 其中w = a p v 由于气体在油管中流动时,管径截面变化一般不大, 忽略。认为差= c p i d t ,故能量方程( 2 3 ) 可化为 m ,警+ 罢- g s i n o = o 式中q 为单位长度井段在单位时i o j 内的热损失。 根据稳定传热规律 q = 2 m , 。u ,。饥一k ) 根据不稳定传热 q = 掣 因此单位时间内的热损失q 为 叮2 涨e l ) 式中: ( 2 - 2 ) ( 2 3 ) ( 2 4 ) ( 2 5 ) 故焦一汤系数较小可 ( 2 6 ) ( 2 7 ) 西华大学硕士学位论文 t = 瓦+ g 。z 乜= 。i ( p 。c 。) 。一油管外径,m ; u ,。一总传热系数,w i m 。c t 一流体温度,k ; t 一井壁温度,k k 。一地层传热系数,w m 。c : ,也) 一无因次时间函数; 将( 2 7 ) 代入( 2 - 6 ) 式可得 z n b t ,+ c p 石d t + v d 罢- g s i n 0 = o 其中。;曼墼肇 r , o u 。,j + k 。 无因次时间函数,( f d ) 由下式计算: ,k ) = 1 1 2 8 1 砷一0 3 i )f d 虬5 ( 2 8 ) ( 2 9 ) 地) = 阻。) + 0 4 0 6 3 ) ( 1 + 警】护1 5 1 0 ) 井筒流体向周围地层岩石传热必须克服油管壁、油管隔热层、油套环空、 套管壁、水泥环等产生的热阻。这些热阻相互串联,除油套环空外,其它部分 均为导热传热,其传热系数差别很大,使井眼径向温度呈非线性分布,如图2 一l 所示。为计算方便,可定义井眼总传热系数,它是以上各串联热阻的总热阻, 由传热理论可以导出井筒总传热系数u ,。的表达式为”。 9 西华大学硕士学位论文 一1 ;! + 生堕必+ 毒蔓一+ 争垒生虫如! + 警垒! ! ! 二塑尘! u nh ,k 。r , o + h ,) 角 七。角k 。 式中: h t 一油管内流体热对流系数,w m 2 。c : h c 一环空流体热对流系数,w m 2 。c : 女,一油管导热系数,w m 。c ; k 。一套管导热系数,w m 。c ; k c e m 一水泥环导热系数,w m 。c : h 、,f o 一油管内、外径,m : f 、,c 0 一套管内、外径,i 1 1 ; f e e m 一水泥环半径,m ; n 一套管及水泥环的层数,无因次: 将上述基本方程进一步推导,从而表示为压力、温度、流速和密度的梯度 方程组: 和一r l z ,朋g p 2 m t , 。) - g s i n 8 + 掣硼舳 出 ( 等cm 翌m ) i ,j 生:一旦一d p ( 2 1 1 ) d z pd z 塑:昭s i 。口一剑+ v 2 刨 d z 。2 d2 d i d t = 吾警+ 删n 口一z 口口一瓦1 卢, 1 0 西华大学硕士学位论文 2 3 井筒压力、温度、流速和密度方程求解阻 根据天然气在z 。处的压力和温度,由状态方程可求出相应的气体密度p 。及 流速v 。,并作为此方程组的边界条件式。 p ( z 。) = p 。 r ( z o ) = r o 雕0 ) _ 惫 。1 2 v ( z o ) = v o 式中:m 一天然气的分子量, 船f l a n o l 对于这类微分方程组的初值问题可应用计算精度较高的四阶龙格一库塔 法进行数值求解。将p ,t ,v ,p 记为y 。( i = l 、2 、3 、4 ) ,方程组总可以化成相 应的梯度方程的形式 孥:e ( z ,y 1 ,y 2 ,y 3 ,y 4 ) ( i = 1 、2 、3 、4 )( 2 1 3 ) 起点位置2 。的函数值y 。( z 。) 记为y o ,取步长为h ,节点z ,= + i l 处的解 可用四阶龙格一库塔法表示为 y ;y ? + 譬( n f + 2 b f + 2 c f + d f ) ( i = l ,2 ,3 ,4 )( 2 1 4 ) 式中 口。:互( z 。,y l 。,y o ,y o ,y 4 。) ( 2 1 5 ) 。2c ( z 。+ 笔,y ? + 尝n ,y :0 + 鲁。:,y ;+ 鲁n ,:+ 兰a 。) ( 2 - 1 6 ) c 。2e ( z 。+ 笔,y ? + 兰。- ,y :0 + 鲁a z ,y ,0 + 鲁。,y 0 + 笔6 ) ( 2 - 1 7 ) d ,:e g 。+ ,y ? + h c 。,y :+ h c 2 ,y ;+ h c 3 ,y :+ h c 4 ) ( 2 1 8 ) 西华大学硕士学位论文 若未达到预计深度,再将节点的计算值作为下步计算的起点值,重复上述 步骤,如此连续向前推算直到预计深度。上述计算过程同时输出沿井深各节点 流动气体的压力、温度、流速和密度。 西华大学硕士学位论文 2 4 计算程序编制 图23 气井压力温度计算程序图 f i g 2 - 3p r o g r a m m i n go fp r e s s u r ea n dt e m p e r a t u r ec a l c u l a t i o n 1 3 西华大学硕士学位论文 2 5 计算程序软件 为了实现操作过程的可视化,本文采用了混合编程的方法,即用v b 来设计 界面并将主程序放在v b 中,通过调用f o r t r a n 编写的子程序来实现数据的输入 和数据输出的可视化。v b 和f o r t r a n 进行混合编程的关键是要将各功能模块源 代码在各自对应的开发平台上编译链接成动态链接库,并对程序代码进行封装, 然后在主模块中通过约定的接口动态调用这些功能模块,这种方法执行效率高、 软件的可维护性、可移植性和可复用性好“。 由于我们在开发气井在不同条件下压力、温度、流速及密度计算软件的过 程中,为了满足气井的实际情况,故将气井参数设为变量,采用具有友好的界 面设计、强大的图形处理、面向对象和灵活的底层控制等功能的v b 开发平台进 行软件系统的集成,而大量复杂精确的数值计算处理模块在适于科学和工程计 算的f o r t r a n 开发平台上编制,这样就可扩大计算软件的使用范围。因此本文 利用动态链接库( d l l ) 技术实现v i s u a lb a s i c 应用程序对f o r t r a nd l l 的调 用。 2 5 1f o r t r a n 中动态链接库的建立“ 在f o r t r a n 程序中,要对每一个被v b 调用的子程序或函数建立动态链接库 ( d l l ) ,其建立过程如下: 在f p s 4 0 开发环境下新建一个工程,其类型选为“d y n a m i c l i n k l i b r a r y ”, 并命名工程。编写源程序,命名插入到工程或将一个只含有子程序或函数的 f o r t r a n 程序加入到e r o j e c t 中,编译通过即可生成( d l l ) 文件。 2 5 2v b 对f o r t r a n 动态链接库的调用“” v b 在调用f o r t r a n 动态链接库时要考虑n - 者之间的调用约定,为了正确 顺利地实现v b 与f o r t r a n 的混合编程,应特别注意m i c r o s o f t 属性问题,表1 给出了各个属性的含义及用法。 1 4 西华大学硕士学位论文 表1m i c r o s o f t 属性及其含义 t a b l e lt h ea t t r i b u t ea n dm e a n i n go f m i c r o s o f t 属性名称含义 备注 a l i a s 为函数或子程序指定在调用方的名 一般应为输出函数或子程序指明该 字,也可为数据对象指明其它名称属性 c 指定用c 调用约定代替默认调用约若二者均未指定,则使用不同于二者 定缺省调用约定,在程序设计时应避免 s 兀) a i 上指定用s t d a l l 调用约定代替默认调这种情况,否则容易出现问题 用约定 d u 正x p o r t调用方可调用指明该属性的函数或 子程序 d l l l m p o r t在调用其它文件的出口文件时使用 e x t e r n指定其它源文件的全局变量 r e f e r e n c e指定参数传递或函数调用的方式为 引用方式 v a ij i e 指定参数传递为传值方式 v a r y i n g 参数类型强制匹配 在混合编程中调用约定主要包括命名约定、堆栈的调用原则、参数传递方 式、参数数据类型和数组参数的传递。 1 _ 命名约定 命名约定是为了解决不同语言对于名称标识符( 如变量名,参数名,过程名, 函数名) 的不同处理,v i s u a lb a s i c 和f o r t r a n 语言大致采用了同样的命名约定, 它们把名称的每个字母都转换成大写字母,在v i s u a lb a s i c 语言中还把这些变 名带有的类型说明符( 如:,一,! 滞等) 自动去掉,然后放入到对应的目标文件中。 应注意的是f o r t r a n 语言对任何一个变名只承认前六个字符是有效的,如果变量 名采用的字符超过了六个,则必须使用a l i a s 属性关键字,其语法规则如下: ! m s $ a t t r i b u t e sa l i a s :a l i a s n a m e :a l i a s n a m e 2 堆栈的调用原则 v i s u a lb a s i c 和f o r t r a n 大致采用了同样标准的调用约定,都使用堆栈来传递 例程系数,且传递方向从左到右。也就是说在执行例程调用时,调用例程将参 数从右到左依次压入堆栈,被调用例程在接收参数时,将参数从左到右依次从 堆栈弹出。 西华大学硕士学位论文 3 参数传递方式 在混合编程中参数传递主要有:传值( c a l lb yv a l u e ) 、传址( c a l lb y r e f e r e n c e ) 、传名( c a l lb yn a m e ) 、传结果( c a l lb yr e s u l t ) 。v b 和f o r t r a n 的混 合编程中,最常用到的是传值和传址两种传递方法,前者是将参数值压入堆栈, 后者是将参数地址压入堆栈。 4 参数数据类型和数组参数的传递 在v b 对f o r t r a n 语言实现调用的过程中,如果参数的数据类型不一致,会 出现不正确的调用结果,所以在两种语言的混合编程中要注意两种语言间数据 类型的一致性。v b 和f o r t r a n 的数据定义类型不完全一一对应,因此,在v b 的d e c l a r e 声明语句中必须将f o r t r a n 程序的参数类型正确的对应到v b 中。二 者之间的参数对应关系见表2 表2f o r t r a n 和v b 主要参数传递对照表 t a b l e 2t h em a i np a r a m e t e rc o m p a r i s o no ff o r t r a na n dv b f 0 r t r a n i n t e g e r ( 2 )i n t e g e r ( 4 )r e a l ( 4 )r e a l ( 8 )c h a r a c t e r + ( + ) v b i n t e g e tl o n gs i n g l e d o u b l e s t r i n g 在工程计算的编程中,经常要借助于数组类型的有序数据进行处理,v b 在调用含有数组参数的f o r t r a n 程序时,必须注意它们在数组的声明形式、存储 顺序和下标起始值规定上的差异。f o r t r a n 中数组参数只能以引用方式进行传 递,在传递时,只需传递数组的第一个元素,即数组的首地址,这样整个数组 就被连续的传递过去,需要注意的是在v b 中数组元素的下标起始值为0 , f o r t r a n 为1 ,v b 可以使用以下语句起始值从1 开始: o p t i o nb a s e1 2 5 3 实例计算 针对气井在己知井口或井底压力、温度、密度、流速的条件下,综合考虑 井斜角、井深结构、油管柱结构、气井井筒的径向传热、不同环空传热介质及 地层的热物理性质沿井深的变化,实现对气井任一深度压力、温度、密度和流 速的数值模拟。 西华大学硕士学位论文 以下是程序示例: ( 1 ) 用f o r t r a n 编写源程序,定义一个一维数组y ( n ) ,其中n = 4 ,用 y ( 1 ) ,y ( 2 ) ,y ( 3 ) ,y ( 4 ) 分别表示天然气井筒压力、温度、流速及密度,具体程序如 下: s u b r o u t i n ew e l l p a r a m e t e r ( d 1 ,p w h ,d e e p l ,q d ,t o ,g r a d t ,r g ,r t o ,r c e m ,r c o ,y ) m s $ a t t r i b u t e sa l i a s :w e l l p a r a m e t e r :w e l l p a r a m e t e r m s $ a t t r i b u t e sd l l e x p o r t :w e l l p a r a m e t e r p a r a m e t e r ( n = 4 、 d i m e n s i o ny ) r e a ld l ,d l ,p w h 、d e e p l ,q d ,t o ,g r a d t ,r g 、r i o ,t e e m ,r c o g a m m a = 1 3 p i = 3 1 4 1 5 r = 8 3 1 5 s i t a = p i 2 g = 9 8 1 k c e m = 0 5 2 a l f a = 1 0 3 1 0 + + 6 k e = 2 0 6 k a = 0 0 3 w r i t e ( + ,+ ) z ,y ( 1 ) ,y ( 2 ) ,y o ) ,y ( 4 ) e n ds u b r o u t i n ew e l l p a r a m e t e r ( 2 ) 将编译好的f o r t r a n 源程序编译生成动态链接库文件w e l l p a r a m e t e r d l l 。 ( 3 ) 首先在v b 环境下启动一个新的工程,建立一个新的窗体,作为登录界面, 如图2 4 所示。界面上有程序选项一栏,包含有:井底到井口计算程序:井口 到井底计算程序;节流计算程序。通过该选项即可登陆到相应的计算程序界面 1 7 西华大学硕士学位论文 中如图2 5 所示,输入参数值,点击“运行”键后,就可以在运行结果一栏中 查看到所需要计算的压力、温度、流速、密度值。其中程序的输入界面上所涉 及的参数都是作为已知量出现的。 w e l l p a r a m e t e r f r m 源程序 p r i v a t es u bc o m m a n d l 一c l i c k 0 d i m d l a s s i n g l e d i m p w h a ss i n g l e d i m d e e p la ss i n g l e d i mq d a ss i n g l e d i mt o a ss i n g l e d i m g r a d ta ss i n g l e d i mr g a ss i n g l e d i mr i oa ss i n g l e 图2 - 4 登陆界面 f i g 2 4e n t e ri n t e r f a c e 西华大学硕士学位论文 d i mr c e ma ss i n g l e d i mr c oa ss i n i g l e d i my ot o4 、a ss i n g l e d l = v a l ( t x t l n p u t l t e x t ) p w h = v a l ( t x t l n p u t 2 t e x t ) d e e p l = v a l ( t x t i n p u t 3 t e x t ) q d = v a i ( t x t l n p u t 4 t e x t ) t o = v a l ( t x t l n p u t 5 t e x t ) g r a d t = v a l ( t x t l n p u t 6 t e x t ) r g = v a l ( t x t l n p u t 7 t e x t ) r t o = v a l ( t x t l n p u t 8 t e x t ) r c e m = v a l ( t x t i n p u t 9 t e x t ) r c o = v a l ( t x t l n p u t l 0 t e x t ) c a l lw e l l p a r a m e t e r ( d l ,p w h ,d e e p l ,q d ,t o ,g r a d t ,r g ,r t o ,r c e m ,r c o ,y ( 1 ) ) t x t o u t p u t = 计算结果 e n ds u b p r i v a t es u b c o m m a n d 2 _ c l i c k 0 e n d e n ds u b ( 4 ) 在该工程下添加一个模块,编写源代码,确使w e l l p a r a m e t e r d l l 保存在相应 的目录下。 d e c l a r es u bw e l l p a r a m e t e rl i b ”d :w e l l p a r a m e t e r d e b u g w e l l p a r a m e t e r d l l ”( d l a ss i n g l e ,y a s s i n g l e ) ( 5 ) 生成w e l l p a r a m e t e r e x e 文件 在w i n d o w s 环境下运行w e l l p a r a m e t e r e x e ,界面如图2 5 所示输入d l 、p w h 、 d e e p l 、q d 、t o 、g r a d t 、r g 、r t o 、r c e m 、r c o 的值,单击“运行”按钮,得到天然 气井压力、温度、流速及密度在不同深度的值;单击“退出”按钮,即可退出 程序。 西华大学硕士学位论文 图2 - 5 计算程序界面 f i g 2 5c a l c u l a t i n gp r o g r a m m e ri n t e r f a c e 西华大学硕士学位论文 3 1 实例计算 3 1 1 邛西3 井 一、邛西3 井基本参数 第三章计算结果及分析 表3 3 井筒静压、静温梯度测试数据 t a b l e3 3t e s t i n gd a t ao f w e l lb o r es t a t i cp r e s s u r ea n ds t a t i ct e m p e r a t u r eg r a d i e n t 深度压力静压梯度温度静温梯度 ( m )( m p a ) ( m p a 1 0 0 m ) ( ) ( 1 0 0 m ) 1 0 3 1 3 7 6 04 5 3 1 1 0 3 0 3 3 7 5 7 70 2 3 3 56 4 3 81 8 7 1 5 3 0 3 4 8 8 0 00 2 2 4 57 3 6 4 1 8 5 1 2 2 0 3 03 5 9 7 5 00 2 1 9 08 2 4 91 7 6 9 4 2 5 3 03 7 0 5 2 30 2 1 5 4 9 0 6 3 1 6 2 8 0 3 3 3 03 8 7 4 4 50 2 1 1 59 8 7 71 0 1 8 0 3 4 3 03 8 9 5 5 20 2 1 0 79 9 _ 3 50 5 7 4 7 二、邛西3 井自井底向井口计算结果及分析。 图3 5 和图3 6 为邛西3 井在产量为1 0 e + 0 4 m 3 d 时压力、温度沿井深分 布的计算值与实测值的对比图。从图中可以看到,当采用从井底向井口方向计 算时实测值与计算值趋势一致,吻合较好。最大相对误差出现在井口处,在该 点上计算压力值为3 3 一9 3 2 m p a ,而实测压力值为3 3 6 0 4 m p a ,相对误差为 0 9 7 6 。温度最大相对误差出现在1 0 3 0 m 处,该处计算温度值为5 4 5 5 。c , 而实测值为4 8 5 2 。c ,相对误差为1 2 4 3 。 因邛西3 井的数据不是很完整,所以计算相对误差比较大。 西华大学硕士学位论文 压力( a ) 图3 - 5 邛西3 井6 月1 6 日产量1 0 e 4m 3 d 实测与计算压力对比 f i g _ 3 - 5t h ec o m p a r i s o no fr e a la n dc o m p u t i n gp r e s s u r e f l o w i n gi n1 0 e 4 矗| d 温度f c ) 图3 - 6 邛西3 井6 月1 6 日产量1 0 e 4m 3 d 实测与计算温度对比 f i g 3 - 6t h ec o m p a r i s o no fr e a la n dc o m p u t i n gt e m p e r a t u r e f l o w i n gi n1 0 e 4 矗f d 图3 7 为邛西3 井密度沿井深的分布图。同理,从图3 7 中可以看出密度 沿井深逐渐增大,在1 5 3 0 m 处又逐渐变小,密度变化受温度、压力以及偏差系 数的影响。 密度( k m 3 ) 名

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论