• Tidak ada hasil yang ditemukan

DAFTAR PUSTAKA. [ATT-06] --, ATTiny2313/V 8-bit AVR Microcontroller with 2K Bytes In-System Programmable Flash Manual. Atmel.

N/A
N/A
Protected

Academic year: 2021

Membagikan "DAFTAR PUSTAKA. [ATT-06] --, ATTiny2313/V 8-bit AVR Microcontroller with 2K Bytes In-System Programmable Flash Manual. Atmel."

Copied!
19
0
0

Teks penuh

(1)

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

nd

Ed. 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

(2)

[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

(3)
(4)

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:

(5)

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:

(6)

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:

(7)

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.

(8)

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.

(9)

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

(10)

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.

(11)

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

(12)

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.

(13)

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.

(14)

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]:

(15)

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 Global

Diagram 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)

(16)

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

(17)

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

(18)

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.

(19)

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).

Gambar

Gambar 1 menunjukkan diagram sistem inverted  pendulum.
Gambar 2. Model SIMULINK untuk inverted pendulum
Gambar 6. Diagram blok sistem 4 masukan
Gambar 8. Grafik hasil simulasi Model 2 masukan:
+7

Referensi

Dokumen terkait