Предупреждение гидратообразования в системах сбора и промысловой подготовки скважинной продукции на примере Ямбургского месторождения

Геологическое строение Ямбургского месторождения: краткая литолого-стратиграфическая характеристика разреза, тектоника. Определение зон возможного гидратообразования сеноманской залежи, расчет расхода ингибитора. Гидравлический и тепловой расчет шлейфов.

Рубрика Геология, гидрология и геодезия
Вид дипломная работа
Язык русский
Дата добавления 17.09.2011
Размер файла 1,9 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

List1.AddItem j

List1.AddItem "***************"

List2.AddItem Pz

List2.AddItem "***************"

List3.AddItem Tz

List3.AddItem "***************"

List4.AddItem Tg

List4.AddItem "***************"

Rem Определение максимальной глубины гидратообразования.

For j = H To 0.01 Step -1

Tz = Tu + Г * j

Tc = (Tz - Tu) / Log(Tz / Tu)

c = 1

Pz = Pu

Do While c > 0.05

Px = Pz

Pc = (Px + Pu) / 2

Zc = 4.82 * (10 ^ (-4)) * (Pc ^ 2) - 1.658 * (10 ^ (-2)) * Pc + 1.01

S = (0.0683 * R * j) / (2 * Zc * Tc)

ku = 1.325 * (10 ^ (-12)) * L * (Zc ^ 2) * (Tc ^ 2) * ((Exp(2 * S)) - 1) / (d ^ 5)

Pz = Sqr((Pu ^ 2) * Exp(2 * S) + ku * (q ^ 2))

c = Abs(Px - Pz)

Loop

Tg = (19.9 * (1 + 0.434 * Log(Pz)) - 26.5) + 273.15

If Tz <= Tg Then

Label6.Caption = j

Exit Sub

Else

Label6.Caption = "гидратов нет"

End If

Next j

Exit Sub

111:

MsgBox "Ведены некорретные данные!"

вычисление.Enabled = True

End Sub

Private Sub очистка_Click()

Rem Стирание всех данных.

вычисление.Enabled = True

Label2.Caption = ""

Label6.Caption = ""

List1.Clear

List2.Clear

List3.Clear

List4.Clear

End Sub

Rem Распечатывание данных

Private Sub печать_Click()

Form1.PrintForm

End Sub

Расчёт распределения температуры и давления в остановленной скважине

Private Pz As Currency, Tz As Currency, Tg As Currency

Private Sub выход_Click()

End

End Sub

Private Sub вычисление_Click()

вычисление.Enabled = False

H = Val(Text1(2).Text)

Pu = Val(Text1(0).Text)

R = Val(Text1(4).Text)

Г = Val(Text1(3).Text)

Tu = Val(Text1(1).Text)

On Error GoTo 111

Tg = (19.9 * (1 + 0.434 * Log(Pu)) - 26.5) + 273.15

Rem Построение таблицы

List1.AddItem "H, м"

List1.AddItem "***************"

List1.AddItem "0"

List1.AddItem "***************"

List2.AddItem "Pz, МПа"

List2.AddItem "***************"

List2.AddItem Pu

List2.AddItem "***************"

List3.AddItem "Tz, К"

List3.AddItem "***************"

List3.AddItem Tu

List3.AddItem "***************"

List4.AddItem "Tg, К"

Продолжение приложения А.

List4.AddItem "***************"

List4.AddItem Tg

List4.AddItem "***************"

Rem Задаём шаг алгоритма в зависимости от глубины скважины.

If H > 5150 Then

w = 500

ElseIf H > 3450 Then

w = 300

ElseIf H > 1800 Then

w = 200

ElseIf H > 900 Then

w = 100

Else

w = 50

End IfRem Вычисление давления и температуры по длине скважины.

For j = 50 To H Step w

Tz = Tu + Г * j

Tc = (Tz - Tu) / Log(Tz / Tu)

c = 1

Pz = Pu

Do While c > 0.05

Px = Pz

Pc = (Px + Pu) / 2

Zc = 4.82 * (10 ^ (-4)) * (Pc ^ 2) - 1.658 * (10 ^ (-2)) * Pc + 1.01

S = (0.03415 * R * j) / (Zc * Tc)

Pz = Pu * Exp(S)

c = Abs(Px - Pz)

Loop

Tg = (19.9 * (1 + 0.434 * Log(Pz)) - 26.5) + 273.15

List1.AddItem j

List1.AddItem "***************"

List2.AddItem Pz

List2.AddItem "***************"

List3.AddItem Tz

List3.AddItem "***************"

List4.AddItem Tg

List4.AddItem "***************"

Next j

Rem Определение давления на забое скважины.

