SIMULASI JARINGAN SYARAF TIRUAN BERBASIS METODE BACKPROPAGATION
1. Pendahuluan
Latar Belakang
Seiring perkembangan jaman peran komputer semakin mendominasi kehidupan. Lebih dari itu, komputer saat ini diharapkan dapat digunakan untuk mengerjakan segala sesuatu yang bisa dikerjakan oleh manusia baik di rumah tangga, industri bahkan di lingkungan pendidikan. Untuk memecahkan masalah dengan komputer, program harus dibuat terlebih dahulu kemudian akan diproses selanjutnya. Tanpa program, komputer hanyalah sebuah kotak besi yang tidak berguna.
Motor DC banyak digunakan dalam kehidupan sehari-hari. Baik dalam dunia industri maupun rumah tangga. Motor DC yang beredar sebenarnya sudah menggunakan bahasa logika sederhana ada yang dikendalikan manual oleh manusia, sebagian sudah ada yang menggunakan mikrokontroller, algoritma fuzzy maupun algortim dan kendali lainya yang menggunakan bahasa pemrograman yang berbeda. Motor yang beredar di masyarakat akan lebih menghasilkan produk yang bagus dan memiliki tingkat presisi tinggi apabila kesalahan dari faktor manusia dapat diperkecil.
Dari beberapa pengendalian yang menggunakan algoritma fuzz dan mikrokontroller atau yang lainnya, error yang dihasilkan terlalu besar berkisar antara 3-10%.
2. Dasar Teori
Jaringan Syaraf Manusia sebagai Dasar Jaringan Syaraf Tiruan
Beberapa hal yang mendasari kerja Jaringan Syaraf Manusia (JSM), diantaranya mengenai penyimpanan informasi dan daya ingat, dimana bila suatu sinyal tertentu melalui sinapsis secara berulang-ulang, maka sinapsis tersebut menjadi lebih mampu menghantarkan sinyal pada
kesempatan berikutnya. Hal ini mendasari adanya proses belajar atau pelatihan (learning), jadi JST yang akan digunakan pasti melalui proses pelatihan secara berulang-ulang terlebih dahulu. Dalam JSM, akson dan dendrit bercabang- cabang sedemikian banyaknya yang menunjukan bahwa adanya sistem paralel dan terdistribusi. Akson dan dendrit pada JSM bercabang-cabang dengan pola yang tidak teratur, sedangkan pada JST, keparalelan dan kedistribusian cabang-cabang itu membentuk pola tertentu. JST merupakan bagian dari Artificial Intelligence (AI) yang berbasis hubungan, karena cara kerjanya melihat pada JSM. Secara garis besar dapat dijelaskan sebagai berikut: beberapa bongkol (baik eksitasi maupun inhibisi) masuk ke suatu neuron, oleh neuron masukan tersebut dijumlahkan, kemudian dibandingkan dengan nilai ambangnya. Hasil penjumlahan baru bisa berarti jika besarnya kecilnya bobot hubungan telah teratur.
2.2 Algoritma Backpropagation
JST backpropagataion atau rambat balik (JST- BP) adalah metode yang paling sederhana dan mudah dipahami dari metode-metode yang lain. JST-BP akan merubah bobot biasnya untuk mengurangi perbedaan antara output jaringan dan target output. Setelah pelatihan selesai, dilakukan pengujian terhadap jaringan yang telah dilatih. Pembelajaran algoritma jaringan syaraf membutuhkan perambatan maju dan diikuti dengan perambatan mundur. Keduanya dilakukan untuk semua pola pelatihan
2.3 Motor DC
Motor DC adalah sistem mesin yang berfungsi mengubah tenaga listrik arus searah menjadi tenaga gerak atau mekanis. Motor DC hampir dapat dijumpai di setiap peralatan baik rumah tangga, kendaraan bahkan dalam dunia industri sekalipun, dari yang beukuran mikro sampai motor yang memiliki kekuatan ribuan daya kuda.
2.3.1 Karakteristik Motor DC
Pada motor shunt eksitasi terpisah, bertambahnya kopel arus jangkar (Ia) mengakibatkan kecepatan (n) menurun. Pada motor seri, bertambahnya kopel (arus) akan menyebabkan bertambahnya harga fluks ( ), karena fluks pada motor seri merupakan merupakan fungsi Ia
Ea = Vt – Ia Ra,
(1) Ea = C n
(2) n = Vt – Ia Ra / C ,
2.3.2 Pengaturan Kecepatan Motor DC
Tiga parameter yang biasa diatur adalah:
a. Medan shunt ( ), dengan menyisipkan tahanan variabel yang dipasang seri terhadap kumparan medan (motor shunt), maka dapat diatur arus medan dan fluksnya. Rugi panas yang ditimbulkan sangat kecil pengaruhnya. Karena besarnya fluks yang dicapai oleh kumparan medan terbatas, kecepatan yang diaturpun akan terbatas.
b. Tegangan (Vt), dikenal dengan metode Ward Leonard. Menghasilkan suatu pengaturan kecepatan yang sangat halus dan banyak dipakai untuk lift, mesin bubut dan lain-lain. Satu-satunya kerugian dalam sistem ini adalah biaya untuk penambahan generator dan penggerak awal
c. Tahanan (Ra), dengan menyisipkan tahanan variabel terhadap tahanan jangkar. Cara ini jarang dipakai, karena penambahan tahanan seri terhadap tahanan jangkar menimbulkan rugi panas yang cukup besar.
c. Tahanan (Ra), dengan menyisipkan tahanan variabel terhadap tahanan jangkar. Cara ini jarang dipakai, karena penambahan tahanan seri terhadap tahanan jangkar menimbulkan rugi panas yang cukup besar.
3. Perancangan Sistem
Pelatihan dari sistem pengendalian dirancang dengan menggunakan metode inverse, dimana masukan dari plant adalah sebagai target atau keluaran dari JST, sehingga skenario keluarannya akan digunakan kembali sebagai masukan. Karena pada pelatihan menggunakan metode inverse, maka masukan dan keluaran dari sistem kendali yang sebenarnya akan dibalik pada saat pelatihan. Pada saat pelatihan masukan dari JST adalah keluaran dari motor, yaitu kecepatan atau putaran dari motor, sedangkan keluaran atau target dari JST adalah merupakan masukan motor, yaitu tegangan.
Pelatihan dari sistem pengendalian dirancang dengan menggunakan metode inverse, dimana masukan dari plant adalah sebagai target atau keluaran dari JST, sehingga skenario keluarannya akan digunakan kembali sebagai masukan. Karena pada pelatihan menggunakan metode inverse, maka masukan dan keluaran dari sistem kendali yang sebenarnya akan dibalik pada saat pelatihan. Pada saat pelatihan masukan dari JST adalah keluaran dari motor, yaitu kecepatan atau putaran dari motor, sedangkan keluaran atau target dari JST adalah merupakan masukan motor, yaitu tegangan.
Kemampuan dari JST akan dipergunakan untuk mengidentifikasikan motor. Selanjutnya hasil proses identifikasi digunakan pada proses pengendalian kecepatan motor. Perangkat lunak yang digunakan dalam perancangan sistem adalah Matlab 6.5 release
13, karena memiliki bahasa tingkat tinggi dan dapat digunakan untuk komputasi teknik, penghitungan, visualisasi dan pemrograman. Selain itu juga memiliki neural network (NN) toolbox, sehingga memudahkan dalam perancangan program JST maupun pensimulasian dari sistem yang telah dilatih. Beberapa kegunaan lain dari Matlab di antaranya adalah untuk pengembangan algoritma, pemodelan, simulasi dan pembuatan antarmuka GUI (Graphical User Interface).
Kemampuan dari JST akan dipergunakan untuk mengidentifikasikan motor. Selanjutnya hasil proses identifikasi digunakan pada proses pengendalian kecepatan motor. Perangkat lunak yang digunakan dalam perancangan sistem adalah Matlab 6.5 release
13, karena memiliki bahasa tingkat tinggi dan dapat digunakan untuk komputasi teknik, penghitungan, visualisasi dan pemrograman. Selain itu juga memiliki neural network (NN) toolbox, sehingga memudahkan dalam perancangan program JST maupun pensimulasian dari sistem yang telah dilatih. Beberapa kegunaan lain dari Matlab di antaranya adalah untuk pengembangan algoritma, pemodelan, simulasi dan pembuatan antarmuka GUI (Graphical User Interface).
4. Analisis Kelompok
Berikut ini kelompok kami akan menampilkan tabel perbandingan yang didapat dari keadaan motor real dengan tegangan medan tetap (100 volt).
Pada saat tegangan jangkar 150 volt kecepatan maksimum mencapai 1913.3 rpm, tetapi pada data board pada motor sebenarnya, kecepatan maksimum saat tegangan jangkar 150 volt adalah 1750 rpm. Hal ini banyak terjadi pada keadaan motor sebenarnya, yang disebabkan karena usia motor yang cukup lama dan penggunaan yang sering dilakukan, sehingga menyebabkan perubahan pada beberapa piranti pada motor yang sudah tidak sesuai dengan standarisasi pada saat motor diproduksi.
Dengan mengunakan data yang sama pada motor sebenarnya, data input dan output dari hasil simulasi disimpan kedalam workspace Matlab untuk dijadikan sebagai masukan dan target pada pelatihan JST sebagai pengendali motor DC Pelatihan dengan menggunakan for-while loopskurang mendapatkan hasil yang lebih maksimum, disebabkan karena data input dan target JST terlalu banyak, kurang lebih sebanyak 150676 data input dan 150676 data output. Sebagai perbandingan, untuk melakukan 1000 iterasi dengan 1 HL dan 7 sel neuron menggunakan for- while loops, membutuhkan waktu kurang lebih selama 18 jam. Berbeda dengan pelatihan menggunakan fungsi newff yang disediakan oleh Matlab. Dengan menggunakan struktur JST yang sama, 1000 iterasi dapat dilakukan hanya dalam hitungan menit. Pelatihan dan pengujian JST menggunakan Matlab akan lebih cepat jika semua data input, output dan bobot-bias dijadikan kedalam bentuk perhitungan matrik seperti yang terdapat pada fungsi newff.
Hasil pelatihan terbaik adalah adalah pada tabel nomor 10. Pelatihan berhenti ketika iterasi yang ditentukan sudah tecapai dengan Mean Square Error (MSE) 0.0070382. MSE pada tabel nomor 15 lebih kecil 2e-7 dari MSE pada tabel nomor 10. Tetapi jumlah iterasi 2 kali lebih besar dari iterasi pada tabel nomor 10, sehingga untuk pengujian jaringan akan digunakan struktur pada tabel nomor 10. Pada tabel nomor 5, pelatihan berhenti karena gradient sudah mencapai target, artinya MSE yang dihasilkan sudah mencapai nilai yang paling minimum untuk arsitektur JST sebagai pengendali motor DC Fungsi aktivasi identitas dapat menghasilkan MSE hampir mendekati target, yang disebabkan karena input dan target dari JST memiliki nilai yang sebanding, hal ini sesuai dengan fungsi aktivasi identitas dimana masukan fungsi sama dengan keluarannya. Jumlah lapisan dan sel neuron pada masing-masing lapisan tersembunyi tidak berpengaruh besar terhadap MSE, kecuali jika variasi dari nilai learning rate (LR) dan MC yang digunakan sesuai dengan arsitektur JST. Tetapi hampir semua pelatihan yang menggunakan fungsi aktivasi sigmoid bipolar pada hidden layer (HL) dan lapisan keluaran tidak dapat mencapai target iterasi dan MSE, disebabkan karena fungsi aktivasi sigmoid bipolar memiliki nilai range antara 1 sampai -1. Sedangkan pada pelatihan, nilai input dan target sudah di normalisasi agar menghasikan kecepatan yang lebih cepat, sehingga target memiliki nilai antara 0 sampai 1.
Nilai LR dan MC akan berpengaruh terhadap perubahan MSE pada setiap iterasi. Semakin besar nilai LR, akan semakin cepat pelatihan mendekati nilai error minimum, tetapimenghasilkan perubahan MSE yang tidak stabil. Jika nilai LR dengan 10 lapisan tersembunyi. Nilai gradient menggunakan nilai default fungsi newff yaitu 1e-10.Nilai gradient yang dihasilkan dan ditampilkan akan selalu dipengaruhi oleh perubahan nilai MSE. Penentuan nilai momentum coefisient (MC) akan berpengaruh langsung kepada perubahan bobot.
digunakan terlalu kecil, maka akan menyebabkan pelatihan lebih lama mendekati nilai error minimum yang ditentukan dan iterasi semakin besar. Berbeda dengan nilai MC, semakin kecil nilai MC yang digunakan maka semakin banyak iterasi yang dibutuhkan untuk mencapai error minimum. Sehingga nilai yang digunakan untuk pelatihan tidak terlalu besar dan tidak terlalu kecil, sesuai dengan variasi nilai antara LR dan MC.
Penentuan jumlah target iterasi (epoch) dilihat dari struktur pelatihan jaringan. Jika jaringan memiliki HL dan jumlah neuron yang banyak, maka target iterasi di set tidak terlalu besar agar pelatihan tidak menggunakan memori pada personal computer(PC) terlalu banyak. Semakin banyak jumlah lapisan dan jumlah sel neuron pada masing-masing lapisan, semakin banyak komputasi, semakin besar memori PC yang digunakan dan akan semakin lama waktu yang ditempuh untuk mencapai error minimum. Dari tabel diatas maka struktur jaringan yang akan digunakan adalah strukur jaringan pada tabel nomor 10. Dimana struktur jaringan terdiri dari 2 sel neuron input. Input pertama adalah set point, sel neuron kedua adalah perubahan dari kecepatan yang dihasilkan motor. Lapisan input (v) terdiri dari 5 sel neuron, sedangkan lapisan tersembunyi terdiri dari 2 lapisan. Lapisan tersembunyi pertama (w) terdiri dari 3 sel neuron dan sesuai dengan target system JST, maka HL kedua atau lapisan output (w_out) terdiri dari 1 sel neuron. Fungsi aktivasi yang digunakan pada setiap lapisannya adalah fungsi identitas. Struktur terbaik jaringan kemudian di uji dengan menggunakan masukan step. Perlu diketahui waktu (t) adalah dalam satuan detik Matlab, bukan dalam real time. Karakteristik respon transien dari JST sebagai pengendali kecepatan motor DC dengan menggunakan step input adalah sebagai berikut :
a. Waktu tunda (td) adalah waktu yang diperlukan oleh tanggapan untuk mencapai setengah (50%) dari nilai akhirnya yaitu selama 1.9 detik.
b. Waktu naik (tr) adalah waktu yang diperlukan oleh tanggapan untuk naik dari 0% menjadi
100% dari nilai akhir yaitu selama 18.7 detik.
c. Maksimum overshoot (mp) adalah nilai puncak kurva tanggapan diukur dari satuan waktu, digunakan untuk mengukur kestabilan relatif dari sistem. Pada grafik tidak terlihat adanya overshoot, disebabkan karena pelatihan menggunakan LR yang keci dan juga disebabkan karena karakteristik dari motor DC dimana kecepatan berbanding terbalik dengan torsi.
d. Waktu puncak adalah waktu yang diperlukan tanggapan untuk mencapai puncak atau maksimum overshoot. Karena tidak ada overshoot, maka waktu puncak (tp) juga tidak ada.
e. Waktu turun (ts) adalah waktu yang diperlukan untuk menanggapi kurva agar dapat mencapai dan tetap berada dalam persentase nilai akhir tertentu dan biasanya digunakan batasan 5%. Seperti telihat pada gambar 4.16 diatas, grafik kecepatan yang dihasilkan sudah stabil, sehingga waktu turun (ts) sama dengan waktu naik (tr).
Kemudian pengujian jaringan dilakukan dengan data offline dan data online. Pengujian data offline dilakukan dengan data input menggunakan data masukan (tegangan) yang digunakan juga saat pelatihan. Sedangkan
Grafik hasil dari pengujian (biru) sudah hampir mengikuti dari grafik target tegangan pelatihan (merah). Pada data awal, grafik pengujian menunjukan proses adaptasi yang akan diperbaiki untuk data berikutnya. Proses adaptasi akan terus dilakukan pada setiap awal perubahan nilai dari tegangan. Hasil pengujian tersebut membuktikan bahwa, pelatihan jaringan sudah cukup baik dan akan digunakan lebih lanjut dalam pengujian online menggunakan toolbox simulink pada Matlab dan pengujian menggunakan GUI (Graphical User Interface).
Pengujian online dilakukan dengan memberikan set point kecepatan (input pertama) dan menghasilkan keluaran jaringan berupa tegangan, tegangan inilah yang akan memberi masukan pada motor untuk menghasilkan keluaran berupa kecepatan motor. Kemudian kecepatan motor akan di-feedback menjadi input jaringan kedua.
Pengujian online dilakukan dengan memberikan set point kecepatan (input pertama) dan menghasilkan keluaran jaringan berupa tegangan, tegangan inilah yang akan memberi masukan pada motor untuk menghasilkan keluaran berupa kecepatan motor. Kemudian kecepatan motor akan di-feedback menjadi input jaringan kedua.
Set point yang berupa kecepatan di masukan melalui blok step. Kecepatan dari motor mampu mengikuti kacepatan dari set point, hanya pada kecepatan-kecepatan tertentu motor tidak dapat mengikuti, tetapi dengan selisih yang cukup kecil. Sesuai dengan karakteristik dari motor DC (gambar 3), kecepatan yang dihasilkan motor DC tidak bisa langsung mengikuti disebabkan karena kecepatan berbanding terbalik dengan torsi motor dan torsi motor saat keadaan awal akan lebih besar. Berikut ini adalah tabel perbandingan hasil pengujian menggunakan simulink, dimana nilai input kecepatan dipilih atau ditentukan secara acak
5. Kesimpulan
Berdasarkan pembahasan kelompok maka dapat ditarik kesimpulan sebagai berikut :
a. Pelatihan dan pengujian akan lebih cepat jika data yang dihitung dalam jaringan menggunakan operasi matriks.
b. Banyaknya data yang dijadikan sebagai data pelatihan, berpengaruh terhadap lamanya waktu iterasi untuk mencapai taget error minimum, jumlah iterasi akan semakin banyak dan nilai MSE yang dihasilkan.
c. Struktur terbaik JST untuk sistem kendali kecepatan motor DC terdiri dari 5 sel neuron lapisan input. Lapisan tersembunyi terdiri dari 2 lapisan, dimana HL pertama memiliki 3 sel neuron, lapisan tersembunyi kedua terdiri dari 1 sel neuron. (Mean Square Error) MSE yang dihasilkan adalah 0.007382 dengan fungsi aktivasi setiap lapisan menggunakan fungsi purelin (fungsi identitas).
d. Persentase MSE untuk selisih kecepatan pengujian adalah sebesar 1.645 %.
e. Membuktikan bahwa dasar teori tentang pengaturan kecepatan motor DC metode Ward Leonard tentang penggunaan 2 motor dapat lebih efisien dengan Artificial Intellegence menggunakan Neural Network.
0 komentar:
Posting Komentar