PENGEMBANGAN ALGORITMA UNTUK ESTIMASI
POSISI PADA SISTEM NAVIGASI DAN
TRAYEKTORI WAHANA NIR AWAK BAWAH AIR
ITS AUV 01
Oleh :
Gustiyadi Fathur R.
(2107 100 109)
Dosen Pembimbing:
Hendro Nurhadi, Dipl.-Ing., Ph.D (19751120 200212 1 002)
Subchan, Ssi., MSc., PhD
(19710513 199702 1 001)
Sidang Tugas Akhir
Contents
BAB 1
•
PENDAHULUAN
BAB 2
•
TINJAUAN PUSTAKA
BAB 3
•
METODOLOGI
BAB 4
•
ANALISA DAN PEMBAHASAN
BAB 5
•
KESIMPULAN DAN SARAN
BAB 1
PENDAHULUAN
RUMUSAN DAN
BATASAN
MASALAH
LATAR BELAKANG
Unmanned
Underwater
Vehicle
AUV
ROV
Perancangan algoritma
estimasi posisi pada
sistem navigasi & trayektori
Metode
Ensemble Kalman Filter
(EnKF)
Aplikasi di beberapa
sektor bidang
(sains, lingkungan,
militer dll)
Gangguan internal
dan eksternal
RUMUSAN DAN BATASAN MASALAH
• Rumusan Masalah
Bagaimana mengimplementasi EnKF untuk mengestimasi posisi
AUV dengan trayektori yang sudah ditentukan ?
• Batasan Masalah
a. Sistem bersifat time invariant
b. AUV memiliki GPS
c. Trayektori sudah ditentukan dan rintangan diabaikan
d. Kecepatan AUV maksimal 4 knot (2 m/s)
e. Kedalaman maksimal 50 m
f. Dimensi AUV ialah panjang 1500 mm dan diameter 200 mm
g. Pemodelan gerak AUV diproyeksikan pada 2 dimensi
h. Simulasi hanya dilakukan untuk gerak translasi saja
i. Simulasi dilakukan dengan bantuan program Matlab
TUJUAN DAN MANFAAT
• TUJUAN :
Mendapatkan hasil estimasi posisi AUV dengan trayektori
yang telah ditentukan dan menggunakan metode Ensemble
Kalman Filter (EnKF).
• MANFAAT :
• Memberikan gambaran bagaimana EnKF mengestimasi
posisi AUV sesuai trayektori.
• Sebagai penunjang penelitian khusus pada bidang robotika.
• Dapat diterapkan dalam teknologi yang menunjang
pertahanan dan keamanan NKRI.
• Sebagai
tambahan
kepustakaan
untuk
penelitian
selanjutnya.
BAB 2
Hasil Studi Peneliti Terdahulu
Dasar Teori
Pengembangan Algoritma
Tinjauan
Pustaka
Hasil Studi Peneliti Terdahulu
• Penelitian mengenai estimasi lintasan AUV telah dilakukan
oleh Risa Fitria [4]. Metode estimasi yang digunakan adalah
Ensemble Kalman Filter (EnKF) dengan persamaan sistem
dinamika kapal selam berdasarkan persamaan Morrison [6].
• Penelitian yang dilakukan oleh Achmad Ichwan [3] adalah
mengestimasi posisi kapal selam dengan mengimplementasikan
metode Extended Kalman Filter (EKF) pada persamaan sistem
dinamika berdasarkan persamaan Morrison [6].
DASAR TEORI
Kinematika
AUV
AlgoritmaRigid Body
Hydro-dynamics
Desain ITS AUV
Kinematika AUV
Posisi dan Sudut Euler
Gaya dan Momen
T T T]
,
[
1
2
Tz
y
x
,
,
]
[
1
T]
,
,
[
2
Kecepatan linier dan Anguler
T T T
v
v
,
]
[
1 2
Tw
v
u
,
,
]
[
1
Tr
q
p
,
,
]
[
2
T T T]
,
[
1
2
TZ
Y
X
,
,
]
[
1
TN
M
K
,
,
]
[
1
cos sin 0 sin cos 0 0 0 1 , x C cos 0 sin 0 1 0 sin 0 cos , y C 1 0 0 0 cos sin 0 sin cos , z C
Koordinat Rotasi pada EFF
T x T y T z
C
C
C
J
1(
2)
, , ,
cos cos sin cos sin cos sin sin sin cos cos cos sin sin sin cos sin cos sin cos sin sin sin sin cos cos sin cos cos ) ( 2 1 JKecepatan Linier
θ θ X1 X2 Z2 Z1 ψ ψ Y2 X3 Y3 X2 Z1 Z0 Y1 Y0 ϕ ϕRigid Body Equation AUV
1. Surge 2. Sway 3. Heave 4. Roll 5. Pitch 6. Yaw
u
vr
wq
x
q
r
y
pq
r
z
pr
q
X
m
G(
2
2)
G(
)
G(
)
v
wp
ur
y
r
pr
z
qr
p
x
qp
r
Y
m
G(
2
2)
G(
)
G(
)
w
uq
vp
z
p
qp
x
rp
q
y
rq
p
Z
m
G(
2
2)
G(
)
G(
)
y w uq vp z v wp ur
K m I q pr I q r I pq r qr I I p Ix ( z y) ( ) xz ( 2 2) yz ( ) xy G( ) G( )
z u vr wq x w uq vp
M m I r qp I r p I qr p rp I I q Iy ( x z) ( ) xy ( 2 2) zx ( ) yz G( ) G( )
x v wp ur y u vr wq
N m I p rq I p q I rp q pq I I r Iz ( y x) ( ) yz ( ) xy ( ) zx G( ) G( ) 2 2 Hidrodinamika AUV
Gaya dan Momen Luar (
)
hidrostatis T G
[
0
0
W ]
G l GJ
11(
2)
T B
[
0
0
B]
B l BJ
11(
2)
Gravitasi Bouyancy CG B cB CG B W CB W B W CB CG B W B WT added mass
2
Bidang
Sama
drag x y δr βe u v V fluida u W fin x z δ s βe V fluida re r re
se
s
se
lift l AS s RA
l
planform
wingspan
A
2
R LA
C
2
e LAv
C
L
2
L
L
C
C
.
thrustD
ω
Gaya dan Momen Thruster
p p T t p p T t
J
K
D
J
K
D
T
)
(
2
1
)
(
2
1
5 4
D
V
J
P A
u
V
A
(
1
)
n in i ti ti x n i i xxT
r
M
T
F
1 1 3 1 1 3
dimanaPersamaan Umum
Total Gaya dan Momen
• Translasi sepanjang arah x :
• Translasi sepanjang arah y :
• Rotasi sepanjang arah x :
• Rotasi sepanjang arah y :
Ensemble Kalman Filter (EnKF)
Merupakan salah satu metode dalam asimilasi data yang telah
banyak digunakan untuk mengestimasi berbagai persoalan bentuk
model sistem nonlinear, dan mampu menyelesaikan model sistem
dinamik nonlinear dan ruang keadaan (state space) yang besar.
Ada tiga tahapan :
Tahap inisialisasi
Tahap prediksi (time update step)
Algoritma Ensemble Kalman Filter (EnKF)
Inisialisasi
Tentukan nilai awal
Tahap Prediksi
Estimasi
Kovarian Error
Tahap Koreksi
Kalman Gain
Estimasi
Kovarian Error
]
[
0,1 0,2 0,3 0, , 0ix
x
x
x
Nx
N i ix
N
x
1 , 0 0ˆ
1
ˆ
i k k k kf
x
u
w
x
ˆ
(
ˆ
1,
1)
, T k i k N i k i k k x x x x N P (ˆ ˆ )(ˆ ˆ ) 1 1 , 1 ,
N i i k k x N x 1 , ˆ 1 ˆ i k k i kz
v
z
,
, 1)
(
T k k T k kP
H
HP
H
R
K
k k kI
K
H
P
P
[
]
) ˆ ( ˆ , , , , k i k ki k i i k x K z Hx xBAB 3
METODOLOGI
Penelitian
FLOWCHART PENELITIAN
Kajian Pustaka Spesifikasi Dimensi dan Dinamika Gerak
AUV
Menentukan Desain AUV dan Trayektori Mendapatkan Persamaan Gerak AUV pada 6 DOF
RMS Error 0 ~ 1 ?
Menganalisa Hasil Simulasi
Menarik Kesimpulan dari Hasil Simulasi
T
Y START
BAB 4
ANALISA & PEMBAHASAN
4.1
Diskritisasi
Model AUV
4.2
Penambahan
Faktor
Stokastik
4.3
Implementasi
Model ITS
AUV pada
Algoritma
EnKF
4.4
Simulasi dan
Analisa
Diskritisasi Model AUV
Metode Pendiskritan Beda Hingga Maju
Translasi sepanjang arah y :
Penambahan Faktor Stokastik
Model Stokastik :
f
ungsi nonlinear
dimana
w
kialah noise sistem Q
k(program)
v
kialah noise pengukuran R
k(program)
Implementasi Model ITS AUV pada Algoritma EnKF
Mendefinisikan x pada fungsi x
k+1:
penentuan nilai awal untuk masing-masing posisi (nol)
• Model Sistem
•
Model Pengukuran
satu jenis data ukur yaitu komponen u
satu jenis data ukur yaitu komponen v
satu jenis data ukur yaitu komponen w
dua jenis data ukur yaitu komponen u dan v
dua jenis data ukur yaitu komponen u dan w
dua jenis data ukur yaitu komponen v dan w
Sebagai contoh : H = 2 sampel, yaitu v dan w
• Inisialisasi
Pembangkitan sejumlah ensemble awal + noise-nya :
• Tahap Prediksi
Menghitung nilai prediksi awal + noise-nya :
• Tahap Koreksi
Menghitung data pengukuran :
Menghitung Kalman Gain :
Perhitungan estimasi koreksi :
Perhitungan nilai mean estimasi koreksi :
Simulasi dan Analisa
• RMSE Gabungan
BAB 5
5.1
Kesimpulan
5.2
Saran
Kesimpulan
• Metode Ensemble Kalman Filter (EnKF) yang digunakan telah berhasil diimplementasikan untuk sistem navigasi pada bagian estimasi posisi pada gerak translasi yaitu surging, swaying, heaving. Hal ini terlihat dari besarnya RMSE yang relatif kecil pada tiap statenya.
• Hasil terbaik yang didapatkan dari hasil simulasi dengan menggunakan empat parameter data pengukuran dan 1000x iterasi adalah :
a. Ensemble 100 simulasi 1 RMSE surging = 0,013127; swaying = 0,09812; dan heaving = 0,10039.
b. Ensemble 200 simulasi 3 RMSE surging = 0,01336; swaying = 0,09814; dan heaving = 0,10075.
c. Ensemble 300 simulasi 6 RMSE surging = 0,01342; swaying = 0,09449; dan heaving = 0,09739.
d. Ensemble 400 simulasi 8 RMSE surging = 0,013137; swaying = 0,098465; dan heaving = 0,098871.
• Dari hasil nilai RMSE rata-rata pada tabel 4.9 teori hubungan antara jumlah ensemble yang digunakan terhadap nilai RMSE yang diperoleh seharusnya berbanding terbalik dimana semakin bertambah jumlah ensemble-nya maka semakin kecil nilai RMSE yang diperoleh, tidak terbukti. Kemungkinan distribusi normal pada noise dan tidak adanya sistem kontrol.
Saran
•
Ketika menurunkan persamaan dinamika AUV, diharapkan untuk menghitung
semua komponen-komponen gayanya sehingga dalam penyesuaian parameter
(penerapan asumsi yang harus ditiadakan) pada saat implementasi suatu metode
menghasilkan kondisi yang sebenarnya.
•
Metode EnKF juga dapat diterapkan untuk estimasi posisi ketika AUV melakukan
gerak rotasi, yaitu pitching, yawing, dan rolling.
DAFTAR PUSTAKA
• Budiyanto,D. 2001. Sistem Permesinan Kapal Selam
• Evensen, G. 2003. The ensemble Kalman filter: theoretical formulation and practical implementation, Ocean Dynamics, 53: 343-3
• Ichwan, A. 2010. Estimasi posisi Kapal Selam Menggunakan metode Extended Kalman Filter. Tugas Akhir, Institut Teknologi Sepuluh Nopember, Surabaya
• Fitria, Risa. 2011. Implementasi Ensemble Kalman Filter pada Estimasi Kecepatan Kapal Selam. Tugas Akhir, Institut Teknologi Sepuluh Nopember, Surabaya
• Lewis, F.L. 1986. Optimal Estimation with an Introduction to Stochastic Control Theory, John Wiley & Sons., New York
• Purnomo, Kosala Dwidja. 2008. Aplikasi Metode Ensemble Kalman Filter pada Model Populasi Plankton. Institut Teknologi Sepuluh Nopember: Surabaya
• Jeffi, Trio. 2011. Pengembangan Sistem Kendali Robust AUV dengan Metode Sliding-PID. Institut Teknologi Sepuluh Nopember: Surabaya
• Walchko, K. J., Novick, David, and Nechyba, M. C. 2003. Development of a Sliding Mode Control Sistem with
Extended Kalman Filter Estimation for Subjugator, University of Florida Gainesville, FL, 32611-6200
• Nahon, Meyer. 1998. A Simplified Dynamics Model for Autonomous Underwater Vehicle. University of Victoria: Canada
• Jwo, Dah-Jing dan Ta-Shun Cho.2010. Critical remarks on the linearised and extended Kalman filters with
geodetic navigation examples. Journal, measurement XXX (1-13). Taiwan.
• Luknanto, Djoko. Hidraulika Komputasi, Metoda Beda Hingga. Jurusan Teknik sipil. Universitas Gadjah Mada.
• Nisa, Fitri Parsa. 2009. Sistem Pengendali Gerak Pada Kapal Selam Menggunakan Metode Sliding Mode
Control. Tugas Akhir. Institut Teknologi Sepuluh Nopember, Surabaya
• Yang, Chen. 2007. Modular Modeling and Control for Autonomous Underwater Vehicle (AUV), Departement of Mechanical Engineering National University of Singapore. Singapore
• T. Perez, Ø.N. Smogeli, T.I. Fossen and A.J. Sørensen. 2005. An Overview of Marine Systems Simulator (MSS):
A Simulink Toolbox for Narine Control System. SIMS2005-Scandinavian Conference on Simulation and
Modelling.
• T. I., Fossen. 2005. A Nonlinear Unified State-space Model for Ship Maneuvering and Control in A Seaway. Journal of Bifurcation and Chaos.
• Louis Andrew Gonzalez. 2004. Design, Modelling and Control of an Autonomous Underwater Vehicle, mobile Robotics Laboratory, center for Intelligent Information Processing Systems, School of Electrical, Electronic and Computer engineering, The University of Western Australia.
• Lewis, M. J, dkk. 2006. Dynamic Data Assimilation: A Least Squares Approach. University Press, Cambridge.
• Setiawan, Agus. 2012. Rancang Bangun Prototype Kapal Selam Tanpa Awak (ITS AUV-01) dengan Aplikasi
LAMPIRAN
PROGRAM SIMULASI M.FILE
clear all; clc; clf;
% Data Awal:
m=19.8; %vehicle mass in (kg)
g=9.81; %gravitaty acceleration in (m/s^2) rho=1025; %fluid density in (kg/m^3)
dt=0.1; xg=0.062; yg=-0.0013; zg=0.05; xb=0.062; yb=0; zb= 0;
volume=0.00219444; %vehicle volum in (m^3) Dprop=0.01; %propeller diameter in (m)
Kt=0.2265; %thrust coefficient
alpha1=0.4; %wake fraction number (0.1 ~ 0.4) omegap=2400; %rotating rate propeller in (rpm) css=0.07; %axial drag
Ap=661873.992/1000000; %top view projected area in (m^2)
Af=(0.5*4*pi*0.1^2)+(4*0.18*0.01); %front view projected area in (m^2) cdc=0.01; %drag koefisien silinder [S.F. Hoerner]
Dv=0.2; %dimeter vehivle in (m) l=1.5; %vehicle length in (m)
alpha2=0.03794; %empirical parameter (interpolasi) Dh=0.2; %hull diameter in (m)
t=0.571; %fin taper ratio
afin=0.25; %max fin height above the vehicle centerline in (m) rmean=0.35; %mean fin height above the vehicle centerline in (m)
xfin=0.638; %momen arm wrt the origin~fin cyb=0.003; %6.7<=(l/Dh)<=10
cydb=(l/Dh)*cyb;
dr=(30)*pi/180; %vertical fin angles referenced to the vehicle hull ds=(30)*pi/180; %horizontal fin angles referenced to the vehicle hull Ix=0.08583; Iy=1.11575; Iz=1.11575; xn0=0.5; %(m) xm0=0.4; %(m) xt0=0.4; %(m) Sfin=0.00825; %(m^2) Sn1=5.141; Sm1=1; St1=0; Sn2=338.119; Sm2=1; St2=0; Sn3=23010.065; Sm3=1; St3=0;
Sn4=1801752.357; Sm4=1; St4=0; Sn5=-1315.546; Sm5=1; St5=2.7691e+33; Sn6=-27363.569; Sm6=1; St6=1.884012468e+37; Sn7=-2479376.013; Sm7=1; St7=5.497680779e+39; u0=0; v0=0; w0=0;
uawal=2; %(m/s = uawal*2 knot) [u dlm persamaan Va] I=1000; %jumlah iterasi
W=m*g; B=rho*g*volume; Va=(1-alpha1)*uawal; cd=(css*pi*Ap*(l+((60*(Dv/l)^3))+((0.25*Dv)/l)))/Af; J=Va/(omegap*Dprop); cdf=0.1+0.7*t; clalpha=1/((1/(2*pi*0.3))+(1/(pi*0.5)));
for i=1:I/4 %sudut pitch di titik 1-250 pitch1(1,i)=(-2)*pi/180;
end
for i=1:I/4 %sudut pitch di titik 251-500 pitch2(1,i)=(0)*pi/180;
end
for i=1:I/4 %sudut pitch di titik 501-750 pitch3(1,i)=(0)*pi/180;
for i=1:I/4 %sudut pitch di titik 751-1000 pitch4(1,i)=(0)*pi/180; end pitch=[pitch1,pitch2,pitch3,pitch4]; for k=1:i sdtpit1=sin(pitch(k)); sdtpit2=cos(pitch(k)); end
for j=1:I/2 %sudut roll di titik 1-50 roll1(1,j)=(0)*pi/180;
end
for j=1:I/2 %sudut roll di titik 51-100 roll2(1,j)=(0)*pi/180; end roll=[roll1, roll2]; for o=1:j sdtrol1=sin(roll(o)); sdtrol2=cos(roll(o)); end
% Gaya Hidrostatis: Xres=(B-W)*sdtpit1;
Yres=(W-B)*sdtpit2*sdtrol1; Zres=(W-B)*sdtpit2*sdtrol2;
% Axial~Crossflow~Rolling Drag Coefficient: Xuu=-(0.5*rho*cd*Af); Yvv=(-rho*cdc*(Sn1+Sm1+St1))-(rho*Sfin*cdf); Zww=Yvv; Yrr=(-rho*cdc*(Sn3+Sm3+St3))-... (2*rho*cdc*((xn0*Sn2)+(xm0*Sm2)+(xt0*St2)))-... (rho*cdc*((xn0^2*Sn1)+(xm0^2*Sm1)+(xt0^2*St1)))-... (rho*Sfin*cdf*xfin*abs(xfin)); Zqq=-Yrr; % Body Lift: Yuvl=-(0.5*rho*Dh^2*cydb); Zuwl=Yuvl;
%Axial~Crossflow~Rolling Added Mass Coefficient: Xudot=-(alpha2*rho*pi*l*Dh^2)/6; Yvdot=-(Sn5+Sm5+St5); Zwdot=Yvdot; Mwdot=(Sn6+Sm6+St6)+((xn0*Sn5)+(xm0*Sm5)+(xt0*St5)); Zqdot=Mwdot; Nvdot=-Mwdot; Yrdot=Nvdot; % fin Lift: Yuudr=rho*clalpha*Sfin; Yuvf=-Yuudr; Zuuds=-Yuudr; Zuwf=-Zuuds;
% Propeller Force & Moment:
Xprop=0.5*rho*(Dprop^4)*Kt*J*omegap; Kprop=0.5*rho*(Dprop^5)*Kt*J*omegap;
u(1)=u0; v(1)=v0; w(1)=w0; Q1=0.001*pi/180; Q2=0.001; Q3=0.001; Q11=[Q1 0 0;0 Q2 0;0 0 Q3]; R1=0.01*pi/180; R2=0.01; R3=0.01; R11=[R1 0 0;0 R2 0;0 0 R3];
H1=eye(3);
% H1=[1 0 0]; %u sebagai data pengukuran % H1=[0 1 0]; %v sebagai data pengukuran % H1=[0 0 1]; %w sebagai data pengukuran
% H1=[1 0 0;0 1 0]; %u dan v sebagai data pengukuran % H1=[1 0 0;0 0 1]; %u dan w sebagai data pengukuran %H1=[0 1 0;0 0 1]; %v dan w sebagai data pengukuran
x001=[u(1) v(1) w(1)]';
% Membangkitkan Ensemble Awal for ens=1:N u2d=x001(1,1)+normrnd(0,sqrt(Q1),1,1); v2d=x001(2,1)+normrnd(0,sqrt(Q2),1,1); w2d=x001(3,1)+normrnd(0,sqrt(Q3),1,1); x01(:,ens)=[u2d v2d w2d]'; end
x01mean=mean(x01,2); xpre01=x01mean; xcor1=x01mean; rek1(1,1)=x001(1,1); rek1(2,1)=x001(2,1); rek1(3,1)=x001(3,1); Rekam1(1,1)=xcor1(1,1); Rekam1(2,1)=xcor1(2,1); Rekam1(3,1)=xcor1(3,1); u2(1)=x01mean(1,1); v2(1)=x01mean(2,1); w2(1)=x01mean(3,1);
for k=1:I % Sistem Real : Uu(k)=((Xres)+(Xuu*u(k)*abs(u(k)))+(Xprop))/(m-Xudot); Vv(k)=((Yres)+(Yvv*v(k)*abs(v(k)))+((Yuvl+Yuvf)*u(k)*v(k))+... (Yuudr*u(k)^2*dr))/(m-Yvdot); Ww(k)=((Zres)+(Zww*w(k)*abs(w(k)))+((Zuwl+Zuwf)*u(k)*w(k))+... (Zuuds*u(k)^2*ds))/(m-Zwdot); u(k+1)=Uu(k)*dt+u(k)+normrnd(0,sqrt(Q1),1,1); v(k+1)=Vv(k)*dt+v(k)+normrnd(0,sqrt(Q2),1,1); w(k+1)=Ww(k)*dt+w(k)+normrnd(0,sqrt(Q3),1,1); xreal1=[u(k+1) v(k+1) w(k+1)]'; rek1(1,k+1)=u(k+1); rek1(2,k+1)=v(k+1); rek1(3,k+1)=w(k+1);
z1=H1*xreal1+sqrt(R11)*randn(3,1); % untuk H identitas
% z1 = H1*xreal1+sqrt(R1)*randn(1,1); % untuk H u [1 0 0] % z1 = H1*xreal1+sqrt(R2)*randn(1,1); % untuk H v [0 1 0] % z1 = H1*xreal1+sqrt(R3)*randn(1,1); % untuk H w [0 0 1]
% z1 = H1*xreal1+sqrt([R1 0;0 R2])*randn(2,1); % untuk H u dan v [1 0 0;0 1 0] % z1 = H1*xreal1+sqrt([R1 0;0 R3])*randn(2,1); % untuk H u dan w [1 0 0;0 0 1] %z1 = H1*xreal1+sqrt([R2 0;0 R3])*randn(2,1); % untuk H v dan w [0 1 0;0 0 1]
%---> TAHAP PREDIKSI % Estimasi Ensemble Uu2(k)=((Xres)+(Xuu*u(k)*abs(u(k)))+(Xprop))/(m-Xudot); Vv2(k)=((Yres)+(Yvv*v(k)*abs(v(k)))+((Yuvl+Yuvf)*u(k)*v(k))+... (Yuudr*u(k)^2*dr))/(m-Yvdot); Ww2(k)=((Zres)+(Zww*w(k)*abs(w(k)))+((Zuwl+Zuwf)*u(k)*w(k))+... (Zuuds*u(k)^2*ds))/(m-Zwdot);
u2(k+1)=Uu2(k)*dt+u2(k)+normrnd(0,sqrt(Q1),1,1); v2(k+1)=Vv2(k)*dt+v2(k)+normrnd(0,sqrt(Q2),1,1); w2(k+1)=Ww2(k)*dt+w2(k)+normrnd(0,sqrt(Q3),1,1); for ens=1:N u2d_new=u2(k+1)+normrnd(0,sqrt(Q1),1,1); v2d_new=v2(k+1)+normrnd(0,sqrt(Q2),1,1); w2d_new=w2(k+1)+normrnd(0,sqrt(Q3),1,1);
xpre1(:,ens)=[u2d_new v2d_new w2d_new]'; end
% Mean (rata-rata) Ensemble xpre_rt1=mean(xpre1,2);
% Error Ensemble for ens=1:N
xpre_rt2(:,ens)=xpre_rt1; end
ek1=xpre1-xpre_rt2;
% Kovarian Error Ensemble C7=ek1*ek1';
Ppre1=(1/(N-1))*C7;
%----> TAHAP KOREKSI for ens=1:N
z1_new(:,ens) = z1+sqrt(R11)*randn(3,1); % untuk H identitas % z1_new(:,ens) = z1+sqrt(R1)*randn(1,1); % untuk H u [1 0 0] % z1_new(:,ens) = z1+sqrt(R2)*randn(1,1); % untuk H v [0 1 0] % z1_new(:,ens) = z1+sqrt(R3)*randn(1,1); % untuk H w [0 0 1]
% z1_new(:,ens) = z1+sqrt([R1 0;0 R2])*randn(2,1); % untuk H u dan v [1 0 0;0 1 0] % z1_new(:,ens) = z1+sqrt([R1 0;0 R3])*randn(2,1); % untuk H u dan w [1 0 0;0 0 1] %z1_new(:,ens) = z1+sqrt([R2 0;0 R3])*randn(2,1); % untuk H v dan w [0 1 0;0 0 1] end
% Kalman Gain
K1=Ppre1*H1'*inv(H1*Ppre1*H1'+R11); % untuk H identitas % K1=Ppre1*H1'*inv(H1*Ppre1*H1'+R1); % untuk H u [1 0 0] % K1=Ppre1*H1'*inv(H1*Ppre1*H1'+R2); % untuk H v [0 1 0] % K1=Ppre1*H1'*inv(H1*Ppre1*H1'+R3); % untuk H w [0 0 1]
% K1=Ppre1*H1'*inv(H1*Ppre1*H1'+[R1 0;0 R2]); % untuk H u dan v [1 0 0;0 1 0] % K1=Ppre1*H1'*inv(H1*Ppre1*H1'+[R1 0;0 R3]); % untuk H u dan w [1 0 0;0 0 1] %K1=Ppre1*H1'*inv(H1*Ppre1*H1'+[R2 0;0 R3]); % untuk H v dan w [0 1 0;0 0 1]
% Menghitung Estimasi Ensemble
xcor1 = xpre1+K1*(z1_new-H1*xpre1); % Menghitung Estimasi xcor1 = mean(xcor1,2); Rekam1(1,k+1) = xcor1(1); Rekam1(2,k+1) = xcor1(2); Rekam1(3,k+1) = xcor1(3);
pcor1 = [eye(3)-K1*H1]*Ppre1; % Kovarian Error
u2(k+1) = xcor1(1); v2(k+1) = xcor1(2); w2(k+1) = xcor1(3);
% estimasi RMSE(Root Mean Square Error/Rata-rata Error Akar Kuadrat) erru=abs(rek1(1,:)-Rekam1(1,:)); errou(k)=(erru(k))^2; erroru=sqrt(mean(errou,2)); errv=abs(rek1(2,:)-Rekam1(2,:)); errov(k)=(errv(k))^2; errorv=sqrt(mean(errov,2)); errw=abs(rek1(3,:)-Rekam1(3,:)); errow(k)=(errw(k))^2; errorw=sqrt(mean(errow,2)); end
disp(['RMS Error pada u = ',num2str(erroru)]); disp(['RMS Error pada v = ',num2str(errorv)]); disp(['RMS Error pada w = ',num2str(errorw)]);
%Plot hasil simulasi
%Proyeksi Gerak antara uv, uw dan vw figure (1)
% subplot(1,3,1)
plot((rek1(1,:)),rek1(2,:),'-r',Rekam1(1,:),Rekam1(2,:),'-b') grid on;
title('Proyeksi Gerak AUV terhadap Bidang X-Y'); xlabel('X (m)');
ylabel('Y (m)'); legend('Reference','EnKF');
figure(2)
% subplot(1,3,2)
plot((rek1(1,:)),rek1(3,:),'-r',Rekam1(1,:),Rekam1(3,:),'-b') grid on;
title('Proyeksi Gerak AUV terhadap Bidang X-Z'); xlabel('X (m)'); ylabel('Z (m)'); legend('Reference','EnKF'); figure(3) % subplot(1,3,3) plot((rek1(2,:)),rek1(3,:),'-r',Rekam1(2,:),Rekam1(3,:),'-b') grid on;
title('Proyeksi Gerak AUV terhadap Bidang Y-Z'); xlabel('Y (m)');
ylabel('Z (m)'); legend('Reference','EnKF');
% Gerak antara u, v dan w terhadap iterasi figure (4) subplot(3,1,1) plot((1:I+1),rek1(1,:),'-r',(1:I+1),Rekam1(1,:),'-b') grid on; title('Estimasi u'); xlabel('iterasi');
ylabel('posisi (+) akselerasi (-) deselerasi (m)'); legend('Reference','EnKF'); subplot(3,1,2) plot((1:I+1),rek1(2,:),'-r',(1:I+1),Rekam1(2,:),'-b') grid on; title('Estimasi v'); xlabel('iterasi');
ylabel('posisi (+) kiri; (-) kanan (m)'); legend('Reference','EnKF');
subplot(3,1,3)
plot((1:I+1),rek1(3,:),'-r',(1:I+1),Rekam1(3,:),'-b') grid on;
title('Estimasi w'); xlabel('iterasi');
ylabel('posisi (+) naik; (-) turun (m)'); legend('Reference','EnKF');