Anda di halaman 1dari 133

IMPLEMENTASI KONTROLER SELF – TUNING PID DAN KALMAN

FILTER PADA SISTEM KESETIMBANGAN ROBOT BERODA DUA

SKRIPSI
TEKNIK ELEKTRO KONSENTRASI TEKNIK KONTROL

Diajukan Untuk Memenuhi Persyaratan


Memperoleh Gelar Sarjana Teknik

FERDA SAEPULAH
NIM. 165060307111002

UNIVERSITAS BRAWIJAYA
FAKULTAS TEKNIK
MALANG
2019
LEMBAR PENGESAHAN
IMPLEMENTASI KONTROLER SELF – TUNING PID DAN KALMAN FILTER
PADA SISTEM KESETIMBANGAN ROBOT BERODA DUA

SKRIPSI
TEKNIK ELEKTRO KONSENTRASI TEKNIK KONTROL
Diajukan untuk memenuhi persyaratan
memperoleh gelar Sarjana Teknik

FERDA SAEPULAH
NIM. 165060307111002
Skripsi ini telah direvisi dan disetujui oleh dosen pembimbing
pada tanggal 28 Oktober 2019

Dosen Pembimbing I Dosen Pembimbing II

Goegoes Dwi Nusantoro, S.T., M.T. Dr. Ir. Moch.Rusli, Dipl.Ing


NIP. 19711013 200604 1 001 NIP 19630104 198701 1 001

Mengetahui,
Ketua Jurusan Teknik Elektro

Ir. Hadi Suyono, ST., MT., Ph.D., IPM


NIP. 197305202008011013
JUDUL SKRIPSI :
IMPLEMENTASI KONTROLER SELF – TUNING PID DAN KALMAN FILTER PADA
SISTEM KESETIMBANGAN ROBOT BERODA DUA

Nama Mahasiswa : Ferda Saepulah


NIM : 165060307111002
Program Studi : Teknik Elektro
Konsentrasi : Teknik Kontrol

KOMISI PEMBIMBING :
Dosen Pembimbing 1 : Goegoes Dwi Nusantoro, S.T., M.T. ……………………

Dosen Pembimbing 2 : Dr. Ir. Mochammad Rusli, Dipl.Ing. ……………………

TIM DOSEN PENGUJI :


Dosen Penguji 1 : Rahmadwati, S.T., M.T., Ph.D. ……………………

Dosen Penguji 2 : Muhammad Aziz Muslim, S.T., M.T., Ph.D. ……………………

Dosen Penguji 3 : Dr. Ir. Erni Yudaningtyas, M.T. ……………………

Tanggal Ujian : 25 Oktober 2019


SK Penguji : No. 2213 Tahun 2019
Teriring Ucapan Terima Kasih kepada:

Ayah Agus Supratman dan Bunda Yeni Andayani

Serta Ferdi Saepulah


PERNYATAAN ORISINALITAS SKRIPSI

Saya menyatakan dengan sebenar-benarnya bahwa sepanjang pengetahuan saya dan


berdasarkan hasil penulusuran berbagai karya ilmiah, gagasan dan masalah ilmiah yang diteliti
dan diulas dalam Naskah Skripsi adalah asli dari pemikiran saya, tidak terdapat karya ilmiah
yang pernah diajukan oleh orang lain untuk memperoleh gelar akademik pada perguruan
tinggi dan tidak terdapat karya atau pendapat yang pernah ditulis atau diterbitkan oleh orang
lain, kecuali secara tertulis dikutip dalam naskah ini dan disebutkan dalam sumber kutipan dan
daftar pustaka.
Apabila ternyata dalam naskah Skripsi ini dibuktikan terdapat unsur-unsur jiplakan,
saya bersedia Skripsi dibatalkan, serta diproses sesuai peraturan perundang-undangan yang
berlaku (UU No.20 Tahun 2003, pasal 25 ayat 2 dan pasal 70).

Malang, Oktober 2019

Mahasiswa,

FERDA SAEPULAH
NIM. 165060307111002
RINGKASAN

Ferda Saepulah, Jurusan Teknik Elektro, Fakultas Teknik Universitas Brawijaya, Oktober
2019, Implementasi Kontroler Self – Tuning PID dan Kalman Filter pada Sistem
Kesetimbangan Robot Beroda Dua, Dosen Pembimbing: Goegoes Dwi Nusantoro, S.T, M.T.
dan Ir. Moch.Rusli, Dipl.Ing.

Sistem kesetimbangan robot beroda dua memiliki konsep yang didasarkan pada teori
pendulum terbalik. Sebuah sistem kontrol yang sesuai dibutuhkan untuk dapat mengontrol
sistem sehingga seimbang dan stabil. Robot beroda dua adalah suatu robot mobile yang
memiliki sebuah roda disisi kanan dan kirinya yang tidak akan seimbang apabila tanpa adanya
kontroler. Menyeimbangkan robot beroda dua memerlukan suatu metode kontrol yang baik
dan handaluntuk mempertahankan posisi robot dalam keadaan tegak lurus terhadap permukaan
bumi tanpa menggunakan pengendali lain dari luar. Pada penelitian ini digunakan kontroler
Self-Tuning Proposional Integral Derivatif (PID) sebagai pengendali dan Kalman Filter
digunakan sebagai pemrosesan data sensor berupa penggabungan data sensor accelerometer
dan sensor gyroscope. Salah satu metode self-tuning PID yang dipakai dalam skripsi ini adalah
Dahlin PID Controller. Metode pencarian estimasi dilakukan menggunakan Recursive Least
Square (RLS), sehingga proses identifikasi berjalan secara real-time. Hasil penelitian
menunjukkan respon sistem yang dihasilkan dari penggunaan self-tuning controller dengan
menggunakan kalman filter ini memiliki nilai error steady state dibawah 0,5% dan tidak
memiliki overshoot, sementara pada hasil pengujian respon sistem tanpa menggunakan filter
memiliki nilai error steady state diatas 0,5% dan memiliki overshoot.

Kata Kunci : Robot Beroda Dua, Self-Tuning PID, Recursive Least Square, Kalman Filter.

i
SUMMARY

Ferda Saepulah, Department of Electrical Engineering, Faculty of Engineering University of


Brawijaya, October 2016, Implementation Self – Tuning Controller and Kalman Filter in Two
Wheeled Robot Equilibrium System, Academic Supervisor: Goegoes Dwi Nusantoro, S.T,
M.T. and Dr. Ir. Moch. Rusli, Dipl.Ing.

The two-wheeled robot equilibrium system has a concept based on the inverse pendulum
theory. An appropriate control system is needed to be able to control the system so that it is
balanced and stable. Two-wheeled robot is a mobile robot that has a wheel on the right and
left that will not be balanced if there is no controller. Balancing a two-wheeled robot requires
a good and reliable control method to maintain the robot's position perpendicular to the
surface of the earth without using other controllers from the outside. In this study, the
controller used Self-Tuning Proposional Integral Derivative (PID) as a controller and
Kalman Filter is used as sensor data processing in the form of combining accelerometer and
gyroscope sensor data. One method of self-tuning PID used in this thesis is Dahlin PID
Controller. Estimation search method is done using Recursive Least Square (RLS), so the
identification process runs in real-time. The results showed that the system response resulting
from the use of self-tuning controller using the Kalman filter has a steady state error value
below 0,5% and has no overshoot, while the results of testing the system response without
using a filter has a steady state error value above 0, 5% and have overshoot.

Keywords : Two-Wheeled Robot, Self-Tuning PID, Recursive Least Square, Kalman Filter.

ii
PENGANTAR

Bismillahirrohmanirrohim. Alhamdulillah, puji syukur penulis penjatkan kehadirat


Allah SWT yang telah memberikan rahmat dan hidayah – Nya, sehingga penulis dapat
menyelesaikan skripsi yang berjudul “Implementasi Kontroler Self – Tuning PID dan Kalman
Filter Pada Sistem Kesetimbangan Robot Beroda Dua” dengan baik. Tak lepas shalawat serta
salam tercurahkan kepada junjungan kita Nabi Muhammad SAW yang tekah menjadi suri
tauladan bagi yang mengharapkan rahmat dan hidayah – Nya.
Penulis menyadari bahwa penyusunan skripsi ini tidak lepas dari bantuan, bimbingan
serta dorongan dari berbagai pihak. Pada kesempatan ini penulis menyampaikan rasa terima
kasih yang sebesar – besarnya kepada :
 Mamah dan Papah tercinta, Ibu Yeni Andayani dan Bapak Agus Supratman yang selalu
mendukung dan memberikan kasih sayang serta doa yang tidak pernah putus.
 Saudara tersayang, Ferdi Saepulah yang selalu memberikan semangat, motivasi dan selalu
menemani saat dalam kesusahan.
 Hadi Suyono Hadi Suyono, ST., MT., Ph.D. selaku Ketua Jurusan Teknik Elektro
Universitas Brawijaya.
 Ir. Nurussa’adah, MT. selaku Sekertaris Jurusan Teknik Elektro Universitas Brawijaya.
 Rahmadwati, ST., MT., Ph.D. selaku Ketua Program Studi S1 Jurusan Teknik Elektro
Universitas Brawijaya.
 M. Azis Muslim, S.T., M.T., Ph.D. selaku KKDK Teknik Kontrol.
 Goegoes Dwi Nusantoro, ST., MT. sebagai dosen pembimbing yang telah banyak
memberikan kesempatan, nasehat, pengarahan, motivasi, saran dan masukan.
 Ir. Moch.Rusli, Dipl.Ing. sebagai dosen pembimbing yang telah banyak memberikan
kesempatan, nasehat, pengarahan, motivasi, saran dan masukan.
 Pak Dedy Agus Wahyudi sebagai pranata laboratorium dasar elektrik dan pengukuran
yang selalu memberikan dukungan.
 Sahabat – sahabat seperjuangan “Soul Winner”, Sambodo, Adrian, Rama, Rizal, Agung,
Aufa, Dimas, Danang, Zidan, Furqan, dan Yeri, terima kasih telah memberikan banyak
bantuan, nasehat, dukungan dan canda tawa.

iii
 Teman – teman asisten laboratorium dasar elektrik dan pengukuran, Mas Ghozal, Mas
Izzul, Mas Dhika, Mas Ivan, Mas Bob, Mas Argy, Mas Aldi, Mbak Teki, Mbak Annisa,
Aan, Banu, Ariq, Eka, Faisal, Khuzain, Arbi, Dhika 17, Aldo, Rina, Angel, Vika, Ario,
Ote, Rama 17, dan Yusuf, terima kasih telah memberikan dukungan dan canda tawa.
 Teman – teman Workshop Aeronautika’16 divisi kombat (Rizky dan Frans), divisi
komurindo (Rama, Zidan, dan Aan), dan divisi krti (Aidil, Tyo, Mufid, Khatijah, dan
Nafis), telah memberikan bantuan dan motivasi.
 Keluarga besar Teknik Kontrol 2016 dan Mosfet 2016 untuk dukungan dan semangat.
 Semua pihak, yang telah memberikan bantuan serta dukungan baik secara langsung
maupun tidak langsung atas penyusunan skripsi ini.
Dalam penyusunan skripsi ini, penulis menyadari bahwa skripsi ini belumlah sempurna,
karena keterbatasan ilmu dan kendala – kendala lain yang terjadi selama pengerjaan skripsi
ini. Oleh karena itu, penulis berharap kritik dan saran untuk penyempurnaan tulisan di masa
yang akan datang. Semoga tulisan ini dapat bermanfaat dan dapat digunakan untuk
pengembangan lebih lanjut.

Malang, Oktober 2019

Penulis

iv
DAFTAR ISI

RINGKASAN ..................................................................................................................... i
SUMMARY ........................................................................................................................ ii
PENGANTAR .................................................................................................................... iii
DAFTAR ISI ...................................................................................................................... v
DAFTAR GAMBAR .......................................................................................................... vii
DAFTAR TABEL .............................................................................................................. ix
BAB I PENDAHULUAN ................................................................................................... 1
1.1 Latar Belakang ..................................................................................................... 1
1.2 Rumusan Masalah ................................................................................................ 2
1.3 Batasan Masalah .................................................................................................. 2
1.4 Tujuan ................................................................................................................. 3
BAB II DASAR TEORI ..................................................................................................... 4
2.1 Robot Beroda Dua................................................................................................ 4
2.2 Konsep Kesetimbangan Robot Beroda Dua .......................................................... 6
2.3 Matlab R2013 ...................................................................................................... 9
2.4 Kontroler ............................................................................................................. 9
2.4.1 Kontroler Proporsional (P) ................................................................................. 10
2.4.2 Kontroler Integral (I) ......................................................................................... 11
2.4.3 Kontroler Devatif (D) ........................................................................................ 11
2.4.4 Kontroler PID .................................................................................................... 12
2.5 Self – Tuning Controller ...................................................................................... 13
2.6 Recursive Least Square (RLS).............................................................................. 14
2.7 Dahlin PID Controller .......................................................................................... 16
2.8 Kalman Filter ....................................................................................................... 19
2.9 Motor DC ............................................................................................................ 21
2.10 Driver Motor H-Bridge L298N ............................................................................ 24
2.11 PWM (Pulse Width Modulation) .......................................................................... 25
2.12 Mikrokontroler Arduino Mega 2560..................................................................... 26
2.13 Gyroscope ............................................................................................................ 27

v
2.14 Accelerometer ...................................................................................................... 28
BAB III METODOLOGI PENELITIAN.......................................................................... 30
3.1 Perancangan Blok Diagram Sistem ...................................................................... 31
3.2 Spesifikasi Desain ................................................................................................ 32
3.3 Karakterisasi Setiap Blok ..................................................................................... 32
3.3.1 Karakterisasi Plant Sistem Kesetimbangan dengan Aktuator. ............................. 32
3.3.2 Karakterisasi L298N Dual H-Bridge Motor Driver............................................. 34
3.3.3 Karakterisasi Sensor MPU6050 GY-521 ............................................................ 36
3.3.3.1 Karakterisasi Sensor Gyroscope ...................................................................... 36
3.3.3.2 Karakterisasi Sensor Accelerometer ................................................................. 38
3.4 Perancangan Perangkat Keras .............................................................................. 41
3.5 Perancangan Algoritma Kalman Filter.................................................................. 45
3.6 Perancangan dan Pembuatan Program Self-Tuning PID Controller ...................... 48
3.7 Penentuan Nilai Awal Parameter Estimasi dan Parameter Kontrol ........................ 48
3.8 Flowchart Program Utama ................................................................................... 51
BAB IV HASIL DAN KESIMPULAN .............................................................................. 52
4.1 Pengujian Kalman Filter....................................................................................... 52
4.2 Pengujian Self –Tuning PID Controller Pada Robot Beroda Dua .......................... 54
BAB V KESIMPULAN DAN SARAN .............................................................................. 59
5.1 Kesimpulan .......................................................................................................... 59
5.2 Saran.................................................................................................................... 59
DAFTAR PUSTAKA ......................................................................................................... 60
LAMPIRAN ....................................................................................................................... 61

vi
DAFTAR GAMBAR

Gambar 2.1 Sketsa Robot Beroda Dua ................................................................................ 5


Gambar 2.2 Robot Beroda Dua ........................................................................................... 6
Gambar 2.3 Posisi seimbang yang harus dipertahankan oleh Robot Beroda ........................ 7
Gambar 2.4 Ilustrasi Robot Beroda Dua dan Sudut Elevasi ................................................. 7
Gambar 2.5 Arah putaran roda untuk mempertahankan kesetimbangan .............................. 8
Gambar 2.6 Tampilan Software Matlab R2013a ................................................................. 9
Gambar 2.7 Diagram Blok Kontroler Proporsional ............................................................. 10
Gambar 2.8 Diagram Blok Kontroler Integral ..................................................................... 11
Gambar 2.9 Diagram Blok kontroler Derivative.................................................................. 12
Gambar 2.10 Diagram Blok Kontroler PID ......................................................................... 12
Gambar 2.11 Diagram Blok Self-Tuning Controller ............................................................ 14
Gambar 2.12 Algoritma Perhitungan Kalman Filter ............................................................ 20
Gambar 2.13 Motor DC Sederhana ..................................................................................... 22
Gambar 2.14 Prinsip Kerja Motor DC ................................................................................ 23
Gambar 2.15 Driver motor H-Bridge L298N ...................................................................... 25
Gambar 2.16 Sinyal pwm Secara Umum ............................................................................ 25
Gambar 2.17 Arduino Mega2560........................................................................................ 27
Gambar 2.18 Analogi 3-Axis Gyroscope ............................................................................ 28
Gambar 2.19 Analogi 3-Axis accelerometer ....................................................................... 29
Gambar 3.1 Blok Digram Sistem Loop Tertutup Kesetimbangan Robot Beroda
Dua ...................................................................................................................................... 31
Gambar 3.2 Pengukuran Arah dan Kecepatan Motor DC .................................................... 34
Gambar 3.3 Perubahan Tegangan Output Driver terhadap Duty Cycle ................................ 36
Gambar 3.4 Data Hasil Pengujian Output Sensor Gyroscope .............................................. 38
Gambar 3.5 Data Hasil Pengujian Output Sensor Accelerometer ........................................ 40
Gambar 3.6 Skema pembuatan perangkat keras .................................................................. 41
Gambar 3.7 Baterai 18650 .................................................................................................. 42
Gambar 3.8 Arduino Mega 2560......................................................................................... 42
Gambar 3.9 Sensor MPU6050 GY-521............................................................................... 42

vii
Gambar 3.10 Driver motor H-bridge L298N ....................................................................... 43
Gambar 3.11 Komputer yang terinstall Arduino IDE .......................................................... 43
Gambar 3.12 Plant sistem kesetimbangan dengan aktuator motor DC ................................. 44
Gambar 3.13 Blok Diagram Kalman Filter Update ............................................................. 45
Gambar 3.14 Struktur model ARX...................................................................................... 49
Gambar 3.15 System Indetification Tool............................................................................. 49
Gambar 3.16 Sinyal output dari estimasi model .................................................................. 49
Gambar 3.17 Flowchart sistem keseluruhan ........................................................................ 51
Gambar 4.1 Data Hasil Pengujian Kalman Filter Tanpa Gangguan Pada Sensor MPU6050
GY-521 ................................................................................................................................ 53
Gambar 4.2 Data Hasil Pengujian Kalman Filter dengan Gangguan Pada Sensor
MPU6050 GY-521 ............................................................................................................... 54
Gambar 4.3 Respon sistem dengan setpoint 0° menggunakan kalman filter ........................ 55
Gambar 4.4 Perubahan nilai estimasi dengan setpoint 0° .................................................... 55
Gambar 4.5 Perubahan nilai parameter gain kontroler PID dengan setpoint 0° .................... 56
Gambar 4.6 Respon sistem dengan setpoint 0° tanpa menggunakan filter ........................... 57
Gambar 4.7 Perubahan nilai estimasi dengan setpoint 0° tanpa menggunakan filter ....... 57
Gambar 4.8 Perubahan nilai parameter gain kontroler PID dengan setpoint 0° tanpa
menggunakan filter .............................................................................................................. 58

viii
DAFTAR TABEL

Tabel 2.1 Persamaan Time Update ...................................................................................... 21


Tabel 2.2 Persamaan Measurement Update.......................................................................... 21
Tabel 3.1 Data Pengukuran Arah dan Kecepatan Motor DC ................................................ 33
Tabel 3.2 Hasil Pengujian Driver (L298N Dual H-Bridge Motor Driver) ............................. 35

ix
1

BAB 1
PENDAHULUAN

1.1 Latar Belakang


Robot merupakan sebuah elektromekanik yang dapat dikendalikan secara remote
ataupun menggunakan kecerdasan buatan sehingga sistem dapat bergerak. Penggunaan robot
ini sangat berpengaruh dalam peningkatkan kualitas dan kuantitas produksi. Teknologi
robotika juga telah menjangkau hingga sisi pendidikan. Salah satunya dengan menambah
tingkat kecerdasan pada robot. Peningkatan kecerdasan meliputi penambahan sensor, metode
kontrol serta algoritma pemograman pada robot. Salah satunya adalah self-balancing robot.
(Andre Novandri, 2017).
Hal ini tentunya dipicu oleh perkembangan teknologi elektronika, robotika serta IT
yang cukup pesat di seluruh dunia. Self-balancing robot merupakan robot yang memiliki
prinsip kerja yang hampir mirip dengan sistem pendulum terbalik. (Geoffrey D, Benneth,
2007).
Robot beroda dua adalah robot yang memiliki sistem kontrol keseimbangan koordinasi
antara sensor – sensor dengan aktuatornya yang dapat secara otomatis menyeimbangkan
dirinya terhadap permukaan bumi. Robot beroda dua ini harus memiliki kontrol yang baik dan
handal, dan harus menggunakan metode kontrol yang tepat agar tidak jatuh saat diberi
gangguan. Metode kontrol yang umumnya digunakan adalah kontroler PID, namun tuning
yang dilakukan masih dengan manual dan jika terjadi gangguan maka robot akan cepat jatuh.
Maka dari itu diperlukannya kontroler yang dapat mengatasi gangguan tersebut. Penerapan
dari konsep robot beroda dua ini yang umumnya pada penggunaan alat transportasi modern
yaitu Segway, Hovertrax, dan Airboard. (Gabriel, 2016).
Penelitian terdahulu yang pernah dilakukan oleh (Gabriel, 2016) pada pengontrolan
sudut plant sistem kesetimbangan robot beroda dua menggunakan metode PID Cascade
memiliki kekurangan yaitu, penggunaan fungsi alih dengan transfer function models sehingga
masih dilakukannya tuning PID secara manual. Hal ini menjadikan pengontrolan sudut harus
memiliki nilai inisialisasi awal yang sama dengan fungsi alih yang telah diidentifikasi.
Berdasarkan permasalahan tersebut, maka diperlukan suatu pengendalian adaptif salah
satunya Self –Tuning Controller (STC) yang merupakan suatu skema teknik kendali adaptif
2

dimana parameter dari sistem diestimasi dan hasil estimasi parameter yang telah dihitung
digunakan untuk mendapatkan parameter kontrol (Bobal, 2005:13). Recursive Least Square
(RLS) merupakan suatu metode identifikasi sistem dengan kelebihan mengganggap sistem
fisik yang akan dimodelkan sebagai sebuah black box, sehingga apapun jenis komponen yang
ada di dalam sistem fisik dan apapun jenis bahannya tidakakan dipermasalahkan dan tidak
perlu diperhatikan. Selain itu algoritma RLS ini dapay diaplikasikan secara real time. (Bobal,
2005: 32).
Pada skripsi ini akan melakukan penelitian lebih lanjut pengontrolan sudut pada plant
sistem kesetimbangan dengan aktuator motor DC menggunakan metode sistem pengendalian
adaptif yaitu Kontroler Self – Tuning PID berupa Dahlin PID dengan metode estimasi
Recursive Least Square (RLS) dan Filter data sensor berupa Kalman Filter yang berfungsi
untuk pemrosesan data sensor accelerometer dan sensor gyroscope dengan harapan mampu
menghasilkan repon sistem yang baik dan dapat mengidentifikasi plant dengan
mempertimbangan karakteristik dari plant.

1.2 Rumusan Masalah


Berdasarkan Latar belakang dapat disusun rumusan masalah sebagai berikut :
1) Bagaimana merancang kontroler Self – Tuning PID dan Kalman filter untuk dapat
mempertahankan keseimbangan robot beroda dua?
2) Bagaimana output plant robot beroda dua menggunakan kontroler Self – Tuning PID
dan Kalman filter pada implementasi?

1.3 Batasan Masalah


Dalam perancangan untuk skripsi ini permasalahan dibatasi oleh hal-hal sebagai
berikut :
1) Plant yang digunakan oleh robot beroda dua dengan spesifikasi sebagai berikut :
a. Aktuator yang digunakan adalah Motor DC 12V (JGA25-370).
b. Driver motor yang digunakan adalah L298N Dual H-Bridge Motor Driver.
c. Sensor yang digunakan adalah MPU-6050 module three-axis acceleration
gyroscope 6DOF module GY-52.
2) Metode kontrol yang digunakan adalah kontroler Self – Tuning PID dan Kalman Filter.
3

3) Menggunakan software Arduino IDE 1.8.7.


4) Pada skripsi ini digunakan software matlab2013a.
5) Pusat pengontrolan terdapat pada modul Arduino Mega 2560.
6) Arena yang digunakan adalah permukaan di bidang datar.
7) Robot beroda dua dapat seimbang antara sudut -10° sampai +10° dari posisi
seimbangan (sudut tegak lurus terhadap permukaan bumi adalah 0°).
8) Dalam proses mempertahankan keseimbangan robot beroda dua, robot beroda dua
tidak dibatasi dalam melakukan pergerakan dalam upaya mempertahankan
keseimbangannya.
9) Pembahasan ditekankan pada kontroler metode kontrol, untuk masalah elektris dan
sistematis tidak di bahas secara mendalam.

1.4 Tujuan Penelitian


Tujuan penelitian yang ingin dicapai dalam skripsi ini adalah melihat perubahan dari
parameter kontroler dan mempertahankan posisi robot beroda dua dalam kondisi seimbang
dan tegak lurus terhadap permukaan bumi pada bidang datar dengan menggunakan metode
self-Tuning PID dan Kalman filter.
4
5

BAB II
DASAR TEORI

Robot beroda dua terdiri dari kontroler, badan robot, dua buah aktuator (motor DC),
dan sensor sudut. Kontroler membuat robot balancing dapat berdiri tegak pada permukaan
bumi dan menggerakkan motor. Motor menyediakan kekuatan untuk menggerakkan badan
robot. Sensor sudut untuk mendeteksi accelerometer dan gyroscope dan menjadikannya sudut
pada badan robot.

2.1 Robot Beroda Dua


Robot telah mengalami perkembangan yang sangat pesat. Ketertarikan dunia pada
bidang robotika begitu besar , dengan ditandai banyaknya penggunaan robot di berbagai
bidang, seperti bidang industri, pertanian, kedokteran, dan juga militer. Tujuan utama
pemanfaatan teknologi robotika pada berbagai bidang tersebut tidak lain adalah untuk
mempermudah kerja manusia. Kata “robot” pertama kali digunakan oleh penulis Cekoslavia
bernama Karel Capek, dalam dramanya yang berjudul “RUR: Rossum’s Universal Robot”.
Kata “robot”dalam Bahasa cekoslavia berarti pekerja.
Seperti definisi dari kata robot itu sendiri yang berarti “pekerja”, keberadaan robot
untuk membantu pekerjaan manusia memang tidak bisa dipungkiri. Robot didesain untuk
membantu manusia dengan beberapa kelebihan dibandingkan pekerja manusia. Pekerjaan
yang diselesaikan robot memiliki hasil yang lebih akurat dan yang dibutuhkan lebih cepat,
dengan biaya yang lebih murah. Kekurangan yang dimiliki robot adalah tidak fleksibel. Salah
satu alasan penggunaan teknologi robot adalah karena robot memiliki kemampuan khusus
untuk menyelesaikan suatu pekerjaan tertentu, dengan tingkat akurasi yang tinggi dan mampu
mengerjakan sesuatu dalam waktu yang relatif lebih cepat jika dibandingkan dengan manusia.
Robot dapat dikelompokkan menjadi beberapa jenis sesuai dengan spesifikasinya,
misalkan fungsi dan alat gerak. Sesuai fungsinya, ada beberapa jenis robot, diantaranya robot
penjelajah, robot industri, robot pemadam api, robot medis, robot nano, robot militer, dan
robot kompetesi. Jenis robot sesuai alat geraknya alat geraknya adalah robot beroda dan robot
berkaki.Salah satu kategori dalam robot beroda adalah robot beroda dua.
6

Gambar 2.1 Sketsa Robot Beroda Dua


Sumber: J.-D. Warren, J. Adams dan H. Molle, 2011

Robot beroda dua adalah robot yang mempunyai dua buah penggerak yang
dihubungkan ke roda yang terdapat disebelah kanan dan kiri robot. Cara kerja secara general
untuk dapat menyeimbangkan robot ini adalah ketika robot akan terjatuh kesisi depan maupun
kesisi belakang, maka untuk menstabilkan atau menyeimbangkannya harus mengirimkan
sinyal kontrol yang sesuai ke motor DC sehingga motor DC berputar ke arah depan dan
mengikuti pergerakan robot dan dapat kembali ke posisi semula, begitu juga sebaliknya jika
robot akan terjatuh ke arah belakang untuk menstabilkan atau menyeimbangkannya harus
mengirimkan sinyal kontrol yang sesuai ke motor DC sehingga motor DC berputar ke arah
belakang dan mampu mengikuti pergerakan robot sehingga dapat kembali ke posisi semula.
Robot beroda dua ini pada dasarnya memiliki prinsip kerja seperti pendulum terbalik yang
sistemnya tidak stabil, sehingga diperlukan sebuah kontroler yang baik dan efisien sehingga
mampu membuat robot tersebut stabil.
7

Gambar 2.2 Robot Beroda Dua


Sumber: wolfdenelectronics.com

2.2 Konsep Kesetimbangan Robot Beroda Dua


Prinsip kerja balancing robot adalah dengan menjaga keseimbangan sistem. Untuk
menjaga robot beroda dua ini seimbang, controller perlu mengetahui sudut relatif terhadap
tanah, sehingga controller dapat memerintahkan motor dengan kecepatan dan arah yang tepat
yang dibutuhkan agar tidak terjatuh. Untuk keaakuratan pengukuran sudut atau kemiringan
dari robot perlu mendeteksi kecepatan rotasi dan gaya gravitasi sumbu X-nya, menggunakan
Satuan Pengukuran Inertial atau IMU.
IMU adalah sebuah board PCB kecil yang berisi sensor gyroscope dan sensor
accelerometer. Pengukuran ini memiliki referensi 0 derajat yang menyebabkan motor
berhenti. Apabila pengukuran lebih dari 0 derajat maka motor akan berputar proporsional ke
depan. Demikian sebaliknya bila kurang dari 0 derajat, motor akan berputar berlawanan arah
secara proporsional. Gambar di bawah ini menunjukkan posisi tegak terhadap bumi sehingga
motor diperintahkan untuk stop.

Gambar 2.3 Posisi seimbang yang harus dipertahankan oleh Robot Beroda Dua
Sumber: J.-D. Warren, J. Adams dan H. Molle, 2011.
8

Untuk memperjelas gambaran sistem, perhatikan gambar di bawah ini:

Gambar 2.4 Ilustrasi Robot Beroda Dua dan Sudut Elevasi


Sumber: J.-D. Warren, J. Adams dan H. Molle, 2011.

Kesetimbangan robot menggunakan dua roda memiliki dua reaksi dari putaran kedua
rodanya yaitu reaksi kesetimbangan dan reaksi mobilitas. Kedua reaksi tersebut harus diulas
sebagai dua tahapan. Tahapan tersebut akan diulas secara rinci.

Mempertahankan Kesetimbangan Robot Beroda Dua


Prinsip kerja kesetimbangan robot beroda dua dapat dijelaskan sebagai sebuah
inverted pendulum yang bertumpu pada kedua rodanya.

Gambar 2.5 Arah putaran roda untuk mempertahankan kesetimbangan


Sumber: J.-D. Warren, J. Adams dan H. Molle, 2011.

Dalam proses menuju kesetimbangan robot memiliki kecenderungan jatuh ke kiri


maupun ke kanan tergantung titik berat dari robot tersebut. Apabila dimisalkan robot jatuh ke
arah kiri seperti gambar di bawah ini. Bila robot jatuh ke arah kiri sejauh θ maka harus ada
putaran roda dengan torque tertentu searah dengan jatuhnya roda. Kekuatan putaran harus
9

lebih besar dibandingkan dengan besarnya θ agar robot dapat kembali ke posisi semula.
Berikut ini persamaan stationary pivot point dari balancing robot /inverted pendulum.

Diferensial pangkat dua dari θ adalah fungsi percepatan sudut. Inverted


pendulum akan bergerak menjauh dari garis normal dengan percepatan tertentu. Nilai
percepatan yang akan dihasilkan berbanding terbalik dengan panjang pole inverted pendulum
atau tinggi robot. Semakin panjang pole maka semakin kecil percepatan inverted pendulum.
Nilai inilah yang harus dipertimbangkan sistem kontrol untuk diberikan kepada motor agar
kesetimbangan dapat terjadi.
Setelah diberikan torque dengan kekuatan tertentu, maka robot akan kembali menuju
ke titik kesetimbangan (garis normal). Robot juga memiliki kesempatan untuk jatuh ke arah
sebaliknya dengan percepatan tertentu. Arah putaran tersebut tetap searah dengan arah
jatuhnya robot. Dapat disimpulkan bahwa robot akan bergerak di antara titik stasionernya
sampai mencapai kesetimbangan. Semakin lama sudut θ semakin mengecil. Rise time dan
nilai steady state nya tergantung metode kontrol yang diterapkan pada robot tersebut.

2.3 Matlab R2013


Matlab (matrix laboratory) adalah sebuah lingkungan komputasi numerical dan bahasa
pemrograman komputer generasi keempat. Dikembangkan oleh The Math Work, matlab
memungkinkan manipulasi matriks, pemplotan fungsi dan data, implementasi algoritma,
pembuatan antarmuka, dan peng-antarmuka-an dengan program dalam bahasa lain.
Dalam skrispi ini aplikasi matlab dipergunakan untuk mencari fungsi alih motor DC
melalui data respon kecepatan motor yang diolah menggunakan beberapa fungsi yang terdapat
di dalalam matlab. Serta dengan aplikasi matlab kita dapat melakukan simulink untuk mencari
nilai kp, ki, kd yang tepat untuk digunakan.
10

Gambar 2.6 Tampilan Software Matlab R2013a

2.4 Kontroler
Sistem pengendalian dirancang untuk melakukan dan menyelesaikan tugas tertentu.
Syarat utama sistem pengendalian adalah harus stabil. Di samping kestabilan mutlak, maka
sistem harus memiliki kestabilan secara relatif, yakni tolak ukur kualitas kestabilan sistem
dengan menganilisis sampai sejauh mana batas-batas kestabilan sistem tersebut jika dikenai
gangguan (Ogata, K., 1997). Selain itu analisis juga dilakukan untuk mengetahui bagaimana
kecepatan sistem dalam merespon input dan output.
Suatu sistem dikatakan stabil jika diberi gangguan maka sistem tersebut akan kembali ke
keadaan steady state di mana output berada dalam keadaan tetap seperti tidak ada gangguan.
Sistem dikatakan tidak stabil jika outputnya berosilasi terus menerus ketika dikenai suatu
gangguan. Karena suatu sistem pengendalian biasanya melibatkan penyimpanan energi maka
output sistem ketika diberi suatu input,tidak dapat mengikuti input secara serentak, tapi
menunjukkan respon transien berupa suatu osilasi teredam sebelum mencapai steady state.

2.4.1 Kontroler Proporsional (P)


Kontroler proportional memiliki output yang besarnya sebanding dengan besarnya sinyal
error. Output kontroler merupakan perkalian antara penguatan proporsional dengan sinyal
error. Gambar 2.7 menunjukan diagram blok kontroler proportional dan Persamaan 2.1
menunjukan hubungan antara output kontroler dengan sinyal error.
11

Input + e(t) m(t)


Kp
-

Gambar 2.7 Diagram Blok Kontroler Proporsional


Sumber: Ogata K.,1997.

m(t)=Kp*e(t) (2-1)
dimana:
Kp = adalah penguatan proporsional
e(t) = sinyal error
m(t) = output kontroler
Penambahan Kp akan mempercepat kecepatan respon transient dan mengurangi kesalahan
keadaan mantap.

2.4.2 Kontroler Integral (I)


Kontroler integral memiliki karakteristik seperti sebuah operasi integral, output
kontroler dipengaruhi oleh perubahan yang sebanding dengan perubahan nilai sinyal error.
Output kontroler merupakan penjumlahan terus menerus dari perubahan sinyal error. Gambar
2.8 menunjukan diagram blok kontroler integral dan Persamaan 2.2 dan Persamaan 2.3
menunjukan hubungan antara output kontroler dengan sinyal error.

Input + e(t) m(t)


Ki ʃ e(t) dt
-

Gambar 2.8 Diagram Blok Kontroler Integral


Sumber: Ogata K.,1997.

(dm(t))/dt=Ki e(t) (2-2)


m(t)=Ki ʃ e(t) dt (2-3)
dimana:
Ki = adalah penguatan integral
12

e(t) = sinyal error


m(t) = output kontroler
Aksi kontrol integral digunakan untuk menghilangkan sinyal error dalam keadaan mantap.

2.4.3 Kontroler Derivatif (D)


Kontroler derivatif memiliki sifat seperti suatu operasi differensial. Perubahan yang
mendadak pada masukkan kontroler mengakibatkan perubahan yang sangat besar dan cepat.
Kontroler ini tidak akan menghasilkan output saat sinyal error konstan sehingga tidak akan
mempengaruhi keadaan mantap. Gambar 2.9 menunjukan diagram blok kontroler derivatif dan
Persamaan 2.4 menunjukan hubungan antara output kontroler dengan sinyal error.

Input + e(t) m(t)


Kd de(t)/dt
-
Gambar 2.9 Diagram Blok kontroler Derivative
Sumber: Ogata K.,1997.

𝑑𝑒(𝑡)
𝑚(𝑡) = 𝐾𝑑 (2-4)
𝑑𝑡

dimana:
𝐾𝑑 = adalah penguatan derivative
𝑒(𝑡) = sinyal error
𝑚(𝑡) = output kontroler
Kontroler ini digunakan untuk memperbaiki atau mempercepat respon transient.

2.4.4 Kontroler Proportional Integral Derivative (PID)


Gabungan aksi kontrol proportional, integral, dan derivative yang terlihat dalam
Gambar 2.10 mempunyai keunggulan dapat saling menutupi kekurangan dan kelebihan dari
masing-masing kontroler. Persamaan kontroler PID ini dapat dinyatakan sebagai berikut
(Persamaan 2.5):
13

Kp
+
Input +e(t) m(t)
Ki ʃ e(t) dt
- + +
Kd de(t)/dt

Gambar 2.10 Diagram Blok Kontroler PID


Sumber: Ogata K.,1997.

m(t)= Kp .e(t)+Ki.ʃ e(t)dt+Kd de(t)/dt (2-5)


dimana:
Kp = adalah penguatan proportional
Ki = adalah penguatan integral
Kd = adalah penguatan derivative
e(t) = sinyal error
m(t) = output kontroler

2.5 Self-Tuning Controller (STC)


Kontroler adaptif adalah kontroler yang dapat melakukan adjustable parameter dan
mekanisme untuk mengatur parameter atau dalam pengertian umumnya berarti mengubah
tingkah laku atau karakteristik untuk menyesuaikan diri terhadap keadaan yang baru atau tidak
diketahui (Oktafiani, 2013: 2). Sebuah pendekatan kontrol adaptif yang berdasarkan recursive
estimation (estimasi rekursif) dari karakteristik sistem dan gangguan serta dapat mengubah-
ubah estimasi, sehingga memungkinkan untuk di amati. Dengan menggunakan pendekatan
tersebut, kita dapat menggunakannya untuk merancang kontroler yang optimal. Dimana
kontroler mengidentifikasi proses yang tidak diketahui dan kemudian mensintesis sinyal
kontrol (Adaptif kontrol dengan rekursif identifikasi) yang disebut dengan Self-Tuning
Controller (STC) (Bobal, 2005: 13). Dalam skema ini, parameter diestimasi dan hasil dari
estimasi parameter tersebut, dihitung setelah itu digunakan untuk mendapatkan parameter
kontrol yang baru.
Pada STC terdapat dua loop, yaitu inner loop dan outer loop. Inner loop terdiri dari
plant (proses) dan kontroler dengan umpan balik biasa, sedangkan pada outer loop berfungsi
14

untuk mengubah parameter dari kontroler, dimana terdiri estimasi parameter rekursif dan
perhitungan desain (Astrom, 2008: 21). Diagram Blok Self Tuning Controller dapat dilihat
pada Gambar 2.11.

Self Tuning Controller

Spesification Controller
Design Process Parameters

Estimation
Controller
Parameters

Reference
input
Controller Process

Gambar 2.11 Diagram Blok Self-Tuning Controller


Sumber: Astrom, 2008.

Parameter dari model di identifikasi secara on-line pada blok “Estimation” yang
memberikan sebuah estimasi parameter plant. Pada blok “Controller Design” berisi
perhitungan yang dibutuhkan untuk desain dari kontroler dengan metode yang telah di
tentukan dan beberapa desain parameter yang telah di pilih. Setelah perhitungan selesai, hasil
parameter dari blok controller design akan di implementasikan pada blok “Controller”
(Astrom, 2008: 90).

2.6 Recursive Least Square (RLS)


Untuk mengistemasi parameter model, sebuah kriteria estimasi harus dinyatakan
terlebih dahulu. Kriteria yang akan digunakan disini adalah least square error, yang
dinyatakan dalam persamaan:

  (i) 2
t
Vt (θ, Zt ) = i 1
(2-6)

Dimana :
 (t )  y (i )  yˆ (i ) (2-7)
15

yˆ   T  (i) (2-8)

 (t )  y(i)   T  (i) (2-9)

 (t )  [ y (i  1)  y (i  2) ...  y (i  na ) u (i  1)...u (i  nb )]T (2-10)

Dengan :  = parameter estimasi


 = error estimasi
y (t ) = output sebenarnya

yˆ (t ) = output estimasi

 = vektor regresi
Untuk meminimalkan e(t ) maka berlaku

Vt ( , Z t )  i 1[ y(i)   T (i) ]2


t
(2-11)

Sehingga

ˆtLS  arg min Vt ( , Z t )  [i 1 (i  1) T (i  1)] 1 i 1 (i  1) y(i  1)


t t
(2-12)

Dimana

F (t ) 1  i 1 (i  1) T (i  1)
t
(2-13)

Persamaan 2-13 masih merupakan persamaan least square yang belum recursive, untuk
membuat persamaan tersebut menjadi recursive maka diberikan:

ˆ(t  1)  F (t  1)i 1 (i  1) y(i)


t 1
(2-14)

F (t  1) 1  i 1 (i  1) T (i  1)  F (t ) 1   (t ) T (t )
t 1
(2-15)

ˆ(t  1)  ˆ(t )  ˆ(t  1) (2-16)

Dari persamaan 2-15 (dengan menambahkan  (t ) T (t )ˆ(t ) ) sehingga diperoleh

 y(i) (i  1)  i 1 y(i) (i  1)  y(t  1) (t )  (t ) (t )T  (t )


t 1 t
i 1
(2-17)

Berdasarkan persamaan (2-12), (2-14), dan (2-15), persamaan (2-17) dapat ditulis kembali
kedalam persamaan (2-18)
t 1

  (i  1) y(i)  F (t  1)
i 1
1
ˆ(t  1) (2-18)


t 1
i 1
 (i  1) y(i)  F (t ) 1ˆ(t )   (t ) (t )T ˆ(t )   (t )[ y(t  1)  ˆ(t )T  (t )] (2-19)
16

F (t  1) 1ˆ(t  1)  F (t  1) 1ˆ(t )   (t ) (t  1) (2-20)

ˆ(t  1)  ˆ(t )  F (t  1) (t ) (t  1) (2-21)


Untuk membuat formula recursive bagi F(t) digunakan persamaan recursive F(t)-1 pada
persamaan 2-15. Pada persamaan tersebut berlaku matrix inversion lemma.
Lemma: misalkan F adalah matrix dengan dimensi (nxn) dan  adalah vektor dari dimensi n,
maka
F T F
( F 1   T ) 1  F  (2-22)
1   T F
Dari persamaan 2.17 dan 2.18 maka
F (t ) (t ) (t ) T F (t )
F (t  1)  F (t )  (2-23)
1   (t ) T F (t ) (t )
F adalah adaptation gain (konstanta yang berubah terhadap waktu),  adalah vektor regresi,
dan  adalah error estimasi (selisih antara keluaran yang sebenarnya dengan keluaran
estimasi). (Wibowo, 2009).

2.7 Dahlin PID Controller


Fungsi alih dari kontroler Dahlin PID ini:
b1 z 1
G( z)  (2-24)
1  a1 z 1  a 2 z  2
Algoritma dari kontroler ini, output kontroler dihitung menggunakan bentuk jumlahan
dari persamaan diskretisasi dengan metode forward rectangular :
 1
t
de(t ) 
u (t )  K P e(t ) 
 TI  e(t )dt  TD
0
dt 
 (2-25)

Persamaan PID diatas dalam bentuk umum dalam fungsi waktu. Dimana
e(t )  w(t )  y (t ) yang merupakan nilai selisih antara nilai yang diinginkan dengan nilai hasil

proses atau nilai sebenarnya. u (t ) merupakan nilai keluaran dari kontroler. y (t ) merupakan
nilai keluaran dari plant (proses) atau nilai sebenarnya. w(t ) merupakan sinyal referensi atau
setpoint (nilai yang diinginkan). Parameter dari kontroler PID, yaitu Kp merupakan gain
(penguatan) proporsional, TI adalah konstanta waktu integral, dan TD merupakan konstanta
waktu diferensial.
17

Menggunakan transformasi Laplace persamaan 2-25 diubah ke dalam bentuk:

 1 
U ( s)  K P 1   TD s  E ( s) (2-26)
 TI s 
Dimana s merepresentasikan operator transformasi laplace. Dari persamaan 2-26 maka kita
dapat menentukan fungsi alih dari kontroler PID :

U ( s)  1 
GR ( s)   K P 1   TD s  (2-27)
E ( s)  TI s 
Untuk mendapatkan persamaan dalam fungsi Z (digital) maka persamaan kontroler PID
dalam fungsi waktu kita diskritisasi komponen integral dan diferensial pada persamaan 2-26
ketika periode sampling T0 kecil dan noise (derau) dari sinyal output proses telah di filter,
maka algoritma yang paling sederhana diperoleh dengan mengganti derivatif dengan
diferensial dari orde pertama (two-point, backward difference)
de e(k )  e(k  1) e(k )
  (2-28)
dt T0 T0
Dimana e(k) adalah nilai kesalahan pada saat k sampling (misal pada waktu t = kT0).
Pendekatan termudah dari integral adalah dengan penjumlahan sederhana sehingga kita
mendekati fungsi waktu kontinyu dengan sampling periode T 0 dari fungsi konstan (step
function atau fungsi satuan). Dengan menggunakan forward rectangular method (FRM):
t k

 e(t )dt  T0  e(i  1)


0 i 1
(2-29)

Sehingga persamaan diskrit (digital) untuk kontroler PID memiliki bentuk:


 k

 e(i  1)  T e(k )  e(k  1)
T T
u(k )  K P e(k )  0 D
(2-30)
 TI i 1 0 
Dalam aplikasi pada industri persamaan (2-30) tidak praktis untuk digunakan dalam
pengontrolan menggunakan komputer karena memerlukan memori untuk menyimpan semua
nilai-nilai error sebelumnya. Oleh karena itu, nilai output kontroler u (k ) adalah hasil dari nilai
output kontroler sebelumnya u (k  1) ditambah dengan nilai selisih koreksi u (k ) . Maka
persamaan tersebut dapat dituliskan sebagai berikut.
u (k )  u (k )  u (k  1) (2-31)
Dimana,
18

 
u(k )  K P e(k )  e(k  1)  0 e(k )  D e(k )  2e(k  1)  e(k  2) (2-32)
T T
 TI T0 
Sehingga persamaan (2-38) menjadi seperti yang dituliskan kedalam persamaan (2-33):
 
u(k )  K P e(k )  e(k  1)  0 e(k )  D e(k )  2e(k  1)  e(k  2)  u(k  1)
T T
 TI T0 
Kontroler ini menggunakan vektor estimasi parameter dalam bentuk

ˆ T (k )  aˆ1 , aˆ 2 , bˆ1  (2-34)

Dan karena bˆ2  0 , regresi vektornya adalah

 T (k  1)   y(k  1), y(k  2), u(k  1) (2-


35)
Dari hubungan berikut di peroleh persamaan untuk parameter kontroler sebagai berikut:
(aˆ1  2aˆ 2 )Q
KP   (2-36)
bˆ 1

T0
TI   (2-37)
1 T
1 D
aˆ1  2aˆ 2 T0

T0 aˆ 2 Q
TD  (2-38)
K bˆP 1

T0

Q  1 e B
(2-39)
Dimana B di kenal sebagai adjustment factor (faktor pengatur) dimana menggambarkan
konstanta dalam domain waktu dari fungsi alih sesuai dengan perubahan yang terjadi pada
output plant (proses) pada closed loop. Semakin kecil nilai B maka respon akan semakin
cepat.
Untuk menghindari osilasi pada output plant (proses) maka disarankan untuk memilih
estimasi parameter kontrol awal menggunakan persamaan berikut. Pada dasarnya persamaan
ini merupakan invers dari persamaan (2-36), (2-37) dan (2-38).
T0 TD
C  1  (2-40)
TI T0
19

TD
1 2
T0
aˆ1   (2-41)
C
TD
aˆ 2  (2-42)
T0 C
Q
bˆ1  (2-43)
K PC
Oleh karena itu, ketika memulai merancang algoritma kita harus menghindari memilih

nilai nol untuk parameter b̂1 .(Bobal, 2005).

2.8 Kalman filter


Algoritma filtering yang bagus merupakan algoritma yang dapat menghilangkan noise
dari sinyal elektromagnetik tetapi tetap mempertahankan informasi yang berguna. Kalman
filter merupakan algoritma yang dapat memperkirakan variabel dari berbagai macam proses.
Dalam istilah matematika, kita dapat mengatakan kalman filter memperkirakan kondisi dari
sistem linier. Kalman filter tidak hanya bekerja dengan baik dalam praktek, tetapi secara
teoritis juga menarik karena dapat ditunjukan bahwa dari semua filter yang mungkin, kalman
filter merupakan salah satu filter yang meminimalkan varian dari perkiraan error. Kalman
filter seringkali diimplementasi dalam sistem embedded control, karena dalam rangka untuk
mengontrol suatu proses, diperlukan perkiraan yang akurat dari variabel proses.

Gambar 2.12 Algoritma Perhitungan Kalman Filter


(Sumber: cs.brown.edu)
20

Menjelaskan masalah filter pada proses yang linier, sehingga filter tersebut
dikenal dengan nama Kalman Filter. Kalman Filter dapat menghilangkan noise dari suatu
sinyal yang mengandung informasi dan mengambil informasi tersebut untuk diproses lebih
lanjut. Suatu proses yang menggunakan Kalman Filter untuk memfilter noise harus dapat
disajikan dalam dua persamaan, yaitu persamaan state dan persamaan keluaran. Masing-
masing persamaan mempunyai noise dan saling bebas, sehingga tidak ada korelasi saling
antara kedua noise. Hasil perhitungan optimal yang digunakan untuk mendapatkan nilai
estimasi pada Kalman Filter.

Persamaan state dapat dimodelkan sebagai berikut :


0 1 
xk 1    xk  wk
0 0 
z k  1 0xk  vk

GyroAngleDot 
dengan xk    , dan wk dan vk merupakan variabel acak dari proses noise dan
 GyroBias 
measurement noise.

Persamaan yang spesifik dari time and measurement updates dapat dilihat pada Tabel
2.1 dan Tabel 2.2.

Tabel 2.1 Persamaan Time Update


Project the state ahead

xˆ k  Axˆ k 1  Bu k

Project the error covariance ahead

Pk  APk 1 AT  Q

Tabel 2.2 Persamaan Measurement Update


21

Compute the kalman gain

K k  Pk H T ( HPk H T  R)1

Update estimate with measurement zk

xˆk  xˆk  K k ( zk  Hxˆk )

Update the error covariance

Pk  ( I  K k H ) Pk

2.9 Motor DC
Motor listrik sangat sering digunakan sebagai elemen kontrol akhir dalam sistem kontrol
posisi dan kecepatan. Prinsip kerja dasar dari sebuah motor listrik adalah gaya yang bekerja
pada konduktor yang berada di dalam suatu medan magnet ketika ada arus yang melewati
konduktor tersebut (W. Bolton, 2004)
Motor DC memerlukan suplai tegangan yang searah pada kumparan medan untuk diubah
menjadi energi mekanik. Kumparan medan pada motor dc disebut stator (bagian yang tidak
berputar) dan kumparan jangkar disebut rotor (bagian yang berputar).
Jika terjadi putaran pada kumparan jangkar dalam pada medan magnet, maka akan timbul
tegangan (GGL) yang berubah-ubah arah pada setiap setengah putaran, sehingga merupakan
tegangan bolak-balik.
Prinsip kerja dari arus searah adalah membalik phasa tegangan dari gelombang yang
mempunyai nilai positif dengan menggunakan komutator, dengan demikian arus yang berbalik
arah dengan kumparan jangkar yang berputar dalam medan magnet. Bentuk motor paling
sederhana memiliki kumparan satu lilitan yang bisa berputar bebas di antara kutub-kutub
magnet permanen.
22

Gambar 2.13 Motor DC Sederhana


Sumber: teorick.blogspot.com

Catu tegangan dc dari baterai menuju ke lilitan melalui sikat yang menyentuh
komutator, dua segmen yang terhubung dengan dua ujung lilitan. Kumparan satu lilitan pada
gambar di atas disebut angker dinamo. Angker dinamo adalah sebutan untuk komponen yang
berputar di antara medan magnet.

Prinsip Kerja Motor DC


Daerah kumparan medan yang yang dialiri arus listrik akan menghasilkan medan
magnet yang melingkupi kumparan jangkar dengan arah tertentu.
Konversi dari energi listrik menjadi energi mekanik (motor) maupun sebaliknya
berlangsung melalui medan magnet, dengan demikian medan magnet disini selain
berfungsi sebagai tempat untuk menyimpan energi, sekaligus berfungsi sebagai tempat
berlangsungnya proses perubahan energi dan daerah tersebut dapat dilihat pada Gambar
dibawah ini :

Gambar 2.14 Prinsip Kerja Motor DC


Sumber: biondiocta.wordpress.com
23

Dengan mengacu pada hukum kekekalan energi :


Proses energi listrik = energi mekanik + energi panas + energi didalam medan magnet.
Maka dalam medan magnet akan dihasilkan kumparan medan dengan kerapatan fluks sebesar
B dengan arus adalah I serta panjang konduktor sama dengan L maka diperoleh gaya sebesar
F, dengan persamaan sebagai berikut :
F = B I L...........(N) (2-44)
Arah dari gaya ini ditentukan oleh aturan kaidah tangan kiri, adapun kaidah tangan kiri
tersebut adalah sebagai berikut :
Ibu jari sebagai arah gaya ( F ), telunjuk jari sebagai fluks ( B ), dan jari tengah sebagai
arus ( I ). Bila motor dc mempunyai jari-jari dengan panjang sebesar ( r ), maka hubungan
persamaan dapat diperoleh :
Tr = Fr = B I L r.....(Nm) (2-45)
Saat gaya ( F ) tersebut dibandingkan, konduktor akan bergerak didalam kumparan
medan magnet dan menimbulkan gaya gerak listrik yang merupakan reaksi lawan terhadap
tegangan sumber.
Agar proses perubahan energi mekanik tersebut dapat berlangsung secara
sempurna, maka tegangan sumber harus lebih besar dari pada tegangan gerak yang disebabkan
reaksi lawan.
Dengan memberi arus pada kumparan jangkar yang dilindungi oleh medan maka
menimbulkan perputaran pada motor.

2.10 Driver Motor H-Bridge L298N


Driver motor berfungsi sebagai pengubah sinyal PWM dari mikrokontroler menjadi
tegangan. Dalam aplikasinya, driver motor biasanya tersusun dari rangkaian transistor-
transistor yang tersusun sedemikian rupa sehingga mampu mengendalikan arah putar dan
kecepatan motor berdasarkan arah loop dan tegangan kutub motor.
L298N adalah jenis IC driver motor yang dapat mengendalikan arah putaran dan
kecepatan motor DC ataupun Motor stepper. Mampu mengeluarkan output tegangan untuk
Motor dc dan motor stepper sebesar 50 volt. IC l298 terdiri dari transistor-transistor logik
(TTL) dengan gerbang nand yang memudahkan dalam menentukkan arah putaran suatu motor
dc dan motor stepper. Dapat mengendalikan 2 untuk motor dc namun pada hanya dapat
24

mengendalikan 1 motor stepper. Kelebihan akan modul driver motor L298N ini yaitu dalam
hal kepresisian dalam mengontrol motor sehingga motor lebih mudah untuk dikontrol.
Rangkaian ini dihubungkan ke arduino Due. Bentuk fisik dari driver motorH-Bridgr L298N
adalah seperti pada Gambar 2.15.

Gambar 2.15 Driver motor H-Bridge L298N


Sumber: Driver Motor H-Bridge L298N datasheet.

2.11 PWM (Pulse Width Modulation)


Pulse Width Modulation (PWM) adalah metode yang dapat digunakan untuk mengatur
kecepatan dari motor DC. Dimana kecepatan motor DC tergantung pada besarnya duty cycle
yang diberikan pada motor dc tersebut.
Pada sinyal pwm, frekuensi sinyal konstan sedangkan duty cycle bervariasi dari 0%-
100%. Duty cycle adalah besarnya sinyal kontrol yang diberikan pada motor. Persamaan untuk
perhitungan duty cycle ditunjukkan pada persamaan 2.47 dengan Ton adalah periode logika
tinggi, dan T adalah periode keseluruhan. Sinyal PWM secara umum dapat dilihat dalam
Gambar 2.16.

Gambar 2.16 Sinyal pwm Secara Umum


Sumber: hekilledmywire.wordpress.com
25

𝑇𝑜𝑛
𝐷𝑢𝑡𝑦 𝐶𝑦𝑐𝑙𝑒 = 𝑥 100%….(%) (2.46)
𝑇

Dengan :
𝑇𝑜𝑛 = Periode logika tinggi
𝑇 = Periode Keseluruhan

Vdc= Dutycycle x Vcc……...(V)


Sedangkan frekuensinya dapat ditentukan dengan rumus sebagai berikut:
𝑓𝑐𝑙𝑘 𝐼/𝑂
𝑓𝑂𝑛 = ……………..(Hz) (2.47)
𝑁.256

2.12 Mikrokontroler Arduino Mega 2560


Arduino Mega2560 adalah papan mikrokontroler berbasiskan ATmega2560 (datasheet
ATmega2560). Arduino Mega2560 memiliki 54 pin digital input/output, dimana 15 pin dapat
digunakan sebagai output PWM, 16 pin sebagai input analog, dan 4 pin sebagai UART (port
serial hardware), 16 MHz kristal osilator, koneksi USB, jack power, header ICSP, dan tombol
reset. Ini semua yang diperlukan untuk mendukung mikrokontroler. Cukup dengan
menghubungkannya ke komputer melalui kabel USB atau power dihubungkan dengan adaptor
AC-DC atau baterai untuk mulai mengaktifkannya. Arduino Mega2560 kompatibel dengan
sebagian besar shield yang dirancang untuk Arduino Duemilanove atau Arduino Diecimila.
Arduino Mega2560 adalah versi terbaru yang menggantikan versi Arduino Mega. (Arduino,
2016).
Arduino Mega2560 berbeda dari papan sebelumnya, karena versi terbaru sudah tidak
menggunakan chip driver FTDI USB-to-serial. Tapi, menggunakan chip ATmega16U2
(ATmega8U2 pada papan Revisi 1 dan Revisi 2) yang diprogram sebagai konverter USB-to-
serial. Arduino Mega2560 Revisi 2 memiliki resistor penarik jalur HWB 8U2 ke Ground,
sehingga lebih mudah untuk dimasukkan ke dalam mode DFU.
26

Gambar 2.17 Arduino Mega2560


Sumber: www.arduino.cc

Arduino Mega2560 Revisi 3 memiliki fitur-fitur baru berikut:


1. Pinout
Ditambahkan pin SDA dan pin SCL yang dekat dengan pin AREF dan dua pin baru
lainnya ditempatkan dekat dengan pin RESET, IOREF memungkinkan shield untuk
beradaptasi dengan tegangan yang tersedia pada papan.
2. Sirkuit RESET
Sirkuit reset adalah jalur pengaturan program ulang. dimana fitur ini dapat digunakan
ketika terdapat kesalahan dalam pemograman. Atau ingin mengganti program.
3. Chip ATmega16U2 menggantikan chip ATmega8U2
Menggunakan chip ATmega16U2 (ATmega8U2 pada papan Revisi 1 dan Revisi 2)
yang diprogram sebagai konverter USB-to-serial. Arduino Mega2560 Revisi 2
memiliki resistor penarik jalur HWB 8U2 ke Ground, sehingga lebih mudah untuk
dimasukkan ke dalam mode DFU

2.13 Gyroscope
Gyroscope adalah suatu alat yang berupa sensor gyro untuk menentukan orientasi
gerak dengan bertumpu pada roda atau cakram yang berotasi dengan cepat pada sumbu.
Berdasarkan keterangan tersebut, maka pergerakan gyroscope digambarkan seperti pada
gambar 2.18.
27

Gambar 2.18 Analogi 3-Axis Gyroscope


Sumber : http://www.datasheetgo.com/mpu6050-invensense

Gyroscope memiliki output yang peka terhadap kecepatan sudut dari arah sumbu x
yang nantinya akan menjadi sudut phi (roll), dari sumbu y nantinya menjadi sudut (pitch), dan
sumbu z nantinya menjadi sudut psi (yaw).
Penggunaan gyroscope dalam kehidupan sehari-hari belum banyak. Gyroscope
lazimnya digunakan pada pesawat terbang, Kapal, Helikopter,dll. Hal tersebut untuk
mengurangi getaran yang ditimbulkan mesin agar keseimbangan tidak goyah. Gyroscope baru-
baru ini juga diterapkan pada mainan Helicopter dengan tujuan menyeimbangkan saat
diterbangkan.

2.14 Accelerometer
Accelerometer adalah alat yang digunakan untuk mengukur percepatan mendeteksi dan
mengukur getaran (vibrasi), dan mengukur percepatan akibat gravitasi. Sensor accelerometer
mengukur percepatan dari 3 sumbu gerakan akibat gerakan benda yang melekat padanya.
Gambar 2.19 menunjukkan daerah kerja accelerometer.

Gambar 2.19 Analogi 3-Axis accelerometer


Sumber: datasheet ADXL345
28

Percepatan merupakan suatu keadaan berubahnya kecepatan terhadap waktu.


Bertambahnya suatu kecepatan dalam suatu rentang waktu disebut juga percepatan
(acceleration). Jika kecepatan semakin berkurang dari pada kecepatan sebelumnya, disebut
deceleration. Percepatan juga bergantung pada arah /orientasi karena merupakan penurunan
kecepatan yang merupakan besaran vector. Berubahnya arah pergerakan suatu benda akan
menimbulkan percepatan pula.
29

BAB III
METODOLOGI PENELITIAN

Pada penulisan skripsi ini akan dirancang kontroler self – tuning PID (Proporsional
Integral Derivatif) yang berfungsi sebagai pengendali robot beroda dua dan Kalman Filter
yang berfungsi sebagai penggabungan dan pemrosesan data pada sensor accelerometer dan
sensor gyroscope. Perancangan robot beroda dua ini dilakukan secara bertahap sehingga akan
memudahkan dalam analisis pada setiap bloknya maupun secara keseluruhan. Untuk
menyelesaikan rumusan masalah dan merealisasikan tujuan peneliatian yang terdapat di bab
pendahuluan, maka diperlukan metode untuk menyelesaikan masalah tersebut. Metode
penelitian pada skripsi ini meliputi :
1. Perancangan blok diagram sistem.
2. Spesifikasi desain.
3. Karakterisasi setiap blok.
Karakterisasi setiap blok dilakukan untuk mempermudah analisis sistem. Karakteristik
dibagi menjadi beberapa bagian, yaitu:
a. Karakterisasi plant (sistem kesetimbangan dengan aktuator (Motor DC 12 V JGA25-
370)).
b. Karakterisasi driver (L298N Dual H-Bridge Motor Driver).
c. Karakterisasi sensor MPU 6050 GY – 521.
d. Karakterisasi pengujian gangguan pada plant.
4. Perancangan perangkat keras.
Perancangan perangkat keras meliputi sistem mekanik dan elektrik robot beroda dua
dan sistem keseluruhan (hardware dan software) robot beroda dua.
5. Perancangan dan pembuatan algoritma Kalman filter.
6. Penentuan nilai awal parameter estimasi dan parameter kontroler.
7. Perancangan dan pembuatan program algoritma self-tuning controller
Metode penelitian tersebut dijelaskan sebagai berikut :
30

3.1 Perancangan Blok Diagram Sistem


Pada perancangan alat, diperlukan perancangan diagram blok sistem yang dapat
menjelaskan sistem secara garis besar yang sangat diperlukan pada perancangan alat dan
diharapkan alat dapat bekerja sesuai dengan yang diharapkan dan direncakan didesain dapat
dilihat pada Gambar 3.1.

Gambar 3.1 Blok Digram Sistem Loop Tertutup Kesetimbangan Robot Beroda Dua

Keterangan:
u c (t ) : setpoint (nilai masukan sistem yang diinginkan pada keluaran sistem).
e(t ) : nilai selisih antara setpoint dengan output.

u (t ) : nilai keluaran dari kontroler PID (sinyal kontrol).

y (t ) : keluaran sebenarnya dari sistem.

ˆ(t ) : parameter estimasi yang dihasilkan dari metode RLS.

a : new Value berupa nilai sudut Pitch keluaran dari sensor accelerometer.
g : merupakan nilai kecepatan sudut keluaran dari sensor gyroscope.

g : merupakan new Rate berupa nilai sudut keluaran dari sensor gyroscope.

error : merupakan hasil pengurangan nilai a dengan g .


 : merupakan nilai sudut yang akan diperbaharui dengan perkalian error .
31

 bias : merupakan nilai bias yang akan diperbaharui dengan perkalian error .
Kontroler parameter: nilai yang menghasilkan parameter kontroler yang baru untuk kontroler
PID.

3.2 Spesifikasi Desain


Desain yang diinginkan pada perancangan pengontrolan kesetimbangan robot beroda
dua mempunyai spesifikasi yaitu :
1. Robot beroda dua dapat seimbang antara sudut -10° sampai +10° dari posisi seimbang
(sudut tegak lurus terhadap permukaan bumi adalah 0°).
2. Error Steady State < 0,5%
Error Steady State < 0,5%, karena sistem yang baik memiliki output dengan batas
nilai akhir 5% dari setpoint.
3. Settling time < 2 detik
Settling time < 2 detik, karena pada sistem diharapkan dengan menggunakan teknik
adaptif dengan skema self-tuning controller pada tuning kontroler PID mampu
mempercepat settling time sistem kurang dari 2 detik.
4. Tidak memiliki Overshoot
Sistem mempunyai nilai maximum overshoot 0%.

3.3 Karakterisasi Setiap Blok

3.3.1 Karakterisasi Plant Sistem Kesetimbangan dengan Aktuator


Tujuan karakterisasi plant sistem kesetimabangan dengan aktuator motor DC adalah
mengetahui karakter motor DC. Hal tersebut diperoleh dengan mengamati kecepatan motor
DC terhadap perubahan tegangan input motor DC.
Peralatan yang digunakan terdiri atas:
1. Arduino Mega,
2. Motor DC 12 V JGA25-370,
3. Tachometer digital,
4. Perangkat komputer, dan
5. Catu daya (Baterai 18650 11.1V).
32

Prosedur pengujian meliputi:


1. Menghubungkan output tegangan Catu daya (Baterai 18650 11.1V) pada input
tegangan referensi driver motor ( L298N Dual H-Bridge Motor Driver)
2. Menghubungkan input tegangan driver motor ( L298N Dual H-Bridge Motor Driver )
dengan pin output PWM di Arduino Mega
3. Menghubungkan output tegangan driver motor dengan motor DC 12V
4. Mengatur duty cycle sinyal PWM pada arduino Mega dengan nilai 0% - 100%
5. Mengamati dan mencatat hasil pembacaan putaran motor setiap kenaikan 20%.
Data hasil pengujian motor DC 12V (JGA25-370) ditunjukkan dalam Tabel 3.1.

Tabel 3.1 Data Pengukuran Arah dan Kecepatan Motor DC


Data motor DC A dan motor DC B
No
Duty Cycle (%) PWM RPM Arah putaran motor DC
1 0 0 0 Diam
2 20 -51 78,5 Berputar ke kiri
3 40 -102 287,5 Berputar ke kiri
4 60 -153 418,4 Berputar ke kiri
5 80 -204 469,9 Berputar ke kiri
6 100 -255 512,9 Berputar ke kiri
7 0 0 0 Diam
8 20 51 83,4 Berputar ke kanan
9 40 102 263,9 Berputar ke kanan
10 60 153 402,6 Berputar ke kanan
11 80 204 464 Berputar ke kanan
12 100 255 503,6 Berputar ke kanan
33

RPM TERHADAP DUTY CYCLE


Motor A dan B Kiri Motor A dan B kanan
600
500
400
RPM

300
200
100
0
0 20 40 60 80 100
DUTY CYCLE (%)

Gambar 3.2 Pengukuran Arah dan Kecepatan Motor DC

3.3.2 Karakterisasi L298N Dual H-Bridge Motor Driver.


Tujuan dari karakterisasi L298N Dual H-Bridge Motor Driver adalah mengetahui
karakteristik, kinerja dan output rangkaian driver motor L298N Dual H-Bridge Motor Driver
dengan membandingkan output tegangan driver dengan masukan duty cycle sinyal PWM yang
diberikan oleh Arduino Mega.
Peralatan yang digunakan terdiri atas:
1. Catu daya (Baterai 18650 11.1V).
2. Driver Motor ( L298N Dual H-Bridge Motor Driver ).
3. Arduino Mega.
4. Multimeter.
5. Perangkat komputer.
6. Kabel penghubung (jumper).
Prosedur pengujian meliputi:
1. Menghubungkan output tegangan Catu daya (Baterai 18650 11.1V) pada input
tegangan referensi driver motor ( L298N Dual H-Bridge Motor Driver).
2. Menghubungkan input tegangan driver motor ( L298N Dual H-Bridge Motor Driver )
dengan pin output PWM di Arduino Mega.
34

3. Menghubungkan output tegangan driver motor ( L298N Dual H-Bridge Motor Driver )
dengan multimeter.
4. Mengatur duty cycle sinyal PWM pada Arduino Mega dengan nilai 0%-100%.
5. Mengamati dan mencatat hasil pembacaan multimeter di setiap kenaikan 5%.

Data pengujian driver motor ( L298N Dual H-Bridge Motor Driver ) ditunjukkan
dalam Tabel 3.2. Pada Tabel tersebut terdapat duty cycle sebagai input driver. Output driver
berupa tegangan yang diukur menggunakan multimeter.

Tabel 3.2 Hasil Pengujian Driver (L298N Dual H-Bridge Motor Driver)

Duty Cycle Output driver ( L298N Dual H-Bridge


(%) Motor Driver ) dengan multimeter (V)
0 0
5 0,541
10 1,143
15 1,674
20 2,382
25 2,863
30 3,482
35 4,124
40 4,672
45 5,241
50 5,847
55 6,46
60 7,183
65 7,65
70 8,25
75 9,004
80 9,302
85 10,128
35

90 10,5
95 11,416
100 12,01

Berdasarkan Tabel 3.2 didapatkan kurva output tegangan driver (V) terhadap masukan
duty cycle sinyal PWM (%) seperti ditunjukkan pada Gambar 3.3

O UTPUT DRIVER ( L298N DUAL H - B RIDG E


M O TO R DRIVER ) DENG AN M ULTIM ETER ( V)
14
12
10
8
VOLT

6
4
2
0
0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100
DUTY CYCLE (%)

Gambar 3.3 Perubahan Tegangan Output Driver terhadap Duty Cycle

3.3.3 Karakterisasi Sensor MPU6050 GY-521


Dalam melakukan pengujian sensor, terdapat dua pengujian sensor MPU6050 yaitu
pengujian pada sensor accelerometer dan sensor gyroscope.

3.3.3.1 Karakterisasi Sensor Gyroscope


Tujuan dari karakterisasi sensor MPU6050 GY-521 adalah mengetahui tingkat
keakuratan dari sensor gyroscope dalam membaca perubahan posisi sudut yang dinamis dari
robot beroda dua.
Peralatan yang digunakan terdiri atas :
1. Arduino Mega,
2. Sensor MPU6050 GY-521,
3. Perangkat computer,
4. Catu daya 3,3 Volt, dan
36

5. Sistem mekanik robot beroda dua yang terhubung dengan sensor MPU6050 dan
mikrokontroler Arduino Mega.
Prosedur pengujian meliputi:
1. Robot dikondisikan dalam posisi tegak, kemudian pembacaan data sensor gyroscope
dijalankan. Pada saat program sedang running, robot dimiringkan ke depan dan ke
belakang secara kontinyu dalam interval tertentu.
2. Setelah interval waktu tertentu, pembacaan data output sensor dihentikan dan
kemudian data output berupa besaran sudut tersebut dilihat.

Pengujian sensor gyroscope terhubung dengan mekanik robot beroda dua dan
mikrokontroler Arduino Mega. Kemudian data dari sensor gyroscope akan dibuat input dan
keluarannya adalah nilai pwm motor DC yang kemudian menjadikannya sudut tegak lurus.
Kemiringan dari robot beroda dua diubah-ubah dalam interval waktu tertentu. Perubahan sudut
dari sensor gyroscope yang terjadi akan ditampilkan lewat komputer pada serial monitor
arduino.
Pengujian sensor gyroscope yang merupakan sensor kecepatan sudut. Kecepatan sudut
merupakan besaran vektor dimana nilainya juga bergantung pada arah pergerakan robot
beroda dua. Dimana pengujian dilakukan dengan cara memiringkan robot ke depan dan ke
belakang secara kontinyu dalam selang waktu tertentu. Gambar 3.4 menunjukan data output
dari sensor gyroscope hasil dari pengujian.
37

Gambar 3.4 Data Hasil Pengujian Output Sensor Gyroscope


Berdasarkan data yang terdapat pada Gambar 3.4 di atas, ketika sensor gyroscope
diam, nilai output sensor mendekati nol, artinya kecepatan sudut dari robot mendekati nilai
nol. Ketika robot digerakkan ke depan ataupun ke belakang gerakan yang pertama, nilai output
sensor gyroscope adalah sekitar 17°/s. Pada gerakan yang kedua, nilai output sensor gyroscope
adalah sekitar 35°/s. Pada gerakan yang ketiga, nilai output sensor gyroscope adalah sekitar
39°/s.
Berdasarkan Gambar 3.4 di atas dan penjabaran pada paragraf diatas, sensor gyroscope
mendeteksi kemiringan melalui arah pergerakan robot. Dimana, ketika robot dimiringkan
kedepan, nilai output sensor gyroscope bernilai positif, dan bernilai negatif ketika digerak –
miringkan ke belakang. Nilai output sensor gyroscope selalu mendekati nol ketika robot dalam
keadaan diam walaupun terjadi kemiringan pada robot.

3.3.3.2 Karakterisasi Sensor Accelerometer


Tujuan dari karakterisasi sensor MPU6050 GY-521 adalah mengetahui tingkat
keakuratan dari sensor accelerometer dalam membaca perubahan sudut dari robot beroda dua.
Peralatan yang digunakan terdiri atas :
1. Arduino Mega,
38

2. Sensor MPU6050 GY-521,


3. Perangkat computer,
4. Catu daya 3,3 Volt, dan
5. Sistem mekanik robot beroda dua yang terhubung dengan sensor MPU6050 dan
mikrokontroler Arduino Mega.
Prosedur pengujian meliputi:
1. Robot dikondisikan dalam posisi tegak, kemudian pembacaan data sensor
accelerometer dijalankan. Pada saat program sedang running, robot dimiringkan ke
depan dan ke belakang secara kontinyu dalam interval tertentu.
2. Setelah interval waktu tertentu, pembacaan data output sensor dihentikan dan
kemudian data output berupa besaran sudut tersebut dilihat.
Pengujian sensor accelerometer terhubung dengan mekanik robot beroda dua dan
mikrokontroler Arduino Mega. Kemudian data dari sensor gyroscope akan dibuat input dan
keluarannya adalah nilai pwm motor DC yang kemudian menjadikannya sudut tegak lurus.
Kemiringan dari robot beroda dua diubah-ubah dalam interval waktu tertentu. Perubahan sudut
dari sensor accelerometer yang terjadi akan ditampilkan lewat komputer pada serial monitor
arduino.
Sensor accelerometer adalah salah satu sensor yang akan digunakan untuk mendeteksi
kemiringan atau posisi robot beroda dua. Untuk itu, hal yang pertama diuji adalah output dari
sensor accelerometer. Sensor accelerometer mengukur kemiringan robot beroda dua dalam 3
sumbu, yaitu x, y dan z. Pengujian dilakukan dengan cara memiringkan robot ke depan dan ke
belakang secara kontinyu dalam selang waktu tertentu.
39

Gambar 3.5 Data Hasil Pengujian Output Sensor Accelerometer


Berdasarkan data yang terdapat pada Gambar 3.5 di atas, range nilai output sensor
accelerometer adalah berkisar antara +20 hingga -20. Ketika robot berada pada kemiingan
awal, x bernilai sekitar 0, y bernilai sekitar 0, dan z bernilai sekitar 10. Kemudian robot lebih
dimiringkan, x berubah nilai menjadi sekitar -3, y berubah sekitar -2, z bernilai sekitar 8. Pada
pengujian kemiringan kedua, x berubah sekitar 4, y bernilai sekitar 2, dan z bernilai sekitar 12.
Pada pengujian ketiga, x berubah ke -7, y bernilai sekitar -1, z bernilai sekitar 19.
Berdasarkan Gambar 3.5 dan penjabaran data pada paragraph di atas, nilai x dari hasil
pengujian mempresentasikan nilai dari kemiringan robot. Hal itu dapat dilihat ketika robot
berdiri tegak, nilai y mendekati nol, bernilai semakin positif saat dimiringkan ke depan dan
bernilai semakin negatif ketika robot semakin dimiringkan ke belakang. Nilai z tidak
mempresentasikan nilai dari kemiringan robot. Dapat disimpulkan bahwa sensor
accelerometer sudah bekerja dengan baik dan output sensor accelerometer yang digunakan
untuk mendeteksi kemiringan robot adalah nilai dari y.
40

3.4 Perancangan Perangkat Keras


Pembuatan perangkat keras dilakukan sebagai langkah awal sebelum terbentuknya
suatu sistem beserta pemogramannya. Hal ini dimaksudkan agar pemodelan sistem
kesetimbangan robot beroda dua dengan pengontrol sudut output menggunakan self – tuning
PID controller model dan kalman filter dapat berjalan sesuai dengan spesifikasi desain yang
telah direncanakan. Hal yang perlu dilakukan pada pembuatan perangkat keras dan pemilihan
modul elektronik. Skema dari perangkat keras adalah seperti pada Gambar 3.6.

Gambar 3.6 Skema pembuatan perangkat keras

Modul elektronik yang digunakan adalah sebagai berikut :


1. Baterai 18650 sebagai catu daya driver motor dan mikrokontroler
Pada robot beroda dua, menggunakan catu daya berupa baterai 18650 3,7V dengan cara
membuat rangkaian seri dari 3 baterai 18650, sehingga dihasilkan tegangan sebesar 11,1V.

Gambar 3.7 Baterai 18650


41

2. Mikrokontroler Arduino Mega 2560 sebagai perangkat kontroler


Mikrokontroler Arduino Mega 2560 digunakan pada robot beroda dua sebagai perangkat
dalam memproses perhitungan parameter kontroler maupun saat pemrosesan filter.

Gambar 3.8 Arduino Mega 2560

3. Sensor MPU6050 GY-521 sebagai pengukur sudut dari robot beroda dua
Pada pengukuran sudut robot beroda dua, digunakan modul sensor digital MPU6050 GY-
521 dengan dua pengukuran kesetimbangan robot yaitu, accelerometer dan gyroscope.

Gambar 3.9 Sensor MPU6050 GY-521

4. Driver Motor H-Bridge L298N


Driver Motor H-Bridge L298N digunakan untuk memproses keluaran dari mikrokontroler
menuju ke aktuator robot beroda dua.

Gambar 3.10 Driver motor H-bridge L298N


42

5. Komputer atau PC yang sudah terinstall software arduinoIDE 1.8.7


Software arduinoIDE 1.8.7 adalah perangkat lunak yang digunakan untuk memprogram
mikrokontroler Arduino Mega 2560.

Gambar 3.11 Komputer yang terinstall Arduino IDE

6. Plant sistem kesetimbangan robot beroda dua dengan aktuator


Sistem kesetimbangan robot beroda dua berupa sudut -90° sampai 90° dipertahankan
dengan menggunakan aktuator yang ditempatkan di sisi kanan dan kiri robot.

Gambar 3.12 Plant sistem kesetimbangan dengan aktuator motor DC


43

Prinsip kerja sistem pengontrolan sudut output pada plant sistem kesetimbangan robot
beroda dua dengan menggunakan self – tuning PID controller dan kalman filter berdasarkan
skema perangkat keras pada gambar 3.6 adalah sebagai berikut:
1. Sudut output dari plant sistem kesetimbangan robot beroda dua akan dibaca oleh sensor
sudut dengan nilai -10° sampai 10°.
2. Selanjutnya hasil pembacaan dari sensor sudut berfungsi sebagai masukan pada
mikrokontroler Arduino Mega 2560 sebagai pemroses utama.
3. Kemudian sudut keluaran tersebut diproses menggunakan self – tuning PID controller
sehingga menghasilkan keluaran berupa sinyal PWM.
4. Keluaran sinyal PWM dari Arduino Mega 2560 digunakan sebagai sinyal kontrol bagi
aktuator berupa motor dc yang kemudian masuk ke dalam Driver L298N yang dicatu
dengan baterai 18650 11,1 V.
5. Tengangan keluaran dari driver L298N merupakan sinyal kontrol PWM yang telah
dikuatkan.
6. Motor DC akan bergerak sesuai dengan besar duty cycle PWM yang dikeluarkan oleh
mikrokontroler Arduino Mega 2560 dan sistem kesetimbangan robot beroda dua akan
menghasilkan sudut output yang kemudian akan dibaca kembali oleh sensor sudut.
7. Kemudian hasil dari pembacaan sensir akan ditampilkan melalui computer menggunakan
software visual studio.

3.5 Perancangan Algoritma Kalman Filter

Gambar 3.13 Blok Diagram Kalman Filter Update


44

Sebelum Kalman filter dapat digunakan dan diimplementasikan pada robot beroda dua,
dilakukan perancangan algoritma kalman filter dalam bentik sistem matematis. Secara umum
algoritma kalman filter akan ditemukan matrix dan vector matematis. Pada penelitian ini
menggunakan algoritma penggabungan nilai sensor accelerometer dan sensor gyroscope agar
menghilangkan noise dalam sensor sudut dan lebih mudah diterapkan ke dalam bahasa
pemograman bahasa c pada software Arduino IDE. Langkah – langkah dalam algoritma
kalman filter seperti pada gambar 3.13 direpresentasikan dalam bentuk matematis seperti pada
persamaan berikut:
1. Pertama, menginisialisasi state estimasi awal berupa prediksi dengan menentukan nilai
kalman bias awal senilai 0,001 dan mendapatkan nilai pembacaan sudut gyroscope
dengan mengintegralkannya.

2. Kedua, menginisialisasi error covariance awal


45

3. Ketiga, mencari nilai pembacaan error sudut dengan hasil dari pengurangan sudut
accelerometer dengan sudut gyroscope.

4. Keempat, mencari nilai baru untuk kalman gainnya dengan nilai kalman measure (R)
senilai 0,03.

5. Kelima, memperbaharui nilai kalman angle dan kalman bias

6. Keenam, memperbaharui nilai error covariance


46

3.6 Perancangan dan Pembuatan Program Self-Tuning PID Controller


Perancangan algoritma pada skripsi ini meliputi:
1. Perancangan algoritma untuk mencari estimasi parameter dari plant.
2. Perancangan algoritma untuk mendapatkan parameter kontroler dengan metode Dahlin
PID Kontroler.
3. Perancangan algoritma untuk menentukan estimasi parameter kontrol awal.
4. Pembuatan flowchart untuk pembuatan program di perangkat lunak.
5. Implementasi pada alat.

3.7 Penentuan Nilai Awal Parameter Estimasi dan Parameter Kontrol


Untuk mencari nilai awal parameter estimasi dilakukan dengan proses identifikasi sistem.
Identifikasi sistem kesetimbangan robot beroda dua dilakukan dengan cara membangkitkan
sinyal Pseudo Random Binary Sequence (PRBS) pada mikrokontroler yang kemudian menjadi
sinyal masukan sistem kesetimbangan robot beroda dua. Dari pasangan data masukan dan
keluaran sudut dari sistem kesetimbangan robot beroda dua dapat dilakukan identifikasi.
Selanjutnya memproses data masukan dan keluaran menggunakan sintaks ident pada
software Matlab dengan struktur Model Auto Regressive with Exogenous (ARX) yang dapat
dituliskan pada persamaan 3.1:

𝐴(𝑞 )𝑦(𝑘) = 𝐵(𝑞)𝑢(𝑘 − 𝑛𝑘) + 𝑒(𝑘) (3.1)

Dengan:

A(q)=1+a1q-1+a2q-2…+anaq-na
47

B(q)=b1q-1+b2q-2…+bnbq-nb

𝑦(𝑘) = keluaran

𝑢(𝑘) = masukan

𝑒(𝑘) = gangguan

Atau dalam bentuk diagram seperti pada gambar 3.14.

Gambar 3.14 Struktur model ARX

Gambar 3.15 System Indetification Tool


48

Gambar 3.16 Sinyal output dari estimasi model

Proses identifikasi dilakukan beberapa kali hingga didapatkan besfit yang terbaik. Dari
hasil identifikasi, didapatkan fungsi alih sistem kesetimbangan robot beroda dua yang
memiliki besfit sebesar 90,23%. Fungsi alih tersebut dapat dilihat pada persamaan 3.2

0,007245𝑧 −1 +0,00222𝑧 −2
𝐺(𝑧 −1) = (3.2)
1−0,7648𝑧 −1 −0,2174𝑧 −2

Dengan nilai 𝑎̂1 = −0.7648, 𝑎̂2 = −0.2174, 𝑏̂1 = 0.007245.

Setelah mendapatkan nilai 𝑎̂1 , 𝑎̂2, dan 𝑏̂1 yang didapat dari persamaan (3-1) langkah
selanjutnya adalah menghitung nilai K P , TI , TD dengan menggunakan persamaan (2-9), (2-10),
(2-11), (2-12), (2-13). Untuk waktu sampling 𝑇0 = 0,05 detik dan nilai adjustment factor
menurut Bobál et al, B  1x10 6 , oleh karena itu perhitungan ditunjukan dengan cara dibawah
ini :
𝑇0 0,05
𝑄 = 1 − 𝑒 − 𝐵 = 1 − 𝑒 10−6 = 1
𝑎1 +(2 𝑥 𝑎2) −0,7648+(2 x(−0,2174))
𝐾𝑃 = − 1 𝑋 ( 𝑥 𝑄) = − 1 𝑋 ( 𝑥 1) = 165,57
𝑏1 0,007245

𝑇0 𝑥 𝑎2 𝑥 𝑄 0,05 𝑥 (−0,2174) 𝑥 1
𝑇𝑑 = = = − 0,009061357
𝐾𝑝 𝑥 𝑏1 165,5762 𝑥 0,007245

𝐾𝑑 = 𝐾𝑝 𝑥 𝑇𝑑 = 165,5762 𝑥 (−0,009061357) = −1,500345


49

𝑇0 0,05
𝑇𝑖 = − 1 𝑥 ( 1 𝑇 )= −1𝑥 ( 1 −0,00906 ) = 3,3696
+1+ 𝑑 −1,1996
+1+(
0,05
)
𝑎1+(2 𝑥 𝑎2) 𝑇0

𝐾𝑃 165,5762
𝐾𝑖 = = = 49,149
𝑇𝑖 3,3696

Dari perhitungan diatas didapatkan bahwa nilai parameter gain kontroler awal 𝐾𝑃 =
165,5762, 𝐾𝑑 = −1,500345, 𝐾𝑖 = 49,149

3.8 Flowchart Program Utama


Perancangan perangkat lunak berkaitan dengan flowchart program yang akan
diimplementasikan ke mikrokontroler Arduino Mega 2560. Gambar 3.17 adalah flowchart
sistem keseluruhan dan flowchart Self-Tuning Controller.

Gambar 3.17 Flowchart sistem keseluruhan


50
51

BAB IV
HASIL DAN PEMBAHASAN

Hasil dan pembahasan dilakukan dengan melakukan pengujian sistem. Pengujian


sistem dilakukan untuk mengetahui apakah alat yang telah dibuat berfungsi dengan baik dan
sesuai dengan perancangan skema pembuatan. Pengujian pada sistem meliputi pengujian
setiap blok maupun pengujian sistem secara keseluruhan. Pengujian setiap blok dilakukan
untuk menemukan letak kesalahan dan mempermudah analisis pada sistem apabila alat tidak
bekerja sesuai dengan perancangan skema pembuatan. Pengujian pada sistem ini dibagi
menjadi dua bagian, yaitu:
1. Pengujian Kalman filter.
2. Pengujian Self – Tuning PID Controller Pada Robot Beroda Dua.

4.1 Pengujian Kalman Filter


Tujuan utama dari penggunaan kalman filter adalah menggabungkan nilai
accelerometer dan gyroscope serta menghilangkan noise pengukuran sensor. Penggabungan
dari sensor accelerometer dan gyroscope adalah sudut dan sudut digunakan sebagai umpan
balik (feedback) pada diagram blok sistem. Pengujian ini dilakukan untuk mengetahui hasil
output sensor dan menghasilkan sudut pitch untuk keseimbangan sistem. Data hasil pengujian
kalman filter digambarkan dalam bentuk grafik.

Hasil Keluaran Sensor sudut


0.6

0.4

0.2
Sudut Pitch (derajat)

-0.2

-0.4

-0.6 Data Tanpa Filter


Data Terfilter

-0.8
0 100 200 300 400 500 600 700 800 900 1000
Data ke -

Gambar 4.1 Data Hasil Pengujian Kalman Filter Tanpa Gangguan Pada Sensor
MPU6050 GY-521
52

Dari Gambar 4.1 terlihat bahwa pengujian Kalman filter pada sensor MPU6050 GY-
521 sudah akurat, terlihat dari keluaran data sensor tanpa menggunakan filter memiliki range
keluaran yang tidak mendekati nilai sudut 0°, sementara pada keluaran data sensor dengan
filter memiliki nilai yang mendekati nilai sudut 0°. Pada gambar 4.1 hasil pengujian dilakukan
tanpa diberi gangguan luar.

Hasil Keluaran Sensor sudut


50
Data Tanpa Filter
Data Terfilter

0
Sudut Pitch (derajat)

-50

Gangguan luar
-100
0 100 200 300 400 500 600 700 800 900 1000
Data ke -

Gambar 4.2 Data Hasil Pengujian Kalman Filter dengan Gangguan Pada Sensor
MPU6050 GY-521

Dari Gambar 4.2 merupakan hasil pengujian kalman filter dari sensor MPU6050 GY-
521 dengan adanya gangguan luar berupa getaran. Hasil dari keluaran filter tetap
menunjukkan nilai sudut mendekati 0°, sementara data tanpa menggunakan kalman filter
memiliki nilai sudut yang sangat jauh dari 0°. Dapat disimpulkan bahwa penujian Kalman
filter pada sensor MPU6050 GY-521 sudah bekerja dengan baik.

4.2 Pengujian Self – Tuning PID Controller Pada Robot Beroda Dua
Pengujian dilakukan dengan nilai setpoint 0°. Dari pengujian yang dilakukan akan
diamati respon sistem dengan melihat sudut output yang dihasilkan, dan melihat perubahan
parameter gain kontroler PID serta perubahan nilai estimasi yang didapatkan pada sistem
dengan menggunakan kalman filter dan tanpa menggunakan kalman filter.
53

Respon sistem dengan menggunakan kalman filter dan perubahan parameter gain
kontroler PID serta perubahan nilai estimasi yang didapatkan masing – masing ditunjukkan
pada gambar 4.3, 4.4, 4.5.

Output sistem pada saat setpoint 0 derajat


0.5

-0.5
Sudut (derajat)

-1

-1.5

-2
Keluaran Sistem
Batas Atas Toleransi 0,5%
-2.5 Setpoint
Batas Bawah Toleransi 0,5%

-3
0 100 200 300 400 500 600 700 800 900 1000
Waktu (ms)

Gambar 4.3 Respon sistem dengan setpoint 0° menggunakan kalman filter

Dari grafik respon sistem pada gambar 4.3 dapat diketahui bahwa respon sisten dengan
setpoint 0° menggunakan kalman filter memiliki nilai settling time sebesar 0,493 detik, error
steady state sebesar 0,14% dan tidak memiliki overshoot.

Perubahan nilai estimasi dengan setpoint 0° menggunakan kalman filter ditunjukkan


pada gambar 4.4.

Perubahan Nilai Parameter Estimasi Pada Setpoint 0 derajat


0.1

-0.1

-0.2

-0.3
Nilai

-0.4

-0.5

-0.6 a1
a2
-0.7 b1

-0.8
0 100 200 300 400 500 600 700 800 900 1000
Waktu(ms)

Gambar 4.4 Perubahan nilai estimasi dengan setpoint 0°


54

Dari grafik perubahan nilai estimasi pada gambar 4.4, dapat dilihat nilai 𝑎̂1 berubah
dari nilai awal sebesai -0,7648 menjadi -0,7652, sedangkan untuk nilai 𝑎̂2 berubah dari nilai
awal sebesar -0,2174 menjadi -0,217405 dan untuk nilai 𝑏̂1 berubah dari nilai awal sebesar
0,00724 menjadi 0,00715.

Perubahan Nilai Parameter Kontroler PID Pada Setpoint 0 derajat


180

160
Kp
140 Ki
Kd
120

100
Nilai

80

60

40

20

-20
0 100 200 300 400 500 600 700 800 900 1000
Waktu(ms)

Gambar 4.5 Perubahan nilai parameter gain kontroler PID dengan setpoint 0°

Dari grafik perubahan nilai parameter kontroler PID pada gambar 4.5, dapat dilihat
nilai parameter gain kontroler PID dengan menggunakan kalman filter memiliki perubahan
yang tidak terlalu derastis, maupun saat kondisi steady state. Nilai akhir dari Kp sebesar
167,79, sedangkan untuk nilai Ki sebesar 49,79, dan untuk nilai Kd sebesar -1,52.

Respon sistem tanpa menggunakan kalman filter dan perubahan parameter gain
kontroler PID serta perubahan nilai estimasi yang didapatkan masing – masing ditunjukkan
pada gambar 4.6, 4.7, 4.8.
55

Output sistem pada saat setpoint 0 derajat


6

Sudut (derajat) 2

-2

Keluaran Sistem
Batas Atas Toleransi 0,5%
-4
Setpoint
Batas Bawah Toleransi 0,5%

-6
0 100 200 300 400 500 600 700 800 900 1000
Waktu (ms)

Gambar 4.6 Respon sistem dengan setpoint 0° tanpa menggunakan filter

Dari grafik respon sistem pada gambar 4.6 dapat diketahui bahwa respon sisten dengan
setpoint 0° tanpa menggunakan filter memiliki nilai settling time sebesar 0,221 detik, error
steady state sebesar 2,4% dan memiliki overshoot.

Perubahan nilai estimasi dengan setpoint 0° tanpa menggunakan filter ditunjukkan


pada gambar 4.7.

Perubahan Nilai Parameter Estimasi Pada Setpoint 0 derajat


0.1

-0.1

-0.2

-0.3
Nilai

-0.4

-0.5

-0.6 a1
a2
-0.7 b1

-0.8
0 100 200 300 400 500 600 700 800 900 1000
Waktu(ms)

Gambar 4.7 Perubahan nilai estimasi dengan setpoint 0° tanpa menggunakan filter
56

Dari grafik perubahan nilai estimasi pada gambar 4.4, dapat dilihat nilai 𝑎̂1 berubah
dari nilai awal sebesai -0,7648 menjadi -0,7683, sedangkan untuk nilai 𝑎̂2 berubah dari nilai
awal sebesar -0,2174 menjadi -0,21743 dan untuk nilai 𝑏̂1 berubah dari nilai awal sebesar
0,00724 menjadi 0,00195.

Perubahan Nilai Parameter Kontroler PID Pada Setpoint 0 derajat


700

Kp
600 Ki
Kd
500

400
Nilai

300

200

100

-100
0 100 200 300 400 500 600 700 800 900 1000
Waktu(ms)

Gambar 4.8 Perubahan nilai parameter gain kontroler PID dengan setpoint 0° tanpa
menggunakan filter

Dari grafik perubahan nilai parameter kontroler PID pada gambar 4.8, dapat dilihat
nilai parameter gain kontroler PID tanpa menggunakan filter memiliki perubahan nilai yang
bertahap hingga mencapai nilai steady state perubahannya semakin drastis. Nilai akhir dari Kp
sebesar 614,04, sedangkan untuk nilai Ki sebesar 181,66, dan untuk nilai Kd sebesar -5,56.
57

BAB V
KESIMPULAN DAN SARAN

5.1 Kesimpulan
Kesimpulan yang diperoleh dari penelitian ini adalah sebagai berikut:
1. Berdasarkan hasil penentuan nilai awal estimasi sistem kesetimbangan robot beroda dua
tanpa diberikan beban didapatkan parameter estimasi 𝑎̂1 = −0,7648, 𝑎̂2 = −0,2174, dan
𝑏̂1 = 0,007245. Parameter estimasi tersebut terjadi perubahan saat badan robot akan
diseimbangkan.
2. Berdasarkan hasil analisis pengujian Kalman filter, maka dapat disimpulkan
kesetimbangan robot beroda dua tercapai dengan nilai dari parameter Kalman angle =
0,001, Kalman bias = 0,003, Kalman measure = 0,03. Terlihat keluaran sensor MPU6050
GY-521 berupa sudut Pitch memiliki hasil keluaran yang sangat mendekati nilai nol.
3. Berdasarkan hasil pengujian sistem dengan menggunakan Kalman filter, respon sistem
dengan setpoint 0° tidak memiliki overshoot, memiliki nilai settling time kurang dari 1
detik, yaitu senilai 0,493 detik, dan nilai error steady state kurang dari 0,5% yaitu senilai
0,14%. Sedangkan hasil pengujian tanpa menggunakan Kalman filter, respon sistem
dengan setpoint 0° memiliki overshoot, memiliki nilai settling time sebesar 0,221 detik
dan nilai error steady state lebih dari 0,5% yaitu senilai 2,4%.

5.2 Saran
Saran yang dapat diberikan untuk penelitian selanjutnya adalah dengan menambahkan
feedback berupa kecepatan dari parameter motor DC dan gangguan berupa lintasan
kemiringan.
58
59

DAFTAR PUSTAKA

Astrom, K.J. dan B. Wittenmark. 1995. Adaptive Control. Addison-Wesley Publishing


Company, Inc. USA.
Bobal, V, J., Bohm, J., Fessl dan Machacek. 2005. Digital Self-Tuning Controler. London:
Springer verlag.
Bramantyo, G.A. 2016. Implementasi Kontroler PID Kaskade Dan Kalman Filter Pada Sistem
Kesetimbangan Robot Beroda Dua Berbasis Mikrokontroler Arduino ARM. Skripsi.
Tidak Dipublikasikan. Malang: Universitas Brawijaya.
Hidayatullah, M.R. 2017. Sistem Pengendalian Suhu Pada Plant Suhu 73412 Menggunakan
Self-Tuning PID Controller. Skripsi. Tidak Dipublikasikan. Malang: Universitas
Brawijaya.
Lee, H.J. dan Jung, S. 2008. Gyro Sensor Drift Compensation by Kalman Filter to Control a
Mobile inverted Pendulum Robot System. Korea: Chungnam National University.
Ogata, K. 1997. Teknik Kontrol Automatik – terjemahan: Ir. Edi Laksono. Erlangga: Jakarta.
Palkka, M.A. 2018. Pengontrolan Tegangan Output Pada Plant Generator Set DC (Type
73411) Di Laboratorium Sistem Kontrol Menggunakan Self-Tuning Controller (STC).
Skripsi. Tidak Dipublikasikan. Malang: Universitas Brawijaya.
Puspitasari, S. 2015. Implementasi Kontrol Logika Fuzzy Pada Sistem Kesetimbangan Robot
Beroda Dua. Tidak Dipublikasikan. Malang: Universitas Brawijaya.
Quisheng, HE dan Wei, C. 2017. An Improved Adaptive Kalman Filter Algorithm for
balancing vehicle. China: Taiyuan University of Science and Technology.
60
61

LAMPIRAN 1
FOTO ALAT
62
63
64
65

LAMPIRAN 2
LISTING PROGRAM
66

#include <Wire.h> float y_2=0;

#include <MPU6050.h> float y_1=0;

#include <KalmanFilter.h> float y=0;

///////////////////////////////////////////////////////////// float setpoint;


////
float ek=0;
unsigned long interval=1000; // the time
we need to wait float ek_1=0;

unsigned long previousMillis=0; // millis() float ek_2=0;


returns an unsigned long. float mk=0;
bool ledState = false; // state variable for float mk_1=0;
the LED
float Kp, Ki, Kd, Ti, Td;
/////////////////////////////////////////////////////////////
/// float a_hat1, a_hat2, b_hat1;

MPU6050 mpu; float theta_update1, theta_update2,


theta_update3;

float PID_result = 0;
KalmanFilter kalmanX(0.001, 0.003,
0.03); float T_0 = 0.05;

KalmanFilter kalmanY(0.001, 0.003, float Q=1;


0.03);

float gain_adaptasi_11, gain_adaptasi_12,


float accPitch = 0; gain_adaptasi_13;

float accRoll = 0; float gain_adaptasi_21, gain_adaptasi_22,


gain_adaptasi_23;

float gain_adaptasi_31, gain_adaptasi_32,


float kalPitch = 0; gain_adaptasi_33;
float kalRoll = 0;
float gain_update_11, gain_update_12,
gain_update_13;

int x,sinyal,pulsa,as; float gain_update_21, gain_update_22,


gain_update_23;
int cnt=0;
67

float gain_update_31, gain_update_32, b_hat1 = 0.007245;


gain_update_33;
//a_hat1= - 1.246;

