• Tidak ada hasil yang ditemukan

BAB V KESIMPULAN DAN SARAN

5.2 Saran

5.2 Saran

Adapun saran dari Tugas Akhir ini adalah :

1. Pada penelitian selanjutnya, dapat dikembangkan reduksi model pada aplikasi dengan sistem yang tak stabil, terkendali dan teramati.

2. Pada penelitian selanjutnya, dapat dikembangkan reduksi model pada model aliran air sungai satu dimensi dengan menggunakan metode Pemotongan Setimbang.

51

DAFTAR PUSTAKA

[1] Wibowo, H. (2013, September). “Kajian Geometri Sungai Berdasarkan Model Matematika Menggunakan Data Debit Aliran”. Eco Rekayasa, Vol.9, No.2.pp 186-187.

[2] Arif, D.K, et al. (2014). “Construction of the Kalman Filter Algorithm on the Model Reduction ”. International Journal Control and Automation (IJCA), Vol. 7, No.9, pp. 257-270. [3] Rochmah, M., Fatmawati. dan Purwati, U.D,. 2015. “Reduksi

Orde Model Sistem Linier Waktu Diskrit dengan Metode Singular Perturbation Approximation”. Jurnal Matematika. Universitas Airlangga.

[4] M.Verlaan. (1998). ”Efficient Kalman Filtering for Hydrodynamic Models”, PhD Thesis. Delft University of Technology. Netherland.

[6] Ogata, K. (1995). “Discrete-time Control Sistems”. Canada : Prentice-Hall International, Inc.

[5] Subiono. (2013). “Sistem Linier dan Kontrol Optimal. Jurusan Matematika – Institut Teknologi Sepuluh Nopember. Surabaya. [7] Arif, D.K. (2014). “Konstruksi dan Implementasi Algoritma Filter

Kalman pada Model Tereduksi”. Disertasi S3.Jurusan Matematika FMIPA – UGM. Yogyakarta.

[8] Khasanah, N.I. (2016). “Analisis Reduksi Model pada Sistem Linier waktu diskrit tak stabil”. Jurusan Matematika – Institut Teknologi Sepuluh Nopember. Surabaya.

52

53 LAMPIRAN A Listing Program

%MODEL ALIRAN AIR SUNGAI DENGAN PENDISKRITAN STAGGERED GRID clc; clear all; %%SISTEM AWAL D=10; g=9.8; Cf=0.0002; t=360; % t = delta t

i=input('Masukkan nilai i : '); x=60000/i; % x = delta x

n=(i*2+2); % ukuran matriks D_Tilda,A_Tilda,B_Tilda %menghitung Matriks D_Tilda

D_Tilda=zeros(n); D_Tilda(1,1)=1; D_Tilda(n,n)=1; for i=2:2:n-2 D_Tilda(i,i-1:i+1)=[-g/(2*x) (1/t)+(Cf/2) g/(2*x)]; end for i=3:2:n-1 D_Tilda(i,i-1:i+1)=[-D/(2*x) 1/t D/(2*x)]; end D_Tilda

%menghitung Matriks A_Tilda A_Tilda=zeros(n); for i=2:2:n-2 A_Tilda(i,i1:i+1)=[g/(2*x) (1/t)(Cf/2) -g/(2*x)]; end for i=3:2:n-1

54

A_Tilda(i,i-1:i+1)=[D/(2*x) 1/t -D/(2*x)]; end

A_Tilda

%menghitung Matriks B_Tilda B_Tilda=zeros(n,1);

B_Tilda(1,1)=1; B_Tilda

%menghitung Matriks A,B,C,D A=inv(D_Tilda)*A_Tilda B=inv(D_Tilda)*B_Tilda C=zeros(1,n); C(1,n/2)=1; %C(2,2)=1; C D=[0]

k=input('Masukkan nilai k: '); Xk=zeros(n,1);

for i=1:2:n

Xk(i,1)=1; % nilai ketinggian pada saat k=0 adl 1

