Anda di halaman 1dari 24

1.

PENGANTAR PROGRAM MATLAB

MATLAB (MATrix LABoratory), merupakan bahasa pemrograman yang


dikembangkan oleh The Matwork.Inc.(http://www.matworks.com). MATLAB
mempergunakan teknik-teknik khusus berbasiskan matriks untuk menyelesaikan
persoalan. Dengan cara ini ternyata banyak kemudahan yang diperoleh pemakai, selain
cara pemrogramannya yang tidak rumit, solusi masalah yang dinyatakan MATLAB adalah
mirip dengan apa yang dituliskan secara matematis.
Melalui kemampuan grafisnya, MATLAB menyediakan banyak pilihan untuk
visualisasi data. MATLAB juga menyediakan sekelompok alat penyelesaian masalah
untuk problem-problem khusus yang dinamakan Toolbox, sebagai contoh Control System
Toolbox, Signal Processing Toolbox, dan sebagainya.

RUANG KERJA MATLAB :


Gambar P1-1 memperlihatkan jendela kerja (workspace) MATLAB 6.5.

Gambar P1-1. Jendela kerja MATLAB 6.5

Jika kita akan mencari penjelasan tentang MATLB, dapat dilakukan dengan perintah
helpdesk dari MATLAB Command Window seperti pada Gambar P1-2.

P-1
Gambar P1-2. Jendela help MATLAB 6.5.

Salah satu keistimewaan MATLAB terletak pada system help. Untuk mengetahui
kegunan suatu fungsi atau command tertentu, ketik help. Sebagai contoh:
>> help sqrt
SQRT Square root.
SQRT(X) is the square root of the elements of X. Complex
results are produced if X is not positive.
See also SQRTM.
Overloaded methods
help sym/sqrt.m

>> sqrt(-4)
ans =
0 + 2.0000i

Menyimpan dan Mengaktifkan Kembali Suatu Pekerjaan


Semua variable yang digunakan saat MATLAB dijalankan, disimpan di
workspace. Anda dapat melihat isi workspace dengan meng-klik menu View dan

P-2
kemudian klik perintah Command History. Untuk menyimpan pekerjaan yang sekarang
ada di Command Window, klik menu File > Save Workspace as … (berekstensi .mat).
Anda dapat langsung mengecek isi dari workspace dengan mengetikkan whos di
Command Window atau ketikkan who untuk mengecek variabel yang sedang digunakan
saat ini.

Aturan penamaan variabel


Seperti bahasa komputer lainnya, MATLAB mempunyai aturan penamaan
variabel, yaitu :
- Nama variabel dibedakan antara huruf kecil dan huruf kapital.
- Panjang maksimal nama variabel adalah 31 karakter, dan karakter ke-31 diabaikan.
- Nama variabel harus terdiri dari satu kata tanpa spasi dan diawali dengan huruf,
diikuti dengan sembarang bilangan, huruf atau garis bawah. Karakter-karakter
tanda baca tidak diperbolehkan karena banyak diantaranya mempunyai arti
tersendiri dalam MATLAB.

Komentar dan tanda baca.


Semua teks sesudah tanda persen (%) dianggap sebagi statemen komentar,
misalnya :
» Xo=1 %Nilai awal
Xo =
1
Hal ini memudahkan kita untuk mendokumentasikan apa yang kita kerjakan.
Beberapa perintah dapat diletakkan pada baris yang sama jika dipisahkan dengan koma
atau titik koma, misalnya :
» a=1+2, b=2+3; c=10
a =
3
c =
10
Tanda koma memberitahukan MATLAB untuk menampilkan hasil, titik koma mencegah
penampilan hasil.
Jika suatu statemen terlalu panjang, maka statemen dapat dilanjutkan pada baris berikut
dengan menggunakan deretan tiga titik (…). Pelanjutan statemen dilakukan jika deretan
tiga titik terdapat di antara nama variabel atau operator, artinya nama variabel tidak dapat
dipisah menjadi dua baris. Demikian juga, komentar tidak dapat dilanjutkan.

P-3
Operasi aritmetika dasar :
Operasi Simbol Contoh
Penambahan , a + b + 3+4
Pengurangan, a – b - 5–2
Perkalian, a . b * 4*6
Pembagian, a : b / atau \ 42/6 atau 6\42
Pemangkatan, ab ^ 7^3

Ekspresi dikerjakan dari kiri ke kanan, dengan pemangkatan mempunyai prioritas


tertinggi, diikuti dengan perkalian atau pembagian yang mempunyai prioritas yang sama,
diikuti dengan penambahan dan pengurangan yang mempunyai prioritas yang sama.

Operator Relasional :
< Lebih kecil
<= Lebih kecil atau sama dengan
> Lebih besar
>= Lebih besar atau sama dengan
== Sama dengan (equal)
~= Tidak sama dengan (not equal)

Operator Logika :
& Logika AND
 Logika OR
 Logika NOT

OPERASI ARRAY
» x=1:5
x =
1 2 3 4 5
» x=1:2:5
x =
1 3 5
» A=[1 2 3;4 5 6;7 8 9]
A =
1 2 3
4 5 6
7 8 9
» A(1,3)
ans =
3

» linspace(2,10,5)
ans =
2 4 6 8 10

P-4
A. M-FILE
Jika masalah yang dihadapi sederhana, mengetik beberapa perintah langsung dari
jendela “Command” memang cukup cepat dan efektif. Akan tetapi jumlah perintahnya
sangat banyak, atau jika kita ingin mengubah nilai beberapa variabel dan mengulang
kembali perhitungannya, maka mengetik perintah-perintah langsung akan sangat
membosankan. Untuk menyelesaikan masalah ini, MATLAB memperbolehkan kita untuk
mengetik deretan perintah tersebut dalam suatu file (dinamakan m-file, karena diakhiri
dengan ekstensi „.m‟).
Untuk membuat m-file, pilih New dari menu File dan pilih M-file. Suatu jendela “Editor”
akan ditampilkan.
Beberapa hal yang patutu diperhatikan dalam menuliskan m-file :
 File adalah ASCII-Text dan disimpan dengan ekstensi .m.
 Komentar ditulis dengan diawali dengan tanda “%” dan diakhiri dengan “enter”.
 Komentar pada baris-baris pertama akan ditampilkan oleh perintah help (berlaku
sebagai help teks).
 Perintah-perintah yang diisikan adalah perintah-perintah MATLAB sendiri atau m-
file lain yang telah ditulis.
Ada dua macam m-file yang didefinisikan dalam MATLAB, yaitu script m-file dan
function m-file.
1. Script m-file
M-file ini adalah sebuah urutan statement MATLAB biasa, yang mana biasanya
cukup panjang sehingga lebih mudah bila ditulis dalam editor. Variabel-variabel yang
digunakan akan tetap berada dalam memory saat script selesai dikerjakan (bersifat global).
Komentar pada baris-baris pertama akan ditampilkan oleh perintah help. Script file tidak
menggunakan argumen input atau mengembalikan argumen output.
2. Function m-file
Kegunaan dari file ini adalah seperti function / sub program pada umumnya,
mengerjakan sederetan statement secara local, dan setelah selesai mengembalikannya
secara global ke workspace daripada MATLAB.
Ciri-ciri dari function m-file adalah :
- Baris pertama diisi dengan deklarasi fungsi :
function result_variable = function_name(argument)
- Nama fungsi dan nama file harus identik.

P-5
- Variabel-variabel yang ada dalam function m-file bersifat lokal, artinya selesai
dikerjakan variabel-variabel tersebut akan dihapus dari workspace MATLAB.
- Baris komentar sampai baris bukan komentar yang pertama adalah teks help yang
ditampilkan jika kita minta “help”.

Contoh :
function [xrata]=rata2(x)
%Fungsi untuk mencari nilai rata-rata
L=length(x);
sum=0;
for i=1:L
sum=sum+x(i);
end
xrata=sum/L;
%disimpan dengan nama file : rata2.m

 Contoh pemakaian fungsi rata2 yang dijalankan dari MATLAB


Command Window
>> x=[1 2 3 4 5];
>> y=rata2(x)

y =

B. KONTROL PROGRAM

Bahasa pemrograman dapat memberikan fasilitas untuk mengatur jalannya


eksekusi perintah-perintah dalam program dengan didasarkan pada struktur pengambilan
keputusan. Kontruksi-kontruksi tersebut seringkali melibatkan banyak perintah MATLAB,
yang oleh karenanya konstruksi lebih sering terdapat dalam m-file daripada diberikan
langsung dari prompt MATLAB. MATLAB menyediakan beberapa struktur pengambilan
keputusan atau struktur kontrol program.
1. Loop for.
Loop for memungkinkan sekelompok perintah diulang sebanyak jumlah yang
tetap. Bentuk umum dari loop for adalah :
for x=array
perintah-perintah …
end

Perintah-perintah … antara statemen for dan end, dikerjakan sekali untuk setiap kolom
dalam array.
» for n=1:3
for m=3:-1:1

P-6
A(n,m)=n^2+m^2;
end
end
» A
A =
2 5 10
5 8 13
10 13 18

2. Loop while
Loop while mengerjakan sekelompok peintah yang diulang secara tidak terbatas.
Bentuk umum dari loop while adalah :
while ekspresi
perintah
end

Perintah antara statemen while dan end dieksekusi berulang kali selama semua elemen
dalam ekspresi benar.
Contoh faktorial dari 5:
>> fak=1;
>> i=1;
>> while i<5
fak=fak*i;
i=i+1;
end
>> fak
fak =
24

3. Konstruksi if-else-end
Berupa sederetan perintah yang dikerjakan dengan didasarkan pada hasil tes
relasional. Bentuk paling sederhananya adalah :
if ekspresi
perintah …
end

Perintah … di antara statemen if dan end dikerjakan jika selama semua elemen dalam
ekspresi adalah benar (tidak nol).
Pada kasus dengan dua pilihan, konstruksi if-else-end adalah :

if ekspresi
perintah dikerjakan jika ekspresi Benar
else
perintah dikerjakan jika ekspresi Salah
end

P-7
Jika terdapat tiga atau lebih pilihan, konstruksi if-else-end adalah:

if ekspresi1
perintah dikerjakan jika ekspresi1 Benar
elseif ekspresi2
perintah dikerjakan jika ekspresi2 Benar
elseif ekspresi2
perintah dikerjakan jika ekspresi2 Benar
elseif …
:
else
perintah dikerjakan jika tidak ada ekspresi yang benar
end

Contoh :
%Program pembelian apel
n=input('Banyaknya apel yang dibeli : ');
cost=input('Harga 1 apel Rp. ');
if n<5
harga=n*cost
elseif n>=5&n<10
harga=0.95*n*cost
elseif n>=10&n<20
harga=0.9*n*cost
else
harga=0.85*n*cost
end
Contoh Running :
» apel
Banyaknya apel yang dibeli : 3
Harga 1 apel Rp. 500
harga =
1500

4. Konstruksi switch-case
Bila sederetan perintah harus dikerjakan dengan didasarkan pada penggunaan
berulang-ulang suatu tes dengan argumen yang sama, konstruksi switch-case akan lebih
tepat digunakan. Konstruksi switch-case menggunakan bentuk :

switch ekspresi
case test_ekspresi1
deret perintah1;
case {test_ekspresi2,test_ekspresi3,…}
deret perintah2;
:
:
otherwise
deret perintah_n;
end

P-8
Ekspresi harus berupa scalar atau karakter string. Jika ekspresi adalah scalar,
ekspresi==test_ekspresi dites oleh statemen case. Jika ekspresi berupa karakter string,
maka strcmp(ekspresi, test_ekspresi1) dites. Jika keduanya sama, deret perintah1
dikerjakan dan deret perintah berikutnya yang berada sebelum end diabaikan.
Test_ekspresi dapat terdiri dari beberapa bagian, sehingga jika perbandingan pertama
tidak memberi nilai benar yang diperhatikan adalah statemen case yang kedua.
» help strcmp

STRCMP Compare strings.


STRCMP(S1,S2) returns 1 if strings S1 and S2 are the same
and 0 otherwise.

Contoh :
%Program konversi satuan
x=input('Besaran dalam cm yang akan dikonversi : ');
unit=input('Besaran dikonversi ke in,ft atau m ? ');
switch unit;
case 'in'
y=x/2.54
case{'feet','ft','kaki'}
y=x/(2.54*12)
case{'meter','m'}
y=x/100
otherwise
disp(['Unit tidak diketahui : ',unit]);
end;

Contoh Running
» satuan
Besaran dalam cm yang akan dikonversi : 100
Besaran dikonversi ke in,ft atau m ? 'kaki'
y =
3.2808

» satuan
Besaran dalam cm yang akan dikonversi : 100
Besaran dikonversi ke in,ft atau m ? 'm'
y =
1

5. Continue
Statement continue dapat digunakan pada statement for atau while. Fungsinya
adalah melanjutkan ke iterasi berikutnya tanpa menjalankan sisa statement yang ada di
bawah continue.

P-9
Contoh:
>> for i=1:5
if (i==2|i==4)
continue;
end
disp(i);
end
1
3
5
Pada kondisi i=2, atau i=4, statement disp(i) akan dilewati.

6. Break
Statement break digunakan pula pada statement kontrol for dan while untuk
menghentikan proses iterasi yang memiliki statement break.
Contoh:
>> for i=1:5
if (i==4)
break;
end
disp(i);
end
1
2
3

C. PEMBUATAN GRAFIK
Perintah plot menggambarkan data dalam array pada sumbu yang bersesuaian, dan
menghubungkan titik-titik tersebut dengan garis lurus.
Untuk memilih style penandaan, warna dan bentuk garis dapat dilakukan dengan
memberikan argumen ketiga pada fungsi plot untuk setiap pasangan array data. Argumen
tambahan ini adalah suatu karakter string yang terdiri dari satu atau lebih karakter dari
Tabel P1-1.
Jika kita tidak memilih warna dan kita menggunakan scheme default, MATLAB
akan memulainya dengan warna biru dan berputar berurutan ke ketujuh warna pertama
dalam tabel untuk setiap penambahan baris. Default style garis adalah garis mulus, kecuali
jika jika kita memberikan style garis yang lain. Tidak terdapat default penandaan, jika
tidak ada penandaan yang dipilih, maka tidak ada penandaan yang diberikan. Penggunaan
penandaan berarti menempatkan simbol yang dipilih pada stiap titik data.
Jika suatu warna, penandaan dan style garis, semuanya diberikan dalam string, warna yang
dipilih juga berlaku untuk penandaan dan garis yang digunakan.

P-10
Tabel P1-1. Style baris, warna dan penandaan
Simbol Warna Simbol Penandaan Simbol Style Garis
b Biru . Titik - Garis mulus
g Hijau o Lingkaran : Garis titik-titik
r Merah x Tanda x -. Garis terpotong
dan titik
c Cyan + Tanda +
m Magenta  Bintang -- Garis terpotong-
s potong
y Kuning Bujursangkar
k Hitam d Diamon
w Putih ^ Segitiga ke bawah
v Segitiga ke atas
< Segitiga ke kiri
> Segitiga ke kanan
p Pentagram
h heksagram

Style Grafik
Perintah colordef memungkinkan kita dapat memilih style untuk seluruh grafik.
Style default yang digunakan adalah colordef white. Style ini menggunakan latar belakang
putih, warna abu-abu disekeliling latar belakang putih, sumbu berwarna hitam dan
meamakai warna biru, hijau dan merah sebagai tiga warna pertama. Jika anda menyukai
latar belakang hitam, gunakan colordef black. Style ini menggunakan latar belakang
hitam, abu-abu gelap disekeliling latar belakang, sumbu berwarna putih dan tiga warna
pertama yaitu kuning, magenta dan cyan.
Menggambar Grid, Kotak Keterangan, Label dan Legenda
Perintah grid on memberikan garis-garis grid pada grafik yang ada pada titik-titik
tanda pada sumbu. Perintah grid off menghilangkan garis-garis grid tersebut. Grid tanpa
argumen segera akan menampilkan dan menghilangkan grid. Secara default MATLAB
dimulai dengan grid off untuk grafik dua dimensi. Normalnya sumbu dua dimensi dibatasi
dengan garis mulus yang disebut kotak sumbu. Kotak tersebut dapat dihilangkan dengan
perintah box off.
Sumbu horizontal dan sumbu vertikal dapat diberi label dengan perintah xlabel dan
ylabel. Perintah title akan menambahkan satu baris teks pada bagian atas grafik.

P-11
Kita juga dapat menambahkan label atau teks apapun di mana pun juga dalam
grafik dengan menggunakan perintah text. Format yang digunakan adalah :
text(x,y,’string’), dengan (x,y) merepresentasikan koordinat titik tengah tepi kiri dari teks
dengan satuan unit diambil dari sumbu-sumbu grafik. Jika kita ingin memberikan label,
tetapi tempatnya dapat diatur dengan menggunakan mouse, maka dapat menggunakan
perintah gtext. Perintah gtext akan memindahkan jendela aktif ke jendela figure,
memunculkan tanda silang yang mengikuti mouse sambil menunggu klik pada mouse atau
penekanan tombol. Jika salah satu dari even tersebut terjadi, teks ditempatkan dengan
sudut kiri bawah karakter pertama di lokasi tersebut.
Alternatif lain dari penggunaan teks untuk mengidentifikasi data set dalam grarik,
kita dapat menggunakan legend. Perintah legend menghasilkan kotak legenda dipojok
kanan atas grafik, menampilkan teks apapun yang kita berikan untuk setiap garis dalam
grafik. Jika ingin memindahkan legenda, lakukan dengan klik dan tahan tombol kiri
mouse di dekat pojok legenda dan tarik legenda ke lokasi yang diinginkan.
Untuk mengambil grafik yang dihasilkan dari jendela figure, dapat dilakukan
dengan copy figure (pada Edit), kemudian buka suatu file yang akan ditempati
grafik/gambar tersebut, kemudian klik paste.
Contoh :
%Contoh program grafik
t=0:0.1*pi:4*pi;
x=sin(t);
y=cos(t);
z=sin(t-2*pi/3);
plot(t,x,'b-p',t,y,'r:d',t,z,'k--');grid;
xlabel('t');ylabel('x y z');
title('Grafik fungsi trigonometri');
legend('sin(t)','cos(t)','sin(t-2*pi/3)');
gtext('sin(t)');

Grafik fungsi trigonometri


1
sin(t) sin(t)
0.8 cos(t)
sin(t-2*pi/3)
0.6

0.4

0.2
x y z

-0.2

-0.4

-0.6

-0.8

-1
0 2 4 6 8 10 12 14
t
Gambar P1-3.

P-12
Suatu jendela figure, dapat memuat lebih dari satu set sumbu. Perintah
subplot(m,n,p) membagi jendela figure yang aktif menjadi suatu matriks m x n, area
grafik dan sekaligus mengaktifkan area ke-p. Subplot dinomori dari kiri ke kanan
sepanjang baris teratas, kemudian baris kedua dan seterusnya.
MATLAB menyediakan berbagai fungsi untuk menampilkan data secara tiga
dimensi. Perintah plot dari grafik dua dimensi disempurnakan oleh perintah plot3 untuk
bekerja dalam tiga dimensi.

Contoh :
%Contoh grafik 3 dimensi
x=-5:5;
y=-5:5;
z=(50-x.^2-y.^2).^0.5;
plot3(x,y,z);grid;
xlabel(‘x’);ylabel(‘y’);zlabel(‘z’);
title(‘Grafik x^2+y^2+z^2=50’);

Grafik x2+y2+z2=50

4
z

0
5
5
0
0

-5 -5
y x
Gambar P1-4.

D. POLINOMIAL
Dalam MATLAB, polinomial direpresentasikan sebagai vektor baris dari
koefisien-koefisien polinomial tersebut dalam urutan dari derajat tertinggi ke derajat
terendah, termasuk yang berkoefisien nol.
1. Akar
Akar suatu polinomial, yang merupakan nilai yang membuat polinomial bernilai
nol merupakan problem yang mincul dalam berbagai bidang ilmu. MATLAB

P-13
menggunakan konvensi bahwa polinomial haruslah vector baris, sedangkan akarnya
adalah vector kolom.
Dalam MATLAB, akar polinomial diperoleh dengan menggunakan fungsi roots.
Contoh :
1. Carilah akar dari persamaan p = x2 + x – 6
» p=[1 1 -6];
» a=roots(p)
a =
-3
2
2. Carilah akar dari persamaan q = x3 + 3x – 5
» q=[1 0 3 -5];
» b=roots(q)
b =
-0.5771 + 1.9998i
-0.5771 - 1.9998i
1.1542

2. Penjumlahan Polinomial
MATLAB tidak menyediakan fungsi langsung untuk menjumlahkan polinomial.
Penjumlahan array biasa dapat digunakan jika kedua vektor polinomial mempunyai
ukuran yang sama. Untuk menjumlahkan polynomial p(x) dengan q(x) di atas :
» p=[0 1 1 -6];
» q=[1 0 3 -5];
» r=p+q
r =
1 1 4 -11
 Ini berarti : x3 + x2 + 4x - 11

3. Perkalian Polinomial
Perkalian polinomial dikerjakan dengan fungsi conv (yang melakukan
“convolution” dari dua array). Untuk mengalikan polinomial p(x) dengan q(x) di atas :
» p=[1 1 -6];
» q=[1 0 3 -5];
» r=conv(p,q)
r =
1 1 -3 -2 -23 30
 Ini berarti : x5 + x4 –3x3 –2x2 - 23x + 30

4. Pembagian Polinomial
Pembagian polinomial dikerjakan dengan fungsi deconv. Untuk membagi
polinomial p(x) dengan q(x) di atas :
» p=[1 1 -6];
» q=[1 0 3 -5];

P-14
» [x,y]=deconv(p,q)
x =
0
y =
1 1 -6
Hasil yang ditampilkan menyatakan bahwa polinomial p yang dibagi dengan polinomial q
menghasilkan polinomial x dan sisa y. Dalam hal ini hasil pembagian polinomial p dengan
q sama dengan 0 dan sisanya x2 + x – 6 (Hasilnya 0 karena orde polinomial pembagi lebih
tinggi dari polinomial pembilang. Jika polinomial q dibagi p :
» [x,y]=deconv(q,p)
x =
1 -1
y =
0 0 10 -11

Hasilnya : x – 1 dan sisanya : 10x – 11

5. Evaluasi
Setelah kita dapat menjumlahkan, mengurangkan, mengalikan, membagi dan
menurunkan polinomial berdasarkan pada vector baris dari koefisien-koefisiennya, kita
dapat juga mengevaluasinya. Hal tersebut dikerjakan dengan fungsi polyval.
Contoh :
» x=linspace(-4,3,71);
» p=[1 1 -6];
» y=polyval(p,x);
» plot(x,y);grid;xlabel('x');ylabel('y');title('p(x)=x^2+x-6');

p(x)=x2+x-6
6

0
y

-2

-4

-6

-8
-4 -3 -2 -1 0 1 2 3
Gambar P1-5. x

6. Polinomial Rasional
Kadang-kadang kita menemukan perbandingan polinomial, (misalnya pada fungsi
transfer), yang mempunyai bentuk :

N( x ) n1x i  n 2 x i 1  ...  n i 1
 (P1-1)
D( x ) d1x j  d 2 x j1  ...  d j1

P-15
Dengan MATLAB, bentuk di atas dapat dimanipulasi dengan memperhatikan kedua
polinomial secara terpisah. Dalam MATLAB, ada beberapa bentuk penyajian sistem yang
berhubungan dengan bentuk polinomial.
10
Misalnya suatu sistem dalam bentuk fungsi alih: .
s  4s  3
2

>> a=10;
>> b=[1 4 3];
>> c=tf(a,b)

Transfer function:
10
-------------
s^2 + 4 s + 3

>> zpk(c)

Zero/pole/gain:
10
-----------
(s+3) (s+1)

>> [r,p,k]=residue(a,b)
r =
-5
5
p =
-3
-1
k =
[]

Dari hasil penyelesaian di atas, dapat dituliskan:

10 10 5 5
    0.
s  4s  3 ( s  3)( s  1) s  3 s  1
2

Keterangan:
Penjelasan tentang fungís tf, zpk, dan residue, dapat dilihat pada >> help …

>> help tf
TF Creation of transfer functions or conversion to transfer
function.

>> help zpk


ZPK Create zero-pole-gain models or convert to zero-pole-gain
format.

>> help residue


RESIDUE Partial-fraction expansion (residues).

P-16
E. SIMULASI MODEL SISTEM DENGAN MATLAB
Salah satu metode yang sering digunakan dalam penyelesaian suatu persamaan
diferensial secara numerik adalah metode Runge-Kutta. Dalam MATLAB metode tersebut
menggunakan fungsi ode (ode23, ode45).
Misalkan suatu rangkaian RLC seperti pada Gambar P1-6 berikut.

R L

Vi C Vo

Gambar P1-6. Rangkaian RLC

Jika V0 sebagai output dan Vi sebagai input, maka sistem dapat dimodelkan dalam
bentuk persamaan diferensial sebagai berikut :

d 2Vo R dVo 1 1
  Vo  Vi (P1-2)
dt 2 L dt LC LC
Fungsi transfer antara V0 sebagai output dan Vi sebagai input, diperoleh:
1
V0 ( s )
 LC
(P1-3)
Vi ( s ) s 2  Rs  1
L LC
Jika i sebagai output dan Vi sebagai input, maka sistem dapat dimodelkan dalam
bentuk persamaan diferensial sebagai berikut:

d 2i R di 1 1 dVi
2
  i (P1-4)
dt L dt LC L dt
Fungsi transfer antara i sebagai output dan Vi sebagai input, diperoleh:
1 s
I (s)
 L
(P1-5)
Vi ( s ) s 2  R s 1
L LC

Jika persamaan tegangan dan arus pada rangkaian RLC ditransformasi Laplace, maka akan
Vi ( s)  V0 ( s) 1
diperoleh : I ( s )  dan V0 ( s )  I ( s ) , sehingga dapat dibuat block
Ls  R Cs
diagram atau diagram kotak seperti pada Gambar P1-7 berikut.

P-17
Vi(s) + I(s) 1 V0(s)
1
_
Ls  R Cs

Gambar P1-7. Diagram kotak rangkaian RLC

Dengan mengambil V0 sebagai output (y) dan Vi sebagai input (u) maka persamaan
diferensial pada persamaan (L-2) dapat diturunkan persamaan keadaannya sebagai berikut:
Misalnya : y = x1 ; dy/dt = dx1/dt = x2 ; maka : dx2/dt = -(R/L)x2 – (1/LC)x1 + (1/LC)u,
sehingga diperoleh persamaan keadaan sebagai berikut :

 dx1 
 dt   0 1   x1   0 
 dx    1  1 u
 RL   x 2   LC
(P1-6)
 2   LC 
 dt 
 x1 
dan persamaan outputnya adalah : y = C x = 1 0    x1 (P1-7)
x2 
1 0 
Jika yang akan dihitung adalah V0 dan i, maka matriks C menjadi   , sehingga
0 C 
persamaan outputnya menjadi :

 y1  1 0   x1 
 y   0 C   x  (P1-8)
 2   2
Di mana y1 merupakan tegangan output dan y2 merupakan arus.

Berdasarkan persamaan (P1-6) di atas, dapat dibuat fungsi yang akan diselesaikan: (di-
save dengan nama: rlc1.m)

function xdot=rlc1(t,x);
Vi=10;R=6;L=0.5;C=0.02;
xdot=[x(2);-1/(L*C)*x(1)-R/L*x(2)+1/(L*C)*Vi];

%Simulasi respon tegangan Rangkaian RLC (output spt. Pers.P1-7)


Vi=10;R=6;L=0.5;C=0.02;
t0=0; tf=2; %Batas waktu pengamatan
x0=[0 0]; %Kondisi awal
[t,x]=ode45(‚rlc1’,[t0 tf],x0);
vc=x(:,1); % tegangan output (teg. Pada C)
plot(t,vc,’k-‘) ;
xlabel(‚Waktu [det.]’);ylabel(‚Tegangan output[V]’);
title(‘Respon tegangan rangkaian RLC’);grid;

P-18
Hasilnya:

Gambar P1-8.

Jika outpunya tegangan dan arus, dan sumbu vertikalnya dua macam skala, serta ditambah
teks pada titik maksimumnya, maka programnya seperti berikut:

%Simulasi respon tegangan dan arus Rangkaian RLC


Vi=10;R=6;L=0.5;C=0.02;
t0=0; tf=2; %Batas waktu pengamatan
x0=[0 0]; %Kondisi awal
t01=0.001; %toleransi hitung
trace=0; %bila diisi 1 akan ditunjukkan perstep hitung
[t,x]=ode45('rlc1',t0,tf,x0,t01,trace);
vc=x(:,1);
i=x(:,2)*C;
%Find indices of nonzero elements
vmax=find(max(vc)==vc);
imax=find(max(i)==i);
plot(t,vc,'k-');%,t,i,'k:');
text(t(vmax),vc(vmax),['\bullet','Teg.max
',num2str(vc(vmax))],...
'VerticalAlignment','middle','HorizontalAlignment','left',...
'Color','red','FontSize',8);
xlabel('Waktu [det.]');ylabel('Vo[V]');
title('{\itRespon tegangan dan arus rangkaian RLC}',...
'FontSize',12);grid;
h1=gca; %Get handle to current axis.
h2=axes('Position',get(h1,'Position'));
plot(t,i,'LineWidth',1);ylabel('Arus [A]');
set(h2,'YAxisLocation','right','Color','none',...
'XTickLabel',[]);
text(t(imax),i(imax),['\bullet','Arus max =
',num2str(i(imax))],...
'VerticalAlignment','middle','HorizontalAlignment','left',...
'Color','black','FontSize',8);

P-19
Hasilnya:

Gambar P1-9.

Jika model rangkaian RLC di atas, dipilih: R=6;L=0.5;C=0.02; maka fungsi alih
(transfer function) pada persamaan (P1-3) dapat ditulis:
V0 ( s) 100
 2
Vi ( s ) s  12 s  100
Diagram kotaknya:

Vi(s) 100 Vo(s)


s2  12s  100

Dalam bentuk state-space : dx/dt = Ax + Bu ; y = Cx + Du , berdasarkan persamaan (P1-


6) dan (P1-7) diperoleh matriks-matriksnya:
 0 1   0 
A  ; B    ; C  1 0; D  0
 100  12 100 

 Sistem yang disajikan dalam bentuk diagram blok dan state-space dapat disimulasikan
dengan menggunakan fasilitas SIMULINK.
Dengan membuat program simulink, diperoleh seperti pada Gambar P1-10.
Untuk mengatur parameter pada setiap blok, klik kiri 2x pada blok tersebut, maka block
parameter akan ditampilkan, kemudian kita isi sesuai dengan nilai yang diinginkan.

P-20
Gambar P1-10.

>> load tf
>> load ss
>> [V1' V2']
ans =
0 0 0 0
0.0600 0 0.0600 0
0.1000 0 0.1000 0
0.1600 1.3951 0.1600 1.3951
... ... ... ...
2.9600 10.0000 2.9600 10.0000
3.0000 10.0000 3.0000 10.0000
 Pada Simulation parameters: stop time = 3.0

 Dari grafik respon yang diperoleh, semuanya sama.

Untuk menyederhanakan diagram kotak dapat menggunakan fungsi: series, parallel,


feedback, dan cloop. Sintaks:
[nums,dens]=series(num1,den1,num2,den2)
[nump,denp]=parallel(num1,den1,num2,den2)
[numf,denf]=feedback(num1,den1,num2,den2,sign)
[numc,denc]=cloop(num,den,sign) %untuk sistem unity feedback
Pilihan sign, adalah -1 untuk feedback negatif, dan +1 untuk feedback positif.

P-21
Contoh untuk sistem rangkaian RLC:
>> n1=1;d1=[0.5 6];
>> n2=1;d2=[0.02 0];
>> [n3,d3]=series(n1,d1,n2,d2);
>> [n,d]=cloop(n3,d3,-1)
n =
0 0 1
d =
0.0100 0.1200 1.0000

Dari hasil di atas di peroleh fungsi alih total:

Vo (s) 1 100
  2
Vi (s) 0.01s  0.12s  1 s  12s  100
2

Matlab memiliki beberapa fungsi yang berguna untuk mendesain dan menganalisis
suatu sistem kontrol linier. Fungsi-fungsi dasar tersebut, antara lain:
- bode
Bode plot menghasilkan dua buah grafik, yang pertama memetakan ratio
amplitudo dari suatu fungsi alaih terhadap frekwensi, dan yang kedua memetakan sudut
fasa dari fungsi alih terhadap frekwensi.
- nyquist
Nyquist plot menghasilkan plot tunggal yang memetakan komponen nyata dari
fungsi alih loop terbuka terhadap komponen imajiner dari diferensial nilai frekwensi.

F. PEMROGRAMAN GUI DENGAN MATLAB


GUIDE atau GUI builDEr merupakan sebuah graphical user interface (GUI)
yang dibangun dengan obyek grafis seperti tombol (button), kotak teks, slider, sumbu
(axes), maupun menu.
Untuk memulai penggunaan GUI Matlab, dapat dilakukan dengan dua cara, yaitu:
- Melalui Command Matlab, ketik: >>guide, atau
- Klik tombol Start Matlab, pilih MATLAB, kemudian pilih GUIDE (GUI Builder),
sehingga muncul tampilan seperti pada Gambar P1-11.
Selanjutnya kita dapat memulai pembuatan program aplikasi.

P-22
Gambar P1-11.

Penjelasan lengkapnya dapat dilihat pada (Sugiharto, 2006: 53-169), atau melalui
demonstrasi pembuatan GUI dengan GUIDE, yang tersedia pada file:
...\demos\CreatingaGUIwithGUIDE_viewlet_swf.html.

Untuk mendapatkan tulisan yang berhubungan dengan kontrol PID di internet, dapat dicari
dengan: http://www.google.co.id, seperti Gambar P1-12.

Gambar P1-12.

Untuk memperoleh program-program simulasi sistem kontrol yang interaktif (dapat


dimanfaatkan untuk menganalisis respon dan kestabilan suatu sistem, dapat dicari pada:
Toolboxes, Control System, Interactive Demos, ...
Misalnya RLC Circuit Response, dapat disimulasikan seperti pada Gambar P1-13.

P-23
Gambar P1-13.

Belajar GUI Matlab dari Internet


http://www.ask.com/web?q=gui%20matlab&o=15184&l=dis&qsrc=2871&gct=tab
pilih:
Creating A Graphical User Interface with MATLAB - YouTube
Feb 19, 2009 ... MATLAB tutorial covering how to build a GUI using
GUIDE with buttons, menus, text boxes, axes, and more. Download code
and watch other ...
www.youtube.com/watch?v=D_hmws6dwgg

http://www.youtube.com/watch?v=D_hmws6dwgg
http://www.youtube.com/watch?v=60zHJ1sEFhQ&feature=related

CLF Clear current figure.


CLC Clear command window.
CLC clears the command window and homes the cursor.
CLA Clear current axis.
CLEAR Clear variables and functions from memory.

P-24

Anda mungkin juga menyukai