Forward Modelling Seismik Refraksi
close all
clear all
clc
Reflectors
v1 = 1500; %m/s, anhydrite
v2 = 3000; %m/s, sandstone
v3 = 5000; %m/s, shale
z1= 202.279; %m, thickness layer 1
z2= 145.299; %m, thickness layer 2
z3= 152.422; %m, thickness layer 3
Offset (m)
offset = 0:1000;
x = 0:1000;
Minimum Layer Thickness
fc = 100; %Hz
t_wave = 0.02; %periode dominant wavelet
batasatas_1 = t_wave + (0/v1) - (0/v2);
batasbawah_1 = (2*(sqrt(((1/(v1^2))-(1/(v2^2))))));
z1_min = batasatas_1/batasbawah_1 %minimum thickness layer 1
z1_min = 17.3205
batasatas_2 = t_wave - (0/v3) + (0/v2) - ((2*z1_min)*(sqrt(((1/(v1^2))-(1/(v3^2)))))) +
batasbawah_2 = (2*(sqrt(((1/(v2^2))-(1/(v3^2))))));
z2_min = batasatas_2/batasbawah_2 %minimum thickness layer 2
z2_min = 33.6932
Travel Time Shot 1 (x=0 meter)
%Reflect wave travel-time
t_ref=(sqrt((4*(z1.^2))+(x.^2)))/v1;
%Direct Wave travel time (travels along ground surface at velocity v1)
t_direct=x./v1;
% Head wave
% Refracts along z1-z2 boundary
% Travel time depends on velocities of both layers
% and thickness of layer 1 only (thickness of layer 2 irrelevant)
t1=(2*z1*sqrt(v2^2-v1^2)/(v1*v2))+x./v2;
% Head wave for layer 3
% Refracts along z1-z2 boundary
% Travel time depends on velocities of all 3 layers
% and thicknesses of layers 1 and 2.
t2=(2*z1*sqrt(v3^2-v1^2)/(v1*v3))+(2*z2*sqrt(v3^2-v2^2)/(v2*v3))+ x./v3;
1
figure(1)
plot(offset,t_direct,'r') %plotting Direct Wave travel time
hold on
plot(offset,t1,'b--') %plotting Refracted Wave 1 travel time
plot(offset,t2,'g--') %plotting Refracted Wave 2 travel time
plot(offset,t_ref,'y') %plotting Reflect Wave travel time
title('Travel Time Curve shot in 0m')
legend('direct wave','Refracted Wave 1','Refracted Wave 2','Reflect wave')
ylabel('Time (s)')
xlabel('offset (m)')
Travel Time Shot 6 (x=250 meter)
j=[-250:750];
n=length(j);
%Reflection Travel Time
for i=1:n;
if i<250
t_ref_s6(i)=(sqrt((4*(z1.^2))+(-j(i).^2)))/v1;
else
t_ref_s6(i)=(sqrt((4*(z1.^2))+(j(i).^2)))/v1;
end
end
%Direct Wave Travel Time
for i=1:n;
if i<250
t_direct_s6(i)=abs(-j(i)./v1);
2
else
t_direct_s6(i)=abs(j(i)./v1);
end
end
%Refracted Wave 1 Travel Time
for i=1:n;
if i<250
t1_s6(i)=abs((2*z1*sqrt(v2^2-v1^2)/(v1*v2))+(-j(i)./v2));
else
t1_s6(i)=abs((2*z1*sqrt(v2^2-v1^2)/(v1*v2))+(j(i)./v2));
end
end
%Refracted Wave 2 Travel Time
for i=1:n;
if i<250
t2_s6(i)=abs((2*z1*sqrt(v3^2-v1^2)/(v1*v3))+(2*z2*sqrt(v3^2-v2^2)/(v2*v3))+ (-j
else
t2_s6(i)=abs((2*z1*sqrt(v3^2-v1^2)/(v1*v3))+(2*z2*sqrt(v3^2-v2^2)/(v2*v3))+ (j(
end
end
figure(2)
plot(offset,t_direct_s6,'r') %plotting Direct Wave travel time
hold on
plot(offset,t1_s6,'b--') %plotting Refracted Wave 1 travel time
plot(offset,t2_s6,'g--') %plotting Refracted Wave 2 travel time
plot(offset,t_ref_s6,'y') %plotting Reflect Wave travel time
title('Travel Time Curve shot in 250m')
legend('direct wave','Refracted Wave 1','Refracted Wave 2','Reflect wave')
ylabel('Time (s)')
xlabel('offset (m)')
3
Travel Time Shot 11 (x=500 meter)
j=[-500:500];
n=length(j);
%Reflection Travel Time
for i=1:n;
if i<500
t_ref_s11(i)=(sqrt((4*(z1.^2))+(-j(i).^2)))/v1;
else
t_ref_s11(i)=(sqrt((4*(z1.^2))+(j(i).^2)))/v1;
end
end
%Direct Wave Travel Time
for i=1:n;
if i<500
t_direct_s11(i)=abs(-j(i)./v1);
else
t_direct_s11(i)=abs(j(i)./v1);
end
end
%Refracted Wave 1 Travel Time
for i=1:n;
if i<500
t1_s11(i)=abs((2*z1*sqrt(v2^2-v1^2)/(v1*v2))+(-j(i)./v2));
else
t1_s11(i)=abs((2*z1*sqrt(v2^2-v1^2)/(v1*v2))+(j(i)./v2));
end
end
4
%Refracted Wave 2 Travel Time
for i=1:n;
if i<500
t2_s11(i)=abs((2*z1*sqrt(v3^2-v1^2)/(v1*v3))+(2*z2*sqrt(v3^2-v2^2)/(v2*v3))+ (-
else
t2_s11(i)=abs((2*z1*sqrt(v3^2-v1^2)/(v1*v3))+(2*z2*sqrt(v3^2-v2^2)/(v2*v3))+ (j
end
end
figure(3)
plot(offset,t_direct_s11,'r') %plotting Direct Wave travel time
hold on
plot(offset,t1_s11,'b--') %plotting Refracted Wave 1 travel time
plot(offset,t2_s11,'g--') %plotting Refracted Wave 2 travel time
plot(offset,t_ref_s11,'y') %plotting Reflect Wave travel time
Warning: Imaginary parts of complex X and/or Y arguments ignored
title('Travel Time Curve shot in 500m')
legend('direct wave','Refracted Wave 1','Refracted Wave 2','Reflect wave')
ylabel('Time (s)')
xlabel('offset (m)')
Travel Time Shot 16 (x=750)
j=[-750:250];
n=length(j);
%Reflection Travel Time
for i=1:n;
5
if i<750
t_ref_s16(i)=(sqrt((4*(z1.^2))+(-j(i).^2)))/v1;
else
t_ref_s16(i)=(sqrt((4*(z1.^2))+(j(i).^2)))/v1;
end
end
%Direct Wave Travel Time
for i=1:n;
if i<750
t_direct_s16(i)=abs(-j(i)./v1);
else
t_direct_s16(i)=abs(j(i)./v1);
end
end
%Refracted Wave 1 Travel Time
for i=1:n;
if i<750
t1_s16(i)=abs((2*z1*sqrt(v2^2-v1^2)/(v1*v2))+(-j(i)./v2));
else
t1_s16(i)=abs((2*z1*sqrt(v2^2-v1^2)/(v1*v2))+(j(i)./v2));
end
end
%Refracted Wave 2 Travel Time
for i=1:n;
if i<750
t2_s16(i)=abs((2*z1*sqrt(v3^2-v1^2)/(v1*v3))+(2*z2*sqrt(v3^2-v2^2)/(v2*v3))+ (-
else
t2_s16(i)=abs((2*z1*sqrt(v3^2-v1^2)/(v1*v3))+(2*z2*sqrt(v3^2-v2^2)/(v2*v3))+ (j
end
end
figure(4)
plot(offset,t_direct_s16,'r') %plotting Direct Wave travel time
hold on
plot(offset,t1_s16,'b--') %plotting Refracted Wave 1 travel time
plot(offset,t2_s16,'g--') %plotting Refracted Wave 2 travel time
plot(offset,t_ref_s16,'y') %plotting Reflect Wave travel time
Warning: Imaginary parts of complex X and/or Y arguments ignored
title('Travel Time Curve shot in 750m')
legend('direct wave','Refracted Wave 1','Refracted Wave 2','Reflect wave')
ylabel('Time (s)')
xlabel('offset (m)')
6
Travel Time Shot 21 (x=1000m)
x_shot21 = -1000:0
x_shot21 = 1×1001
-1000 -999 -998 -997 -996 -995
%Reflect wave travel-time
t_ref_s21=(sqrt((4*(z1.^2))+(x_shot21.^2)))/v1;
%Direct Wave travel time
t_direct_s21=x_shot21./v1;
%Refracted Wave 1 travel-time
t1_s21=(2*z1*sqrt(v2^2-v1^2)/(v1*v2))+x_shot21./v2;
%Refracted Wave 2 travel-time
t2_s21=(2*z1*sqrt(v3^2-v1^2)/(v1*v3))+(2*z2*sqrt(v3^2-v2^2)/(v2*v3))+ x_shot21./v3;
figure(5)
plot(offset,t_direct_s21,'r') %plotting Direct Wave travel time
hold on
plot(offset,t1_s21,'b--') %plotting Refracted Wave 1 travel time
plot(offset,t2_s21,'g--') %plotting Refracted Wave 2 travel time
plot(offset,t_ref_s21,'y') %plotting Reflect Wave travel time
title('Travel Time Curve shot in 1000m')
legend('direct wave','Refracted Wave 1','Refracted Wave 2','Reflect wave')
ylabel('Time (s)')
xlabel('offset (m)')
7
8