//a_hat2 = 0.2474;
void setup() {
//b_hat1 = 0.0001722;

// Initialize MPU6050
gain_adaptasi_11=0.000000001;

while(!mpu.begin(MPU6050_SCALE_20 gain_adaptasi_12=0;
00DPS, MPU6050_RANGE_2G)) gain_adaptasi_13=0;
{
gain_adaptasi_21=0;
delay(500); gain_adaptasi_22=0.000000001;
}
gain_adaptasi_23=0;

gain_adaptasi_31=0;
// Calibrate gyroscope. The calibration gain_adaptasi_32=0;
must be at rest.
gain_adaptasi_33=0.000000001;
// If you don't want calibrate, comment
this line.

mpu.calibrateGyro(); pinMode (10, OUTPUT);

pinMode (9, OUTPUT);

///////////////////////////////////////////////////////////// pinMode (5, OUTPUT);


///
pinMode (4, OUTPUT);
pinMode(13, OUTPUT);

digitalWrite(13, ledState);
//By default turn off both the motors
/////////////////////////////////////////////////////////////
/// analogWrite(10,LOW);

setpoint= 0; analogWrite(9,LOW);

a_hat1= - 0.7648; analogWrite(5,LOW);

a_hat2 = - 0.2174; analogWrite(4,LOW);


68

OCR1A = 1561;// = (16*10^6) /


(1*1024) - 1 (must be <65536)
noInterrupts();
// turn on CTC mode
//set timer0 interrupt at 2kHz
TCCR1B |= (1 << WGM12);
TCCR0A = 0;// set entire TCCR2A
register to 0 // Set CS12 and CS10 bits for 1024
prescaler
TCCR0B = 0;// same for TCCR2B
TCCR1B |= (1 << CS12)| (1 << CS10);;
TCNT0 = 0;//initialize counter value to // 256 prescaler //TCCR1B |= (1 << CS12)
0 | (1 << CS10);
// set compare match register for 2khz // enable timer compare interrupt
increments
TIMSK1 |= (1 << OCIE1A);
OCR0A = 155;// = (16*10^6) /
(2000*64) - 1 (must be <256)

// turn on CTC mode interrupts();

TCCR0A |= (1 << WGM01); Serial.begin(115200);

// Set CS01 and CS00 bits for 64 }


prescaler

TCCR0B |= (1 << CS02) | (1 << CS00);


ISR(TIMER0_COMPA_vect)
// enable timer compare interrupt
{
TIMSK0 |= (1 << OCIE0A);

y= accPitch;
//set timer1 interrupt at 1Hz
ek_1=ek;
TCCR1A = 0;// set entire TCCR1A
register to 0 ek=setpoint-y;

TCCR1B = 0;// same for TCCR1B

TCNT1 = 0;//initialize counter value to dahlin();


0 PID_calculate();
// set compare match register for 1hz mk = PID_result;
increments
if(mk>255)mk=255;
69

ISR(TIMER1_COMPA_vect)

sinyalPWM(); {

RLS();

Serial.print(cnt); changeParam();

Serial.print(";"); }

Serial.print(setpoint);

Serial.print(";"); void dahlin(){

Serial.print(y); float F, G, M, N, H, J, L;

Serial.print(";");

Serial.print(kalPitch);

Serial.print(";"); F = a_hat1+(2*a_hat2);

Serial.print(a_hat1,5); G = (F/b_hat1);

Serial.print(";"); Kp = -1*(G*Q);

Serial.print(a_hat2,5);

Serial.print(";"); M = T_0*a_hat2*Q;

Serial.print(b_hat1,5); N = Kp*b_hat1;

Serial.print(";"); Td = (M/N);

Serial.print(Kp);

Serial.print(";"); H = (1/F);

Serial.print(Ki); J = (Td/T_0);

Serial.print(";"); L = H+1+J;

Serial.println(Kd); Ti = (-1*(T_0/L));

cnt++;

} Ki = (Kp/Ti);

Kd = Kp*Td;
70

} a_hat2=theta_update2;

b_hat1=theta_update3;

void sinyalPWM()

{ gain_adaptasi_11=gain_update_11;

sinyal=mk; gain_adaptasi_12=gain_update_12;

if(sinyal<0){ gain_adaptasi_13=gain_update_13;

sinyal=0; gain_adaptasi_21=gain_update_21;

} gain_adaptasi_22=gain_update_22;

else if(sinyal>255) gain_adaptasi_23=gain_update_23;

{ gain_adaptasi_31=gain_update_31;

sinyal=255; gain_adaptasi_32=gain_update_32;

} gain_adaptasi_33=gain_update_33;

else{ }

sinyal=sinyal;

} void RLS (){

float out_estimasi, error_estimasi,


aux_cal1, aux_cal2, aux_cal3, aux_param,
void changeParam(){ aux_theta1, aux_theta2, aux_theta3,
mk_1=PID_result; denom;

ek_2 = ek_1;

ek_1 = ek; float aux_11a, aux_21a, aux_31a,


aux_11b, aux_12b, aux_13b, aux_21b,
y_2=y_1; aux_22b, aux_23b, aux_31b, aux_32b,
aux_33b, aux_11c, aux_12c, aux_13c,
y_1=y; aux_21c, aux_22c, aux_23c, aux_31c,
aux_32c, aux_33c;

a_hat1=theta_update1;
71

out_estimasi = (a_hat1*-1*y_1) + theta_update2 = a_hat2 + aux_theta2;


(a_hat2*-1*y_2) + (b_hat1*mk_1);
theta_update3 = b_hat1 + aux_theta3;
error_estimasi = y - out_estimasi;

//update gain adaptasi (matrik kovarian)


aux_cal1 = (-1*y_1*gain_adaptasi_11) +
(-1*y_2*gain_adaptasi_21) aux_11a = (gain_adaptasi_11*-1*y_1)
+(mk_1*gain_adaptasi_31); + (gain_adaptasi_12*-1*y_2) +
(gain_adaptasi_13*mk_1);
aux_cal2 = (-1*y_1*gain_adaptasi_12) +
(-1*y_2*gain_adaptasi_22) aux_21a = (gain_adaptasi_21*-1*y_1)
+(mk_1*gain_adaptasi_32); + (gain_adaptasi_22*-1*y_2) +
(gain_adaptasi_23*mk_1);
aux_cal3 = (-1*y_1*gain_adaptasi_13) +
(-1*y_2*gain_adaptasi_23) aux_31a = (gain_adaptasi_31*-1*y_1)
+(mk_1*gain_adaptasi_33); + (gain_adaptasi_32*-1*y_2) +
(gain_adaptasi_33*mk_1);
aux_param = (aux_cal1*-1*y_1) +
(aux_cal2*-1*y_2) + (aux_cal3*mk_1);
aux_11b = (aux_11a*-1*y_1);

denom = 1 + aux_param; aux_12b = (aux_11a*-1*y_2);

aux_13b = (aux_11a*mk_1);

// theta update (update estimasi parameter)

aux_theta1 = (((gain_adaptasi_11*- aux_21b = (aux_21a*-1*y_1);


1*y_1) + (gain_adaptasi_12*-1*y_2) + aux_22b = (aux_21a*-1*y_2);
(gain_adaptasi_13*mk_1))*error_estimasi
)/denom; aux_23b = (aux_21a*mk_1);

aux_theta2 = (((gain_adaptasi_21*-
1*y_1) + (gain_adaptasi_22*-1*y_2) +
(gain_adaptasi_23*mk_1))*error_estimasi aux_31b = (aux_31a*-1*y_1);
)/denom;
aux_32b = (aux_31a*-1*y_2);
aux_theta3 = (((gain_adaptasi_31*-
aux_33b = (aux_31a*mk_1);
1*y_1) + (gain_adaptasi_32*-1*y_2) +
(gain_adaptasi_33*mk_1))*error_estimasi
)/denom;
aux_11c =
theta_update1 = a_hat1 + aux_theta1; ((aux_11b*gain_adaptasi_11) +
72

(aux_12b*gain_adaptasi_21) +
(aux_13b*gain_adaptasi_31))/denom;
gain_update_11 = (gain_adaptasi_11 -
aux_12c = aux_11c);
((aux_11b*gain_adaptasi_12) +
(aux_12b*gain_adaptasi_22) + gain_update_12 = (gain_adaptasi_12 -
(aux_13b*gain_adaptasi_32))/denom; aux_12c);

aux_13c = gain_update_13 = (gain_adaptasi_13 -


((aux_11b*gain_adaptasi_13) + aux_13c);
(aux_12b*gain_adaptasi_23) +
(aux_13b*gain_adaptasi_33))/denom;
gain_update_21 = (gain_adaptasi_21 -
aux_21c);
aux_21c = gain_update_22 = (gain_adaptasi_22 -
((aux_21b*gain_adaptasi_11) + aux_22c);
(aux_22b*gain_adaptasi_21) +
(aux_23b*gain_adaptasi_31))/denom; gain_update_23 = (gain_adaptasi_23 -
aux_23c);
aux_22c =
((aux_21b*gain_adaptasi_12) +
(aux_22b*gain_adaptasi_22) +
(aux_23b*gain_adaptasi_32))/denom; gain_update_31 = (gain_adaptasi_31 -
aux_31c);
aux_23c =
((aux_21b*gain_adaptasi_13) + gain_update_32 = (gain_adaptasi_32 -
(aux_22b*gain_adaptasi_23) + aux_32c);
(aux_23b*gain_adaptasi_33))/denom;
gain_update_33 = (gain_adaptasi_33 -
aux_33c);

aux_31c = }
((aux_31b*gain_adaptasi_11) +
(aux_32b*gain_adaptasi_21) +
(aux_33b*gain_adaptasi_31))/denom; void PID_calculate (){

aux_32c = float q0,q1,q2,p1,p2;


((aux_31b*gain_adaptasi_12) +
(aux_32b*gain_adaptasi_22) +
(aux_33b*gain_adaptasi_32))/denom;
q0 = Kp*(1+(T_0/Ti)+(Td/T_0));
aux_33c =
q1 = -Kp*(1+2*(Td/T_0));
((aux_31b*gain_adaptasi_13) +
(aux_32b*gain_adaptasi_23) + q2 = Kp*(Td/T_0);
(aux_33b*gain_adaptasi_33))/denom;
73

p1 = -1; /////////////////////////////////////////////////////////////
///
p2 = 0;

// put your main code here, to run


PID_result = repeatedly:
((q0*ek_1)+(q1*ek_1)+(q2*ek_2)-
(p1*mk_1)); Vector acc =
mpu.readNormalizeAccel();
}
Vector gyr = mpu.readNormalizeGyro();

void loop() {
// Calculate Pitch & Roll from
accelerometer (deg)

accPitch = -(atan2(acc.XAxis,
///////////////////////////////////////////////////////////// sqrt(acc.YAxis*acc.YAxis +
/// acc.ZAxis*acc.ZAxis))*180.0)/M_PI;
unsigned long currentMillis = millis(); // accRoll = (atan2(acc.YAxis,
grab current time acc.ZAxis)*180.0)/M_PI;

// check if "interval" time has passed // Kalman filter


(1000 milliseconds)
kalPitch = kalmanY.update(accPitch,
if ((unsigned long)(currentMillis - gyr.YAxis);
previousMillis) >= interval) {
kalRoll = kalmanX.update(accRoll,
gyr.XAxis);
ledState = !ledState; // "toggles" the state

digitalWrite(13, ledState); // sets the if(input>-25 && input<25)


LED based on ledState
{

if(output <0 ) {
// save the "current" time
analogWrite(9,0);
previousMillis = millis();
analogWrite(10,output);
}
analogWrite(4,0);
74

analogWrite(5,output);

else if (output >0) {

analogWrite(9,output*-1);

analogWrite(10,0);

analogWrite(4,output*-1);

analogWrite(5,0);

}
75

LAMPIRAN 3
DATA PENGUJIAN
76

Data Pengujian Kalman Filter

AccPitch KalmanPitch Acc.Xaxis Acc.Yaxis Acc.Zaxis Gyr.Xaxis Gyr.Yaxis Gyr.Zaxis


-0.05 0.09 0.01 -0.26 13.69 0.01 0.17 0.04
-0.02 0.08 0.00 -0.25 13.68 -0.05 -0.02 0.16
0.08 0.09 -0.02 -0.29 13.67 0.13 0.17 0.10
0.32 0.09 -0.08 -0.24 13.66 -0.05 0.11 -0.09
0.16 0.09 -0.04 -0.33 13.63 0.01 -0.08 -0.03
-0.01 0.09 0.00 -0.29 13.73 0.01 0.05 -0.03
0.05 0.09 -0.01 -0.31 13.72 0.01 0.11 -0.15
0.02 0.09 -0.00 -0.26 13.71 0.07 -0.02 -0.09
0.01 0.09 -0.00 -0.31 13.75 -0.05 -0.08 0.04
0.21 0.09 -0.05 -0.28 13.73 0.19 -0.20 -0.15
0.16 0.09 -0.04 -0.29 13.71 0.01 -0.02 0.04
0.06 0.09 -0.01 -0.28 13.75 0.13 0.11 0.04
0.10 0.09 -0.02 -0.23 13.70 0.19 -0.20 0.04
-0.10 0.09 0.02 -0.27 13.70 0.01 0.17 -0.09
0.20 0.09 -0.05 -0.26 13.68 0.01 -0.14 0.22
0.14 0.09 -0.03 -0.23 13.64 0.01 0.11 0.04
0.20 0.09 -0.05 -0.25 13.62 -0.18 -0.02 0.16
0.07 0.09 -0.02 -0.32 13.68 -0.12 0.05 -0.09
0.25 0.10 -0.06 -0.30 13.63 0.07 -0.08 -0.03
-0.05 0.09 0.01 -0.29 13.67 0.07 -0.08 0.16
0.24 0.10 -0.06 -0.30 13.67 0.01 0.11 0.16
0.20 0.10 -0.05 -0.30 13.69 0.19 -0.02 0.04
0.38 0.11 -0.09 -0.25 13.65 0.01 0.05 0.04
0.03 0.10 -0.01 -0.27 13.68 0.07 -0.20 0.16
0.03 0.10 -0.01 -0.30 13.74 -0.05 0.11 0.10
0.13 0.10 -0.03 -0.28 13.71 0.07 0.11 -0.03
0.00 0.10 0.00 -0.25 13.62 -0.12 0.05 0.10
0.08 0.10 -0.02 -0.25 13.64 0.13 -0.02 0.16
0.18 0.10 -0.04 -0.23 13.69 0.01 -0.08 -0.15
-0.09 0.10 0.02 -0.26 13.68 0.13 -0.02 -0.09
-0.03 0.10 0.01 -0.25 13.71 0.01 0.05 -0.03
0.18 0.10 -0.04 -0.31 13.67 0.13 -0.14 0.04
0.03 0.10 -0.01 -0.23 13.69 0.01 0.11 -0.15
0.28 0.10 -0.07 -0.22 13.70 0.25 -0.08 0.10
0.26 0.11 -0.06 -0.28 13.68 0.13 0.17 -0.03
0.04 0.10 -0.01 -0.30 13.71 0.01 -0.02 -0.03
0.10 0.10 -0.02 -0.24 13.63 0.13 -0.08 -0.09
0.05 0.10 -0.01 -0.28 13.70 -0.05 -0.02 0.04
0.20 0.11 -0.05 -0.31 13.58 -0.12 -0.02 -0.03
77

0.19 0.11 -0.05 -0.33 13.63 0.07 0.11 -0.09


-0.04 0.10 0.01 -0.23 13.71 0.13 -0.08 0.04
0.09 0.10 -0.02 -0.24 13.78 0.01 -0.08 -0.03
0.24 0.11 -0.06 -0.27 13.76 0.01 -0.08 0.16
0.04 0.10 -0.01 -0.30 13.66 0.13 -0.02 -0.03
-0.04 0.10 0.01 -0.29 13.67 0.01 0.11 0.04
0.24 0.11 -0.06 -0.19 13.71 -0.18 0.11 0.16
0.13 0.11 -0.03 -0.28 13.74 0.01 -0.02 -0.09
0.24 0.11 -0.06 -0.26 13.72 -0.18 -0.08 0.10
0.18 0.11 -0.04 -0.26 13.79 0.01 -0.08 -0.09
0.14 0.11 -0.03 -0.33 13.73 0.01 -0.08 -0.09
0.19 0.12 -0.05 -0.29 13.72 -0.18 0.29 -0.03
-0.03 0.11 0.01 -0.24 13.69 0.07 0.05 -0.03
0.25 0.12 -0.06 -0.25 13.62 -0.12 0.17 0.04
0.21 0.12 -0.05 -0.30 13.57 0.13 0.05 0.04
-0.08 0.12 0.02 -0.32 13.72 -0.12 0.11 0.10
-0.13 0.11 0.03 -0.29 13.73 0.01 0.11 0.16
0.27 0.11 -0.06 -0.27 13.75 0.19 0.05 -0.03
0.30 0.12 -0.07 -0.27 13.77 0.01 -0.02 -0.15
-0.06 0.12 0.01 -0.22 13.65 0.19 -0.02 0.22
0.27 0.12 -0.06 -0.29 13.68 0.01 -0.08 0.16
-0.04 0.12 0.01 -0.27 13.70 -0.05 0.05 0.04
0.17 0.12 -0.04 -0.28 13.64 -0.05 -0.08 0.04
-0.06 0.11 0.01 -0.24 13.66 0.07 0.11 -0.09
-0.06 0.11 0.01 -0.28 13.65 0.01 -0.08 -0.03
0.26 0.11 -0.06 -0.25 13.59 0.01 0.11 0.04
0.10 0.11 -0.02 -0.27 13.73 -0.05 0.17 0.04
0.01 0.11 -0.00 -0.23 13.65 0.01 0.05 0.10
0.11 0.11 -0.03 -0.27 13.67 0.07 0.23 -0.21
0.07 0.11 -0.02 -0.27 13.67 -0.05 -0.08 -0.15
0.25 0.11 -0.06 -0.27 13.71 0.01 -0.08 -0.09
0.23 0.12 -0.06 -0.29 13.72 -0.05 -0.02 0.10
0.01 0.11 -0.00 -0.28 13.69 0.13 -0.14 0.04
0.17 0.12 -0.04 -0.27 13.67 -0.24 0.17 0.04
0.16 0.12 -0.04 -0.29 13.63 -0.18 -0.02 0.04
-0.06 0.11 0.01 -0.29 13.66 0.01 0.17 0.16
-0.14 0.11 0.03 -0.27 13.73 -0.05 -0.20 0.10
0.02 0.10 -0.00 -0.23 13.62 -0.05 -0.02 0.04
-0.07 0.10 0.02 -0.28 13.70 0.01 0.05 -0.09
0.00 0.10 0.00 -0.27 13.65 -0.12 0.05 -0.15
0.21 0.10 -0.05 -0.26 13.60 0.07 0.05 -0.15
78

-0.13 0.10 0.03 -0.27 13.68 0.19 0.23 0.16


0.06 0.10 -0.01 -0.27 13.62 -0.05 -0.08 0.10
0.24 0.10 -0.06 -0.22 13.67 -0.05 -0.08 0.10
0.07 0.10 -0.02 -0.32 13.73 0.01 -0.08 -0.15
0.27 0.10 -0.06 -0.28 13.69 0.07 0.11 0.04
0.22 0.11 -0.05 -0.32 13.64 -0.18 -0.08 -0.15
-0.09 0.10 0.02 -0.28 13.58 0.07 -0.02 0.10
-0.03 0.10 0.01 -0.28 13.66 0.01 -0.02 0.16
0.32 0.10 -0.08 -0.28 13.66 0.07 -0.08 -0.09
0.16 0.10 -0.04 -0.28 13.64 0.01 -0.08 -0.09
0.10 0.10 -0.02 -0.25 13.67 0.01 -0.02 -0.09
-0.07 0.10 0.02 -0.29 13.68 0.01 -0.02 0.16
0.25 0.10 -0.06 -0.29 13.71 0.07 -0.02 0.10
0.07 0.10 -0.02 -0.29 13.64 0.01 -0.14 0.04
0.01 0.10 -0.00 -0.27 13.69 0.01 0.05 -0.09
-0.02 0.10 0.00 -0.31 13.65 0.07 -0.08 -0.03
0.18 0.10 -0.04 -0.28 13.78 0.07 -0.02 0.04
0.02 0.10 -0.00 -0.23 13.64 -0.05 0.17 -0.15
0.01 0.10 -0.00 -0.23 13.62 0.01 -0.02 -0.15
-0.04 0.09 0.01 -0.26 13.63 0.19 0.29 0.10
0.26 0.10 -0.06 -0.32 13.75 0.01 -0.08 -0.15
0.17 0.10 -0.04 -0.26 13.74 0.13 0.05 -0.09
0.07 0.10 -0.02 -0.30 13.65 -0.05 -0.26 -0.03
-0.07 0.09 0.02 -0.24 13.73 -0.05 -0.02 0.22
0.34 0.10 -0.08 -0.24 13.69 0.13 0.05 0.04
0.02 0.10 -0.00 -0.28 13.60 0.07 -0.08 0.04
0.00 0.09 0.00 -0.28 13.69 -0.05 -0.02 0.10
0.00 0.09 0.00 -0.30 13.69 -0.05 -0.02 -0.03
0.10 0.09 -0.02 -0.30 13.62 0.13 0.17 -0.09
-0.07 0.09 0.02 -0.27 13.65 0.07 0.05 -0.15
0.14 0.09 -0.03 -0.28 13.77 0.01 0.17 -0.03
-0.01 0.09 0.00 -0.25 13.68 0.01 -0.14 -0.03
-0.06 0.08 0.01 -0.28 13.63 0.01 -0.14 0.16
0.07 0.08 -0.02 -0.24 13.74 -0.05 -0.08 -0.03
0.14 0.08 -0.03 -0.21 13.63 0.07 -0.02 0.22
0.08 0.08 -0.02 -0.29 13.68 -0.12 0.05 -0.03
0.00 0.08 0.00 -0.31 13.69 0.01 0.17 -0.09
0.15 0.08 -0.04 -0.28 13.69 0.07 -0.08 0.04
0.15 0.09 -0.04 -0.18 13.71 0.01 -0.08 0.10
0.17 0.09 -0.04 -0.22 13.60 0.01 0.05 -0.03
0.12 0.09 -0.03 -0.28 13.65 -0.18 -0.02 -0.27
79

0.32 0.09 -0.08 -0.26 13.71 0.07 0.05 -0.09


0.15 0.10 -0.04 -0.28 13.60 0.01 -0.08 0.22
0.06 0.10 -0.01 -0.28 13.73 0.19 0.05 0.22
0.08 0.09 -0.02 -0.24 13.59 0.01 -0.08 0.10
0.09 0.10 -0.02 -0.19 13.72 0.13 0.11 0.10
-0.01 0.09 0.00 -0.32 13.74 0.13 0.05 -0.03
0.03 0.09 -0.01 -0.25 13.77 -0.18 0.05 0.04
-0.06 0.09 0.01 -0.27 13.67 -0.05 -0.14 -0.03
0.25 0.09 -0.06 -0.23 13.75 0.19 0.11 0.04
0.18 0.09 -0.04 -0.27 13.72 0.07 0.11 -0.03
0.05 0.09 -0.01 -0.29 13.70 0.13 -0.02 0.04
0.21 0.10 -0.05 -0.24 13.66 0.01 -0.02 -0.03
0.12 0.10 -0.03 -0.31 13.66 0.01 0.05 -0.21
0.18 0.10 -0.04 -0.25 13.66 0.19 0.17 0.04
-0.01 0.10 0.00 -0.26 13.64 -0.05 0.05 -0.15
0.33 0.10 -0.08 -0.26 13.62 -0.05 -0.02 0.04
0.12 0.10 -0.03 -0.36 13.67 -0.05 -0.26 -0.03
0.30 0.11 -0.07 -0.23 13.70 0.07 -0.02 0.04
-0.17 0.10 0.04 -0.25 13.72 -0.05 0.05 0.04
-0.30 0.09 0.07 -0.30 13.75 0.07 0.05 0.04
0.07 0.09 -0.02 -0.26 13.59 -0.05 0.11 0.04
-0.13 0.09 0.03 -0.23 13.69 0.07 -0.02 -0.03
-0.07 0.08 0.02 -0.25 13.75 0.01 0.05 -0.15
0.22 0.09 -0.05 -0.27 13.71 -0.05 0.11 0.10
-0.08 0.08 0.02 -0.28 13.74 0.01 -0.08 -0.09
0.08 0.08 -0.02 -0.27 13.60 0.01 0.05 -0.03
-0.09 0.08 0.02 -0.26 13.67 0.01 -0.08 -0.03
0.04 0.07 -0.01 -0.24 13.70 0.01 -0.08 -0.15
0.12 0.08 -0.03 -0.22 13.65 0.01 -0.08 -0.09
0.07 0.08 -0.02 -0.31 13.70 0.01 -0.02 0.04
0.30 0.08 -0.07 -0.29 13.70 0.07 0.23 -0.03
0.03 0.08 -0.01 -0.24 13.69 -0.05 -0.14 0.04
0.18 0.08 -0.04 -0.26 13.63 -0.18 0.05 -0.03
-0.04 0.08 0.01 -0.24 13.65 0.01 -0.08 0.04
0.15 0.08 -0.04 -0.33 13.70 -0.12 -0.02 -0.09
0.11 0.08 -0.03 -0.22 13.68 0.07 -0.08 -0.09
-0.06 0.08 0.01 -0.24 13.71 -0.12 -0.14 -0.03
-0.02 0.07 0.00 -0.24 13.70 -0.12 0.05 -0.03
0.07 0.07 -0.02 -0.30 13.72 0.07 0.05 -0.03
0.09 0.07 -0.02 -0.30 13.65 0.01 0.05 0.10
-0.07 0.07 0.02 -0.36 13.70 -0.12 0.05 -0.03
80

0.16 0.07 -0.04 -0.23 13.70 0.01 0.05 0.04


0.18 0.08 -0.04 -0.30 13.76 -0.05 0.23 0.04
0.08 0.08 -0.02 -0.27 13.66 0.13 -0.08 0.10
0.11 0.08 -0.03 -0.22 13.80 0.01 -0.02 0.10
0.39 0.09 -0.09 -0.27 13.65 -0.05 -0.02 0.04
0.03 0.08 -0.01 -0.25 13.62 0.07 -0.02 -0.09
-0.06 0.08 0.01 -0.28 13.64 -0.05 -0.02 -0.09
0.19 0.08 -0.05 -0.33 13.59 -0.18 -0.20 0.10
0.11 0.08 -0.03 -0.29 13.67 0.07 -0.08 0.10
-0.05 0.08 0.01 -0.27 13.65 0.07 0.05 0.04
-0.17 0.07 0.04 -0.28 13.72 0.25 -0.02 0.04
0.16 0.07 -0.04 -0.31 13.71 0.01 -0.14 -0.15
-0.10 0.07 0.02 -0.26 13.67 -0.05 0.05 -0.03
0.18 0.07 -0.04 -0.24 13.71 0.07 -0.02 0.16
0.05 0.07 -0.01 -0.27 13.71 0.25 -0.08 0.16
0.05 0.07 -0.01 -0.25 13.74 -0.05 0.11 -0.03
0.13 0.07 -0.03 -0.27 13.68 0.13 -0.02 0.22
0.16 0.08 -0.04 -0.26 13.72 0.01 0.17 0.04
0.11 0.08 -0.03 -0.33 13.68 -0.05 -0.08 0.04
0.05 0.07 -0.01 -0.31 13.61 0.07 -0.14 -0.09
-0.17 0.07 0.04 -0.27 13.70 -0.05 0.11 0.10
0.05 0.07 -0.01 -0.25 13.70 0.01 0.05 -0.09
0.36 0.08 -0.09 -0.25 13.60 0.01 0.11 -0.21
0.09 0.08 -0.02 -0.25 13.64 0.13 -0.14 -0.03
0.03 0.07 -0.01 -0.30 13.65 -0.05 -0.14 -0.03
0.09 0.07 -0.02 -0.22 13.74 0.01 -0.14 -0.09
0.25 0.08 -0.06 -0.26 13.68 -0.05 -0.14 -0.09
0.00 0.07 0.00 -0.23 13.69 0.07 -0.26 0.04
-0.14 0.07 0.03 -0.33 13.67 0.13 0.23 0.04
0.11 0.07 -0.03 -0.24 13.65 0.13 0.11 0.04
-0.06 0.07 0.01 -0.26 13.76 -0.05 -0.14 0.04
-0.12 0.06 0.03 -0.24 13.68 0.07 0.05 -0.09
0.01 0.06 -0.00 -0.27 13.64 0.07 0.23 0.04
-0.08 0.06 0.02 -0.24 13.62 0.07 0.11 -0.03
0.32 0.07 -0.08 -0.28 13.72 0.01 0.05 0.04
81

Data Pengunjian Self – Tuning PID dengan menggunakan kalman filter

Setpoint Output
𝑎̂1 𝑎̂2 𝑏̂1 𝐾𝑝 𝐾𝑖 𝐾𝑑
(derajat) (derajat)
0 -2.95 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -2.95 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -2.95 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -2.95 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -2.95 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -2.95 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -2.9 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -2.9 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -2.9 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -2.9 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -2.9 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -2.9 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -2.9 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -2.9 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -2.9 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -2.9 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -2.9 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -2.71 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -2.71 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -2.71 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -2.71 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -2.71 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -2.71 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -2.71 -0.7648 -0.2174 0.00725 165.58 49.14 -1.5
0 -2.71 -0.7648 -0.2174 0.00725 165.58 49.14 -1.5
0 -2.71 -0.7648 -0.2174 0.00725 165.58 49.14 -1.5
0 -2.71 -0.7648 -0.2174 0.00725 165.58 49.14 -1.5
0 -2.71 -0.7648 -0.2174 0.00725 165.58 49.14 -1.5
0 -2.71 -0.7648 -0.2174 0.00725 165.58 49.14 -1.5
0 -2.53 -0.7648 -0.2174 0.00725 165.58 49.14 -1.5
0 -2.53 -0.7648 -0.2174 0.00725 165.58 49.14 -1.5
0 -2.53 -0.7648 -0.2174 0.00725 165.58 49.14 -1.5
0 -2.53 -0.7648 -0.2174 0.00725 165.58 49.14 -1.5
0 -2.53 -0.7648 -0.2174 0.00725 165.58 49.14 -1.5
0 -2.53 -0.7648 -0.2174 0.00725 165.58 49.14 -1.5
0 -2.53 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
0 -2.53 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
0 -2.53 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
82

0 -2.53 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5


0 -2.53 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
0 -2.53 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
0 -2.37 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
0 -2.37 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
0 -2.37 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
0 -2.37 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
0 -2.37 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
0 -2.37 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
0 -2.37 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
0 -2.37 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
0 -2.37 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
0 -2.37 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
0 -2.37 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
0 -2.37 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
0 -2.21 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
0 -2.21 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
0 -2.21 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
0 -2.21 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
0 -2.21 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
0 -2.21 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
0 -2.21 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
0 -2.21 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
0 -2.21 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
0 -2.21 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
0 -2.21 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
0 -2.07 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
0 -2.07 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
0 -2.07 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
0 -2.07 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
0 -2.07 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
0 -2.07 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
0 -2.07 -0.7648 -0.2174 0.00725 165.57 49.14 -1.5
0 -2.07 -0.7648 -0.2174 0.00725 165.58 49.14 -1.5
0 -2.07 -0.7648 -0.2174 0.00725 165.58 49.14 -1.5
0 -2.07 -0.7648 -0.2174 0.00725 165.58 49.14 -1.5
0 -2.07 -0.7648 -0.2174 0.00725 165.58 49.14 -1.5
0 -2.07 -0.7648 -0.2174 0.00725 165.58 49.14 -1.5
0 -1.93 -0.7648 -0.2174 0.00725 165.58 49.14 -1.5
0 -1.93 -0.7648 -0.2174 0.00725 165.58 49.14 -1.5
0 -1.93 -0.7648 -0.2174 0.00725 165.58 49.14 -1.5
83

0 -1.93 -0.7648 -0.2174 0.00725 165.58 49.14 -1.5


0 -1.93 -0.7648 -0.2174 0.00725 165.58 49.14 -1.5
0 -1.93 -0.7648 -0.2174 0.00725 165.58 49.14 -1.5
0 -1.93 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.93 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.93 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.93 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.93 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.93 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.79 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.79 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.79 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.79 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.79 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.79 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.79 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.79 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.79 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.79 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.79 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.66 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.66 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.66 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.66 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.66 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.66 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.66 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.66 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.66 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.66 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.66 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.66 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.55 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.55 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.55 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.55 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.55 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.55 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.55 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -1.55 -0.7648 -0.2174 0.00724 165.59 49.14 -1.5
0 -1.55 -0.7648 -0.2174 0.00724 165.59 49.14 -1.5
84

0 -1.55 -0.7648 -0.2174 0.00724 165.59 49.14 -1.5


0 -1.55 -0.7648 -0.2174 0.00724 165.59 49.14 -1.5
0 -1.55 -0.7648 -0.2174 0.00724 165.59 49.14 -1.5
0 -1.43 -0.7648 -0.2174 0.00724 165.59 49.14 -1.5
0 -1.43 -0.7648 -0.2174 0.00724 165.59 49.14 -1.5
0 -1.43 -0.7648 -0.2174 0.00724 165.59 49.14 -1.5
0 -1.43 -0.7648 -0.2174 0.00724 165.59 49.14 -1.5
0 -1.43 -0.7648 -0.2174 0.00724 165.59 49.14 -1.5
0 -1.43 -0.7648 -0.2174 0.00724 165.59 49.14 -1.5
0 -1.43 -0.7648 -0.2174 0.00724 165.59 49.14 -1.5
0 -1.43 -0.7648 -0.2174 0.00724 165.59 49.14 -1.5
0 -1.43 -0.7648 -0.2174 0.00724 165.59 49.14 -1.5
0 -1.43 -0.7648 -0.2174 0.00724 165.59 49.14 -1.5
0 -1.43 -0.7648 -0.2174 0.00724 165.59 49.14 -1.5
0 -1.43 -0.7648 -0.2174 0.00724 165.59 49.14 -1.5
0 -1.31 -0.7648 -0.2174 0.00724 165.59 49.14 -1.5
0 -1.31 -0.7648 -0.2174 0.00724 165.59 49.14 -1.5
0 -1.31 -0.7648 -0.2174 0.00724 165.59 49.14 -1.5
0 -1.31 -0.7648 -0.2174 0.00724 165.59 49.14 -1.5
0 -1.31 -0.7648 -0.2174 0.00724 165.59 49.14 -1.5
0 -1.31 -0.7648 -0.2174 0.00724 165.59 49.14 -1.5
0 -1.31 -0.7648 -0.2174 0.00724 165.6 49.14 -1.5
0 -1.31 -0.7648 -0.2174 0.00724 165.6 49.14 -1.5
0 -1.31 -0.7648 -0.2174 0.00724 165.6 49.14 -1.5
0 -1.31 -0.7648 -0.2174 0.00724 165.6 49.14 -1.5
0 -1.31 -0.7648 -0.2174 0.00724 165.6 49.14 -1.5
0 -1.21 -0.7648 -0.2174 0.00724 165.6 49.14 -1.5
0 -1.21 -0.7648 -0.2174 0.00724 165.6 49.14 -1.5
0 -1.21 -0.7648 -0.2174 0.00724 165.6 49.14 -1.5
0 -1.21 -0.7648 -0.2174 0.00724 165.6 49.14 -1.5
0 -1.21 -0.7648 -0.2174 0.00724 165.6 49.14 -1.5
0 -1.21 -0.7648 -0.2174 0.00724 165.6 49.14 -1.5
0 -1.21 -0.7648 -0.2174 0.00724 165.6 49.14 -1.5
0 -1.21 -0.7648 -0.2174 0.00724 165.6 49.15 -1.5
0 -1.21 -0.7648 -0.2174 0.00724 165.6 49.15 -1.5
0 -1.21 -0.7648 -0.2174 0.00724 165.6 49.15 -1.5
0 -1.21 -0.7648 -0.2174 0.00724 165.6 49.15 -1.5
0 -1.21 -0.7648 -0.2174 0.00724 165.6 49.15 -1.5
0 -1.1 -0.7648 -0.2174 0.00724 165.6 49.15 -1.5
0 -1.1 -0.7648 -0.2174 0.00724 165.6 49.15 -1.5
0 -1.1 -0.7648 -0.2174 0.00724 165.6 49.15 -1.5
85

0 -1.1 -0.7648 -0.2174 0.00724 165.6 49.15 -1.5


0 -1.1 -0.7648 -0.2174 0.00724 165.6 49.15 -1.5
0 -1.1 -0.7648 -0.2174 0.00724 165.6 49.15 -1.5
0 -1.1 -0.7648 -0.2174 0.00724 165.61 49.15 -1.5
0 -1.1 -0.7648 -0.2174 0.00724 165.61 49.15 -1.5
0 -1.1 -0.7648 -0.2174 0.00724 165.61 49.15 -1.5
0 -1.1 -0.7648 -0.2174 0.00724 165.61 49.15 -1.5
0 -1.1 -0.7648 -0.2174 0.00724 165.61 49.15 -1.5
0 -1.1 -0.7648 -0.2174 0.00724 165.61 49.15 -1.5
0 -1 -0.7648 -0.2174 0.00724 165.61 49.15 -1.5
0 -1 -0.7648 -0.2174 0.00724 165.61 49.15 -1.5
0 -1 -0.7648 -0.2174 0.00724 165.61 49.15 -1.5
0 -1 -0.7648 -0.2174 0.00724 165.61 49.15 -1.5
0 -1 -0.7648 -0.2174 0.00724 165.61 49.15 -1.5
0 -1 -0.7648 -0.2174 0.00724 165.61 49.15 -1.5
0 -1 -0.7648 -0.2174 0.00724 165.62 49.15 -1.5
0 -1 -0.7648 -0.2174 0.00724 165.62 49.15 -1.5
0 -1 -0.7648 -0.2174 0.00724 165.62 49.15 -1.5
0 -1 -0.7648 -0.2174 0.00724 165.62 49.15 -1.5
0 -1 -0.7648 -0.2174 0.00724 165.62 49.15 -1.5
0 -0.91 -0.7648 -0.2174 0.00724 165.62 49.15 -1.5
0 -0.91 -0.7648 -0.2174 0.00724 165.62 49.15 -1.5
0 -0.91 -0.7648 -0.2174 0.00724 165.62 49.15 -1.5
0 -0.91 -0.7648 -0.2174 0.00724 165.62 49.15 -1.5
0 -0.91 -0.7648 -0.2174 0.00724 165.62 49.15 -1.5
0 -0.91 -0.7648 -0.2174 0.00724 165.62 49.15 -1.5
0 -0.91 -0.7648 -0.2174 0.00724 165.62 49.15 -1.5
0 -0.91 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5
0 -0.91 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5
0 -0.91 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5
0 -0.91 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5
0 -0.91 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5
0 -0.8 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5
0 -0.8 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5
0 -0.8 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5
0 -0.8 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5
0 -0.8 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5
0 -0.8 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5
0 -0.8 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5
0 -0.8 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5
0 -0.8 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5
86

0 -0.8 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5


0 -0.8 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5
0 -0.8 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5
0 -0.71 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5
0 -0.71 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5
0 -0.71 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5
0 -0.71 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5
0 -0.71 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5
0 -0.71 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5
0 -0.71 -0.7648 -0.2174 0.00724 165.64 49.16 -1.5
0 -0.71 -0.7648 -0.2174 0.00724 165.64 49.16 -1.5
0 -0.71 -0.7648 -0.2174 0.00724 165.64 49.16 -1.5
0 -0.71 -0.7648 -0.2174 0.00724 165.64 49.16 -1.5
0 -0.71 -0.7648 -0.2174 0.00724 165.64 49.16 -1.5
0 -0.71 -0.7648 -0.2174 0.00724 165.64 49.16 -1.5
0 -0.63 -0.7648 -0.2174 0.00724 165.64 49.16 -1.5
0 -0.63 -0.7648 -0.2174 0.00724 165.64 49.16 -1.5
0 -0.63 -0.7648 -0.2174 0.00724 165.64 49.16 -1.5
0 -0.63 -0.7648 -0.2174 0.00724 165.64 49.16 -1.5
0 -0.63 -0.7648 -0.2174 0.00724 165.64 49.16 -1.5
0 -0.63 -0.7648 -0.2174 0.00724 165.64 49.16 -1.5
0 -0.63 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -0.63 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -0.63 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -0.63 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -0.63 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -0.55 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -0.55 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -0.55 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -0.55 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -0.55 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -0.55 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -0.55 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -0.55 -0.7648 -0.2174 0.00724 165.66 49.16 -1.5
0 -0.55 -0.7648 -0.2174 0.00724 165.66 49.16 -1.5
0 -0.55 -0.7648 -0.2174 0.00724 165.66 49.16 -1.5
0 -0.55 -0.7648 -0.2174 0.00724 165.66 49.16 -1.5
0 -0.55 -0.7648 -0.2174 0.00724 165.66 49.16 -1.5
0 -0.46 -0.7648 -0.2174 0.00724 165.66 49.16 -1.5
0 -0.46 -0.7648 -0.2174 0.00724 165.66 49.16 -1.5
0 -0.46 -0.7648 -0.2174 0.00724 165.66 49.16 -1.5
87

0 -0.46 -0.7648 -0.2174 0.00724 165.66 49.16 -1.5


0 -0.46 -0.7648 -0.2174 0.00724 165.66 49.16 -1.5
0 -0.46 -0.7648 -0.2174 0.00724 165.66 49.16 -1.5
0 -0.46 -0.7648 -0.2174 0.00724 165.67 49.16 -1.5
0 -0.46 -0.7648 -0.2174 0.00724 165.67 49.16 -1.5
0 -0.46 -0.7648 -0.2174 0.00724 165.67 49.16 -1.5
0 -0.46 -0.7648 -0.2174 0.00724 165.67 49.16 -1.5
0 -0.46 -0.7648 -0.2174 0.00724 165.67 49.16 -1.5
0 -0.46 -0.7648 -0.2174 0.00724 165.67 49.16 -1.5
0 -0.38 -0.7648 -0.2174 0.00724 165.67 49.16 -1.5
0 -0.38 -0.7648 -0.2174 0.00724 165.67 49.16 -1.5
0 -0.38 -0.7648 -0.2174 0.00724 165.67 49.16 -1.5
0 -0.38 -0.7648 -0.2174 0.00724 165.67 49.16 -1.5
0 -0.38 -0.7648 -0.2174 0.00724 165.67 49.16 -1.5
0 -0.38 -0.7648 -0.2174 0.00724 165.67 49.16 -1.5
0 -0.38 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -0.38 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -0.38 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -0.38 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -0.38 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -0.3 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -0.3 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -0.3 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -0.3 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -0.3 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -0.3 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -0.3 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -0.3 -0.7648 -0.2174 0.00724 165.69 49.17 -1.5
0 -0.3 -0.7648 -0.2174 0.00724 165.69 49.17 -1.5
0 -0.3 -0.7648 -0.2174 0.00724 165.69 49.17 -1.5
0 -0.3 -0.7648 -0.2174 0.00724 165.69 49.17 -1.5
0 -0.3 -0.7648 -0.2174 0.00724 165.69 49.17 -1.5
0 -0.22 -0.7648 -0.2174 0.00724 165.69 49.17 -1.5
0 -0.22 -0.7648 -0.2174 0.00724 165.69 49.17 -1.5
0 -0.22 -0.7648 -0.2174 0.00724 165.69 49.17 -1.5
0 -0.22 -0.7648 -0.2174 0.00724 165.69 49.17 -1.5
0 -0.22 -0.7648 -0.2174 0.00724 165.69 49.17 -1.5
0 -0.22 -0.7648 -0.2174 0.00724 165.69 49.17 -1.5
0 -0.22 -0.7648 -0.2174 0.00724 165.7 49.17 -1.5
0 -0.22 -0.7648 -0.2174 0.00724 165.7 49.17 -1.5
0 -0.22 -0.7648 -0.2174 0.00724 165.7 49.17 -1.5
88

0 -0.22 -0.7648 -0.2174 0.00724 165.7 49.17 -1.5


0 -0.22 -0.7648 -0.2174 0.00724 165.7 49.17 -1.5
0 -0.22 -0.7648 -0.2174 0.00724 165.7 49.17 -1.5
0 -0.15 -0.7648 -0.2174 0.00724 165.7 49.17 -1.5
0 -0.15 -0.7648 -0.2174 0.00724 165.7 49.17 -1.5
0 -0.15 -0.7648 -0.2174 0.00724 165.7 49.17 -1.5
0 -0.15 -0.7648 -0.2174 0.00724 165.7 49.17 -1.5
0 -0.15 -0.7648 -0.2174 0.00724 165.7 49.17 -1.5
0 -0.15 -0.7648 -0.2174 0.00724 165.7 49.17 -1.5
0 -0.15 -0.7648 -0.2174 0.00724 165.71 49.18 -1.5
0 -0.15 -0.7648 -0.2174 0.00724 165.71 49.18 -1.5
0 -0.15 -0.7648 -0.2174 0.00724 165.71 49.18 -1.5
0 -0.15 -0.7648 -0.2174 0.00724 165.71 49.18 -1.5
0 -0.15 -0.7648 -0.2174 0.00724 165.71 49.18 -1.5
0 -0.15 -0.7648 -0.2174 0.00724 165.71 49.18 -1.5
0 -0.08 -0.7648 -0.2174 0.00724 165.71 49.18 -1.5
0 -0.08 -0.7648 -0.2174 0.00724 165.71 49.18 -1.5
0 -0.08 -0.7648 -0.2174 0.00724 165.71 49.18 -1.5
0 -0.08 -0.7648 -0.2174 0.00724 165.71 49.18 -1.5
0 -0.08 -0.7648 -0.2174 0.00724 165.71 49.18 -1.5
0 -0.08 -0.7648 -0.2174 0.00724 165.71 49.18 -1.5
0 -0.08 -0.7648 -0.2174 0.00724 165.73 49.18 -1.5
0 -0.08 -0.7648 -0.2174 0.00724 165.73 49.18 -1.5
0 -0.08 -0.7648 -0.2174 0.00724 165.73 49.18 -1.5
0 -0.08 -0.7648 -0.2174 0.00724 165.73 49.18 -1.5
0 -0.08 -0.7648 -0.2174 0.00724 165.73 49.18 -1.5
0 -0.01 -0.7648 -0.2174 0.00724 165.73 49.18 -1.5
0 -0.01 -0.7648 -0.2174 0.00724 165.73 49.18 -1.5
0 -0.01 -0.7648 -0.2174 0.00724 165.73 49.18 -1.5
0 -0.01 -0.7648 -0.2174 0.00724 165.73 49.18 -1.5
0 -0.01 -0.7648 -0.2174 0.00724 165.73 49.18 -1.5
0 -0.01 -0.7648 -0.2174 0.00724 165.73 49.18 -1.5
89

Data Pengunjian Self – Tuning PID tanpa menggunakan kalman filter

Setpoint Output
𝑎̂1 𝑎̂2 𝑏̂1 𝐾𝑝 𝐾𝑖 𝐾𝑑
(derajat) (derajat)
0 -3.54 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -3.99 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -3.99 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -4.4 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -3.87 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -3.59 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -3.39 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -3.5 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -3.5 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -3.15 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -3.72 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -3.48 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -3.66 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -4.17 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -4.17 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -4.08 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -3.95 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -3.85 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -3.66 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -4.08 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -4.08 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -3.86 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -3.91 -0.7648 -0.2174 0.00724 165.58 49.14 -1.5
0 -3.86 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5
0 -3.54 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5
0 -3.49 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5
0 -3.68 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5
0 -3.68 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5
0 -4.15 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5
0 -3.87 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5
0 -3.91 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5
0 -3.49 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5
0 -3.75 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5
0 -3.75 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5
0 -3.95 -0.7648 -0.2174 0.00724 165.63 49.15 -1.5
0 -3.72 -0.7648 -0.2174 0.00724 165.69 49.17 -1.5
0 -3.63 -0.7648 -0.2174 0.00724 165.69 49.17 -1.5
0 -3.57 -0.7648 -0.2174 0.00724 165.69 49.17 -1.5
90

0 -3.47 -0.7648 -0.2174 0.00724 165.69 49.17 -1.5


0 -3.36 -0.7648 -0.2174 0.00724 165.69 49.17 -1.5
0 -3.36 -0.7648 -0.2174 0.00724 165.69 49.17 -1.5
0 -3.3 -0.7648 -0.2174 0.00724 165.69 49.17 -1.5
0 -3.2 -0.7648 -0.2174 0.00724 165.69 49.17 -1.5
0 -3.43 -0.7648 -0.2174 0.00724 165.69 49.17 -1.5
0 -3.5 -0.7648 -0.2174 0.00724 165.69 49.17 -1.5
0 -3.74 -0.7648 -0.2174 0.00724 165.69 49.17 -1.5
0 -3.74 -0.7648 -0.2174 0.00724 165.69 49.17 -1.5
0 -4.34 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -4.29 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -4.01 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -4.07 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -3.59 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -3.98 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -4.06 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -4.06 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -3.92 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -3.78 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -3.31 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -3.13 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -3.13 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -3.26 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -3.26 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -3.32 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -3.37 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -3.05 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -2.92 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -3.36 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -3.36 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -3.8 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -4.49 -0.7648 -0.2174 0.00724 165.65 49.16 -1.5
0 -4.7 -0.7648 -0.2174 0.00724 165.7 49.17 -1.5
0 -4.38 -0.7648 -0.2174 0.00724 165.7 49.17 -1.5
0 -4.1 -0.7648 -0.2174 0.00724 165.7 49.17 -1.5
0 -2.49 -0.7648 -0.2174 0.00724 165.7 49.17 -1.5
0 -2.49 -0.7648 -0.2174 0.00724 165.7 49.17 -1.5
0 -2.46 -0.7648 -0.2174 0.00724 165.7 49.17 -1.5
0 -2.01 -0.7648 -0.2174 0.00724 165.7 49.17 -1.5
0 -2.41 -0.7648 -0.2174 0.00724 165.7 49.17 -1.5
0 -2.62 -0.7648 -0.2174 0.00724 165.7 49.17 -1.5
91

0 -2.79 -0.7648 -0.2174 0.00724 165.7 49.17 -1.5


0 -2.79 -0.7648 -0.2174 0.00724 165.7 49.17 -1.5
0 -3.39 -0.7648 -0.2174 0.00724 165.7 49.17 -1.5
0 -3.5 -0.7648 -0.2174 0.00724 165.73 49.18 -1.5
0 -3.65 -0.7648 -0.2174 0.00724 165.73 49.18 -1.5
0 -3.83 -0.7648 -0.2174 0.00724 165.73 49.18 -1.5
0 -4.23 -0.7648 -0.2174 0.00724 165.73 49.18 -1.5
0 -4.36 -0.7648 -0.2174 0.00724 165.73 49.18 -1.5
0 -4.36 -0.7648 -0.2174 0.00724 165.73 49.18 -1.5
0 -3.83 -0.7648 -0.2174 0.00724 165.73 49.18 -1.5
0 -2.83 -0.7648 -0.2174 0.00724 165.73 49.18 -1.5
0 -2.03 -0.7648 -0.2174 0.00724 165.73 49.18 -1.5
0 -1.26 -0.7648 -0.2174 0.00724 165.73 49.18 -1.5
0 -1.17 -0.7648 -0.2174 0.00724 165.73 49.18 -1.5
0 -1.17 -0.7648 -0.2174 0.00724 165.73 49.18 -1.5
0 -1.62 -0.7648 -0.2174 0.00724 165.71 49.18 -1.5
0 -2.04 -0.7648 -0.2174 0.00724 165.71 49.18 -1.5
0 -2.38 -0.7648 -0.2174 0.00724 165.71 49.18 -1.5
0 -2.69 -0.7648 -0.2174 0.00724 165.71 49.18 -1.5
0 -2.49 -0.7648 -0.2174 0.00724 165.71 49.18 -1.5
0 -3.05 -0.7648 -0.2174 0.00724 165.71 49.18 -1.5
0 -3.05 -0.7648 -0.2174 0.00724 165.71 49.18 -1.5
0 -3.07 -0.7648 -0.2174 0.00724 165.71 49.18 -1.5
0 -3.16 -0.7648 -0.2174 0.00724 165.71 49.18 -1.5
0 -2.64 -0.7648 -0.2174 0.00724 165.71 49.18 -1.5
0 -2.65 -0.7648 -0.2174 0.00724 165.71 49.18 -1.5
0 -1.93 -0.7648 -0.2174 0.00724 165.71 49.18 -1.5
0 -1.48 -0.7648 -0.2174 0.00724 165.69 49.17 -1.5
0 -1.48 -0.7648 -0.2174 0.00724 165.69 49.17 -1.5
0 -1.35 -0.7648 -0.2174 0.00724 165.69 49.17 -1.5
0 -1.86 -0.7648 -0.2174 0.00724 165.69 49.17 -1.5
0 -2.02 -0.7648 -0.2174 0.00724 165.69 49.17 -1.5
0 -2.17 -0.7648 -0.2174 0.00724 165.69 49.17 -1.5
0 -1.78 -0.7648 -0.2174 0.00724 165.69 49.17 -1.5
0 -1.78 -0.7648 -0.2174 0.00724 165.69 49.17 -1.5
0 -1.89 -0.7648 -0.2174 0.00724 165.69 49.17 -1.5
0 -1.39 -0.7648 -0.2174 0.00724 165.69 49.17 -1.5
0 -1.35 -0.7648 -0.2174 0.00724 165.69 49.17 -1.5
0 -0.93 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -1.29 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -1.16 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
92

0 -1.17 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5


0 -1.17 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -0.75 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -0.04 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -0.3 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -0.61 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -1.96 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -1.96 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -2.45 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -1.54 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -0.26 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 0.19 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 0.8 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 5.74 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 5.34 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 4.36 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -0.51 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -1.39 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -2.79 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 0.93 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -0.66 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -0.29 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -0.29 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 0.29 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -0.02 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -0.34 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 0.1 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -0.1 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -0.1 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -0.1 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -0.12 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -0.08 -0.7648 -0.2174 0.00724 165.68 49.17 -1.5
0 -0.14 -0.7648 -0.2174 0.00724 165.66 49.16 -1.5
0 0.05 -0.7648 -0.2174 0.00724 165.66 49.16 -1.5
0 0.02 -0.7648 -0.2174 0.00724 165.66 49.16 -1.5
0 0.02 -0.7648 -0.2174 0.00724 165.66 49.16 -1.5
0 -0.02 -0.7648 -0.2174 0.00724 165.66 49.16 -1.5
0 -0.23 -0.7648 -0.2174 0.00724 165.66 49.16 -1.5
0 0.09 -0.7648 -0.2174 0.00724 165.66 49.16 -1.5
0 0.06 -0.7648 -0.2174 0.00724 165.66 49.16 -1.5
0 0.04 -0.7648 -0.2174 0.00724 165.66 49.16 -1.5
93

0 0.04 -0.7648 -0.2174 0.00724 165.66 49.16 -1.5


0 0.04 -0.7648 -0.2174 0.00724 165.66 49.16 -1.5
0 0.03 -0.7648 -0.2174 0.00723 165.66 49.16 -1.5
0 -0.04 -0.7648 -0.2174 0.00723 165.84 49.22 -1.5
0 0.08 -0.7648 -0.2174 0.00723 165.84 49.22 -1.5
0 0.09 -0.7648 -0.2174 0.00723 165.84 49.22 -1.5
0 -0.09 -0.7648 -0.2174 0.00723 165.84 49.22 -1.5
0 0.14 -0.7648 -0.2174 0.00723 165.84 49.22 -1.5
0 0.14 -0.7648 -0.2174 0.00723 165.84 49.22 -1.5
0 -0.18 -0.7648 -0.2174 0.00723 165.84 49.22 -1.5
0 -0.03 -0.7648 -0.2174 0.00723 165.84 49.22 -1.5
0 -0.06 -0.7648 -0.2174 0.00723 165.84 49.22 -1.5
0 -0.17 -0.7648 -0.2174 0.00723 165.84 49.22 -1.5
0 -0.11 -0.7648 -0.2174 0.00723 165.84 49.22 -1.5
0 -0.11 -0.7648 -0.2174 0.00722 165.84 49.22 -1.5
0 -0.02 -0.7648 -0.2174 0.00722 166.16 49.31 -1.51
0 0.18 -0.7648 -0.2174 0.00722 166.16 49.31 -1.51
0 0.05 -0.7648 -0.2174 0.00722 166.16 49.31 -1.51
0 -0.06 -0.7648 -0.2174 0.00722 166.16 49.31 -1.51
0 0.03 -0.7648 -0.2174 0.00722 166.16 49.31 -1.51
0 0.03 -0.7648 -0.2174 0.00722 166.16 49.31 -1.51
0 0.03 -0.7648 -0.2174 0.00722 166.16 49.31 -1.51
0 -0.26 -0.7648 -0.2174 0.00722 166.16 49.31 -1.51
0 0.09 -0.7648 -0.2174 0.00722 166.16 49.31 -1.51
0 0.03 -0.7648 -0.2174 0.00722 166.16 49.31 -1.51
0 -0.13 -0.7648 -0.2174 0.00722 166.16 49.31 -1.51
0 -0.02 -0.7648 -0.2174 0.00719 166.75 49.48 -1.51
0 -0.07 -0.7648 -0.2174 0.00719 166.75 49.48 -1.51
0 -0.07 -0.7648 -0.2174 0.00719 166.75 49.48 -1.51
0 -0.13 -0.7648 -0.2174 0.00719 166.75 49.48 -1.51
0 -0.04 -0.7648 -0.2174 0.00719 166.75 49.48 -1.51
0 0.01 -0.7648 -0.2174 0.00719 166.75 49.48 -1.51
0 0.02 -0.7648 -0.2174 0.00719 166.75 49.48 -1.51
0 -0.23 -0.7648 -0.2174 0.00719 166.75 49.48 -1.51
0 -0.14 -0.7648 -0.2174 0.00719 166.75 49.48 -1.51
94
95

LAMPIRAN 4
DATASHEET
® L298

DUAL FULL-BRIDGE DRIVER

.. OPERATING SUPPLY VOLTAGE UP TO 46 V

.. TOTAL DC CURRENT UP TO 4 A
LOW SATURATION VOLTAGE

. OVERTEMPERATURE PROTECTION
LOGICAL "0" INPUT VOLTAGE UP TO 1.5 V
(HIGH NOISE IMMUNITY)

DESCRIPTION PowerSO20
Multiwatt15
The L298 is an integrated monolithic circuit in a 15-
lead Multiwatt and PowerSO20 packages. It is a
high voltage, high current dual full-bridge driver de-
signed to accept standard TTL logic levels and drive ORDERING NUMBERS : L298N (Multiwatt Vert.)
L298HN (Multiwatt Horiz.)
inductive loads such as relays, solenoids, DC and L298P (PowerSO20)
stepping motors. Two enable inputs are provided to
enable or disable the device independently of the in-
put signals. The emitters of the lower transistors of nection of an external sensing resistor. An additional
each bridge are connected together and the corre- supply input is provided so that the logic works at a
sponding external terminal can be used for the con- lower voltage.

BLOCK DIAGRAM

Jenuary 2000 1/13


L298

ABSOLUTE MAXIMUM RATINGS

Symbol Parameter Value Unit


VS Power Supply 50 V
VSS Logic Supply Voltage 7 V
VI,Ven Input and Enable Voltage –0.3 to 7 V
IO Peak Output Current (each Channel)
– Non Repetitive (t = 100µs) 3 A
–Repetitive (80% on –20% off; ton = 10ms) 2.5 A
–DC Operation 2 A
Vsens Sensing Voltage –1 to 2.3 V
Ptot Total Power Dissipation (Tcase = 75°C) 25 W
Top Junction Operating Temperature –25 to 130 °C
Tstg, Tj Storage and Junction Temperature –40 to 150 °C

PIN CONNECTIONS (top view)

15 CURRENT SENSING B
14 OUTPUT 4
13 OUTPUT 3
12 INPUT 4
11 ENABLE B
10 INPUT 3
9 LOGIC SUPPLY VOLTAGE VSS
Multiwatt15 8 GND
7 INPUT 2
6 ENABLE A
5 INPUT 1
4 SUPPLY VOLTAGE VS
3 OUTPUT 2
2 OUTPUT 1
1 CURRENT SENSING A

TAB CONNECTED TO PIN 8 D95IN240A

GND 1 20 GND
Sense A 2 19 Sense B
N.C. 3 18 N.C.
Out 1 4 17 Out 4
Out 2 5 PowerSO20 16 Out 3
VS 6 15 Input 4
Input 1 7 14 Enable B
Enable A 8 13 Input 3
Input 2 9 12 VSS
GND 10 11 GND

D95IN239

THERMAL DATA
Symbol Parameter PowerSO20 Multiwatt15 Unit
Rth j-case Thermal Resistance Junction-case Max. – 3 °C/W
Rth j-amb Thermal Resistance Junction-ambient Max. 13 (*) 35 °C/W

(*) Mounted on aluminum substrate

2/13
L298

PIN FUNCTIONS (refer to the block diagram)


MW.15 PowerSO Name Function
1;15 2;19 Sense A; Sense B Between this pin and ground is connected the sense resistor to
control the current of the load.
2;3 4;5 Out 1; Out 2 Outputs of the Bridge A; the current that flows through the load
connected between these two pins is monitored at pin 1.
4 6 VS Supply Voltage for the Power Output Stages.
A non-inductive 100nF capacitor must be connected between this
pin and ground.
5;7 7;9 Input 1; Input 2 TTL Compatible Inputs of the Bridge A.
6;11 8;14 Enable A; Enable B TTL Compatible Enable Input: the L state disables the bridge A
(enable A) and/or the bridge B (enable B).
8 1,10,11,20 GND Ground.
9 12 VSS Supply Voltage for the Logic Blocks. A100nF capacitor must be
connected between this pin and ground.
10; 12 13;15 Input 3; Input 4 TTL Compatible Inputs of the Bridge B.
13; 14 16;17 Out 3; Out 4 Outputs of the Bridge B. The current that flows through the load
connected between these two pins is monitored at pin 15.
– 3;18 N.C. Not Connected

ELECTRICAL CHARACTERISTICS (VS = 42V; VSS = 5V, Tj = 25°C; unless otherwise specified)
Symbol Parameter Test Conditions Min. Typ. Max. Unit
VS Supply Voltage (pin 4) Operative Condition VIH +2.5 46 V
VSS Logic Supply Voltage (pin 9) 4.5 5 7 V
IS Quiescent Supply Current (pin 4) Ven = H; IL = 0 Vi = L 13 22 mA
Vi = H 50 70 mA
Ven = L Vi = X 4 mA
ISS Quiescent Current from VSS (pin 9) Ven = H; IL = 0 Vi = L 24 36 mA
Vi = H 7 12 mA
Ven = L Vi = X 6 mA
ViL Input Low Voltage –0.3 1.5 V
(pins 5, 7, 10, 12)
ViH Input High Voltage 2.3 VSS V
(pins 5, 7, 10, 12)
IiL Low Voltage Input Current Vi = L –10 µA
(pins 5, 7, 10, 12)
IiH High Voltage Input Current Vi = H ≤ VSS –0.6V 30 100 µA
(pins 5, 7, 10, 12)
Ven = L Enable Low Voltage (pins 6, 11) –0.3 1.5 V
Ven = H Enable High Voltage (pins 6, 11) 2.3 VSS V
Ien = L Low Voltage Enable Current Ven = L –10 µA
(pins 6, 11)
Ien = H High Voltage Enable Current Ven = H ≤ VSS –0.6V 30 100 µA
(pins 6, 11)
VCEsat (H) Source Saturation Voltage IL = 1A 0.95 1.35 1.7 V
IL = 2A 2 2.7 V
VCEsat (L) Sink Saturation Voltage IL = 1A (5) 0.85 1.2 1.6 V
IL = 2A (5) 1.7 2.3 V
VCEsat Total Drop IL = 1A (5) 1.80 3.2 V
IL = 2A (5) 4.9 V
Vsens Sensing Voltage (pins 1, 15) –1 (1) 2 V

3/13
L298

ELECTRICAL CHARACTERISTICS (continued)

Symbol Parameter Test Conditions Min. Typ. Max. Unit


T1 (Vi) Source Current Turn-off Delay 0.5 Vi to 0.9 IL (2); (4) 1.5 µs
T2 (Vi) Source Current Fall Time 0.9 IL to 0.1 IL (2); (4) 0.2 µs
T3 (Vi) Source Current Turn-on Delay 0.5 Vi to 0.1 IL (2); (4) 2 µs
T4 (Vi) Source Current Rise Time 0.1 IL to 0.9 IL (2); (4) 0.7 µs
T5 (Vi) Sink Current Turn-off Delay 0.5 Vi to 0.9 IL (3); (4) 0.7 µs
T6 (Vi) Sink Current Fall Time 0.9 IL to 0.1 IL (3); (4) 0.25 µs
T7 (Vi) Sink Current Turn-on Delay 0.5 Vi to 0.9 IL (3); (4) 1.6 µs
T8 (Vi) Sink Current Rise Time 0.1 IL to 0.9 IL (3); (4) 0.2 µs
fc (Vi) Commutation Frequency IL = 2A 25 40 KHz
T1 (Ven) Source Current Turn-off Delay 0.5 Ven to 0.9 IL (2); (4) 3 µs
T2 (Ven) Source Current Fall Time 0.9 IL to 0.1 IL (2); (4) 1 µs
T3 (Ven) Source Current Turn-on Delay 0.5 Ven to 0.1 IL (2); (4) 0.3 µs
T4 (Ven) Source Current Rise Time 0.1 IL to 0.9 IL (2); (4) 0.4 µs
T5 (Ven) Sink Current Turn-off Delay 0.5 Ven to 0.9 IL (3); (4) 2.2 µs
T6 (Ven) Sink Current Fall Time 0.9 IL to 0.1 IL (3); (4) 0.35 µs
T7 (Ven) Sink Current Turn-on Delay 0.5 Ven to 0.9 IL (3); (4) 0.25 µs
T8 (Ven) Sink Current Rise Time 0.1 IL to 0.9 IL (3); (4) 0.1 µs

1) 1)Sensing voltage can be –1 V for t ≤ 50 µsec; in steady state Vsens min ≥ – 0.5 V.
2) See fig. 2.
3) See fig. 4.
4) The load must be a pure resistor.

