📄 form1.frm
字号:
VERSION 5.00
Begin VB.Form Form1
Caption = "利用Beggs-Brill方法计算朝向流体的压力梯度(油工016_颜冰)"
ClientHeight = 4410
ClientLeft = 60
ClientTop = 450
ClientWidth = 6885
LinkTopic = "Form1"
ScaleHeight = 4410
ScaleWidth = 6885
StartUpPosition = 3 '窗口缺省
Begin VB.TextBox Text1
Height = 270
Left = 3443
TabIndex = 35
Top = 3480
Width = 1095
End
Begin VB.TextBox Ztext
Height = 270
Left = 5040
TabIndex = 34
Top = 3120
Width = 1095
End
Begin VB.TextBox Ttext
Height = 270
Left = 5040
TabIndex = 33
Top = 2760
Width = 1095
End
Begin VB.TextBox P1text
Height = 270
Left = 5040
TabIndex = 32
Top = 2400
Width = 1095
End
Begin VB.TextBox Atext
Height = 270
Left = 5040
TabIndex = 31
Top = 2040
Width = 1095
End
Begin VB.TextBox Botext
Height = 270
Left = 5040
TabIndex = 30
Top = 1680
Width = 1095
End
Begin VB.TextBox Ltext
Height = 270
Left = 5040
TabIndex = 29
Top = 1320
Width = 1095
End
Begin VB.TextBox Dtext
Height = 270
Left = 5040
TabIndex = 28
Top = 960
Width = 1095
End
Begin VB.TextBox Qotext
Height = 270
Left = 5040
TabIndex = 27
Top = 600
Width = 1095
End
Begin VB.TextBox Matext
Height = 270
Left = 2160
TabIndex = 26
Top = 3120
Width = 1095
End
Begin VB.TextBox Motext
Height = 270
Left = 2160
TabIndex = 25
Top = 2760
Width = 1095
End
Begin VB.TextBox Mgtext
Height = 270
Left = 2160
TabIndex = 24
Top = 2400
Width = 1095
End
Begin VB.TextBox Ugtext
Height = 270
Left = 2160
TabIndex = 23
Top = 2040
Width = 1095
End
Begin VB.TextBox Uotext
Height = 270
Left = 2160
TabIndex = 22
Top = 1680
Width = 1095
End
Begin VB.TextBox Utext
Height = 270
Left = 2160
TabIndex = 21
Top = 1320
Width = 1095
End
Begin VB.TextBox Rstext
Height = 270
Left = 2160
TabIndex = 20
Top = 960
Width = 1095
End
Begin VB.TextBox Rptext
Height = 270
Left = 2160
TabIndex = 19
Top = 600
Width = 1095
End
Begin VB.CommandButton Command2
Caption = "退出"
Height = 375
Left = 3743
TabIndex = 2
Top = 3840
Width = 975
End
Begin VB.CommandButton Command1
Caption = "计算"
Height = 375
Left = 2303
TabIndex = 1
Top = 3840
Width = 975
End
Begin VB.Label Label18
Caption = "倾斜管角"
Height = 255
Left = 2483
TabIndex = 36
Top = 3495
Width = 735
End
Begin VB.Label Label17
Caption = "标准状况下空气密度"
Height = 255
Left = 480
TabIndex = 18
Top = 3120
Width = 1815
End
Begin VB.Label Label16
Caption = "原油表面张力"
Height = 255
Left = 3480
TabIndex = 17
Top = 2040
Width = 1095
End
Begin VB.Label Label15
Caption = "天然气粘度"
Height = 255
Left = 480
TabIndex = 16
Top = 2040
Width = 1215
End
Begin VB.Label Label14
Caption = "原油粘度mPa"
Height = 255
Left = 480
TabIndex = 15
Top = 1320
Width = 1215
End
Begin VB.Label Label13
Caption = "天然气压缩因子"
Height = 255
Left = 3480
TabIndex = 14
Top = 3120
Width = 1335
End
Begin VB.Label Label12
Caption = "原油体积系数"
Height = 255
Left = 3480
TabIndex = 13
Top = 1680
Width = 1335
End
Begin VB.Label Label11
Caption = "溶解气油比"
Height = 255
Left = 480
TabIndex = 12
Top = 960
Width = 975
End
Begin VB.Label Label10
Caption = "计算段长"
Height = 255
Left = 3480
TabIndex = 11
Top = 1320
Width = 975
End
Begin VB.Label Label9
Caption = "油管内径"
Height = 255
Left = 3480
TabIndex = 10
Top = 960
Width = 975
End
Begin VB.Label Label8
Caption = "计算段平均温度"
Height = 255
Left = 3480
TabIndex = 9
Top = 2760
Width = 1455
End
Begin VB.Label Label7
Caption = "地面原油粘度"
Height = 255
Left = 480
TabIndex = 8
Top = 1680
Width = 1455
End
Begin VB.Label Label6
Caption = "天然气相对密度"
Height = 255
Left = 480
TabIndex = 7
Top = 2400
Width = 1455
End
Begin VB.Label Label5
Caption = "地面脱气原油密度"
Height = 255
Left = 480
TabIndex = 6
Top = 2760
Width = 1455
End
Begin VB.Label Label4
Caption = "生产气油比"
Height = 255
Left = 480
TabIndex = 5
Top = 600
Width = 1455
End
Begin VB.Label Label3
Caption = "油井产量"
Height = 255
Left = 3480
TabIndex = 4
Top = 600
Width = 855
End
Begin VB.Label Label2
Caption = "初始压力(井口)"
Height = 255
Left = 3480
TabIndex = 3
Top = 2400
Width = 1455
End
Begin VB.Label Label1
Caption = "利用Beggs-Brill方法计算朝向流体的压力梯度"
BeginProperty Font
Name = "隶书"
Size = 12
Charset = 134
Weight = 700
Underline = -1 'True
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H000000FF&
Height = 375
Left = 720
TabIndex = 0
Top = 120
Width = 5655
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Command1_Click()
Dim ap1, ap, ap2, p, rs, rp, qo, ql, qg, d, u, l, uo, bo, ug, a, mgr, p1, mo, ml, t, ma, z As Double
'u原油粘度 l计算段长度 d 管内径 uo地面原油粘度, bo原油体积系数, ug天然气粘度,
'a表面张力, mgr天然气密度, p1井口初始压力, mo原油密度, t温度, ma空气密度, z 压缩因子
'ap1,ap2 为初设计算段的压力降 ql,qg气液的就地流量 ap就地的气体液体及混合物的表观粘度
Dim vsl, vsg, vm, gl, gg, gm, el As Double 'vsl,vsg,vm就地的气体液体及混合物的表观流速 gl, gg, gm液气用总的质量流量
Dim nfr, ul, al, um, cta, nvl, l1, fai, h1, h2, l2, l3, l4, a1, b1, cc, c1, d1, e1, f1, g1 As Double
Dim s As String
Dim y, ss, nre, lanb1, lanb2, pp, ppp, p2, p3 As Double
If Rptext.Text = "" Or Rstext.Text = "" Or Qotext.Text = "" Or Dtext.Text = "" Or Utext.Text = "" Or Ltext.Text = "" Or Ltext.Text = "" Or Uotext.Text = "" Or Botext.Text = "" Or Ugtext.Text = "" Or Atext.Text = "" Or Mgtext.Text = "" Or P1text.Text = "" Or Ztext.Text = "" Or Matext.Text = "" Or Ttext.Text = "" Or Motext.Text = "" Then
MsgBox ("你的输入不正确,为了你的利益请正确输入!")
Exit Sub
End If
cta = Text1.Text
rp = Rptext.Text
rs = Rstext.Text
qo = Qotext.Text
d = Dtext.Text * (10 ^ (-3))
u = Utext.Text * (10 ^ (-3))
l = Ltext.Text
uo = Uotext.Text
bo = Botext.Text
ug = Ugtext.Text * (10 ^ (-3))
a = Atext.Text
mgr = Mgtext.Text
p1 = P1text.Text
mo = Motext.Text
t = Ttext.Text
ma = Matext.Text
z = Ztext.Text
ap1 = 0.5
p3 = ap1
Do While p3 > 0.02
ap2 = p1 + ap1
p = (ap2 + p1) / 2 'p平均
t = t + 273
'计算原油密度
ml = (mo + ma * rs * mgr) / bo
'计算天然气密度
mg = (mgr * ma * p * 293) / (z * t * 0.101)
'气液的就地流量
qg = 0.101 * t * z * (rp - rs) * qo / (86400 * p * 293)
ql = qo * bo / 86400
'就地的气体液体及混合物的表观流速
ap = 3.1416 * d * d / 4
vsl = ql / ap
vsg = qg / ap
vm = vsl + vsg
'液气及总的质量流量
gl = ml * ql
gg = mg * qg
gm = gl + gg
'入口体积含液率
el = ql / (ql + qg)
'弗罗德数nfr、液体粘度、混合物粘度用表面张力
nfr = vm * vm / (9.81 * d)
ul = u
al = a
um = ul * el + ug * (1 - el)
'液体速度准数nvl
nvl = vsl * ((ml / (9.81 * a)) ^ 0.25)
'5流型确定
l1 = 316 * (el ^ 0.302)
l2 = 92.52 * (10 ^ (-5)) * (el ^ (-2.4684))
l3 = 0.1 * (el ^ (-1.4516))
l4 = 0.5 * (el ^ (-6.738))
If (el < 0.01 And nfr < l1) Or (el >= 0.01 And nfr < l2) Then '上下坡问题
s = "分离流"
a1 = 0.98
b1 = 0.4846
c1 = 0.0868
MsgBox ("分离流")
ElseIf el >= 0.01 And l2 < nfr And l3 >= nfr Then
s = "过渡流"
a1 = 0.845
b1 = 0.5351
c1 = 0.0173
MsgBox ("过渡流")
ElseIf (el >= 0.01 And el < 0.4 And l3 < nfr And nfr < l1) Or (el >= 0.4 And l3 < nfr And nfr < l4) Then
MsgBox ("间歇流")
a1 = 0.845
b1 = 0.5351
c1 = 0.0173
s = "间歇流"
ElseIf (el < 0.4 And nfr >= l1) Or (el >= 0.4 And nfr > l4) Then
MsgBox ("分散流")
a1 = 1.065
b1 = 0.5929
c1 = 0.0609
s = "分散流"
End If
d1 = 4.7
e1 = -0.3692
f1 = 0.1244
g1 = -0.5056
'根据流型计算h1(0),h1(aa)aa为角度 a1,b1,c1,d1
h1 = (el ^ b1) / (nfr ^ c1)
If cta <> 0 Then
cc = (1 - el) * (Log(d * (el ^ e1) * (nvl ^ f1) * (nfr ^ g1)))
fai = 1 + cc(Sin(1.8 * cta / 180 * 3.1415926) - (1 / 3) * (Sin(1.8 * cta / 180 * 3.1415926) ^ 3))
h1 = h1 * fai
End If
'计算阻力系数
y = el / (h1 ^ 2)
ss = Log(y) / (-0.0523 + 3.182 * Log(y) - 0.8725 * (Log(y) ^ 2) + 0.01853 * (Log(y) ^ 4))
nre = d * vm * (ml * el + mg * (1 - el)) / (ul * el + ug * (1 - el))
lanb2 = 0.0056 + 0.5 / (nre ^ 0.32)
lanb1 = lanb2 * (e1 ^ ss)
'计算压降梯度
pp = ((ml * h1 + mg * (1 - h1)) * 9.81 * Sin(sta / 180 * 3.14) + lanb1 * gm * vm / (2 * d * ap)) / (1 - ((ml * h1 + mg * (1 - h1)) * vm * vsg) / p)
ppp = pp * z
'计算该段末端的压力
p2 = p1 + ppp
'比较压力增量的假设值与计算值设ipxlong=0.02
p3 = Abs(ap2 - p2)
ap1 = p2
Loop
MsgBox ("该段压降是" & Format(ppp, "0.0000") & "Mp !")
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Form_Load()
MsgBox ("油工016颜冰作业")
MsgBox ("请按求输入计算所需各参数")
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -