Realisasi Pengendalian PID Pada Pendulum Terbalik Menggunakan Mikrokontroler ATMEGA8

(1)

BAB I PENDAHULUAN

1.1 Latar Belakang

Secara natural, pendulum terbalik merupakan sistem dinamik yang tidak stabil. Akan tetapi, dengan menggunakan umpan balik sistem ini dapat distabilkan dan dikendalikan. Penentuan metode kendali menjadi kunci keberhasilan pengendalian pada sistem ini. Pengendali yang umum dan sederhana, yaitu PID yang dapat digunakan untuk mengendalikan sistem ini. Pengendali PID ini mudah dirancang dan direalisasikan pada pengendali digital sekelas mikrokontroller.

Pendulum terbalik dapat dijadikan bahan latihan untuk belajar merealisasikan algoritma kendali. Sifatnya yang tidak stabil menjadi dasar untuk mengkaji kinerja metode kendali yang diterapkan. Pengendali PID sendiri digunakan untuk dapat melakukan kajian seberapa baik kinerja yang dihasilkannya.

Ada dua jenis pendulum yaitu pendulum biasa (direct pendulum) dan pendulum terbalik (inverted pendulum). Dewasa ini pendulum biasa maupun pendulum terbalik merupakan alat yang sangat penting dalam pendidikan dan penelitian di bidang teknik pengendalian (control engineering) (Ogata 1990). Sistem pendulum memiliki karakteristik sebagai berikut :

1. Tak linear dan tak stabil.

2. Dapat dilinearkan di sekitar titik kesetimbangan.

Banyak hasil penelitian dicapai melalui studi terhadap sistem pendulum. Di bidang teknik, pendulum biasa dan terbalik dipakai untuk memantau pergerakan


(2)

fondasi bendungan, jembatan, dermaga dan struktur bangunan lainnya. Alat pengangkat peti kemas (cranes) bekerja atas dasar pendulum biasa. Selain itu pendulum terbalik dapat dimanfaatkan untuk mendeteksi usikan gelombang seismik dalam tanah yang disebabkan oleh aktifitas seismik-makro, oseanik, dan atmosferik (Taurasi 2005). Di bidang fisiologi dan ilmu olahraga, prinsip kerja pendulum terbalik banyak digunakan untuk mengkaji keseimbangan gerak manusia (Loram et al. 2001; Loram & Lakie 2002; Loram et al. 2006).

1.2 Tujuan

1. Merealisasikan pengendali PID secara digital pada sistem pendulum terbalik.

2. Menyelaraskan antara teori dan praktek.

1.3 Rumusan Masalah

Untuk mencapai tujuan tersebut, maka perlu dilakukan tahapan-tahapan proses yang dirumuskan sebagai berikut:

1. Melakukan kajian teoritis tentang pendulum terbalik. 2. Merancang dan membuat sistem pendulum terbalik. 3. Mencari model dinamik sistem.

4. Merancang pengendali PID untuk sistem pendulum terbalik. 5. Melakukan simulasi kinerja pengendali PID yang telah dirancang. 6. Merealisasikan pengendali PID yang telah dirancang pada

mikrokontroller.


(3)

1.4 Batasan Masalah

Batasan masalah dalam tugas akhir ini adalah:

1. Sistemnya akan bersifat linier jika θ (theta) kecil.

2. Sistem yang digunakan adalah Single Input Single Output (SISO).

1.5 Metodologi Penelitian

Metodologi penelitian yang digunakan dalam pembuatan skripsi terdiri dari beberapa tahapan sebagai berikut:

1. Studi Pustaka/Literatur

Studi ini dilakukan dengan cara mencari dan membaca literatur serta data-data yang berhubungan dengan alat yang akan dibuat.

2. Studi Lapangan

Studi ini dilakukan untuk memperoleh alat dan bahan yang diperlukan untuk merancang alat.

3. Perancangan dan pengembangan

Dengan merekam data input dan output lalu membangun model dinamik dari data tersebut menggunakan matlab, setelah itu melakukan simulasinya kemudian merancang pengendali PID.

4. Pengujian

Pengujian dapat dilakukan pada PC. 5. Penulisan Laporan

Hasil dari studi pustaka/literature, studi lapangan, perancangan dan pengembangan sistem, serta pengujian sistem pengendali PID pada pendulum terbalik akan dituangkan dalam laporan ini.


(4)

1.6 Sistematika Pembahasan

Tugas akhir ini terdiri dari lima bab, dimana masing-masing bab mempunyai kaitan satu sama lain, yaitu:

BAB I PENDAHULUAN

Pada bab ini diberikan gambaran umum mengenai isi dari tugas akhir ini yang terdiri dari latar belakang, tujuan, rumusan masalah, batasan masalah, metodologi penelitian dan sistematika pembahasan.

BAB II TINJAUAN PUSTAKA

Pada bab ini akan dijelaskan dengan singkat mengenai pengendali PID, pendulum terbalik serta perangkat-perangkat yang mendukung pembuatan tugas akhir ini.

BAB III PERANCANGAN DAN PEMBUATAN SISTEM

Bab ini berisikan tentang perancangan alat ( hardware ) yang digunakan dalam merealisasikan rangkaian pendulum terbalik menggunakan mikrokontroller ATmega8.

BAB IV PENGUJIAN DAN ANALISA

Pada bab ini akan dilakukan pengujian pada alat setelah direalisasikan serta menganalisis.

BAB V KESIMPULAN DAN SARAN

Hasil-hasil dari analisis dituangkan secara lebih sederhana dalam kesimpulan, sedangkan hal-hal yang dianggap perlu untuk menjadi sebuah rekomendasi dijadikan saran oleh penulis.


(5)

BAB II

TINJAUAN PUSTAKA

2.1 Teori Pendulum Terbalik

Pendulum terbalik pada dasarnya hanya suatu batang stick berdiri akan jatuh bebas akibat gaya tarik bumi jika tidak ada gaya luar lain yang mengimbanginya. Secara nyata dapat dilihat akibat ketidakstabilan sistem. Pendulum akan jatuh ke kiri atau kanan.

Dalam kehidupan nyata, pendulum terbalik ini dapat dilihat penggunaanya dalam pengendalian posisi antena radar dan pengendalian lengan robot pada robot yang bergerak (misalnya membawa kamera pada daerah yang tidak dapat dijangkau manusia).

Kereta dengan pendulum terbalik, ditampilkan dibawah ini dengan gaya impuls F. Persamaan gerak untuk dinamika sistem dan linearitas tentang sudut pendulum adalah = atau dengan kata lain, pendulum diasumsikan tidak bergerak lebih dari beberapa derajat dari sumbu vertikal yang berada pada sudut θ.

Gambar 2.1 Desain pendulum terbalik


(6)

Keterangan: M = Massa kereta m = Massa pendulum b = Gesekan kereta

l = Panjang pendulum pusat massa I = Inersia pendulum

F = Gaya yang diberikan pada kereta x = Posisi koordinat kereta

θ = Sudut vertikal pendulum

Untuk PID, root locus dan bagian respon frekuensi dari masalah ini kita hanya akan tertarik pada kontrol posisi pendulum saja. Karena teknik yang digunakan dalam tutorial ini hanya dapat diterapkan untuk sistem Single Input Single Output(SISO).

2.1.1 Analisis Gaya dan Sistem Persamaan Berikut adalah dua bangun diagram sistem.

Gambar 2.2 Dua bangun diagram sistem kereta pendulum (http://www.engin.umich.edu/group/ctm/examples/pend/invpen.html)


(7)

Dengan menjumlahkan badan kereta kearah horizontal, maka persamaan gerak kereta adalah:

+ + = (2.1)

Dengan menjumlahkan batang pendulum kearah horizontal, maka diperoleh persamaan untuk N:

= + − (2.2)

Jika persamaan (2.1)dan (2.2)disubtitusi, maka persamaan gerak untuk sistem ini adalah:

+ + + − =

Untuk mendapatkan persamaan gerak kedua, dengan menjumlahkan garis tegak lurus pada pendulum. Persamaanya:

+ − + = (2.3)

Untuk menghilangkan P dan N dalam persamaan diatas, untuk mendapatkan persamaan berikut maka, keliling pusat massa pendulum dijumlahkan.

− − = (2.4)

Menggabungkan persamaan (2.3) dan (2.4) maka akan diperoleh persamaan dinamis

+ + = −

Jika kita menganggap bahwa sistemnya linear maka diasumsikan bahwa θ =

+ ∅ (∅ merupakan sudut terkecil dari arah vertikal) oleh karena itu cos =

− , sinθ = −∅dan . Setelah linearisasi dua persamaan gerak menjadi seperti berikut (dimana u merupakan masukan)

+ ∅ − ∅ =


(8)

2.1.2 Fungsi Transfer

Untuk mendapatkan fungsi transfer dari sistem linearisasi persamaan analitis, kita harus terlebih dahulu mengambil transformasi Laplace dari persamaan sistem. TransformasiLaplacenya adalah:

+ − = (2.5)

+ + − = (2.6)

Catatan: Saat fungsi transfer inisial kondisinya diasumsikan jadi nol (0). Untuk mencari sudut sebagai output (keluaran) maka persamaan pertama untuk X(s):

= − (2.7)

kemudian persamaan (2.7)disubtitusi ke persamaan (2.6)

+ + + + + + − =

dimana

=[ + + − ]

Fungsi transfernya adalah:

=

+ + − + −

2.1.3 Kestabilan Sistem

Suatu sistem dinamik dikatakan stabil apabila sistem tersebut dapat kembali ke posisi setimbangnya semula, apabila diberikan input lalu input tersebut dihilangkan. Secara matematik, hal ini dapat dilihat dari posisi akar-akar karakteristik sistem tersebut. Apabila semua akar karakteristiknya negatif, maka


(9)

sistemnya stabil dan apabila minimal terdapat satu akar karakteristik yang positif, maka sistemnya tidak stabil. Selanjutnya istilah akar karakteristik digantikan dengan pole.

Pada sistem dinamik yang direpresentasikan oleh sebuah fungsi transfer, akan memiliki zero dan pole. Sebagai contoh jiika suatu sistem memiliki fungsi transfer

= + + +

Maka sistem ini akan memiliki zero, yaitu dengan membuat numeratornya sama dengan nol.

1 ,

0

1  

s

s

Jadi, zero-nya adalah -1.

Untuk memperoleh pole-nya, maka denumeretornya dibuat sama dengan nol, sehingga menghasilkan

+ + = , = − = −

Jadi, pole-poleyang diperoleh adalah -2 dan -3.

Dari persyaratan kestabilan, maka sistem tersebut merupakan sistem yang stabil karena memiliki semua pole yang bagian riilnya negatif. Letak pole-pole dan zerosistem ini diperlihatkan pada gambar berikut ini.


(10)

Gambar 2.3 Respon letak pole dan zero sistem

Jika sistem ini diberikan masukan step, maka sistem akan menghasilkan keluaran yang mencapai steady-state (konstan) pada suatu waktu tertentu. Berikut adalah respon waktu dari sistem ini.

Gambar 2.4 Respon sistem saat mencapai steady state Bandingkan dengan sistem berikut ini


(11)

Pole-polesistem ini adalah

2 2 1

1

, 0 2 2

  

  

s dan s

sehingga s

s

Letak pole dan zero-nya pada bidang kompleks adalah sebagai berikut

Gambar 2.5 Respon letak pole dan zero pada bidang kompleks

Respon waktu sistem ini terhadap masukan step adalah keluarannya akan terus bertambah besar (tidak stabil). Berikut ini adalah gambar respon waktu step sistem.


(12)

2.2 Pengontrol Proportional Integral Derivative (PID)

Pengontrol PID adalah pengendali umpan balik (controller) yang banyak digunakan dalam industri sistem kontrol dan paling umum. Sebuah kontroller PID menghitung nilai error sebagai perbedaan antara variabel proses dengan set point yang diinginkan. Kontroller berupaya untuk meminimalkan kesalahan dengan menyesuaikan proses input kontrol.

Persamaan pengontrol PID adalah:

= + ∫ + (2.8)

Keterangan:

= = =

=

= ℎ

Persamaan pengontrol PID diatas dapat juga dituliskan sebagai berikut:

= + ∫ + (2.9)

dengan

= × = ×

Untuk lebih memaksimalkan kerja pengontrol diperlukan nilai batas minimum dan maksimum yang akan membatasi nilai manipulated variabel yang dihasilkan.


(13)

2.2.1 Teori Pengontrol Proportional Integral Derivative (PID)

Pengontrol PID melibatkan tiga parameter yang terpisah yaitu proportional, integral, dan derivative, parameter tersebut dinotasikan P, I, dan D. Nilai proportional menentukan reaksi terhadap kesalahan saat ini, nilai integral menentukan reaksi berdasarkan jumlah kesalahan baru-baru ini dan nilai derivativemerupakan reaksi berdasarkan tingkat di mana kesalahan telah berubah. Jumlah kesetimbangan dari ketiga tindakan ini digunakan untuk mengatur proses tersebut melalui elemen kontrol seperti posisi katup kontrol atau catu daya dari elemen pemanas.

Gambar 2.7 Diagram blok pengontrol PID 1. Pengontrol Proportional

Kontrol P, jika G(s) = kp dengan k adalah konstanta. Jika u = G(s)*e maka u = Kp*e dengan Kp adalah konstanta proportional. Kp berlaku sebagai gain (penguat) saja tanpa memberikan efek dinamik kepada kinerjacontroller. Penggunaan kontrol P memiliki berbagai keterbatasan karena sifat kontrol yang tidak dinamik. Walaupun demikian dalam aplikasi-aplikasi dasar yang sederhana kontrol P ini cukup mampu untuk memperbaiki respon transien khususnya rise timedan settling time.


(14)

Gambar hubungan antara proportional antara besaran mempengaruhi (mempercepat

tercapainya harga yang diinginkan).

Pengendali (proportional

efektif dicerminkan proportional kesalahan, K Hubungan proportional Gambar controller dan

konstanta proportional penurunan ya

akan semakin sempit.

Gambar 2.7 menunjukkan diagram blok yang menggambarkan hubungan antara besaran setting, besaran aktual dengan besaran

proportional controller. Sinyal kesalahan (error) merupakan besaran setting dengan besaran aktualmya. Selisih ngaruhi controller, untuk mengeluarkan sinyal

(mempercepat pencapaian harga setting) atau negatif (memperlambat tercapainya harga yang diinginkan).

Gambar 2.8 Diagram blok pengendali proportional

Pengendali proportional memiliki 2 parameter, pita proportional band) dan konstanta proportional. Daerah kerja

dicerminkan oleh pita proportional, sedangkan proportional menunjukkan nilai faktor penguatan terhadap

Kp.

Hubungan antara Pita Proportional (PB) dengan

proportional(Kp) ditunjukkan secara presentasi oleh persamaan berikut:

Gambar 2.9 menunjukkan grafik hubungan antara dan kesalahan yang merupakan masukan controller proportional bertambah semakin tinggi, PB penurunan yang semakin kecil, sehingga lingkup kerja yang akan semakin sempit.

ng menggambarkan dengan besaran keluaran ) merupakan selisih aktualmya. Selisih ini akan mengeluarkan sinyal positif

negatif (memperlambat

proportional

parameter, pita proportional Daerah kerja kontroller

sedangkan konstanta penguatan terhadap sinyal

(PB) dengan konstanta ) ditunjukkan secara presentasi oleh persamaan berikut:

antara PB, keluaran ontroller. Ketika PB menunjukkan kerja yang dikuatkan


(15)

Gambar 2.9 Proportional band

Ciri-ciri pengontrol a. Jika nilai

melakukan

menghasilkan respon sistem yang lambat.

b. Jika nilai Kp dinaikkan, respon/tanggapan sistem akan semakin cepat mencapai keadaanya (mengurangi

c. Jika harga

akan mengakibatkan akan berosilasi. d. Nilai Kp

error, tetapi tidak menghilangkannya. 2. Pengontrol Integral

Jika G(s)

[∫(t)dt] Ki. Dengan

diatas, G(s)

Proportional banddari proportional controller tergantung pada penguatan

ciri pengontrol proportional:

Jika nilai Kp kecil, pengontrol proportional

melakukan koreksi kesalahan yang kecil, sehingga menghasilkan respon sistem yang lambat.

Jika nilai Kp dinaikkan, respon/tanggapan sistem akan semakin cepat ncapai keadaanya (mengurangi rise time).

Jika harga Kp diperbesar sehingga mencapai harga ya akan mengakibatkan sistem bekerja tidak stabil atau akan berosilasi.

Nilai Kp dapat diset sedemikian sehingga menguran , tetapi tidak menghilangkannya.

Integral

G(s) adalah kontrol I maka u dapat dinyatakan Ki. Dengan Ki adalah konstanta integral, dan dari G(s) dapat dinyatakan sebagai u = Kd x Δe/Δt

tergantung pada

hanya mampu kecil, sehingga akan

Jika nilai Kp dinaikkan, respon/tanggapan sistem akan semakin cepat

harga yang berlebihan, stabil atau respon sistem

mengurangi steady state

takan sebagai u(t) = dan dari persamaan


(16)

mendekati konstan (bukan nol) maka u(t) akan menjadi sangat besar sehingga diharapkan dapat memperbaiki error. Jika e(t) mendekati nol maka efek kontrol I ini semakin kecil. Kontrol I dapat memperbaiki sekaligus menghilangkan respon steady state, namun pemilihan Ki yang tidak tepat dapat menyebabkan respon transien yang tinggi sehingga dapat menyebabkan ketidakstabilan sistem. Pemilihan Ki yang sangat tinggi justru dapat menyebabkan output berosilasi karena menambah orde sistem.

Pengontrol integral memiliki karakteristik seperti halnya sebuah integral. Keluaran controller sangat dipengaruhi oleh perubahan yang sebanding dengan nilai sinyal kesalahan. Keluaran controller ini merupakan jumlahan yang terus menerus dari perubahan masukannya. Kalau sinyal kesalahan tidak mengalami perubahan, keluaran akan menjaga keadaan seperti sebelum terjadinya perubahan masukan.

Sinyal keluaran integral controller merupakan luas bidang yang dibentuk oleh kurva kesalahan penggerak. Sinyal keluaran akan berharga sama dengan harga sebelumnya ketika sinyal kesalahan berharga nol. Gambar 2.10 menunjukkan contoh sinyal kesalahan yang disulutkan ke dalam pengontrol integral dan keluaran pengontrol integral terhadap perubahan sinyal kesalahan tersebut.


(17)

Gambar 2.10 Kurva sinyal kesalahan

Gambar 2.11 Blok diagram hubungan antara besaran kesala

Pengaruh ditunjukkan o maka nilai laju dari semula. Jika sinyal kesalah menjadi besar

Gambar 2.12

Gambar 2.10 Kurva sinyal kesalahan e(t)terhadap tdan kurva u(t) pembangkit kesalahan nol

Blok diagram hubungan antara besaran kesalahan dengan integral controller

Pengaruh perubahan konstanta integral terhadap keluaran ditunjukkan oleh Gambar 2.12. Ketika sinyal kesalahan

nilai laju perubahan keluaran controller berubah menjadi semula. Jika nilai konstanta integrator berubah menjadi

kesalahan yang relatif kecil dapat mengakibatkan menjadi besar.

2.12 Perubahan keluaran sebagai akibat penguatan dan kesalahan u(t)terhadap tpada

han dengan keluaran

terhadap keluaran integral kesalahan berlipat ganda, berubah menjadi dua kali berubah menjadi lebih besar, mengakibatkan laju keluaran


(18)

Ciri-ciri pengontrol a. Keluaran

sehingga pengontrol b. Ketika sinyal

bertahan pada nilai sebelumnya. c. Jika sinyal

kenaikan

kesalahan dan nilai Ki. d. Konstanta

hilangnya

mengakibatkan peningkatan osilasi dari sinyal 3. Pengontrol Derivati

Pengontrol

derivative. Perubahan mengakibatkan

menunjukkan

sinyal kesalahan dengan keluaran

Gambar sinyal keluaran

ciri pengontrol Integral:

Keluaran pengontrol integral membutuhkan selang waktu sehingga pengontrol integralcenderung memperlambat respon. Ketika sinyal kesalahan bernilai nol, keluaran pengontrol bertahan pada nilai sebelumnya.

Jika sinyal kesalahan tidak bernilai nol, keluaran akan kenaikan atau penurunan yang dipengaruhi oleh besarnya kesalahan dan nilai Ki.

Konstanta integral Ki yang berharga besar akan hilangnya offset. Tetapi semakin besar nilai konstanta

mengakibatkan peningkatan osilasi dari sinyal keluaran pengontrol. Derivative

Pengontrol derivative memiliki sifat seperti halnya . Perubahan yang mendadak pada masukan mengakibatkan perubahan yang sangat besar dan cepat.

menunjukkan blok diagram yang menggambarkan hubungan sinyal kesalahan dengan keluaran controller.

Gambar 2.13 Blok diagram kontroller derivative Gambar 2.14 menyatakan hubungan antara sinyal masukan

keluaran kontroller derivative. Ketika masukannya

selang waktu tertentu, cenderung memperlambat respon.

keluaran pengontrol akan

keluaran akan menunjukkan oleh besarnya sinyal

besar akan mempercepat nilai konstanta Ki akan

keluaran pengontrol.

halnya suatu operasi masukan controller, akan cepat. Gambar 2.13 menggambarkan hubungan antara

derivative

yal masukan dengan masukannya tidak


(19)

mengalami perubahan, perubahan, sedangkan menaik (berbentuk impuls. Jika sinyal keluarannya

sangat dipengaruhi konstanta derivative

Gambar

Ciri-ciri pengontrol a. Pengontrol

perubahan pada masukannya (berupa perubahan sinyal kesalahan). b. Jika sinyal

dihasilkan sinyal kesalahan. c. Pengontrol

sehingga

mengalami perubahan, keluaran kontroller juga tidak perubahan, sedangkan apabila sinyal masukan berubah menaik (berbentuk fungsi step), keluaran menghasilkan sinyal impuls. Jika sinyal masukan berubah naik secara perlahan keluarannya justru merupakan fungsi step yang besar

dipengaruhi oleh kecepatan naik dari fungsi ramp derivativeTd.

Gambar 2.14 Kurva waktu hubungan input-output kontrol derivative

ciri pengontrol derivative:

Pengontrol ini tidak dapat menghasilkan keluaran

perubahan pada masukannya (berupa perubahan sinyal kesalahan). Jika sinyal kesalahan berubah terhadap waktu, maka

dihasilkan pengontrol tergantung pada nilai Kd dan sinyal kesalahan.

Pengontrol derivative mempunyai suatu karakter untuk sehingga pengontrol ini dapat menghasilkan koreksi ya

juga tidak mengalami berubah mendadak dan menghasilkan sinyal berbentuk perlahan (fungsi ramp), yang besar magnitudnya ramp dan faktor

output kontroller

keluaran jika tidak ada perubahan pada masukannya (berupa perubahan sinyal kesalahan).

waktu, maka keluaran yang Kd dan laju perubahan

karakter untuk mendahului, koreksi yang signifikan


(20)

sebelum pembangkit kesalahan menjadi besar. Jadi pengontrol diferensial dapat mengantisipasi pembangkit kesalahan, memberikan aksi yang bersifat korektif dan cenderung meningkatkan stabilitas sistem.

d. Dengan meningkatkan nilai Kd, dapat meningkatkan stabilitas sistem dan mengurangi overshoot.

Berdasarkan karakteristik kontroller tersebut, derivative controller umumnya dipakai untuk mempercepat respon awal suatu sistem, tetapi tidak memperkecil kesalahan pada keadaan tunaknya. Kerja kontroller derivativehanyalah efektif pada lingkup yang sempit, yaitu pada periode peralihan. Oleh sebab itu pengontrol diferensial tidak pernah digunakan tanpa ada kontroller lain sebuah sistem.

Efek dari setiap pengontrol Proportional(P), Integral(I) dan Derivative(D) pada setiap loop tertutup disimpulkan pada Tabel 2.1 yang merupakan efek setiap pengontrol.

Tabel 2.1 Efek setiap pengontrol pada loop tertutup Respon Loop

Tertutup

Rise Time Overshoot Settling Time

Steady-State Error

P Menurunkan Meningkatkan

Perubahan kecil

Menurunkan

I Menurunkan Meningkatkan Meningkatkan Mengeliminasi

D

Perubahan kecil

Menurunkan Menurunkan

Perubahan kecil


(21)

Elemen-elemen pengontrol bertujuan:

a. Mempercepat reaksi sebuah sistem mencapai b. Menghilangkan

c. Menghasilkan perubahan awal yang besar dan mengurangi

2.2.2 Kontroller PID Setiap kekurangan dapat saling menutupi kontroller Proposional, kontroller P, I, dan

mempercepat reaksi sebuah perubahan awal yang besar.

Keluaran kontroller proportional dan keluara hubungan tersebut.

elemen pengontrol P, I dan D masing-masing secara

Mempercepat reaksi sebuah sistem mencapai set point-nya. Menghilangkan offset.

Menghasilkan perubahan awal yang besar dan mengurangi

Kontroller PID

kekurangan dan kelebihan dari masing-masing kontro menutupi dengan menggabungkan ketiganya secara paralel Proposional, Integral, Diferensial (kontroller PID). Elemen

dan D masing-masing secara keseluruhan bertujuan reaksi sebuah sistem, menghilangkan offset dan

perubahan awal yang besar.

Gambar 2.15 Blok diagram kontroller PID analog kontroller PID merupakan penjumlahan dari keluaran

keluaran kontroller integral. Gambar 2.16

masing secara keseluruhan

nya.

Menghasilkan perubahan awal yang besar dan mengurangi overshoot.

kontroller P, I dan D secara paralel menjadi . Elemen-elemen keseluruhan bertujuan untuk dan menghasilkan

er PID analog

dari keluaran kontroller 2.16 menunjukkan


(22)

Gambar 2.16 Hubungan dalam

Karakteristik kontrol ketiga parameter P, mengakibatkan penonjolan ketiga konstanta tersebut yang besar itulah akan secara keseluruhan.

2.3 Mikrokontroller AVR Atmel AVR adalah bidang elektronika dan arsitektur RISC (Reduce instruksi dikemas dalam dieksekusi dalam satu

Gambar 2.16 Hubungan dalam fungsi waktu antara sinyal keluaran dengan masukan untuk kontroller PID

Karakteristik kontroller PID sangat dipengaruhi oleh kontribusi parameter P, I, dan D. Penyetelan konstanta Kp, Ti,

penonjolan sifat dari masing-masing elemen. Satu konstanta tersebut dapat disetel lebih besar dibanding yang lain.

itulah akan memberikan kontribusi pengaruh pada

Mikrokontroller AVR ATmega8

adalah jenis mikrokontroller yang paling sering elektronika dan instrumentasi. Mikrokontroller AVR

Reduce Instruction Set Computing) 8-bit, di dikemas dalam kode 16-bit (16 bits word) dan sebagian dieksekusi dalam satu siklus clock.

fungsi waktu antara sinyal keluaran dengan

kontribusi besar dari Kp, Ti, dan Td akan elemen. Satu atau dua dari dibanding yang lain. Konstanta pada respon sistem

sering dipakai dalam AVR ini memiliki bit, di mana semua sebagian besar instruksi


(23)

Nama AVR sendiri berasal dari "Alf (Egil Bogen) and Vegard (Wollan) 's Risc processor" dimana Alf Egil Bogen dan Vegard Wollan adalah dua penemu berkebangsaan Norwegia yang menemukan mikrokontroller AVR yang kemudian diproduksi oleh Atmel.

Gambar 2.17 Atmel AVR jenis ATmega8

2.3.1 Konfigurasi Pin AVR ATmega8

Dalam hal ini yang digunakan adalah AVR ATmega8, perbedaannya dengan AVR ATmega8L hanyalah terletak pada besarnya tegangan yang diperlukan untuk bekerja. Untuk ATmega8 tipe L dapat bekerja pada tegangan antara 2,7V – 5,5V sedangkan untuk ATmega8 hanya dapat bekerja pada tegangan 4,5V – 5,5V. Berikut adalah Gambar 2.18 konfigurasi pin ATmega8.

Gambar 2.18 Konfigurasi pin

Sumber : 8-bit Microcontroller with 8K Bytes In-Sistem Programmable Flash ATMega8.(ATMega8.pdf). San Jose: Atmel Corporation, 2001. p.2.


(24)

2.3.2 Status Register AVR ATmega8

ATmega8 memiliki 28 pin yang masing-masing pin-nya memiliki fungsi yang berbeda-beda baik sebagai port ataupun sebagai fungsi yang lain. Berikut akan dijelaskan tentang kegunaan dari masing-masing kaki pada ATmega8.

 VCC

Merupakan supply tegangan untuk digital.  GND

Merupakan ground untuk semua komponen yang membutuhkan grounding.

 Port B

Di dalam Port B terdapat XTAL1, XTAL2, TOSC1, TOSC2. Jumlah Port B adalah 8 buah pin mulai dari pin B.0 sampai dengan pin B.7. Tiap pin dapat digunakan sebagai input dan juga output. Port B merupakan sebuah 8-bit bidirectional I/O port dengan internal pull up resistor. Sebagai input, pin-pin yang terdapat pada port B yang secara eksternal diturunkan, maka akan mengeluarkan arus jika pull upresistor diaktifkan. Jika ingin menggunakan tambahan kristal, maka cukup menghubungkan kaki dari kristal ke kaki pada pin port B. Namun jika tidak digunakan, maka cukup dibiarkan saja. Kegunaan dari masing-masing kaki ditentukan dari clock fuse setting-nya.

 Port C

Port C merupakan sebuah 7-bit bi-directional I/O port yang di dalam masing-masing pin terdapat pull up resistor. Jumlah pinnya hanya 7 buah mulai dari pin C.0 sampai dengan pin C.6. Sebagai keluaran, port C


(25)

memiliki karakteristik yang sama dalam hal kemampuan menyerap arus (sink) ataupun mengeluarkan arus (source).

 Reset/PC6

Jika RSTDISBL Fuse diprogram, maka PC6 akan berfungsi sebagai pin I/O. Untuk diperhatikan juga bahwa pin ini memiliki karakteristik yang berbeda dengan pin-pin yang terdapat pada port C. Namun jika RSTDISBL fuse tidak diprogram, maka pin ini akan berfungsi sebagai input reset. Dan jika level tegangan yang masuk ke pin ini rendah dan pulsa yang ada lebih pendek dari pulsa minimum, maka akan menghasilkan suatu kondisi reset meskipun clocknya tidak bekerja.

 Port D

Port D merupakan 8-bit bi-directional I/O dengan internal pull up resistor. Fungsi dari port ini sama dengan port-port yang lain. Hanya saja pada port ini tidak terdapat kegunaan-kegunaan yang lain. Pada port ini hanya berfungsi sebagai masukan dan keluaran saja atau biasa disebut dengan I/O.

 AVCC

Pada pin ini memiliki fungsi sebagai supplytegangan untuk ADC. Untuk pin ini harus dihubungkan secara terpisah dengan VCC karena pin ini digunakan untuk analog saja. Bahkan jika ADC pada AVR tidak digunakan, tetap saja disarankan untuk menghubungkan secara terpisah dengan VCC. Cara menghubungkan AVCC adalah melewati low pass filtersetelah itu dihubungkan dengan VCC.


(26)

 AREF

Merupakan pin referensi analog jika menggunakan ADC. Pada AVR status register mengandung beberapa informasi mengenai hasil dari kebanyakan hasil eksekusi instruksi aritmatik. Informasi ini dapat digunakan untuk altering arus program sebagai kegunaan untuk meningkatkan performa pengoperasian. Perlu diketahui bahwa register ini di update setelah semua operasi Arithmetic Logic Unit (ALU). Hal tersebut seperti yang telah tertulis dalam datasheet khususnya pada bagian Instruction Set Reference.

Dalam hal ini untuk beberapa kasus dapat membuang kebutuhan penggunaan instruksi perbandingan yang telah didedikasikan serta dapat menghasilkan peningkatan dalam hal kecepatan dan kode yang lebih sederhana dan singkat. Register ini tidak secara otomatis tersimpan ketika memasuki sebuah rutin interupsi dan juga ketika menjalankan sebuah perintah setelah kembali dari interupsi. Namun hal tersebut harus dilakukan melalui software. Berikut adalah Gambar 2.19 Status register.

Gambar 2.19 Status register ATmega8

Sumber: 8-bit Microcontroller with 8K Bytes In-Sistem Programmable Flash ATMega8. (ATMega8.pdf). San Jose: Atmel Corporation, 2001. p.11.


(27)

Kegunaan dari masing-masing bit yang terlihat pada Gambar 2.19 :  Bit 7 (I)

Merupakan bit Global Interrupt Enable. Bit ini harus diset supaya semua perintah interupsi dapat dijalankan. Untuk fungsi interupsi individual akan dijelaskan pada bagian yang lain. Jika bit ini direset, maka semua perintah interupsi baik yang individual maupun yang secara umum akan diabaikan. Bit ini akan dibersihkan atau cleared oleh hardware setelah sebuah interupsi dijalankan dan akan diset kembali oleh perintah RETI. Bit ini juga dapat diset dan direset melalui aplikasi dengan instruksi SEI dan CLI.

 Bit 6 (T)

Merupakan bit copy storage. Instruksi bit Copy Instructions Bit LoaD (BLD)and Bit STore(BST) menggunakan bit ini sebagai asal atau tujuan untuk bit yang telah dioperasikan. Sebuah bit dari sebuah register dalam register file dapat disalin ke dalam bit ini dengan menggunakan instruksi BST, dan sebuah bit di dalam bit ini dapat disalin ke dalam sebuah bit di dalam register pada register file dengan menggunakan perintah BLD.  Bit 5 (H)

Merupakan bit Half Carry Flag. Bit ini menandakan sebuah Half Carry dalam beberapa operasi aritmatika. Bit ini berfungsi dalam aritmatik BCD.

 Bit 4 (S)


(28)

 Bit 3 (V)

Merupakan bit Two’s Complement Overflow Flag. Bit ini menyediakan fungsi aritmatika dua komplemen.

 Bit 2 (N)

Merupakan bit Negative Flag. Bit ini mengindikasikan sebuah hasil negatif di dalam sebuah fungsi logika atau aritmatika.

 Bit 1 (Z)

Merupakan bit Zero Flag. Bit ini mengindikasikan sebuah hasil nol “0” dalam sebuah fungsi aritmatika atau logika.

 Bit 0 (C)

Merupakan bit Carry Flag. Bit ini mengindikasikan sebuah carry atau sisa dalam sebuah fungsi aritmatika atau logika.

2.3.3 Memori Program ATmega8

Memori program yang terletak pada Flash Peromtersusun dalam wordatau 2 byte karena setiap instruksi memiliki lebar 16 bit atau 32 bit. AVR ATmega8 memiliki 4KByte x 16 Bit Flash Perom dengan alamat mulai dari $000 sampai $FFF. AVR tersebut memiliki 12 bit Program Counter (PC) sehingga mampu mengalamati isi flash.


(29)

2.3.4 SRAM Data Memori

ATmega8 memiliki ruang pengalamatan memori data dan memori program yang terpisah. Memori data terbagi menjadi 3 bagian yaitu: 32 buah register umum, 64 buah register I/O, dan 512 byte SRAM internal.

Register untuk keperluan umum menempati space data pada alamat terbawah yaitu $00 sampai $1F. Sementara itu register khusus untuk menangani I/O dan kontrol terhadap mikrokontroller menempati 64 alamat berikutnya, yaitu mulai dari $20 sampai $5F. Register tersebut merupakan register yang khusus digunakan untuk mengatur fungsi terhadap berbagai peripheral mikrokontroller, seperti kontrol register, timer/counter, fungsi-fungsi I/O, dan sebagainya. Register khusus alamat memori secara lengkap dapat dilihat pada gambar dibawah ini. Alamat memori berikutnya digunakan untuk SRAM 512 byte, yaitu pada lokasi $60 sampai dengan $25F.


(30)

2.4 Motor Servo

Motor servo adalah motor yang mampu bekerja dua arah (CW dan CCW) dimana arah dan sudut pergerakan rotornya dapat dikendalikan hanya dengan memberikan pengaturan duty cycle sinyal PWM pada bagian pin kontrolnya. Motor servo adalah jenis motor yang digunakan sebagai penggerak pada sistem servo seperti pada penggerak pada kontrol posisi lengan robot. Motor servo terdiri dari motor DC, gear box, dan driver controlyang terpadu menjadi satu.

Gambar 2.22 Motor servo 2.4.1 Jenis-jenis Motor Servo

Di pasaran ada berbagai jenis atau tipe servo, namun berdasarkan dari putaran sudutnya yang umum dijumpai sebagai berikut:

1. Motor servo standar 180˚

Motor servo jenis ini hanya mampu bergerak dua arah (CW dan CCW) dengan defleksi masing-masing sudut mencapai 90° sehingga total defleksi sudut dari kanan, tengah, dan kiri adalah180°.

2. Motor servo 360˚ (continues rotation)

Motor servo jenis ini mampu bergerak dua arah (CW dan CCW) tanpa batasan defleksi sudut putar (dapat berputar secara kontinyu).

Sedangkan berdasarkan dari tipe signal yang digunakan, terdapat servo analog dan servo digital. Dalam tugas akhir ini, motor servo yang digunakan


(31)

adalah motor servo analog dengan putaran sudut 180˚. Yang perlu diperhatikan pada bagian output terdapat 3 kabel, yang masing-masing berfungsi sebagai:

Gambar 2.23 Pin out pada motor servo a. Input data PWM (Signal)

b. Tegangan 5 - 6V c. Ground

Dan warna dari masing-masing kabel bergantung pada merek servo tersebut. Untuk menentukan posisi kabel signal adalah dengan mengingat kabel merah adalah (+), kabel hitam adalah (-), warna lain selain merah dan hitam adalah kabel signal.

Untuk dapat melakukan controling pada servo, kabel signal di sambung langsung pada salah satu port microcontrollerdan diset sebagai output. kemudian servo diberi suplay 5 - 6V. Sedangkan nilai sinyal yang dikirim dan sudut yang di hasilkan terlihat seperti berikut:

Gambar 2.24 Sudut pada motor servo

Motor Servo akan bekerja dengan baik jika pada bagian pin kontrolnya diberikan sinyal PWM dengan frekuensi 50Hz. Dimana pada saat sinyal dengan frekuensi 50Hz tersebut dicapai, dengan ton duty cycle 1,5ms rotor dari motor


(32)

akan berhenti tepat ditengah-tengah (sudut 90°). Pada saat Ton duty cycle yang diberikan kurang dari 1,5ms, maka rotor akan berputar kearah kiri dengan membentuk sudut yang besarnya linier terhadap besarnyaTon duty cycle dan akan bertahan diposisi tersebut (sudut 0˚). Dan sebaliknya, jika ton duty cycle yang diberikan lebih dari 1,5ms, maka rotor akan berputar kearah kanan dengan membentuk sudut yang linier pula terhadap besarnyaTon duty cycledan bertahan diposisi tersebut (sudut 180˚). Penjelasan ini dapat terlihat pada Gambar 2.25.

Gambar 2.25 Pensinyalan motor servo

Untuk motor servo berbeda dengan motor DC dan Stepper. Pada motor DC dan stepper rangkaiannya searah tanpa ada feedback. Sedangkan dalam motor servo di gunakan sistem umpan balik. Servo sendiri merupakan suatu motor yang didesain dengan sistem feedbackdimana posisi dari motor akan diinformasikan kembali ke dalam servo tersebut.

2.4.2 Prinsip Kerja Motor Servo

Prinsip kerja motor didasarkan pada peletakan suatu konduktor dalam suatu medan magnet. Jika suatu konduktor dililitkan dengan kawat berarus maka akan dibangkitkan medan magnet berputar. Kontribusi dari setiap putaran akan


(33)

merubah intensitas medan magnet yang ada dalam bidang yang tertutup kumparan. Dengan cara inilah medan magnet yang kuat terbentuk. Tenaga yang digunakan untuk mendorong fluks magnet tersebut disebut Manetomotive Force (MMF).

Fluks magnet digunakan untuk mengetahui seberapa banyak fluks pada daerah disekitar koil atau magnet permanen. Medan magnet pada motor DC servo dibangkitkan oleh magnet permanen, jadi tidak perlu tenaga untuk membuat medan magnet. Fluks madan magnet pada stator tidak dipengaruhi oleh arus armature. Oleh karena itu, kurva perbandingan antara kecepatan dengan torsi adalah linier.

Pada prinsipnya jika sebuah penghantar dilalui arus listrik I maka akan menghasilkan medan magnet disekelilingnya. Kemudian jika penghantar ini ditempatkan dalam induksi magnetik B, akan memperoleh gaya FB. Besarnya gaya yang ditimbulkan sebanding dengan arus listrik Iadan panjang penghantar L yang memotong induksi magnetik B. Atau biasa dinyatakan dengan persamaan, induksi magnetik:

= . .

Motor servo biasanya hanya bergerak mencapai sudut tertentu saja dan tidak kontinyu seperti motor DC maupun motor stepper. Walau demikian, untuk beberapa keperluan tertentu, motor servo dapat dimodifikasi agar bergerak kontinyu.


(34)

2.5 Potensiometer

Potensiometer adalah resistor tiga terminal dengan sambungan geser yang membentuk pembagi tegangan yang dapat diatur. Jika hanya dua terminal yang digunakan (salah satu terminal tetap dan terminal geser), potensiometer berperan sebagai resistor variabel atau rheostat. Potensiometer biasanya digunakan untuk mengendalikan piranti elektronik seperti pengendali suara pada penguat. Potensiometer yang dioperasikan oleh suatu mekanisme dapat digunakan sebagai transduser, misalnya sebagai sensor joystick.

Potensiometer jarang digunakan untuk mengendalikan daya tinggi (lebih dari 1 Watt) secara langsung. Potensiometer digunakan untuk menyetel taraf isyarat analog (misalnya pengendali suara pada peranti audio), dan sebagai pengendali masukan untuk sirkuit elektronik. Sebagai contoh, sebuah peredup lampu menggunakan potensiometer untuk menendalikan pensaklaran sebuah TRIAC, jadi secara tidak langsung mengendalikan kecerahan lampu.

Potensiometer yang digunakan sebagai pengendali volume kadang-kadang dilengkapi dengan sakelar yang terintegrasi, sehingga potensiometer membuka sakelar saat penyapu berada pada posisi terendah.


(35)

2.5.1 Konstruksi Potensiometer

Sebuah potensiometer biasanya dibuat dari sebuah unsur resistif semi lingkar dengan sambungan geser (penyapu). Unsur resistif, dengan terminal pada salah satu ataupun kedua ujungnya, berbentuk datar atau menyudut, dan biasanya dibuat dari grafit. Untuk potensiometer putaran tunggal, penyapu biasanya bergerak kurang dari satu putaran penuh sepanjang kontak.

Potensiometer putaran ganda, elemen resistifnya berupa pilinan dan penyapu bergerak 10, 20, atau lebih banyak putaran untuk menyelesaikan siklus. Dibandingkan putaran tunggal, potensiometer putaran ganda biasanya murah karena dibuat dari unsur resistif konvensional yang sama dengan resistor putaran tunggal, sedangkan penyapu digerakkan melalui gir cacing. Disamping grafit, bahan yang digunakan untuk membuat unsur resistif adalah kawat resistansi, plastik partikel karbon dan campuran keramik-logam yang disebut cermet.

2.5.2 Jenis-jenis Potensiometer 1. Potensiometer Logaritmik.

Potensiometer logaritmik mempunyai unsur resistif yang semakin menyempit atau dibuat dari bahan yang memiliki resistivitas bervariasi. Ini memberikan piranti yang resistansinya merupakan fungsi logaritmik terhadap sudut poros potensiometer.

Sebagian besar potensiometer log (terutama yang murah) sebenarnya tidak benar-benar logaritmik, tetapi menggunakan dua jalur resistif linier untuk meniru hukum logaritma. Potensiometer log juga dapat dibuat dengan menggunakan potensiometer linier dan resistor


(36)

eksternal. Potensiometer yang benar-benar logaritmik relatif sangat mahal. Potensiometer logaritmik sering digunakan pada peranti audio, terutama sebagai pengendali volume.

2. Potensiometer Linier.

Potensiometer linier mempunyai unsur resistif dengan penampang konstan, menghasilkan peranti dengan resistansi antara penyapu dengan salah satu terminal proportional dengan jarak antara keduanya. Potensiometer linier digunakan jika relasi proportional diinginkan antara putaran sumbu dengan rasio pembagian dari potensiometer, misalnya pengendali yang digunakan untuk menyetel titik pusat layar osiloskop.

Gambar 2.27 Potensiometer Linier

2.6 Pulse Width Modulation(PWM)

Secara umum PWM adalah sebuah cara memanipulasi lebar sinyal atau tegangan yang dinyatakan dengan pulsa dalam suatu perioda, yang akan digunakan untuk mentransfer data pada telekomunikasi ataupun mengatur tegangan sumber yang konstan untuk mendapatkan tegangan rata-rata yang berbeda. Penggunaan PWM sangat banyak, mulai dari pemodulasian data untuk telekomunikasi, pengontrolan daya atau tegangan yang masuk ke beban, regulator tegangan, audio effectdan penguatan, serta aplikasi-aplikasi lainnya.


(37)

Gambar 2.28 Sinyal PWM

Terlihat pada gambar, bahwa sinyal PWM adalah sinyal digital yang amplitudonya tetap, namun lebar pulsa yang aktif (duty cycle) per periodenya dapat diubah-ubah. Dimana periodenya adalah waktu pulsa high(1) Tonditambah waktu pulsa low (0) Toff.

= +

Duty cycle adalah lamanya pulsa high(1) Tondalam satu perioda. Jika f(t) adalah sinyal PWM, maka besar duty cycle-nya adalah:

= ∫

atau bisa diulis dengan

= + =

sehingga

=

=

Grafik dibawah ini, menggambarkan beberapa PWM dalam duty cycle yang berbeda.


(38)

(a)

(b)

(c)

Gambar 2.29 (a), (b), dan (c) beberapa PWM dalam duty cycle yang berbeda

Pada Gambar 2.29 (a) terlihat bahwa sinyal high per periodenya, sangat kecil (hanya 10%). Pada Gambar 2.29 (b) terlihat sinyal high-nya hampir sama dengan sinyal low (50%). Dan pada Gambar 2.29 (c) terlihat bahwa sinyal high-nya lebih besar dari sihigh-nyal low-high-nya (90%).

Maka jika dimisalkan tegangan input yang melalui rangkaian tersebut sebesar 10V. Maka jika digunakan PWM pada Gambar 2.29 (a), nilai tegangan output rata ratanya sebesar 1V (10% dari Vsource), jika digunakan PWM Gambar 2.29 (b), maka tegangan output rata-ratanya sebesar 5V (50%). Begitu pula jika menggunakan PWM Gambar 2.29 (c), maka tegangan output rata-ratanya sebesar 9V (90%).


(39)

2.7 Bahasa Pemrograman

Dewasa ini penggunanaan bahasa pemrograman tingkat tinggi (seperti C, Basic, Pascal, Forth dan sebagainya) semakin popular dan banyak digunakan untuk memprogram sistem mikrokontroller. Berdasarkan sifatnya yang sangat fleksibel dalam hal kelulusan pemrogram untuk mengakses perangkat keras, bahasa C merupakan bahasa pemrograman yang paling cocok dibandingkan bahsa-bahasa pemrograman tinggi lainnya.

Dikembangkan pertama kali oleh Dennis Ritchie dan Ken Thomson pada tahun 1972, bahasa C merupakan salah satu pemrograman yang paling populer untuk pengembangan program-program aplikasi yang berjalan pada system microprocessor (komputer). Karena kepopulerannya, vendor-vendor perangkat lunak kemudian mengembangkan compiler C sehingga menjadi beberapa varian berikut: Turbo C, Borland C, Microsoft C, Power C, Zortech C dan lain sebagainya. Untuk menjaga portabilitas, compiler-compiler C tersebut menerapkan ANSI C American National Standards Institute (ANSI) sebagai standar bakunya. Perbedaan antara compiler-compiler tersebut umumnya hanya terletak pada pengembangan fungsi-fungsi library serta fasilitas Integrated Development Environment(IDE) saja.

Dibandingkan dengan bahasa assembler, penggunaan bahsa C dalam pemrograman memiliki beberapa kelebihan berikut, memepercepat waktu pengembangan, bersifat modular dan terstriktur, sedangkan kelemahannya adalah kode program hasil kompilasi akan relative lebih besar (dan sebagai konsekuensinya hal ini terkadang akan mengurangi kecepatan eksekusi). Khusus pada mikrokontroller AVR, untuk mereduksi konsekuensi negatif diatas,


(40)

perusahaan atmel merancang sedemikian sehingga arsitektur AVR ini efisien dalam mendekode serta mengeksekusi instruksi-instruksi yang umum dibangkitkan oleh compiler C. Dalam kenyataannya, pengembangan arsitektur AVR ini tidak dilakukan sendiri oleh perusahaan atmel tetapi ada kerja sama dengan salah satu vendor pemasok compiler C untuk mikrokontroller tersebut, yaitu IAR C software atau pemrograman. Bagian tersebut digunakan dalam pengembangan robot dengan komponen Programmable Logic Control (PLC).

Komponen programmable adalah komponen yang terbuat dari bahan semikonduktor dan merupakan integrasi dari berbagai komponen elektronika didalamnya dan dapat deprogram ulang demi tujuan pengendalian robot. Komponen programmable digunakan oleh robot-robot yang dibuat untuk melakukan tugas-tugas beragam dan biasanya bekerja secara otomatis. Dengan demikian, robot-robot yang bersifat unprogrammable (sederhana), yang bisa bergerak hanya dengan rangkaian elektronika analog biasa, tidak memerlukan program atau software tersebut. Adapun instruksi-instruksi pada bahasa C di CodeVision AVR:

1. Header File

Adalah berkas yang berisi prototypefungsi definisi konstanta dan definisi variable. Fungsi adalah kumpulan code C yang diberi nama dan ketika nama tersebut dipanggil maka kumpulan kode tersebut dijalankan.

Contoh: stdio.h math.h


(41)

2. #include

Preprosesor directive adalah bagian yang berisi pengikutsertaan file atau berkasberkas fungsi maupun pendefinisian konstanta.

Contoh:

#include<stdio.h> #includephi 3.14 3. Void

artinya fungsi yang mengikutinya tidak memiliki nilai kembalian (return).

4. Main ( )

Fungsi main ( ) adalah fungsi yang pertama kali dijalankan ketika program dieksekusi tanpa fungsi main suatu program tidak dapat dieksekusi namun dapat dikompilasi.

5. Statement

Statement adalah instruksi atau perintah kepada suatu program ketika program itu dieksekusi untuk menjalankan suatu aksi. Setiap statement diakhiri dengan titik-koma (;).

6. Tipe Data Dasar

Tipe data yang dapat digunakan pada software code vision AVR Tabel 2.2 Tipe Data

Tipe Data Ukuran (Byte) Range Keterangan

char 1 -128 s/d +127 Karakter/string


(42)

Float 4 3.4E-38 s/d 3.4E38 Float/pecahan

Long 4

-2.147.438.648 s/d +2.147.438.647

-Double 8 1.7E-308 s/d 1.7E308 Pecahan presisi ganda

Long Double 10 3.4E-4932 s/d 3.4E4932

-7. Operator

Tabel 2.3 Daftar Operator Aritmetika

Operator Deskripsi

+ Penjumlahan (add)

- Pengurangan (substract)

* Perkalian (multiply)

/ Pembagian (divide)

% Sisa pembagian integer (modulus)

~ Negasi (negate)

Tabel 2.4 Daftar Operator Kondisi

Operator Keterangan

== Sama dengan (bukan assignment)

!= Tidak sama dengan

> Lebih besar

< Lebih kecil


(43)

<= Lebih kecil atau sama dengan

Tabel 2.5 Daftar Operator Logika

Opearator Keterangan

&& Logic AND

|| Logic OR

! Logic NOT

Tabel 2.6 Daftar Operator Bitwise

Operator Keterangan

& Bitwise AND

| Bitwise OR

^ Bitwise XOR

~ Bitwise NOT

8. Pernyataan if

Sebuah pernyataan yang dapat dipakai untuk mengambil keputusan berdasarkan suatu kondisi. Bentuk pernyataan ini ada dua macam:

If saja Else

2.8 RS232

Nama resmi dari standart interface ini adalah interface between data terminal equipment and data communication employing serial binary data


(44)

interchange, yaitu suatu terminal yang menghubungkan antara terminal data dari suatu peralatan dan peralatan komunikasi data yang yang menjalankan pertukaran data biner secara serial, oleh industri komunikasi data disebut RS-232. Sejak dipublikasikan pertama kali pada tahun 1962 , interface ini telah mengalami beberapa revisi dan sekarang yang banyak dipergunakan adalah RS-232 revisi kelima yang digunakan pada tahun 1991 dan disebut RS-232E atau EIA-232-E. Awalan “RS” pada RS-232 merupakan singkatan dari recommended standart yang berarti standar yang dianjurkan, karena selama ini dalam publikasi Electronic Industries Association (EIA) tidak pernah memiliki ketetapan hukum yang mengharuskan untuk digunakan dalam dunia komunikasi data. Ada beberapa standar sederhana yang dikembangkan sendiri oleh pembuat peralatan elektronik yang mungkin dapat diikuti, agar secara umum ada kecocokan. Standar lain yang menyangkut referensi aspek fungsi dan prosedur interface secara mekanikal dan elektrikal yang dipublikasikan oleh ITU-T pada tahun 1993 adalah standar V.25 dan V.28, sehingga RS-232E sebenarnya mencakup empat aspek, yaitu :

a. Mechanical : ISO21110 b. Electrical : V.28

c. Functional : V.24 d. Prosedural : V.24

Terdapat beberapa macam cara untuk menerapkan interfacedata biner pada komunikasi secara serial, salah satunya adalah RS-232 yang merupakan salah satu dari standart yang dipilih dan sekarang telah dipakai secara luas dan dalam komunikasi data umumnya digunakan untuk menghubungkan Data Terminal Equipment (DTE) ke Data Communication Equipment (DCE) yang berupa


(45)

peralatan sistem komunikasi analog. Protokol standar yang mengatur komunikasi melalui serial port disebut Recommended Standard-232 (RS-232) yang dikembangkan oleh EIA.

Interfacing RS-232 menggunakan komunikasi asyncronous di mana sinyal clocktidak dikirimkan bersamaan dengan data. Setiap word data disinkronisasikan menggunakan sebuah start bit dan sebuah stopbit. Jadi, sebuah framedata terdiri dari sebuah start bit, diikuti bit-bit data dan diakhiri dengan stop bit. Jumlah bit data yang digunakan dalam komunikasi serial adalah 8 bit.

Gambar 2.30 Konektor RS232 atau DB9

2.8.1 Karakteristik Sinyal Serial Port

Standar sinyal serial RS232 memiliki ketentuan level tegangan sebagai berikut:

1. Logika ‘1’ disebut ‘mark’ terletak antara -3 volt hingga -25 volt. 2. Logika ‘0’ disebut ‘space’ terletak antara +3 volt hingga +25 volt.

3. Daerah tegangan antara -3 volt hingga +3 volt adalah invalid level, yaitu daerah tegangan yang tidak memiliki level logika pasti sehingga harus dihindari. Demikian juga level tegangan lebih negatif dari -25 volt atau lebih positif dari +25 volt juga harus dihindari karena dapat merusak line driverpada saluran RS232.


(46)

2.8.2 Konfigurasi Serial Port

Gambar 2.31 adalah gambar konektor port serial DB9. Pada komputer IBM PC Compatibelbiasanya kita dapat menemukan dua konektor DB9 yang biasanya dinamakan COM1 dan COM2.

Gambar 2.31 Konektor port serial DB9

Tabel 2.7 Konfigurasi pin dan nama sinyal konektor serial DB9 No.

Pin

Nama Sinyal Direction Keterangan

1 DCD In

Data Carrier Detect/Received Line Signal Detect

2 RxD In Receive Data

3 TxD Out Transmit Data

4 DTR Out Data Terminal Ready

5 GND - Ground

6 DSR In Data Set Ready

7 RTS Out Request To Send

8 CTS In Clear To Send


(47)

Keterangan mengenai fungsi saluran RS232 pada konektor DB9 adalah sebagai berikut:

Receive Line Signal Detect, dengan saluran ini DCE memberitahukan ke DTE bahwa pada terminal masukkan ada data masuk.

Receive Data, digunakan DTE menerima data dari DCE.Transmit Data, digunakan DTE mengirimkan data ke DCE.

Data Terminal Ready, pada saluran ini DTE memberitahukan kesiapan terminalnya.

Signal Ground, saluran ground.

Ring Indicator, pada saluran ini DCE memberitahukan ke DTE bahwa sebuah stasiun menghendaki berhubungan dengannya.

Clear To Send, dengan saluran ini DCE memberitahukan bahwa DTE boleh mulai mengirim data.

Request To Send, dengan saluran ini DCE diminta mengirim data oleh DTE.

DCE Ready, sinyal aktif pada saluran ini menunjukkan bahwa DCE sudah siap.


(48)

BAB III

PERANCANGAN DAN PEMBUATAN SISTEM

Pada bab ini akan membahas tentang cara perencanaan dan pembuatan perangkat keras maupun perangkat lunak yang meliputi:

3.1 Konstruksi Fisik Pendulum Terbalik

Konstruksi fisik pada pendulum terbalik didesain dengan tujuan memperoleh kestabilan. Sehingga hasil konstruksi fisiknya harus menyusaikan dengan tujuan tersebut. Maka dari itu, dibutuhkan sebuah batang stick sebagai pendulumnya, yang akan bergerak jatuh kekanan maupun kekiri hingga memperoleh titik kestabilannya atau sesuai dengan setpoint yang telah disetting atau berada pada posisi tengah.

Gambar 3.1 Model rancangan pendulum terbalik

5.5

39

Servo


(49)

Gambar 3.2 (a) Dudukan motor servo tampak samping, (b) Dudukan motor servo tampak atas, (c) Batang stick

Gambar 3.3 Konstruksi fisik pendulum terbalik

(a) (b)


(50)

3.2 Rangkaian Elektronika Pendulum Terbalik

Hal pertama yang akan dilakukan dalam perancangan untuk pendulum terbalik adalah membuat sistem blok diagram. Dimana blok-bloknya memiliki fungsi masing-masing. Gambar 3.4 menunjukkan suatu blok diagram sistem.

Gambar 3.4 Blok diagram sistem pendulum terbalik

Dari Gambar 3.4 diatas, dijelaskan bahwa inputannya berupa setpoint. Agar pendulum dalam keadaan seimbang setpoint yang diberikan adalah 0. Nilai θ ini kemudian akan dikalikan dengan masukan PID yaitu dengan mengeset nilai Kp, Ki dan Kd secara trial and error. Dan mengatur PWM agar dapat menggerakkan motor servo, karena menggunakan motor servo maka dalam tugas akhir ini tidak membutuhkan sebuah driver motor seperti pada penggunaan motor DC maupun motor stepper. Dengan microcontroller ATmega8, maka untuk pengaturan PWM pada motor servo dapat diatur langsung ke salah satu port yaitu dengan menghubungkan input data signal motor servo. Motor servo ini akan

PID KP,KI,KD Set Point

ADC

Pendulum

Potensiometer Motor Servo

Microcontroller ATmega8


(51)

menggerakkan pendulum sesuai data yang telah dieksekusi. Lalu sensor yang digunakan adalah potensiometer yang bertindak dalam mengatur posisi atau letak pendulum. Keluaran yang berupa tegangan dari potensiometer akan dihubungkan ke salah satu port Analog to Digital Converter (ADC) yang terletak dalam microcontroller ATmega8. Proses ini akan terus berlangsung sampai pendulum mencapai titik kestabilan atau keseimbangannya sesuai dengan sudut yang diinginkan.

Pada gambar 3.5 menggambarkan flow chart dari perancangan perangkat keras untuk sistem realisasi pengendali PID pada pendulum terbalik.


(52)

Gambar 3.5 Flowchartsystem Aktifkan Sensor

Proses hitung error baru

Hitung sinyal kendali (menjumlahkan semua pengendali)

Menjumlahkan parameter PID controller

KP,Ki,Kd

Mengeset error baru = error lama

Start

Insialisasi set point = 0


(53)

3.3 Rangkaian Potensiometer Sebagai Sensor

Sensor yang digunakan dalam tugas akhir ini adalah potensiometer yang bertindak sebagai sensor dalam menentukan posisi pendulum. Potensiometer memiliki tiga kaki yaitu, kaki satu dihubungkan ke tegangan 5 Volt, kaki dua dihubungkan ke ground dan kaki tiga yang dihubungkan ke pin ADC dalam mikrokontroller atau bisa dikatakan kaki ini sebagai sinyal keluaran. Karena potensiometer memiliki banyak noise maka untuk meredam noisenya maka dibutuhkan sebuah rangkaian Low Pass Filter (LPF) yang terdiri dari sebuah resistor 4K7 Ω yang diseri dengan sebuah kapasitor 0,1 µF. Rangkaian ini kemudian dihubungkan ke kaki sinyal keluaran potensiometer yang akan terhubung ke salah satu pin ADC pada mikrokontroller untuk dibaca tegangannya.

Gambar 3.6 Rangkaian potensiometer ke mikro

3.4 Rangkaian Adaptor

Adaptor ini memiliki keluaran sebesar 12 Volt yang teregulasi dengan baik. Jika komponen ini terpasang sesuai dengan skema rangkaian maka adaptor ini aman pada beban hingga 5A. Jika menginginkan adaptor ini mampu memberikan aliran yang lebih besar, maka dapat menambahkan transistor (2N3055) dan mengganti dioda bridge dengan dioda yang memiliki arus yang lebih tinggi.


(54)

Gambar 3.7 Rangkaian adaptor

3.5 Rangkaian Sistem Minimun, ADC Dan Motor Servo

Dalam Gambar 3.8 dibawah ini menunjukkan rangkaian sistem minimum, rangkaian motor servo dan rangkaian ADCnya. Dalam rangkaian sistem minimum disini menggunakan kristal sebesar Crystal frequency 7.3728 MHz. Selanjutnya terdapat 6 susunan pin-pin ADC. Setiap ADC terdiri dari 3 pin. Masing-masing pin adalah VCC, GND, dan Input ADC. Ketika membahas fitur ini, maka kita akan menggunakan potensiometer sebagai sensor analog yang tegangannya akan dikonversi ke dalam sinyal digital. Untuk menggunakan PWM disediakan 2 PORT khusus yang bernama SERVO1 dan SERVO2 sebagaimana yang terdapat pada development board. Karena dalam tugas akhir ini hanya menggunakan satu motor servo, maka bisa dihubungkan ke salah satunya saja. Motor servo ini tidak membutuhkan sebuah driver motor sehingga input data PWMnya bisa langsung dihubungkan ke PB1 untuk Servo1 atau PB2 untuk Servo2.


(55)

Gambar 3.8 Rangkaian sistem minimum, ADC dan motor servo

3.6 Program Pendulum Terbalik Pada WinAVR /********************************************* This program was produced by the

CodeWizardAVR V1.24.0 Standard Automatic Program Generator

© Copyright 1998-2003 HP InfoTech s.r.l. http://www.hpinfotech.ro

e-mail:office@hpinfotech.ro Project :

Version :

Date : 6/6/2011

Author : Talitha Reyhan Company : Comments:

Chip type : ATmega8 Program type : Application


(56)

Clock frequency : 7.372800 MHz Memory model : Small

External SRAM size : 0 Data Stack size : 256

*********************************************/ #include <mega8.h>

#include <stdio.h> #include <stdlib.h> #definetrue 1 #define false 0

#definemaxPWM 1843 #define minPWM 921 #define midPWM 1382 #define ADC_VREF_TYPE 0x40 //Variabel-variabel

float SetPoint; float Posisi; int PosADC; float ErrorBaru; float ErrorLama; float Kp;

float Ki float Kd; float BagProp; float BagInteg; float BagDer; float FreqSampling; int SinyalKendali; bit Sampling;

void SaturasiPWM(void); void BacaPosisi(void);

//Fungsi Interrupt Timer 0 yang terjadi setiap 20 mS// // Timer 1 overflow interrupt service routine

interrupt [TIM1_OVF] void timer1_ovf_isr(void) {


(57)

Sampling = true; }

//Fungsi membaca ADC//

unsigned int read_adc(unsigned char adc_input){ ADMUX=adc_input|ADC_VREF_TYPE; ADCSRA|=0x40;

while ((ADCSRA & 0x10)==0); ADCSRA|=0x10;

return ADCW; }

void main(void) {

Sampling = false; FreqSampling = 50; Kp = 50;

Ki = 0.01; Kd = 0.1;

SinyalKendali = midPWM; // Input/Output Ports initialization // Port B initialization

PORTB=0x00; DDRB=0x02;

//Inisialisasi Timer 1 untuk menjadi PWM // TCCR1A=0x82;

TCCR1B=0x1A; TCNT1H=0x00; TCNT1L=0x00; ICR1H =0x48; ICR1L =0x00;

OCR1A =1382; //Nilai tengah servo (1.5 mS lebar pulsa) // Timer(s)/Counter(s) Interrupt(s) initialization

TIMSK=0x04;

//Inisialisasi Komunikasi Serial// // USART initialization


(58)

UCSRA=0x00; UCSRB=0x18; UCSRC=0x86; UBRRH=0x00; UBRRL=0x03;

// Analog Comparator initialization // Analog Comparator: Off

// Analog Comparator Input Capture by Timer/Counter 1: Off // Analog Comparator Output: Off

ACSR=0x80; SFIOR=0x00; //Inisialisasi ADC//

ADMUX=ADC_VREF_TYPE; ADCSRA=0x86;

SFIOR&=0xEF; SFIOR|=0x10;

// Global enable interrupts #asm("sei")

while (1) {

if(Sampling){ SetPoint = 516; BacaPosisi();

ErrorBaru = SetPoint - Posisi; BagProp = Kp*ErrorBaru;

BagInteg = Ki*(ErrorLama + ErrorBaru)*1/FreqSampling; BagDer = Kd*(ErrorBaru - ErrorLama)*FreqSampling; ErrorLama = ErrorBaru;

SinyalKendali = SinyalKendali + (int)BagProp + (int)BagInteg + (int)BagDer;

SaturasiPWM();

OCR1A = SinyalKendali; printf("$%dx10\r\n",PosADC); Sampling = false;

} }; }


(59)

void BacaPosisi(void){ PosADC = read_adc(0); Posisi = (float)PosADC; }

//Fungsi membatasi nilai PWM void SaturasiPWM(void){

if(SinyalKendali > maxPWM) SinyalKendali = maxPWM; else if(SinyalKendali < minPWM) SinyalKendali = minPWM; }


(60)

60

PENGUJIAN DAN ANALISA

Pengujian dan analisa sistem merupakan tahap akhir dari realisasi pengendali PID pada pendulum terbalik menggunakan mikrokontroller ATmega8 agar dapat dilinearkan disekitar titik kesetimbangan. Tahap ini merupakan tahap yang paling penting untuk mengetahui tingkat keberhasilan, keunggulan dan kekurangan dari sistem tersebut. Dengan begitu kita dapat mengetahui sistem yang telah direalisasikan menghasilkan keluaran yang diinginkan. Pengujian dan analisa yang dilakukan meliputi sistem secara keseluruhan.

4.1. Model Sistem

Pertama-tama hal yang dilakukan dalam tugas akhir ini adalah mencari model dinamik sistem pendulum terbalik berupa transfer function. Pada dasarnya ada dua metode untuk mencari model dinamik, yang pertama adalah dengan menurunkan persamaan sistem pendulum terbalik yaitu melakukan pengukuran fisik pendulum. Yang kedua, dengan cara identifikasi yaitu tidak melakukan pengukuran.

Dalam hal ini, metode identifikasi yang digunakan penulis untuk mencari transfer function yaitu mendekati transfer function dari contoh kasus untuk memperoleh fungsi transfer baru yang akan digunakan dalam sistem ini, caranya adalah dengan merekam input dan outpunya saja.

This page was created using NitroPDF trial software. To purchase, go to http://www.nitropdf.com/


(61)

4.2. Model SistemOpen Loop

Pada bagian sebelumnya telah dijelaskan bahwa pendulum terbalik merupakan sistem dinamik yang tidak stabil. Pendulum terbalik yang belum dilengkapi dengan pengendali (openloop) akan berperilaku tidak stabil apabila diberikan input.

Tabel open loop dibawah ini adalah hasil data akuisisi yang dibaca oleh ADC dengan memberikan gangguan, serta merekam outputnya. Dimana sampling ratenya adalah 50Hz.

Tabel 4.1 Open loopsistem Time Posisi (bit)

0 0

0.02 1

0.04 1

0.06 1

0.08 1

0.1 1

0.12 1

0.14 1

0.16 1

0.18 1

0.2 1

0.22 1

0.24 2

0.26 2

0.28 2

0.3 2

0.32 2

0.34 2

0.36 3

0.38 3

0.4 3

0.42 3

0.44 4

0.46 4

This page was created using NitroPDF trial software. To purchase, go to http://www.nitropdf.com/


(62)

0.48 5

0.5 5

0.52 6

0.54 6

0.56 7

0.58 8

0.6 9

0.62 10

0.64 11

0.66 13

0.68 14

0.7 16

0.72 18

0.74 20

0.76 22

0.78 24

0.8 26

0.82 29

0.84 33

0.86 36

0.88 39

0.9 43

0.92 47

0.94 51

0.96 55

0.98 59

1 63

Dibawah ini adalah hasil data respon sistem pendulum terbalik yang di gambarkan dalam kurva. Dari gambar dapat dilihat bahwa respon pendulum terbalik tidak stabil. Karena respon posisi pendulum terhadap waktu yang dibaca oleh pendulum semakin bertambah.

This page was created using NitroPDF trial software. To purchase, go to http://www.nitropdf.com/


(63)

Gambar 4.1 Respon open loop sistem pendulum terbalik

4.3. Model SistemClosedloop

Model sistem closedloop adalah model sistem open loop yang telah ditambahkan controller. Jika pada open loop respon pendulum terbalik belum stabil, maka pada closedloop ini responnya akan stabil terhadap input yang diberikan. Fungsi transfer yang telah diperoleh, digunakan dalam blok simulink closedloop system yang dapat dilihat pada Gambar 4.2. Pada gambar ini terdapat tiga gain controller yaitu Kp, Ki, dan Kd. Penentuan nilai dari masing-masing gaindilakukan berdasarkan trial and error. Nilai dari gain-gain yang dipilih pada mode ini adalah Kp = 50 dan Kd = 0,2. Nilai gain-gain ini akan diimplementasikan kedalam mikrokontroller.

0 10 20 30 40 50 60 70 0 0 .0 6 0 .1 2 0 .1 8 0 .2 4 0 .3 0 .3 6 0 .4 2 0 .4 8 0 .5 4 0 .6 0 .6 6 0 .7 2 0 .7 8 0 .8 4 0 .9 0 .9 6 P o s i s i Time

This page was created using NitroPDF trial software. To purchase, go to http://www.nitropdf.com/


(64)

Gambar 4. 2 Blok simulink closedloop system

Hasil dari simulasi diagram blok Gambar 4.2 dapat dilihat pada Gambar 4.3. Pada gambar ini menunjukkan bahwa respon pendulum terbalik setelah diberikan controller maka sistemnya akan stabil.

Gambar 4.3 Respon pendulum terbalik

This page was created using NitroPDF trial software. To purchase, go to http://www.nitropdf.com/


(65)

Walaupun sistem pendulum terbalik telah menghasilkan respon yang stabil, namun pemberian input yang relatif besar atau diberi gangguan akan mempengaruhi kerja dari pendulum tersebut.

4.4. Pengujian Dengan Mengubah-ubah Gain

Pada pengujian ini, diambil beberapa sample untuk menghasilkan respon sistem pendulum yang stabil. Sebelumnya telah dijelaskan bahwa nilai gain Kp dan Kd disini sangat berpengaruh. Dalam hal ini gerakan pendulum terbalik akan dibatasi agar tidak mengalami simpangan melebihi kondisi yang diinginkan.

4.4.1. Mempertahankan Gain Kp, Ki Tetap & Kd Diubah-ubah

a. Hasil pengujian simulasi respon pendulum dengan nilai Kp = 50, Ki = 0,01 dan Kd = 0,1.

Tabel 4.2 Hasil pengujian pendulum terbalik

Time Potition (bit) PWM Potition

(Deg/bit) ADC

0.02 0 1382 0 1000000100

0.04 -2 1492 -7,02 1000000010

0.06 -1 1537 -3,51 1000000011

0.08 -1 1587 -3,51 1000000011

0.10 -3 1747 -10,53 1000000001

0.12 -3 1843 -10,53 1000000001

0.14 -2 1843 -7,02 1000000000

0.16 -1 1843 -3,51 1000000011

0.18 -1 1843 -3,51 1000000011

0.20 0 1838 0 1000000100

0.22 0 1838 0 1000000100

0.24 1 1783 3,51 1000000101

0.26 1 1733 3,51 1000000101

0.28 -1 1793 -3,51 1000000011

0.30 0 1788 0 1000000100

0.32 1 1733 3,51 1000000101

This page was created using NitroPDF trial software. To purchase, go to http://www.nitropdf.com/


(66)

0.34 1 1683 3,51 1000000101

0.36 0 1688 0 1000000100

0.38 0 1688 0 1000000100

0.40 1 1633 3,51 1000000101

0.42 0 1638 0 1000000100

0.44 0 1638 0 1000000100

0.46 0 1638 0 1000000100

0.48 0 1638 0 1000000100

0.50 0 1638 0 1000000100

0.52 0 1638 0 1000000100

0.54 0 1638 0 1000000100

Dibawah ini akan memperlihatkan respon pendulum terbalik dan respon terhadap PWM

Gambar 4.4 Respon posisi pendulum Kp = 50, Ki = 0,01 & Kd = 0.1 -12

-10 -8 -6 -4 -2 0 2 4 6

0.02 0.06 0.10 0.14 0.18 0.22 0.26 0.30 0.34 0.38 0.42 0.46 0.50 0.54

P

o

ti

ti

o

n

(

D

eg

/b

it

)

Time (s) Potition Vs Time

Settling time

Steady state

Overshoot

This page was created using NitroPDF trial software. To purchase, go to http://www.nitropdf.com/


(67)

Gambar 4.5 Respon PWM Kp = 50, Ki = 0,01 & Kd = 0,1

Dari hasil Gambar 4.4 dan Gambar 4.5 terlihat bahwa pendulum terbalik mudah mencapai titik stabilnya, dimana setpoint yang diberikan adalah 0 (nol). Jelas terlihat pada Gambar 4.4 nilai overshootnya sebesar -10,53 Deg/bit, settling timenya pun tidak terlalu besar dan waktu untuk mencapai steady statenya di detik 0,42. Dengan gain Kp, Ki dan Kd yang diberikan memperlihatkan respon pendulum terbalik sangat baik. Tetapi kita akan membandingkannya dengan gain Kp, Ki dan Kd lainnya.

0 200 400 600 800 1000 1200 1400 1600 1800 2000

0.02 0.06 0.10 0.14 0.18 0.22 0.26 0.30 0.34 0.38 0.42 0.46 0.50 0.54

P

W

M

Time (s) PWM Vs Time

This page was created using NitroPDF trial software. To purchase, go to http://www.nitropdf.com/


(68)

4.4.2. Mempertahankan Gain Kp, Kd Tetap & Ki Diubah-ubah

a. Hasil pengujian simulasi respon pendulum dengan nilai Kp = 50, Ki = 0,01 dan Kd = 0,2.

Tabel 4.3 Hasil pengujian pendulum terbalik Time Potition (Bit) PWM Potition

(Deg/bit) ADC

0.02 0 1382 0 1000000100

0.04 -1 1442 -3,51 1000000011

0.06 -1 1492 -3,51 1000000011

0.08 -1 1542 -3,51 1000000011

0.10 -2 1652 -7,02 1000000010

0.12 -2 1752 -7,02 1000000010

0.14 -4 1843 -14,04 1000000000

0.16 -3 1843 -10,53 1000000001

0.18 -3 1843 -10,53 1000000001

0.20 -3 1843 -10,53 1000000001

0.22 -2 1843 -7,02 1000000010

0.24 -2 1843 -7,02 1000000010

0.26 -1 1843 -3,51 1000000011

0.28 -1 1843 -3,51 1000000011

0.30 -2 1843 -7,02 1000000010

0.32 -2 1843 -7,02 1000000010

0.34 -3 1843 -10,53 1000000001

0.36 -3 1843 -10,53 1000000001

0.38 -3 1843 -10,53 1000000001

0.40 -3 1843 -10,53 1000000001

0.42 -3 1843 -10,53 1000000001

0.44 -3 1843 -10,53 1000000001

0.46 -3 1843 -10,53 1000000001

0.48 -3 1843 -10,53 1000000001

0.50 -3 1843 -10,53 1000000001

0.52 -3 1843 -10,53 1000000001

0.54 -2 1843 -7,02 1000000010

0.56 -2 1843 -7,02 1000000010

0.58 -2 1843 -7,02 1000000010

0.60 -2 1843 -7,02 1000000010

0.62 -2 1843 -7,02 1000000010

0.64 -1 1843 -3,51 1000000011

0.66 -1 1843 -3,51 1000000011

This page was created using NitroPDF trial software. To purchase, go to http://www.nitropdf.com/


(69)

0.68 -1 1843 -3,51 1000000011

0.7 -1 1843 -3,51 1000000011

0.72 -1 1843 -3,51 1000000011

0.74 -1 1843 -3,51 1000000011

0.76 0 1833 0 1000000100

0.78 0 1833 0 1000000100

0.80 0 1833 0 1000000100

0.82 0 1833 0 1000000100

0.84 0 1833 0 1000000100

0.86 0 1833 0 1000000100

0.88 0 1833 0 1000000100

0.90 0 1833 0 1000000100

0.92 0 1833 0 1000000100

0.94 0 1833 0 1000000100

0.96 0 1833 0 1000000100

0.98 0 1833 0 1000000100

1.00 0 1833 0 1000000100

Respon posisi pendulum dapat dilihat pada Gambar 4.6 dan respon PWM dapat dilihat pada Gambar 4.7.

Gambar 4.6 Respon posisi pendulum Kp = 50, Ki = 0,01 & Kd = 0,2 -16 -14 -12 -10 -8 -6 -4 -2 0 2 0 .0 2 0 .0 6 0 .1 0 0 .1 4 0 .1 8 0 .2 2 0 .2 6 0 .3 0 0 .3 4 0 .3 8 0 .4 2 0 .4 6 0 .5 0 0 .5 4 0 .5 8 0 .6 2 0 .6 6 0 .7 0 .7 4 0 .7 8 0 .8 2 0 .8 6 0 .9 0 0 .9 4 0 .9 8 P o ti ti o n ( D eg /b it ) Time (s) Potition Vs Time

Overshoot

Settling time

Steady state

This page was created using NitroPDF trial software. To purchase, go to http://www.nitropdf.com/


(70)

Gambar 4.7 Respon PWM Kp = 50, Ki = 0,01 & Kd = 0,2

Dari hasil pengujian diatas menunjukkan bahwa Gambar 4.6 memiliki banyak simpangan dimana overshootnya sangat besar yaitu -14,04 Deg/bit. Dan waktu untuk mencapai steady statenya sangat lama yaitu pada 0,76s. Terlihat pendulum sulit mencapai posisi stabilnya. Dengan nilai Kp, Ki dan Kd ini, respon pendulum terbalik tidak terlalu baik dibandingkan dengan Kp = 50, Ki = 0,01 dan Kd = 0,1. Sehingga kita akan membandingkan dengan nilai yang lain.

0 200 400 600 800 1000 1200 1400 1600 1800 2000 0 .0 2 0 .0 6 0 .1 0 0 .1 4 0 .1 8 0 .2 2 0 .2 6 0 .3 0 0 .3 4 0 .3 8 0 .4 2 0 .4 6 0 .5 0 0 .5 4 0 .5 8 0 .6 2 0 .6 6 0 .7 0 .7 4 0 .7 8 0 .8 2 0 .8 6 0 .9 0 0 .9 4 0 .9 8 P W M Time (s) PWM Vs Time

This page was created using NitroPDF trial software. To purchase, go to http://www.nitropdf.com/


(71)

b. Hasil Pengujian simulasi respon pendulum dengan nilai Kp = 50, Ki = 0,02 dan Kd = 0,2.

Tabel 4.4 Hasil pengujian pendulum terbalik

Time Potition

(Bit) PWM

Potition

(Deg/bit) ADC

0.02 0 1633 0 1000000100

0.04 0 1633 0 1000000100

0.06 0 1633 0 1000000100

0.08 0 1633 0 1000000100

0.10 -1 1442 -3,51 1000000011

0.12 -2 1552 -7,02 1000000010

0.14 -2 1652 -7,02 1000000010

0.16 -4 1843 -14,04 1000000000

0.18 -4 1843 -14,04 1000000000

0.20 -3 1843 -10,53 1000000001

0.22 -3 1843 -10,53 1000000001

0.24 -3 1843 -10,53 1000000001

0.26 -2 1843 -7,02 1000000010

0.28 -2 1843 -7,02 1000000010

0.30 -2 1843 -7,02 1000000010

0.32 -1 1843 -3,51 1000000011

0.34 -1 1843 -3,51 1000000011

0.36 0 1833 0 1000000100

0.38 0 1833 0 1000000100

0.40 1 1773 3,51 1000000101

0.42 1 1723 3,51 1000000101

0.44 2 1613 7,02 1000000110

0.46 1 1573 3,51 1000000101

0.48 1 1523 3,51 1000000101

0.50 1 1473 3,51 1000000101

0.52 1 1423 3,51 1000000101

0.54 0 1433 0 1000000100

0.56 0 1433 0 1000000100

0.58 0 1433 0 1000000100

0.60 -1 1493 -3,51 1000000011

0.62 -1 1543 -3,51 1000000011

0.64 -4 1772 -14,04 1000000000

0.66 -2 1843 -7,02 1000000010

0.68 -3 1843 -10,53 1000000001

0.70 -3 1843 -10,53 1000000001

This page was created using NitroPDF trial software. To purchase, go to http://www.nitropdf.com/


(72)

0.72 -3 1843 -10,53 1000000001

0.74 -2 1843 -7,02 1000000010

0.76 -2 1843 -7,02 1000000010

0.78 -2 1843 -7,02 1000000010

0.80 -1 1843 -3,51 1000000011

0.82 0 1833 0 1000000100

0.84 1 1773 3,51 1000000101

0.86 1 1723 3,51 1000000101

0.88 0 1733 0 1000000100

0.90 1 1673 3,51 1000000101

0.92 2 1563 7,02 1000000110

0.94 1 1523 3,51 1000000101

0.96 0 1533 0 1000000100

0.98 0 1533 0 1000000100

1.00 0 1533 0 1000000100

Respon posisi pendulum dapat dilihat pada Gambar 4.8 dan respon PWM dapat dilihat pada Gambar 4.9.

Gambar 4.8 Respon posisi pendulum Kp = 50, Ki = 0,02 & Kd = 0,2 -20 -15 -10 -5 0 5 10 0 .0 2 0 .0 6 0 .1 0 0 .1 4 0 .1 8 0 .2 2 0 .2 6 0 .3 0 0 .3 4 0 .3 8 0 .4 2 0 .4 6 0 .5 0 0 .5 4 0 .5 8 0 .6 2 0 .6 6 0 .7 0 0 .7 4 0 .7 8 0 .8 2 0 .8 6 0 .9 0 0 .9 4 0 .9 8 P o ti ti o n ( D eg /b it ) Time (s) Potition Vs Time

Settling Time

Steady state

Overshoot

This page was created using NitroPDF trial software. To purchase, go to http://www.nitropdf.com/


(73)

Gambar 4.9 Respon PWM Kp = 50, Ki = 0,02 & Kd = 0,2

Respon pendulum terbalik yang terlihat pada Gambar 4.8, overshoot yang terlalu besar, settling time yang sangat lama dan waktu untuk mencapai steady statenya yaitu pada waktu 0,96s. Sehingga dengan Kp, Ki dan Kd yang diberikan respon pendulum terbalik sulit mencapai posisi stabil yang diinginkan, dibandingkan dengan harga Kp = 50, Ki = 0,01 dan Kd = 0,1. Kita akan membandingkan dengan nilai yang lain untuk melihat respon pendulum terbalik yang lebih baik.

0 200 400 600 800 1000 1200 1400 1600 1800 2000

P

W

M

Time (s) PWM Vs Time

This page was created using NitroPDF trial software. To purchase, go to http://www.nitropdf.com/


(74)

4.4.3. Mempertahankan Gain Kd, Ki Tetap & Kp Diubah-ubah

a. Hasil pengujian simulasi respon pendulum dengan nilai Kp = 10, Ki = 0,01 dan Kd = 0,2.

Tabel 4.5 Hasil pengujian pendulum terbalik Time Potition ADC

(Bit) PWM

Potition

(Deg/bit) ADC

0.02 0 1382 0 1000000100

0.04 0 1382 0 1000000100

0.06 -2 1422 -7,02 1000000010

0.08 -2 1442 -7,02 1000000010

0.10 -1 1442 -3,51 1000000011

0.12 -1 1452 -3,51 1000000011

0.14 0 1442 0 1000000100

0.16 0 1442 0 1000000100

0.18 1 1422 3,51 1000000101

0.20 1 1412 3,51 1000000101

0.22 1 1402 3,51 1000000101

0.24 2 1372 7,02 1000000110

0.26 3 1332 10,53 1000000111

0.28 2 1322 7,02 1000000110

0.30 2 1302 7,02 1000000110

0.32 3 1262 10,53 1000000111

0.34 3 1232 10,53 1000000111

0.36 3 1202 10,53 1000000111

0.38 2 1192 7,02 1000000110

0.40 2 1172 7,02 1000000110

0.42 2 1152 7,02 1000000110

0.44 1 1152 3,51 1000000101

0.46 1 1142 3,51 1000000101

0.48 1 1132 3,51 1000000101

0.50 1 1122 3,51 1000000101

0.52 1 1112 3,51 1000000101

0.54 1 1102 3,51 1000000101

0.56 1 1092 3,51 1000000101

0.58 1 1082 3,51 1000000101

0.60 0 1092 0 1000000100

0.62 0 1092 0 1000000100

0.64 0 1092 0 1000000100

0.66 0 1092 0 1000000100

This page was created using NitroPDF trial software. To purchase, go to http://www.nitropdf.com/


(1)

2.1.3 Kestabilan Sistem……… 8

2.2 Pengontrol Proportional Integral Derivative (PID)……… 12

2.2.1 Teori Pengontrol Proportional Integral Derivative (PID).. 13

2.2.2 Kontroller PID………. 21

2.3 Mikrokontroller AVR ATmega8……….. 22

2.3.1 Konfigurasi Pin AVR ATmega8……….. 23

2.3.2 Status Register AVR ATmega8………... 24

2.3.3 Memori Program ATmega8………. 28

2.3.4 SRAM Data Memori……… 29

2.4 Motor Servo………. 30

2.4.1 Jenis-jenis Motor Servo………... 30

2.4.2 Prinsip Kerja Motor Servo………... 32

2.5 Potensiometer………... 34

2.5.1 Konstruksi Potensiometer……… 35

2.5.2 Jenis-jenis Potensiometer……….... 35

2.6 Pulse Width Modulation(PWM)………. 36

2.7 Bahasa Pemrograman……….. 39

2.8 RS232……….. 43

2.8.1 Karakteristik Sinyal Serial Port………... 45

2.8.2 Konfigurasi Serial Port……… 46

BAB III PERANCANGAN DAN PEMBUATAN SISTEM………. 48

3.1 Konstruksi Fisik Pendulum Terbalik……….. 48


(2)

3.3 Rangkaian Potensiometer Sebagai Sensor……….. 53

3.4 Rangkaian Adaptor……….. 53

3.5 Rangkaian Sistem Minimun, ADC Dan Motor Servo…………... 54

3.6 Program Pada Pendulum Terbalik………... 55

BAB IV PENGUJIAN DAN ANALISA………. 60

4.1 Mosel Sistem……… 60

4.2 Model Sistem Open Loop……….... 61

4.3 Model SistemClosedloop………... 63

4.4 Pengujian Dengan Mengubah-ubah Gain……….. 65

4.4.1 Mempertahankan Gain Kp, Ki Tetap & Kd Diubah-ubah 65 4.4.2 Mempertahankan Gain Kp, Kd Tetap & Ki Diubah-ubah 68 4.4.3 Mempertahankan Gain Ki, Kd Tetap & Kp Diubah-ubah 74 BAB V PENUTUP……….. 80

5.1. Kesimpulan………. 80

5.2. Saran……… 80

DAFTAR PUSTAKA LAMPIRAN


(3)

DAFTAR GAMBAR

Gambar 2.1 Desain pendulum terbalik……….. 5

Gambar 2.2 Dua bangun diagram sistem kereta pendulum……….. 6

Gambar 2.3 Respon letak pole dan zero sistem……… 10

Gambar 2.4 Respon sistem saat mencapai steady state………. 10

Gambar 2.5 Respon letak pole dan zero pada bidang kompleks……….. 11

Gambar 2.6 Respon waktu step system……….. 11

Gambar 2.7 Diagram blok pengontrol PID……… 13

Gambar 2.8 Diagram blok pengendali proportional……….. 14

Gambar 2.9 Proportional banddari proportional controller tergantung pada penguatan... 15

Gambar 2.10 Kurva sinyal kesalahan e(t)terhadap tdan kurva u(t)terhadap tpada pembangkit kesalahan nol……….. 17

Gambar 2.11 Blok diagram hubungan antara besaran kesalahan dengan keluaran integral controller... 17

Gambar 2.12 Perubahan keluaran sebagai akibat penguatan dan kesalahan 17 Gambar 2.13 Blok diagram kontroller derivative……… 18

Gambar 2.14 Kurva waktu hubungan input-output kontroller derivative.. . 19

Gambar 2.15 Blok diagram kontroller PID analog... 21

Gambar 2.16 Hubungan dalam fungsi waktu antara sinyal keluaran dengan masukan untuk kontroller PID... 22

Gambar 2.17 Atmel AVR jenis ATmega8………... 23


(4)

Gambar 2.19 Status register ATmega8……… 26

Gambar 2.20 Memori program AVR ATmega8……….. 28

Gambar 2.21 Memori data AVR ATmega8………. 29

Gambar 2.22 Motor servo……… 30

Gambar 2.23 Pin out pada motor servo……….. 31

Gambar 2.24 Sudut pada motor servo………. 31

Gambar 2.25 Pensinyalan motor servo………... 32

Gambar 2.26 Potensiometer satu putaran secara umum………. 34

Gambar 2.27 Potensiometer Linier……….. 36

Gambar 2.28 Sinyal PWM………... 37

Gambar 2.29 (a), (b), dan (c) beberapa PWM dalam duty cycle yang berbeda……….. 38

Gambar 2.30 Konektor RS232 atau DB9……… 45

Gambar 2.31 Konektor port serial DB9………... 46

Gambar 3.1 Model rancangan pendulum terbalik………. 48

Gambar 3.2 (a) Dudukan motor servo tampak samping, (b) Dudukan motor servo tampak atas, (c) Batang stick………. 49

Gambar 3.3 Konstruksi fisik pendulum terbalik……… 49

Gambar 3.4 Blok diagram sistem pendulum terbalik……… 50

Gambar 3.5 Flowchartsystem……….. 52

Gambar 3.6 Rangkaian potensiometer ke mikro………... 53

Gambar 3.7 Rangkaian adaptor………. 54

Gambar 3.8 Rangkaian sistem minimum, ADC dan motor servo………. 55


(5)

Gambar 4. 2 Blok simulink closedloop system... 64 Gambar 4.3 Respon pendulum terbalik………. 64 Gambar 4.4 Respon posisi pendulum Kp = 50, Ki = 0,01 & Kd = 0.1… 66 Gambar 4.5 Respon PWM Kp = 50, Ki = 0,01 & Kd = 0,1………. 67 Gambar 4.6 Respon posisi pendulum Kp = 50, Ki = 0,01 & Kd = 0,2… 69 Gambar 4.7 Respon PWM Kp = 50, Ki = 0,01 & Kd = 0,2………. 70 Gambar 4.8 Respon posisi pendulum Kp = 50, Ki = 0,02 & Kd = 0,2… 72 Gambar 4.9 Respon PWM Kp = 50, Ki = 0,02 & Kd = 0,2………. 73 Gambar 4.10 Respon posisi pendulum Kp = 10, Ki = 0,01 & Kd = 0,2… 75 Gambar 4.11 Respon PWM Kp = 10, Ki = 0,01 & Kd = 0,2………. 76 Gambar 4.12 Respon posisi pendulum Kp = 100, Ki = 0,01 & Kd = 0,2.. 78 Gambar 4.13 Respon PWM Kp = 100, Ki = 0,01 & Kd = 0,2…………... 79


(6)

DAFTAR TABEL

Tabel 2.1 Efek setiap pengontrol pada loop tertutup……… 20

Tabel 2.2 Tipe Data………... 41

Tabel 2.3 Daftar Operator Aritmetika……….. 42

Tabel 2.4 Daftar Operator Kondisi……….. 42

Tabel 2.5 Daftar Operator Logika………. 43

Tabel 2.6 Daftar Operator Bitwise……….... 43

Tabel 2.7 Konfigurasi pin dan nama sinyal konektor serial DB9……….... 46

Tabel 4.1 Open loop system……….. 61

Tabel 4.2 Hasil pengujian pendulum terbalik……….. 65

Tabel 4.3 Hasil pengujian pendulum terbalik……….. 68

Tabel 4.4 Hasil pengujian pendulum terbalik……… 71

Tabel 4.5 Hasil pengujian pendulum terbalik……… 74