Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 7

Sintaks MatLab mencari nilai zero upcrossing.

data=xlsread('Wave elevation_wt_ meter_ Meulaboh_Feb4.xlsx','RawData Wave','C4:DP409');


%Mengambil data
%fid=fopen(fname,'r');
%data1=fscanf(fid,'%g %g',[2 inf]);
%fclose(fid);
%data=data1';
time(:,1)=data(:,1);
xrd(:,1)=data(:,4);
%Melakukan zero trend
mean1=mean(xrd);
xr=detrend(xrd);
%time1=0:0.1:10;
%time=time1';
%y=2*sin(2*pi/1*time)+10*cos(2*pi/3*time)+8*sin(2*pi/6*time)+5*sin(2*pi/9*time+2)+10*co
s(2*pi/2*time);
%Membuat grafik E.M.A
ema=[xr,time];
plot(time,xr,'r-o');
grid on;
%Perhitungan T upcrossing
a=find(ema(1:end-1,1).*ema(2:end,1)<=0);
a1=length(a);
for i=1:a1
z1=a(i);
z2=a(i)+1;
if ema(z1,1)>=ema(z2,1)
a(i)=0;
end
end
a(a==0)=[];
a2=length(a);
for i=1:a2
t(i,1)=ema(a(i),2)-(ema(a(i),1)*(ema(a(i)+1,2)-ema(a(i),2))/(ema(a(i)+1,1)ema(a(i),1)));
end
t1=length(t);
for i=1:(t1-1)
T(i,1)=t(i+1,1)-t(i,1);
end
%Indexing N.max upcrossing
ema1=ema(a(1):a(a2)+1,1);
b=find(ema1(1:end-1,1)-(ema1(2:end,1))<=0);
b1=length(b);
lema=length(ema1);
for i=1:b1
y1=b(i)+1;
y2=b(i)+2;
if b(i)>lema-2
b(i)=0;
break
end
if ema1(y1,1)<=ema1(y2,1)
b(i)=0;
end
end
b(b==0)=[];

%Internal indexing untuk N.max apabila ada 2 bukit 1 gelombang


abaru=a-(a(1)-1);
abaru1=length(abaru);
for g=1:(abaru1-1)
cek=[];
h1=abaru(g);
h2=abaru(g+1);
cek=find(h1<=b&b<h2);
cek1=length(cek);
if cek1>1;
test=b(cek)+1;
nema=ema1(test,1);
nema1=find(nema==max(nema));
cek(nema1)=[];
b(cek)=[];
end
end
%Mencari nilai N.max Upcrossing
b2=length(b);
for i=1:b2
n1=ema1(b(i));
n2=ema1(b(i)+1);
n3=ema1(b(i)+2);
A=0.5*(n1-2*n2+n3);
B=0.5*(n3-n1);
C=n2;
nmax(i,1)=C-(B^2/4*A);
end
%Indexing N.min Upcrossing
c=find(ema1(1:end-1,1)-ema1(2:end,1)>=0);
c1=length(c);
for i=1:c1
x1=c(i)+1;
x2=c(i)+2;
if c(i)>lema-1
c(i)=0;
break
end
if ema1(x1,1)>=ema1(x2,1)
c(i)=0;
end
end
c(c==0)=[];
%Internal indexing untuk nilai N.min (apabila ada 2 lembah 1 gelombang)
for g=1:(abaru1-1)
cekmin=[];
k1=abaru(g);
k2=abaru(g+1);
cekmin=find(k1<c&c<=k2);
cekmin1=length(cekmin);
if cekmin1>1;
test2=c(cekmin)+1;
nema2=ema1(test2,1);
nema3=find(nema2==min(nema2));
cekmin(nema3)=[];
c(cekmin)=[];
end
end
%Mencari nilai N.min Upcrossing
c2=length(c);
for i=1:c2
m1=ema1(c(i));
m2=ema1(c(i)+1);
m3=ema1(c(i)+2);

