东北石油大学石油工程设计.docx
《东北石油大学石油工程设计.docx》由会员分享,可在线阅读,更多相关《东北石油大学石油工程设计.docx(42页珍藏版)》请在冰点文库上搜索。
东北石油大学石油工程设计
东北石油大学
课程设计
课程石油工程课程设计
题目瑞利(Rayleigh)模型的应用
院系石油工程学院
专业班级油工12-5班
学生姓名
学生学号120201140111
指导教师王立军
2015年7月24日
东北石油大学课程设计任务书
课程石油工程课程设计
题目瑞利(Rayleigh)模型的应用
专业石油工程姓名XXX学号120201140111
主要内容、基本要求、主要参考资料等
主要内容:
(1)推导瑞利预测模型;
(2)根据油气田实际生产数据,进行线性回归,求得直线的截距和斜率;
(3)根据相关公式,确定瑞利模型常数a和c;
(4)计算油田年产油量;
(5)计算油田累积产油量;
(6)计算可采储量;
(7)计算最高年产量发生的时间;
(8)计算最高年产量;
(9)计算油田达到最高产量时的累积产量;
(10)绘制油田实际年产量与预测产量对比曲线;
(11)绘制油田实际累积产量与预测累积产量对比曲线。
基本要求:
1)基础数据:
2)某油田或区块的开发数据。
2)设计要求
该专题设计最终要求是,学生通过自选上述基础数据,利用所学知识完成规定设计内容,编制相应软件,并提交规范设计报告。
主要参考资料
陈元千油藏工程实践[M].石油工业出版社.
完成期限2015年7月6日~2015年7月24日
指导教师王立军
专业负责人王立军
2015年7月24日
1前言························································3
1.1设计的目的意义·········································3
1.2设计的主要内容·············································3
2基础数据····················································4
3基础理论····················································5
3.1瑞利(Rayleigh)模型的应用模型的建立·······················5
3.2模型的求解方法·············································7
4设计结果····················································8
认识与结论····················································12
参考文献······················································13
附录··························································14
1.前言
1.1设计的目的意义
本课题的目的是让学生通过自选一组数据,利用所学专业知识在指导教师的指导下独立完成对某一油田或区块开发指标的预测。
本课题要求学生对瑞利(Rayleigh)模型的关系式进行推导,其结果包括,对油气田的年产量、累积产量、可采储量、最高年产量、最高年产量发生的时间的预测方法。
从而将理论知识和实际问题相结合,通过该专题设计的训练,加强学生理论知识运用能力,计算机技术应用能力及解决实际问题的工程应用能力。
1.2设计的主要内容
根据已有的基础数据,利用所学的专业知识,在指导教师指导下独立完成并提交一个油田或一个区块油田开发指标预测结果,设计主要内容如下:
(1)推导瑞利预测模型;
(2)根据油气田实际生产数据,进行线性回归,求得直线的截距和斜率;
(3)根据相关公式,确定瑞利模型常数a和c;
(4)计算油田年产油量;
(5)计算油田累积产油量;
(6)计算可采储量;
(7)计算最高年产量发生的时间;
(8)计算最高年产量;
(9)计算油田达到最高产量时的累积产量;
(10)绘制油田实际年产量与预测产量对比曲线;
(11)绘制油田实际累积产量与预测累积产量对比曲线。
2.基础数据
中国华北地区的任丘雾迷山古潜山油田于1975年7月被发现,1976年投产。
其油藏类型为块状底水潜山,孔、洞、缝发育,储层位于震旦系,以白云岩为主。
油藏埋藏深度为2588~3510m,含油面积为56.9km2,油层有效厚度为272.0m.,有效孔隙度为6%,空气渗透率为106×10-3μm2。
原始地层压力为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)
1975
1
12.20
12.20
1976
2
606.10
618.30
1977
3
1127.30
1745.60
1978
4
1191.50
2937.10
1979
5
1240.20
4177.30
1980
6
1235.20
5412.50
1981
7
977.95
6390.45
1982
8
901.82
7292.27
1983
9
807.62
8099.89
1984
10
739.38
8839.27
1985
11
675.39
9514.66
1986
12
581.94
10096.60
1987
13
352.45
10449.05
1988
14
209.92
10658.97
1989
15
153.62
10812.59
1990
16
120.24
10932.83
3.基础理论
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]陈涛平,石油工程,石油工业出版社,2011
[2]吴雅娟,王莉利,VisualBasic程序设计案例教程,中国石化出版社,2011
[3]蒋加伏、张林峰.Visual Basic程序设计教程[M].北京邮电大学出版社,2011。
[4]陈元千.瑞利模型的完善推导与应用[J].油气地质与采收率,2004,11(4):
39-41.
[5]陈元千油藏工程实践[M].石油工业出版社,2003
附录
一、程序
Dimt2(16)AsSingle,lg(16)AsSingle,jAsSingle,t(16)AsSingle,q(16)AsSingle,ql(16)AsSingle,XAsSingle,ZAsSingle,xxAsSingle,zxAsSingle
ConstASC_ENTER=13'Enter
DimgRowAsInteger
DimgColAsInteger
Dimnf(16)AsSingle,kfsj(16)AsSingle,cl(16)AsSingle,ljcl(16)AsSingle'年份,开发时间,产量,累计产量
PrivateSubForm_Resize()
Me.PaintPictureMe.Picture,0,0,Me.ScaleWidth,Me.ScaleHeight'使图片填充
EndSub
'初始加载
PrivateSubForm_Load()
Me.AutoRedraw=True
Grid1.ColWidth(0)=800'确定表格宽度
Grid1.ColWidth
(1)=1100
Grid1.ColWidth
(2)=1400
Grid1.ColWidth(3)=1600
Grid1.ColWidth(4)=1500
Grid1.ColWidth(5)=1500
Grid1.TextMatrix(0,4)="t^2"
Grid1.TextMatrix(0,5)="lg(q/t)"
Grid3.TextMatrix(0,0)="年份"
Grid3.TextMatrix(0,1)="开发时间(a)"
Grid3.TextMatrix(0,2)="年产量(10^4t/a)"
Grid3.TextMatrix(0,3)="预测年产油量(10^4t/a)"
Grid3.TextMatrix(0,4)="累积产量(10^4t/a)"
Grid3.TextMatrix(0,5)="预测累积产油量(10^4t/a)"
Grid3.ColWidth(0)=600'表格大小
Grid3.ColWidth
(1)=1200
Grid3.ColWidth
(2)=1500
Grid3.ColWidth(3)=2200
Grid3.ColWidth(4)=1800
Grid3.ColWidth(5)=2500
Text1.Visible=False'设置可视性
Text2.Visible=False
Text3.Visible=False
Text4.Visible=False
Text5.Visible=False
Text6.Visible=False
Text7.Visible=False
Text8.Visible=False
Text9.Visible=False
Text10.Visible=False
Grid1.Visible=False
Grid3.Visible=False
Label1.Visible=False
Label1.Visible=False
Label2.Visible=False
Label3.Visible=False
Label4.Visible=False
Label5.Visible=False
Label6.Visible=False
Label7.Visible=False
Label8.Visible=False
Label9.Visible=False
MSChart1.Visible=False
MSChart2.Visible=False
MSChart3.Visible=False
Grid1.Left=(Form1.Width-Grid1.Width)/2-2000'各图标位置加载
Grid1.Top=(Form1.Height-Grid1.Height)/2
Label1.Left=(Form1.Width-Grid1.Width)/2+6300
Text2.Left=(Form1.Width-Grid1.Width)/2+8000
Label2.Left=(Form1.Width-Grid1.Width)/2+6300
Label3.Left=(Form1.Width-Grid1.Width)/2+2000
Label4.Left=(Form1.Width-Grid1.Width)/2+6300
Label5.Left=(Form1.Width-Grid1.Width)/2+6300
Text3.Left=(Form1.Width-Grid1.Width)/2+8000
Text4.Left=(Form1.Width-Grid1.Width)/2+3700
Text5.Left=(Form1.Width-Grid1.Width)/2+8720
Text6.Left=(Form1.Width-Grid1.Width)/2+9300
Label1.Top=(Form1.Height-Grid1.Height)/2
Label2.Top=(Form1.Height-Grid1.Height)/2+1000
Label3.Top=(Form1.Height-Grid1.Height)/2+5000
Label4.Top=(Form1.Height-Grid1.Height)/2+2000
Label5.Top=(Form1.Height-Grid1.Height)/2+3000
Text2.Top=(Form1.Height-Grid1.Height)/2
Text3.Top=(Form1.Height-Grid1.Height)/2+1000
Text4.Top=(Form1.Height-Grid1.Height)/2+5000
Text5.Top=(Form1.Height-Grid1.Height)/2+2000
Text6.Top=(Form1.Height-Grid1.Height)/2+3000
Grid3.Left=(Form1.Width-Grid1.Width)/2-1500
Grid3.Top=(Form1.Height-Grid1.Height)/2-1500
Label6.Top=5500
Label9.Top=5500
Text7.Top=5500
Text10.Top=5500
Label7.Top=6200
Label8.Top=6200
Text8.Top=6200
Text9.Top=6200
Label6.Left=600
Label9.Left=7080
Label7.Left=600
Label8.Left=7080
Text7.Left=3480
Text10.Left=9960
Text8.Left=3480
Text9.Left=9960
MSChart1.Left=(Form1.Width-MSChart1.Width)/2
MSChart1.Top=(Form1.Width-MSChart1.Height)/2-3000
MSChart2.Left=(Form1.Width-MSChart2.Width)/2
MSChart2.Top=(Form1.Width-MSChart2.Height)/2-3000
MSChart3.Left=(Form1.Width-MSChart3.Width)/2
MSChart3.Top=(Form1.Width-MSChart3.Height)/2-3000
save.Enabled=False'按键是否可用
csjs.Enabled=False
nihegongshi.Enabled=False
yucejieguo.Enabled=False
rayleigh.Enabled=False
nianchanliang.Enabled=False
leijichanliang.Enabled=False
daochushuju.Enabled=False
EndSub
PrivateSubdaorushuju_Click()
Label10.Visible=False
daochushuju.Enabled=True
csjs.Enabled=True
Grid1.Visible=True
DimiAsSingle,kAsSingle
Open"C:
\DocumentsandSettings\xx\桌面\基础数据.txt"ForInputAs#1
i=0
k=Grid1.Rows
WhileNotEOF
(1)
Input#1,nf(i),kfsj(i),cl(i),ljcl(i)
Grid1.TextMatrix(i,0)=nf(i)
Grid1.TextMatrix(i,1)=kfsj(i)