03 Мар

Практикум №1. Разработка месторождений. Научное программирование для студентов (Octave, Matlab)

lab1_picРешение задачи: «РАСПРЕДЕЛЕНИЕ ТЕМПЕРАТУРЫ ПО ГЛУБИНЕ ДОБЫВАЮЩЕЙ СКВАЖИНЫ» в GNU Octave (Matlab)

Цель работы: ознакомление с средствами и методическими приемами выполнения научных расчетов в средах научного программирования (на примере GNU Octave (Matlab)).

Задача: Рассчитать распределение температуры по глубине фонтанной добывающей скважины Туймазинского нефтяного месторождения (Башкортостан) с шагом 200 м для следующих условий:

  • глубина кровли пласта 1700 м;
  • пластовая температура 29 °С;
  • диаметр подъемника dBH = 0,0403 м (подъемник спущен до кровли продуктивного горизонта);
  • скважина работает с массовым дебитом Qм = 51 т/сут,
  • плотность нефти в стандартных условиях 852,5 кг/м3,
  • скважина вертикальная.

Для проверки расчетных данных использовать результаты замеров по скважине:

Н, м

0 200 400 600 800 900 1050 1600
t, ° С 7 9 11.8 13.3 16.3 17.8 19.9 26

 Примечание. Для выполнения настоящей работы используется бесплатная программа GNU Octave (http://www.octave.org), имеющая совместимость с Matlab.

Методика выполнения

Распределение температуры по глубине добывающей скважины зависит от способа эксплуатации, дебита скважины, диаметра скважины или насосно-компрессорных труб (НКТ), обводненности продукции и других параметров. В общем случае распределение температуры можно рассчитать, используя уравнение теплопроводности, записанное в следующем виде:

t(h) = t_{zab}-\omega h +\omega\frac{2 c \rho\alpha}{K \pi d} (1 - exp(- \frac{\pi d K}{2 c \rho \alpha})) (1)

где t (h) — температура на глубине h, отсчитываемой от забоя скважины,

°С; tzab — температура на забое скважины (принимается равной пластовой температуре пл.), °С; ω — геотермический градиент, град/м; с — удельная теплоемкость жидкости, Дж/(кг*град); р — плотность жидкости, кг/м3; q — объемный расход жидкости, м3/с; К — коэффициент теплопередачи через стенку трубы, Вт/ (м2 • град); d — внутренний диаметр подъемника скважины, м.

Обобщенно, формула (1) может быть представлена:

t(h) = t_{pl} (1 - St \frac{h}{d} \cos \alpha) (2)

где tpl, — соответственно температура пластовая и на устье скважины, °С; h — высота, отсчитываемая от забоя, м; St — безразмерный критерий Стантона; α — угол отклонения скважины от вертикали, градус.

St = \frac {1.763 \cdot 10^{-4}}{\ln Q_{m}+40} - 0.202 \cdot 10^{-4} (3)

Критерий Стантона, используемый для нахождения пластовой температуры, может быть так же найден по номограмме (рисунок 1), справедливой для малых диаметров НКТ.

Номограмма нахождения критерия Стантона

Рис. 1. Номограмма нахождения критерия Стантона в зависимости от суточного дебита

Геотермический градиент рассчитывается по формуле (4):

\omega = \frac {T_{pl} - T_{ns}}{(H_{kp} - H_{ns}) \cos \alpha} (4)

где Тns — температура нейтрального слоя, C; Н — глубина нейтрального

слоя, м.   При известном массовом дебите скважины Q и известной плотности нефти в стандартных условиях ρнд дебит жидкости q рассчитывается по (5):

q = \frac {Q_{m}}{(86.4 \rho_{nd})} (5)

где q — дебит жидкости, м3/с; Qm — массовый дебит жидкости, т/сут.

Ход выполнения задачи

Для выполнения задачи необходимо:

  • Рассчитаем по формуле (3) критерий Стантона;
  • Рассчитаем по формуле (2) температуру по стволу скважины;
  • Провести сопоставление с результатами экспериментальных данных:
  • Выполнить выводы.

Код matlab (GNU Octave), осуществляющий расчет температур по стволу скважины:

  1. %программа расчета температур по стволу скважины
  2. Qm=51; %суточный дебит скважины
  3. t_pl=29; %пластовая температура
  4. d_vn=0.0403; %диаметр подъемника
  5. alpha=0; %отклонение скважины от вертикали
  6. St=[]; %критерий Стантона
  7. h=0:100:1600; %диапазон глубин
  8.  
  9. %вычисляем критерий Стантона
  10. St=(1.763e-4)/(log((Qm+40)))-0.202e-4
  11. %t_400=t_pl*(1-St*(400/d_vn)*cos(alpha))
  12. t_h=t_pl*(1-St*(h/d_vn)*cos(alpha))
  13.  
  14. h=1700-h; %пересчитываем значения расстояния от кровли в глубину
  15. plot(h,t_h); %выводим график зависимости
  16.  
  17. %plot(h,rot90(rot90(t_h))) %выводим график зависимости
  18. title('Temperature encreasing with depth');
  19. xlabel('Depth, h');
  20. ylabel('Temperature, t oC');
  21.  
  22. tab_out=[h' t_h'] %формируем таблицу для записи результата
  23. dlmwrite('result.csv',tab_out,';'); %выводим файл таблицы с результатами

В результате выполнения программы выводится график распределения температуры по стволу скважины и сохраняется таблица в файл формата csv (разделители “;”).

График распределения температуры по стволу скважины

Следует обратить внимание, что строка кода №22 транспонирует вектора-строки h и t_h (оператор ” ‘ “) и затем объединяет их в таблицу, состоящую из двух столбцов, которая сохраняется во внешнем файле (строка №23).

Для определения ошибки расчетов, т.е. отличия теоретических данных от экспериментальных код можно дополнить кодом ниже:

  1. t_1=[t_h(2) t_h(8) t_h(10:2:17)] %расчеты для глубин 1600, 1050-0
  2. t_2=[26 19.9 16.3 13.3 11.8 9] %экспериментальные данные
  3. err=abs(t_1-t_2)./t_1*100 %относительная ошибка каждого расчета (%)
  4. mean_err=mean(err) %средняя относительная ошибка всех расчетов (%)

 

Лекции по научным вычислениям в Octave и Scilab

Лекция 1 по Scilab.

Лекция 2 по Matlab (Octave).

Дополнительная литература

  1. Поршнев С. В. Компьютерное моделирование физических процессов в пакете MATLAB / М.:, 2003. 593 с.
  2. Алексеев Е.Р. , Чеснокова О.В. Введение в Octave для инженеров и математиков: / Е.Р. Алексеев, О.В.Чеснокова М.: ALT Linux, 2012. 368 с.
  3. Материалы по продуктам MATLAB & Toolboxes // [Электронный ресурс]: Математический сайт Exponenta.ru. Веб-сайт. URL: http://matlab.exponenta.ru/index.php (Дата обращения: 05.11.2015)

Добавить комментарий