j = H

Tz = Tu + Г * j

Tc = (Tz - Tu) / Log(Tz / Tu)

c = 1

Pz = Pu

Do While c > 0.05

Px = Pz

Pc = (Px + Pu) / 2

Zc = 4.82 * (10 ^ (-4)) * (Pc ^ 2) - 1.658 * (10 ^ (-2)) * Pc + 1.01

S = (0.03415 * R * j) / (Zc * Tc)

Pz = Pu * Exp(S)

c = Abs(Px - Pz)

Loop

Label5.Caption = Pz

List1.AddItem j

List1.AddItem "***************"

List2.AddItem Pz

List2.AddItem "***************"

Продолжение приложения А.

List3.AddItem Tz

List3.AddItem "***************"

List4.AddItem Tg

List4.AddItem "***************"

Rem Определение максимальной глубины гидратообразования.

For j = H To 0.01 Step -1

Tz = Tu + Г * j

Tc = (Tz - Tu) / Log(Tz / Tu)

c = 1

Pz = Pu

Do While c > 0.05

Px = Pz

Pc = (Px + Pu) / 2

Zc = 4.82 * (10 ^ (-4)) * (Pc ^ 2) - 1.658 * (10 ^ (-2)) * Pc + 1.01

S = (0.03415 * R * j) / (Zc * Tc)

Pz = Pu * Exp(S)

c = Abs(Px - Pz)

Loop

Tg = (19.9 * (1 + 0.434 * Log(Pz)) - 26.5) + 273.15

If Tz <= Tg Then

Label3.Caption = j

Exit Sub

Else

Label3.Caption = "гидратов нет"

End If

Next j

Exit Sub

111:

MsgBox "Ведены некорретные данные!"

вычисление.Enabled = True

End Sub

Private Sub очистка_Click()

Rem Стирание всех данных.

вычисление.Enabled = True

Label5.Caption = ""

Label3.Caption = ""

List1.Clear

List2.Clear

List3.Clear

List4.Clear

End Sub

Rem Печать данных

Private Sub печать_Click()

Form1.PrintForm

End Sub

Приложение Б

Гидравлический и тепловой расчёт шлейфов, расчёт количества ингибитора

Private Px As Currency, Tx As Currency, Tg As Currency, ww As Integer

Private Sub вычисление_Click()

расчёт.Enabled = True

Py = Val(Text1(0).Text)

L = Val(Text1(1).Text)

Rg = Val(Text1(2).Text)

Ty = Val(Text1(3).Text)

Toc = Val(Text1(4).Text)

Q = Val(Text1(5).Text)

Dvn = Val(Text1(6).Text)

Dn = Val(Text1(7).Text)

z = Val(Text1(8).Text)

C = Val(Text1(9).Text)

K = Val(Text1(10).Text)

On Error GoTo 111

Rem Построение таблицы.

Form1.Font.Bold = True

Print " x, м";

Print " Px, МПа";

Print " Tx, K";

Print " Тг, K"

Print "******************************************************"

Rem Вычисление давления и температуры по длине шлейфа.

Ld = 0.009407 / (Dvn ^ 0.333)

a = 262.3 * K * Dn * 1000 / (Q * Rg * C * 1000000)

Ts = Toc + (Ty - Toc) * (1 - Exp(-a * L * 0.001)) / (a * L * 0.001)

Pk = Sqr((Py ^ 2) - ((Q ^ 2) * Ld * Rg * Ts * z * L * 0.001) / (10.23 * (10 ^ (-12)) * ((Dvn * 1000) ^ 5)))\)

Ps = (2 / 3) * (Py + (Pk ^ 2) / (Py + Pk))

Form1.Font.Bold = False

If L > 12000 Then

ww = 1000

ElseIf L > 7000 Then

ww = 500

ElseIf L > 3600 Then

ww = 300

Else

ww = 200

End If

For w = 0 To L Step ww

Px = Sqr((Py ^ 2) - ((Py ^ 2) - (Pk ^ 2)) * w / L)

Tx = Toc + (Ty - Toc) * Exp(-a * w * 0.001) - 2.5 * ((Py ^ 2) - (Pk ^ 2)) * (1 - Exp(-a * w * 0.001)) / (2 * a * L * 0.001 * Ps)

Tg = (19.9 * (1 + 0.434 * Log(Px)) - 26.5) + 273.15

Print " "; w;

Print " ",

Print Px;

Print " ",

Print Tx;

Print " ",

Print Tg

Print "******************************************************"

Next w

Rem Определения места начала гидратообразования.

For www = 0 To L

Px = Sqr((Py ^ 2) - ((Py ^ 2) - (Pk ^ 2)) * www / L)