end

for i=2:2:n

Xk(i,1)=0; % nilai kecepatan pada saat k=0 adl 1

end

X_k=Xk;

Uk=input('Masukkan nilai Uk : ');

wkt_tampil=input('Masukkan waktu yang ditampilkan :

');

pos_tampil=input('Masukkan posisi yang ditampilkan

55

h=zeros(n/2,1); % ketinggian di semua posisi pada waktu tertentu

u=zeros(n/2,1); % kecepatan di semua posisi pada waktu tertentu

q=zeros(k+1,1); % ketinggian pada posisi tertentu pada semua waktu

r=zeros(k+1,1); % kecepatan pada posisi tertentu pada semua waktu

q(1,1)=Xk(2*pos_tampil-1,1); r(1,1)=Xk(2*pos_tampil,1); Xk_1=zeros(n,1);

if k==0 %jika simulasi dilakukan sampai k=0 Xk_1=Xk; q(1,1)=Xk_1(2*pos_tampil-1,1); r(1,1)=Xk_1(2*pos_tampil,1); for g=1:n/2 h(g,1)=Xk_1(2*g-1,1); u(g,1)=Xk_1(2*g,1); end else for l=1:k Xk_1=(A*X_k)+(B*Uk) X_k=Xk_1; q(l+1,1)=Xk_1(2*pos_tampil-1,1); r(l+1,1)=Xk_1(2*pos_tampil,1); for g=1:n/2 h(g,1)=Xk_1(2*g-1,1); u(g,1)=Xk_1(2*g,1); end end end

y=zeros(n/2,1) % membuat sumbu t dimulai dari nol

for l=1:n/2; y(l,1)=l-1;

56

end

figure(1); plot(y,h,'b')

title(['Grafik Ketinggian pada waktu ke- ' num2str(k)]);

xlabel('Posisi') ylabel('Ketinggian') figure(2);

plot(y,u,'r')

title(['Grafik Kecepatan pada waktu ke-' num2str(k)]);

xlabel('Posisi') ylabel('Kecepatan')

z=zeros(k+1,1); % membuat sumbu t dimulai dari nol

for l=1:k+1 z(l,1)=l-1;

end

figure(3); plot(z,q,'b')

title(['Grafik Ketinggian pada posisi ke-' num2str(pos_tampil)]);

xlabel('Waktu') ylabel('Ketinggian') figure(4);

plot(z,r,'r')

title(['Grafik Kecepatan pada posisi ke-' num2str(pos_tampil)]);

xlabel('Waktu') ylabel('Kecepatan') Xk_baru=zeros(n,1);

for i=1:2:n

Xk_baru(i,1)=1; % nilai ketinggian pada saat k=0 adl 1

end

57

Xk_baru(i,1)=0; % nilai kecepatan pada saat k=0 adl 1

end

X_k_baru=Xk_baru;

h_baru=zeros(n/2,1); % ketinggian di semua posisi pada waktu tertentu

u_baru=zeros(n/2,1); % kecepatan di semua posisi pada waktu tertentu

q_baru=zeros(k+1,1); % ketinggian pada posisi tertentu pada semua waktu

r_baru=zeros(k+1,1); % kecepatan pada posisi tertentu pada semua waktu

q_baru(1,1)=Xk_baru(2*pos_tampil-1,1); r_baru(1,1)=Xk_baru(2*pos_tampil,1); Xk_1_baru=zeros(n,1);

if wkt_tampil==0 %jika simulasi dilakukan sampai k=0 Xk_1_baru=Xk_baru; q_baru(1,1)=Xk_1_baru(2*pos_tampil-1,1); r_baru(1,1)=Xk_1_baru(2*pos_tampil,1); for g=1:n/2 h_baru(g,1)=Xk_1_baru(2*g-1,1); u_baru(g,1)=Xk_1_baru(2*g,1); end else for l=1:wkt_tampil Xk_1_baru=(A*X_k_baru)+(B*Uk) X_k_baru=Xk_1_baru; q_baru(l+1,1)=Xk_1_baru(2*pos_tampil-1,1); r_baru(l+1,1)=Xk_1_baru(2*pos_tampil,1); if l==wkt_tampil for g=1:n/2 h_baru(g,1)=Xk_1_baru(2*g-1,1); u_baru(g,1)=Xk_1_baru(2*g,1); end

58

end end end

y=zeros(n/2,1) % membuat sumbu t dimulai dari nol

for l=1:n/2; y(l,1)=l-1;

end

figure(5);

plot(y,h_baru,'b')

title(['Grafik Ketinggian pada waktu ke-' num2str(wkt_tampil)]);

xlabel('Posisi') ylabel('Ketinggian') figure(6);

plot(y,u_baru,'r')

title(['Grafik Kecepatan pada waktu ke-' num2str(wkt_tampil)]); xlabel('Posisi') ylabel('Kecepatan') det_A=det(A) sysAwal=ss(A,B,C,D,1); [n,n]=size(A); %dimensi

%% MENENTUKAN NILAI EIGEN DARI MATRIKS A Eigen_A=abs(eig(A)) Tak_Stabil = 0; Stabil = 0; Stabil_Asimtotik = 0; for i = 1:n if Eigen_A(i) > 1 Tak_Stabil = Tak_Stabil +1; end if Eigen_A(i) == 1 Stabil = Stabil +1; end if Eigen_A(i) < 1

59 Stabil_Asimtotik = Stabil_Asimtotik +1; end end Tak_Stabil Stabil Stabil_Asimtotik

%% KETERKENDALIAN SISTEM AWAL

Matriks_Keterkendalian_Sistem_Awal=rank(ctrb(sysAwa l))

bb=rank(ctrb(sysAwal)); %% KETERAMATAN SISTEM AWAL

Matriks_Keteramatan_Sistem_Awal=rank(obsv(sysAwal)) aa=rank(obsv(sysAwal));

%% Matriks uniter dan Matriks

Transformasi,dekomposisi stabil/tidak stabil A1 stabil, A

% U adalah matriks uniter

% At adalah matriks transformasi % M adalah jumlah keadaan yang stabil % A adalah matriks A

% 6 adalah tipe

% 3 adalah state yang stabil

[U,At,Z] = blkrsch(A,6,Stabil_Asimtotik) %% SOLUSI LYAPUNOV A(t11)S-SA(t22)+At12=0 A11=At(1:Z,1:Z); A22=At(Z+1:n,Z+1:n); A12=At(1:Z,Z+1:n)*inv(A22); P=A11; Q=(inv(A22))'; R=A12; S=dlyap(P,Q,R);

%% TRANSFORMASI TAHAP KEDUA I_m=eye(Z);

I_n=eye(n-Z); nul =zeros(n-Z,Z);

60

S;

Wd=[I_m S;nul I_n] Wi=[I_m -S;nul I_n];

%% DEKOMPOSISI SISTEM TAK STABIL Bt=U'*B; Ct=C*U; Ad=Wi*At*Wd Bd=Wi*Bt Cd=Ct*Wd D; Gd=[Ad Bd;Cd D] %% SUBSISTEM STABIL As=Ad(1:Z,1:Z) Bs=Bd(1:Z) Cs=Cd(1,1:Z) Ds=D Gs=[As Bs;Cs D]

%% GRAMIAN PADA SUBSISTEM STABIL sysStabil=ss(As,Bs,Cs,Ds,1); k=gram(sysStabil,'c');

l=gram(sysStabil,'o');

if(det(k)>0)

disp('Gramian W Dfinit Positif');

else

errordlg('Gramian W tak definit positif','Tak

Terkendali');

break;

end

if(det(l)>0)

disp('Gramian M Dfinit Positif');

else

errordlg('Gramian M tak definit positif','Tak

Teramati');

break;

61

%% ANNALISIS SIFAT SUBSISTEM STABIL %% KESTABILAN SUBSISTEM STABIL

Eigen_Subsistem_Stabil=abs(eig(sysStabil)) %% KETERKENDALIAN SUBSISTEM STABIL

Matriks_Keterkendalian_Subsistem_Stabil=rank(ctrb(s ysStabil))

b=rank(ctrb(sysStabil));

%% KETERAMATAN SUBSISTEM STABIL

Matriks_Keteramatan_Subsistem_Stabil=rank(obsv(sysS tabil))

a=rank(obsv(sysStabil));

if(isequal(a,b))

disp('Rank Matriks Keterkendalian = Rank

Matriks Keteramatan');

else

errordlg('Rank Matriks Keterkendalian TIDAK

SAMA dengan Rank Matriks Keteramatan','error');

break;

end

%% SUBSISTEM TAK STABIL Au=Ad(Z+1:n,Z+1:n); Bu=Bd(Z+1:n);

Cu=Cd(Z+1:n0); Du=0;

Gu=[Au Bu;Cu Du]

sysunStabil=ss(Au,Bu,Cu,Du,1);

%% ANALISIS SIFAT SUBSISTEM TAK STABIL %% KESTABILAN SUBSISTEM TAK STABIL

Eigen_Subsistem_TakStabil=abs(eig(sysunStabil)) %% KETERKENDALIAN SUBSISTEM TAK STABIL

Matriks_Keterkendalian_Subsistem_TakStabil=rank(ctr b(sysunStabil))

62

Matriks_Keteramatan_Subsistem_TakStabil=rank(obsv(s ysunStabil))

%% MENENTUKAN FUNGSI TRANSFER PADA SUBSISTEM STABIL(As,Bs,Cs,Ds)

disp('Fungsi Transfer dari Subsistem Stabil

(As,Bs,Cs,Ds)');

G=tf(sysStabil);

Realisasi_Minimal=order(G);

%% MENENTUKAN BENTUK REALISASI SISTEM SETIMBANG [Ab,Bb,Cb]=dbalreal(As,Bs,Cs);

Db=Ds;

sysb=ss(Ab,Bb,Cb,Db,1); W_gramian = gram(sysb,'c') M_gramian = gram(sysb,'o') c=fix(abs(W_gramian)); d=fix(abs(M_gramian));

if(isequal(c,d))

disp('Gramian Keterkendalian Setimbang =

Gramian Keteramatan Setimbang');

else

errordlg('Gramian Keterkendalian Setimbang TIDAK SAMA dengan Gramian Keteramatan

Setimbang','error'); break; end hsv= hsvd(sysb); Nilai_Singular_Hankel=hsv %% SISTEM TEREDUKSI

%% INPUTAN r (ORDE SISTEM TEREDUKSI) [p,o]=size(Ab);

disp(['Masukkan ukuran sistem tereduksi(r) mulai

dari orde 2 sampai ' num2str(p)-1]);

r=input('r=');

63

rsys=balred(sysb,r);

disp('Fungsi Transfer dari Sistem tereduksi dengan

metode SPA');

G3=tf(rsys); omr=order(G3);

[AsrS,BsrS,CsrS,DsrS]=ssdata(rsys); %% ANALISIS SIFAT SISTEM TEREDUKSI %% KESTABILAN SISTEM TEREDUKSI Eigen_SPA1=abs(eig(rsys))

%% KETERKENDALIAN SISTEM TEREDUKSI

Rank_Matriks_Keterkendalian_SPA1=rank(ctrb(rsys)) %% KETERAMATAN SISTEM TEREDUKSI

Rank_Matriks_Keteramatan_SPA1=rank(obsv(rsys)) %% SISTEM TEREDUKSI TOTAL (Reduksi SPA+Subsistem Tak Stabil)

nul1=zeros(r,Tak_Stabil); nul2=zeros(Tak_Stabil,r); ArS=[AsrS nul1;nul2 Au] BrS=[BsrS;Bu]

CrS=[CsrS Cu] DrS=[DsrS]

sysSPA2=ss(ArS,BrS,CrS,DrS,1);

%% ANALISIS SIFAT SISTEM TEREDUKSI TOTAL

%% KESTABILAN SISTEM TEREDUKSI TOTAL DENGAN SPA Eigen_SPA2=abs(eig(sysSPA2))

%% KETERKENDALIAN SISTEM TEREDUKSI TOTAL DENGAN SPA Rank_Matriks_Keterkendalian_SPA2=rank(ctrb(sysSPA2) )

%% KETERAMATAN SISTEM TEREDUKSI TOTAL DENGAN SPA Rank_Matriks_Keteramatan_SPA2=rank(obsv(sysSPA2)) %% NORM

64 [ta1,tb1]=ss2tf(A,B,C,D,1); Sistem_Awal=tf(ta1,tb1,1); [ta2,tb2]=ss2tf(ArS,BrS,CrS,DrS,1); Sistem_Reduksi_SPA=tf(ta2,tb2,1); Error1=Sistem_Awal-Sistem_Reduksi_SPA; NormSPA=norm(Error1,inf); Error2=Sistem_Reduksi_SPA-Sistem_Awal; NormSPA=norm(Error2,inf); %% GRAFIK figure(1); hsv=hsvd(sysb); xlabel('Order')

ylabel('Nilai Singular Hankel') plot(hsv,'*')

title('Nilai Singular Hankel') figure(100+r); t=logspace(-3,3,200); [mag,pha]=bode(A,B,C,D,1,t); [magr,phar]=bode(ArS,BrS,CrS,DrS,1,t); semilogx(t,20*log10(mag),'g:',t,20*log10(magr),'b:' )

title(['Frekuensi Response antara Sistem Awal dan Sistem Tereduksi dengan Ukuran '

num2str(r+Tak_Stabil)]); xlabel('Frekuensi') ylabel('Gain')

legend('Sistem Awal','Sistem Tereduksi dengan

SPA'); figure(Z+1); t=logspace(-3,3,200); [mag,pha]=bode(As,Bs,Cs,Ds,1,t); [magr,phar]=bode(Ab,Bb,Cb,Db,1,t); semilogx(t,20*log10(mag),'b*',t,20*log10(magr),'r:' )

title('Frekuensi Response antara Subsistem Stabil

65

xlabel('Frekuensi') ylabel('Gain')

66

67 LAMPIRAN B Biodata Penulis

Penulis bernama lengkap Airin Nur Hidayati dengan nama panggilan Airin. Lahir di Nganjuk, 31 Oktober 1995. Jenjang pendidikan formal yang ditempuh yaitu SDN Sumberurip 1 (2001-2007), SMPN 1 Brebek (2007-2010), SMAN 1 Nganjuk (2010-2013). Sekarang sedang menempuh pendidikan S1 Jurusan Matematika di Institut Teknologi Sepuluh Nopember (ITS) dengan bidang minat Matematika Terapan. Penyusun juga aktif berorganisasi di KM ITS, yaitu sebagai staff Departemen Pengabdian Masyarakat di HIMATIKA ITS (2014-2015), staff Departemen Kaderisasi di Lembaga Dakwah Jurusan Matematika “Ibnu Muqlah” (2014-2015), staff Departemen Community Service di HIMATIKA ITS (2015-2016), Bendahara Umum di Lembaga Dakwah Jurusan Matematika “Ibnu Muqlah” (2015-2016). Selain itu penyusun juga aktif dalam kepanitian-kepanitian acara di dalam kampus. Penyusun melaksanakan Kerja Praktek di PT. Perkebunan Nusantara X PG. Pesantren Baru pada 2016.

Untuk kritik, saran dan informasi lebil lanjut mengenai Tugas Akhir ini dapat ditujukan kepada penulis melalui email : [email protected].

Dokumen terkait