Figure 1 : Typical Saturation Voltage vs. Output Figure 2 : Switching Times Test Circuits.
Current.

Note : For INPUT Switching, set EN = H


For ENABLE Switching, set IN = H

4/13
JGA25-370RC DC Gearmotor with Extended
Axis (645 RPM at 12 V)

Overview
JGA25-370RC is a high quality DC gearmotor featuring a longer output shaft, which is specially
designed for mounting speed encoders.

Specifications
 Nominal voltage: 12 V
 Free-run speed at 12 V: 645 RPM
 Free-run current at 12 V: 40 mA
 Stall current at 12 V: 1.2 A
 Stall torque at 12 V: 0.5 kg.cm
 Reductor size: 22 mm
 Weight: 90 g
Fig. 1. Lateral view of the JGA25-370RC DC gearmotor (L is specified for each RPM value)

Fig. 2. Front view of the JGA25-370RC DC gearmotor


EAGLE files: arduino-mega2560-reference-design.zip Schematic: arduino-mega2560-schematic.pdf

Microcontroller ATmega2560
Operating Voltage 5V
Input Voltage (recommended) 7-12V
Input Voltage (limits) 6-20V
Digital I/O Pins 54 (of which 14 provide PWM output)
Analog Input Pins 16
DC Current per I/O Pin 40 mA
DC Current for 3.3V Pin 50 mA
Flash Memory 256 KB of which 8 KB used by bootloader
SRAM 8 KB
EEPROM 4 KB
Clock Speed 16 MHz
The Arduino Mega2560 can be powered via the USB connection or with an external power supply. The power source is
selected automatically. External (non-USB) power can come either from an AC-to-DC adapter (wall-wart) or battery. The
adapter can be connected by plugging a 2.1mm center-positive plug into the board's power jack. Leads from a battery
can be inserted in the Gnd and Vin pin headers of the POWER connector.

