Realisasi Pengendalian PID Pada Pendulum Terbalik Menggunakan Mikrokontroler ATMEGA8
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