DAFTAR PUSTAKA
[ATT-06] --, 2006. ATTiny2313/V 8-bit AVR Microcontroller with 2K Bytes In-System
Programmable Flash Manual. Atmel.
[EMI-95] Emin, Mehmet., 1995. Stabilization of an Inverted Pendulum by Using a Fuzzy
Controller. Turki: Middle East Technical University.
[JAN-97] Jang, J-S.R., Sun, C-T., Mizutani, E. 1997., Neuro Fuzzy and Soft Computing.
New Jersey: Prentice-Hall.
[MAC-95] MacKenzie, I., 1995. The 8051 Microcontroller, 2
ndEd. New Jersey:
Prentice-Hall.
[STI-99] Stimac, Andrew K., 1999. Standup and Stabilization of the inverted pendulum.
Massachusetts: Massachusetts Institute of Technology.
[WIL-96] Williams, James H. Jr., 1996. Fundamentals of Applied Dynamics. New York:
John Wiley & Sons.
[YAN-48] Yan, Jun., Ryan, Michael., Power, James., 1948. Using Fuzzy Logic. New
Jersey: Prentice Hall.
[ZAD-65] Zadeh, L.A., Fuzzy Sets. 1965. Information and Control Vol 8 pp338-353.
[URL-01] http://blog.peltarion.com/2006/10/25/fuzzy-math-part-1-the-theory
[URL-02] http://en.wikipedia.org/wiki/Brushed_DC_Electric_Motor
[URL-03] http://www.stefanv.com/rcstuff/qf200212.html
[URL-04] http://www.ikalogic.com/H_bridge_1.php
[URL-05] http://members.cox.net/rbirac2/Ebot/using_encoder.htm
[URL-06] http://www.innovativeelectronics.com/innovative_electronics/
pro_dt51msh_1.htm
x
[URL-07] http://www.innovativeelectronics.com/innovative_electronics/
download_files/manual/mn_dt51v3.pdf
[URL-08] http://www.atmel.com/dyn/resources/prod_documents/doc2543.pdf
[URL-09] http://www.fuzzytech.com/
[URL-10] http://www.fuzzytech.com/e/downl.html
[URL-11] http://www.ikalogic.com/H_bridge_1.php
xi
LAMPIRAN A
PANDUAN PENGINTEGRASIAN KODE ASSEMBLY USER
DENGAN KODE ASSEMBLY FUZZYTECH
Tutorial ini berguna untuk menggabungkan kode assembly user dan kode utama
FuzzyTech. FuzzyTech edisi MCU-51 (keluarga 8051) memerlukan compiler
KEIL/FRANKLIN. Pada tutorial ini hanya akan dipakai compiler KEIL (bisa didapatkan
di:
www.keil.com/).
Langkah-langkah yang harus dilakukan adalah:
1. Install software FuzzyTech (misal lokasi penginstallan di: C:\Program
Files\INFORM\fuzzyTECH 5.5).
2. Install software KEIL (misal lokasi penginstallan di: C:\keil).
3. Perhatikan lokasi kode user yang akan disatukan dengan FuzzyTech (misalkan
lokasi kode assembly user berada pada C:\myproject\). NOTE: Lokasi directory
pengerjaan FuzzyTech dan kode assembly user disarankan sama!
4. Copykan fuzzy library FT51K.lib milik FuzzyTech pada lokasi kode user (lokasi
user sama dengan point 3). Lokasi FT51K.lib terletak pada C:\Program
Files\INFORM\fuzzyTECH 5.5\Runtime\MCU51\Lib\
5. Copykan file OH51.exe, BL51.exe, dan A51.exe yang terletak pada
C:\keil\C51\BIN. (NOTE: Jika BL51.exe tidak ditemukan di lokasi keil, silahkan
cari di internet!)
6. Setelah proses desain sistem fuzzy selesai, generate kode assembly untuk
MCU-51 pada software FuzzyTech. Maka di directory C:\myproject\ akan didapatkan
sebuah file crane.a51 (misalkan nama file project di FuzzyTech di save sebagai
crane). Contoh file crane.a51:
A-2
7. Edit prog assembly user agar memuat proses fuzzy control. Misalkan program
assembly user dinamakan mymain.a51. Berikut adalah contoh sepenggal kode
assembly yang dibuat oleh user yang bernama mymain.a51:
A-3
Keterangan: kode yang ditunjukkan oleh lingkaran m1 dan m2 pada gambar diatas
mutlak ditulis pada kode user untuk menghubungkan dengan kode fuzzy.
Perhatikan semua variable pada m1 sama dengan cr_1. Semua variable pada m2
harus sama dengan cr_2. lv_0_angle dan lv_1_distance adalah masukan pada
fuzzy dan lv_2_power adalah keluaran dari fuzzy tersebut.
Perhatikan lingkaran biru, CSEG at 4100h harus ditulis di program user (untuk
mengalihkan kode pada alamat 4100 pada saat proses compiling bahasa mesin).
Lingkaran m3 yaitu LCALL _initcrane dipanggil hanya satu kali untuk proses
inisialisasi proses fuzzy.
Lingkaran m4 berguna untuk memasukkan nilai fuzzy. Contoh: mov _lv0_Angle,
#20H (Artinya: sudut angle , input pertama fuzzy, diisi 20H)
Lingkaran m5, yaitu LCALL _crane berguna untuk memanggil fungsi fuzzy
control. Sesudah prosedur ini selesai dijalankan maka nilai output fuzzy dapat
diakses (point 8).
Lingkaran m6 dapat diakses setelah LCALL _crane selesai dijalankan. Nilai
output dari fuzzy dapat diakses pada variable _lv2_power
8. Setelah program assembly user selesai dibuat, maka buatlah sebuah file yang
bernama buildAsm.bat pada directory user (lokasi directory sama dengan point 3).
9. Isi dari file buildAsm.bat adalah sebagai berikut:
A-4
10. Setelah pembuatan file buildAsm.bat, langkah terakhir adalah menjalankan
program buildAsm.bat. Setelah program buildAsm.bat dijalankan, jika tidak ada
kesalahan maka akan tercipta sebuah file dengan nama mymain.hex.
LAMPIRAN B
PANDUAN PENGINSTALLAN FUZZYTECH MCU-51
Beberapa hal yang perlu dilakukan untuk menginstall FuzzyTech versi MCU-51 adalah:
1. Install-lah Software FuzzyTech ke folder tertentu, contoh: C:\Program Files\
2. Copykan file MCU-51.dll (MCU-51.dll setelah di crack yang dilampirkan di CD)
ke folder: C:\Program Files\INFORM\fuzzyTECH 5.5\
3. Pada program fuzzyTech pilihlah: Tools Æ Edition Æ fuzzyTech 5.54d MCU-51
Edition.
4. Desainlah parameter-parameter fuzzy pada editor fuzzyTech. Setelah proses
desain selesai, compile-lah program menjadi assembly untuk didownload ke
mikroprocessor. Langkahnya pada fuzzyTech pilih: Tools Æ Compile To Æ
8051.
LAMPIRAN C
SIMULASI SISTEM KONTROL BERBASIS FUZZY LOGIC
PADA INVERTED PENDULUM
Hindra Kurniawan dan Khairurrijal
*)Program Studi Fisika, Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Teknologi Bandung Jalan Ganesa 10 Bandung 40132
*)
E-mail: [email protected]
Abstrak – Sistem inverted pendulum merupakan
sebuah sistem non-linear yang tidak stabil secara alamiah. Untuk mengontrol kestabilan pada sistem ini akan digunakan sebuah teknik pengontrolan yang dikenal sebagai fuzzy control. Fuzzy logic adalah model yang cukup sederhana karena tidak melibatkan proses komputasi yang kompleks dan proses komputasi dapat dilakukan secara real-time.
Pada eksperimen kali ini akan dilakukan simulasi pada perangkat lunak untuk menguji beberapa model
fuzzy agar dapat menstabilkan pendulum pada posisi
terbalik. Model yang akan diuji adalah model dengan sistem 2 masukan (theta dan theta_dot) dan sistem 4 masukan (theta, theta_dot, x, dan x_dot). Setelah didapatkan model yang tepat maka akan dilakukan implementasi dan pengujian pada perangkat keras.
Kata kunci:inverted pendulum, fuzzy logic, control 1. PENDAHULUAN
Sistem inverted pendulum merupakan sistem fisik yang terdiri dari bandul, pedati, dan motor DC. Bandul merupakan sebuah benda yang menempel pada poros pedati dan dapat bergerak dengan satu derajat kebebasan (searah atau berlawanan arah dengan jarum jam). Pedati merupakan sebuah benda yang dapat bergerak translasi dalam arah horizontal pada suatu lintasan. Model dari inverted pendulum ini adalah model yang sangat baik untuk dikembangkan pada pengontrolan satelit, kestabilan roket saat lepas landas, sistem pendaratan pesawat otomatis, stabilisasi pesawat pada saat turbulensi, dan lain-lain [1].
Inverted pendulum adalah sistem yang tidak stabil
secara alamiah dan bersifat non-linear sehingga bandul kemungkinan jatuh searah atau berlawan jarum jam. Motor DC memberikan variabel gaya untuk menggerakkan pedati sehingga bandul dapat dipertahankan stabil pada posisi terbaliknya dan pedati pada posisi semulanya. Sistem kontrol yang akan digunakan adalah sistem kontrol berbasis fuzzy
logic. Alasan Fuzzy logic digunakan untuk
mengontrol sistem ini adalah karena sistem
non-linear, diperlukan komputasi matematika yang
kompleks, dan komputasi harus dilakukan secara
real-time. Seperti dapat dilihat pada literatur-literatur, sistem kontrol menggunakan fuzzy dapat mengatasi masalah-masalah di atas dengan baik.
2 DESKRIPSI SISTEM
Sistem perangkat lunak yang akan dibangun bertujuan untuk mengimplementasikan konsep fuzzy logic pada pengontrolan kestabilan sistem inverted pendulum. Gambar 1 menunjukkan diagram sistem inverted
pendulum.
Gambar 1. Diagram sistem inverted pendulum
Bandul mula-mula berada pada sudut awal tertentu (θ0). Hal ini akan menyebabkan sistem menjadi tidak
stabil sehingga pengontrol diperlukan untuk menstabilkan sistem.
Persamaan dinamika sistem inverted pendulum dapat diturunkan menggunakan persamaan lagrange. Berikut adalah persamaan sistem inverted pendulum yang akan digunakan pada simulasi kali ini [2]:
θ θ θ θ θ θ θ 2 2 cos 3 ) ( 7 sin ) ( 3 cos sin 3 ) ( cos 3 ml l m M g m M ml t f − + + + − − = & && (1) θ θ θ θ θ 2 2 cos 3 ) ( 7 cos sin 3 sin 7 ) ( 7 m m M mg ml t f x − + − + = & && (2) 2.1. Model SIMULINK
Model dari inverted pendulum dibangun dengan menggunakan SIMULINK. Pada model ini, masukan dari model adalah aksi pengontrol. Variabel sudut dan
C-2
kecepatan sudut dari iterasi sebelumnya digunakan untuk menghitung percepatan pedati dan percepatan sudut dari bandul menggunakan Persamaan (1) dan (2) secara berurutan. Integrasi kemudian dilakukan untuk mendapatkan kecepatan dan posisi untuk kedua komponen yang bersangkutan. Sudut dari bandul dibatasi dalam ±900. Sudut dan kecepatan sudut dari bandul serta posisi dan kecepatan sudut dari pedati adalah keluaran dari model ini. Model ini dapat dilihat pada Gambar 2.
Gambar 2. Model SIMULINK untuk inverted pendulum
Respon open loop untuk sistem ini didapatkan menggunakan model SIMULINK seperti yang ditunjukkan oleh Gambar 3.
Gambar 3. Model untuk respon open loop
Simulasi dijalankan selama 3 detik dengan menggunakan parameter:
• M, masa dari pedati: 1kg • m, masa dari bandul: 0.5kg
• l, panjang dari pivot ke tengah-tengah bandul : 0.5m
Respon open loop dapat dilihat pada Gambar 4. Dapat dilihat bahwa sistem adalah tidak stabil, karena bandul cepat sekali jatuh menuju horizontal dari posisi tegak vertikalnya. Untuk mempertahankan posisi bandul agar tetap tegak dibutuhkan suatu pengontrol.
Gambar 4. Respon Open Loop
2.2. Pemodelan Stabilisasi Inverted Pendulum Menggunakan Fuzzy Logic Toolbox dan SIMULINK
Pada eksperimen kali ini sistem yang akan dibuat adalah sistem fuzzy bertipe MISO (Multiple Input
Single Output). Jumlah masukan yang akan
dieksperimenkan adalah: 2 masukan (theta dan
theta_dot) dan 4 masukan (theta, theta_dot, x, dan x_dot). Keluaran dari fuzzy adalah force (gaya) yang
akan membuat pedati bergerak maju atau mundur di bidang horizontal. Semua model dibangun dengan menggunakan perangkat lunak SIMULINK [3] dari MATLAB. Berikut ini akan dibahas masing-masing model dari 2 masukan dan 4 masukan.
Pada model 2 masukan, pengontrol fuzzy hanya akan melakukan proses kontrol terhadap 2 buah parameter yaitu theta (sudut bandul dihitung pada posisi terbalik vertikalnya) dan theta_dot (kecepatan sudut bandul). Diagram blok dari model ini dapat dilihat pada Gambar 5.
Pada Gambar 5, satuan parameter fuzzy theta adalah dalam derajat dan parameter theta_dot dalam derajat/detik. Gain theta, gain theta_dot, dan gain
force adalah penguatan yang harus diatur (di-tuning)
untuk mendapatkan perfomansi terbaik dari sistem. Blok inverted pendulum berisi model dinamika dari sistem inverted pendulum dan dapat dilihat pada Gambar 2. Blok scope theta, scope x dan scope force masing-masing adalah grafik antara theta, x, dan force terhadap t (waktu), yang dapat dilihat setelah simulasi berjalan. Blok rad_to_deg berfungsi untuk mengubah satuan dari radian ke derajat, hal ini disebabkan fungsi keanggotaan fuzzy yang didesain telah menggunakan satuan derajat. Blok Fuzzy Logic Controller diimplementasikan menggunakan Fuzzy Logic Toolbox dari MATLAB.
C-3
Gambar 5. Diagram blok sistem 2 masukan
Pada model 4 masukan, pengontrol fuzzy melakukan proses kontrol terhadap 4 buah parameter yaitu theta (sudut bandul dihitung pada posisi vertikal terbaliknya), theta_dot (kecepatan sudut bandul), x (posisi pedati), dan x_dot (kecepatan pedati). Diagram blok dari model ini dapat dilihat pada Gambar 6.
Gambar 6. Diagram blok sistem 4 masukan
3. SIMULASI DENGAN PARAMETER BERBEDA-BEDA
Eksperimen simulasi untuk menguji kestabilan sistem
inverted pendulum dilakukan dengan cara
memvariasikan jumlah parameter fuzzy, jumlah fungsi keanggotaan di tiap-tiap parameternya, bentuk dan pengaturan (tuning) fungsi keanggotaan, dan pengaturan gain di masing-masing komponen yang akan diatur.
3.1 Model 2 Masukan (theta dan theta_dot)
Pada simulasi ini masukan yang akan dikontrol oleh pengontrol fuzzy hanyalah parameter theta dan
theta_dot. Posisi dan kecepatan pedati tidak di
kontrol, sehingga lintasan pedati dianggap tidak berhingga. Aturan fuzzy yang diterapkan di sini adalah aturan yang berbentuk seperti ”jika theta adalah x dan
theta_dot adalah y maka force adalah z”. Beberapa
contoh aturan itu adalah sebagai berikut: jika theta adalah neglarge dan theta_dot adalah neglarge maka
force adalah neglarge, jika theta adalah negsmall dan theta_dot adalah neglarge maka force adalah
neglarge, jika theta adalah nol dan theta_dot adalah neglarge maka force adalah neglarge, jika theta
adalah nol dan theta_dot adalah nol maka force adalah
nol, dan sebagainya.
Fungsi keanggotaan pada model ini untuk masing-masing parameter theta, theta_dot, dan force berjumlah 5 buah, yaitu: neglarge, negsmall, zero,
possmall, dan poslarge. Satuan theta dan theta_dot
adalah dalam derajat. Bentuk fungsi keanggotaan untuk parameter theta, theta_dot, dan force dapat dilihat pada Gambar 7 (a), (b), dan (c) secara berurutan.
Pemilihan besar parameter-parameter yang terlibat pada model ini dapat dilihat pada Tabel 1.
(a)
(b)
(c)
Gambar 7. Membership function untuk Model 2 masukan (a) theta, (b) theta_dot, dan (c) force
Tabel 1. Parameter simulasi Model 2 masukan
Parameter Besar M (masa pedati) 1 kg m (masa bandul) 0,5 kg l (panjang bandul) 0,5 m g (gravitasi) 9,8 m/s2 Gain theta 2 Gain theta_dot 0,8 Gain force 1,5
θ0 (initial theta) 17,18 derajat
Jumlah aturan fuzzy yang digunakan adalah sebanyak 25 buah, dan hasil simulasi menunjukkan bahwa
C-4
bandul dapat distabilkan pada posisi vertikal terbaliknya dengan baik. Grafik hasil simulasi dapat dilihat pada Gambar 8 (a) dan (b).
Pada Gambar 8, terlihat bahwa bandul dapat distabilkan dari posisi sudut awal 17,18 derajat ke posisi vertikal terbaliknya (0 derajat). Waktu yang diperlukan untuk menyeimbangkan posisi bandul adalah sekitar 1,5 detik. Walaupun bandul dapat stabil pada posisi terbaliknya tetapi tidak demikian dengan posisi pedati. Posisi pedati bergerak dari titik diam mula-mula menuju tak hingga (pedati terus bergerak ke arah kanan). Hal ini disebabkan karena pengontrol berbasis fuzzy hanya mengontrol parameter theta dan
theta_dot, sehingga mengabaikan parameter posisi
pedati (posisi pedati tidak terkontrol).
(a)
(b)
Gambar 8.Grafik hasil simulasi Model 2 masukan: (a) grafik theta vs t (b) grafik force vs t
3.2 Model 4 Masukan (theta, theta_dot, x, dan
x_dot)
Pada simulasi ini masukan yang akan dikontrol oleh pengontrol fuzzy adalah parameter theta, theta_dot, x, dan x_dot. Sudut bandul dan posisi pedati dikontrol agar tetap berada pada posisi seimbang/semulanya. Aturan fuzzy yang diterapkan di sini adalah aturan yang berbentuk seperti ”jika theta adalah a dan
theta_dot adalah b dan x adalah c dan x_dot adalah d
maka force adalah e”. Beberapa contoh aturan itu adalah sebagai berikut: jika theta adalah negsmall dan
theta_dot adalah possmall dan x adalah negatif dan x_dot adalah zero maka force adalah possmall, jika theta adalah poslarge dan theta_dot adalah poslarge
dan x adalah negatif dan x_dot adalah negatif maka
force adalah posmedium, dan sebagainya.
Fungsi keanggotaan pada model ini untuk parameter
theta, theta_dot, x, dan x_dot berjumlah 5 buah (NL, NS, ZE, PS, dan PL), theta_dot berjumlah 5 buah (NL, NS, ZE, PS, dan PL), x berjumlah 3 buah (NE, ZE, dan PO), x_dot berjumlah 3 buah (NE, ZE, dan PO), dan force berjumlah 13 buah (N6, N5, N4, N3, N2, N1, ZE, P1, P2, P3, P4, P5, dan P6). Satuan theta dan theta_dot adalah dalam radian. Bentuk fungsi
keanggotaan untuk parameter theta, theta_dot, x,
x_dot, dan force dapat dilihat pada Gambar 9 (a), (b),
(c), (d), dan (e) secara berurutan.
(a)
(b)
(c)
(d)
(e)
Gambar 9. Fungsi keanggotaan untuk Model 4 masukan (a) theta, (b) theta_dot, (c) x, (d) x_dot, dan (e) force
Pemilihan besar parameter-parameter yang terlibat dalam model kali ini dapat dilihat pada Tabel 2.
C-5
Tabel 2. Parameter simulasi Model 4 masukan
Parameter Besar M (masa pedati) 1 kg m (masa bandul) 0,5 kg l (panjang bandul) 0,5 m 9,8 m/s2 g (gravitasi) Gain theta 1 Gain theta_dot 0,5 Gain x 0,25 Gain x_dot 0,5 Gain force 140
θ0 (initial theta) 0,15 rad
Jumlah aturan fuzzy yang digunakan adalah sebanyak 225 buah, dan hasil simulasi menunjukkan bahwa baik bandul maupun posisi pedati dapat distabilkan pada posisi mula-mulanya (rest position) dengan baik. Grafik hasil simulasi dapat dilihat pada Gambar 10 (a), (b), dan (c).
(a)
(b)
(c)
Gambar 10. Grafik hasil simulasi Model 4 masukan: (a) grafik theta vs t, (b) grafik x vs t, (c) grafik force vs t
Pada Gambar 10, terlihat bahwa bandul dapat distabilkan ke posisi vertikal terbaliknya (0 derajat)
dari posisi awal sekitar 0,15 radian. Selain letak bandul yang stabil di posisi vertikalnya, dapat dilihat pula posisi pedati yang stabil di titik tengah lintasan. Waktu yang diperlukan untuk menyeimbangkan posisi bandul adalah cukup lama sekitar 5 detik. Pada grafik
x vs t, dapat dilihat nilai overshoot yang cukup besar.
Model ini sangat mencerminkan keadaan nyata dari sistem karena pengontrol dapat mengontrol posisi pedati dan sudut bandul dengan baik.
4. KESIMPULAN
Telah dilakukan simulasi pengontrolan sistem
inverted pendulum menggunakan pengontrol berbasis fuzzy. Simulasi menggunakan dua buah model, yaitu
Model 2 masukan dan Model 4 masukan. Parameter yang dikontrol pada Model 2 masukan yaitu theta dan
theta_dot, sedangkan pada Model 4 masukan
parameter yang dikontrol adalah theta, theta_dot, x, dan x_dot.
Hasil simulasi menunjukkan bahwa sistem inverted
pendulum dapat distabilkan dengan baik
menggunakan pengontrol berbasis fuzzy logic dengan kriteria sudut awal bandul adalah cukup kecil (kurang dari 10 derajat). Simulasi dengan menggunakan model 2 masukan menunjukkan bahwa posisi bandul dapat dipertahakan pada posisi terbalik dengan baik, tetapi tidak demikian dengan posisi pedati (pedati bergerak menuju tak hingga). Simulasi dengan model 4 masukan menunjukkan bahwa baik posisi bandul maupun pedati dapat stabil di posisi semulanya.
DAFTAR REFERENSI
[1] Emin, Mehmet., 1995. Stabilization of an
Inverted Pendulum by Using a Fuzzy Controller.
Turki: Middle East Technical University.
[2] Stimac, Andrew K., 1999. Standup and
Stabilization of the inverted pendulum.
Massachusetts: Massachusetts Institute of Technology.
LAMPIRAN D
PERANCANGAN DAN IMPLEMENTASI SISTEM KONTROL
BERBASIS FUZZY LOGIC PADA INVERTED PENDULUM
Hindra Kurniawan dan Khairurrijal
*)Program Studi Fisika, Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Teknologi Bandung Jalan Ganesa 10 Bandung 40132
*)
E-mail: [email protected]
Abstract – Sistem inverted pendulum merupakan
sebuah sistem non-linear yang tidak stabil secara alamiah. Untuk mengontrol kestabilan pada sistem ini akan digunakan sebuah teknik pengontrolan yang dikenal sebagai fuzzy logic control. Fuzzy
logic adalah model yang cukup sederhana karena
tidak melibatkan proses komputasi yang kompleks dan proses komputasi dapat dilakukan secara real-time.
Pada eksperimen kali ini akan dilakukan perancangan dan implementasi perangkat keras sistem inverted pendulum. Perangkat keras akan dibangun dengan menggunakan: linear actuator sebagai pedati yang dapat bergerak secara horizontal, encoder sebagai sensor sudut bandul dan posisi pedati, rangkaian H-Bridge untuk mengatur arah gerak pedati, dan empat buah mikrokontroller untuk mengatur kestabilan sistem. Proses perancangan dan pengimplementasian fuzzy
logic pada perangkat keras menggunakan bantuan
perangkat lunak FuzzyTech.
Kata kunci: inverted pendulum, fuzzy logic, control
1. PENDAHULUAN
Sistem inverted pendulum merupakan sistem fisik yang terdiri dari bandul, pedati, dan motor DC. Bandul merupakan sebuah benda yang menempel pada poros pedati dan dapat bergerak dengan satu derajat kebebasan (searah atau berlawanan arah dengan jarum jam). Pedati merupakan sebuah benda yang dapat bergerak translasi dalam arah horizontal pada suatu lintasan. Model dari inverted
pendulum ini adalah model yang sangat baik untuk
dikembangkan pada pengontrolan satelit, kestabilan roket saat lepas landas, sistem pendaratan pesawat otomatis, stabilisasi pesawat pada saat turbulensi, dan lain-lain [1].
Inverted pendulum adalah sistem yang tidak stabil
secara alamiah dan bersifat non-linear sehingga bandul kemungkinan jatuh searah atau berlawanan jarum jam. Motor DC memberikan variabel gaya
untuk menggerakkan pedati sehingga bandul dapat dipertahankan stabil pada posisi terbaliknya dan pedati pada posisi semulanya. Sistem kontrol yang akan digunakan adalah sistem kontrol berbasis
fuzzy logic. Alasan Fuzzy logic digunakan untuk
mengontrol sistem ini adalah karena sistem
non-linear, diperlukan komputasi matematika yang
kompleks, dan komputasi harus dilakukan secara real-time. Seperti dapat dilihat pada literatur-literatur [2], sistem kontrol menggunakan fuzzy dapat mengatasi masalah-masalah di atas dengan baik.
2. DESKRIPSI SISTEM
Sistem perangkat keras yang akan dibangun bertujuan untuk mengimplementasikan konsep
fuzzy logic pada pengontrolan kestabilan sistem inverted pendulum. Gambar 1 menunjukkan
diagram sistem inverted pendulum.
Gambar 1. Diagram sistem inverted pendulum
Bandul mula-mula berada pada keadaan stabil pada posisi terbalik, kemudian diberikan sebuah gangguan awal (F0) yang akan mengakibatkan
sistem menjadi tidak stabil. Pengontrol berbasis
fuzzy kemudian diperlukan untuk menstabilkan
sistem.
Persamaan dinamika sistem inverted pendulum dapat diturunkan menggunakan persamaan
lagrange. Berikut adalah persamaan matematis
sistem inverted pendulum [3]:
D-2
θ θ θ θ θ θ θ 2 2 cos 3 ) ( 7 sin ) ( 3 cos sin 3 ) ( cos 3 ml l m M g m M ml t f − + + + − − = & && (1) θ θ θ θ θ 2 2 cos 3 ) ( 7 cos sin 3 sin 7 ) ( 7 m m M mg ml t f x − + − + = & && (2) 2.1. Desain GlobalDiagram blok dari sistem inverted pendulum yang dikembangkan diperlihatkan pada Gambar 2. Untuk mengontrol kestabilan sistem inverted
pendulum akan digunakan empat buah
mikrokontroller yaitu satu buah mikrokontroller DT-51 dengan frekuensi kristal osilator 12 MHz dan tiga buah mikrokontroller tipe ATTiny2313 dengan frekuensi kristal osilator 20 MHz. Dua dari tiga mikrokontroller ATTiny2313 berfungsi sebagai sensor posisi pedati dan sudut bandul pada sistem. Informasi sudut dan posisi ini kemudian akan diteruskan oleh mikrokontroller ATTiny2313 ke mikrokontroller pusat yaitu DT-51. Dari data-data yang telah diterima, mikrokontroller DT-51 kemudian melakukan proses fuzzy control dan akan mengeluarkan sebuah nilai yang menandakan gaya yang harus diaplikasikan pada kereta. Nilai ini diterima oleh mikrokontroller ATTiny2313 yang ketiga dan kemudian ia akan mengeluarkan sinyal PWM untuk mengontrol posisi pedati.
Gambar 2. Diagram blok sistem inverted pendulum secara keseluruhan
2.2 Pedati
Pedati merupakan sebuah benda yang dapat bergerak translasi dalam arah horizontal pada suatu lintasan. Pedati yang akan digunakan adalah sebuah
linear actuator yang didesain oleh Yaskawa
Electric Corporation dan bertipe UGTMEM-03LSK21. Linear Actuator ini didesain
menggunakan sebuah motor DC 24V, memiliki sebuah optical encoder sebagai sensor posisi pedati, dan menggunakan mekanisme ball screw pada lintasan pedatinya. Mekanisme ball screw ini menggunakan prinsip ulir dan mur sehingga seolah-olah mengakibatkan posisi kereta menjadi terkunci
ketika motor tidak dijalankan. Hal ini mengakibatkan kereta memiliki impulse yang besar ketika akan berbalik arah. Arah gerak pedati dapat dikontrol menggunakan rangkaian H-Bridge. Pedati memiliki panjang 48.5 cm. Gambar 3 menunjukkan Yaskawa linear actuator yang akan digunakan sebagai pedati.
Gambar 3. Yaskawa linear actuator
2.3 Bandul
Bandul merupakan sebuah benda yang menempel pada poros pedati dan dapat bergerak dengan satu derajat kebebasan (searah atau berlawanan arah dengan jarum jam). Bandul yang akan digunakan terbuat dari sebuah batang alumunium dengan panjang 81 cm. Bandul diletakkan pada poros sebuah optical encoder sehingga dimungkinkan diketahuinya sudut bandul dengan presisi secara
real-time. Gambar 4 menunjukkan bandul yang
diletakkan pada poros sebuah encoder.
Gambar 4. Bandul yang diletakkan pada poros encoder
Gambar incremental optical encoder tempat menempelnya bandul diperlihatkan pada gambar 5.
Gambar 5. Incremental Optical encoder
2.4 Mikrokontroller
Mikrokontroller yang akan digunakan dalam tugas akhir ini ialah satu buah AT89C51 (keluarga MCS-51) dan tiga buah ATTiny2313 (keluarga AVR) yang keduanya diproduksi oleh Atmel Corporation. Keempat mikrokontroller ini akan saling bekerja sama untuk mempertahankan kestabilan sistem
inverted pendulum. Pertama-tama komunikasi
antara mikrokontroller pusat (DT-51) dengan ketiga mikrokontroller ATTiny2313 menggunakan komunikasi paralel dengan besar data 1 byte (8 jalur kabel). Mikrokontroller ATTiny2313 motor (ATTiny2313 yang tugasnya mengontrol motor)
D-3
dan ATTiny2313 sensorPedati (ATTiny2313 yang tugasnya membaca sensor encoder pedati) berkomunikasi hanya melalui 2 jalur kabel pada saat permulaan inisialisasi posisi pedati di tengah-tengah lintasan. Setelah proses inisialisasi selesai, kemudian mikrokontroller ATTinny2313 sensorBandul berfungsi untuk mencacah sudut bandul dan hasilnya akan diberikan pada DT-51, ATTiny2313 sensorPedati berfungsi sebagai pencacah posisi pedati dan hasilnya akan diberikan juga pada DT-51. Mikrokontroller DT-51 akan menerima data-data tersebut kemudian akan dilakukan proses fuzzy control dalam mikrokontroller ini yang menghasilkan sebuah keluaran yang bernama force. Force ini
menandakan arah gerak dan seberapa jauh kereta harus digerakkan. Nilai force keluaran dari DT-51 akan diberikan pada mikrokontroller ATTiny2313 motor dan selanjutnya ATTiny2313 motor akan berhubungan dengan H-Bridge untuk mengontrol posisi pedati. Mikrokontroller-mikrokontroller yang digunakan dapat dilihat pada Gambar 6.
Diagram alir pada mikrokontroller DT-51 dapat dilihat pada gambar 7.
Gambar 6. Mikrokontroller (a)DT-51 (b)ATTiny2313 Motor (c)ATTiny2313 sensorBandul (d)ATTiny2313 sensorPedati
Pertama-tama mikrokontroller DT-51 melakukan inisialisasi FuzzyTech menggunakan built-in
library FuzzyTech3, yaitu _initfuzzy1. Setelah itu DT-51 melakukan inisialisasi pemilihan port input dan output (PortA, PortB, dan PortC) untuk komunikasi paralel dengan ketiga mikrokontroller ATTiny2313. DT-51 akan bekerja setelah pengguna menekan tombol ON (start pendulum). Proses yang dilakukan adalah DT-51 menerima dua
3
FuzzyTech adalah sebuah perangkat lunak yang dipakai untuk mendesain dan mengenerate fuzzy
logic pada mikrokontroller MCS-51
masukan dari ATTiny2313 yaitu sudut bandul dan posisi pedati. Setelah itu ia akan menghitung perubahan sudut bandul (thetaDot) dan perubahan posisi pedati (Xdot). Kemudian keempat data ini akan menjadi masukan ke FuzzyTech. FuzzyTech kemudian akan melakukan proses fuzzy control terhadap keempat input tersebut dan dihasilkanlah sebuah keluaran output yang bernama force. Force ini akan diberikan oleh DT-51 kepada ATTiny2313 motor yang selanjutnya akan digunakan untuk menggerakkan pedati. Siklus ini berulang dengan cara DT-51 membaca kedua input kembali.
2.5 Rangkaian H-Bridge
Pada prinsipnya H-Bridge adalah konfigurasi dari 4 buah switch yang disusun sedemikian rupa untuk mengatur arah arus yang mengalir pada motor. Pada motor DC dengan brush, arah rotasi dari
armature diubah dengan cara mengubah arah arus
yang mengalir padanya.
(a) (b)
(c) (d)
Gambar 7. Diagram alir pada Mikrokontroller DT-51
Gambar 8 menunjukkan cara kerja H-Bridge secara sederhana. Pada Gambar 8, terdapat 2 buah kemungkinan jalur arus, yaitu jalur merah dan jalur hijau. Jalur merah melalui switch S3 dan S2 sehingga motor berputar searah jarum jam. Jalur hijau melalui switch S1 dan S4 sehingga motor berputar berlawanan arah jarum jam. Pada tahap implementasi semua switch akan digantikan oleh transistor sehingga kecepatan dan arah motor dapat
D-4
dikendalikan secara langsung melalui mikrokontroller.
Gambar 8. Diagram H-Bridge sederhana
Rangkaian H-Bridge digunakan untuk mengatur arah putaran motor DC. Rangkaian ini bertindak sebagai sebuah saklar yang mengubah arah arus yang melalui motor. Desain rangkaian H-Bridge yang akan digunakan pada tugas akhir ini adalah hak cipta dari Ibrahim Kamal dan dikenal sebagai rangkaian H-Bridge IkaLogic yang dapat diakses pada [4].
Rangkaian H-Bridge IkaLogic yang dipakai memiliki keunggulan sebagai berikut:
• Dapat dialiri arus kontinu sampai 5A dan arus puncak 8A.
• Voltase maksimum adalah 24V.
• Sistem pendingin yang digunakan memiliki performansi tinggi.
• Desain yang kompak.
• Komponen yang digunakan relatif murah. Rangkaian skematik H-Bridge IkaLogic ini dapat dilihat pada Gambar 9.
Gambar 9. Rangkaian skematik H-Bridge IkaLogic
2.6 Membership Function dan Fuzzy Rule
Semua proses desain membership function dan
fuzzy rule menggunakan bantuan perangkat lunak
FuzzyTech. Membership function yang digunakan
terdiri dari lima buah yaitu angle (sudut bandul), angle_dot (perubahan sudut bandul), x (posisi pedati), x_dot (perubahan posisi pedati), dan force (gaya pada pedati). Masing-masing bentuk
membership function dapat dilihat pada Gambar 10
(a), (b), (c), (d), dan (e) secara berurutan.
(a)
(b)
(c)
(d)
(e)
Gambar 10. MembershipFunction untuk: (a) Angle, (b) Angle_dot, (c) X, (d) X_dot, dan (e) Force
D-5
FuzzyTech memiliki keterbatasan dalam jumlah keanggotaan dalam suatu membership function. Jumlah keanggotaan maksimum yang diperbolehkan adalah sebanyak delapan buah. Selain itu FuzzyTech yang digunakan kali ini adalah edisi MCU-51 yang mengharuskan semua variabel yang dideskripsikan hanya sebesar 1 byte. Aturan fuzzy yang digunakan terdiri dari 225 buah. Gambar 11 memperlihatkan sepotong aturan fuzzy yang digunakan pada perangkat lunak FuzzyTech.
Gambar 11. Contoh aturan fuzzy yang digunakan pada FuzzyTech
3. PENGUJIAN DAN ANALISIS
Implementasi pada perangkat keras dilakukan setelah proses simulasi dengan menggunakan perangkat lunak bantuan SIMULINK. Proses simulasi dilakukan untuk mencari parameter-parameter yang tepat guna menstabilkan inverted
pendulum. Hasil simulasi dan pemilihan parameter
dengan menggunakan perangkat lunak bantuan SIMULINK dapat dilihat pada [5].
Pengujian perangkat keras sistem inverted
pendulum akan dilakukan secara kualitatif. Data
percobaan secara kuantitatif tidak dapat disampaikan pada laporan kali ini karena berbagai alasan teknis. Untuk mengambil data percobaan, variabel theta, theta_dot, x, dan x_dot pada setiap iterasi perlu diambil oleh komputer. Komunikasi antara mikrokontroller dengan komputer akan memakan waktu yang signifikan sehingga hal ini akan sangat menganggu kestabilan sistem.
Hasil percobaan inverted pendulum dengan menggunakan dua buah variabel yaitu theta dan theta_dot adalah sudut bandul dapat distabilkan pada posisi vertikal terbalik, tetapi posisi pedati tidak dapat distabilkan pada posisi tengah-tengah
lintasan sehingga pedati akan terus menerus bergerak menuju akhir lintasan. Hasil percobaan ini sesuai dengan hasil simulasi [5] dengan dua buah variabel di mana posisi pedati (x) bergerak menuju tak hingga. Dengan menggunakan empat buah variabel yaitu theta, theta_dot, x, dan x_dot, baik sudut bandul maupun posisi pedati dapat distabilkan dengan baik. Hasil simulasi untuk empat variabel menunjukkan bahwa sistem dapat distabilkan dalam jangka waktu yang lama, tetapi tidak demikian dengan hasil implementasi perangkat kerasnya.
Implementasi perangkat keras sistem inverted
pendulum ini memiliki berbagai keterbatasan
seperti: sudut bandul mula-mula haruslah kecil (<±5 derajat) dan bandul dapat distabilkan pada posisi vertikal terbaliknya hanya dalam jangka waktu yang pendek.
Berbagai kendala yang dihadapi pada saat pembangunan perangkat keras sistem inverted
pendulum ialah:
• Keterbatasan perangkat lunak FuzzyTech yang mengharuskan besar variabel adalah 1 byte untuk edisi FuzzyTech MCU-51 sehinggga mengakibatkan keakuratan data menjadi berkurang.
• Keterbatasan perangkat lunak FuzzyTech yang mengharuskan jumlah derajat keanggotaan maksimum sebanyak 8 buah sehingga variasi keluaran nilai force menjadi berkurang.
• Kompensasi antara kestabilan bandul dan posisi pedati. Proses penstabilan posisi pedati sebenarnya merupakan sebuah gangguan lain (disturbance) pada proses penstabilan sudut bandul, sehingga perlu ditelaah lebih lanjut bagaimana kompensasi untuk kestabilan keduanya.
• Perbedaan parameter (berat pedati, berat bandul, panjang bandul, dan sebagainya) yang besar antara simulasi dan perangkat keras sehingga mengakibatkan perbedaan parameter-parameter fuzzy (membership function) yang cukup besar antara keduanya. Selain itu simulasi menggunakan model ideal (seluruh gesekan diabaikan) sedangkan kenyataannya pada perangkat keras gesekan sangat berpengaruh terhadap perfomansi sistem. Perangkat keras memerlukan proses tuning parameter tersendiri.
• Mekanisme pedati memakai prinsip ball screw yang mengakibatkan impulse pada bandul menjadi besar saat pedati berganti arah, sehingga waktu kestabilan inverted pendulum menjadi relatif pendek.
D-6
• Gaya maksimum yang dihasilkan motor pedati tidaklah cukup kuat untuk mengejar perubahan sudut bandul yang relatif besar.
• Proses tuning variabel dan aturan fuzzy dilakukan secara manual sehingga mengakibatkan tidak dapat diperolehnya solusi
global optimum dari masalah. Proses tuning
variabel sebaiknya menggunakan algoritma lain seperti genetic algorithms atau jaringan saraf tiruan.
4. KESIMPULAN
Perangkat keras sistem inverted pendulum telah berhasil dibangun dengan baik memanfaatkan kereta pedati (linear actuator), encoder sebagai sensor sudut bandul dan posisi pedati, empat buah mikrokontroller, dan rangkaian H-Bridge IkaLogic. Hasil perfomansi perangkat keras tidaklah sebaik hasil simulasi, hal ini disebabkan karena sistem yang tidak ideal dan beberapa keterbatasan baik dari faktor mekanik, desain, tuning parameter, ataupun perangkat lunak FuzzyTech.
Hasil implementasi perangkat keras dengan melibatkan parameter theta dan theta_dot menunjukkan bahwa bandul dapat distabilkan pada posisi vertikal terbaliknya tetapi posisi pedati tidak dapat distabilkan tepat di tengah-tengah lintasan
sehingga waktu kestabilan cenderung pendek (pedati terus bergerak menuju tak-hingga).
Hasil implementasi perangkat keras untuk 4 buah variabel theta, theta_dot, x, dan x_dot menunjukkan bahwa baik sudut bandul maupun posisi pedati dapat distabilkan untuk jangka waktu yang pendek.
DAFTAR REFERENSI
[1] Emin, Mehmet., 1995. Stabilization of an
Inverted Pendulum by Using a Fuzzy Controller. Turki: Middle East Technical
University.
[2] Jang, J-S.R., Sun, C-T., Mizutani, E. 1997.,
Neuro Fuzzy and Soft Computing. New Jersey:
Prentice-Hall.
[3] Stimac, Andrew K., 1999. Standup and
Stabilization of the inverted pendulum.
Massachusetts: Massachusetts Institute of Technology.
[4] http://www.ikalogic.com/H_bridge_1.php [5] Hindra Kurniawan dan Khairurijjal. "Simulasi
Fuzzy Logic pada Inverted Pendulum". Seminar Himpunanan Fisika Indonesia (6 Februari 2008).