The board can operate on an external supply of 6 to 20 volts. If supplied with less than 7V, however, the 5V pin may
supply less than five volts and the board may be unstable. If using more than 12V, the voltage regulator may overheat
and damage the board. The recommended range is 7 to 12 volts.

The Mega2560 differs from all preceding boards in that it does not use the FTDI USB-to-serial driver chip. Instead, it
features the Atmega8U2 programmed as a USB-to-serial converter.

The power pins are as follows:

• VIN. The input voltage to the Arduino board when it's using an external power source (as opposed to 5 volts
from the USB connection or other regulated power source). You can supply voltage through this pin, or, if
supplying voltage via the power jack, access it through this pin.
• 5V. The regulated power supply used to power the microcontroller and other components on the board. This
can come either from VIN via an on-board regulator, or be supplied by USB or another regulated 5V supply.
• 3V3. A 3.3 volt supply generated by the on-board regulator. Maximum current draw is 50 mA.
• GND. Ground pins.

The ATmega2560 has 256 KB of flash memory for storing code (of which 8 KB is used for the bootloader), 8 KB of
SRAM and 4 KB of EEPROM (which can be read and written with the EEPROM library).

Each of the 54 digital pins on the Mega can be used as an input or output, using pinMode(), digitalWrite(), and
digitalRead() functions. They operate at 5 volts. Each pin can provide or receive a maximum of 40 mA and has an
internal pull-up resistor (disconnected by default) of 20-50 kOhms. In addition, some pins have specialized functions:

• Serial: 0 (RX) and 1 (TX); Serial 1: 19 (RX) and 18 (TX); Serial 2: 17 (RX) and 16 (TX); Serial 3: 15 (RX) and
14 (TX). Used to receive (RX) and transmit (TX) TTL serial data. Pins 0 and 1 are also connected to the
corresponding pins of the ATmega8U2 USB-to-TTL Serial chip .
• External Interrupts: 2 (interrupt 0), 3 (interrupt 1), 18 (interrupt 5), 19 (interrupt 4), 20 (interrupt 3), and 21
(interrupt 2). These pins can be configured to trigger an interrupt on a low value, a rising or falling edge, or a
change in value. See the attachInterrupt() function for details.
• PWM: 0 to 13. Provide 8-bit PWM output with the analogWrite() function.
• SPI: 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS). These pins support SPI communication, which, although
provided by the underlying hardware, is not currently included in the Arduino language. The SPI pins are also
broken out on the ICSP header, which is physically compatible with the Duemilanove and Diecimila.
• LED: 13. There is a built-in LED connected to digital pin 13. When the pin is HIGH value, the LED is on, when
the pin is LOW, it's off.
• I2C: 20 (SDA) and 21 (SCL). Support I2C (TWI) communication using the Wire library (documentation on the
Wiring website). Note that these pins are not in the same location as the I2C pins on the Duemilanove.

The Mega2560 has 16 analog inputs, each of which provide 10 bits of resolution (i.e. 1024 different values). By default
they measure from ground to 5 volts, though is it possible to change the upper end of their range using the AREF pin and
analogReference() function.

There are a couple of other pins on the board:

• AREF. Reference voltage for the analog inputs. Used with analogReference().
• Reset. Bring this line LOW to reset the microcontroller. Typically used to add a reset button to shields which
block the one on the board.
The Arduino Mega2560 has a number of facilities for communicating with a computer, another Arduino, or
other microcontrollers. The ATmega2560 provides four hardware UARTs for TTL (5V) serial communication.
An ATmega8U2 on the board channels one of these over USB and provides a virtual com port to software on
the computer (Windows machines will need a .inf file, but OSX and Linux machines will recognize the board
as a COM port automatically. The Arduino software includes a serial monitor which allows simple textual
data to be sent to and from the board. The RX and TX LEDs on the board will flash when data is being
transmitted via the ATmega8U2 chip and USB connection to the computer (but not for serial communication
on pins 0 and 1).

A SoftwareSerial library allows for serial communication on any of the Mega's digital pins.

The ATmega2560 also supports I2C (TWI) and SPI communication. The Arduino software includes a Wire
library to simplify use of the I2C bus; see the documentation on the Wiring website for details. To use the SPI
communication, please see the ATmega2560 datasheet.

The Arduino Mega2560 can be programmed with the Arduino software (download). For details, see the
reference and tutorials.

The Atmega2560 on the Arduino Mega comes preburned with a bootloader that allows you to upload new
code to it without the use of an external hardware programmer. It communicates using the original STK500
protocol (reference, C header files).

You can also bypass the bootloader and program the microcontroller through the ICSP (In-Circuit Serial
Programming) header; see these instructions for details.
Rather then requiring a physical press of the reset button before an upload, the Arduino Mega2560 is
designed in a way that allows it to be reset by software running on a connected computer. One of the
hardware flow control lines (DTR) of the ATmega8U2 is connected to the reset line of the ATmega2560 via a
100 nanofarad capacitor. When this line is asserted (taken low), the reset line drops long enough to reset the
chip. The Arduino software uses this capability to allow you to upload code by simply pressing the upload
button in the Arduino environment. This means that the bootloader can have a shorter timeout, as the
lowering of DTR can be well-coordinated with the start of the upload.

This setup has other implications. When the Mega2560 is connected to either a computer running Mac OS X
or Linux, it resets each time a connection is made to it from software (via USB). For the following half-second
or so, the bootloader is running on the Mega2560. While it is programmed to ignore malformed data (i.e.
anything besides an upload of new code), it will intercept the first few bytes of data sent to the board after a
connection is opened. If a sketch running on the board receives one-time configuration or other data when it
first starts, make sure that the software with which it communicates waits a second after opening the
connection and before sending this data.

The Mega contains a trace that can be cut to disable the auto-reset. The pads on either side of the trace can
be soldered together to re-enable it. It's labeled "RESET-EN". You may also be able to disable the auto-reset
by connecting a 110 ohm resistor from 5V to the reset line; see this forum thread for details.

The Arduino Mega has a resettable polyfuse that protects your computer's USB ports from shorts and
overcurrent. Although most computers provide their own internal protection, the fuse provides an extra layer
of protection. If more than 500 mA is applied to the USB port, the fuse will automatically break the connection
until the short or overload is removed.

The maximum length and width of the Mega PCB are 4 and 2.1 inches respectively, with the USB connector
and power jack extending beyond the former dimension. Three screw holes allow the board to be attached to
a surface or case. Note that the distance between digital pins 7 and 8 is 160 mil (0.16"), not an even multiple
of the 100 mil spacing of the other pins.

The Mega is designed to be compatible with most shields designed for the Diecimila or Duemilanove. Digital
pins 0 to 13 (and the adjacent AREF and GND pins), analog inputs 0 to 5, the power header, and ICSP
header are all in equivalent locations. Further the main UART (serial port) is located on the same pins (0 and
1), as are external interrupts 0 and 1 (pins 2 and 3 respectively). SPI is available through the ICSP header on
both the Mega and Duemilanove / Diecimila. Please note that I2C is not located on the same pins on the
Mega (20 and 21) as the Duemilanove / Diecimila (analog inputs 4 and 5).
Document Number: PS-MPU-6000A-00
MPU-6000/MPU-6050 Product Specification Revision: 3.3
Release Date: 5/16/2012

7.2 Typical Operating Circuit

SCL / SCLK
SDA / SDI GND GND

CLKOUT
CLKOUT

SDA

SCL
C3 C3
2.2nF 2.2nF

24 23 22 21 20 19 24 23 22 21 20 19

CLKIN 1 18 CLKIN 1 18

2 17 2 17
GND GND
3 16 3 16

4
MPU-6000 15 4
MPU-6050 15
VDD VDD
5 14 5 14

AUX_DA 6 13 AUX_DA 6 13

7 8 9 10 11 12 C2 7 8 9 10 11 12 C2
0.1µF 0.1µF
AUX_CL AUX_CL
GND GND
C1 VLOGIC C1
0.1µF 0.1µF
AD0 / SDO

INT

INT
/CS

FSYNC

FSYNC
C4

AD0
10nF

GND GND GND

Typical Operating Circuits

7.3 Bill of Materials for External Components

Component Label Specification Quantity


Regulator Filter Capacitor (Pin 10) C1 Ceramic, X7R, 0.1µF ±10%, 2V 1
VDD Bypass Capacitor (Pin 13) C2 Ceramic, X7R, 0.1µF ±10%, 4V 1
Charge Pump Capacitor (Pin 20) C3 Ceramic, X7R, 2.2nF ±10%, 50V 1
VLOGIC Bypass Capacitor (Pin 8) C4* Ceramic, X7R, 10nF ±10%, 4V 1
* MPU-6050 Only.

22 of 54
Document Number: PS-MPU-6000A-00
MPU-6000/MPU-6050 Product Specification Revision: 3.3
Release Date: 5/16/2012

7.4 Recommended Power-on Procedure

All Voltages at 0V

Power-Up Sequencing
1. VLOGIC amplitude must always be ≤VDD
amplitude
TVDDR
90% 2. TVDDR is VDD rise time: Time for VDD to rise
from 10% to 90% of its final value
3. TVDDR is ≤100ms
10%
VDD
4. TVLGR is VLOGIC rise time: Time for
TVLGR VLOGIC to rise from 10% to 90% of its final
90% value
5. TVLGR is ≤3ms

VLOGIC
10% 6. TVLG-VDD is the delay from the start of VDD
ramp to the start of VLOGIC rise
7. TVLG-VDD is ≥0
TVLG - VDD
8. VDD and VLOGIC must be monotonic
ramps

23 of 54
Document Number: PS-MPU-6000A-00
MPU-6000/MPU-6050 Product Specification Revision: 3.3
Release Date: 5/16/2012

7.5 Block Diagram

1
CLKIN
22 CLOCK Clock MPU-60X0
CLKOUT

Self
X Accel ADC 12
test Interrupt INT
Status
Register
8
(/CS)
Self Y Accel ADC 9
Slave I2C and AD0 / (SDO)
test
SPI Serial 23
FIFO
Interface SCL / (SCLK)
24
SDA / (SDI)
Self Z Accel ADC
test Config
Signal Conditioning

Registers
Master I2C Serial 7
AUX_CL
Self Serial Interface
test X Gyro ADC Interface Bypass 6
Sensor AUX_DA
Mux
Registers
11
Self FSYNC
test Y Gyro ADC
Factory
Calibration
Digital Motion
Processor
Self
Z Gyro ADC (DMP)
test

Temp Sensor ADC

Charge
Bias & LDO
Pump
20 13 18 10 8

CPOUT VDD GND REGOUT [VLOGIC]

Note: Pin names in round brackets ( ) apply only to MPU-6000


Pin names in square brackets [ ] apply only to MPU-6050

7.6 Overview
The MPU-60X0 is comprised of the following key blocks and functions:
 Three-axis MEMS rate gyroscope sensor with 16-bit ADCs and signal conditioning
 Three-axis MEMS accelerometer sensor with 16-bit ADCs and signal conditioning
 Digital Motion Processor (DMP) engine

2
Primary I C and SPI (MPU-6000 only) serial communications interfaces

2 rd
Auxiliary I C serial interface for 3 party magnetometer & other sensors
 Clocking
 Sensor Data Registers
 FIFO
 Interrupts
 Digital-Output Temperature Sensor
 Gyroscope & Accelerometer Self-test
 Bias and LDO
 Charge Pump

24 of 54
Document Number: PS-MPU-6000A-00
MPU-6000/MPU-6050 Product Specification Revision: 3.3
Release Date: 5/16/2012

7.7 Three-Axis MEMS Gyroscope with 16-bit ADCs and Signal Conditioning
The MPU-60X0 consists of three independent vibratory MEMS rate gyroscopes, which detect rotation about
the X-, Y-, and Z- Axes. When the gyros are rotated about any of the sense axes, the Coriolis Effect causes
a vibration that is detected by a capacitive pickoff. The resulting signal is amplified, demodulated, and filtered
to produce a voltage that is proportional to the angular rate. This voltage is digitized using individual on-chip
16-bit Analog-to-Digital Converters (ADCs) to sample each axis. The full-scale range of the gyro sensors
may be digitally programmed to ±250, ±500, ±1000, or ±2000 degrees per second (dps). The ADC sample
rate is programmable from 8,000 samples per second, down to 3.9 samples per second, and user-selectable
low-pass filters enable a wide range of cut-off frequencies.

7.8 Three-Axis MEMS Accelerometer with 16-bit ADCs and Signal Conditioning
The MPU-60X0’s 3-Axis accelerometer uses separate proof masses for each axis. Acceleration along a
particular axis induces displacement on the corresponding proof mass, and capacitive sensors detect the
displacement differentially. The MPU-60X0’s architecture reduces the accelerometers’ susceptibility to
fabrication variations as well as to thermal drift. When the device is placed on a flat surface, it will measure
0g on the X- and Y-axes and +1g on the Z-axis. The accelerometers’ scale factor is calibrated at the factory
and is nominally independent of supply voltage. Each sensor has a dedicated sigma-delta ADC for providing
digital outputs. The full scale range of the digital output can be adjusted to ±2g, ±4g, ±8g, or ±16g.

7.9 Digital Motion Processor


The embedded Digital Motion Processor (DMP) is located within the MPU-60X0 and offloads computation of
motion processing algorithms from the host processor. The DMP acquires data from accelerometers,
rd
gyroscopes, and additional 3 party sensors such as magnetometers, and processes the data. The resulting
data can be read from the DMP’s registers, or can be buffered in a FIFO. The DMP has access to one of the
MPU’s external pins, which can be used for generating interrupts.
The purpose of the DMP is to offload both timing requirements and processing power from the host
processor. Typically, motion processing algorithms should be run at a high rate, often around 200Hz, in order
to provide accurate results with low latency. This is required even if the application updates at a much lower
rate; for example, a low power user interface may update as slowly as 5Hz, but the motion processing should
still run at 200Hz. The DMP can be used as a tool in order to minimize power, simplify timing, simplify the
software architecture, and save valuable MIPS on the host processor for use in the application.

2
7.10 Primary I C and SPI Serial Communications Interfaces
2
The MPU-60X0 communicates to a system processor using either a SPI (MPU-6000 only) or an I C serial
interface. The MPU-60X0 always acts as a slave when communicating to the system processor. The LSB of
2
the of the I C slave address is set by pin 9 (AD0).
The logic levels for communications between the MPU-60X0 and its master are as follows:
 MPU-6000: The logic level for communications with the master is set by the voltage on VDD
 MPU-6050: The logic level for communications with the master is set by the voltage on VLOGIC
For further information regarding the logic levels of the MPU-6050, please refer to Section 10.

25 of 54
Document Number: PS-MPU-6000A-00
MPU-6000/MPU-6050 Product Specification Revision: 3.3
Release Date: 5/16/2012

2
7.11 Auxiliary I C Serial Interface
2
The MPU-60X0 has an auxiliary I C bus for communicating to an off-chip 3-Axis digital output magnetometer
or other sensors. This bus has two operating modes:

2
I C Master Mode: The MPU-60X0 acts as a master to any external sensors connected to the
2
auxiliary I C bus

2
Pass-Through Mode: The MPU-60X0 directly connects the primary and auxiliary I C buses together,
allowing the system processor to directly communicate with any external sensors.
2
Auxiliary I C Bus Modes of Operation:

2
I C Master Mode: Allows the MPU-60X0 to directly access the data registers of external digital
sensors, such as a magnetometer. In this mode, the MPU-60X0 directly obtains data from auxiliary
sensors, allowing the on-chip DMP to generate sensor fusion data without intervention from the
system applications processor.
2
For example, In I C Master mode, the MPU-60X0 can be configured to perform burst reads,
returning the following data from a magnetometer:
 X magnetometer data (2 bytes)
 Y magnetometer data (2 bytes)
 Z magnetometer data (2 bytes)
2
The I C Master can be configured to read up to 24 bytes from up to 4 auxiliary sensors. A fifth sensor
can be configured to work single byte read/write mode.

 Pass-Through Mode: Allows an external system processor to act as master and directly
2
communicate to the external sensors connected to the auxiliary I C bus pins (AUX_DA and
2 rd
AUX_CL). In this mode, the auxiliary I C bus control logic (3 party sensor interface block) of the
2
MPU-60X0 is disabled, and the auxiliary I C pins AUX_DA and AUX_CL (Pins 6 and 7) are
2
connected to the main I C bus (Pins 23 and 24) through analog switches.

Pass-Through Mode is useful for configuring the external sensors, or for keeping the MPU-60X0 in a
low-power mode when only the external sensors are used.
2
In Pass-Through Mode the system processor can still access MPU-60X0 data through the I C
interface.

2
Auxiliary I C Bus IO Logic Levels

2
MPU-6000: The logic level of the auxiliary I C bus is VDD

2
MPU-6050: The logic level of the auxiliary I C bus can be programmed to be either VDD or VLOGIC

For further information regarding the MPU-6050’s logic levels, please refer to Section 10.2.

26 of 54

Anda mungkin juga menyukai