cerebellar model articulation controller) dan rbf (radial ... · tugas akhir diajukan guna...
TRANSCRIPT
Perbandingan Unjuk Kerja Jaringan Syaraf Tiruan CMAC
(Cerebellar Model Articulation Controller) dan RBF (Radial Basis
Function) pada Pengendalian Plant Suhu secara On- line
TUGAS AKHIR
Diajukan guna melengkapi persyaratan dalam
menyelesaikan pendidikan tingkat Sarjana/Strata Satu
di Jurusan Teknik Elektro Fakultas Teknik
Universitas Diponegoro
Oleh :
Amin Fauzan
L2F 000 571
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS DIPONEGORO SEMARANG
2004
HALAMAN PENGESAHAN
Laporan Tugas Akhir dengan judul "Perbandingan Unjuk Kerja
Jaringan Syaraf Tiruan CMAC (Cerebellar Model Articulation Controller)
dan RBF (Radial Basis Function) pada Pengendalian Plant Suhu secara On –
line“ yang disusun oleh:
Nama : AMIN FAUZAN
NIM : L2F 000 571
Telah disetujui dan disahkan di Semarang pada tanggal :
...............................2004
Menyetujui/Mengesahkan,
Pembimbing I,
Wahyudi, ST. MT.
NIP. 132 086 662
Pembimbing II,
Iwan Setiawan, ST. MT.
NIP. 132 283 183
Ketua Jurusan Teknik Elektro
Fakultas Teknik Universitas Diponegoro,
Ir. Sudjadi, MT.
NIP. 131 558 567
PENGESAHAN REVISI TUGAS AKHIR
Revisi Tugas Akhir dengan judul “Perbandingan Unjuk Kerja Jaringan
Syaraf Tiruan CMAC (Cerebellar Model Articulation Controller) dan RBF
(Radial Basis Function) pada Pengendalian Plant Suhu secara On – line”
yang disusun oleh:
Nama : AMIN FAUZAN
NIM : L2F 000 571
telah disetujui dan disahkan pada
Tanggal : 2004.
Tempat : Semarang
Menyetujui dan mengesahkan,
Ketua Tim Penguji,
Achmad Hidayatno, ST. MT. NIP. 132 137 933
Sekretaris Tim Penguji,
Yuli Christyono, ST. MT. NIP. 132 163 660
Anggota Tim Penguji,
Trias Andromeda,ST MT. NIP. 132 283 185
ABSTRAK
Sebuah pendekatan dalam pengendalian plant yang parameter-parameternya tidak
diketahui dapat dilakukan dengan menggunakan jaringan syaraf tiruan. Tidak semua jenis
jaringan syaraf tiruan cocok untuk mengendalikan plant secara on-line. Setiap jaringan syaraf
tiruan memiliki kecepatan beradaptasi atau konvergensi yang berbeda, tergantung pada struktur
jaringan dan algoritma pembelajaran yang digunakan. Pemilihan jenis jaringan syaraf tiruan
untuk mengendalikan plant secara on-line dapat dilakukan dengan mengetahui unjuk kerja
masing-masing jaringan pada pengendalian secara on-line.
Pada tugas akhir ini dilakukan pengujian terhadap unjuk kerja jaringan syaraf CMAC
dan RBF untuk mengendalikan plant suhu secara on-line. Pengujian untuk mengetahui
perbandingan unjuk kerja kedua jaringan syaraf dilakukan dengan pengujian pengaruh bobot
pembelajaran, pengujian referensi naik, pengujian referensi turun dan pemberian gangguan.
Hasil pengujian menunjukkan bahwa aplikasi jaringan syaraf CMAC pada plant suhu
mempunyai unjuk kerja yang lebih baik daripada jaringan syaraf RBF. Jaringan syaraf tiruan
CMAC memiliki laju pembelajaran yang lebih cepat dan mampu mengatasi pengaruh gangguan
lebih cepat daripada jaringan syaraf RBF.
Kata kunci : Jaringan Syaraf Tiruan, CMAC, RBF, Plant Suhu
.
ABSTRACT
A approach in controlling of plant which is its parameters unknown can be done by using
artificial neural network. Not all of artificial neural network type suited for controlling plant on-
linely. Each artificial neural network have a different speed adaptation or konvergence, depend
on network structure and study algorithm. Election of artificial nerve network type to control plant
on-linely can be done if we know each performance of neural network operation on-linely.
At this final project we try to make experiment to show performance of CMAC and RBF’s
neural network at operation of temperature plant on-linely. Examination to show the performace
of controller is done by examination of influence of study wight to system respon, examination of
reference go up, examination of reference go down and giving of trouble.
Result of examination indicate that the application of CMAC’s neural network at
temperature plant show better performance than RBF’s neural network. It has faster rate of study
and can overcome influence of trouble quickly than RBF’s neural network.
Keyword : Artificial Neural Netwark, CMAC, RBF, Temperature Plant.
KATA PENGANTAR
بسم اهللا الرحمن الرحیمPuji dan syukur penulis panjatkan kepada Allah SWT atas rahmat dan
karunia-Nya, sehingga pelaksanaan tugas akhir dan penyusunan laporan ini dapat
terselesaikan. Shalawat dan salam semoga senantiasa tercurah atas Nabi
Muhammad Rasulullah SAW.
Tugas akhir dengan judul "Perbandingan Unjuk Kerja Jaringan Syaraf
Tiruan CMAC (Cerebellar Model Articulation Controller) dan RBF (Radial Basis
Function) pada Pengendalian Plant Suhu secara On-line" ini diajukan untuk
memenuhi syarat akhir untuk menyelesaikan pendidikan Program Strata 1 pada
Jurusan Teknik Elektro Fakultas Teknik Universitas Diponegoro Semarang.
Rasa terima kasih yang tulus kami ucapkan kepada semua pihak yang telah
membantu selama pelaksanaan tugas akhir ini.
1. Bapak dan Ibu serta Adik – adikku yang selalu memberikan kasih sayang,
doa dan semangat.
2. Bapak Ir. Sudjadi, MT, selaku Ketua Jurusan Teknik Elektro Fakultas
Teknik Universitas Diponegoro Semarang.
3. Bapak R. Rizal Isnanto, ST. MT. MM., selaku koordinator Tugas Akhir
yang telah mengurus keperluan administrasi Tugas Akhir Teknik Elektro
Universitas Diponegoro.
4. Bapak Wahyudi, ST. MT. dan Bapak Iwan Setiawan, ST. MT., selaku
dosen pembimbing I dan II yang telah memberi bimbingan dan
pengarahan dalam penyusunan laporan Tugas Akhir.
5. Bapak Sumardi, ST. MT., selaku Kepala Laboratorium Teknik Kontrol
Otomatik.
6. Para aktivis Lab. Teknik Kontrol Otomatik, Mas Andy N ’98, Mas Sunardi
’99, Mas Abbas ‘99, Mas B4t0q ’99, Mas Agusti ’99, Ari Otong ‘00, Eko
Kodok ’00, Udin Geboy ’00, Deni DJNZ ’00, Erik ’00, Satria ‘01, dan
rekan – rekan aktivis lab. lain: Dalma ’99, Sri ‘Embong’ ’00, Arif Januar
’00, Ronald ‘bebek’ ’00, Feny ‘pepenk’ ’00, Nanda ‘Brewers’ ’00,, Andy
Hartono ’00, tHE_konC’00, Reza ’01, Nyoto ‘saridin’ 01.
7. Rekan–rekan angkatan 2000, terima kasih atas kekompakan dan kerjasama
selama ini.
8. 23 smunsa ’00 : Fredy Kam-Pret, Ipoel, Reza Parto, Ari Mukong, Anto
Ireng, Gogox, Bowok, Del Christo, dan Widyawan Candra, kalian adalah
sahabat-sahabat terbaikku.
9. Teman-teman kost putra Biru Langit, Dephit, Mekel, Dian, Gendut, Aries,
dan Made, terima kasih atas tumpangan tidurnya.
10. “Bening”, semua yang hadir dalam perjalanan “Hijau” kita akan senantiasa
menjadi pelajaran berharga dalam perjalananku.
11. Yulita Novianty, terimakasih atas doa dan nasihatnya, keep pray for me
and always be a simple and smart girl.
12. Rekan – rekan tim KKN, Ari, Adhi, Cacha. Lia, Amar dan Retno, (seperti
permintaan kalian nama kalian udah tak tulis) ayooo…cepetan..lulus……!,
Pak Lurah dan Ibu, terima kasih karena telah menganggap kami sebagai
anak.
13. Rekan – rekan remaja masjid Al –Hikmah
14. Dan semua pihak yang tidak dapat penulis sebutkan satu persatu yang
telah membantu hingga terselesainya tugas akhir dan laporan tugas akhir
ini.
Semoga pembuatan tugas akhir ini dapat memberikan manfaat bagi
perkembangan ilmu kontrol pada khususnya dan seluruh pihak yang
berkepentingan.
Semarang, Oktober 2004
Penulis
DAFTAR ISI
Halaman Judul .............................................................................................. i
Halaman Pengesahan .................................................................................... ii
Pengesahan Revisi Tugas Akhir ................................................................... iii
Abstrak ......................................................................................................... iv
Abstract ........................................................................................................ v
Kata Pengantar ............................................................................................. vi
Daftar Isi....................................................................................................... viii
Daftar Gambar .............................................................................................. xi
Daftar Tabel.................................................................................................. xv
BAB I PENDAHULUAN
1.1 Latar Belakang ................................................................................ 1
1.2 Tujuan............................................................................................. 2
1.3 Pembatasan Masalah ....................................................................... 2
1.4 Sistematika Penulisan...................................................................... 3
BAB II DASAR TEORI
2.1 Blok Diagram Kontrol Fixed Stabilising Controller ........................ 4
2.2 Algoritma Least Mean Square (LMS).............................................. 5
2.3 Jaringan Syaraf Tiruan .................................................................... 5
2.4 CMAC ( Cerebellar Model Articulation Controller )....................... 7
2.4.1 Struktur Dasar CMAC ............................................................ 7
2.4.2 Pemetaan Titik Ruang Masukan pada CMAC......................... 8
2.4.3 Kotak Operasi CMAC ............................................................ 13
2.4.4 Algoritma Pelatihan CMAC secara Iteratif.............................. 14
2.5 RBF ( Radial Basis Function )......................................................... 15
2.5.1 Struktur Dasar RBF ................................................................ 15
2.5.2 Strategi Pembelajaran Jaringan RBF....................................... 17
2.5.3 Algoritma Pelatihan RBFN secara Iteratif ............................... 18
2.6 Penguat Operasional (Operasional Amplfier)................................... 18
2.6.1 Penguat Tak Membalik (Non-Inverting Amplifier) .................. 18
2.6.2 Penguat Selisih (Differential Amplifier) .................................. 19
2.6.3 Pembanding (Comparator) ..................................................... 20
BAB III PERANCANGAN
3.1 Perancangan Kontrol Jaringan Syaraf Tiruan CMAC dan RBF........ 21
3.1.1 Penentuan Nilai Gain Proporsional Jaringan Syaraf
CMAC dan RBF .................................................................... 21
3.1.2 Penentuan Nilai Laju Konvergensi Jaringan Syaraf
CMAC dan RBF .................................................................... 21
3.1.3 Perancangan Kontrol Jaringan Syaraf CMAC ......................... 22
3.1.4 Perancangan Kontrol Jaringan Syaraf RBF ............................. 27
3.2 Perancangan Perangkat Lunak (Software)........................................ 32
3.2.1 Sofware Jaringan Syaraf CMAC............................................. 34
3.2.2 Sofware Jaringan Syaraf RBF ................................................. 36
3.3 Perancangan Perangkat Keras (Software)......................................... 39
3.3.1 Rangkaian Digital to Analog Converter (DAC) ..................... 40
3.3.2 Rangkaian Analog to Digital Converter (ADC) ...................... 40
3.3.3 Rangkaian Pengkondisi Sinyal I.............................................. 41
3.3.4 Rangkaian Pengkondisi Sinyal II ............................................ 42
3.3.5 Plant Suhu dengan PWM Driver ............................................ 43
3.3.6 Mikrokontroller AT89s51....................................................... 44
BAB IV PENGUJIAN DAN ANALISIS
4.1 Pengujian Jaringan Syaraf CMAC dan RBF secara On-line............. 48
4.2 Pengujian Jaringan Syaraf CMAC ................................................... 50
4.2.1 Pengaruh Nilai Laju Konvergensi terhadap Transien Suhu...... 50
4.2.2 Pengaruh Gain Proporsional terhadap Transien Suhu.............. 52
4.2.3 Pengaruh Nilai Generalisasi terhadap Transien Suhu .............. 55
4.3 Pengujian Jaringan Syaraf RBF ....................................................... 57
4.3.1 Pengaruh Laju Konvergensi terhadap Transien Suhu .............. 57
4.3.2 Pengaruh Nilai Gain Proporsional terhadap Transien Suhu .... 60
4.3.3 Pengaruh Jumlah Fungsi Basis terhadap Transien Suhu ......... 62
4.4 Perbandingan Unjuk Kerja Jaringan Syaraf CMAC dan RBF .......... 65
4.4.1 Pengujian Pengaruh Pembelajaran .......................................... 65
4.4.2 Pengujian Referensi Naik ....................................................... 67
4.4.3 Pengujian Referensi Turun...................................................... 69
4.4.4 Pengujian Gangguan............................................................... 71
BAB V PENUTUP
5.1 Kesimpulan ..................................................................................... 75
5.2 Saran ............................................................................................... 76
Daftar Pustaka
Lampiran A Senarai Program
Lampiran B Tampilan Program
Lampiran C Skematik Rangkaian
Lampiran D Hasil Pengujian Perangkat Keras
Lampiran E Data Sheet
DAFTAR GAMBAR
Gambar 2.1 Blok diagram kontrol dengan skema fixed
stabilising controller ............................................................. 4
Gambar 2.2 Model neuron jaringan syaraf................................................. 6
Gambar 2.3 Struktur dasar jaringan syaraf tiruan CMAC.......................... 7
Gambar 2.4 Pemetaan ruang masukan CMAC 1 dimensi ........................... 9
Gambar 2.5 Pemetaan 2 dimensi untuk tiap titik ruang
masukan dengan pemetaan langsung ...................................... 11
Gambar 2.6 Hasil evaluasi generator alamat pada overlay 1....................... 12
Gambar 2.7 Hasil evaluasi generator alamat pada overlay 2....................... 12
Gambar 2.8 Hasil evaluasi generator alamat pada overlay 3....................... 13
Gambar 2.9 Aliran operasi CMAC dengan metoda Concatenation ............ 13
Gambar 2.10 Aliran operasi CMAC dengan metoda pemetaan langsung...... 14
Gambar 2.11 Struktur dasar jaringan syaraf RBF........................................ 15
Gambar 2.12 Operasi jaringan syaraf RBF dengan 2 masukan .................. 16
Gambar 2.13 Fungsi Gaussian..................................................................... 17
Gambar 2.14 Penguat tak membalik ............................................................ 18
Gambar 2.15 Penguat selisih ....................................................................... 19
Gambar 3.1 Diagram alir generator alamat ................................................ 24
Gambar 3.2 Diagram alir keluaran CMAC untuk alamat-
alamat yang aktif .................................................................... 25
Gambar 3.3 Diagram alir pembaharuan bobot pada alamat-
alamat aktif CMAC ................................................................ 26
Gambar 3.4 Diagram alir algoritma kontrol CMAC................................... 27
Gambar 3.5 Grafik jaringan RBF dengan 4 fungsi basis............................ 28
Gambar 3.6 Diagram alir perancangan jaringan RBF yang digunakan ....... 29
Gambar 3.7 Diagram alir perhitungan keluaran RBF 2 dimensi ................. 30
Gambar 3.8 Diagram alir algoritma kontrol RBF ....................................... 31
Gambar 3.9 Diagram alir program utama................................................... 32
Gambar 3.9 Diagram alir program utama (Lanjutan) ................................. 33
Gambar 3.10 Diagram blok hardware sistem pengatur suhu ........................ 39
Gambar 3.11 Rangkaian DAC 0808 ............................................................ 40
Gambar 3.12 Rangkaian Free Running ADC............................................... 41
Gambar 3.13 Pengkondisi sinyal 0 – 5 Volt menjadi -5 – 5 Volt.................. 42
Gambar 3.14 Skema plant suhu dengan PWM driver .................................. 43
Gambar 3.15 Rangkaian PWM Driver untuk Pemanas ................................ 43
Gambar 3.16 Rangkaian minimum mikrokontroller dan RS 232.................. 44
Gambar 3.17 Diagram alir komunikasi serial mikrokontroller dan PC ......... 45
Gambar 4.1 Respon plant suhu secara ikal terbuka .................................... 48
Gambar 4.2 Respon transien suhu dengan kontrol CMAC untuk
referensi 50° C, gain proporsional 1,5, generalisasi
60 dan laju konvergensi 0,1 ................................................... 50
Gambar 4.2 Respon transien suhu dengan kontrol CMAC untuk
referensi 50° C, gain proporsional 1,5, generalisasi
60 dan laju konvergensi 0,1 (Lanjutan) .................................. 51
Gambar 4.3 Respon transien suhu dengan kontrol CMAC untuk
referensi 50° C, gain proporsional 1,5, generalisasi
60 dan laju konvergensi 0,7 ................................................... 51
Gambar 4.4 Respon transien suhu dengan kontrol CMAC untuk
referensi 50° C, generalisasi 60, laju konvergensi 0,1
dan gain proporsional 0,5 ....................................................... 53
Gambar 4.5 Respon transien suhu dengan kontrol CMAC untuk
referensi 50° C, generalisasi 60, laju konvergensi 0,1
dan gain proporsional 4 .......................................................... 54
Gambar 4.6 Respon transien suhu dengan kontrol CMAC untuk
referensi 50° C, laju konvergensi 0,1, gain proporsional 2
dan generalisasi 30 ................................................................ 55
Gambar 4.6 Respon transien suhu dengan kontrol CMAC untuk
referensi 50° C, laju konvergensi 0,1, gain proporsional 2
dan generalisasi 30 (Lanjutan) ............................................... 56
Gambar 4.7 Respon transien suhu dengan kontrol CMAC untuk
referensi 50° C, laju konvergensi 0,1, gain proporsional 2
dan generalisasi 30 ................................................................ 56
Gambar 4.8 Respon transien suhu dengan kontrol RBF untuk
nilai referensi 50° C, gain proporsional 1,5, Jumlah fungsi
basis 5 dan laju konvergensi 0,1 ............................................. 58
Gambar 4.9 Respon transien suhu dengan kontrol RBF untuk
nilai referensi 50° C, gain proporsional 1,5, Jumlah fungsi
basis 5 dan laju konvergensi 0,7 ............................................ 59
Gambar 4.10 Respon transien suhu dengan kontrol RBF untuk
nilai referensi 50° C, jumlah fungsi basis 5, laju
konvergensi 0,1 dan gain proporsional 0,5 ............................. 60
Gambar 4.10 Respon transien suhu dengan kontrol RBF untuk
nilai referensi 50° C, jumlah fungsi basis 5, laju
konvergensi 0,1 dan gain proporsional 0,5 (Lanjutan) ............ 61
Gambar 4.11 Respon transien suhu dengan kontrol RBF untuk nilai
referensi 50° C, jumlah fungsi basis 5, laju
konvergensi 0,1 dan gain proporsional 4 ............................... 61
Gambar 4.12 Respon transien suhu dengan kontrol RBF untuk
referensi 50° C, laju konvergensi 0,1, gain proporsional
2 dan jumlah fungsi basis 3 .................................................. 63
Gambar 4.13 Respon transien suhu dengan kontrol RBF untuk
referensi 50° C, laju konvergensi 0,1, gain proporsional
2 dan junlah fungsi basis 8 ................................................... 63
Gambar 4.13 Respon transien suhu dengan kontrol RBF untuk
referensi 50° C, laju konvergensi 0,1, gain proporsional
2 dan junlah fungsi basis 8 (Lanjutan) .................................. 64
Gambar 4.14 Pengujian untuk mengetahui pengaruh bobot pembelajaran
terhadap transien suhu pada kontrol CMAC .......................... 66
Gambar 4.15 Pengujian untuk mengetahui pengaruh bobot
pembelajaran terhadap transien suhu pada kontrol RBF.......... 66
Gambar 4.16 Pengujian referensi naik dengan jaringan syaraf CMAC ....... 68
Gambar 4.17 Pengujian refrensi naik dengan jaringan syaraf RBF.............. 68
Gambar 4.17 Pengujian refrensi naik dengan jaringan syaraf
RBF (Lanjutan) ...................................................................... 69
Gambar 4.18 Pengujian refrensi turun dengan jaringan syaraf CMAC ....... 70
Gambar 4.19 Pengujian refrensi turun dengan jaringan syaraf RBF ........... 70
Gambar 4.19 Pengujian refrensi turun dengan jaringan syaraf
RBF (Lanjutan) ..................................................................... 71
Gambar 4.20 Pengujian gangguan pada jaringan syaraf CMAC.................. 71
Gambar 4.20 Pengujian gangguan pada jaringan syaraf
CMAC (Lanjutan) .................................................................. 72
Gambar 4.21 Pengujian gangguan pada jaringan syaraf RBF ...................... 72
DAFTAR TABEL
Tabel 3.1 Hubungan kebutuhan memori dengan jangkauan masukan
terkuantisasi dengan parameter generalisasi yang dipilih 50 ......... 22
Tabel 3.2 Hubungan besarnya generalisasi yang dipilih dengan
kebutuhan memori maksimum CMAC dengan kuantisasi 8 bit...... 23
Tabel 3.3 Alamat-alamat aktif untuk masukan-masukan tertentu
pada CMAC dengan dua masukan, 8 bit dan generalisasi = 5 ........ 25
Tabel 3.4 Pemberian nilai pada RD dan WR serta perubahan nilai
Pada INTR ................................................................................... 41
Tabel 4.1 Hubungan antara banyaknya parameter generalisasi
yang dipilih terhadap lama proses komputasi. ............................... 49
Tabel 4.2 Hubungan antara jumlah fungsi basis yang dipilih
terhadap lama proses komputasi. ................................................... 49
Tabel 4.3 Data parameter unjuk kerja sistem dengan kendali CMAC
pada referensi 50° C, gain proporsional 1,5, dan generalisasi 60.... 52
Tabel 4.4 Data parameter unjuk kerja sistem dengan kendali CMAC
pada referensi 50° C, laju konvergensi 0,1, dan generalisasi 60 ..... 55
Tabel 4.5 Data parameter unjuk kerja sistem dengan kendali CMAC
pada referensi 50° C, laju konvergensi 0,1, dan
gain proporsional 2 ....................................................................... 57
Tabel 4.6 Data parameter unjuk kerja sistem dengan kendali RBF pada
referensi 50° C, gain proporsional 1,5, dan jumlah
fungsi basis 5 ................................................................................ 60
Tabel 4.7 Data parameter unjuk kerja sistem dengan kendali RBF pada
referensi 50° C, gain proporsional 1,5, dan jumlah
fungsi basis 5 ................................................................................ 62
Tabel 4.8 Data parameter unjuk kerja sistem dengan kontrol RBF pada
referensi 50° C, laju konvergensi 0,1, dan gain proporsional 2 ...... 64
Tabel 4.9 Data unjuk kerja jaringan syaraf CMAC dan RBF terhadap
pengujian gangguan ...................................................................... 73
BAB I
PENDAHULUAN
1.1 Latar Belakang
Dalam perancangan sistem kontrol konvensional, parameter-parameter
kontrol dihitung berdasarkan parameter plant. Secara praktis, parameter plant
tersebut tidak diketahui, sehingga perancangan sistem kontrol harus diawali
dengan proses identifikasi plant yang akan dikontrol. Untuk suatu plant yang
kompleks, proses untuk mendapatkan parameter plant merupakan proses yang
sulit dan memakan banyak waktu.
Sebuah pendekatan dalam pengendalian plant yang parameter-
parameternya tidak diketahui dapat dilakukan dengan menggunakan jaringan
syaraf tiruan. Tidak semua jenis jaringan syaraf tiruan cocok untuk
mengendalikan plant secara on-line. Setiap jaringan syaraf tiruan memiliki
kecepatan beradaptasi atau konvergensi yang berbeda, tergantung pada struktur
jaringan dan algoritma pembelajaran yang digunakan. Oleh karena itu, untuk
mengendalikan plant secara on-line dengan jaringan syaraf tiruan harus diketahui
terlebih dahulu unjuk kerja dari masing-masing jaringan syaraf pada pengendalian
plant secara on-line.
Pada tugas akhir ini dilakukan pengujian terhadap unjuk kerja jaringan
syaraf CMAC dan RBF pada pengendalian plant suhu secara on-line. Pengujian
untuk membandingkan unjuk kerja kedua jaringan dilakukan melalui pengujian
pengaruh bobot pembelajaran, pengujian referensi naik, pengujian referensi turun
dan pemberian gangguan. Struktur pengendalian yang digunakan adalah Fixed
Stabilising Controller. Unit kontroller yang digunakan untuk
mengimplementasikan algoritma kontrol dengan jaringan syaraf tiruan CMAC
dan RBF adalah PC (Personal Computer) karena mampu melakukan proses
komputasi yang kompleks, memiliki ukuran memori yang besar dan
memungkinkan membuat fasilitas tambahan untuk pengolahan data seperti
recording dan monitoring.
1.2 Tujuan
Tujuan yang ingin dicapai pada tugas akhir ini adalah membandingkan
unjuk kerja jaringan syaraf tiruan CMAC dan RBF pada pengendalian plant suhu
secara on-line.
1.3 Pembatasan Masalah
Dalam pembuatan tugas akhir ini penulis membatasi permasalahan sebagai
berikut :
1. Plant yang dikontrol adalah plant suhu dengan PWM Driver.
2. Jaringan syaraf yang diuji adalah CMAC dan RBF.
3. Algoritma yang digunakan untuk pembaharuan bobot jaringan syaraf
adalah algoritma LMS.
4. Jangkauan pengaturan suhu yang diperbolehkan adalah 33º C sampai
dengan 90º C.
5. Suhu plant dianggap merata di daerah yang diatur suhunya.
6. Suhu yang dijadikan referensi untuk perhitungan pada komputer adalah
suhu hasil pembacaan dari sensor suhu LM35, tidak ada kalibrasi dengan
peralatan pengukur suhu standar.
7. Perbandingan unjuk kerja dilakukan melalui pengujian pengaruh bobot
pembelajaran, pengujian referensi naik, pengujian referensi turun dan
pengaruh gangguan terhadap respon sistem.
8. Penentuan batasan nilai gain proporsional dan laju konvergensi yang
digunakan pada pengujian dilakukan secara empiris.
9. Pengujian unjuk kerja dilakukan dengan pemilihan laju konvergensi dan
gain proporsional secara acak yaitu masing – masing sebesar 0,1 dan 2,
serta pemilihan generalisasi dan fungsi basis secara trial and error
sehingga memberikan kondisi optimal pada jaringan syaraf CMAC dan
RBF.
10. Parameter respon yang dijadikan ukuran untuk membandingkan unjuk
kerja adalah waktu penetapan dan lonjakan maksimum respon.
11. Pembuatan program bantu menggunakan bahasa visual Delphi 6.0, dan
antarmuka melalui komunikasi serial, ADC 0804 dan DAC 0808.
12. Mikrokontroller AT89s51 hanya digunakan sebagai pengatur aliran data
untuk komunikasi serial dan tidak membahas arsitektur serta pemrograman
mikrokontroller secara detail.
13. Tidak membahas handshaking komunikasi serial.
1.4 Sistematika Penulisan
Sistematika penulisan laporan tugas akhir adalah sebagai berikut:
BAB I PENDAHULUAN
Pada bab ini dibahas mengenai latar belakang, tujuan dan pembatasan
masalah tugas akhir serta sistematika penulisan laporan.
BAB II DASAR TEORI
Bab ini berisi teori yang melandasi pembuatan tugas akhir ini, mulai dari
teori dasar jaringan saraf tiruan, algoritma LMS, struktur pengendalian,
jaringan syaraf CMAC, jaringan syaraf RBF, serta teori yang melandasi
pembuatan hardware.
BAB III PERANCANGAN
Pada bab ini dibahas bagaimana merancang jaringan syaraf CMAC dan
RBF, perancangan algoritma untuk kontrol CMAC dan RBF, serta
perancangan perangkat lunak dan perangkat keras yang diperlukan
untuk pengendalian plant suhu dengan jaringan syaraf CMAC dan RBF.
BAB IV PENGUJIAN DAN ANALISIS
Pada bab ini dibahas mengenai pengujian terhadap jaringan syaraf
CMAC dan RBF serta pengujian untuk membandingkan unjuk kerja
kedua jaringan. Pada bab ini juga dilakukan analis terhadap pengaruh
masing – masing parameter jaringan.
BAB V PENUTUP
Bab ini berisi kesimpulan terhadap hasil pengujian dan saran.
BAB II
DASAR TEORI
2.1 Blok Diagram Kontrol Fixed Stabilising Controller
Fixed stabilising controller merupakan salah satu arsitektur kontrol
adaptif. Arsitektur kontrol ini diusulkan oleh Miller pada tahun 1987 dan Kraft
pada tahun 1990. Blok diagram kontrol dengan skema fixed stabilising controller
ditunjukkan pada Gambar 2.1.
Gambar 2.1 Blok diagram kontrol dengan skema
fixed stabilising controller
Blok diagram fixed stabilising controller merupakan blok diagram sistem
kontrol adaptif langsung dengan keluaran kontroller umpan balik penstabil
digunakan untuk melatih model inverse.[3] Tujuan dari pembelajaran model
inverse adalah memformulasikan sebuah pengendali, sehingga blok diagram
kontrol plant secara keseluruhan memiliki fungsi alih satuan.
Blok diagram kontrol fixed stabilising controller memiliki dua buah
kalang, kalang pertama adalah kalang umpan balik penstabil dan kalang kedua
adalah kalang pembelajaran model inverse. Pembelajaran model inverse dapat
dilakukan menggunakan jaringan syaraf tiruan dan sebagai kontrol umpan balik
penstabil dapat digunakan gain proporsional. Jaringan syaraf tiruan yang dipilih
sebagai komponen pengendali harus memiliki laju konvergensi yang cepat,
sehingga tidak semua jaringan syaraf tiruan cocok diimplementasikan sebagai
komponen pengendali plant secara on- line.[9]
2.2 Algoritma Least Mean Square (LMS)
Algoritma LMS merupakan salah satu algoritma yang digunakan untuk
pembelajaran atau update bobot jaringan syaraf. Algoritma ini banyak digunakan
karena proses komputasinya sederhana. Algoritma LMS akan meminimalkan
fungsi rata – rata kuadrat error.[5] Secara matematis algoritma LMS untuk
pembaharuan bobot jaringan syaraf dituliskan sebagai berikut :
w(n+1) = w(n) + η.[d(n) – y(n)].x(n) ................................................. (2.1)
Dimana :
w(n+1) : Bobot pada cacah ke n+1
w(n) : Bobot pada cacah ke n
η : Laju konvergensi ( 0 < η < 1)
x(n) : Masukan yang diboboti
d(n) : Keluaran yang diinginkan
y(n) : Keluaran aktual
d(n) – y(n) : Sinyal error yang merupakan data latih
2.3 Jaringan Syaraf Tiruan
Jaringan syaraf tiruan merupakan salah satu bidang dalam sistem kontrol
cerdas. Jaringan syaraf tiruan pada dasarnya merupakan fungsi pemetaan masukan
ke keluaran sistem yang bebas model matematis atau dikenal dengan istilah
estimator bebas model. Sistem ini memetakan kondisi ke aksi. Sistem-sistem
dinamis yang dimodelkan tidak diekspresikan secara matematis menggunakan
fungsi alih, tetapi direpresentasikan dengan menggunakan kotak fungsional yang
mengestimasi fungsi-fungsi dari data pelatihan.[9]
Jaringan syaraf tiruan dibentuk dengan meniru kerja dari neuron biologis
dalam merespon stimulus yang diberikan kepadanya. Sifat ini kemudian di
modelkan dalam suatu bentuk model neuron jaringan syaraf. Neuron adalah unit
pemroses informasi yang penting dalam operasi jaringan syaraf. Model dari
neuron ini ditunjukkan pada Gambar 2.2.
Gambar 2.2 Model neuron jaringan syaraf
Tiap penghubung diasosiasikan dengan sebuah nilai bobot (w). Seperti
pada sinapsis neuron sel saraf biologis, nilai bobot menentukan derajat pengaruh
dari sebuah neuron ke neuron lainnya. Pengaruh dari sebuah neuron ke neuron
yang lainnya merupakan hasil kali antara nilai keluaran dari neuron – neuron yang
masuk ke neuron yang bersangkutan dengan nilai bobot yang menghubungkan
neuron tadi. Fungsi aktivasi berfungsi sebagai penghubung dari penjumlahan
semua nilai masukan dengan nilai keluarannya.
Salah satu sifat penting yang dimiliki jaringan syaraf tiruan adalah
kemampuan jaringan untuk belajar dari lingkungan dan meningkatkan
performansinya melalui pembelajaran. Proses pembelajaran jaringan dilakukan
melalui proses iterasi terhadap bobot sinapsis. Idealnya jaringan syaraf menjadi
adaptif terhadap perubahan setelah proses ini. Pembelajaran dapat diartikan
sebagai proses dimana parameter bebas jaringan syaraf diadaptasi melalui proses
kontinyu sebagai hasil pengaruh / stimulasi lingkungan dimana jaringan syaraf
berada.[5] Dari definisi tersebut, dapat dicatat kejadian sekuensial sebagai berikut :
1. Jaringan syaraf dipengaruhi oleh lingkungan.
2. Terjadi perubahan dalam jaringan sebagai hasil stimulus pengaruh tersebut.
3. Jaringan syaraf merespon perubahan tersebut dengan cara yang baru, karena
adanya perubahan pada struktur internalnya.
2.4 CMAC ( Cerrebellar Model Articulation Controller)
CMAC merupakan satu jenis jaringan syaraf tiruan yang berusaha meniru
pola kerja cerebellum (otak belakang) manusia. Secara teoritis otak belakang
manusia ini berfungsi sebagai pengatur dan penyeimbang gerakan-gerakan
motorik. Setiap rangsangan yang diterima oleh otak belakang ini dipercayai
hanya akan mengaktifkan sekitar satu prosen dari total sel otak belakang yang
mungkin jutaan bahkan milyaran jumlahnya. Dalam eksperimennya Albus
berhasil mengimplementasikan CMAC ini sebagai pengendali manipulator robot
(berkaitan dengan gerakan-gerakan motorik). Dalam perkembangan selanjutnya,
CMAC ini banyak diadopsi untuk menyelesaikan permasalahan pada bidang-
bidang lain yang lebih luas, mulai dari analisis sinyal biologis (Wilson, 1991),
pengenalan pola dan pemodelan sistem sampai bidang pengendalian (Miller,
1990). Istilah CMAC kemudian menjadi Cerebellum Model Arithmetic Computer
(Miller, 1990).[3]
Ditinjau dari jenis arsitektur atau strukturnya, CMAC dapat dimasukkan
ke suatu kelas yang dinamakan AMN (Associative Memory Network). Jenis
jaringan syaraf ini menyimpan informasi secara lokal. Hal ini menyebabkan laju
pembelajaran akan berlangsung relatif lebih cepat dan secara efisien dapat
diimplementasikan secara real time.
2.4.1 Struktur Dasar CMAC
Struktur dasar CMAC memiliki banyak kemiripan dengan jaringan
Perceptron yang diusulkan oleh Rosenblat (1961). Struktur dasar CMAC
ditunjukkan pada Gambar 2.3.
Gambar 2.3 Struktur dasar jaringan syaraf tiruan CMAC
Operasi CMAC ini dapat direpresentasikan kedalam dua buah pemetaan, f:
x a dan g: a y, dengan x adalah vektor ruang masukan berdimensi n, a
adalah vektor asosiasi berdimensi m sedangkan y adalah keluaran berdimensi 1.
Dalam CMAC fungsi f(x) memetakan setiap titik ruang masukan x ke dalam
sebuah vektor asosiasi A (sel-sel asosiasi yang aktif untuk sebuah titik ruang
masukan tertentu), sedangkan y = g(A) besarnya tergantung pada nilai bobot w
yang mungkin nilainya berubah selama proses pembelajaran (learning). Keluaran
jaringan CMAC dapat dituliskan sebagai berikut :
y = g(A) =
1iiw ............................................................................ (2.2)
Dalam perancangan CMAC, langkah awal yang harus dilakukan adalah
menentukan jangkauan nilai ruang masukan, nilai tersebut selanjutnya
dikuantisasi. Setelah nilai kuantisasi masukan didapat, langkah selanjutnya adalah
memetakan nilai-nilai terkuantisasi ini pada sel-sel asosiasi CMAC berdasarkan
parameter generalisasi lokal yang diinginkan. Generalisasi lokal ini berarti untuk
setiap nilai masukan CMAC yang berdekatan, maka keluarannya akan berdekatan.
Jika jarak nilai masukannya berjauhan, maka keluaran masing-masing akan
independen. Secara teknis, penentuan parameter generalisasi ini dilakukan dengan
menetapkan jumlah sel asosiasi aktif untuk setiap cacah titik masukan. Misalkan
jika generalisasi sama dengan 4, maka untuk tiap titik masukan akan
mengaktifkan sejumlah 4 sel asosiasi. Sel-sel asosiasi tertentu dapat diaktifkan
oleh titik masukan yang berbeda.
2.4.2 Pemetaan Titik Ruang Masukan pada CMAC
Salah satu permasalahan utama pada CMAC adalah pemetaan titik ruang
masukan pada vektor asosiasi Aρ. Dalam hal ini diperlukan sebuah algoritma
yang secara efesien dapat secara langsung memetakan titik-titik ruang masukan
pada sel-sel asosiasi tertentu. Algoritma pemetaan pada CMAC ini dikenal
sebagai generator alamat. Untuk kasus ruang masukan n dimensi, perumusan
generator alamat dapat dituliskan sebagai berikut :
)11()1(21),(1
11n
k
ksldlqlqA
)11(2(1
12
i
j
jn
i
ii sdlq
) ............................................... (2.3)
Pertama kali akan ditinjau pemetaan ruang masukan tunggal. Misalkan
masukan terkuantisasi CMAC memiliki jangkauan nilai antara qmin = 0 sampai
qmax = 9 (jumlah elemen ruang masukannya s = 10), generalisasi yang dipilih =
3, maka langkah yang harus dilakukan adalah sebagai berikut :
1. Membuat overlay pada ruang masukan sejumlah (dalam hal ini jumlah
overlay = 3), kemudian membagi ruang masukan pada overlay pertama
sejumlah N kotak (1 kotak penuh berisi elemen).
2. Menentukan vektor penggeseran (d = 1,2,...) pada overlay pertama. Nilai
vektor penggeseran ini menentukan jumlah elemen pada kotak pertama.
Dalam kasus ini dipilih d = 1, sehingga kotak pertama berisi satu elemen
sedangkan sisa 3 kotak masing-masing berisi 3 elemen (kotak penuh).
Untuk overlay kedua dan seterusnya pembagian ruang masukan menjadi
kotak-kotak secara langsung diperoleh dengan menggeser kotak pada
overlay sebelumnya sepanjang satu elemen.
Pemetaan masukan terkuantisasi CMAC 1 dimensi ditunjukkan pada
Gambar 2.4. Pada dasarnya kotak-kotak ini merupakan sel-sel asosiasi hasil
pemetaan dari nilai q yang dilingkupinya. Masukan terkuantisasi 0 akan
mengaktifkan alamat memori a1, a5 dan a9, masukan terkuantisasi 1 akan
mengaktifkan alamat memori a2, a5 dan a9 dan seterusnya.
Gambar 2.4 Pemetaan masukan CMAC 1 dimensi
Dalam kasus ruang masukan dua dimensi atau lebih, pemetaan dapat
dilakukan dengan teknik perangkaian (concatenation).[9] Teknik perangkaian
dilakukan untuk setiap sel asosiasi pada overlay yang sama dengan urutan
concatenation yang konsisten (urutan concatenation variabel masukan tidak boleh
berubah ). Misalkan dimensi ruang masukan CMAC adalah 2 yaitu q1 dan q2
dengan nilai kuantisasi maksimum = 10 dan generalisasi = 3. Langkah awal untuk
melakukan pemetaan adalah memetakan masing-masing masukan terkuantisasi
tersebut. Untuk masukan tertentu, maka sel asosiasi yang aktif dihitung dengan
merangkai sel-sel aktif pada overlay yang sama dalam format vektor bit. Setiap sel
direpresentasikan oleh 4 bit, karena nilai maksimum sel asosiasi = 12. Misalkan
untuk masukan terkuantisasi [q1 q2]= [2 3], sel-sel asosiasi aktif untuk masing-
masing overlay dapat dihitung sebagai berikut :
A(q,l) = A([2 3],1)=A2 && B2 = 2 && 2 = 0010 && 0010 =00100010 (34)
A(q,l) = A([2 3],2)=A6 && B6 = 6 && 6 = 0110 && 0110 =01100110 (102)
A(q,l) = A([2 3],3)=A9 && B10 = 9 && 10 = 1001&& 1010 =10011010 (154)
&& adalah operator concatenation.
Pemakaian metoda concatenation ini akan menyebabkan 2 hal berikut :
1. Memori yang harus disediakan bergantung terhadap dimensi ruang
masukan dan jumlah kuantisasi tiap masukan. Untuk kasus diatas memori
fisik yang disediakan untuk menyimpan bobot-bobot harus sama dengan
A12 && B12 =1100 && 1100 = 11001100 (204) lokasi.
2. Banyak memori yang tidak terpakai karena tidak pernah mungkin
diaktifkan.
Pendekatan lain dalam melakukan pemetaan dua atau lebih dimensi yaitu
dengan menggunakan metoda pengalamatan langsung (direct addresing)[3].
Gambar 2.5 memperlihatkan bagaimana teknik pemetaan dilakukan untuk kasus
yang telah dibahas sebelumnya. Langkah-langkah pemetaan ini sama dengan cara
pemetaan satu dimensi, tetapi konsep kotak diperluas menjadi hypercube (untuk
kasus multi dimensi). Dari Gambar 2.5 tampak bahwa sebuah titik masukan
tertentu akan terpetakan pada sebuah hypercube untuk setiap overlay. Untuk titik-
titik masukan yang paling berdekatan akan terpetakan pada maksimal 2 buah
hypercube yang sama. Semakin jauh jarak titik masukan, maka hypercube hasil
pemetaan akan semakin independen. Misalkan, titik masukan [q1 q2] =[0 0] akan
terpetakan akan terpetakan pada alamat memori [a1 a 17 a33] dan titik masukan [q1
q2] =[1 0] akan terpetakan pada alamat memori [a2 a17 a33] dan seterusnya.
0 1 2 3 4 5 6 7 98 0
21
98
76
54
32
1
21
20191817
161513
12
14
109
8765
43
11
22
33
32313029
28272625
2423
41
40393837
363534
4846
444342
4745
Masukan 1
Masukan 2
Overlay 1
Overlay 2
Overlay 3
Gambar 2.5 Pemetaan 2 dimensi untuk tiap titik ruang masukan dengan pemetaan langsung
Evaluasi terhadap alamat yang aktif untuk masukan terkuantisasi tertentu
pada tiap layer ditunjukkan pada Gambar 2.6, Gambar 2.7 dan Gambar 2.8.
Masukan [q1 q2] = [0 0] pada overlay 1 akan mengaktifkan alamat memori 0,
pada overlay 2 akan mengaktifkan alamat memori 17 dan pada overlay 3 akan
mengaktifkan alamat memori 33. Pada pemetaan ruang masukan dengan metode
pemetaan langsung, perbandingan pemakaian memori dengan memori yang harus
tersedia (utility ratio) adalah 100 %.
Gambar 2.6 Hasil evaluasi generator alamat pada overlay 1
Gambar 2.7 Hasil evaluasi generator alamat pada overlay 2
9
8
7
6
5
4
3
2
1
0
0 1 2 3 4 5 6 7 98
33 34 35 36
37
41
45
38 39 40
42 43 44
46 47 48
Gambar 2.8 Hasil evaluasi generator alamat pada overlay 3
2.4.3 Kotak Operasi CMAC
Kotak operasi CMAC menunjukkan aliran operasi CMAC dari masukan
sampai diperoleh keluaran CMAC. Gambar 2.9 menunjukkan kotak operasi
CMAC dengan metode pemetaan concatenation dan Gambar 2.10 menunjukkan
kotak operasi CMAC dengan metode pemetaan langsung.
Gambar 2.9 Aliran operasi CMAC dengan metoda concatenation
Pada kotak operasi CMAC dengan metode pemetaan concatenation, setiap
masukan terkuantisasi akan mengaktifkan alamat memori tertentu. Pemetaan nilai
masing – masing masukan terkuantisasi ke alamat memori ini dilakukan dengan
metode pemetaan 1 dimensi. Operator concatenation akan menggabungkan
memori yang diaktifkan oleh setiap masukan terkuantisasi sehingga diperoleh
alamat memori yang akan aktif oleh n masukan.
Gambar 2.10 Aliran operasi CMAC dengan metoda pemetaan langsung
Pada kotak operasi CMAC dengan metode pemetaan langsung, n masukan
akan diolah secara bersamaan dengan algoritma generator alamat tertentu. Hasil
pengolahan dengan algoritma generator alamat berupa alamat yang aktif untuk n
masukan tersebut.
2.4.4 Algoritma Pelatihan CMAC secara Iteratif
Langkah 1 : Inisialisasi bobot awal jaringan, w = [0 0 0 . . . . . 0] dan set
besarnya laju konvergensi yang digunakan ( 0 < η <1).
Langkah 2 : Untuk setiap sinyal latih x : t, kerjakan langkah 3 sampai selesai
Langkah 3 : Kuantisasi masukan x, x q.
Langkah 4 : Tentukan alamat bobot yang aktif untuk setiap overlay ( l =1,2,...
)
dengan generator alamat.
Langkah 5 : Hitung keluaran CMAC. Keluaran CMAC dihitung secara
langsung dengan menjumlahkan bobot-bobot pada memori yang
aktif, y =
1iiW .
Langkah 6 : Hitung kesalahan (error) antara keluaran terharap (d) dengan
keluaran CMAC (y), error = d – y.
Langkah 7 : Update bobot-bobot pada alamat yang aktif dengan metoda LMS.
2.5 RBF (Radial Basis Function)
RBF (φ) merupakan fungsi dimana keluarannya simetris terhadap center c
tertentu atau dinyatakan sebagai φc = φ ||x - c||, dimana || . || merupakan vektor
normal. Jaringan syaraf yang dibentuk dengan menggunakan fungsi basis berupa
fungsi basis radial dinamakan Jaringan Syaraf RBF.
2.5.1 Strutur Dasar RBF
Jaringan RBF terdiri atas 3 layer yaitu layer input, hidden layer / kernel
layer (unit tersembunyi) dan layer output.[15] Masing – masing unit tersembunyi
merupakan fungsi basis radial. Fungsi basis radial ini diasosiasikan oleh lebar
dan posisi center dari fungsi basis tersebut. Struktur dasar jaringan RBF
ditunjukkan pada Gambar 2.11.
Gambar 2.11 Struktur dasar jaringan syaraf RBF.
Jaringan syaraf RBF berbeda dengan jaringan syaraf CMAC. Setiap input
dari jaringan ini akan mengaktifkan semua fungsi basis pada hidden layer. Setiap
unit dari hidden layer merupakan fungsi basis. Di dalam hidden layer terdapat
sejumlah fungsi basis yang sejenis. Setiap fungsi basis akan menghasilkan sebuah
keluaran dengan bobot tertentu. Output jaringan ini merupakan jumlah dari
seluruh output fungsi basis dikalikan dengan bobot masing – masing.
Operasi jaringan RBF dengan 2 masukan ditunjukkan oleh struktur pada
Gambar 2.12.[11] Setiap masukan akan mengaktifkan seluruh fungsi basis pada
jaringan RBF. Masukan pertama (x1) akan mengaktifkan fungsi basis φ1 sampai
fungsi basis ke φn dan masukan kedua (x2) juga akan mengaktifkan fungsi basis
φ1 sampai fungsi basis ke φn, sehingga setiap fungsi basis pada jaringan RBF
akan diaktifkan oleh 2 masukan. Keluaran fungsi basis yang diaktifkan oleh 2
masukan dihitung dengan mengalikan keluaran fungsi basis akibat masukan x1
dan keluaran fungsi basis akibat masukan x2. Keluaran tiap fungsi basis ini
kemudian diboboti dengan bobot tertentu yaitu w1 sampai dengan wn. Keluaran
jaringan RBF dihitung dengan menjumlahkan seluruh hasil perkalian antara
keluaran tiap fungsi basis dengan bobotnya sendiri.
Gambar 2.12 Operasi jaringan syaraf RBF dengan 2 masukan
Fungsi basis pada jaringan RBF identik dengan dengan fungsi gaussian
yang diformulasikan sebagai berikut :
φj = 2
2
2_
j
jcx
e
........................................................................... (2.4)
Dimana :
cj = Center fungsi gausiaan ke - j
σj = Lebar fungsi gausiaan ke - j
x = Masukan fungsi basis
φj = Keluaran fungsi basis ke – j oleh masukan x
Representasi grafis fungsi gaussian ditunjukkan pada Gambar 2.13.
Gambar 2.13 Fungsi gaussian
Pada setiap jaringan RBF biasanya digunakan lebih dari 1 buah fungsi
basis. Tiap – tiap fungsi basis mempunyai 1 center dan 1 bobot tertentu sehingga
jumlah center dan bobot memori yang digunakan sama dengan jumlah fungsi
basis yang digunakan.
2.5.2 Strategi Pembelajaran Jaringan RBF [12]
Berdasarkan rumus fungsi gaussian pada persamaan 2.4 dan struktur dasar
jaringan RBF, dapat diusulkan beberapa strategi pembelajaran pada jaringan RBF
sebagai berikut :
1. Posisi center pada fungsi basis
2. Lebar dari fungsi basis
3. Bobot keluaran setiap fungsi basis
Pada tugas akhir ini strategi pembelajaran yang digunakan adalah
pembelajaran bobot keluaran tiap fungsi basis.
2.5.3 Algoritma Pelatihan RBFN secara Iteratif
Langkah 1 : Menentukan jumlah fungsi basis yang akan digunakan.
Langkah 2 : Menentukan center tiap fungsi basis.
Langkah 3 : Menyediakan bobot sebanyak fungsi basis.
Langkah 4: Inisialisasi bobot, w = [0 0 0 . . . . . 0] dan set laju konvergensi yang
φj =2
2
2_
j
jcx
e
σ
digunakan ( 0 < η <1).
Langkah 5 : Untuk setiap sinyal latih kerjakan langkah 6 – selesai.
Langkah 6 : Hitung keluaran tiap fungsi basis.
Langkah 7 : Hitung keluaran jaringan RBF.
Langkah 8 : Hitung kesalahan (error) antara keluaran terharap (d) dengan
keluaran RBF y, error =d – y.
Langkah 9: Update bobot-bobot tiap fungsi basis dan bobot basis dengan metoda
LMS.
2. 6 Penguat Operasional (Operasional Amplifier) [4]
Penguat operasional adalah rangkaian terpadu (IC) yang mempunyai 5
buah terminal dasar. Dua terminal untuk catu daya, 2 yang lain digunakan untuk
isyarat masukan yang berupa masukan membalik (-) dan masukan tak membalik
(+) serta 1 terminal digunakan untuk keluaran.
2.6.1 Penguat Tak Membalik (Non-inverting Amplifier)
Penguat tak membalik merupakan suatu penguat dimana tegangan
keluarannya atau Vo mempunyai polaritas yang sama dengan tegangan masukan
atau Vi. Rangkaian penguat tak membalik ditunjukkan pada Gambar 2.14.
Gambar 2.14 Penguat tak membalik
Arus i mengalir ke Ri karena impedansi masukan op – amp sangat besar
sehingga tidak ada arus yang mengalir pada kedua terminal masukannya.
Tegangan pada Ri sama dengan Vi karena perbedaan tegangan pada kedua
terminal masukannya mendekati 0 V.
i = RiVi .......................................................................................... (2.5)
Tegangan pada Rf dapat dinyatakan sebagai
VRf = I Rf = xViRiRf .................................................................... (2.6)
Tegangan keluaran Vo didapat dengan menambahkan tegangan pada Ri yaitu Vi
dengan tegangan pada Rf yaitu VRf.
Vo = Vi + xRiRf Vi ........................................................................ (2.7)
RiRf
ViVo 1 .............................................................................. (2.8)
2.6.2 Penguat Selisih (Differensial amplifier)
Penguat selisih merupakan suatu penguat dimana tegangan outputnya
merupakan selisih dari tegangan input yang dimasukkan ke kedua terminal
masukannnya. Rangkaian penguat selisih ditunjukkan pada Gambar 2.15.
Gambar 2.15 Penguat selisih
Nilai tegangan output Vo dapat dihitung dengan teori superposisi sebagai
berikut :
1. Saat V2 ditanahkan, maka penguat selisih akan membentuk penguat tak
membalik. Tegangan yang masuk ke terminal tak - membaliknya
merupakan tegangan yang terbagi yaitu
1VRbRa
RbV
........................................................................... (2.9)
Tegangan ini mengalami penguatan sebesar (RiRf +1), sehingga output
akibat V2 ditanahkan (Vo1) adalah
1)1(1 VRbRa
RbRaRfVo
.......................................................... (2.10)
2. Saat V1 ditanahkan, maka akan terbentuk penguat membalik dengan
penguatan sebesar RiRf . Tegangan output akibat V1 ditanahkan (Vo2)
adalah Vo2 = - RiRf V2.
Tegangan output dari penguat selisih adalah penjumlahan dari tegangan
Vo1 dan Vo2.
21 VoVoVo ............................................................................ (2.11)
21)1( VRiRfV
RbRaRb
RaRfVo
.............................................. (2.12)
Untuk nilai Rf = Ri = Ra = Rb = R maka :
21 VVVo ............................................................................... (2.13)
2.6.3 Pembanding (Comparator)
Pembanding berfungsi untuk membandingkan 2 buah level tegangan yang
masuk ke terminal masukan op – amp. Pembanding hanya mempunyai 2 level
keluaran yaitu +Vsat dan –Vsat. Keluaran pembanding akan berharga +Vsat jika
level tegangan masukan pada terminal tak - membalik lebih besar dari level
tegangan masukan pada terminal membalik, dan akan berharga -Vsat jika level
tegangan masukan pada terminal tak - membalik lebih kecil dari level tegangan
masukan pada terminal membalik.
BAB III
PERANCANGAN
3.1 Perancangan Kontrol Jaringan Syaraf Tiruan CMAC dan RBF
Perancangan kontrol jaringan syaraf tiruan CMAC dan RBF dilakukan
untuk memberikan batasan terhadap besarnya parameter kontroller yang
digunakan. Parameter kontroller tersebut meliputi gain proporsional, laju
konvergensi, generalisasi pada jaringan syaraf CMAC dan jumlah fungsi basis
pada jaringan syaraf RBF. Perancangan juga diperlukan untuk menyusun
algoritma kontrol CMAC dan RBF yang akan diimplementasikan pada komputer.
3.1.1 Penentuan Nilai Gain Proporsional Jaringan Syaraf CMAC dan RBF
Nilai gain proporsional yang digunakan pada pengontrolan ditentukan
secara empiris. Secara praktis nilai gain proporsional yang dipilih dibatasi oleh
tegangan maksimum DAC yang digunakan. Karena dalam pengujian ini tegangan
maksimum DAC adalah 5 volt, maka diusahakan sinyal kendali proporsional pada
saat awal tidak melebihi 5 volt.
Pada referensi suhu maksimum yang diperbolehkan ( 90° C ), tegangan
yang dikirimkan ke DAC adalah ± 2,99 volt. Pada kondisi awal suhu yang terbaca
oleh ADC adalah suhu lingkungan karena pemanas masih mati yaitu ± 30° C.
Hasil pembacaan ADC pada kondisi awal ini adalah ± 0,99 V. Besarnya sinyal
error adalah 2,99 V – 0,99 V = 2,0 V. Agar tidak melampaui batas maksimum
DAC maka besarnya gain maksimal yang boleh diberikan adalah sebesar 5 / 2,00
= 2,5. Untuk nilai referensi lebih kecil dari referensi maksimal yang
diperbolehkan, besarnya gain proporsional maksimal bisa disesuaikan, sehingga
sinyal kontrol pada keadaan awal tidak melebihi 5 volt.
3.1.2 Penentuan Nilai Laju Konvergensi Jaringan Syaraf CMAC dan RBF
Secara teoritis, besarnya laju konvergensi yang dipilih akan menentukan
kecepatan pembaharuan bobot jaringan. Jika laju konvergensi yang dipilih relatif
kecil, maka kecepatan pembelajaran akan berjalan secara lambat, sedangkan jika
laju konvergensi yang dipilih relatif besar, maka dimungkinkan terjadinya over
corrected pada bobot-bobot yang diperbaharui. Pemilihan besarnya laju
konvergensi yang digunakan pada pengontrolan dilakukan secara empiris. Pada
tugas akhir ini nilai laju konvergensi yang dipilih antara 0,05 sampai dengan 0,5.
3.1.3 Perancangan Kontrol Jaringan Syaraf CMAC
Perancangan kontrol jaringan syaraf CMAC dilakukan untuk merancang
jaringan syaraf CMAC yang akan digunakan. Perancangan jaringan syaraf CMAC
meliputi perancangan jangkauan masukan terkuantisasi, perancangan generalisasi
dan perancangan algoritma kontrol jaringan syaraf CMAC.
A. Penentuan Jangkauan Masukan Terkuantisasi
Besarnya jangkauan nilai masukan terkuantisasi secara langsung akan
menentukan besarnya memori yang harus disediakan. Semakin besar nilai
jangkauan terkuantisasi yang dipilih, kebutuhan memori akan semakin besar. Di
lain pihak dengan semakin besarnya nilai jangkauan ini, kemampuan CMAC
dalam memodelkan masukan akan semakin halus. Dengan demikian, perlu
dilakukan kompromi dalam menentukan jangkauan masukan ini. Faktor lain yang
perlu diperhatikan adalah ketelitian dari antarmuka yang digunakan dalam hal ini
adalah ADC. Jika digunakan ADC dengan ketelitian 8 bit, maka jangkauan
kuantisasi maksimumnya adalah 255.
Tabel 3.1 Hubungan kebutuhan memori dengan jangkauan masukan terkuantisasi dengan
parameter generalisasi yang dipilih 50.
Kuantisasi Jangkauan Masukan Kebutuhan Memori 8 bit 0-255 2442
10 bit 0-1023 23847 12 bit 0-4095 338058 14 bit 0-16383 5305782 16 bit 0-65535 84353727
Pada tugas akhir ini digunakan ADC 8 bit sehingga hasil konversi ADC
sudah merupakan masukan terkuantisasi keluaran plant bagi jaringan syaraf
CMAC karena berupa byte dengan jangkauan 0 – 255. Proses kuantisasi
diperlukan untuk masukan suhu referensi dengan perhitungan sebagai berikut :
Kuantisasi referensi = ceil [ Suhu referensi *255/150 ). ..................... (3.1)
B. Penentuan Generalisasi
Besarnya generalisasi yang dipilih juga berpengaruh secara langsung
terhadap kebutuhan memori dan kecepatan proses komputasi. Sebagai bahan
ilustrasi, hubungan antara nilai generalisasi yang dipilih dengan kebutuhan
memori CMAC ditunjukkan pada Tabel 3.2. Secara teknis, besarnya generalisasi
yang dipilih adalah bebas karena pada bahasa pemrograman visual tersedia
memori yang besar. Beban komputasi juga tidak menjadi masalah karena proses
komputasi dilakukan dalam timer dengan sampling waktu tertentu sehingga
kecepatan proses tidak berpengaruh. Pertimbangan yang digunakan dalam
pemilihan generalisasi adalah jumlah masukan terkuantisasi. Jika generalisasi
yang digunakan jauh melebihi jangkauan maksimum masukan terkuantisasi, maka
teori generalisasi lokal menjadi tidak berarti. Pada tugas akhir ini generalisasi
maksimal yang diperbolehkan adalah 255.
Tabel 3.2 Hubungan besarnya generalisasi yang dipilih dengan
kebutuhan memori maksimum CMAC dengan kuantisasi 8 bit.
Parameter generalisasi Kebutuhan Memori 10 7262 50 2442 90 1435
130 1166 170 1526 210 1886
C. Perancangan Algoritma Kontrol Jaringan Syaraf Tiruan CMAC
Pembuatan perangkat lunak untuk kontrol jaringan syaraf CMAC dan RBF
harus didahului oleh perancangan algoritma kontrol. Selain untuk memudahkan
proses pembuatan perangkat lunak, pada kontrol jaringan syaraf CMAC
diperlukan beberapa prosedur tambahan seperti prosedur generator alamat dan
prosedur untuk update bobot jaringan, sehingga setiap prosedur memerlukan
perancangan algoritma tersendiri.
Prosedur untuk menghitung generator alamat ditunjukkan oleh diagram
alir pada Gambar 3.1. Ada dua buah variabel yang menjadi masukan CMAC,
yaitu suhu referensi dan suhu plant. Untuk jumlah generalisasi yang digunakan
(generalisasi), maka alamat[i] merupakan vektor yang digunakan untuk
menunjukkan alamat yang diaktikan pada layer ke – i. Proses perhitungan
generator alamat dilakukan oleh prosedur yang merepresentasikan persamaan 2.3.
Gambar 3.1. Diagram alir generator alamat
Sebagai bahan ilustrasi, Tabel 3.3 memperlihatkan alamat-alamat yang
diaktifkan oleh generator alamat dengan spesifikasi jumlah variabel masukan ada
2 yaitu q1 dan q2, masing-masing masukan dikuantisasi sepanjang 8 bit dan
generalisasi yang dipilih adalah 5. Untuk nilai-nilai masukan paling berdekatan,
maka ada 4 alamat yang saling overlap, sedangkan untuk nilai-nilai masukan yang
berjauhan, alamat-alamat yang diaktifkan akan saling tidak overlap. Masukan [q1
q2] = [0 0], akan mengaktifkan memori pada alamat 1, 2075, 5409, 8113 dan
10817, sedangkan masukan [q1 q2] = [0 1], akan mengaktifkan memori pada
alamat 53, 2075, 5409, 8113 dan 10817. Kondisi ini menunjukkan berlakunya
prinsip generalisasi lokal.
Tabel 3.3 Alamat-alamat aktif untuk masukan-masukan tertentu pada CMAC dengan dua
masukan, 8 bit dan generalisasi = 5.
Masukan Terkuantisasi Alamat-alamat yang diaktifkan generator alamat
q1 q2 Overlay 1 Overlay 2 Overlay 3 Overlay 4 Overlay 5
0 0 1 2705 5409 8113 10817 0 1 53 2705 5409 8113 10817 1 0 2 2705 5409 8113 10817 1 1 54 2705 5409 8113 10817
254 255 2704 5408 8112 10816 13519 255 253 2704 5408 8112 10764 13468 255 254 2704 5408 8112 10816 13468
Prosedur untuk menghitung keluaran CMAC ditunjukkan oleh diagram
alir pada Gambar 3.2. Keluaran CMAC dapat dihitung secara langsung dengan
menjumlahkan seluruh bobot-bobot yang tersimpan pada alamat-alamat yang
diaktifkan. Dalam hal ini memori_cmac adalah array untuk menyimpan bobot-
bobot CMAC pada alamat yang diaktifkan. Keluaran CMAC disimpan dalam
variabel out_cmac.
Gambar 3.2 Diagram alir perhitungan keluaran CMAC untuk alamat-alamat yang aktif
Prosedur untuk update bobot jaringan CMAC ditunjukkan oleh diagram
alir pada Gambar 3.3. Pembaharuan bobot CMAC dilakukan dengan algoritma
LMS. Bobot pada alamat-alamat yang diaktifkan diperbaharui secara proporsional
terhadap laju konvergensi dan keluaran gain proporsional. Nilai bobot yang
disimpan pada memori_cmac diperbaharui dengan algoritma LMS dan hasil
pembaharuan disimpan dengan variabel yang sama yaitu memori_cmac.
Gambar 3.3. Diagram alir pembaharuan bobot pada alamat-alamat aktif CMAC
Diagram alir proses pengendalian dengan jaringan syaraf CMAC
keseluruhan ditunjukkan oleh diagram alir pada Gambar 3.4. Proses awal
merupakan proses setting parameter kontrol CMAC yang meliputi setting
generalisasi, setting gain proporsional dan setting laju konvergensi yang
digunakan. Proses kontrol diawali dengan pembacaan suhu plant (ouput) dan
referensi suhu (referensi). Hasil pembacaan suhu plant sudah merupakan masukan
terkuantisasi bagi jaringan syaraf CMAC karena berupa byte. Proses kuantisasi
diperlukan untuk referensi suhu (intref). Sinyal error yang merupakan selisih
antara suhu plant dan suhu referensi digunakan untuk menghitung keluaran gain
proporsional. Di sisi lain, suhu plant dan suhu referensi digunakan sebagai
masukan untuk jaringan syaraf. Sinyal kontrol yang dikirimkan ke plant adalah
penjumlahan dari keluaran jaringan syaraf dan keluaran gain proporsional. Proses
selanjutnya adalah pembaharuan bobot jaringan dengan menggunakan algoritma
LMS dengan menggunakan data latih berupa keluaran gain proporsional.
Gambar 3.4. Diagram alir algoritma kontrol CMAC
3.1.4 Perancangan Kontrol Jaringan Syaraf RBF
Perancangan kontrol RBF dilakukan untuk merancang jaringan RBF yang
akan digunakan. Perancangan jaringan RBF meliputi perancangan fungsi basis
yang digunakan dan perancangan algoritma kontrol RBF yang akan
diimplementasikan pada komputer.
A. Penentuan Fungsi Basis pada Jaringan RBF
Pada tugas akhir ini keluaran ADC 0 – 255 dinormalisasi dalam masukan
jaringan RBF pada dalam jangkauan 0 – 5. Secara teoritis jumlah fungsi basis
yang dipilih bebas, namun dengan adanya normalisasi tersebut diperlukan batasan
jumlah maksimum fungsi basis yang digunakan. Jika jumlah fungsi basis yang
dipilih terlalu banyak maka lebar fungsi basis yang terjadi akan menjadi sangat
sempit, sehingga tiap center jaringan RBF menjadi berimpitan.
Jumlah fungsi basis maksimal ditentukan sebesar15. Center dari masing –
masing fungsi basis dihitung sebagai berikut :
for i:=1 to sum_basis do
c[i]:=(7/(sum_basis+1))*i;
dimana c[i] = Nilai center dari fungsi basis ke [i].
Deviasi yang menentukan kelengkungan dari tiap fungsi basis ditentukan
dengan persamaan :
Deviasi (σ) = c[1]/3,05 .................................................................. (3.2)
Misalkan, jika jumlah fungsi basis yang dipilih adalah 4, maka nilai center
tiap fungsi basis adalah :
c [ 1 ] = (7/(4 + 1)) * 1 = 1,4
c [ 2 ] = (7/(4 + 1)) * 2 = 2,8
c [ 3 ] = (7/(4 + 1)) * 3 = 4,2
c [ 4 ] = (7/(4 + 1)) * 4 = 5,6
Deviasi dari masing – masing fungsi basis yang terbentuk dihitung sebagai
berikut :
Deviasi (σ) = 1,4 / 3,05 = 0,459
Secara grafis jaringan syaraf RBF yang dibentuk oleh 4 fungsi basis
ditunjukkan pada Gambar 3.5.
0
1
2
3
4
5
Masuk
an 2
Gambar 3.5. Grafik jaringan RBF dengan 4 fungsi basis
Pada jaringan RBF, 1 fungsi basis mempunyai 1 bobot sehingga jumlah
memori yang dibutuhkan untuk menyimpan bobot adalah sebanyak fungsi basis
yang digunakan + 1. Tambahan 1 memori adalah untuk menyimpan bobot basis.
B. Perancangan Algoritma Kontrol Jaringan Syaraf Tiruan RBF
Tahap pertama yang perlu dilakukan pada perancangan algoritma kontrol
jaringan syaraf RBF adalah merancang jaringan RBF yang akan digunakan. Untuk
membentuk jaringan RBF diperlukan lebih dari 1 fungsi basis. Dengan masukan
ternomalisasi antara 0 – 5 dan jumlah fungsi basis maksimal yang diperbolehkan
adalah 15, proses perancangan jaringan RBF yang akan digunakan ditunjukkan
oleh diagram alir pada Gambar 3.6. Proses perancangan jaringan RBF meliputi
penentuan jumlah fungsi basis yang digunakan, perhitungan center tiap fungsi
basis dan penentuan deviasi masing – masing fungsi basis.
Gambar 3.6. Diagram alir perancangan jaringan RBF yang digunakan
Langkah berikutnya adalah menghitung keluaran jaringan RBF dengan
masukan yang diberikan yaitu suhu referensi dan suhu plant. Algoritma untuk
menghitung keluaran jaringan RBF 2 masukan ditunjukkan oleh diagram alir pada
Gambar 3.7. Proses perhitungan keluaran jaringan RBF 2 dimensi diawali dengan
proses pembacaan data masukan yang berupa suhu referensi (referensi) dan suhu
plant (output). Kedua masukan tersebut kemudian dinormalisasi pada range 0-5.
Keluaran fungsi basis yang diaktifkan oleh 2 masukan dihitung dengan
mengalikan keluaran fungsi basis akibat masukan suhu referensi dan keluaran
fungsi basis akibat suhu plant (outb[i,i]). Setiap keluaran fungsi basis dikalikan
dengan bobotnya sendiri dan disimpan pada variabel outputb[i,i]. Proses terakhir
adalah menjumlahkan seluruh hasil kali keluaran tiap fungsi basis dengan
bobotnya sendiri kemudian ditambahkan dengan bobot basis (wb). Keluaran
jaringan syaraf 2 dimensi ini disimpan pada variabel outrbforde2.
Gambar 3.7. Diagram alir perhitungan keluaran RBF 2 dimensi
Aplikasi algoritma kontrol jaringan syaraf tiruan RBF secara keseluruhan
ditunjukkan oleh diagram alir pada Gambar 3.8. Proses kontrol diawali dengan
setting parameter jaringan RBF yang meliputi jumlah fungsi basis yang
digunakan, gain proporsional dan laju konvergensi jaringan. Berdasarkan data
parameter yang telah ditentukan, kemudian dirancang jaringan RBF sesuai dengan
algoritma yang sudah ditentukan. Sinyal error yang merupakan selisih antara suhu
plant dan suhu referensi dalam level tegangan digunakan untuk menghitung
keluaran gain proporsional. Di sisi lain, suhu plant dan suhu referensi digunakan
sebagai masukan untuk jaringan syaraf. Sinyal kontrol yang dikirimkan ke plant
adalah penjumlahan dari keluaran jaringan syaraf RBF dan keluaran gain
proporsional. Proses selanjutnya adalah pembaharuan bobot jaringan dengan
menggunakan algoritma LMS menggunakan data latih berupa keluaran gain
proporsional.
Gambar 3.8. Diagram alir algoritma kontrol RBF
3.2 Perancangan Perangkat Lunak (Software)
Perangkat lunak yang digunakan adalah bahasa pemrograman Delphi versi
6.0. Perangkat lunak ini berfungsi untuk membuat program aplikasi kontrol
dengan jaringan syaraf CMAC dan jaringan syaraf RBF. Disamping itu, juga
digunakan untuk membuat program monitor terhadap kondisi suhu plant yang
dikontrol dengan menampilkan grafik tanggapan respon. Garis besar program
utama kontrol dengan jaringan syaraf CMAC dan RBF yang dibuat ditunjukkan
oleh diagram alir pada Gambar 3.9.
Gambar 3.9 Diagram alir program utama
Gambar 3.9 Diagram alir program utama (Lanjutan)
Proses inisialisasi meliputi inisialisasi port serial yang digunakan untuk
komunikasi antara PC dengan rangkaian antarmuka yang meliputi: port, baudrate,
databits, stopbits dan parity, inisialisasi variabel yang digunakan, dan inisialisasi
file yang digunakan untuk penyimpanan. Program inisialisasi ini dimasukkan
dalam prosedur Formcreate sebagai berikut :
procedure TFjst.FormCreate(Sender: TObject); begin
// Inisialisasi port serial serial.Port := pncom1; serial.BaudRateValue :=9600; serial.DataBits := db8bits; serial.StopBits := sb1bits; serial.SwFlow := sfnone; serial.Parity := ptnone; serial.Connect; serial.SendByte(0); // Inisialisasi komponen Mainmenu1.Items.Items[3].Items[0].Enabled:=false; Mainmenu1.Items.Items[3].Items[1].Enabled:=false;
Chart1.BottomAxis.Maximum:=15; ScrollBar1.LargeChange:=batas_maks; ScrollBar1.Visible:=true; // Inisialisasi variabel dan bobot dy:=0; dx:=0; datax:=0; hitung:=0; online:=true; // Inisialisasi file yang digunakan untuk penyimpanan assignfile(F_cmac,'D:\data_cmac.txt'); rewrite(F_cmac); closefile(F_cmac); assignfile(F_rbf,'D:\data_rbf.txt'); rewrite(F_rbf); closefile(F_rbf); assignfile(F,'D:\data.xls'); rewrite(F); closefile(F); assignfile(F,'D:\data.xls'); append(F); writeln(F,'Sampling',#9,'Referensi',#9,'Out NN',#9,'Out Gain' ,#9,'Control u',#9,'Output',#9,'Error'); closefile(F);
end;
3.2.1 Software Jaringan Syaraf CMAC
Untuk mengaplikasikan jaringan syaraf CMAC pada komputer diperlukan
fungsi atau prosedur tambahan yang mendukung proses komputasi pada jaringan
syaraf CMAC. Fungsi atau prosedur tersebut adalah prosedur menghitung jumlah
memori maksimal yang harus disediakan, inisialisasi bobot awal, fungsi kuantisasi
8 bit dan fungsi pemetaan masukan terkuantisasi ke alamat memori tertentu
(generator alamat). Fungsi atau prosedur pendukung tersebut dituliskan dalam
listing program sebagai berikut : // Procedure menghitung memori maksimal yang harus disediakan procedure hitung_memoricmac; begin
referensi := 255; output:=255; memoricmac_maks:=generator_alamat(referensi,output,generalisasi,generalisasi);
end; // Procedure inisialisasi awal bobot cmac procedure initbobot; begin
for i:=1 to memoricmac_maks do begin bobot[i]:=0; memori_cmac[i]:=0; end; end; //Fungsi kuantisasi 8 bit Function kuant8bit(var input:real):real; begin kuant8bit:=ceil((input*255)/suhu_maks); end; //Fungsi generator alamat Function generator_alamat(var dref:real;dFback:byte;layer,gen: integer):integer; var temp1,temp2, temp3 : integer; begin
temp1:=1 + ceil((dref-layer+1)/gen); temp2:=(layer-1)*(ceil(255/gen)+1)*(ceil(255/gen)+1); temp3:=(ceil(255/gen)+1)*(ceil((dFback-layer+1)/gen)); generator_alamat:=temp1+temp2+temp3;
end;
Prosedur hitung_memoricmac digunakan untuk menghitung kebutuhan
memori maksimal yang diperlukan. Prosedur initbobot digunakan untuk
inisialisasi bobot awal CMAC. Vektor yang disediakan disesuaikan dengan
kebutuhan memori maksimal yang diperlukan. Fungsi kuant8bit digunakan untuk
mengkuantisasi referensi yang mempunyai level 0 – 150 ° C ke level byte 0 – 255.
Fungsi generator_alamat digunakan untuk menentukan alamat memori yang aktif
oleh parameter referensi, keluaran plant, dan generalisasi yang digunakan.
Program kontrol dengan jaringan syaraf CMAC dituliskan pada prosedur
timer_cmac.timer.
procedure TFjst.Timer_cmacTimer(Sender: TObject); begin
// Baca output suhu plant---> masukan terkuantisasi serial.SendChar('#'); sleep(1); serial.ReadByte(output); // Hitung sinyal error dan output gain proporsional error:= (referensi/pembagi )- (output/51); controlP:=error*gain; // Kuantisasi input referensi intref:=kuant8bit(referensi);
// Hitung keluaran cmac out_cmac:=0; for i:=1 to generalisasi do begin alamat[i]:=generator_alamat(intref,output,i,generalisasi); out_cmac:=out_cmac + memori_cmac[alamat[i]]; end; // Hitung sinyal kendali plant sinyal_kontrol:=controlP+out_cmac; lama:= hitung_milidetik(durasi); // Catat data ke file str((output*suhu_maks/255):2:2,datay); AssignFile(F,'d:\data.xls'); append(F); Writeln(F,inttostr(lama),#9,floattostr(referensi),#9,floattostr(out_cmac),#9,floattostr(controlP),#9,floattostr(sinyal_ kontrol),#9,datay,#9,floattostr((referensi/pembagi)-(output/51))); CloseFile(F); // Update bobot jaringan for i:=1 to generalisasi do begin index:=alamat[i];
memori_cmac[index]:=memori_cmac[index] + laju_cmac * controlP/generalisasi;
end; // Kirim sinyal kontrol sinyalcontrol := round(sinyal_kontrol * 51); if sinyalcontrol > 255 then sinyalcontrol:= 255; if sinyalcontrol < 0 then sinyalcontrol:= 0; serial.SendByte(sinyalcontrol); Edit3.Text:=format('%4.1f',[output*(suhu_maks/255)]); // Plot grafik respon datax:=datax + 0.02; Chart1.series[0].SeriesColor:=clred; Chart1.Series[0].AddXY(datax,output*(suhu_maks/255)); Chart1.series[1].SeriesColor:=clblue; Chart1.Series[1].AddXY(datax,referensi); maksek:=Chart1.BottomAxis.Maximum; if datax>batas_maks then begin ScrollBar1.Max:=(Round(datax)-batas_maks)+1; ScrollBar1.Position:=ScrollBar1.Max; end;
end;
3.2.2 Software Jaringan Syaraf RBF
Untuk mengaplikasikan jaringan syaraf RBF pada komputer diperlukan
fungsi atau prosedur tambahan yang mendukung proses komputasi pada jaringan
syaraf RBF. Fungsi atau prosedur tersebut adalah prosedur inisialisasi bobot awal,
fungsi membangun jaringan RBF, fungsi menghitung keluaran fungsi basis
dengan 2 masukan dan fungsi menghitung keluaran jaringan RBF dengan 2
masukan. Fungsi pendukung tersebut dituliskan dalam listing program sebagai
berikut : // Inisialisasi awal bobot RBF procedure init2rbf; var i:integer; begin
for i:=1 to jumlah_basis do w[i,1]:=0; wb:=0; outbasis:=0;
end; // Procedure membuat jaringan Procedure make_rbf; begin
for i:=1 to sum_basis do c[i]:=(7/(sum_basis+1))*i; deviasi :=c[1]/3.05;
end; // Fungsi menghitung keluaran fungsi basis oleh 2 masukan function rbf2dim(var s_rbf,a,b,x1,x2 : real):real; begin
temp1 := -((a-x1)*(a-x1))/(2*s_rbf*s_rbf); temp2 := -((b-x2)*(b-x2))/(2*s_rbf*s_rbf); rbf2dim := exp(temp1)*exp(temp2);
end; // Fungsi menghitung keluaran RBF 2 dimensi Function outrbforde2(var in1,in2:real):real; begin
outbasis:=0; outrbforde2:=0; make_rbf; //Inisialisasi keluaran tiap fungsi basis for i:=1 to sum_basis do outputb[i,i]:=0; //Hitung keluaran tiap fungsi basis oleh 2 masukan for i:=1 to sum_basis do outb[i,i]:=rbf2dim(deviasi,c[i],c[i],in1,in2);
// Kalikan keluaran tiap fungsi basis dengan bobotnya sendiri for i:=1 to sum_basis do outputb[i,i]:= outb[i,i]*w[i,i]; // Hitung keluaran jaringan for i:=1 to sum_basis do outbasis:=outbasis+outputb[i,i]; outbasis:=outbasis+wb; outrbforde2:=outbasis;
end;
Prosedur init2rbf digunakan untuk inisialisasi bobot awal jaringan syaraf
RBF. Prosedur make_rbf digunakan untuk membangun jaringan RBF. Fungsi
rbf2dim digunakan untuk menghitung keluaran fungsi basis yang disebabkan oleh
adanya 2 masukan. Fungsi outrbforde2 digunakan untuk menghitung keluaran
dari jaringan RBF dengan 2 masukan. Program kontrol dengan jaringan syaraf
RBF dituliskan pada prosedur timer_rbf.timer.
procedure TFjst.Timer_rbfTimer(Sender: TObject); begin
// Baca output suhu plant serial.SendChar('#'); sleep(1); serial.ReadByte(output); // Hitung sinyal error dan output gain proporsional error:= (referensi/pembagi )- (output/51); controlP:=error*gain; // berupa Tegangan // Hitung keluaran RBF orde 2 dy:=output/51; dx:=referensi/pembagi; out_rbf:=outrbforde2(dx,dy); // Hitung sinyal kontrol plant sinyal_kontrol:=controlP+out_rbf; // Kirim sinyal kontrol sinyalcontrol := round(sinyal_kontrol * 51); if sinyalcontrol > 255 then sinyalcontrol:= 255; if sinyalcontrol < 0 then sinyalcontrol:= 0; serial.SendByte(sinyalcontrol); Edit3.Text:=format('%4.1f',[output*(suhu_maks/255)]); lama:= hitung_milidetik(durasi); // Catat data ke file str((output*suhu_maks/255):2:2,datay); AssignFile(F,'d:\data.xls'); append(F); Writeln(F,inttostr(lama),#9,floattostr(referensi),#9,floattostr(out_rbf),#9,floattostr(controlP),#9,floattostr(sinyal_
kontrol),#9,inttostr(round(output*suhu_maks/255)),#9,floattostr(referensi-(output*suhu_maks/255))); CloseFile(F); // Update bobot RBF for i:=1 to sum_basis do w[i,i]:=w[i,i] +laju_rbf*controlP*outb[i,i]/( sum_basis+1); // Update bobot basis wb wb:=wb+laju_rbf*controlP/(sum_basis+1); // Plot grafik respon datax:=datax + 0.02; Chart1.series[0].SeriesColor:=clred; Chart1.Series[0].AddXY(datax,output*(suhu_maks/255)); Chart1.series[1].SeriesColor:=clblue; Chart1.Series[1].AddXY(datax,referensi); maksek:=Chart1.BottomAxis.Maximum; if datax>batas_maks then begin ScrollBar1.Max:=(Round(datax)-batas_maks)+1; ScrollBar1.Position:=ScrollBar1.Max; end;
end; 3.3 Perancangan Perangkat Keras (Hardware)
Secara umum blok diagram sistem pengatur suhu yang akan dibuat pada
tugas akhir ini ditunjukkan oleh diagram pada Gambar 3.10.
Gambar 3.10 Diagram blok hardware sistem pengatur suhu
Rangkaian DAC 0808 berfungsi untuk mengubah data digital berupa masukan
referensi suhu dari komputer menjadi data analog berupa tegangan. Pengkondisi
sinyal I berfungsi untuk mengubah level tegangan keluaran DAC 0808 dari 0 – 5
Volt menjadi level tegangan -5 – 5 Volt. Level tegangan ini digunakan sebagai
masukan driver PWM. Pengkondisi sinyal II berfungsi untuk menguatkan
tegangan keluaran sensor suhu LM35. Batas maksimal keluaran sensor adalah 1,5
V pada suhu 150° C, sedangkan referensi ADC adalah 5 Volt sehingga diperlukan
penguatan sebesar 5 / 1,5 = 3,33 kali. Rangkaian ADC 0804 digunakan untuk
mengubah besaran analog dari pengkondisi sinyal II ke data digital sehingga dapat
diolah di komputer. Mikrokontroller digunakan untuk mengatur aliran data dari
ADC ke komputer atau dari komputer ke DAC. Komunikasi yang digunakan
adalah komunikasi serial melalui RS 232. Mikrokontroller menerjemahkan
perintah dari komputer apakah mengirim data ke DAC atau mengambil data dari
ADC dan mengirimkannya ke komputer. Plant suhu didesain dengan
menggunakan driver PWM untuk mengatur besarnya daya yang dialirkan ke
pemanas. Untuk mengukur besarnya suhu yang terjadi digunakan sensor suhu
LM35 yang mempunyai karakteristik keluaran 10 mV /° C. Komputer digunakan
sebagai unit kontroller untuk mengaplikasikan algoritma jaringan syaraf tiruan
CMAC dan RBF. Disamping itu, komputer juga digunakan untuk menampilkan
grafik respon dan menyimpan data ke file untuk keperluan analisis.
3.3.1 Rangkaian Digital to Analog Converter (DAC)
DAC pada rancangan ini digunakan untuk mengubah masukan digital 8 bit
dari komputer menjadi besaran analog yaitu berupa tegangan. Tipe DAC yang
digunakan adalah DAC 0808 yang merupakan DAC 8 bit. Rangkaian lengkap
DAC 0808 ditunjukkan pada Gambar 3.11.
Gambar 3.11 Rangkaian DAC 0808
3.3.2 Rangkaian Analog to Digital Converter (ADC)
ADC pada rancangan ini digunakan untuk mengubah masukan analog
keluaran sensor suhu yang sudah dikuatkan menjadi data digital 8 bit. Tipe ADC
yang digunakan adalah ADC 0804 pada mode kerja free running. Rangkaian free
running ADC 0804 ditunjukkan pada Gambar 3.12.
Gambar 3.12 Rangkaian Free running ADC.
Untuk membuat mode kerja ADC 0804 menjadi free running, maka harus
diketahui bagaimana urutan pemberian nilai pada RD dan WR serta perubahan
nilai pada INTR . Urutan pemberian nilai pada RD , WR perubahan nilai pada
INTR ditunjukkan pada Tabel 3.4.
Tabel 3.4 Pemberian nilai pada RDdan WR serta perubahan nilai pada INTR
Langkah INTR WR RD
1 0 0 0
2 1 1 0
Mode kerja free running ADC diperoleh jika RD danCS dihubungkan ke
ground agar selalu mendapat logika 0 sehingga ADC akan selalu aktif dan siap
memberikan data. Pin WR dan INTR dijadikan satu karena perubahan logika
INTR sama dengan perubahan logika pada WR , sehingga pemberian logika pada
WR dilakukan secara otomatis oleh keluaran INTR .
3.3.3 Rangkaian Pengkondisi sinyal I
Pengkondisi sinyal I berfungsi untuk mengubah level tegangan keluaran
DAC 0808 dari 0 – 5 Volt menjadi level tegangan -5 – 5 Volt. Level tegangan ini
digunakan sebagai masukan driver PWM.
Untuk mendapatkan pengkondisi sinyal tersebut digunakan dua buah
penguat. Penguat pertama difungsikan sebagai penguat 2 kali sehingga keluaran
penguat ini mempunyai jangkauan 0 - 10 V. Penguat kedua digunakan sebagai
penguat selisih yang mengurangi tegangan masukan pada terminal tak
membaliknya dengan 5 V sehingga keluaran penguat ini mempunyai jangkauan -5
- 5 V untuk jangkauan masukan 0 - 10 V. Desain rangkaian pengkondisi sinyal I
ini ditunjukkan pada Gambar 3.13.
Gambar 3.13 Pengkondisi sinyal 0 – 5 Volt menjadi -5 – 5 Volt
3.3.4 Rangkaian Pengkondisi sinyal II
Pengkondisi sinyal II berfungsi untuk menguatkan tegangan keluaran
sensor suhu LM35. Keluaran sensor maksimal pada batas suhu maksimal
kemampuan sensor adalah 1,5 V pada suhu 150° C, sedangkan referensi ADC
adalah 5 Volt sehingga diperlukan penguatan sebesar 5 / 1,5 = 3,33 kali. Untuk
mendapatkan penguatan sebesar ini digunakan penguat tak membalik pada
Gambar 2.14 dengan memberikan nilai Rf sebesar 33 kΩ dan Ri sebesar 10 kΩ.
3.3.5 Plant Suhu dengan PWM Driver
Pada tugas akhir ini plant suhu yang dibuat digerakkan dengan sebuah
PWM driver. Skema plant suhu yang dibuat ditunjukkan pada Gambar 3.14.
Gambar 3.14 Skema plant suhu dengan PWM driver
Tegangan AC keluaran dari trafo disearahkan dengan penyearah jembatan
sehingga dihasilkan tegangan DC ± 46 Vdc. Untuk menggerakkan tegangan DC
tinggi ini digunakan MOSFET tipe IRFP150. Keluaran dari PWM digunakan
untuk menggerakkan Mosfet sehingga tegangan keluaran Mosfet yang masuk ke
beban adalah tegangan DC ± 46 Vdc dengan frekuensi dan duty cycle sesuai
dengan keluaran PWM driver. PWM driver diperoleh dengan membandingkan
keluaran sebuah pembangkit gelombang segitiga dengan sebuah tegangan
masukan melalui rangkaian pembanding. Desain rangkaian PWM Driver
ditunjukkan pada Gambar 3.15.
Gambar 3.15 Rangkaian PWM driver untuk pemanas
Frekuensi gelombang segitiga yang terjadi dapat dihitung dengan
menggunakan rumus sebagai berikut :
CaRanf
4 .................................................................................. (3.2)
75 10102,743
xxx
f
4,10f Hz
3.3.6 Mikrokontroller AT89s51
Mikrokontroller AT89s51 digunakan untuk mengatur aliran data dari PC
ke DAC atau dari ADC ke PC. Disamping itu, karena antara komputer dan
mikrokontroller dihubungkan secara serial, maka mikrokontroller juga berfungsi
untuk mengubah data paralel dari ADC menjadi data serial untuk dikirimkan ke
komputer dan mengubah dara serial dari komputer untuk dikirimkan ke DAC. IC
RS232 digunakan sebagai rangkaian antarmuka antara komputer dan
mikrokontroller. Desain rangkain komunikasi serial ini ditunjukkan pada Gambar
3.16.
Max
232
Vcc
Ke
DA
C 0
808
Ke
AD
C 0
804
At8
9s51
Gambar 3.16 Rangkaian minimum mikrokontroller dan RS 232
Diagram alir komunikasi antara PC dan mikrokontroller ditunjukkan pada
Gambar 3.17. Saat pertama kali diaktifkan mikrokontroller akan mengeksekusi
perintah toggle P1.0 3 kali. Proses ini digunakan untuk indikator bahwa sistem
minimum yang digunakan berfungsi. Proses selanjutnya mikrokontroller akan
menunggu sampai ada interupsi dari komputer. Jika interupsi berupa data ‘!’,
maka mikrokontroller akan mengirimkan data “Koneksi Ok……...!” ke PC
sebagai indikator bahwa komunikasi serial sudah bisa berjalan. Jika interupsi
berupa data ‘#’, maka mikrokontroller akan mengambil data dari port 2 yang
merupakan hasil konversi ADC dan mengirimkannya ke komputer. Jika data
interupsi selain ‘!’ dan ‘#’, maka mikrokontroller akan mengirimkan data yang
masuk ke register sbuf ke port 0 yang merupakan input DAC. Data ini merupakan
data sinyal kontrol yang diberikan ke driver.
Gambar 3.17 Diagram alir komunikasi serial mikrokontroller dan PC
Rutin program assembler yang digunakan untuk komunikasi antara
mikrokontroller dengan PC adalah sebagai berikut : ;Program komunikasi serial mikro PC ;Baudrate 9600 dan Mode serial = Mode 0 ;By Amin Fauzan / L2F000571 org 0h sjmp main ;Vektor interupsi serial org 23h sjmp serint org 30h ;Toggle p1.0 3x untuk cek system minimum main:
setb p1.0 acall delay acall delay clr p1.0 acall delay acall delay setb p1.0 acall delay acall delay clr p1.0 acall delay acall delay setb p1.0 acall delay acall delay clr p1.0 acall delay acall delay setb p1.0 ;Inisialisasi mode serial dan baudrate mov tmod,#20h mov th1,#0Fdh mov scon,#50h setb tr1 ;Aktifkan interupsi serial awal:
setb es setb ea dead:
sjmp dead ;Tunggu sampai ada interupsi serint: jb ri,r_cv clr ti reti ;Rutin pelayanan interupsi r_cv:
push psw push acc mov a,sbuf clr ri cjne a,#35,banding mov a,p2 mov sbuf,a sjmp exit banding: cjne a,#'!',send acall deliver sjmp exit send:
mov a,sbuf mov p0,a sjmp exit exit: pop acc pop psw reti deliver: mov dptr,#data mov r2,#20 kirim:
clr a movc a,@a+dptr mov sbuf,a jnb ti,$ clr ti inc dptr djnz r2,kirim ret ;Rutin delay delay: mov r5,#0ffh delay2: mov r6,#0ffh djnz r6,$ djnz r5,delay2 ret data: db 'Koneksi Ok.........',13,10 end
BAB IV
PENGUJIAN DAN ANALISIS
Untuk mengetahui karakteristik dinamis dari plant suhu yang akan
dikontrol, dilakukan pengujian secara kalang terbuka. Pengujian dilakukan dengan
mengirimkan tegangan tertentu dan mengakuisisi suhu keluaran plant yang
terjadi.
Hasil pengujian secara kalang terbuka ditunjukkan pada Gambar 4.1.
Pengujian secara kalang terbuka menunjukkan bahwa dengan tegangan yang
dikirim ke DAC sebesar 1,67 V, plant akan stabil pada suhu 58° C. Dari Gambar
4.1 dapat dihitung konstanta waktu sistem (T), yaitu besarnya waktu yang
dibutuhkan oleh respon untuk mencapai suhu keluaran sebesar 0,632 dari suhu
keluaran stabilnya atau sekitar (0,632 x (58° C -33° C ) ) + 33° C = 48° C. Hasil
akuisisi data menunjukkan bahwa untuk mencapai suhu 48° C dibutuhkan waktu
sekitar 40 detik, sehingga konstanta waktu sistem plant suhu yang dikontrol
adalah sebesar 40 detik.
Gambar 4.1 Respon plant suhu secara kalang terbuka.
4.1 Pengujian Jaringan Syaraf Tiruan CMAC dan RBF secara On-line
Proses pengendalian plant secara on-line diawali dengan proses
pengambilan data keluaran plant dan data referensi, kemudian data tersebut
diproses sesuai dengan algoritma kontrol CMAC atau RBF sehingga diperoleh
sinyal kontrol untuk plant. Pada tugas akhir ini, algoritma kontrol CMAC dan
RBF dituliskan dalam suatu komponen timer dengan interval waktu 350 ms,
sehingga algoritma kontrol CMAC atau RBF tersebut akan dijalankan setiap 350
ms atau dapat dikatakan waktu sampling proses adalah 350 ms. Lama proses
komputasi pada kontrol CMAC dan RBF berbeda – beda tergantung pada
banyaknya memori yang digunakan dalam proses kontrol. Oleh karena itu,
diperlukan pengujian jaringan CMAC dan RBF secara on-line untuk memastikan
lama komputasi proses lebih kecil daripada waktu sampling proses tersebut.
Pengujian dilakukan dengan menghitung waktu proses yang diperlukan pada
proses kontrol dengan jaringan syaraf CMAC dan RBF untuk kebutuhan memori
yang berbeda.
Pada jaringan syaraf CMAC kebutuhan memori ditentukan oleh parameter
generalisasi. Hasil perhitungan waktu proses untuk parameter generalisasi yang
berbeda ditunjukkan pada Tabel 4.1.
Tabel 4.1 Hubungan antara banyaknya parameter generalisasi
yang dipilih terhadap lama proses komputasi.
Jumlah Parameter Generalisasi
Lama Proses Komputasi (ms)
10 10,64521888 40 10,64676842 70 10,72947912
100 10,7314682 130 10,78110579
Pada jaringan syaraf RBF kebutuhan memori ditentukan oleh jumlah
fungsi basis yang digunakan. Hasil perhitungan waktu proses untuk jumlah fungsi
basis yang berbeda ditunjukkan pada Tabel 4.2.
Tabel 4.2 Hubungan antara jumlah fungsi basis yang dipilih
terhadap lama proses komputasi.
Jumlah Fungsi Basis
Lama Proses Komputasi (ms)
3 10,60441294 6 10,6397098 9 10,66818641 12 10,67345338 15 10,70400847
4.2 Pengujian Jaringan Syaraf CMAC
Pengujian jaringan syaraf CMAC dilakukan untuk mengetahui pengaruh
masing – masing parameter jaringan syaraf CMAC terhadap dinamika respon
plant suhu. Untuk parameter jaringan yang sama, pengujian dilakukan dalam 2
keadaan yaitu dengan menggunakan bobot awal dan bobot setelah 2 kali
pelatihan.
4.2.1 Pengaruh Laju Konvergensi terhadap Transien Suhu
Untuk menunjukkan pengaruh pemilihan nilai laju konvergensi pada
dinamika suhu plant yang dikontrol, dipilih 2 buah nilai laju konvergensi yang
relatif berbeda jauh, dengan besar gain proporsional dan generalisasi yang sama.
Pada pengujian ini dipilih besar gain proporsional sebesar 1,5, generalisasi 60 dan
referensi suhu 50° C. Variasi nilai laju konvergensi yang digunakan adalah 0,1
dan 0,5.
Hasil pengujian ditunjukkan pada Gambar 4.2 dan Gambar 4.3. Laju
konvergensi yang kecil mengakibatkan sistem lama mencapai keadaan tunak
karena proses pembelajaran menjadi relatif lama, sedangkan laju konvergensi
yang besar mengakibatkan lonjakan yang besar pada respon transien sistem
karena adanya koreksi yang berlebih pada bobot jaringan (over corrected.
Penggunaan bobot hasil pelatihan akan meningkatkan unjuk kerja sistem yaitu
akan mempercepat waktu penetapan sistem dan mengurangi lonjakan.
(a) Bobot awal nol
Gambar 4.2 Respon transien suhu dengan kontrol CMAC untuk referensi 50° C, gain
proporsional 1,5, generalisasi 60 dan laju konvergensi 0,1.
(b) Bobot hasil 2 kali pelatihan.
Gambar 4.2 Respon transien suhu dengan kontrol CMAC untuk referensi 50° C, gain
proporsional 1,5, generalisasi 60 dan laju konvergensi 0,1 (Lanjutan).
(a) Bobot awal nol
(b) Bobot hasil 2 kali pelatihan.
Gambar 4.3 Respon transien suhu dengan kontrol CMAC untuk referensi 50° C, gain
proporsional 1,5, generalisasi 60 dan laju konvergensi 0,5.
Data parameter unjuk kerja pada pengujian ini ditunjukkan pada Tabel 4.3.
Untuk nilai laju konvergensi 0,1, respon sistem mempunyai waktu penetapan
sekitar 110 detik. Waktu penetapan dengan nilai laju konvergensi yang relatif
kecil ini dapat dipersingkat dengan cara melatih jaringan syaraf CMAC dengan
menggunakan bobot hasil pelatihan, sehingga waktu penetapan menjadi lebih
singkat yaitu sekitar 16 detik. Untuk laju konvergensi yang relatif besar yaitu 0,5
dengan bobot CMAC awal nol, waktu penetapan respon sekitar 50 detik. Ini
berarti laju konvergensi yang besar akan mempercepat waktu penetapan, tetapi
respon sistem mengalami lonjakan sebesar 71 %. Penggunaan bobot hasil
pelatihan akan mempersingkat waktu penetapan respon menjadi 46 detik dan
memperkecil lonjakan transien menjadi 42 %.
Tabel 4.3 Data parameter unjuk kerja sistem dengan kontrol CMAC pada referensi 50° C, gain
proporsional 1,5, dan generalisasi 60.
Laju konvergensi = 0,1 Gain proporsional = 1,5 Generalisasi = 60
Laju konvergensi = 0,5 Gain proporsional = 1,5 Generalisasi = 60
Parameter Unjuk Kerja
Bobot awal nol Bobot hasil latih Bobot awal nol Bobot hasil latih Waktu penetapan 110 detik 16 detik 50 detik 46 detik
Overshoot transient - - 71 % 41 %
4.2.2 Pengaruh Gain Proporsional terhadap Transien Suhu
Keluaran CMAC merupakan fungsi dari keluaran gain proporsional.
Keluaran gain proporsional digunakan sebagai data latih jaringan syaraf CMAC,
sehingga nilai gain proporsinal yang dipilih akan mempengaruhi keluaran CMAC.
Untuk memperlihatkan pengaruh pemilihan nilai gain proporsional, pada
pengujian ini dipilih 2 buah nilai gain yang besarnya relatif berbeda, dengan besar
nilai laju konvergensi dan besar parameter generalisasi yang sama. Pada pengujian
ini dipilih referensi suhu 50° C, generalisasi 60 dan laju konvergensi 0,1. Variasi
nilai gain proporsional yang digunakan adalah 0,5 dan 4.
Hasil pengujian pengaruh pemilihan gain proporsional terhadap transien
suhu ditunjukkan pada Gambar 4.4 dan Gambar 4.5. Hasil pengujian
menunjukkan bahwa gain proporsinal berpengaruh terhadap waktu penetapan dan
waktu naik respon. Semakin besar gain proporsinal yang dipilih, maka semakin
cepat waktu penetapan dan waktu naik respon. Waktu naik respon yang cepat
pada transien disebabkan oleh sinyal kontrol yang cukup besar pada saat awal.
Sinyal kontrol ini berasal dari keluaran gain proporsional. Sebagai
konsekuensinya, respon sistem akan mengalami lonjakan. Penggunaan bobot hasil
pelatihan hanya mempercepat waktu naik respon.
(a) Bobot awal nol
(b) Bobot hasil 2 kali pelatihan
Gambar 4.4 Respon transien suhu dengan kontrol CMAC untuk referensi 50° C, generalisasi 60,
laju konvergensi 0,1 dan gain proporsional 0,5.
(a) Bobot awal nol
(b)Bobot hasil 2 kali pelatihan
Gambar 4.5 Respon transien suhu dengan kontrol CMAC untuk referensi 50° C, generalisasi 60,
laju konvergensi 0,1 dan gain proporsional 4.
Data parameter unjuk kerja pada pengujian ini ditunjukkan pada Tabel 4.4.
Untuk gain proporsional sebesar 0,5 dan bobot awal jaringan CMAC nol, respon
sistem memiliki waktu penetapan sekitar 96 detik. Penggunaan bobot hasil
pelatihan tidak meningkatkan unjuk kerja, tetapi memperbesar waktu penetapan
menjadi 125 detik dan menimbulkan lonjakan respon sebesar 12 %. Pemberian
nilai gain proporsional yang relatif besar pada kontrol CMAC yaitu 4 dengan
bobot awal nol, membuat keluaran plant mempunyai waktu penetapan sekitar 40
detik. Ini berarti bahwa pemberian gain proporsional yang besar akan
mempercepat waktu penetapan, tetapi akan menimbulkan lonjakan respon yang
besar.
Tabel 4.4 Data parameter unjuk kerja sistem dengan kontrol CMAC pada referensi 50° C, laju
konvergensi 0,1, dan generalisasi 60.
Laju konvergensi = 0,1 Gain proporsional = 0,5 Generalisasi = 60
Laju konvergensi = 0,1 Gain proporsional = 4 Generalisasi = 60
Parameter Unjuk Kerja Bobot awal nol Bobot hasil latih Bobot awal nol Bobot hasil latih Waktu penetapan 96 detik 125 detik 40 detik 37 detik
Overshoot transien - 12 % 17 % 23 %
4.2.3 Pengaruh Generalisasi terhadap Transien Suhu
Untuk mengetahui pengaruh nilai generalisasi terhadap transien suhu
dilakukan pengujian dengan referensi, gain proporsional dan laju konvergensi
yang tetap serta variasi terhadap nilai generalisasi. Pada pengujian ini digunakan
referensi 50, gain proporsional 2, laju konvergensi 0,1 dan variasi nilai
generalisasi yang dipilih adalah 30 dan 150.
Hasil pengujian ditunjukkan pada Gambar 4.6 dan Gambar 4.7. Hasil
pengujian menunjukkan bahwa untuk generalisasi yang kecil yaitu 30, respon
sistem mempunyai waktu penetapan yang lebih singkat dan tidak ada lonjakan
pada respon transiennya. Untuk nilai generalisasi yang besar, respon sistem
mengalami lonjakan dan mempunyai waktu penetapan yang lebih lama.
Penggunaan bobot hasil pelatihan akan mempersingkat waktu penetapan respon
dan mengurangi lonjakan yang terjadi.
(a) Bobot awal nol
Gambar 4.6 Respon transien suhu dengan kontrol CMAC untuk referensi 50° C, laju konvergensi
0,1, gain proporsional 2 dan generalisasi 30.
(b)Bobot hasil 2 kali pelatihan
Gambar 4.6 Respon transien suhu dengan kontrol CMAC untuk referensi 50° C,
laju konvergensi 0,1, gain proporsional 2 dan generalisasi 30 (Lanjutan).
(a) Bobot awal nol
(b)Bobot hasil 2 kali pelatihan
Gambar 4.7 Respon transien suhu dengan kontrol CMAC untuk referensi 50° C, laju konvergensi
0,1, gain proporsional 2 dan generalisasi 30.
Data parameter unjuk kerja pada pangujian ditunjukkan pada Tabel 4.5.
Untuk bobot CMAC awal nol dengan generalisasi 30, respon sistem memiliki
waktu penetapan sekitar 47 detik. Penggunaan bobot hasil pelatihan akan
memperkecil waktu penetapan menjadi sekitar 23 detik, tetapi menimbulkan
lonjakan respon sebesar 6 %. Pemilihan nilai generalisasi yang besar yaitu 150
akan memperbesar waktu penetapan menjadi sebesar 68 detik dan lonjakan respon
sebesar 23 %. Penggunaan bobot hasil pelatihan tidak berpengaruh terhadap
waktu penetapan dan lonjakan respon.
Tabel 4.5 Data parameter unjuk kerja sistem dengan kontrol CMAC pada referensi 50° C ,laju
konvergensi 0,1, dan gain proporsional 2.
Laju konvergensi = 0,1 Gain proporsional = 2 Generalisasi = 30
Laju konvergensi = 0,1 Gain proporsional = 2 Generalisasi = 150
Parameter Unjuk Kerja Bobot awal nol Bobot hasil latih Bobot awal nol Bobot hasil latih Waktu penetapan 47 detik 23 detik 62 detik 63 detik
Overshoot transien - 6 % 23 % 23 %
4.3 Pengujian Jaringan Syaraf RBF
Pengujian jaringan syaraf RBF dilakukan untuk mengetahui pengaruh
masing – masing parameter jaringan syaraf RBF terhadap dinamika respon sistem.
Untuk parameter jaringan yang sama, pengujian dilakukan dalam 2 keadaan yaitu
dengan menggunakan bobot awal dan bobot setelah 2 kali pelatihan.
4.3.1 Pengaruh Laju Konvergensi terhadap Transien Suhu
Untuk menunjukkan pengaruh langsung pemilihan nilai laju konvergensi
pada dinamika suhu plant yang dikontrol, dipilih 2 buah nilai laju konvergensi
yang relatif berbeda, dengan besar gain proporsional dan jumlah fungsi basis yang
sama. Pada pengujian ini dipilih besar gain proporsional sebesar 1,5, jumlah
fungsi basis 5 dan referensi suhu 50° C. Variasi nilai laju konvergensi yang
digunakan adalah 0,1 dan 0,5.
Hasil pengujian ditunjukkan pada Gambar 4.8 dan Gambar 4.9. Hasil
pengujian menunjukkan bahwa laju konvergensi yang kecil mengakibatkan sistem
lama mencapai keadaan tunak karena proses pembelajaran menjadi relatif lama,
sedangkan laju konvergensi yang besar mengakibatkan lonjakan yang besar pada
respon transien sistem. Lonjakan yang besar disebabkan oleh adanya koreksi yang
berlebih pada bobot jaringan (over corrected). Sinyal kontrol yang diberikan ke
plant mengalami kenaikan yang besar akibat keluaran jaringan RBF mengalami
kenaikan yang besar.
(a) Bobot awal nol
(b) Bobot hasil 2 kali pelatihan
Gambar 4.8 Respon transien suhu dengan kontrol RBF untuk nilai referensi 50° C , gain
proporsional 1,5, jumlah fungsi basis 5 dan laju konvergensi 0,1
(a) Bobot awal nol
(b) Bobot hasil 2 kali pelatihan
Gambar 4.9 Respon transien suhu dengan kontrol RBF untuk nilai referensi 50° C,
gain proporsional 1,5, jumlah fungsi basis 5 dan laju konvergensi 0,5.
Data parameter unjuk kerja pada pengujian ini ditunjukkan pada Tabel 4.6.
Untuk nilai laju konvergensi yang relatif kecil yaitu 0,1 dan bobot RBF awal sama
dengan nol, respon suhu plant mempunyai waktu penetapan sekitar 116 detik.
Penggunaan bobot hasil pelatihan memperbesar waktu penetapan respon menjadi
sekitar 125 detik dan menimbulkan lonjakan sebesar 12 %. Untuk laju
konvergensi yang relatif besar yaitu 0,5 dengan bobot RBF awal nol, waktu
penetapan keluaran lebih cepat dibandingkan dengan nilai laju konvergensi yang
kecil yaitu sekitar 63 detik, tetapi respon sistem mengalami lonjakan sebesar 17
%. Penggunaan bobot hasil pelatihan mempercepat waktu penetapan menjadi
sekitar 55 detik , tetapi memperbesar lonjakan menjadi 23 %.
Tabel 4.6 Data parameter unjuk kerja sistem dengan kontrol RBF pada referensi 50° C, gain
proporsional 1,5, dan jumlah fungsi basis 5.
Laju konvergensi = 0,1 Gain proporsional = 1,5 Jumlah fungsi basis = 5
Laju konvergensi = 0,5 Gain proporsional = 1,5 Jumlah fungsi basis = 5
Parameter Unjuk Kerja Bobot awal nol Bobot hasil latih Bobot awal nol Bobot hasil latih Waktu penetapan 116 detik 125 detik 63 detik 55 detik
Overshoot transien - 12 % 17 % 23 %
4.3.2 Pengaruh Gain Proporsional terhadap Transien Suhu
Gain proporsional berpengaruh terhadap keluaran jaringan RBF. Hal ini
karena keluaran gain proporsional digunakan sebagai data untuk melatih jaringan
RBF. Untuk memperlihatkan pengaruh pemilihan nilai gain proporsional, pada
pengujian ini dipilih 2 buah nilai gain yang besarnya relatif berbeda dengan besar
nilai laju konvergensi dan jumlah fungsi basis yang sama. Pada pengujian ini
dipilih referensi suhu 50° C, jumlah fungsi basis 5 dan laju konvergensi 0,1.
Variasi nilai gain proporsional yang digunakan adalah 0,5 dan 4.
Hasil pengujian ini ditunjukkan pada Gambar 4.10 dan Gambar 4.11. Gain
proporsional berpengaruh terhadap waktu naik dan waktu penetapan respon.
Semakin besar gain proporsional yang dipilih, waktu naik dan waktu penetapan
respon akan semakin cepat.
(a) Bobot awal nol
Gambar 4.10 Respon transien suhu dengan kontrol RBF untuk nilai referensi 50° C ,
jumlah fungsi basis 5, laju konvergensi 0,1 dan gain proporsional 0,5.
(b) Bobot hasil 2 kali pelatihan
Gambar 4.10 Respon transien suhu dengan kontrol RBF untuk nilai referensi 50° C ,
jumlah fungsi basis 5, laju konvergensi 0,1 dan gain proporsional 0,5 (Lanjutan).
(a) Bobot awal nol
(b)Bobot hasil 2 kali pelatihan
Gambar 4.11 Respon transien suhu dengan kontrol RBF untuk nilai referensi 50° C,
jumlah fungsi basis 5, laju konvergensi 0,1 dan gain proporsional 4.
Data parameter unjuk kerja pada pengujian ini ditunjukkan pada Tabel 4.7.
Untuk gain proporsional yang kecil yaitu 0,5 dan bobot awal nol, respon transien
sistem memiliki waktu penetapan sekitar 137 detik dan tanpa lonjakan.
Penggunaan bobot hasil pelatihan memperbesar waktu penetapan menjadi 152
detik dan menimbulkan lonjakan respon sebesar 12 %. Untuk nilai gain
proporsional yang relatif lebih besar pada kontrol RBF yaitu 4 dan bobot awal nol,
waktu penetapan respon lebih singkat dibandingkan dengan gain proporsional
yang kecil yaitu menjadi sekitar 51 detik Penggunaan bobot hasil pelatihan
memperbesar waktu penetapan menjadi sekitar 75 detik dan menimbulkan
lonjakan sebesar 12 %.
Tabel 4.7 Data parameter unjuk kerja sistem dengan kontrol RBF pada referensi 50° C, gain
proporsional 1,5, dan jumlah fungsi basis 5.
Laju konvergensi = 0,1 Gain proporsional = 0,5 Jumlah fungsi basis = 5
Laju konvergensi = 0,1 Gain proporsional = 0,5 Jumlah fungsi basis = 5
Parameter Unjuk Kerja
Bobot awal nol Bobot hasil latih Bobot awal nol Bobot hasil latih Waktu penetapan 137 detik 152 detik 51 detik 75 detik
Overshoot transien - 12 % - 12 %
4.3.3 Pengaruh Jumlah Fungsi Basis terhadap Transien Suhu
Untuk mengetahui pengaruh jumlah fungsi basis terhadap transien suhu
dilakukan pengujian dengan pemilihan 2 buah jumlah fungsi basis yang berbeda
dan laju konvergensi serta gain proporsional yang sama. Pada pengujian ini
digunakan referensi suhu 50º C, gain proporsional 2, laju konvergensi 0,1 dan
variasi jumlah fungsi basis yang digunakan adalah 3 dan 8.
Hasil pengujian ditunjukkan oleh Gambar 4.12 dan Gambar 4.13. Untuk
jumlah fungsi basis sedikit respon sistem mempunyai waktu penetapan yang lebih
singkat dan tidak ada lonjakan pada respon transiennya. Untuk jumlah fungsi
basis yang lebih banyak, respon sistem mengalami lonjakan dan mempunyai
waktu penetapan yang lebih lama.
(a) Bobot awal nol
(b)Bobot hasil 2 kali pelatihan
Gambar 4.12 Respon transien suhu dengan kontrol RBF untuk referensi 50° C,
laju konvergensi 0,1, gain proporsional 2 dan jumlah fungsi basis 3.
(a) Bobot awal nol
Gambar 4.13 Respon transien suhu kontrol RBF untuk referensi 50° C,
laju konvergensi 0,1, gain proporsional 2 dan junlah fungsi basis 8
(b)Bobot hasil 2 kali pelatihan.
Gambar 4.13 Respon transien suhu kontrol RBF untuk referensi 50° C,
laju konvergensi 0,1, gain proporsional 2 dan junlah fungsi basis 8 (Lanjutan).
Data parameter unjuk kerja pada pangujian ini ditunjukkan pada Tabel 4.8.
Untuk bobot-bobot RBF awal nol dan jumlah fungsi basis 3, respon transien suhu
memiliki waktu penetapan sekitar 37 detik dan tanpa lonjakan. Penggunaan bobot
hasil pelatihan akan memperkecil waktu penetapan menjadi sekitar 25 detik.
Pemilihan jumlah fungsi basis yang banyak dalam hal ini 8 akan memperbesar
waktu penetapan sistem menjadi sebesar 60 detik dan lonjakan respon sebesar 12
%. Penggunaan bobot hasil pelatihan tidak banyak berpengaruh terhadap waktu
penetapan dan lonjakan respon.
Tabel 4.8 Data parameter unjuk kerja sistem dengan kontrol RBF pada referensi 50° C, laju
konvergensi 0,1, dan gain proporsional 2.
Laju konvergensi = 0,1 Gain proporsional = 2 Jumlah fungsi basis = 3
Laju konvergensi = 0,1 Gain proporsional = 2 Jumlah fungsi basis = 8
Parameter Unjuk Kerja Bobot awal nol Bobot hasil latih Bobot awal nol Bobot hasil latih Waktu penetapan 37 detik 25 detik 60 detik 60 detik
Overshoot transien - - 12 % 12 %
4.4 Perbandingan Unjuk Kerja Jaringan Syaraf CMAC dan RBF
Untuk membandingkan unjuk kerja jaringan syaraf CMAC dan jaringan
syaraf RBF perlu diperhatikan hal – hal sebagai berikut :
1. Struktur pengendalian yang digunakan harus sama. Struktur yang
digunakan adalah Fixed Stabilising Controller.
2. Nilai gain proporsional dan laju konvergensi yang digunakan pada kedua
jaringan harus sama.
3. Kedua jaringan harus mempunyai respon yang optimal untuk nilai gain
proporsional dan laju konvergensi yang dipilih.
Karena kedua paramater jaringan yaitu gain proporsional dan laju
konvergensi yang dipilih sama, maka kondisi optimal ini ditentukan oleh
pemilihan parameter generalisasi pada jaringan CMAC dan jumlah fungsi basis
yang digunakan pada jaringan RBF yang tepat. Pemilihan parameter generalisasi
dan jumlah fungsi basis tersebut dilakukan secara trial and error sehingga
diperoleh respon sistem yang optimal.
Pemilihan gain proporsional dan laju konvergensi kedua jaringan
dilakukan secara acak namun dengan mempertimbangkan pengaruh masing –
masing parameter tersebut terhadap transien respon suhu yang terjadi. Pada
pengujian ini dipilih nilai laju konvergensi sebesar 0,1 dan gain proporsional
sebesar 2. Dari hasil trial and error diperoleh bahwa untuk nilai laju konvergensi
dan gain proporsional tersebut, parameter generalisasi yang tepat adalah sebesar
25 sedangkan jumlah fungsi basis yang tepat adalah 5.
4.4.1 Pengujian Pengaruh Pembelajaran
Untuk menguji pengaruh bobot pembelajaran pada respon sistem
dilakukan pengujian dengan cara mengubah referensi sistem pada 2 setting yang
berbeda beberapa kali. Dari grafik respon akan diperoleh perbedaan respon kedua
jaringan antara respon jaringan dengan bobot awal nol dan respon jaringan dengan
menggunakan bobot hasil pelatihan. Pada pengujian ini referensi sistem diubah
pada nilai 40° C dan 70° C.
Gambar 4.14 Pengujian untuk mengetahui pengaruh bobot pembelajaran terhadap transien suhu
pada kontrol CMAC.
Gambar 4.15 Pengujian untuk mengetahui pengaruh bobot pembelajaran terhadap transien suhu
pada kontrol RBF.
Hasil pengujian ditunjukkan pada Gambar 4.14 dan Gambar 4.15. Pada
jaringan CMAC saat pengujian dengan bobot awal nol dan referensi 70° C, respon
mempunyai waktu penetapan sebesar 111 detik tanpa lonjakan dan ketika
referensi diubah memjadi 40° C respon mempunyai waktu penetapan sebesar
128 detik dengan undershoot sebesar 10 %. Pada referensi 70° C yang kedua
waktu penetapan respon menjadi 21 detik atau 81% lebih cepat daripada yang
pertama, dan saat diberi referensi 40° C respon mempunyai waktu penetapan
sebesar 94 detik atau 26,5 % lebih cepat dari yang pertama dengan lonjakan
sebesar 3 %. Pada jaringan RBF saat pengujian dengan bobot awal nol dan
referensi 70° C, respon mempunyai waktu penetapan sebesar 40 detik tanpa
lonjakan dan ketika referensi diubah menjadi 40° C respon mempunyai waktu
penetapan sebesar 116 detik dengan undershoot sebesar 13 %. Pada saat diberi
referensi 70° C dan 40° C lagi respon relatif berubah.
Kesimpulan yang diperoleh dari pengujian ini adalah respon jaringan
syaraf CMAC dengan menggunakan bobot pelatihan akan menjadi semakin baik,
sedangkan pada jaringan syaraf RBF respon sistem akan relatif sama. Hal ini
karena pada jaringan CMAC ketika menerima referensi yang baru, maka jaringan
akan mengambil bobot – bobot tertentu sesuai dengan memori yang aktifkan
akibat referensi baru tersebut, sedangkan pada jaringan RBF setiap masukan yang
baru ia akan mengaktifkan seluruh fungsi basis yang berarti ketika ada referensi
baru maka bobot yang digunakan adalah bobot hasil pelatihan terakhir.
4.4.2 Pengujian Referensi Naik
Untuk mengetahui kemampuan jaringan dalam mengikuti perubahan
referensi naik dilakukan pengujian dengan memberikan referensi yang berubah
naik pada beberapa tahap. Perubahan referensi dilakukan setelah respon mencapai
keadaan tunak. Pada pengujian ini dilakukan perubahan referensi mulai dari 33°
C, 50° C, 70° C dan 90° C.
Hasil pengujian ditunjukkan pada Gambar 4.16 dan Gambar 4.17. Hasil
pengujian menunjukkan bahwa pada saat digunakan bobot awal jaringan nol,
ketika referensi dinaikkan kedua jaringan mampu mengikuti perubahan referensi
naik. Dengan menggunakan bobot hasil pelatihan waktu penetapan tiap perubahan
referensi pada jaringan syaraf CMAC akan semakin cepat, tetapi pada jaringan
syaraf RBF penggunaan bobot hasil pelatihan hanya berpengaruh pada respon
awal yaitu saat referensi 50° C. Respon suhu mengalami lonjakan yang besar.
Pada saat bobot hasil pelatihan digunakan, maka jaringan menggunakan bobot
terakhir yang disimpannya yaitu bobot untuk referensi terakhir yang diberikan
yaitu 90° C. Sinyal kontrol yang berasal dari keluaran jaringan RBF cukup besar
karena bobot awal yang digunakan adalah bobot untuk menghasilkan sinyal
kontrol pada referensi 90° C.
(a) Bobot awal
(b) Bobot hasil 2 kali pelatihan
Gambar 4.16 Pengujian referensi naik dengan jaringan syaraf CMAC.
(a) Bobot awal
Gambar 4.17 Pengujian referensi naik dengan jaringan syaraf RBF.
(b) Bobot hasil 2 kali pelatihan
Gambar 4.17 Pengujian referensi naik dengan jaringan syaraf RBF (Lanjutan).
4.4.3 Pengujian Referensi Turun
Untuk mengetahui kemampuan jaringan dalam mengikuti perubahan
referensi turun dilakukan pengujian dengan memberikan referensi yang berubah
turun pada beberapa tahap. Perubahan referensi dilakukan setelah respon
mencapai keadaan tunak. Pada pengujian ini dilakukan perubahan referensi mulai
dari 33° C, 90° C, 70° C dan 50° C.
Hasil pengujian pada jaringan syaraf CMAC ditunjukkan pada Gambar
4.18 dan hasil pengujian pada jaringan syaraf RBF ditunjukkan pada Gambar
4.19. Hasil pengujian menunjukkan bahwa pada saat digunakan bobot awal nol,
ketika referensi diturunkan kedua jaringan mampu mengikuti perubahan referensi
turun. Pada jaringan syaraf CMAC ketika mengikuti perubahan referensi turun,
respon akan mengalami undershoot sedangkan pada jaringan syaraf RBF tidak
mengalami undershoot. Dengan menggunakan bobot hasil pelatihan undershoot
pada jaringan syaraf CMAC dapat dihilangkan sehinggga jaringan mampu
mengikuti perubahan referensi dengan baik, tetapi pada jaringan syaraf RBF
penggunaan bobot hasil pelatihan hanya berpengaruh pada respon awal yaitu pada
saat setting referensi 90° C. Jika dibandingkan respon kedua jaringan setelah
mengalami pelatihan, tampak bahwa respon jaringan syaraf CMAC mempunyai
waktu penetapan yang lebih singkat daripada jaringan syaraf RBF.
(a) Bobot awal
(b) Bobot hasil 2 kali pelatihan
Gambar 4.18 Pengujian referensi turun dengan jaringan syaraf CMAC.
(a) Bobot awal
Gambar 4.18 Pengujian referensi turun dengan jaringan syaraf RBF.
(b) Bobot hasil 2 kali pelatihan
Gambar 4.18 Pengujian referensi turun dengan jaringan syaraf RBF (Lanjutan).
4.4.4 Pengujian Gangguan
Untuk mengetahui unjuk kerja jaringan syaraf CMAC dan RBF dalam
merespon gangguan dari luar dilakukan pengujian dengan memberikan gangguan
pada referensi suhu 60° C. Setelah respon suhu mencapai referensi yang
diberikan, kipas yang akan menyerap udara ke luar dinyalakan sehingga suhu
plant akan turun. Gangguan dihilangkan setelah respon kembali ke keadaan
referensi semula.
(a) Bobot awal
Gambar 4.20 Pengujian gangguan pada jaringan syaraf CMAC.
(b) Bobot hasil 2 kali pelatihan
Gambar 4.20 Pengujian gangguan pada jaringan syaraf CMAC (Lanjutan).
(a) Bobot awal
(b) Bobot hasil 2 kali pelatihan
Gambar 4.2 1 Pengujian gangguan pada jaringan syaraf RBF.
Hasil pengujan pada jaringan syaraf CMAC ditunjukkan pada Gambar
4.20 dan hasil pengujian pada jaringan syaraf RBF ditunjukkan pada Gambar
4.21. Hasil pengujian menunjukkan bahwa pada referensi 60° C ketika diberikan
gangguan, respon suhu dengan kontrol jaringan syaraf CMAC akan mengalami
penurunan suhu maksimum sebesar sebesar 2° C dan membutuhkan waktu sekitar
33 detik untuk mengatasi gangguan tersebut. Ketika gangguan dihilangkan respon
akan mengalami kenaikan suhu maksimum sebesar 1° C dan membutuhkan waktu
sekitar 33 detik untuk mengatasi gangguan. Pada jaringan syaraf RBF ketika
diberikan gangguan, respon sistem akan mengalami penurunan suhu maksimum
sebesar 3° C dan membutuhkan waktu sebesar 57 detik untuk mengatasi
gangguan tersebut, sedangkan jika gangguan dihilangkan respon sistem akan
mengalami lonjakan suhu maksimum sebesar 3° C dan membutuhkan waktu
sekitar 66 detik untuk kembali ke keadaan referensi.
Penggunaan bobot hasil pelatihan pada jaringan CMAC akan mengurangi
penurunan suhu ketika diberikan gangguan dan mempercepat waktu untuk
mengatasi gangguan tersebut yaitu menjadi sekitar 18 detik pada saat diberi
gangguan dan 13 detik pada saat gangguan dihilangkan. Pada jaringan syaraf RBF
pengunaan bobot hasil pelatihan ini tidak banyak berpengaruh terhadap respon
sistem. Data parameter unjuk kerja pada pengujian ini ditunjukkan pada Tabel 4.9.
Tabel 4.9 Data unjuk kerja jaringan syaraf CMAC dan RBF terhadap pengujain gangguan.
Jaringan Syaraf CMAC
Jaringan Syaraf RBF Pengujian Parameter Unjuk
Kerja Bobot Awal
Bobot Pelatihan
Bobot Awal
Bobot Pelatihan
Waktu untuk mengatasi gangguan 33 detik 18 detik 57 detik 77 detik Pemberian
Gangguan Lonjakan suhu
maksimum 2° C 1° C 3° C 3° C
Waktu untuk mengatasi gangguan 33 detik 13 detik 66 detik 73 detik Penghilangan
Gangguan Lonjakan suhu
maksimum 1° C 1° C 3° C 4° C
Dari keempat pengujian untuk perbandingan unjuk kerja jaringan syaraf
CMAC dan RBF diatas dapat disimpulkan hal – hal sebagai berikut :
1. Pada jaringan syaraf CMAC penggunaan bobot hasil pelatihan akan
meningkatkan unjuk kerja sistem baik terhadap referensi tetap, perubahan
referensi maupun gangguan. Pada jaringan syaraf RBF penggunaan bobot
hasil pelatihan tidak banyak berpengaruh dalam memperbaiki unjuk kerja
sistem.
2. Jaringan syaraf CMAC mempunyai unjuk kerja yang lebih baik dalam
mengatasi gangguan karena penurunan suhu akibat pemberian gangguan
dan lonjakan suhu akibat gangguan dihilangkan lebih kecil daripada
jaringan RBF. Disamping itu, waktu yang dibutuhkan untuk mengatasi
gangguan dan kembali pada referensi semula lebih cepat.
3. Secara keseluruhan jaringan syaraf CMAC mempunyai proses
pembelajaran yang lebih cepat dibandingkan dengan jaringan syaraf RBF.
BAB V
PENUTUP
5.1 Kesimpulan
Berdasarkan hasil pengujian yang dilakukan didapatkan hal-hal penting
sebagai berikut:
1. Kestabilan respon keluaran suhu plant akan sangat tergantung terhadap
pemilihan parameter-parameter kendali CMAC dan RBF , yaitu besarnya laju
konvergensi, gain proporsional, besarnya parameter generalisasi dan serta jumlah
fungsi basis yang digunakan.
2. Pemilihan laju konvergensi yang relatif lebih besar akan menyebabkan
keluaran transien mengalami overshoot, overshoot akan semakin tinggi untuk laju
konvergensi yang semakin besar. Hal yang sama terjadi pada pemilihan besarnya
gain proporsional. Semakin besar gain, transien suhu plant akan mengalami
overshoot.
3. Dari hasil trial and error pemilihan acak gain proporsional sebesar 2 dan
laju konvergensi sebesar 0,1 memberikan kondisi optimal pada jaringan CMAC
untuk generalisasi 25 dan pada jaringan syaraf RBF untuk jumlah fungsi basis 5.
4. Pada jaringan syaraf CMAC penggunaan bobot hasil pelatihan akan
meningkatkan unjuk kerja sistem baik terhadap referensi tetap, perubahan
referensi maupun gangguan. Pada jaringan syaraf RBF penggunaan bobot hasil
pelatihan tidak banyak berpengaruh dalam memperbaiki unjuk kerja sistem.
5. Jaringan syaraf CMAC mempunyai unjuk kerja yang lebih baik dalam
mengatasi gangguan karena penurunan suhu akibat pemberian gangguan dan
lonjakan suhu akibat gangguan dihilangkan lebih kecil daripada jaringan RBF.
Disamping itu, waktu yang dibutuhkan untuk mengatasi gangguan dan kembali
pda referensi semula lebih cepat.
6. Secara keseluruhan jaringan syaraf CMAC mempunyai proses pembelajaran
yang lebih cepat dibandingkan dengan jaringan syaraf RBF.
5.2 Saran 1. Untuk lebih memperbesar range pengaturan suhu sebaiknya digunakan
peralatan interface yang mempunyai resolusi yang lebih besar.
2. Untuk meningkatkan proses pembelajaran, dimensi jaringan syaraf dapat
dinaikkan dengan menambahkan masukan berupa perubahan suhu yang terjadi
pada plant
3. Untuk meningkatkan performansi sistem dapat ditambahkan pengaturan
kecepatan kipas pendingin sehingga sistem mepunyai 2 keluaran yaitu pemanas
dan kecepatan kipas pendingin.
DAFTAR PUSTAKA
(1) Albus, A New Approach to Manipulator Control : The Cerrebellar Model
Articulation Controller (CMAC), IEEE Journal.
(2) Astrom, John and Bjorn Wittenmark, Adaptive Control, Addison-Wesley
Publishing Company, Inc.
(3) Brown, Martin and Harris, Neurofuzzy Adaptive Modelling and Control,
Prentice Hall Inc, 1994.
(4) Coughlin, Robert and Federick Driscoll, Penguat Operasional dan
Rangkaian Terpadu Linier, Jakarta : Erlangga.
(5) Haykin, Simon, Neural Nerworks- A Comprehensive Foundation,
Macmillan Colege-Publishing Company Inc, 1994.
(6) Kraff, Gordon and David Campagna, A Comparison Between CMAC
Neural Network Control and Two Traditional Adaptive Control Systems,
Papers
(7) Malvino, Prinsip – Prinsip Elektronika, Jakarta : Erlangga, 1996.
(8) Ogata, Katsuhiko, Teknik Kontrol Otomatik, Jilid 1, Erlangga, Jakarta,
1991.
(9) Setiawan, Iwan. Pengaturan Kecepatan Motor DC dengan Kendali CMAC
secara On-line. Jurusan Teknik Elektro Fakultas Teknik Universitas Gajah
Mada Yogyakarta.
(10) Widrow and Lehr,30 Years of Adaptive Neural Network : Perceptron,
Madaline and Backpropagation, IEEE Journal.
(11) ...............,http://www.princeton.edu/~kung/ele571/30supervised-BP.ppt
(12) ...............,http://www.nada.kth.se/kurser/kth/2D1432/2004/rbf.pdf
(13) ...............,www-2.cs.cmu.edu/afs/cs.cmu.edu/project/ ai-repository/ai/
areas/neural/systems/cmac/cmac.txt
(14) ...............,www.computing.surrey.ac.uk/courses/ csm10/NeuralNetworks/
RBFNetworks.ppt
(15) ...............,www.data2money.com/PDF/RBFpaper.pdf
(16) ...............,www.ece.unh.edu/robots/cmacdemo.c
(17) ...............,www.icaen.uiowa.edu/~comp/Public/NeuralN.pdf
LAMPIRAN A
SENARAI PROGRAM
A.1 Form Loading (Fload) unit Uload; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, jpeg, ExtCtrls, StdCtrls, ComCtrls,math;
type TFload = class(TForm) Image1: TImage; Image3: TImage; ProgressBar1: TProgressBar; Label2: TLabel; Label3: TLabel; Timer1: TTimer; Label4: TLabel; Label5: TLabel; Label1: TLabel; Label6: TLabel; Label7: TLabel; procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Timer1Timer(Sender: TObject); private { Private declarations } public { Public declarations } end; var Fload: TFload; posisi:integer; implementation uses Ujst; {$R *.dfm} procedure TFload.FormCreate(Sender: TObject); begin Timer1.Enabled:=true; posisi:=0; end; procedure TFload.FormClose(Sender: TObject; var Action: TCloseAction); begin Timer1.Enabled:=false; end; procedure TFload.Timer1Timer(Sender: TObject); begin
posisi:= posisi + 1;
ProgressBar1.Position:=posisi; if posisi = 100 then begin Fload.Hide; Fjst.Show; sleep(100); end;
end; end. A.2 Form Utama (Fjst) unit Ujst; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, Menus, StdCtrls, Buttons, ExtCtrls, TeEngine, Series, TeeProcs,Chart,math, ExtDlgs, CPDrv, jpeg, IdGlobal;
type TFjst = class(TForm) MainMenu1: TMainMenu; File1: TMenuItem; Controller1: TMenuItem; Setting1: TMenuItem; Test1: TMenuItem; Online1: TMenuItem; Other1: TMenuItem; LoadWeight1: TMenuItem; LoadPicture1: TMenuItem; SaveWeight1: TMenuItem; SavePicture1: TMenuItem; Exit1: TMenuItem; Test1: TMenuItem; CMAC1: TMenuItem; RBF1: TMenuItem; CloseLoop1: TMenuItem; CMACParameters1: TMenuItem; RBFParameters1: TMenuItem; Connect1: TMenuItem; Disconnect1: TMenuItem; Reset1: TMenuItem; About1: TMenuItem; Help1: TMenuItem; Shape1: TShape; Label3: TLabel; Edit1: TEdit; Label4: TLabel; BitBtn1: TBitBtn; BitBtn2: TBitBtn; BitBtn3: TBitBtn; Chart1: TChart; Series1: TLineSeries;
ScrollBar1: TScrollBar; Timer_cmac: TTimer; Timer_rbf: TTimer; Edit3: TEdit; Label5: TLabel; SaveDialog1: TSaveDialog; Timer_clp: TTimer; OpenDialog1: TOpenDialog; Series3: TLineSeries; OpenPictureDialog1: TOpenPictureDialog; Setting2: TMenuItem; serial: TCommPortDriver; Timer_akuisisi: TTimer; Image1: TImage; Shape3: TShape; Shape5: TShape; Timer_monitor: TTimer; Button1: TButton; OpenLoop1: TMenuItem; SaveData1: TMenuItem; Button2: TButton; Timer_clock: TTimer; Shape2: TShape; procedure Test1Click(Sender: TObject); procedure CMACParameters1Click(Sender: TObject); procedure RBFParameters1Click(Sender: TObject); procedure LoadPicture1Click(Sender: TObject); procedure About1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure CMAC1Click(Sender: TObject); procedure RBF1Click(Sender: TObject); procedure CloseLoop1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Timer_cmacTimer(Sender: TObject); procedure ScrollBar1Change(Sender: TObject); procedure Connect1Click(Sender: TObject); procedure Disconnect1Click(Sender: TObject); procedure Reset1Click(Sender: TObject); procedure BitBtn4Click(Sender: TObject); procedure SaveWeight1Click(Sender: TObject); procedure Timer_rbfTimer(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure BitBtn3Click(Sender: TObject); procedure LoadWeight1Click(Sender: TObject); procedure SavePicture1Click(Sender: TObject); procedure Exit1Click(Sender: TObject); procedure Setting2Click(Sender: TObject); procedure Timer_clpTimer(Sender: TObject); procedure Timer_akuisisiTimer(Sender: TObject); procedure serialReceiveData(Sender: TObject; DataPtr: Poin ter;DataSize: Cardinal); procedure Timer_monitorTimer(Sender: TObject); procedure OpenLoop1Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure SaveData1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Timer_clockTimer(Sender: TObject);
procedure Help1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; const graph_maks = 15; ukuran = 4098; suhu_maks = 150; pembagi = 30; batas_maks = 15; var Fjst: TFjst; cmac,rbf,closeloop,openloop : boolean; i,j:integer; datax,panjang:real;
maksek,out_rbf,dy,dx,referensi,gain,error,controlP,sinyal_kontrol:real;
output : byte; F :textfile; connect:boolean; text_data:string; sinyalcontrol : integer; bagi:integer; hitung:integer; datay:string; waktu,start,stop: TDateTime; Hour, Min, Sec, MSec: Word; berkas_sumber, berkas_target :file; buffer :array[1..ukuran] of byte; sum_baca, sum_rekam : integer; file_report: string; mulai :tdatetime; durasi:tdatetime; lama :integer; online:boolean; //Disini vaiabel untuk kontrol CMAC bobot:array [1..15000] of real; alamat:array[1..15000] of integer; memori_cmac:array[1..15000] of real; data:real; intref,out_cmac:real; generalisasi,lyr,index:integer; F_cmac:textfile; laju_cmac:real; //Disini variabel untuk kontrol RBF w :array[1..15,1..15] of real; wb:real; c:array[1..20] of real; outb:array[1..20,1..20] of real; d,outbasis:real; temp1,temp2:real; //datacontrol:array[1..2] of real; F_rbf:textfile; sum_basis:integer; laju_rbf:real;
outputb:array[1..15,1..15] of real; deviasi:real; // variabel untuk port nama_port:Tportnumber; baudrate:cardinal; databits:Tdatabits; parity:Tparity; stopbits:Tstopbits; implementation uses Ucmac, Urbf, Userial, Utest, Uabout, Uview, Uload; {$R *.dfm} //Fungsi kuantisasi 8 bit Function kuant8bit(var input:real):real; begin kuant8bit:=ceil((input*255)/suhu_maks); end; //Fungsi generator alamat Function generator_alamat(var dref:real;dFback:byte;layer,gen: integer):integer; var temp1,temp2, temp3 : integer; begin
temp1:=1 + ceil((dref-layer+1)/gen); temp2:=(layer-1)*(ceil(255/gen)+1)*(ceil(255/gen)+1); temp3:=(ceil(255/gen)+1)*(ceil((dFback-layer+1)/gen)); generator_alamat:=temp1+temp2+temp3;
end; // Procedure menghitung memori maksimal yang harus disediakan procedure hitung_memoricmac; begin referensi := 255; output:=255; memoricmac_maks:=generator_alamat(referensi,output,generalisasi,generalisasi); end; // Procedure inisialisasi awal bobot cmac procedure initbobot; begin for i:=1 to memoricmac_maks do begin bobot[i]:=0; memori_cmac[i]:=0; end; end; // Inisialisasi awal bobot RBF procedure init2rbf; var i:integer; begin
for i:=1 to jumlah_basis do w[i,1]:=0; wb:=0; outbasis:=0;
end; // Procedure buat jaringan Procedure make_rbf; begin for i:=1 to sum_basis do c[i]:=(7/(sum_basis+1))*i; deviasi :=c[1]/3.05; end; // Fungsi menghitung keluaran fungsi basis oleh 2 masukan function rbf2dim(var s_rbf,a,b,x1,x2 : real):real; begin temp1 := -((a-x1)*(a-x1))/(2*s_rbf*s_rbf); temp2 := -((b-x2)*(b-x2))/(2*s_rbf*s_rbf); rbf2dim := exp(temp1)*exp(temp2); end; // Fungsi menghitung keluaran RBF 2 dimensi Function outrbforde2(var in1,in2:real):real; begin
outbasis:=0; outrbforde2:=0; make_rbf; //Inisialisasi keluaran tiap fungsi basis for i:=1 to sum_basis do
outputb[i,i]:=0; //Hitung keluaran tiap fungsi basis oleh 2 masukan for i:=1 to sum_basis do
outb[i,i]:=rbf2dim(deviasi,c[i],c[i],in1,in2); // Kalikan keluaran tiap fungsi basis dengan bobotnya sendiri for i:=1 to sum_basis do
outputb[i,i]:= outb[i,i]*w[i,i]; // Hitung keluaran jaringan for i:=1 to sum_basis do
outbasis:=outbasis+outputb[i,i]; outbasis:=outbasis+wb; outrbforde2:=outbasis;
end; Function hitung_milidetik(waktu: TDateTime): integer; var jam, menit, detik, Mdetik: word; begin DecodeTime(waktu,jam,menit,detik,Mdetik);
hitung_milidetik:=(3600000*jam)+(60000*menit)+1000*detik+Mdetik;
end;
procedure TFjst.Test1Click(Sender: TObject); begin Ftest.Show; end; procedure TFjst.CMACParameters1Click(Sender: TObject); begin Fcmac.Show; end; procedure TFjst.RBFParameters1Click(Sender: TObject); begin Frbf.Show; end; procedure TFjst.LoadPicture1Click(Sender: TObject); var nama:string; begin
OpenPictureDialog1.Filter :='Picture File(*.bmp)|*.bmp'; Opendialog1.InitialDir :='D:\'; if OpenPictureDialog1.Execute = true then
begin Fview.show; nama := OpenPictureDialog1.FileName; Fview.Image1.Picture.LoadFromFile(nama); end;
end; procedure TFjst.About1Click(Sender: TObject); begin
Fabout.Show; end; procedure TFjst.FormClose(Sender: TObject; var Action: TCloseAction); begin
Fload.Close; serial.SendByte(0); Application.Terminate;
end; procedure TFjst.CMAC1Click(Sender: TObject); begin
with mainmenu1.Items do begin Items[2].Items[0].Checked:=true; Items[2].Items[1].Checked:=false; Items[2].Items[2].Checked:=false; Items[2].Items[3].Checked:=false; Items[3].Items[0].Enabled:=true; Items[3].Items[1].Enabled:=false; end; cmac:=true; rbf:=false; closeloop:=false; openloop :=false;
end;
procedure TFjst.RBF1Click(Sender: TObject); begin
with mainmenu1.Items do begin Items[2].Items[0].Checked:=false; Items[2].Items[1].Checked:=true; Items[2].Items[2].Checked:=false; Items[2].Items[3].Checked:=false; Items[3].Items[0].Enabled:=false; Items[3].Items[1].Enabled:=true; end; cmac:=false; rbf:=true; closeloop:=false; openloop:=false;
end; procedure TFjst.CloseLoop1Click(Sender: TObject); begin
with mainmenu1.Items do begin Items[2].Items[0].Checked:=false; Items[2].Items[1].Checked:=false; Items[2].Items[2].Checked:=true; Items[2].Items[3].Checked:=false; Items[3].Items[0].Enabled:=false; Items[3].Items[1].Enabled:=false; end; cmac:=false; rbf:=false; closeloop:=true; openloop:=false;
end; procedure TFjst.FormCreate(Sender: TObject); begin
// Inisialisasi port serial serial.Port := pncom1; serial.BaudRateValue :=9600; serial.DataBits := db8bits; serial.StopBits := sb1bits; serial.SwFlow := sfnone; serial.Parity := ptnone; serial.Connect; serial.SendByte(0); // Inisialisasi komponen Mainmenu1.Items.Items[3].Items[0].Enabled:=false; Mainmenu1.Items.Items[3].Items[1].Enabled:=false; Chart1.BottomAxis.Maximum:=15; ScrollBar1.LargeChange:=batas_maks; ScrollBar1.Visible:=true; // Inisialisasi variabel dan bobot initbobot; init2rbf; dy:=0; dx:=0;
datax:=0; hitung:=0; online:=true; // Inisialisasi file yang digunakan untuk penyimpanan assignfile(F_cmac,'D:\data_cmac.txt'); rewrite(F_cmac); closefile(F_cmac); assignfile(F_rbf,'D:\data_rbf.txt'); rewrite(F_rbf); closefile(F_rbf); assignfile(F,'D:\data.xls'); rewrite(F); closefile(F); assignfile(F,'D:\data.xls'); append(F); writeln(F,'Sampling',#9,'Referensi',#9,'Out NN',#9,'Out Gain' ,#9,'Control u',#9,'Output',#9,'Error'); closefile(F);
end; procedure TFjst.Timer_cmacTimer(Sender: TObject); begin
// Baca output suhu plant---> masukan terkuantisasi serial.SendChar('#'); sleep(1); serial.ReadByte(output); // Hitung sinyal error dan output gain proporsional error:= (referensi/pembagi )- (output/51); controlP:=error*gain; // Kuantisasi input referensi intref:=kuant8bit(referensi); // Hitung keluaran cmac out_cmac:=0; for lyr:=1 to generalisasi do begin
alamat[lyr]:=generator_alamat(intref,output,lyr,generalisasi);
out_cmac:=out_cmac + memori_cmac[alamat[lyr]]; end; // Hitung sinyal kendali plant sinyal_kontrol:=controlP+out_cmac; lama:= hitung_milidetik(durasi); // Catat data ke file str((output*suhu_maks/255):2:2,datay); AssignFile(F,'d:\data.xls'); append(F); Writeln(F,inttostr(lama),#9,floattostr(referensi),#9,floattostr(out_cmac),#9,floattostr(controlP),#9,floattostr(sinyal_ kontrol),#9,datay,#9,floattostr((referensi/pembagi)-(output/51))); CloseFile(F); // Update bobot jaringan
for lyr:=1 to generalisasi do begin index:=alamat[lyr];
memori_cmac[index]:=memori_cmac[index] + laju_cmac * controlP/generalisasi;
end; // Kirim sinyal kontrol sinyalcontrol := round(sinyal_kontrol * 51); if sinyalcontrol > 255 then sinyalcontrol:= 255; if sinyalcontrol < 0 then sinyalcontrol:= 0; serial.SendByte(sinyalcontrol); Edit3.Text:=format('%4.1f',[output*(suhu_maks/255)]); // Plot grafik respon datax:=datax + 0.02; Chart1.series[0].SeriesColor:=clred; Chart1.Series[0].AddXY(datax,output*(suhu_maks/255)); Chart1.series[1].SeriesColor:=clblue; Chart1.Series[1].AddXY(datax,referensi); maksek:=Chart1.BottomAxis.Maximum; if datax>batas_maks then begin ScrollBar1.Max:=(Round(datax)-batas_maks)+1; ScrollBar1.Position:=ScrollBar1.Max; end;
end; procedure TFjst.ScrollBar1Change(Sender: TObject); var NewMax,NewMin:Integer; begin NewMax:=batas_maks+ScrollBar1.Position; NewMin:=ScrollBar1.Position; with Chart1.BottomAxis do //Kasus Max yang baru < Min yang lama if NewMax<Minimum then begin Minimum:=NewMin; Maximum:=NewMax; end else //Kondisi lain termasuk kasus Min yang baru > Max yang lama begin Maximum:=NewMax; Minimum:=NewMin; end; end; procedure TFjst.Connect1Click(Sender: TObject); begin
if Edit1.Text='' then messagedlg('Isi referensi dulu mas!!',mtinformation,[mbok],0) else
begin if cmac=true then begin
if generalisasi = 0 then messagedlg('Setting parameter CMAC dulu', mtinformation,[mbok],0) else begin initbobot; Timer_cmac.Enabled:=true; connect:=true; end;
end else if rbf=true then begin
if sum_basis = 0 then messagedlg('Setting parameter RBF dulu', mtinformation,[mbok],0) else begin init2rbf; Timer_rbf.Enabled:=true; connect:=true; end;
end else if closeloop=true then begin
Timer_clp.Enabled:=true; connect:=true; end else if openloop=true then begin Timer_akuisisi.Enabled:=true; connect:=true;
end else messagedlg('Pilih controller yang digunakan dulu !', mtinformation,[mbok],0); end; mulai:=now; timer_clock.Enabled:=true; serial.Connect;
end; procedure TFjst.Disconnect1Click(Sender: TObject); begin
timer_clock.Enabled:=false; lama:= hitung_milidetik(durasi); serial.Disconnect; if cmac=true then begin Timer_cmac.Enabled:=false; AssignFile(F_cmac,'d:\data_cmac.txt'); append(F_cmac); for i:=1 to 15000 do
Writeln(F_cmac,memori_cmac[i]:5:4); CloseFile(F_cmac); end else if rbf=true then begin Timer_rbf.Enabled:=false; AssignFile(F_rbf,'d:\data_rbf.txt'); append(F_rbf); for i:=1 to sum_basis do Writeln(F_rbf,w[i,i]:5:4); Writeln(F_rbf,wb:5:4); CloseFile(F_rbf);
end else if closeloop=true then Timer_clp.Enabled:=false; online:=false; connect:=false; timer_akuisisi.Enabled := false; serial.SendByte(0);
end; procedure TFjst.Reset1Click(Sender: TObject); begin serial.Connect; assignfile(F_cmac,'D:\data_cmac.txt'); rewrite(F_cmac); closefile(F_cmac); assignfile(F_rbf,'D:\data_rbf.txt'); rewrite(F_rbf); closefile(F_rbf); assignfile(F,'D:\data.xls'); rewrite(F); closefile(F); assignfile(F,'D:\data.xls'); append(F);
writeln(F,'Sampling',#9,'Referensi',#9,'Out NN',#9,'Out Gain',#9,'Control u',#9,'Output',#9,'Error');
closefile(F); lama:=0; Chart1.BottomAxis.minimum := 0; Chart1.BottomAxis.maximum :=graph_maks; Chart1.series[0].Clear; Chart1.series[1].Clear; datax :=0; ScrollBar1.Visible := true; initbobot; dy:=0; dx:=0; init2rbf; initbobot; serial.SendByte(0); timer_monitor.Enabled:=true; end;
procedure TFjst.BitBtn4Click(Sender: TObject); begin if cmac = true then begin AssignFile(F_cmac,'D:\data_cmac.txt'); Reset(F_cmac); for i:=1 to 15000 do begin Readln(F_cmac,memori_cmac[i]); end; CloseFile(F_cmac); assignfile(F_cmac,'D:\data_cmac.txt'); rewrite(F_cmac); closefile(F_cmac); end else if rbf=true then begin AssignFile(F_rbf,'D:\data_rbf.txt'); Reset(F_rbf); for i:=1 to sum_basis do Readln(F_rbf,w[i,i]); Readln(F_rbf,wb); CloseFile(F_rbf); assignfile(F_rbf,'D:\data_rbf.txt'); rewrite(F_rbf); closefile(F_rbf); end; end; procedure TFjst.SaveWeight1Click(Sender: TObject); var cmac_weight:string; begin
if cmac = true then begin SaveDialog1.Title :='Save Weight of CMAC'; SaveDialog1.Filter :='Text File(*.cmac)|*.cmac'; SaveDialog1.InitialDir:='D:\'; if Fjst.SaveDialog1.Execute=true then begin
assignfile(F_cmac,Fjst.SaveDialog1.FileName + '.cmac');
rewrite(F_cmac); closefile(F_cmac);
AssignFile(F_cmac,Fjst.SaveDialog1.FileName + '.cmac');
append(F_cmac); for i:=1 to 15000 do begin Writeln(F_cmac,memori_cmac[i]:5:4); end; CloseFile(F_cmac); end;
end else if rbf = true then
begin SaveDialog1.Title :='Save Weight of RBF';
SaveDialog1.Filter :='Text File(*.rbf)|*.rbf'; SaveDialog1.InitialDir:='D:\'; if SaveDialog1.Execute=true then begin assignfile(F_rbf,SaveDialog1.FileName + '.rbf'); rewrite(F_rbf); closefile(F_rbf); AssignFile(F_rbf,SaveDialog1.FileName + '.rbf'); append(F_rbf); for i:=1 to sum_basis do Writeln(F_rbf,w[i,i]:5:4); Writeln(F_rbf,wb); CloseFile(F_rbf); end;
end; end; procedure TFjst.Timer_rbfTimer(Sender: TObject); begin
// Baca output suhu plant serial.SendChar('#'); sleep(1); serial.ReadByte(output); // Hitung sinyal error dan output gain proporsional error:= (referensi/pembagi )- (output/51); controlP:=error*gain; // berupa Tegangan // Hitung keluaran RBF orde 2 dy:=output/51; dx:=referensi/pembagi; out_rbf:=outrbforde2(dx,dy); // Hitung sinyal kontrol plant sinyal_kontrol:=controlP+out_rbf; // Kirim sinyal kontrol sinyalcontrol := round(sinyal_kontrol * 51); if sinyalcontrol > 255 then sinyalcontrol:= 255; if sinyalcontrol < 0 then sinyalcontrol:= 0; serial.SendByte(sinyalcontrol); Edit3.Text:=format('%4.1f',[output*(suhu_maks/255)]); lama:= hitung_milidetik(durasi); // Catat data ke file str((output*suhu_maks/255):2:2,datay); AssignFile(F,'d:\data.xls'); append(F); Writeln(F,inttostr(lama),#9,floattostr(referensi),#9,floattostr(out_rbf),#9,floattostr(controlP),#9,floattostr(sinyal_ kontrol),#9,inttostr(round(output*suhu_maks/255)),#9,floattostr(referensi-(output*suhu_maks/255))); CloseFile(F); // Update bobot RBF for i:=1 to sum_basis do w[i,i]:=w[i,i] +laju_rbf*controlP*outb[i,i]/( sum_basis+1);
// Update bobot basis wb wb:=wb+laju_rbf*controlP/(sum_basis+1); // Plot grafik respon datax:=datax + 0.02; Chart1.series[0].SeriesColor:=clred; Chart1.Series[0].AddXY(datax,output*(suhu_maks/255)); Chart1.series[1].SeriesColor:=clblue; Chart1.Series[1].AddXY(datax,referensi); maksek:=Chart1.BottomAxis.Maximum; if datax>batas_maks then
begin ScrollBar1.Max:=(Round(datax)-batas_maks)+1; ScrollBar1.Position:=ScrollBar1.Max;
end; end; procedure TFjst.BitBtn1Click(Sender: TObject); begin
connect1click(sender); end; procedure TFjst.BitBtn2Click(Sender: TObject); begin
Disconnect1Click(Sender); end; procedure TFjst.BitBtn3Click(Sender: TObject); begin
Reset1Click(Sender); end; procedure TFjst.Timer_clpTimer(Sender: TObject); begin
// ambil data referensi dan gangguan referensi:=strtofloat(Fjst.edit1.text); // baca output suhu serial.SendChar('#'); sleep(1); serial.ReadByte(output); // Hitung sinyal error dan output gain proporsional (level tegangan) error:= (referensi/pembagi )- (output/51); sinyal_kontrol:=error; // Definisikan sinyal kontrol sinyalcontrol := round(sinyal_kontrol * 51); if sinyalcontrol > 255 then sinyalcontrol:= 255; if sinyalcontrol <0 then sinyalcontrol:=0; Serial.SendByte(sinyalcontrol); Edit3.Text:=format('%4.1f',[output*(suhu_maks/255)]); lama:= hitung_milidetik(durasi); // Catat data ke file
AssignFile(F,'d:\data.xls'); append(F); Writeln(F,inttostr(lama),#9,floattostr(referensi),#9,floattostr(sinyal_kontrol),#9,inttostr(round(output*suhu_maks/255)),#9,floattostr(referensi-(output*suhu_maks/255))); CloseFile(F); // Plot grafik respon datax:=datax + 0.02; Chart1.series[0].SeriesColor:=clred; Chart1.Series[0].AddXY(datax,output*(suhu_maks/255)); Chart1.series[1].SeriesColor:=clblue; Chart1.Series[1].AddXY(datax,referensi); maksek:=Chart1.BottomAxis.Maximum; if datax>batas_maks then
begin ScrollBar1.Max:=(Round(datax)-batas_maks)+1; ScrollBar1.Position:=ScrollBar1.Max;
end; end; procedure TFjst.LoadWeight1Click(Sender: TObject); begin
Opendialog1.Filter :='Cmac Files (*.cmac)|*.cmac|Rbf Files (*.rbf)|*.rbf'; Opendialog1.InitialDir:='D:\'; OpenDialog1.Title :='Load Weight of NN'; if Opendialog1.Execute = true then begin
if cmac = true then begin AssignFile(F_cmac,Opendialog1.FileName); Reset(F_cmac); for i:=1 to 15000 do begin Readln(F_cmac,memori_cmac[i]); end; CloseFile(F_cmac);
end else if rbf=true then begin
AssignFile(F_rbf,Opendialog1.FileName); Reset(F_rbf); for i:=1 to sum_basis do Readln(F_rbf,w[i,i]); Readln(F_rbf,wb); CloseFile(F_rbf); end; end;
end; procedure TFjst.SavePicture1Click(Sender: TObject); var namafile:string; begin
SaveDialog1.Filter := 'Picture File(*.bmp)|*.bmp'; SaveDialog1.InitialDir:='D:\'; SaveDialog1.FileName:=file_report; if SaveDialog1.Execute=true then
begin chart1.bottomaxis.Minimum :=0; chart1.BottomAxis.Maximum := maksek; namafile := SaveDialog1.FileName; Chart1.SaveToBitmapFile(namafile + '.bmp');
end; end; procedure TFjst.Exit1Click(Sender: TObject); begin application.Terminate; end; procedure TFjst.Setting2Click(Sender: TObject); begin Fserial.show; end; procedure TFjst.Timer_akuisisiTimer(Sender: TObject); begin
referensi:=strtofloat(Fjst.edit1.text); serial.SendByte(round(referensi*(255/suhu_maks))); serial.SendChar('#'); sleep(1); serial.ReadByte(output); Edit3.Text:=format('%4.1f',[output*(suhu_maks/255)]); lama:= hitung_milidetik(durasi); // Catat data ke file AssignFile(F,'d:\data.xls'); append(F); Writeln(F,floattostr(lama),#9,inttostr(round(output*suhu_maks/255))); CloseFile(F); // Plot grafik respon datax:=datax + 0.02; Chart1.series[0].SeriesColor:=clred; Chart1.Series[0].AddXY(datax,output*(suhu_maks/255)); Chart1.series[1].SeriesColor:=clblue; Chart1.Series[1].AddXY(datax,referensi); maksek:=Chart1.BottomAxis.Maximum; if datax>batas_maks then begin ScrollBar1.Max:=(Round(datax)-batas_maks)+1; ScrollBar1.Position:=ScrollBar1.Max;
end; end; procedure TFjst.serialReceiveData(Sender: TObject; DataPtr: Pointer;DataSize: Cardinal); var
DataStr : String; BacaData : char; begin If DataSize = 0 Then begin Ftest.Button1.Enabled := false;; exit; end; Repeat BacaData := char(DataPtr^); Ftest.Memo1.SelText:=bacadata; Inc(Dword(DataPtr)); Dec(DataSize); inc(i); Until DataSize = 0; Ftest.Button1.Enabled := true;; end; procedure TFjst.Timer_monitorTimer(Sender: TObject); begin
serial.SendChar('#'); sleep(1); serial.ReadByte(output); Edit3.Text:=format('%4.1f',[output*(suhu_maks/255)]);
end; procedure TFjst.OpenLoop1Click(Sender: TObject); begin
with mainmenu1.Items do begin
Items[2].Items[0].Checked:=false; Items[2].Items[1].Checked:=false; Items[2].Items[2].Checked:=false; Items[2].Items[3].Checked:=true; Items[3].Items[0].Enabled:=false; Items[3].Items[1].Enabled:=false; end; cmac:=false; rbf:=false; close loop:=false; openloop:=true;
end; procedure TFjst.Button1Click(Sender: TObject); begin referensi:=strtofloat(Fjst.edit1.text); end; procedure TFjst.SaveData1Click(Sender: TObject); begin SaveDialog1.Title :='Save Report'; SaveDialog1.Filter :='Excel File(*.xls)|*.xls'; SaveDialog1.InitialDir:='D:\'; if Fjst.SaveDialog1.Execute=true then begin assignfile(berkas_sumber,'d:\data.xls');
reset(berkas_sumber,1); assignfile(berkas_target,Savedialog1.FileName+'.xls'); rewrite(berkas_target,1); repeat blockread(berkas_sumber,buffer,ukuran,sum_baca); if sum_baca <> 0 then blockwrite(berkas_target,buffer,sum_baca, sum_rekam); until (sum_baca < ukuran ) or (Sum_baca <> sum_rekam); closefile(berkas_sumber); closefile(berkas_target); end; end; procedure TFjst.Button2Click(Sender: TObject); begin serial.SendByte(200); end; procedure TFjst.Timer_clockTimer(Sender: TObject); begin durasi:=now-mulai; end; procedure TFjst.Help1Click(Sender: TObject); begin Application.HelpFile := 'ONLINE.hlp'; Application.HelpCommand(HELP_CONTENTS, 0); end; end.
A.3 Form Test Serial (Ftest) unit Utest; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, CPDrv;
type TFtest = class(TForm) Edit1: TEdit; Button1: TButton; Edit2: TEdit; Label3: TLabel; Shape1: TShape; Label1: TLabel; Label2: TLabel; Memo1: TMemo; Button3: TButton; Timer_baca: TTimer; procedure Button3Click(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Timer_bacaTimer(Sender: TObject); private { Private declarations } public { Public declarations } end; var Ftest: TFtest; i: real; implementation uses Ujst; {$R *.dfm} procedure TFtest.Button3Click(Sender: TObject); begin
Fjst.serial.Connect; Fjst.serial.SendChar('!'); memo1.Lines.Add('Status Koneksi : ')
end; procedure TFtest.FormCreate(Sender: TObject); begin
memo1.clear; memo1.Lines.Add('Status Koneksi : '); Ftest.Button1.Enabled := false;
end; procedure TFtest.FormClose(Sender: TObject; var Action: TCloseAction); begin
memo1.Clear; Ftest.Button1.Enabled :=false;
end; procedure TFtest.Button2Click(Sender: TObject); begin
Fjst.serial.SendChar('!'); sleep(1); Fjst.serial.ReadByte(output); edit2.Text:=floattostr(output/51);
end; procedure TFtest.Button1Click(Sender: TObject); begin
i:=strtofloat(edit1.text); Fjst.serial.SendByte(round(i*51)); Ftest.Timer_baca.Enabled := true;
end; procedure TFtest.Timer_bacaTimer(Sender: TObject); begin
Fjst.serial.SendChar('#');
sleep(1); Fjst.serial.ReadByte(output); Ftest.Edit2.Text:=floattostr((output/51));
end; end.
A.4 Form Setting Serial (Fserial) unit Userial; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, ExtCtrls, CPDrv, Ujst;
type TFserial = class(TForm) Panel1: TPanel; Label1: TLabel; ComboBox1: TComboBox; ComboBox2: TComboBox; ComboBox3: TComboBox; ComboBox4: TComboBox; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; ComboBox5: TComboBox; Label7: TLabel; Button1: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Fserial: TFserial; implementation {$R *.dfm} procedure TFserial.Button1Click(Sender: TObject); begin
case combobox1.itemindex of 0 : nama_port := pncom1; 1 : nama_port := pncom2;
end; case combobox2.itemindex of
0 : baudrate := 1200; 1 : baudrate := 2400; 2 : baudrate := 9600;
end; case combobox3.itemindex of
0 : databits := db7bits; 1 : databits := db8bits;
end; case combobox4.itemindex of
0 : parity := ptNONE; 1 : parity := ptODD; 2 : parity := ptEVEN;
end; case combobox5.itemindex of
0 : stopbits := sb1bits; 1 : stopbits := sb2bits;
end; with Fjst do begin
serial.Port := nama_port; serial.BaudRateValue :=baudrate; serial.DataBits := databits; serial.StopBits := stopbits; serial.SwFlow := sfnone; serial.Parity := parity; serial.Connect; serial.SendByte(0);
end; sleep(5); close;
end; procedure TFserial.FormCreate(Sender: TObject); begin Fjst.serial.Disconnect; end; end. A.5 Form Setting Parameter CMAC (Fcmac) unit Ucmac; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, Spin;
type TFcmac = class(TForm) Shape1: TShape; Label1: TLabel;
Label2: TLabel; Label3: TLabel; Edit1: TEdit; Edit2: TEdit; BitBtn1: TBitBtn; Edit3: TEdit; Label4: TLabel; procedure BitBtn1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Fcmac: TFcmac; implementation uses Ujst; {$R *.dfm} procedure TFcmac.BitBtn1Click(Sender: TObject); begin
gain:=strtofloat(Edit2.text); generalisasi:=strtoint(Edit1.Text); laju_cmac:=strtofloat(Edit3.Text); sleep(50); Fcmac.Close;
end; procedure TFcmac.FormCreate(Sender: TObject); begin
Edit1.Text:='25'; Edit2.Text:='2'; Edit3.Text:='0.1';
end; end. A.6 Form Setting Parameter RBF (Frbf) unit Urbf; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, ExtCtrls, Buttons;
type TFrbf = class(TForm) Shape1: TShape; Edit1: TEdit; Edit2: TEdit; Label1: TLabel; Label2: TLabel;
Label3: TLabel; BitBtn1: TBitBtn; Edit3: TEdit; Label4: TLabel; procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Frbf: TFrbf; i:integer; implementation uses Ujst; {$R *.dfm} procedure TFrbf.BitBtn1Click(Sender: TObject); begin
sum_basis:=strtoint(Edit1.Text); gain:=strtofloat(Edit2.text); laju_rbf:=strtofloat(Edit3.Text); jumlah_basis:=sum_basis; sleep(50); Frbf.Close;
end; procedure TFrbf.BitBtn2Click(Sender: TObject); begin Frbf.Close; end; procedure TFrbf.FormCreate(Sender: TObject); begin
Edit1.Text:='4'; Edit2.Text:='2'; Edit3.Text:='0.1';
end; end. A.7 Form Load Picture (Fview) unit Uview; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, jpeg, ExtCtrls;
type TFview = class(TForm) Image1: TImage; private { Private declarations } public { Public declarations } end; var Fview: TFview; implementation {$R *.dfm} end. A.7 Form About (Fabout) unit Uabout; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, jpeg, ExtCtrls, StdCtrls, Menus;
type TFabout = class(TForm) Image1: TImage; Shape1: TShape; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; PopupMenu1: TPopupMenu; Close1: TMenuItem; procedure Close1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Fabout: TFabout; implementation {$R *.dfm} procedure TFabout.Close1Click(Sender: TObject); begin close; end; end.
LAMPIRAN B
TAMPILAN PROGRAM
B.1 Tampilan Fload
B.2 Tampilan Fserial
B.3 Tampilan Fjst
B.4 Tampilan Ftest
B.5 Tampilan Fcmac
B.6 Tampilan Frbf
B.7 Tampilan Fabout
B.8 Tampilan Help
LAMPIRAN D
HASIL PENGUJIAN PERANGKAT KERAS
D.1 Hasil Pengujian DAC 0808
Tegangan Kirim PC
(Volt)
Keluaran DAC
(Volt)
0,0 0,00
0,5 0,50
1,0 0,99
1,5 1,49
2,0 1,99
2,5 2,51
3,0 3,00
3,5 3,49
4,0 4,00
4,5 4,51
5,0 5,00
D.2 Hasil Pengujian ADC 0804
Tegangan Input
(Volt)
Pembacaan ADC
(Volt)
0,0 0,000
0,5 0,509
1,0 1,000
1,5 1,490
2,0 2,000
2,5 2,509
3,0 3,000
3,5 3,509
4,0 4,019
4,5 4,529
5,0 5,000
D.3 Hasil Pengujian Pengkondisi Sinyal I ( Pengubah level tegangan 0 – 5
Volt menjadi -5 – 5 Volt )
Tegangan Input
(Volt)
Keluaran Pengkondisi
Sinyal I (Volt)
0,0 - 4,80
0,5 - 3,84
1,0 - 2,91
1,5 - 1,97
2,0 - 1,01
2,5 0,04
3,0 0,88
3,5 1,81
4,0 2,78
4,5 3,75
5,0 4,67
D.4 Hasil Pengujian Pengkondisi Sinyal II ( Penguat 3,33 kali )
Tegangan Input
(Volt)
Keluaran Pengkondisi
Sinyal II (Volt)
0,0 0,00
0,2 0,65
0,4 1,32
0,6 2,00
0,8 2,65
1,0 3,33
1,2 4,00
1,4 4,65
1,6 5,33
1,8 6,00
2,0 6,64
D.5 Hasil Pengujian Rangkaian Driver PWM
Tegangan Kirim PC
(Volt)
Pembacaan ADC
(Volt)
0,0 12,20
0,5 15,90
1,0 20,10
1,5 24,10
2,0 27,90
2,5 31,80
3,0 36,20
3,5 39,40
4,0 43,00
4,5 44,80
5,0 46,20