Sistem Kendali
02
1. PENDAHULUAN
Program komputer atau Software yang digunakan untuk program membaca atau
menulis Port 1, Port 2, Port A, B, dan C pada PC-Link SERIAL PPI antara lain adalah
Borland Delphi atau Turbo Pascal. Akan tetapi sejalan dengan perkembangan sistem
operasi komputer dimana komputer tidak lagi menggunakan operasi sistem DOS maka
program seperti Turbo Pascal tidak dapat lagi digunakan/di install dikomputer. Agar
mudah dipelajari maka pada uraian kali ini akan digunakan Software MATLAB sebagai
pengganti program Delphi atau Pascal. MATLAB sangat cocok dengan operasi sistem
Windows 7 atau Windows 8 baik 32 bit maupun 64 bit, sistem operasi Windows 7 atau
Windows 8 umumnya digunakan pada PC/Laptop sekarang ini.
Modul PC-Link SERIAL PPI dengan tampilan Led diperlihatkan pada gambar di bawah
7 5
4
6
1: PC-Link SERIAL PPI, 2: Terminal Untuk sumber DC (9-12 V)
3: Kabel Penghubung Serial/COM port komputer ke modul PPI
4: Adaptor DC 9 Volt, 5: Konverter kabel USB ke serial ( jika program ditulis
pada Laptop, umumnya Laptop tidak mempunyai Com Port)
6: Modul penampil Led, 7: Led
Komputer
Laptop
USB
Sumber DC
Kabel COM/Serial
Konverter
USB ke
serial
+9 V Kabel DB9/
Serial
GND
Port
Port
A,B, C
1&2
Ke Pin
Port
5V
VCC
Tampilan
Led
HUBUNGAN SERIAL PPI DENGAN KOMPUTER
SERIAL PPI dapat dihubungkan dengan COM port komputer atau dengan kontroler lain
yang juga memiliki interface UART RS-232. Perhatikan hubungan jalur komunikasinya.
3. MATLAB
Matlab adalah salah satu bahasa pemrograman yang dilengkapi dengan banyak
fasilitas dan sangat mudah dipelajari. Software ini dapat menangani operasi perhitungan
bilangan nyata, bilangan kompleks, manipulasi matriks, tampilan grafik, operasi
Input/Output dengan komunikasi serial dan juga dilengkapi dengan program-program
paket yang disebut sebagai Simulink dan Toolbox untuk keperluan simulasi. Perintah atau
Syntax dalam Matlab memiliki kemiripan dengan bahasa matematik biasa sehingga hal ini
sangat membantu para pemakai (MATLAB singkatan dari MATrix LABoratory). Sebagai
contoh jika ingin ditentukan jumlah suatu array, katakanlah array A = [ 2 3 4 1], maka
dalam Matlab cukup ditulis perintah sum (A) dan setelah dijalankan maka pada layar akan
muncul jawaban ans = 10 ( dimana arti perintah sum adalah jumlan dan ans adalah
jawab (answer)).
Array A
Array A
Instruksi
Jawaban
perintah dalam Matlab dan fungsi matematik dasar diberikan masing-masing pada Tabel
2.1 dan 2.2
Tabel 2.1
Perintah Keterangan
clc Membersihkan layar
who Melihat variabel yang digunakan dalam suatu program
clear Menghapus variabel pada program
help Fasilitas on line help
lookfor Fungsinya mirip dengan help
Tabel 2.2
Fungsi Keterangan
abs Nilai absolut atau magnitude suatu bilangan kompleks
acos Invers cos
acosh Invers cos hiperbolik
angle Sudut bilangan kompleks dalam radian
asin Invers sin
asinh Invers sin hiperbolik
atan Invers tan
atanh Invers tan hiperbolik
conj Conjugate bilangan kompleks
cos Cos
cosh Cos hiperbolik
exp e pangkat
imag Bagian khayal bilangan kompleks
real Bagian nyata bilangan kompleks
log Log basis e
log10 Log basis 10
sin Sin
sinh Sin hiperbolik
sqrt akar
tan Tangen
tanh Tangan hiperbolik
bin2dec Konversi bilangan biner ke desimal
dec2bin Konversi bilangan desimal ke biner
dec2hex Konversi bilangan desimal ke hexadesimal
ARRAY DAN MATRIKS
Array dalam matematik dikenal sebagai vektor ( baris dan kolom ). Dalam Matlab operasi
antara array dengan matriks dibedakan. Pada array : Operasi penjumlahan, pengurangan,
perkalian, pembagian, dan perpangkatan antara sesama array atau antara array dengan
skalar dibuat elemen per elemen. Sedangkan pada matriks aturannya sesuai dengan aturan
aljabar matriks. Misal suatu array A dengan elemen 1, 2, 3, dan 4 dalam satu baris (berupa
vektor baris) jika ditulis dalam bahasa Matlab adalah A = [ 1 2 3 4], atau A = 1: 4, atau A
= linspace (1,4,4). Notasi dan karakter yang banyak digunakan untuk penulisan array dan
matriks adalah :
: ; () [] spasi
Jika ditulis array A = [1 2 3 4] dimana antara elemen 1 dengan 2 dan seterusnya diantarai
dengan spasi, maka matlab mengartikan sebagai vektor baris. Penulisan A = 1 : 4, adalah
penulisan singkat dimana array A mempunyai empat elemen, dengan nilai elemen pertama
1, elemen kedua 2 dan seterusnya. Penulisan A =linspace (1,4,4) diartikan bahwa elemen
pertama dari A adalah 1, elemen ke empat 4, dan jumlah elemen 4. Jika dituliskan A = [1;
2; 3; 4] maka Matlab mengartikan A adalah suatu vektor kolom. Notasi yang digunakan
untuk operasi perhitungan pada array dam matriks diperlihatkan pada tabel 2.3
Tabel 2.3
Notasi Keterangan
+ Penjumlahan
- Pengurangan
*, .* Perkalian (* untuk matriks) (.* untuk array)
./ Pembagian ( A dibagi B)
.\ Pembagian ( B dibagi A)
‘ Transpose dengan conjugate
.’ Transpose tanpa conjugate
Fundamental dari Matlab adalah matriks oleh sebab itu banyak disediakan perintah atau
fungsi tambahan untuk memanipulasi matriks. Misalkan A = [1 2 3 4], dan B =[5 6 7 8],
jika dituliskan perintah A * B, maka Matlab akan memberi jawaban (Error using ==> *
Inner matrix dimensions must agree ) yang berarti perkalian A dengan B tidak dibenarkan
karena A dan B tidak bisa diperkalikan menurut kaidah aljabar matriks. Jika dituliskan A
.* B maka jawabannya adalah ( ans = 5 12 21 32 ), pada kasus ini penggunaan
notasi .* akan meyebabkan Matlab mengartikan A, dan B masing-masing sebagai array
dan perkaliannya dilakukan elemen per elemen. Berbagai perintah yang berkaitan dengan
matriks dicantumkan pada tabel 2.4
Tabel 2.4
Perintah Keterangan
det Determinan matriks
inv Invers matriks
size Ukuran matriks (baris kolom)
length Panjang /maksimum (kolom atau baris)
ones Matriks dengan semua elemen bernilai satu
zeros Matriks dengan semua elemen bernilai nol
eye Matriks identitas
for loop
for n = array
……….. perintah
end
Misalkann diberi nilai n = 1: 3, maka proses pengulangan dilakukan 3 kali. Pada
pengulangan pertama nilai n = 1, kemudian ditingkatkan menjadi 2 ( dari 1+1 ) dan pada
pengulangan terakhir nilai n menjadi 3. Jika ditulis n = 5:-1:1, maka proses pengulangan
dilakukan lima kali, dimana pada pengulangan pertama nilai n = 5 dan terus menurun pada
pengulangan berikutnya.
Tabel 2.5
Operator Keterangan
< Kurang dari
<= Kurang dari atau sama dengan
> Lebih besar
>= Lebih besar atau sama dengan
== Sama dengan
~= Tidak sama dengan
& Dan (and )
| Atau ( or)
~ Tidak (not)
while loop
Format penulisan
while ekspresi
………. Perintah
end
Jika ekspresi yang terletak pada sebelah kanan dari while benar atau dipenuhi maka
komputer akan mengeksekusi perintah yang terdapat antara while dan end, kemudian
proses diulang kembali. Jika ekspresi yang terletak pada sebelah kanan while salah atau
tidak dipenuhi maka eksekusi dilanjutkan pada perintah perintah yang terletak dibawah
baris end. Contoh potongan program berikut :
……………..
n=0
while n < 2
n= n + 1
end
…………………….
Pada potongan program di atas, proses pengulangan dilakukan dua kali, pada pengulangan
pertama mula-mula nilai n = 0 dan diubah menjadi 1 ( dengan n = n +1), dan pada proses
pengulangan kedua nilai n =1 dan diubah mejadi 2. Proses pengulangan ke tiga tidak
dilakukan karena ekpresi sudah tidak memenuhi.
Format penulisan
if ekspresi
……….. perintah
end
Jika ekspresi yang terletak pada sebelah kanan if memenuhi maka komputer akan
mengesekusi perintah yang terletak pada baris antara if dan end. Sebaliknya jika ekspresi
tidak memenuhi eksekusi dilanjutkan pada perintah perintah dibawah baris end.
if ekspresi
……….. perintah
else
…… perintah
end
Jika ekspresi yang terletak pada sebelah kanan if memenuhi maka komputer akan
mengesekusi perintah yang terletak pada baris antara if dan else. Sebaliknya jika ekspresi
tidak memenuhi eksekusi dilanjutkan pada perintah perintah yang terletak pada baris
antara else dan end.
if ekspresi
……… perintah
elseif ekspresi
…… perintah
else
…… perintah
end
Jika ekspresi yang berada pada baris sebelah kanan if memenuhi maka komputer akan
mengesekusi perintah yang terletak pada baris antara if dan elseif, dan selanjutnya
mengesekusi perintah – perintah yang berada pada baris di bawah end. Sebaliknya jika
ekspresi yang terletak pada sebelah kanan if tidak memenuhi eksekusi dilanjutkan ke
elseif, jika ekspresi yang terletak pada sebelah kanan elseif memenuhi maka perintah
perintah yang berada pada baris antara elseif dan else yang dieksekusi, dan jika tidak,
maka perintah yang berada pada baris antara else dan end yang dieksekusi.
Contoh 2.1
Konversikan bilangan biner A=11110000 ke bilangan desimal dan heksadesimal
Solusi
Program
Hasil
A=
11110000
A_desimal =
240
A_biner =
11110000
A_hex =
F0
4. SUBPROGRAM
Nama file sama
dengan nama
function
Matlab menyediakan fasilitas untuk membuat file-file yang berfungsi sebagai subprogram
atau subroutin, file tersebut kemudian disebut sebagai fungsi m-file. Fungsi m-file ini
dirancang sendiri oleh pengguna dengan tujuan untuk membantu program utama. Dimana
subprogram ini dapat dipanggil oleh program utama jika diperlukan. Untuk menulis
fungsi m-file syaratnya adalah :
Menggunakan instruksi function
Nama file harus sama dengan nama fungsi
Folder
*)
file file
Contoh sebuah file dengan instruksi function diperlihatkan pada gambar diatas
Contoh 2.2
a P1.0 P2.6
5V P2.5 P2.7
VCC b
Off
c
d 5 detik 5 detik
Perhatikan gambar diatas, terminal Led a dihubungkan dengan pin P1.0 pada Port 1 modul
PPI, demikian juga terminal Led b, c dan d dihubungkan dengan pin P2.5, P2..6, dan P2.7
pada Port 2, dan terminal VCC dihubungkan sumber ouput VCC modul PPI. Sebuah Laptop
yang berisi software Matlab dihubungkan ke modul PPI melalui kabel konverter USB to
serial, dalam hal ini Laptop tersebut mendeteksi kehadiran Port serial dengan code COM
32. Tuliskan sebuah program Matlab untuk mengatur nyala Led pada rangkaian diatas
dengan pola led a, b, c, dan d nyala serentak selama 5 detik kemudian padam serentak
juga selama 5 detik, siklus nyala padam dari led tersebut terus berulang sampai 10 kali.
Setting Input Buffer Size: 128, Flow Control: none, 'Baud Rate: 9600, 'Parity: none, Data
Bits: 8, Stop Bit: 1, 'Time out: 100.
Solusi
Nilai biner dan desimal untuk mengakses bit 0 Port 1 dan bit 5, 6, dan 7 Port 2 ditunjukkan
pada tabel berikut. Sebuah fungsi m file ditulis untuk menangani masalah delay atau waktu
tunda yang dibutuhkan agar led nyala selama 5 detik, dengan juga sebaliknya. Fungsi
tersebut diberi nama tunda ( lihat penjelasan sebelumnya).
Pin Keluaran Biner Desimal Kondisisi Led
Program
Soal
1. Buatlah program sederhana untuk mengubah bilangan decimal 64 ke biner
(gunakan instruksi dec2bin (64), dan dec2bin (64,8))
2. Sama dengan contoh 2.2, akan tetapi jika semua pin pada Port 1 logika 0, maka
pin Port 2 logika 1, demikian juga sebaliknya. Gunakan Serial Port Com 17 dan
tunda waktu 1 detik.