欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOC文档下载  

    瑞利(Rayleigh)模型的应用石油工程设计毕业论文.doc

    • 资源ID:1253804       资源大小:4.08MB        全文页数:32页
    • 资源格式: DOC        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    瑞利(Rayleigh)模型的应用石油工程设计毕业论文.doc

    课 程 设 计课 程 石油工程课程设计 题 目 瑞利(Rayleigh)模型的应用 院 系 石油工程学院 专业班级 学生姓名 学生学号 指导教师 年月日目 录1 前言························································31.1设计的目的意义·········································31.2设计的主要内容·············································32 基础数据····················································43 基础理论····················································53.1 瑞利(Rayleigh)模型的应用模型的建立·······················53.2模型的求解方法·············································74 设计结果····················································8认识与结论····················································12参考文献······················································13附录··························································141.前 言1.1 设计的目的意义本课题的目的是让学生通过自选一组数据,利用所学专业知识在指导教师的指导下独立完成对某一油田或区块开发指标的预测。本课题要求学生对瑞利(Rayleigh)模型的关系式进行推导,其结果包括,对油气田的年产量、累积产量、可采储量、最高年产量、最高年产量发生的时间的预测方法。从而将理论知识和实际问题相结合,通过该专题设计的训练,加强学生理论知识运用能力,计算机技术应用能力及解决实际问题的工程应用能力。1.2 设计的主要内容根据已有的基础数据,利用所学的专业知识,在指导教师指导下独立完成并提交一个油田或一个区块油田开发指标预测结果,设计主要内容如下:(1) 推导瑞利预测模型;(2) 根据油气田实际生产数据,进行线性回归,求得直线的截距和斜率;(3) 根据相关公式,确定瑞利模型常数a和c;(4) 计算油田年产油量;(5) 计算油田累积产油量;(6) 计算可采储量;(7) 计算最高年产量发生的时间;(8) 计算最高年产量;(9) 计算油田达到最高产量时的累积产量;(10) 绘制油田实际年产量与预测产量对比曲线;(11) 绘制油田实际累积产量与预测累积产量对比曲线。2.基础数据中国华北地区的任丘雾迷山古潜山油田于1975年7月被发现,1976年投产。其油藏类型为块状底水潜山,孔、洞、缝发育,储层位于震旦系,以白云岩为主。油藏埋藏深度为25883510m,含油面积为56.9km2,油层有效厚度为272.0m.,有效孔隙度为6%,空气渗透率为106×10-3m2。原始地层压力为32.6MPa,原始饱和压力为1.3MPa,原始气油比为4.4m3/t,地面原油密度为0.889g/cm3,地层油粘度为8.20mPa·s。开始上报的原油地质储量为53038×104t,可采储量为11760×104t。油藏采用边缘底部的注水方式。1990年底综合含水率为82%。该油田的开发数据列于下表。 表2-1 开发数据表年份开发时间(a)年产量(104t/a)累积产量(104t/a)1975112.2012.2019762606.10618.30197731127.301745.60197841191.502937.10197951240.204177.30198061235.205412.5019817977.956390.4519828901.827292.2719839807.628099.89198410739.388839.27198511675.399514.66198612581.9410096.60198713352.4510449.05198814209.9210658.97198915153.6210812.59199016120.2410932.833.基础理论3.1瑞利(Rayleigh)模型的应用模型的建立在数理统计中瑞利分布的分布密度表示为: (3-1)式中 f(x)瑞利分布的分布密度函数;x分布变量,其值大于等于0;控制分布峰值的参数。由式(3-l)表示的瑞利分布,在x从0到区间内的累积分布(或分布函数)等于1,因此可以得到关系式如下 (3-2)对于油气田来说,开发时间从0到之间的累计产量可视为油气田的可采储量,可表示为 (3-3) 式中:NR为油气田的可采储量,104t(油),108m3(气);NP(t)为累积产量,104t(油),108m3(气);Q年产量,104t/a(油),108m3/a(气);t为开发时间,a。将式(3-3)等号两端同除以NR得 (3-4)由式(3-2)与式(3-4)对比可以看出,因此,若将式(3-1)转换为预测油气田产量分布的模型时,需将该式的右端乘以可采储量。该可采储量可视为,将数理统计中的理论分布转为预测模型的转换常数。由此,式(3-1)可写为 (3-5)设,则;又设和得 (3-6)再作如下设定 (3-7)则得到预测油气田产量的模型为 (3-8)油气田的累积产量表示为 (3-9)将式(3-8)代入式(3-9)进行积分得 (3-10)再讲式(3-7)代入式(3-10),得到预测油气田累积产量的模型为 (3-11)对式(3-8)两边取导数,整理得 (3-12)当时,必然有 (3-13)由式(3-13)可以得到最高年产量发生的时间为 (3-14)式中:为最高年产量发生的时间,a将式(3-14)代入式(3-8)的得到预测油气田最高年产量的公式为 (3-15)式中:为最高年产量,104t/a(油),108m3/a(气)。再将式(3-14)代入式(3-11)得到预测最高年产量对应的累积产量为 (3-16)式中:为最高年产量对应的累积产量,104t/a(油),108m3/a(气)。将式(3-7)代入式(3-16)得 (3-17)已知,因此式(3-17)又可写为 (3-18)由式(3-18)可以看出,对于瑞利模型来说,当可采储量的40%时,油田进入递减期。 3.2模型的求解方法由上述推导的结果可以看出,要想利用瑞利模型进行各项预测,就必须首先确定模型常数a和c的数值。为此,将式(3-18)等号两端先除以t再取常用对数,得 (3-19)若设: (3-20) (3-21)则得: (3-22)由式(3-22)看出,Q/t与之间具有半对数直线关系。当根据油气田的实际生产数据,由式(3-22)进行线性回归之后,可以求得直线的截距和斜率的数值,并由式(3-22)和式(21)确定模型常数a和c的数值。4.设计结果本程序主要以下拉菜单控制各个过程为主体,实现各个不同的功能,简洁明了的展示出各个过程。当启动程序时,初始界面如图(3-1)所示: 图3-1初始运行界面单击“导入数据”,程序将从存放数据的默认位置导入初始数据。单击“导出数据”,原始数据将被保存在指定的默认位置。单击“保存数据”,预测结果将被保存在指定的默认位置。如果想修改数据可直接单击想要修改的数据所对应的单元格进行修改,累计产量将在再次单击参数计算时进行改正。当单击“参数计算”时,程序将算出不同时间所对应的和lg(q/t),并根据最小二乘法(详情见附录程序),计算出回归直线的斜率=-0.0067;直线的截距=2.5495,将和的数值分别代入式(3-20)和式(3-21)求得a为354.4051,c为64.8929。单击”拟合公式”,回归直线的公式便可显示在表格的下方,运行界面如图(3-2)所示:图3-2 参数计算及公式拟合运行界面单击“瑞丽曲线”按钮,可将(3-22)式的直线关系绘于图3-3,得到了一条拟合很好的直线,如图(3-3)所示: 图3-3 瑞利曲线运行界面将a和c的数值代入式(3-7)得到该油田的可采储量为11499.1931×104t;将c的值代入式(3-14)得到最高年产量发生的时间为5.6953a;将a和c的数值代入式(3-15)得到该油田的最高年产量为1224.4885×104t;将该油田可采储量的数值代入式(3-18)得到该当油田年产量达到最高年产量时的累积产量为4524.5606×104。由式(3-23)和式(3-24)预测该油田的产量和累积产量,单击 “预测结果”,可将预测出的各个结果显示在图(3-4)的界面上。3-4 预测结果运行界面单击“实际与预测年产量与时间变化曲线”按钮,可在同一坐标系中绘制实际产量与预测产量及其对应时间t之间的关系曲线,绘于图(3-5)。图3-5 实际与预测产量随时间变化曲线运行界面单击“实际与预测累计产量与时间变化曲线”按钮,可在同一坐标系中绘制实际累计产量与预测累计产量及其对应时间t之间的关系曲线绘于图3-6。图3-6实际与预测累计产量随时间变化曲线运行界面认识与结论经过了三周从没接触过的课程设计,让我获得了很多收获,和同学们每天准时相约机房,一起探讨编程的团结协作,面对难题,绞尽脑汁,使难题获得解决时内心的满足,都让我感觉非常的充实。大家一起经历的三周,有探讨时的说笑,有钻研时的认真,也有请教他人时的谦逊,当然还有老师指导时的孜孜不倦。这次课程设计,我所得到的收获大致如下:(1)通过课程设计所设计的瑞利模型程序,让我对vb编程有了更深入的了解,运用企业版vb,比上课时的基 础版实现的功能更多样,也更加强大,经过查阅资料,学会了不少新控件的使用方法,和一些新的编程语言,相信在以后的工作中还会更好的得以运用。(2)课程设计虽然结束了,但是我所设计的程序并不完善,还有很多功能有待实现,这就要求自己还要不断的学习编程知识,将程序加以完善,以便在以后的工作中,加以运用。(3)这次课程设计让我们养成了遇到问题运用编程加以解决的习惯,这在以后的工作中会变得非常实用,通过编程,让以后参加工作的我们工作起来更加高效。(4)这次课程设计,感谢张老师对我们编程的指导,已经王老师在中期对我的程序的评判,让我在后面有了最终的方向,对我的课设的完成起了关键作用,最后感谢两位老师在假期的陪伴。参考文献1陈涛平,石油工程,石油工业出版社,20112吴雅娟,王莉利,Visual Basic 程序设计案例教程,中国石化出版社,20113蒋加伏、张林峰.Visual Basic程序设计教程M.北京邮电大学出版社,2011。4陈元千. 瑞利模型的完善推导与应用J. 油气地质与采收率,2004,11(4):39-41.5陈元千 油藏工程实践M.石油工业出版社,2003附 录一、程 序Dim t2(16) As Single, lg(16) As Single, j As Single, t(16) As Single, q(16) As Single, ql(16) As Single, X As Single, Z As Single, xx As Single, zx As Single Const ASC_ENTER = 13 'Enter Dim gRow As Integer Dim gCol As IntegerDim nf(16) As Single, kfsj(16) As Single, cl(16) As Single, ljcl(16) As Single '年份,开发时间,产量,累计产量Private Sub Form_Resize()Me.PaintPicture Me.Picture, 0, 0, Me.ScaleWidth, Me.ScaleHeight '使图片填充End Sub'初始加载Private Sub Form_Load()Me.AutoRedraw = TrueGrid1.ColWidth(0) = 800 '确定表格宽度Grid1.ColWidth(1) = 1100Grid1.ColWidth(2) = 1400Grid1.ColWidth(3) = 1600Grid1.ColWidth(4) = 1500Grid1.ColWidth(5) = 1500Grid1.TextMatrix(0, 4) = "t2"Grid1.TextMatrix(0, 5) = "lg(q/t)"Grid3.TextMatrix(0, 0) = "年份"Grid3.TextMatrix(0, 1) = "开发时间(a)"Grid3.TextMatrix(0, 2) = "年产量(104 t/a)"Grid3.TextMatrix(0, 3) = "预测年产油量(104 t/a)"Grid3.TextMatrix(0, 4) = "累积产量(104 t/a)"Grid3.TextMatrix(0, 5) = "预测累积产油量(104 t/a)"Grid3.ColWidth(0) = 600 '表格大小Grid3.ColWidth(1) = 1200Grid3.ColWidth(2) = 1500Grid3.ColWidth(3) = 2200Grid3.ColWidth(4) = 1800Grid3.ColWidth(5) = 2500Text1.Visible = False '设置可视性Text2.Visible = FalseText3.Visible = FalseText4.Visible = FalseText5.Visible = FalseText6.Visible = FalseText7.Visible = FalseText8.Visible = FalseText9.Visible = FalseText10.Visible = FalseGrid1.Visible = FalseGrid3.Visible = False Label1.Visible = FalseLabel1.Visible = FalseLabel2.Visible = FalseLabel3.Visible = FalseLabel4.Visible = FalseLabel5.Visible = FalseLabel6.Visible = FalseLabel7.Visible = FalseLabel8.Visible = FalseLabel9.Visible = FalseMSChart1.Visible = FalseMSChart2.Visible = FalseMSChart3.Visible = FalseGrid1.Left = (Form1.Width - Grid1.Width) / 2 - 2000 '各图标位置加载Grid1.Top = (Form1.Height - Grid1.Height) / 2Label1.Left = (Form1.Width - Grid1.Width) / 2 + 6300Text2.Left = (Form1.Width - Grid1.Width) / 2 + 8000Label2.Left = (Form1.Width - Grid1.Width) / 2 + 6300Label3.Left = (Form1.Width - Grid1.Width) / 2 + 2000Label4.Left = (Form1.Width - Grid1.Width) / 2 + 6300Label5.Left = (Form1.Width - Grid1.Width) / 2 + 6300Text3.Left = (Form1.Width - Grid1.Width) / 2 + 8000Text4.Left = (Form1.Width - Grid1.Width) / 2 + 3700Text5.Left = (Form1.Width - Grid1.Width) / 2 + 8720Text6.Left = (Form1.Width - Grid1.Width) / 2 + 9300Label1.Top = (Form1.Height - Grid1.Height) / 2Label2.Top = (Form1.Height - Grid1.Height) / 2 + 1000Label3.Top = (Form1.Height - Grid1.Height) / 2 + 5000Label4.Top = (Form1.Height - Grid1.Height) / 2 + 2000Label5.Top = (Form1.Height - Grid1.Height) / 2 + 3000Text2.Top = (Form1.Height - Grid1.Height) / 2Text3.Top = (Form1.Height - Grid1.Height) / 2 + 1000Text4.Top = (Form1.Height - Grid1.Height) / 2 + 5000Text5.Top = (Form1.Height - Grid1.Height) / 2 + 2000Text6.Top = (Form1.Height - Grid1.Height) / 2 + 3000Grid3.Left = (Form1.Width - Grid1.Width) / 2 - 1500Grid3.Top = (Form1.Height - Grid1.Height) / 2 - 1500Label6.Top = 5500Label9.Top = 5500Text7.Top = 5500Text10.Top = 5500Label7.Top = 6200Label8.Top = 6200Text8.Top = 6200Text9.Top = 6200Label6.Left = 600Label9.Left = 7080Label7.Left = 600Label8.Left = 7080Text7.Left = 3480Text10.Left = 9960Text8.Left = 3480Text9.Left = 9960MSChart1.Left = (Form1.Width - MSChart1.Width) / 2MSChart1.Top = (Form1.Width - MSChart1.Height) / 2 - 3000MSChart2.Left = (Form1.Width - MSChart2.Width) / 2MSChart2.Top = (Form1.Width - MSChart2.Height) / 2 - 3000MSChart3.Left = (Form1.Width - MSChart3.Width) / 2MSChart3.Top = (Form1.Width - MSChart3.Height) / 2 - 3000save.Enabled = False '按键是否可用csjs.Enabled = Falsenihegongshi.Enabled = Falseyucejieguo.Enabled = Falserayleigh.Enabled = Falsenianchanliang.Enabled = Falseleijichanliang.Enabled = Falsedaochushuju.Enabled = FalseEnd SubPrivate Sub daorushuju_Click()Label10.Visible = Falsedaochushuju.Enabled = Truecsjs.Enabled = TrueGrid1.Visible = TrueDim i As Single, k As SingleOpen "C:Documents and Settingsxx桌面基础数据.txt" For Input As #1i = 0k = Grid1.RowsWhile Not EOF(1)Input #1, nf(i), kfsj(i), cl(i), ljcl(i)Grid1.TextMatrix(i, 0) = nf(i)Grid1.TextMatrix(i, 1) = kfsj(i)Grid1.TextMatrix(i, 2) = cl(i)Grid1.TextMatrix(i, 3) = ljcl(i)i = i + 1 If i > Grid1.Rows - 1 Then Grid1.Rows = i + 1WendIf k <> Grid1.Rows Then Grid1.Rows = Grid1.Rows - 1Grid1.TextMatrix(0, 0) = "年份"Grid1.TextMatrix(0, 1) = "开发时间(a)"Grid1.TextMatrix(0, 2) = "年产量104t/a"Grid1.TextMatrix(0, 3) = "累计产量104t/a"Close #1End SubPrivate Sub daochushuju_Click()If MsgBox("是否导出", vbYesNo) = vbYes ThenOpen "C:Documents and Settingsxx桌面导出数据.txt" For Output As #1 For i = 1 To Grid1.Rows - 1 Print #1, Grid1.TextMatrix(i, 0), Grid1.TextMatrix(i, 1), Grid1.TextMatrix(i, 2), Grid1.TextMatrix(i, 3), Grid1.TextMatrix(i, 4) '将数据保存到文本文档中 Next iClose #1MsgBox ("导出成功")End IfEnd SubPrivate Sub save_Click()If MsgBox("是否保存", vbYesNo) = vbYes Then Open "C:Documents and Settingsxx桌面数据保存.txt" For Output As #1For i = 1 To Grid3.Rows - 1Print #1, Grid3.TextMatrix(i, 0), Grid3.TextMatrix(i, 1), Grid3.TextMatrix(i, 2), Grid3.TextMatrix(i, 3), Grid3.TextMatrix(i, 4), Grid3.TextMatrix(i, 5)Next iClose #1MsgBox ("保存成功")End IfEnd SubPrivate Sub csjs_Click()nihegongshi.Enabled = Trueyucejieguo.Enabled = Truerayleigh.Enabled = TrueLabel1.Visible = TrueLabel2.Visible = TrueLabel5.Visible = TrueLabel4.Visible = TrueText2.Visible = TrueText3.Visible = TrueText5.Visible = TrueText6.Visible = TrueMSChart1.Visible = FalseMSChart2.Visible = FalseMSChart3.Visible = FalseDim n!n = 0For j = 1 To Grid1.Rows - 1 n = Grid1.TextMatrix(j, 2) + n Grid1.TextMatrix(j, 3) = nNext jFor j = 1 To Grid1.Rows - 1 '最小二乘法 t(j) = Grid1.TextMatrix(j, 1) q(j) = Grid1.TextMatrix(j, 2) t2(j) = (t(j) 2 Grid1.TextMatrix(j, 4) = t2(j) lg(j) = Log(q(j) / t(j) / Log(10) Grid1.TextMatrix(j, 5) = lg(j) If j > Grid1.Rows - 1 Then Grid1.Rows = j + 1Next jFor j = 2 To Grid1.Rows - 1 X = X + t(j) 2 Z = Z + Log(q(j) / t(j) / Log(10) zx = zx + Log(q(j) / t(j) / Log(10) * t(j) 2 xx = xx + (t(j) 2) 2Next jText2 = Int(Grid1.Rows - 2) * zx - Z * X) / (Grid1.Rows - 2) * xx - X 2) * 10000) / 10000Text3 = Int(Z - Text2 * X) / (Grid1.Rows - 2) * 10000) / 10000Text5.Text = Format(10 (Text3.Text), "0.0000")Text6.Text = Format(1 / (-Form1.Text2.Text) / 2.3, "0.0000")End SubPrivate Sub nihegongshi_Click()Text4.Visible = TrueLabel3.Visible = TrueText4.Text = "lg(q/t)=" & Text2 & "t2" & "+" & Text3End SubPrivate Sub yucejieguo_Click()save.Enabled = Truenianchanliang.Enabled = Trueleijichanliang.Enabled = TrueGrid1.Visible = FalseGrid3.Visible = TrueLabel6.Visible = TrueLabel7.Visible = TrueLabel8.Visible = TrueLabel9.Visible = TrueText7.Visible = TrueText8.Visible = TrueText9.Visible = TrueText10.Visible = TrueLabel1.Visible = FalseLabel2.Visible = FalseLabel3.Visible = FalseLabel5.Visible = FalseLabel4.Visible = FalseText2.Visible = FalseText3.Visible = FalseText4.Visible = FalseText5.Visible = FalseText6.Visible = FalseMSChart1.Visible = FalseMSChart2.Visible = FalseMSChart3.Visible = FalseDim g!, a!, c!Dim j(1 To 17) As StringDim h(1 To 17) As StringDim l(1 To 17) As StringFor i = 1 To Grid3.Rows - 1 Grid3.TextMatrix(i, 0) = Grid1.TextMatrix(i, 0) Grid3.TextMatrix(i, 1) = Grid1.TextMatrix(i, 1) Grid3.TextMatrix(i, 2) = Grid1.TextMatrix(i, 2) Grid3.TextMatrix(i, 3) = Grid1.TextMatrix(i, 3) Grid3.TextMatrix(i, 4) = Grid1.TextMatrix(i, 4) Grid3.TextMatrix(i, 5) = Grid1.TextMatrix(i, 5)Next ig = 0For i = 1 To Grid3.Rows - 1l(i) = Val(Text2.Text) * t(i) 2 + Val(Text3.Text)h(i) = t(i) * 10 l(i)g = g + h(i)j(i) = gGrid3.TextMatrix(i, 0) = Grid1.TextMatrix(i, 0) Grid3.TextMatrix(i, 2) = Grid1.TextMatrix(i, 2) Grid3.TextMatrix(i, 1) = Grid1.TextMatrix(i, 1) Grid3.TextMatrix(i, 3) = Int(h(i) * 10000) / 10000 Grid3.TextMatrix(i, 4) = Grid1.TextMatrix(i, 3)Grid3.TextMatrix(i, 5) = Int(j(i) * 10000) / 10000 Next i a = 10 (Text3.Text) c = 1 / Val(-Text2.Text) / 2.3 Text7.Text = Int(0.5 * a * c * 10000) / 10000 Text8.Text = Int(0.4289 * a * c 0.5 * 10000) / 10000 Text9.Text = Int(0.707 * (c 0.5 * 10000) / 10000 Text10.Text = Int(0.5 * a * c * (1 - 10 (-0.5) / 0.52137) * 10000) / 10000End SubPrivate Sub rayleigh_Click() Label1.Visible = Fal

    注意事项

    本文(瑞利(Rayleigh)模型的应用石油工程设计毕业论文.doc)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开