Untuk
mensimulasikan kendalian, ada beberapa cara yang dapat digunakan, diantaranya
adalah metoda Euler dan Runge-Kutta. Jika sistem yang akan
disimulasikan adalah sistem yang linier, maka metoda Euler sudah cukup
untuk menggambarkan dinamika kendalian sesungguhnya. Tetapi jika kita ingin
memperoleh hasil simulasi yang lebih teliti atau dinamika kendaliannya memiliki
nonlinieritas yang tinggi, maka metoda Runge-Kutta akan lebih cocok untuk
mensimulasikannya. Permasalahan penting yang harus diperhatikan adalah waktu
pencuplikan (sampling time) minimal, yang harus disesuaikan dengan
kriteria Shanon. Kriteria Shanon menyatakan bahwa waktu sampling mimimum
adalah dua kali lebih kecil dibandingkan dengan perioda (1/frekuensi) terkecil
dari kutub-kutub (pole) sistem dinamiknya. Karena jika waktu samplingnya
jauh lebih kecil dari periode terkecil kutub-kutubnya, maka akan membuang-buang
waktu komputasi. Tetapi jika waktu samplingnya lebih besar, maka proses simulasi
akan memberikan gambaran kendalian yang tidak akurat. Sebagai contoh yaitu
sistem dinamik dari gerakan rotasi satelit, yang diperlihatkan dalam Gambar 1.
Sistem dinamik dari satelit dianggap bahwa gesekan adalah nol. Fungsi alih dari
sistem ini adalah:
(1)
dengan keluaran adalah sudut,
sedangkan masukan adalah torsi, sedangkan J adalah moment inersia dari
satelit. Dalam bentuk persamaan ruang status (state space) menjadi:


Gambar 1. Model satelit.
Jika fungsi alih satelit disimulasikan dengan pendekatan Euler
maka persamaan fungsi alihnya menjadi (state x2(t)
diolah terlebih dahulu, kemudian x1(t)):
x2(k)
= x2(k-1) +
Dt
(1/J)u(k-1)
(2)
x1(k)
= x1(k-1) +
Dt
x2(k-1)
y(k)=
x1(k).

Gambar 2. Diagram kendali satelit loop terbuka.
Berikut
ini, adalah listing program M-file Matlab untuk mensimulasikan dinamika dari
satelit menggunakan metoda Euler, dalam bentuk loop terbuka selama 1
detik dengan waktu pencuplikan (dt) sebesar 0,01 detik dan J = 1.
clear;
x1(1)=0;
x2(1)=0;
y(1)=0;
dt=0.01;
u(1)=1;
for n=1:100
k=n+1;
u(k)=1;
x2(k)=x2(k-1)+dt*u(k-1);
x1(k)=x1(k-1)+dt*x2(k-1);
y(k)=x1(k);
end
t=linspace(0,1,101);
plot(t,y);
xlabel('detik');
ylabel('rad');
Jika program di atas
dieksekusi, maka akan ditampilkan hasil simulasinya seperti pada Gambar 3.

Gambar 3. Simulasi tanggapan posisi sudut satelit loop terbuka menggunakan
Euler.
Untuk
mensimulasikan Persamaan 1 menggunakan metoda Runge-Kutta (orde 4) maka
persamaannya menjadi seperti berikut ini:
a1
= u(k-1);
b1
= x2(k-1);
a2
= u(k-1);
b2
= (x2(k-1)+
Dt*(b1/2));
a3
= u(k-1);
b3
= (x2(k-1)+
Dt*(b2/2));
a4
= u(k-1);
b4
= (x2(k-1)+
Dt*(b3));
x2(k)
= x2(k-1)+(
Dt/6)*(a1+2*a2+2*a3+a4); (3.a)
x1(k)
= x1(k-1)+(
Dt/6)*(b1+2*b2+2*b3+b4);
(3.b)
Berikut
ini, adalah listing program M-file Matlab untuk mensimulasikan dinamika dari
satelit menggunakan metoda Runge-Kutta, dalam bentuk loop terbuka (Gambar
2) selama 1 detik dengan waktu pencuplikan (dt) sebesar 0,01 detik dan
J = 1.
clear;
x1(1)=0;
x2(1)=0;
y(1)=0;
dt=0.01;
u(1)=1;
for n=1:100
k=n+1;
i(k)=1;
u(k)=i(k);
a1=(u(k-1);
b1=(x2(k-1));
a2=(u(k-1);
b2=(x2(k-1)+dt*(b1/2));
a3=(u(k-1);
b3=(x2(k-1)+dt*(b2/2));
a4=(u(k-1);
b4=(x2(k-1)+dt*(b3));
x1(k)=x1(k-1)+(dt/6)*(b1+2*b2+2*b3+b4);
x2(k)=x2(k-1)+(dt/6)*(a1+2*a2+2*a3+a4);
y(k)=x1(k);
end
t=linspace(0,1,101);
plot(t,y);
xlabel('detik');
ylabel('rad');
Jika program di atas
dieksekusi, maka akan ditampilkan hasil simulasinya seperti pada Gambar 4.

Gambar 4. Simulasi tanggapan posisi sudut satelit loop terbuka menggunakan
Runge-Kutta.
Tabel Berikut adalah perbandingan hasil simulasi antara metoda euler
dengan Runge-Kutta
|
Waktu det) |
Euler |
Runge-Kutta |
Nilai Sebenarnya |
|
0 |
0 |
0 |
0 |
|
0.01 |
0 |
0 |
0.0001 |
|
0.02 |
0 |
0.0001 |
0.0002 |
|
0.03 |
0.0001 |
0.0003 |
0.0005 |
|
0.04 |
0.0003 |
0.0006 |
0.0008 |
|
0.05 |
0.0006 |
0.0010 |
0.0013 |
|
0.06 |
0.0010 |
0.0015 |
0.0018 |
|
0.07 |
0.0015 |
0.0021 |
0.0025 |
|
0.08 |
0.0021 |
0.0028 |
0.0032 |
|
0.09 |
0.0028 |
0.0036 |
0.0040 |
|
0.10 |
0.0036 |
0.0045 |
0.0050 |