B B IX
OPER SI D S R M TL B
UNTU K PLIK SI SISTEM KEND LI
8.2 Pemodelan Sistem
Desain dan analisa sistem kontrol linear biasanya kita mulai dengan memodelkan
suatu sistem dari dunia nyata. Model adalah representasi matematis dari suatu sistem,
seperti suatu proses kimia, mesin, rangkaian listrik dll. Pemodelan yang dilakukan
dengan MATLAB menggunakan asumsi bahwa sistem adalah rangkaian sistem yang
linear time invariant.
Pemodelan yang dilakukan oleh MATLAB adalah menggunakan fungsi transfer
(klasik) atau state-space (modern). Kedua model itu dapat diterapkan secara waktu diskrit
maupun kontinu. Sebagai contoh :
dapat kita lihat diatas, suatu sistem yang terdiri dari massa, pegas, peredam. Sistem diatas
dapat kita modelkan dengan persamaan differensial orde 2 sebagai berikut :
y(t) = px(t) (2)
persamaan dari pengukuran potensi diatas merupakan suatu contoh situasi dimana
variabel yang menunjukkan kedinamisan sistem bukanlah output dari sistem itu sendiri.
Kedua persamaan diatas bersama-sama membangun model matematis yang menyatakan
prilaku sistem, dengannya kita dapat menyatakan pergerakan massa sebagai fungsi dari
waktu.
Dalam analisa suatu sistem kendali linear biasanya dilakukan operasi untuk
menentukan beberapa sifat dinamis dari sistem seperti stabilitas dan respon frekuensi .
Hal ini terkadang sulit dilakukan dalam analisa domain waktu, sehingga seringkali kita
analisa dalam domain frekuensi. Untuk melakukannya kita menggunakan transformasi
lapplace, sehingga dalam contoh diatas persamaan berubah menjadi :
2
(ms + bs + k )x(s) = u(s)
x( s ) 1
H(s) = =
ms + bs + k
2
u(s)
y ( s )
= p
x( s )
untuk lebih memahami transfer function dan relasinya dalam hubungan input output
sistem, kita biasanya menggunakan suatu blok diagram. Jika kita misalkan m = 1, b = 4,
k= 3, dan p = 10, maka akan kita dapatkan suatu blok diagram sebagai berikut :
Sistem
u(s) 10 y(s)
s + 4s + 3
2
Dalam sistem kendali kita juga mengenal adanya persamaan keadaan (state
space). Model dalam contoh diatas dapat juga kita tuliskan dalam bentuk state space
dengan memisalkan x = x1 dan x’= x2, sehingga persamaan (1) dapat kita tuliskan
menjadi :
x’1=x
k b u
x’2 = - x1 − x2 + = −3 x1 − 4 x2 + u
m m m
x’= Ax + Bu
y = Cx + Du
Pada kenyataannya, dalam analisa sistem, banyak kita temukan suatu sistem yang
memiliki variabel yang berubah hanya pada waktu diskrit, selain itu banyak pula sistem
yang hanya dapat kita ekstrak atau kita olah informasinya dalam waktu diskrit (misalnya
suatu sistem digital).
Analisa dalam sistem dengan domain waktu diskrit secara garis besar sama
dengan analisa suatu sistem kita harus mengubah bentuk model dari satu bentuk ke
bentuk yang lain. Bagian berikut ini akan membahas beberapa fungsi dalam MATLAB
yang memudahkan kita untuk mengubah suatu model dari bentuk yang satu ke bentuk
yang lain.
1. c2d
dengan mengasumsikan adanya zero – order hold pada input dengan sample Time (T)
contoh:
x’ = Ax + Bu
aplikasi MATLAB :
pi =
0.9868 0.0820
-0.2460 0.6588
gamma =
0.0044
0.0820
2. Residue
Fungsi RESIDUE digunakan untuk mengubah suatu transfer function dalam bentuk
polinomial ke bentuk pecahan partial
Syntax :
Vektor A dan B merupakan vector dari polynomial dengan urutan pangkat s yang
mengecil. Jumlah pole adalah :
Jika P(i) = … = P(j+m-1) maka terjadi multiple pole sejumlah m, maka pecahan
partial dinyatakan dengan :
contoh :
suatu sistem dengan fungsi transfer :
y ( s ) 10
=
s + 4s + 3
2
u ( s)
aplikasi MATLAB :
» b=[10];
» a=[1 4 3];
» [r,p,k]=residue(b,a)
r=
-5
5
p =
-3
-1
k=
[]
sehingga persamaan parsial dari fungsi diatas adalah :
−5 5
H(s) = +
s + 3 s +1
3. ss2tf
Fungsi SS2TF digunakan untuk mengkonversikan suatu persamaan state-space ke
fungsi transfer dalam bentuk polynomial.
Syntax :
[NUM,DEN] = SS2TF ( A,B,C,D,iu] membentuk suatu fungsi transfer :
NUM ( s ) −1
H(s) = = C (sI − A ) B + D
DEN ( s )
dari sistem :
x = Ax + Bu
y = Cx + Du
contoh
suatu persamaan state space:
x’=Ax+Bu
y = Cx + Du
⎡ x1 ⎤
y = [10 0] ⎢ ⎥ + [0]u
⎣ x 2 ⎦
aplikasi MATLAB :
num =
0 0 10
den =
1 4 3
y ( s ) 10
=
s + 4s + 3
2
u ( s)
4. ss2zp
Syntax :
−1
( s − z1)( s − z 2)...( s − zn)
H ( s ) = C ( sI − A) B + D = k
( s − p1)( s − p 20...( s − pn)
x = Ax + Bu
y = Cx + Du
contoh :
x’=Ax+Bu
y = Cx + Du
⎡ x1 ⎤
y = [ 10 0 ] ⎢ ⎥ + [0]u
⎣ x2 ⎦
aplikasi MATLAB :
z=
[]
p =
-1
-3
k=
10
y ( s ) 10
=
u ( s) s + 4s + 3
2
5. tf2ss
Syntax :
x = Ax + Bu
y = Cx + Du
y ( s ) 10
=
u ( s) s + 4s + 3
2
aplikasi MATLAB
» z=[];
» p=[-3 -1]';
» k=10;
» [a,b,c,d]=zp2ss(z,p,k)
a=
-4.0000 -1.7321
1.7321 0
b =
1
0
c=
0 5.7735
d=
x’= Ax + Bu
y = Cx + Du
⎡ x'1 ⎤ ⎡ 0 1 ⎤ ⎡ x ⎤ ⎡ 0⎤
⎢ x' ⎥ = ⎢− 3 − 4⎥ ⎢ x ⎥ + ⎢1⎥ u
⎣ 2⎦ ⎣ ⎦⎣ 2 ⎦ ⎣ ⎦
6. tfszp
NUM ( s )
H ( s ) =
den( s )
contoh :
sebuah sistem dengan fungsi transfer :
y ( s ) 10
=
u ( s) s + 4s + 3 2
aplikasi MATLAB :
» num=10;
» den=[1 4 3 ];
» [z,p,k]=tf2zp(num,den)
z=
[]
p =
-3
-1
k=
10
y ( s ) 10
=
u ( s) s + 4s + 3
2
7. zp2ss
Syntax :
x = Ax + Bu
y = cx + Du
dari suatu sistem yang telah diketahui set pole, zero dan gain
contoh :
y ( s ) 10
=
u ( s) s + 4s + 3
2
aplikasi MATLAB :
» z=[];
» p=[-3 -1]';
» k=10;
» [a,b,c,d]=zp2ss(z,p,k)
a=
-4.0000 -1.7321
1.7321 0
b =
1
0
c=
0 5.7735
d=
8. zp2tf
Syntax :
NUM ( s )
H ( s ) =
DEN ( s )
dari suatu sistem yang telah diketahui set pole, zero dan gain.
contoh :
suatu sistem memiliki fungsi transfer zero-pole-gain :
y ( s ) 10
= 2
u (s) s + 4s + 3
aplikasi MATLAB :
» z=[];
» p=[-3 -1]';
» k=10;
» [num, den]=zp2tf(z,p,k)
num =
0 0 10
den =
1 4 3
9.1 Bode Plot
Analisa suatu sistem dalam domain frekuensi yang umum digunakan dalam
sistem kendali adalah bode plot. Bode plot menghasilkan dua buah grafik, yang pertama
memetakan ratio amplitudo dari suatu fungsi transfer terhadap frekuensi dan yang kedua
memetakan sudut fasa dari fungsi transfer terhadap frekuensi . Pada MATLAB , fungsi
yang melakukan operasi bode plot adalah bode :
Syntax :
bode. Range frekuensi dan jumlah titik akan dipilih secara otomatis oleh
MATLAB
BODE (NUM, DEN) menghasilkan diagram bode dari single input IU ke
semua output dalam sistem dengan transfer function G (s)= NUM(s)/Den(s).
BODE (A,B,,D,IU,W) atau BODE (NUM,Den,W) menggunakan vektor
frekuensi W yang harus menyatakan frekuensi dimana respon bode diamati,
dalam rad/s
Jika kita menambahkan argumen kiri
[MAG, PHASE, W] = BODE ( A, B, C, D, …)
[MAG, PHASE, W] = BODE ( NUM, DEN,...)
menghasilkan vektor MAG, PHASE dan W, tanpa menghasilkan diagram bode.
Contoh :
Misalkan terdapat suatu sistem yang memiliki fungsi transfer sebagai berikut :
x( s ) 10
=
u ( s) s + 4s + 3
2
aplikasi MATLAB :
» num=10;
» den=[1 4 3];
» bode(num,den),...
title (' Bode Plot contoh');
From: U(1)
20
10
)
B 0
d
(
e
d -1 0
u
t
i
n
g
a -2 0
M
;
)
g 0
e
d
(
e -5 0
s
a
h )
1
P (
Y -100
:
o
T
-150
-200
10 -1 10 0 10 1
Frequency (rad/sec)
Range frekunesi dapat juga kita temukan dengan menggunakan perintah berikut
ini :
» num=10;
» den=[1 1 3];
» w=logspace(-1,2,100);
» bode(num,den,w),grid on, title('Bode plot dengan range frekuensi tertentu')
»
From: U(1)
20
)
B -2 0
d
(
e
d -4 0
u
t
i
n
g
a -6 0
M
;
)
g 0
e
d
(
e -5 0
s
a
h )
1
P (
Y -100
:
o
T
-150
-200
10 -1 10 0 10 1 10 2
Frequency (rad/sec)
Bode plot juga dapat kita bentuk jika kita mengetahui state space dari sistem,
misalnya :
⎡ x1 ⎤
y = [10 0] ⎢ ⎥ + 0
⎣ x 2 ⎦
aplikasi MATLAB :
Bode plot persamaan s tate space
From: U(1)
20
10
)
B 0
d
(
e
d -1 0
u
t
i
n
g
a -2 0
M
;
)
g 0
e
d
(
e -5 0
s
a
h )
1
P (
Y -100
:
o
T
-150
-200
10 -1 10 0 10 1
Frequency (rad/sec)
9.2 Nyquist Plot
Selain bode plot salah piranti lain yang sering digunakan untuk melakukan analisa
suatu sistem dalam domain frekuensi adalah nyquist plot lebih sering digunakan jika kita
melakukan analisis sistem.MATLAB fungsi yang digunakan adalah nyquist .
Syntax :
Dengan range frekuensi dan jumlah titik yang ditentukan otomatis oleh
MATLAB.
contoh :
misalkan suatu sistem memiliki diagram blok sebagai berikut :
u(s) 10 y(s)
2
s + 4s + 3
aplikasi MATLAB :
» num=10;
» de=[1 4 3];
» nyquist(num,den),title('nyquist plot');
»
nyquist plot
From: U(1)
8
s
i 2
x
A )
y
r
1
(
a Y 0
n
i :
o
g T
a
m
I -2
-4
-6
-8
-3 -2 -1 0 1 2 3 4 5
Real Axis
Seperti perintah bode, perintah nyquist juga memungkinkan kita untuk mengatur
range real axis mana yang akan kita amati, hal ini dapat dilakukan dengan operasi :
» num=10;
» den=[1 4 3];
» w=logspace(0,1,100);
» nyquist(num,den,w),title('nyquist dengan axis diatur');
»
1.5
s
i
x 0.5
A )
y
r
1
(
a Y 0
n
i :
o
g T
a
m -0.5
I
-1
-1.5
-2
-2.5
-1 -0.5 0 0.5 1 1.5
Real Axis
Selain itu kita juga dapat menghasilkan diagram nyquist langsung dari persamaan
state sistem
» b=[0 1]';
» c=[10 0];
» d=0;
» nyquist(a,b,c,d),title(' nyguist persamaan state space');
»
1.5
s
i
x 0.5
A )
y
r
1
(
a Y 0
n
i :
o
g T
a
m -0.5
I
-1
-1.5
-2
-2.5
-1 -0.5 0 0.5 1 1.5 2 2.5 3 3.5
Real Axis
9.3 Root Locus
Metode root locus merupakan piranti analisa yang amat berguna untuk sistem
dengan single input dan single output. Root Locus melakukan analisa stabilitas dan
respon transien dari sistem untuk menentukan suatu langkah apa yang harus dilakukan
dalam meningkatkan performansi sistem. Dalam MATLAB fungsi yang digunakan
adalah rlocus :
Syntax :
RLOCUS (Num, DEN) menghitung dan membuat diagram root locus dari sistem
dengan fungsi transfer
NUM ( s )
H ( s ) = 1 + k = 0
DEN ( s )
dengan set gains K yang dihitung secara adaptif untuk mendapatkan diagram yang
halus. Sebagai alternatif kita juga dapat mendefinisikan vector K itu sendiri sehingga
fungsi berubah menjadi :
RLOCUS ( NUM, Den, K )
R = RLOCUS ( NUM,DEN,K) atau [R,K] = RLOCUS ( NUM,DEN) akan
menghasilkan matrix R dnegan LENGTH ( k) rows and (LENGTH (Den(-1))
Columns yang berisikan lokasi complex root. Setiap baris dari matrix memiliki
korespondensi dengan vector gain K, jika kita tambahkan K pada argumen kanan maka
fungsi juga akan menghasilkan vector K.
dx/dt = Ax + Bu u=-k*y
y = Cx + Du
Contoh :
Jika kita memiliki suatu sistem feedback control dengan blok diagram sebagai
berikut :
G(s)
H(s)
Atau
u(s) y(s)
G( s)
1 + G ( s ) H ( s )
y ( s ) G( s)
=
u(s) 1 + G ( s ) H ( s )
Root Locus akan kita dapatkan pada kondisi dimana denomenator dari persamaan diatas
= 0, sehingga kita mendapatkan suatu fungsi kondisi :
1 + G(s) H(s) = 0
G(s)H(s) = -1
» num=[1 6];
» p1=[1 4 0];
» p2=[1 4 8];
» den=conv(p1,p2);
» rlocus(num,den),title('root locus contoh');
»
2
s
i
x
A
0
g
a
m
I
-2
-4
-6
-8
-10 -8 -6 -4 -2 0 2
Real Axis
9.4 Respon Step
Respon step pada umumnya menunjukkan bagaimana perilaku suatu sistem
terhadap input. Secara lebih terperinci fungsi dari step respon adalah menunjukkan
perilaku transistem dalam domain waktu terhadap adanya perubahan pada input. Dengan
operasi ini kita akan dapat mengekstrak beberapa informasi seperti stabilitas, damping
dan bandwidth dari sistem yang kita pelajari. Pada MATLAB fungsi yang digunakan
adalah step.
Syntax :
terhadap sinyal step yang diberikan pada input IU. Vektor waktu ditentukan secara
otomatis.
STEP (A, B, C, D, IU,T) ditambahkan dengan informasi regularly spaced time vector T
yang dimasukkan oleh user.
menghasilkan output dan time response dalam matrix Y and X. Matrix Y memiliki
banyak kolom sebanyak jumlah ouput dan length (T) rows. Matrix X memiliki jumlah
sebanyak jumlah states.
contoh :
y ( s ) 5( S + 3)
= 2
u (s) S + 3S + 15
aplikasi matlab :
» NUM=5*[1 3];
» DEN=[1 3 15];
» STEP(NUM,DEN),grid on, TITLE('GRAFIK STEP RESPON CONTOH');
»
1.4
1.2
1
e
d )
u
t 1
i (
l Y 0.8
p :
m o
T
A
0.6
0.4
0.2
0
0 0.5 1 1.5 2 2.5 3 3.5 4
Time (sec.)
Kita juga dapat mendefinisikan range waktu dan skala waktu grafik yang kita inginkan ,
contoh operasinya dapat dilihat berikut ini :
» num=5*[1 3];
» den=[1 3 15];
» t=0:0.05:2;
» step(num,den,t), grid on, title(' grafik step respon dengan waktu tertentu');
»
1 .4
1 .2
1
e
d )
u
t 1
i (
l Y 0 .8
p :
m o
T
A
0 .6
0 .4
0 .2
0
0 0 .2 0 .4 0 .6 0 .8 1 1 .2 1 .4 1 .6 1 .8 2
T im e ( s e c . )