东北石油大学油藏过程课程设计Word文档格式.docx
《东北石油大学油藏过程课程设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《东北石油大学油藏过程课程设计Word文档格式.docx(32页珍藏版)》请在冰点文库上搜索。
![东北石油大学油藏过程课程设计Word文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/8/3ce2263b-5d83-4889-b645-13b605ed7fdb/3ce2263b-5d83-4889-b645-13b605ed7fdb1.gif)
从而将理论知识和实际问题相结合,通过该专题设计的训练,加强学生理论知识运用能力,计算机技术应用能力及解决实际问题的工程应用能力。
1.2设计的主要内容
根据已有的基础数据,利用所学的专业知识,在指导教师指导下独立完成并提交一个油田或一个区块油田开发指标预测结果,设计主要内容如下:
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
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基础理论
瑞利(Rayleigh)模型能够很好地预测对油气田的年产量、累积产量、可采储量、最高年产量、最高年产量发生的时间,以及最高年产量对应的累计产量。
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的数值。
最小二乘法原理:
最小二乘法是提供“观测组合”的主要工具之一,它依据对某事件的大量观测而获得最佳结果或最可能表现形式。
如已知2变量为线性关系y=ax+b对其进行n(n>
2)次观测而获得n对数
据,若将这n对数据代入方程求解a,b之值则无确定解。
最小二乘法提供了一个求解方法,其基本思想就是寻找最接近这n个观测点的直线。
这条直线上各点相应的y值与测量值对应纵坐标值之偏差的平方和在所拟合中应是最小的。
在相同试验测量条件下,测得自变量的值为x1,x2,x3,xn,对应的物理量
依次为y1,y2,y3,yn值。
用这一组数据,根据最小二乘法原理去求直线的经验方程,也就是要总的偏差的平方和为最小,根据统计理论,有:
如果试验是在已知线性函数关系下进行的,那么用上述最小二乘法进行线性拟合,可得到最佳直线及其截距b和斜率a,从而得到回归方程。
如果试验是要通过x、y的测量来寻找经验公式,则还应判别由上述线性拟合所得的线性方程是否恰当。
这可由x、y的相关系数来判别:
相关系数大小表示了相关程度好坏。
的值在0和1之间,
的绝对值越接近1,说明线性越好。
4设计结果
处理表1中的数据得到
和相应的
,按照(3-22)式的直线关系绘于图4-1,得到了一条很好的直线。
经线性回归求得直线的截距α=2.5816;
直线的斜率β=0.007528;
直线的相关系数r=0.9945。
将α和β的数值分别代入式(3-20)和式(3-21)求得a为387.59,c为57.76。
图4-1该油田
与
的半对数关系
将a和c的数值代入式(3-7)得到该油田的可采储量为11020×
104t;
将c的值代入式(3-14)得到最高年产量发生的时间为5.3692a;
将a和c的数值代入式(3-15)得到该油田的最高年产量为1242.8×
将该油田可采储量的数值代入式(3-18)得到该当油田年产量达到最高年产量时的累积产量为4401.14×
将a和c的数值代入式(3-8)得,预测该油田年产量的公式为
(3-23)
将a和c的数值代入式(3-10)得到预测该油田累积产量的公式为
(3-24)
由式(3-23)和式(3-24)预测该油田的产量和累积产量如表4-1
表4-1开发数据表
预测年产量(104t/a)
预测累积产量(104t/a)
352.6832
177.7129
673.3874
694.6546
934.9175
1504.67
1118.654
2538.444
1216.625
3713.276
1231.56
4943.923
1175.132
6152.55
1064.951
7276.25
921.0863
8271.242
762.8562
9113.677
606.4389
9797.615
463.5474
10331.12
341.147
10731.59
241.9794
11021.2
165.562
11223.16
109.339
11359.07
根据表4-1中数据,在同一坐标系中绘制实际产量与预测产量及其对应时间t之间的关系曲线,绘于图4-2。
图4-2实际与预测产量随时间变化曲线
在同一坐标系中绘制实际累计产量与预测累计产量及其对应时间t之间的关系曲线,绘于图4-3。
图4-3实际与预测累计产量随时间变化曲线
认识与结论
通过本次课程设计,得出如下认识与结论:
(1)完成了这次课程设计使我掌握了瑞利(Rayleigh)模型的应用,并能初步对油田进行预测分析。
(2)我能熟练掌握并应用瑞利(Rayleigh)模型原理、推导及公式,可以对油气田的年产量、累计产量、可采储量、最高年产量、最高年产量发生的时间以及与最高年产量对应的累积产量进行预测。
(3)在三周的课程设计里,我对VB语言有了更深刻的理解。
同时,提高了我对实际问题的解决能力,使理论与实践相结合。
(4)在这次课程设计之后,使我认识到学好计算机的重要性与实践操作的必要性,在老师的指导下和与同学的讨论中,不断地发现问题、不断地解决问题、不断地领悟、不断地获取,使自己的程序不断完善。
(5)通过这次的课程设计,培养了我独立思考和动手操作的能力,也使我在日常的学习与讨论当中增长了许多课外知识,认识到数学模型对油气田的产量预测的重要性。
虽然在课程设计的过程中遇到了一些问题,但经过反复的思考与检查找出原因所在并进行改正。
参考文献
[1]陈元千.瑞利模型的完善推导与应用[J].油气地质与采收率,2004,11(4):
39-41.
[2]陈元千油藏工程实践[M].石油工业出版社,2003
[3]兰燕娜基于VB语言实现最小二乘法直线拟合.长江大学学报2011
附录
程序
Dimnf(17)AsSingle,kfsj(17)AsSingle,cl(17)AsSingle,ljcl(17)AsSingle
PrivateSubbc_Click()
CD1.ShowSave
IfCD1.FileName="
"
ThenExitSub
Open"
E:
\基础数据.txt"
ForOutputAs#1
Fori=1ToMSFlexGrid1.Rows-1
Print#1,MSFlexGrid1.TextMatrix(i,0),MSFlexGrid1.TextMatrix(i,1),MSFlexGrid1.TextMatrix(i,2),MSFlexGrid1.TextMatrix(i,3)
Nexti
Close#1
EndSub
PrivateSubCommand1_Click()
Label1.Visible=True
MSFlexGrid1.Visible=True
ForInputAs#1
i=1
k=MSFlexGrid1.Rows
WhileNotEOF
(1)
Input#1,nf(i),kfsj(i),cl(i),ljcl(i)
MSFlexGrid1.TextMatrix(i,0)=nf(i)
MSFlexGrid1.TextMatrix(i,1)=kfsj(i)
MSFlexGrid1.TextMatrix(i,2)=cl(i)
MSFlexGrid1.TextMatrix(i,3)=ljcl(i)
i=i+1
Ifi>
MSFlexGrid1.Rows-1ThenMSFlexGrid1.Rows=i+1
Wend
Ifk<
>
MSFlexGrid1.RowsThenMSFlexGrid1.Rows=MSFlexGrid1.Rows-1
PrivateSubCommand2_Click()
Label1.Visible=True
Label2.Visible=True
Label3.Visible=True
Label4.Visible=True
Text1.Visible=True
Text2.Visible=True
Text3.Visible=True
MSFlexGrid1.Visible=True
MSFlexGrid1.Cols=MSFlexGrid1.Cols+2
MSFlexGrid1.ColWidth(5)=1000
MSFlexGrid1.TextMatrix(0,4)="
t^2"
MSFlexGrid1.TextMatrix(0,5)="
lg(Q/t)"
i=1
MSFlexGrid1.TextMatrix(i,4)=kfsj(i)^2
MSFlexGrid1.TextMatrix(i,5)=Int(Log(cl(i)/kfsj(i))/2.303*1000)/1000
Ifi>
Fori=2ToMSFlexGrid1.Rows-1
X=X+kfsj(i)^2
Z=Z+Int(Log(cl(i)/kfsj(i))/2.303*1000)/1000
zx=zx+Int(Log(cl(i)/kfsj(i))/2.303*1000)/1000*kfsj(i)^2
xx=xx+(kfsj(i)^2)^2
Text1=Int(((MSFlexGrid1.Rows-2)*zx-Z*X)/(((MSFlexGrid1.Rows-2)*xx-X^2))*10000)/10000
Text2=Int((Z-Text1*X)/(MSFlexGrid1.Rows-2)*10000)/10000
Text3.Text="
lg(Q/t)="
&
Text1&
+"
Text2
PrivateSubForm_Load()
Label1.Visible=False
Label2.Visible=False
Label3.Visible=False
Label4.Visible=False
Text1.Visible=False
Text2.Visible=False
Text3.Visible=False
MSFlexGrid1.Visible=False
MSFlexGrid1.TextMatrix(0,0)="
年份"
MSFlexGrid1.TextMatrix(0,1)="
开发时间(a)"
MSFlexGrid1.TextMatrix(0,2)="
年产量(10^4t/a)"
MSFlexGrid1.TextMatrix(0,3)="
累积产量(10^4t/a)"
MSFlexGrid1.ColWidth
(1)=1500
MSFlexGrid1.ColWidth
(2)=2000
MSFlexGrid1.ColWidth(3)=2000
PrivateSubjs_Click()
Form1.Hide
Form2.Show
ReDimj(1To17)AsString
ReDimh(1To17)AsString
ReDiml(1To17)AsString
Form2.MSFlexGrid1.TextMatrix(0,0)="
Form2.MSFlexGrid1.TextMatrix(0,1)="
理论年产油量(10^4t/a)"
Form2.MSFlexGrid1.TextMatrix(0,2)="
理论累积产油量(10^4t/a)"
Form2.MSFlexGrid1.ColWidth(0)=1000
Form2.MSFlexGrid1.ColWidth
(1)=2000
Form2.MSFlexGrid1.ColWidth
(2)=2800
g=0
l(i)=Form1.Text1*kfsj(i)^2+Form1.Text2
h(i)=kfsj(i)*10^l(i)
g=g+h(i)
j(i)=g
Form2.MSFlexGrid1.TextMatrix(i,0)=kfsj(i)
Form2.MSFlexGrid1.TextMatrix(i,1)=Int(h(i)*10000)/10000
Form2.MSFlexGrid1.TextMatrix(i,2)=Int(j(i)*10000)/10000
Nexti
c=1/(-Form1.Text1.Text)/2.3
a=10^(Form1.Text2.Text)
Form2.Text1.Text=Int(0.5*a*c*10000)/10000
Form2.Text2.Text=Int(0.707*(c^0.5*10000))/10000
Form2.Text3.Text=Int(0.4289*a*c^0.5*10000)/10000
Form2.Text4.Text=Int(0.5*a*c*(1-10^(-0.5)/0.52137)*10000)/10000
PrivateSubone_Click()
Form2.Hide
Form3.Show
Form3.MSChart1.Visible=True
Form3.MSChart2.Visible=False
Form3.MSChart3.Visible=False
n=MSFlexGrid1.Rows-1
ReDime(1Ton,1Ton)AsString
ReDimf(1Ton,1Ton)AsString
e(i,2)=Int(Log(cl(i)/kfsj(i))/2.303*1000)/1000
e(i,1)=kfsj(i)^2
Form3.Text1.Text="
Form1.Text1.Text&
(Form1.Text2.Text)
ReDimMyData(n-1,3)AsDouble
'
-----x轴坐标值-----Y轴坐标值----------
Fori=1ToMSFlexGrid1.Rows-1
MyData(i-1,0)=e(i,1):
MyData(i-1,1)=e(i,2)'
本句代表了:
第一点数据的X轴坐标,Y轴坐标
MyData(i-1,3)=(Form1.Text1.Text