MATLAB
Tujuan:
a. Agar mahasiswa mampu menggunakan MATLAB untuk menganalisa dan
merancang sistem kendali
b. Agar mahasiswa mampu menggunakan M-file untuk memprogram system
kendali
1.1 MATLAB
1.1.2. M-file
File-file yang mengandung kode computer disebut m-files. Ada dua jenis m-file:
a. script file
tidak menggunakan argument input atau mengembalikan argumen output.
b. function file
dapat menggunakan argument input atau mengembalikan argumen output.
Contoh:
function l=luas(a,b)
%Program untuk menghitung luas persegipanjang
l=a*b;
Untuk membuat m-file klik File/New/M-file dan akan tampil MATLAB Editor. Untuk
menyimpan file klik File/Save As. Untuk menjalankannya, panggil nama File di
Comman Window dan tekan Enter.
>> a=5;
>> b=8;
>> luas(a,b)
ans = 40
Untuk mengontrol arus perintah, MATLAb menyediakan 4 alat yang dapat digunakan
programmer saat menulis kode komputernya:
a. for loop
b. while loop
c. if-else-end loop
d. switch-case loop
1
utnuk membuat grafik y sin t :
t e
t 3
t=0:0.1:5;
y=1./(t-exp(t)).^3+sin(t);
plot(t,y);
grid;
title('Contoh Plot 2D');
xlabel('t');
ylabel('y');
gtext('1/(t-exp(t))^3+sin(t)');
Didapatkan grafik:
b. Grafik 3 dimensi
Matlab mempunyai beberapa fungsi tersendiri untuk memplot obyek 3 D, yaitu: plot3,
mesh, surf, dan countour.
1.2 Dasar-dasar Teknik Kontrol
1.2.1 Matematika dalam Teknik Kendali
a. Polinomial
- Persamaan polynomial: p x x 3 2 x 5
Penulisan di MATLAB:
>> p=[1 0 -2 -5];
- Mencari akar polynomial:
>> r=roots(p)
r=
2.0946
-1.0473 + 1.1359i
-1.0473 - 1.1359i
- Mengembalikan ke koefisien polynomial:
>> p2=poly(r)
p2 = 1.0000 0 -2.0000 -5.0000
- Perkalian dua polynomial menggunakan operasi conv, sedangkan pembagian dua
polynomial menggunakan operasi deconv. Contoh:
c. Fungsi alih
2s 4
Contoh: G s
s 2s 2 4s 6
3
Di MATLAB ditulis:
>> num=[2 4];
>> den=[1 2 4 6];
Jika diberi masukan step:
>> step(num,den)
Jika diberi masukan impuls:
>> impulse(num,den)
Jika diberi masukan ramp:
>> t=0:0.1:100;
>> lsim(num,den,t,t)
Jika diberi masukan sinus:
>> t=0:0.1:100;
>> y=sin(t);
>> lsim(num,den,y,t)
d. Konversi-konversi Model
- Konversi Transfer function ke pole-zero:
Contoh dari fungsi alih di atas (c ):
>> [z,p,k]=tf2zp(num,den)
Diperoleh:
z = -2
p=
-0.1443 + 1.8669i
-0.1443 - 1.8669i
-1.7113
k= 2
- Konversi transfer function ke state space:
Bentuk state-space:
x Ax Bu
y Cx Du
Contoh:
>> [A,B,C,D]=tf2ss(num,den)
A=
-2 -4 -6
1 0 0
0 1 0
B=
1
0
0
C= 0 2 4
D= 0
- Konversi state space ke transfer function:
>> [num,den]=ss2tf(A,B,C,D)
num = 0 0 2.0000 4.0000
den = 1.0000 2.0000 4.0000 6.0000
- Konversi state space ke pole-zero:
>> [Z,P,K]=ss2zp(A,B,C,D)
Z = -2
P=
-0.1443 + 1.8669i
-0.1443 - 1.8669i
-1.7113
K= 2
R e K u H(s) y
+ _
Cara 2:
Dengan menggunakan rltool. Ketik di command window sebagai berikut:
>> num=[1 7];
>> den=conv(conv([1 0],[1 5]),conv([1 15],[1 20]));
>> a=tf(num,den);
>> rltool(a)
R e u y
Kontroler Plant
+ _
Salah satu tipe kontroler adalah kontroler PID (Proporsional-Integral-
Derivatif). Tipe ini merupakan tipe kontroler yang konvensional, tetapi banyak dipakai di
industri. Kontroler PID mempunyai persamaan:
de
u K P e K I e dt K D
dt
U s
Sehingga, fungsi alih kontroler PID ( ) mempunyai bentuk:
E s
KI KDs2 KPs KI
KP KDs
s s
Dengan:
KP = Proportional gain
KI = Integral gain
KD = Derivative gain
E = error
U = masukan plant
Kontroler Proporsional akan mengurangi waktu naik, tetapi tidak menghapus kesalahan
keadaan tunak. Kontroler integral akan menghapus kesalahan keadaan tunak, tetapi
berakibat memburuknya respon transient. Kontroler derivative akan meningkatkan
stabilitas system, mengurangi overshoot, dan meningkatkan respon transfer.
F
M
k
Sehingga diperoleh fungsi alih system antara pergeseran X(s) dan masukan F(s):
X s 1
F s Ms bs k
2
Jika M=1kg, b=10 N.s/m, k = 20 N/m, dan F(s) =1, maka diperoleh fungsi alih:
X s 1
2
F s s 10 s 20
Menggambar respon loop terbuka:
num=1;
den=[1 10 20];
step(num,den)
diperoleh grafik sebagai berikut:
Perancangan Kontroler
a. Kontroler Proporsional
Fungsi alih loop tertutup system adalah:
X s KP
2
F s s 10s 20 K P
Dengan KP = 300, maka respon langkah loop tertutup bisa diperoleh dengan
menggunakan fungsi cloop.
num=1;
den=[1 10 20];
Kp=300;
[numCL,denCL]=cloop(Kp*num,den);
t=0:0.01:2;
step(numCL,denCL,t)
ylabel('Pergeseran (m)');
xlabel('Waktu (detik)');
title('Respon langkah loop tertutup');
b. Kontroler Proporsional Derivatif (PD)
Fungsi alih loop tertutup system adalah:
X s KDs KP
2
F s s 10 K D s 20 K P
Dengan KP = 300 dan KD = 10, maka respon langkah loop tertutup diperoleh dengan
program di bawah ini:
Kp=300;
Kd=10;
num=[Kd Kp];
den=[1 10+Kd 20+Kp];
t=0:0.01:2;
step(num,den,t)