Загрузка данных



clc;
clear;
close all;

%% ЗАДАНИЕ 1. Интерполяция профилей пластов

% Исходные данные
X = [0 300 650 1000 1300 1700];

H1 = [1223 1230 1236 1228 1223 1221];
H2 = [1229 1235 1241 1232 1226 1224];
H3 = [1235 1239 1246 1235 1229 1228];

% Интерполяция кубическими сплайнами
xx = 0:5:1700;

hh1 = spline(X, H1, xx);
hh2 = spline(X, H2, xx);
hh3 = spline(X, H3, xx);

% Построение профилей
figure(1);
hold on;

fill([xx fliplr(xx)], ...
     [hh1 fliplr(hh2)], ...
     [0.7 0.9 1.0], 'EdgeColor', 'none');

fill([xx fliplr(xx)], ...
     [hh2 fliplr(hh3)], ...
     [1.0 0.8 0.7], 'EdgeColor', 'none');

plot(xx, hh1, 'b', 'LineWidth', 1.5);
plot(xx, hh2, 'k', 'LineWidth', 1.5);
plot(xx, hh3, 'r', 'LineWidth', 1.5);

plot(X, H1, 'bo');
plot(X, H2, 'ko');
plot(X, H3, 'ro');

set(gca, 'YDir', 'reverse');
grid on;
xlabel('X, м');
ylabel('H, м');
title('Профили пластов');
legend('Пласт 1', 'Пласт 2', ...
       'Кровля пласта 1', ...
       'Граница пластов', ...
       'Подошва пласта 2', ...
       'Location', 'best');
hold off;


%% ЗАДАНИЕ 1. Траектория горизонтальной скважины

% Исходные данные
S = 0:250:3250;

Xw = [0 0.6393246738 1.5855190591 ...
      5.1526844062 26.0802769868 ...
      117.0384309896 222.9899236105 ...
      374.5988349302 523.9844964536 ...
      663.7014829652 822.7566518001 ...
      986.3970192215 1182.1203774560 ...
      1387.2278281800];

Yw = [0 1.5061545452 3.7352488263 ...
      12.1389637487 39.5672054140 ...
      121.9174406883 195.1476701550 ...
      321.3849213376 485.1540326083 ...
      656.0256480927 820.8018490679 ...
      992.2449143058 1145.0880974579 ...
      1287.2692872166];

Zw = [0 249.9933873098 499.9809488897 ...
      749.7869520876 995.9132137924 ...
      1213.3421362033 1427.3991500030 ...
      1574.6760880577 1689.3762609154 ...
      1806.6902331603 1905.8119150196 ...
      1983.7048353488 2009.3602207979 ...
      2015.2257164381];

% Интерполяция с шагом 10 м
ss = 0:10:3250;

xxw = spline(S, Xw, ss);
yyw = spline(S, Yw, ss);
zzw = spline(S, Zw, ss);

% Пространственная траектория
figure(2);
plot3(xxw, yyw, zzw, 'b', 'LineWidth', 1.5);
hold on;
plot3(Xw, Yw, Zw, 'ro', 'MarkerFaceColor', 'r');

grid on;
xlabel('X, м');
ylabel('Y, м');
zlabel('Z, м');
title('Траектория скважины');
legend('Интерполированная траектория', ...
       'Исходные точки', 'Location', 'best');
axis equal;
hold off;


%% ДОПОЛНИТЕЛЬНО. Интерполяция проницаемости

% Координаты узлов сетки
x = [6660 8090 9525];
y = [3375 3950 4525 5100 5675];

% Значения проницаемости.
% Строки соответствуют координатам y,
% столбцы соответствуют координатам x.
K = [0.53 0.37 0.32;
     0.67 0.54 0.57;
     0.74 0.66 0.69;
     0.65 0.65 0.70;
     0.42 0.53 0.62];

% Сетка для интерполяции
[xg, yg] = meshgrid(x, y);

xxg = 5225:25:9525;
yyg = 3375:25:5675;
[xxg, yyg] = meshgrid(xxg, yyg);

% Двумерная интерполяция
zz = interp2(xg, yg, K, xxg, yyg, 'spline');

% Поверхность проницаемости
figure(3);
surf(xxg, yyg, zz);
shading interp;
colorbar;
grid on;
xlabel('X, м');
ylabel('Y, м');
zlabel('Проницаемость');
title('Интерполяционная поверхность проницаемости');

% Контурный график
figure(4);
contourf(xxg, yyg, zz, 15);
colorbar;
grid on;
xlabel('X, м');
ylabel('Y, м');
title('Изолинии проницаемости');