A1=0.5*(m1-2*m2+m3);
B1=0.5*(m3-m1);
C1=m2;
nmin(i,1)=C1-(B1^2/4*A1);
end
%Perhitungan Tinggi Gelombang Upcrossing
H=nmax-nmin;
%Perhitungan Panjang Gelombang
%L0=9.81.*(T.^2)/(2*pi);
%y=2*pi*kd./L0;
%cgh=(y+(1+0.6522.*y+0.4622.*(y.^2)+0.0864.*(y.^4)+0.0675.*(y.^5)).^-1).^-1;
%celerity=(cgh.*(9.81*kd)).^0.5;
%L=celerity.*T;
%Menggabungkan H dan T
hasil=[H,T];
%Perhitungan Hs
H1=sort(H,'descend');
H2=round(length(H1)/3);
Hs=mean(H1(1:H2));
Tm=mean(T);
%Perhitungan statistik
Hmean=mean(hasil);
Hmax=max(hasil);
Hmin=min(hasil);
disp(Hmax);
disp(Hmean);
disp(Hmin);
%Cetak data
hasil1=hasil;
xlswrite('Wave elevation_wt_ meter_ Meulaboh_Feb4.xlsx',hasil1,'blabla','E4');

Hasil zero upcrossing menggunakan MatLab. Diambil contoh untuk pukul 18.00, 19.00, dan 20.00
18:00
H(m)
T(s)
0.940862 6.308314
0.378853 7.359773
0.523995 4.873843
0.7844 5.101418
0.794405 5.440399
0.181265 3.537325
0.350592 4.959471
0.341129 4.928333
0.236861 4.129905
0.618426 6.096568
0.523557 6.222812
0.266593 4.642769
0.397126 5.175642
0.488257 6.410396
0.310656 6.497789
0.195693 4.506432
0.269625 5.941523
0.488924 7.841989
0.768627
5.5816
0.437895 4.554019
0.607897 4.934657
1.033042 5.593319
0.549293 4.577115
0.505002 4.467918
0.937242
5.3919
0.448068 4.184354
0.655403 5.029794
0.920458 6.776461

19:00
H(m)
T(s)
0.088679 2.918954
0.286918 5.004933
0.220138
7.18599
0.472121 5.696097
0.54122
5.21724
0.402637 6.269953
0.419477
7.466
0.649257 6.813519
0.50554 5.902577
0.301876 6.226556
0.617644 5.866148
0.467522 5.018303
0.39352 5.171552
0.610959 6.074308
0.620241 5.318723
0.497439
5.44851
0.552043 7.778069
0.82026 5.195083
0.575017
4.477
0.816443 5.751814
0.439736 7.486297
0.303618 5.399287
0.106298 3.735158
0.455177 6.520483
0.835445
6.29158
0.593782 7.920907
0.834944 5.816313
0.920458 -4.16727

20:00
H(m)
T(s)
0.309963
3.80566
0.564243 4.819114
0.454243 5.002141
0.169152 3.636097
0.435724 6.264553
0.561228 6.378395
0.43394 4.926805
0.340744 4.780062
0.345233 6.012958
0.360034 6.202481
0.243644 4.360016
0.413443 4.868712
0.720462
5.61875
0.682129 6.111183
0.71034 5.836515
0.506035 5.346951
0.170343 7.090808
0.206934 5.423094
0.370424 6.395999
0.444525 6.633229
0.324744 5.421634
0.124343 4.875983
0.202623 6.737731
0.165043 4.645342
0.172443
4.6649
0.200476 7.809034
0.305034 5.510006
0.194534 6.260853
0.333743 5.569909

Setelah mendapatkan hasil menggunakan Matlab, kita ingin menguji apakah sintaks Matlab kita sama dengan perhitungan manual. Maka dibuktikan melalui pengujian
Elevasi muka air pada pukul 20.00

elevasi muka air pukul 20.00


0.4

0.3

0.2

elevasi muka air (m)

0.1

20

40

60

80

-0.1

-0.2

-0.3

-0.4

-0.5

waktu (s)

100

120

140

160

KL 5202 GELOMBANG ACAK SEMESTER II 2011/2012

TUGAS 1
DOSEN :
Prof. Hang Tuah Salim

KENINDRA PRANIDYA
15508018

PROGRAM STUDI MAGISTER TEKNIK KELAUTAN


FAKULTAS TEKNIK SIPIL DAN LINGKUNGAN
INSTITUT TEKNOLOGI BANDUNG
2012

You might also like