Tx = Toc + (Ty - Toc) * Exp(-a * www * 0.001) - 2.5 * ((Py ^ 2) - (Pk ^ 2)) * (1 - Exp(-a * www * 0.001)) / (2 * a * L * 0.001 * Ps)

Tg = (19.9 * (1 + 0.434 * Log(Px)) - 26.5) + 273.15

If Tx <= Tg Then

Label3.Caption = www

Exit Sub

End If

Next www

Label3.Caption = "Гидратов нет"

расчёт.Enabled = False

Exit Sub

111:

MsgBox "Введены некорректные данные!"

Form1.Cls

расчёт.Enabled = False

End Sub

Private Sub очистка_Click()

Rem Удаление данных и результатов.

Form1.Cls

Label3.Caption = ""

расчёт.Enabled = False

End Sub

Private Sub выход_Click()

End

End Sub

Rem Печать данных

Private Sub печать_Click()

Form1.PrintForm

End Sub

Rem Открытие формы для расчёта количества ингибитора

Private Sub расчёт_Click()

Form1.Hide

Form2.Show

End Sub

Rem Построение формы и ввод данных для расчёта количества ингибитора

Private Qs As Currency

Private Sub выход_Click()

End

End Sub

Private Sub назад_Click()

Form2.Hide

Form1.Show

End Sub

Private Sub печать_Click()

Form2.PrintForm

End Sub

Private Sub расчёт_Click()

Py = Val(Form1.Text1(0).Text)

L = Val(Form1.Text1(1).Text)

Rg = Val(Form1.Text1(2).Text)

Ty = Val(Form1.Text1(3).Text)

Toc = Val(Form1.Text1(4).Text)

Q = (Val(Form1.Text1(5).Text))

Dvn = Val(Form1.Text1(6).Text)

Dn = Val(Form1.Text1(7).Text)

z = Val(Form1.Text1(8).Text)

C = Val(Form1.Text1(9).Text)

K = Val(Form1.Text1(10).Text)

X1 = Val(Text1(0).Text)

Gk = Val(Text1(1).Text)

Mk = Val(Text1(2).Text)

Rem Вычисление давления и температуры в конце шлейфа.

Ld = 0.009407 / (Dvn ^ 0.333)

a = 262.3 * K * Dn * 1000 / (Q * Rg * C * 1000000)

Ts = Toc + (Ty - Toc) * (1 - Exp(-a * L * 0.001)) / (a * L * 0.001)

Pk = Sqr((Py ^ 2) - ((Q ^ 2) * Ld * Rg * Ts * z * L * 0.001) / (10.23 * (10 ^ (-12)) * ((Dvn * 1000) ^ 5)))

Ps = (2 / 3) * (Py + (Pk ^ 2) / (Py + Pk))

w = L

Px = Sqr((Py ^ 2) - ((Py ^ 2) - (Pk ^ 2)) * w / L)

Tx = Toc + (Ty - Toc) * Exp(-a * w * 0.001) - 2.5 * ((Py ^ 2) - (Pk ^ 2)) * (1 - Exp(-a * w * 0.001)) / (2 * a * L * 0.001 * Ps)

Tg = (19.9 * (1 + 0.434 * Log(Px)) - 26.5) + 273.15

Q = Q * 1000

Rem расчёт количества ингибитора

dT = Tg - Tx

W1 = 0.457 * Exp((0.07374 * (Ty - 273.15)) - 0.000307 * ((Ty - 273.15) ^ 2)) / Py + 0.0418 * Exp(0.0537 * (Ty - 273.15) - 0.000199 * ((Ty - 273.15) ^ 2))

Продолжение приложения В.

W2 = 0.457 * Exp((0.07374 * (Tx - 273.15)) - 0.000307 * ((Tx - 273.15) ^ 2)) / Px + 0.0418 * Exp(0.0537 * (Tx - 273.15) - 0.000199 * ((Tx - 273.15) ^ 2))

dW = W1 - W2

Alfa = 0.197 * (Px ^ (-0.7)) * Exp(6.054 * 0.01 * (Tx - 273.15) + 5.399)

M = 32

K1 = 1220

X2 = M * dT / (K1 + M * dT)

K2 = 0.000143 * Mk ^ 2 - 0.0414 * Mk + 3.174

Qg = 0.1 * Alfa * X2+0.2*(0.1*Alfa*X2)

Qv = dW * X2 / (X1 - X2)

Qk = (Gk * K2 / 100) * Exp(0.0489 * (Tx - 273.15) + Log(0.000143 * X2 + 0.00486 * X2))

Qs = Qg + Qv + Qk

Label1(2).Caption = Qs

End Sub

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.