?? 工程1.frm
字號:
Height = 495
Left = 4440
TabIndex = 10
Top = 360
Width = 1095
End
Begin VB.Label Label8
Caption = "第一排生產(chǎn)井井距/m"
Height = 495
Left = 2400
TabIndex = 9
Top = 360
Width = 975
End
Begin VB.Label Label7
Caption = "注水井排井距/m"
Height = 375
Left = 120
TabIndex = 8
Top = 360
Width = 1215
End
End
Begin VB.Frame Frame1
Caption = "參數(shù)1"
Height = 1335
Left = 120
TabIndex = 0
Top = 120
Width = 8535
Begin VB.TextBox Text6
Height = 270
Left = 3600
TabIndex = 28
Text = "10"
Top = 840
Width = 735
End
Begin VB.TextBox Text5
Height = 270
Left = 1440
TabIndex = 27
Text = "0.85"
Top = 840
Width = 735
End
Begin VB.TextBox Text4
Height = 270
Left = 7440
TabIndex = 26
Text = "1.12"
Top = 240
Width = 735
End
Begin VB.TextBox Text3
Height = 270
Left = 5520
TabIndex = 25
Text = "9"
Top = 240
Width = 615
End
Begin VB.TextBox Text2
Height = 270
Left = 3600
TabIndex = 24
Text = "0.5"
Top = 240
Width = 735
End
Begin VB.TextBox Text1
Height = 270
Left = 1440
TabIndex = 23
Text = "16"
Top = 240
Width = 735
End
Begin VB.Label Label6
Caption = "折算半徑/cm"
Height = 375
Left = 2520
TabIndex = 6
Top = 840
Width = 735
End
Begin VB.Label Label5
Caption = "原油密度"
Height = 255
Left = 240
TabIndex = 5
Top = 840
Width = 975
End
Begin VB.Label Label4
Caption = "原油體積系數(shù)"
Height = 375
Left = 6480
TabIndex = 4
Top = 240
Width = 975
End
Begin VB.Label Label3
Caption = "原油粘度/mPa.s"
Height = 375
Left = 4560
TabIndex = 3
Top = 240
Width = 735
End
Begin VB.Label Label2
Caption = "滲透率/um^2"
Height = 375
Left = 2520
TabIndex = 2
Top = 240
Width = 1095
End
Begin VB.Label Label1
Caption = "地層有效厚度/m"
Height = 375
Left = 240
TabIndex = 1
Top = 240
Width = 1215
End
End
Begin VB.Label Label25
Caption = "班級序號"
Height = 315
Left = 660
TabIndex = 53
Top = 5700
Width = 855
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Dim he As Double '有效厚度
Dim Ka As Double '滲透率
Dim Uo As Double '原油粘度
Dim Bo As Double '原油體積系數(shù)
Dim Density As Double '原油密度
Dim Rw As Double '井徑
Dim a_Ini As Double '注水井井排井距
Dim a_Pro1 As Double '第一排生產(chǎn)井井距一半
Dim a_Pro2 As Double '第二排生產(chǎn)井井距一半
Dim a_Pro3 As Double '第三排生產(chǎn)井井距一半
Dim L1 As Double '注水井與第一排生產(chǎn)井井排距離
Dim L2 As Double '第一排生產(chǎn)井井排與第二排生產(chǎn)井井排距離
Dim L3 As Double '第二排生產(chǎn)井井排與第三排生產(chǎn)井井排距離
Dim P_Ini As Double '注水井井底壓力
Dim P_Pro1 As Double '第一排生產(chǎn)井井底壓力
Dim P_Pro2 As Double '第二排生產(chǎn)井井底壓力
Dim P_pro3 As Double '第三排生產(chǎn)井井底壓力
Dim Qo(1 To 3) As Double '各生產(chǎn)井井排單井產(chǎn)量
Dim n0 As Integer '注水井井數(shù)
Dim n1 As Integer '第一排生產(chǎn)井井數(shù)
Dim n2 As Integer '第二排生產(chǎn)井井數(shù)
Dim n3 As Integer '第三排生產(chǎn)井井數(shù)
Dim Rin0 As Double '注水井滲流內(nèi)阻
Dim Rin1 As Double, Rin2 As Double, Rin3 As Double '各生產(chǎn)井井排內(nèi)阻
Dim Rout1 As Double, Rout2 As Double, Rout3 As Double '生產(chǎn)井井排間外部阻力
Const PAI = 3.14159265
Sub load()
Dim temp As Double
' Dim temp2 As Double
he = Val(Text1.Text) * 100 '換算單位
Ka = Val(Text2.Text)
Uo = Val(Text3.Text)
Bo = Val(Text4.Text)
Density = Val(Text5.Text)
Rw = Val(Text6.Text)
temp = Val(Text23.Text) * 10 + 200
' a_Ini = Val(Text7.Text) * 100 / 2
' a_Pro1 = Val(Text8.Text) * 100 / 2
' a_Pro2 = Val(Text9.Text) * 100 / 2
' a_Pro3 = Val(Text10.Text) * 100 / 2
' temp2 = 200 + temp1 * 10
a_Ini = temp * 100 / 2
a_Pro1 = a_Ini
a_Pro2 = a_Ini
a_Pro3 = a_Ini
Text7.Text = temp
Text8.Text = temp
Text9.Text = temp
Text10.Text = temp
L1 = Val(Text11.Text) * 100
L2 = Val(Text12.Text) * 100
L3 = Val(Text13.Text) * 100
P_Ini = Val(Text14.Text) * 10
P_Pro1 = Val(Text15.Text) * 10
P_Pro2 = Val(Text16.Text) * 10
P_pro3 = Val(Text17.Text) * 10
n0 = Val(Text18.Text)
n1 = Val(Text19.Text)
n2 = Val(Text20.Text)
n3 = Val(Text21.Text)
End Sub
Private Sub Command1_Click()
Call load
Dim chucuo
If Text23.Text = "" Then
chucuo = MsgBox("請輸入你的班級序號!", vbOKOnly, "錯誤!")
Text23.SetFocus
End If
Dim dblA(1 To 3, 1 To 3) As Double
Dim dblB(1 To 3) As Double
dblB(1) = P_Ini - P_Pro1
dblB(2) = P_Pro1 - P_Pro2
dblB(3) = P_Pro2 - P_pro3
Call R_InOut '計算滲流阻力
dblA(1, 1) = Rin0 + Rout1 + Rin1
dblA(2, 1) = -Rin1
dblA(3, 1) = 0
dblA(1, 2) = Rin0 + Rout1
dblA(2, 2) = Rin2 + Rout2
dblA(3, 2) = -Rin2
dblA(1, 3) = Rin0 + Rout1
dblA(2, 3) = Rout2
dblA(3, 3) = Rin3 + Rout3
Call LU(3, dblA(), dblB()) '求解方程組
End Sub
'計算滲流阻力
Private Sub R_InOut()
Dim temp1 As Double, temp2 As Double
'外阻
temp1 = Uo / Ka / he
Rout1 = temp1 / (2 * a_Pro1 * n1) * L1
Rout2 = temp1 / (2 * a_Pro2 * n2) * L2
Rout3 = temp1 / (2 * a_Pro3 * n3) * L3
'Debug.Print Rout3
'內(nèi)阻
temp2 = Uo * 0.5 / PAI / Ka / he
Rin0 = temp2 * Log(a_Ini / PAI / Rw) / n0
Rin1 = temp2 * Log(a_Pro1 / PAI / Rw) / n1
Rin2 = temp2 * Log(a_Pro2 / PAI / Rw) / n2
Rin3 = temp2 * Log(a_Pro3 / PAI / Rw) / n3
End Sub
'采用LU分解求解線性方程組
'n方程維數(shù),dblA存儲方程組的系數(shù)矩陣,dblB存儲方程組常數(shù)向量,x矩陣返回值
Private Sub LU(n As Integer, dblA() As Double, dblB() As Double)
Dim k As Integer, j As Integer, r As Integer, i As Integer
Dim sum1 As Double, sum2 As Double
Dim L() As Double, U() As Double, X() As Double, Y() As Double
ReDim L(1 To n, 1 To n) 'L矩陣向量
ReDim U(1 To n, 1 To n) 'U矩陣向量
ReDim Y(1 To n) 'y矩陣向量
ReDim X(1 To n) '返回最終解向量
For k = 1 To n
'求解U矩陣向量
For j = k To n
If k = 1 Then
U(k, j) = dblA(k, j)
Else
sum1 = 0
For r = 1 To k - 1
sum1 = sum1 + L(k, r) * U(r, j)
Next r
U(k, j) = dblA(k, j) - sum1
End If
Next j
'求解L矩陣向量
For i = k + 1 To n
For r = 1 To k - 1
sum2 = 0
sum2 = sum2 + L(i, r) * U(r, k)
Next r
L(i, k) = (dblA(i, k) - sum2) / U(k, k)
Next i
Next k
'求解y矩陣向量
Dim sum3 As Double
For i = 1 To n
If i = 1 Then
Y(i) = dblB(i)
Else
sum3 = 0
For k = 1 To i - 1
sum3 = sum3 + L(i, k) * Y(k)
Next k
Y(i) = dblB(i) - sum3
End If
Next i
'求解
Dim sum4 As Double
For i = n To 1 Step -1
sum4 = 0
For k = i + 1 To n
sum4 = sum4 + U(i, k) * X(k)
Next k
X(i) = (Y(i) - sum4) / U(i, i)
' Print x(i)
Next i
Dim jj As Integer
'將結(jié)果化成單位為t/d,地面條件
Qo(1) = X(1) * Density * 0.0864 / Bo / n1
Qo(2) = X(2) * Density * 0.0864 / Bo / n2
Qo(3) = X(3) * Density * 0.0864 / Bo / n3
For jj = 1 To n
Text22(jj - 1) = Format(Qo(jj), "0.00") '輸出
Next jj
End Sub
Private Sub Command2_Click()
End
End Sub
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -