SlideShare a Scribd company logo
1 of 66
Download to read offline
KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN
POLITEKNIK NEGERI BANDUNG
Jln. Gegerkalong Hilir, Ds. Ciwaruga, Bandung 40012, Kotak Pos 1234, Telepon (022) 2013789, Fax. (022)
2013889 Homepage :www.polban.ac.id Email : polban@polban.ac.id
Lembar Sampul Dokumen B100
Judul Dokumen Dokumen B100: ā€œBalancing Bi-Copter dengan Kendali PIDā€
Jenis Dokumen B100
Nomor Dokumen B100 ā€“ 01
Nomor Revisi 01
Nama File 2B_NanjarSyabanul_SKDB100
Tanggal Penerbitan 05 April 2019
Unit Penerbit Nanjar Syabanul Fajar
Jumlah Halaman 5
Data Pengusul
Pengusul
Nama
Jabatan
Mahasiswa D ā€“ III
Teknik Elektronika
Nanjar Syabanul Fajar 171311059
Tanggal 05-04-2019 Tanda Tangan
Lembaga Politeknik Negeri Bandung
Alamat
Jln. Gegerkalong Hilir, Ds. Ciwaruga Bandung 40012, Kotak Pos 1234,
Telepon (022) 2013789, Fax. (022) 2013889
Telepon : 022-2013789 Faks : 022-2013889 Email : polban@polban.ac.id
I Pengantar
1.1 Ringkasan isi dokumen
Dokumen ini berisi proposal pengembangan Sistem Kendali Posisi yang diterapkan pada sistem
Balancing Bi-Copter untuk ditujukan sebagai tugas mandiri mata kuliah Sistem Kendali Lanjut (SKL)
program studi D3 Teknik Elektronika Politeknik Negeri Bandung. Penulisan dokumen berdasar pada
ide pengembangan yang berisi antara lain : konsep, desain dan fitur dari Sistem Kendali Posisi yang
direncanakan akan dikembangkan, perangkat/tools yang akan digunakan dan rencana pengembangan
dari awal perencanaan hingga produk akhir dari proyek ini.
1.2 Tujuan penulisan
Tujuan penulisan dari dokumen ini yaitu :
1. Sebagai acuan dan referensi dalam pengembangan topik serupa dan pengembangan lebih
lanjut.
2. Membuat miniatur pengendalian posisi pada Bi-Copter dengan menggunakan MPU6065
sebagai sensor posisi.
II Proposal Pengembangan
2.1 Pendahuluan
Sebuah komputer dapat mengendalikan sebuah rangkaian/alat elektronika
menggunakan sebuah chip IC yang dapat diisi program dan logika yang disebut
teknologi Mikroprosesor. Pada Sistem Kendali Posisi ini memanfaatkan
mikrokontroller sebagai controller dimana algoritma sistem dipusatkan pada satu
mikrokontroller.
Mikrokontroler Arduino saat ini menjadi salah satu development board yang
banyak digunakan untuk mendukung pembelajaran dan pengembangat alat-alat
sederhana. Arduino digunakan sebagai salah satu controller dalam mengaplikasikan
sistem kendali digital dengan metode PID.
Berdasarkan perencanaan, perancangan dan pengoperasian kemudian,
diharapkan Bi-Copter bekerja sesuai dengan kondisi yang diinginkan.
2.2 Latar Belakang
Menurut Oā€™Sullivan, keseimbangan adalah kemampuan untuk mempertahankan
pusat gravitasi pada bidang tumpu terutama ketika posisi tegak. Keseimbangan juga
dapat diartikan sebagai kemampuan relatif untuk mengontrol pusat massa tubuh atau
pusat gravitasi terhadap bidang tumpu.
Salah satu aplikasi dalam menerapkan ilmu keseimbangan adalah Sistem
pengendalian posisi keimbangan pada miniatur Bi-Copter. Sebuah miniatur Bi-Copter
adalah suatu perangkat yang memiliki 2 baling-baling dan memiliki 2 lengan kuasa
yang berpusat tumpu masa di antara 2 lengankuasa tersebut. Bi-Copter dapat bermanufer
sangat lincah karena gaya angkat yang dihasilkan oleh aliran udara yang dihasilkan dari
bilah-bilah baling-baling rotornya.
Bi-Copter ini didesain untuk dapat mengendalikan putaran baling-baling supaya
dapat mencapai posisi yang (0Ā°) dinginkan. Setiap perubahan posisi dibaca oleh sensor
MPU6065. Untuk dapat tetap dalam posisi seimbang dan atau mempertahankan posisi, Bi-
Copter ini dilengkapi sistem Kendali Posisi yang berfungsi mengunci dan mempertahankan
supaya posisi lengan kuasa tetap seimbang.
2.3 Desain Sistem Kendali Posisi
Gambar 1. Blok Diagram Sistem Kendali
Berdasarkan blok diagram pada gambar 1 maka rancangan komponen yang akan dibuat
ialah :
ā€¢ Setpoint = Potensiometer
ā€¢ Controller = Arduino
ā€¢ Driver = ESC (Electronic Speed Controller)
ā€¢ Actuator = BLDC (Brushlees DC) Motor
ā€¢ Sensor = MPU6065
2.4 Konsep
Sistem plant terdiri dari 2 lengan kuasa yang terpasang motor BLDC dan baling-
baling pada kedua ujung lengan kuasa tersebut. Lengan kuasa memiliki Panjang lengan
yang sama panjang dan bertitik tumpu pada satu poros. Sensor MPU6065 sebagai pembaca
posisi ditempatkan sejajar dengan titik tumpu. Kecepatan putaran kedua baling-baling akan
saling mempengaruhi satu sama lainnya, jika posisi terbaca tidak seimbang atau misalnya
nilai kemiringan > 0Ā° maka putaran baling-baling kanan harus lebih cepat dibandingkan
yang kiri, dan begitupula sebaliknya jika nilai kemiringan < 0Ā°.
Hasil pembacaan Potensiometer dikonversi menjadi Setpoint untuk nilai posisi
kemiringan Lengan kuasa dalam satuan sudut. Simpangan dari posisi lengan kuasa terhadap
Set Point
+
-
Controller Driver Actuator
Sensor
Plant
Output
Feedback
nilai setPoint disebut sebagai Error. Nilai error inilah yang akan diolah oleh sistem kendali
PID supaya posisi lengan kuasa sesuai dengan nilai setpoint serta mempertahankan posisi
tersebut walaupun diberi ganguan/distrubansi.
Gambar 2. Bentuk Fisis Plant
KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN
POLITEKNIK NEGERI BANDUNG
Jln. Gegerkalong Hilir, Ds. Ciwaruga, Bandung 40012, Kotak Pos 1234, Telepon (022) 2013789, Fax. (022)
2013889 Homepage :www.polban.ac.id Email : polban@polban.ac.id
Lembar Sampul Dokumen B200
Judul Dokumen Dokumen B200: ā€œBalancing Bi-Copter dengan Kendali PIDā€
Jenis Dokumen B200
Nomor Dokumen B200 ā€“ 01
Nomor Revisi 01
Nama File 2B_NanjarSyabanul_SKDB200
Tanggal Penerbitan 22 April 2019
Unit Penerbit Nanjar Syabanul Fajar
Jumlah Halaman
Data Pengusul
Pengusul
Nama
Jabatan
Mahasiswa D ā€“ III
Teknik Elektronika
Nanjar Syabanul Fajar 171311059
Tanggal 22-04-2019 Tanda Tangan
Lembaga Politeknik Negeri Bandung
Alamat
Jln. Gegerkalong Hilir, Ds. Ciwaruga Bandung 40012, Kotak Pos 1234,
Telepon (022) 2013789, Fax. (022) 2013889
Telepon : 022-2013789 Faks : 022-2013889 Email : polban@polban.ac.id
Pengantar
1.1 Ringkasan isi dokumen
Dokumen B200 Dokumen B200 ini berisi tentang dokumen spesifikasi alat yang meliputi
spesifikasi sistem dalam mengembangkan alat ini, serta detail dari alat yang akan dibuat dengan nama
ā€œBalancing Bi-Copter dengan Kedali PIDā€. Dokumen ini berisi mengenai mekanisme alat dan cara
kerja alat.
1.2 Functional Requirement Specification
ā€¢ Alat ini diciptakan sebagai pengembangan untuk mengatur dan mempertahankan posisi. Hal
yang akan dikembangkan dalam alat ini adalah sistem kendali Posisi dengan PID.
Proposal Pengembangan
2.1 Gambaran Umum
Posisi lengan kuasa akan terus dijaga supaya sama dengan nilai set point yang diberikan. Untuk
mencapai kondisi tersebut perlu diterapkan sistem kendali Posisi dengan metode PID. Pengujian sistem
dilakukan dengan memberikan gangguan pada salah satu lengan kusa berupa penambahan beban.
2.2 Tujuan
Tujuan utama dari dibuatnya alat ini adalah :
ā€¢ Merancang dan merealisasikan perangkat keras dan perangkat lunak Balancing Bi-
Copter.
ā€¢ Menguji dan mengevaluasi kinerja dari Balancing Bi-Copter.
2.3 Ruang Lingkup
Alat ini memiliki batasan-batasan sebagai berikut :
ā€¢ Mengatur posisi dengan set Point berupa nilai dari Potensiometer
ā€¢ Metode Kendali yang digunakan adalah metode PID.
ā€¢ Gangguan yang diberikan pada plant berupa penambahan beban pada lengan kuasa atau
perubahan kemiringan dengan cara apapun.
2.4 Deskripsi Sistem
Karakteristik sistem dari alat ini adalah :
ā€¢ Mengatur posisi kemiringan supaya sama dengan nilai Setpoint yang diberikan.
ā€¢ Berusaha mempertahankan posisi walaupun diberi distrubansi atau ganguan.
2.5 Elemen yang Dibutuhkan
ā€¢ Aktuator yang sesuai untuk sistem.
ā€¢ Menentukan parameter kendali agar sistem sesuai dengan yang diinginkan.
ā€¢ Memasukkan parameter kendali kedalam algoritma pemrograman.
Overall Specification
3.1 Pendahuluan
Bagian ini akan menjelaskan mengenai spesifikasi keseluruhan dari Balancing Bi-Copter
dengan Kedali PID dan komponen-komponen penyusunnya. Hal-hal yang akan dijelaskan antara lain:
ā€¢ Deskripsi Alat : menjelaskan mengenai cara kerja secara umum dari system alat ini.
ā€¢ Deskripsi Perangkat Keras : menjelaskan lebih lanjut dari perangkat keras yang mendukung
system
ā€¢ Deskripsi Perangkat Lunak: menjelaskan komponen-komponen perangkat lunak penyusun
sistem.
3.2 Deskripsi Alat
Sistem plant terdiri dari 2 lengan kuasa yang terpasang motor BLDC dan baling-baling pada
kedua ujung lengan kuasa tersebut. Lengan kuasa memiliki Panjang lengan yang sama panjang dan
bertitik tumpu pada satu poros. Sensor MPU6065 sebagai pembaca posisi ditempatkan sejajar dengan
titik tumpu. Kecepatan putaran kedua baling-baling akan saling mempengaruhi satu sama lainnya, jika
posisi terbaca tidak seimbang atau misalnya nilai kemiringan > 0Ā° maka putaran baling-baling kanan
harus lebih cepat dibandingkan yang kiri, dan begitupula sebaliknya jika nilai kemiringan < 0Ā°.
Hasil pembacaan Potensiometer dikonversi menjadi Setpoint untuk nilai posisi kemiringan
Lengan kuasa dalam satuan sudut. Simpangan dari posisi lengan kuasa terhadap nilai setPoint disebut
sebagai Error. Nilai error inilah yang akan diolah oleh sistem kendali PID supaya posisi lengan kuasa
sesuai dengan nilai setpoint serta mempertahankan posisi tersebut walaupun diberi ganguan/distrubansi.
3.3 Deskripsi Perangkat Keras
Balancing Bi-Copter dengan Kedali Posisi Metode PID membutuhkan perangkat keras sebagai
pendukung sistem ini diantaranya:
3.3.1 HQProp Propellers 5.1x4.1x3
Ini adalah New Swap POPO HQProp Baru yang kompatibel. Ini juga dapat digunakan untuk
motor NON POPO. Termasuk 2x 5.1X4.1X3 CW propellers 2x 5.1X4.1X3 CCW propellers Specs
Taille: 5.1 pouces Pitch: 4.1 Blades: 3 Material: Diameter Hub Carbon Carbonate "" '13.2mm Hub
Thicknes ""' 7mm Hub Thicknes "" '7mm Shaft: 5mm Poids: 4.7g.
3.3.2 2400KV Brushless Motor
Racerstar Racing Edition 2306 BR2306S 2400KV 2-4S Brushless Motor For X210 X220 250 FPV
Racing Frame
Description:
CW screw thread motor comes with red cap
CCW screw thread motor comes with black cap
Brand: Racerstar
Item name: BR2306S 2400KV Brushless Motor
RPM/V: 2400KV
Height: 33.5mm
Width: 28.5mm
Shaft diameter: M5
Motor mount hole size: M3
Weight: 33.5 grams
Voltage: 2-4S
Battery: 2-4S lipo battery
Internal resistance: ā„¦
Tested with 14.8V voltage 5045 propellers:
Load current: 33A
Pull: 980g
Power: 458W
Efficiency: 2.1 (g/W)
Features:
Stainless steel motor shaft
Long life Japanese NMB ball bearings
Oxygen free copper wire
CNC machined aluminum case
More powerful than BR2205S
Package included:
20 x BR2306S 2400KV Brushless Motor
3.3.3 Arduino Uno
3.3.4 MPU 6065
Modul MPU-6050 (giroskop tiga sumbu + accelerometer tiga sumbu)
Gunakan chip: MPU-6050
Catu daya: 3-5v (regulator putus sekolah rendah internal)
Mode komunikasi: protokol komunikasi IIC standar
Konverter 16bit AD chip internal, output data 16-bit
Kisaran giroskop: 250 500 1000 2000 / dtk
Kisaran percepatan: 2 4 8 16g
Pin pitch 2.54mm
3.3.5 ESC ( Electronic Speed Controls ) SimonK 30A
ESC ( Electronic Speed Controls ) SimonK 30A dengan Mosfet Toshiba TPCA 8057 Deskripsi
: - Menggunakan Mosfet Toshiba TPCA 8057 - Dapat digunakan untuk pengatur kecepatan motor
brushless multirotor atau RC Plane - Maksimal Arus : up to 30A - BEC : 5v / 3A Feature: - Highest
efficiency 100% N-FET design. - Highest accuracy with Crystal Oscillator (Temperature won't affect
the PWM operating range like other cheap ESC's). - No low voltage cutoff, because any cutoff in a
multirotor = crash. - No over temp cutoff, because any cutoff in a multirotor = crash. - Super high
refresh rate, no buffering of the input signal, resulting in more than 490Hz response rate. - 16KHz motor
frequency, giving fastest response of the motor, and quietest operation as well (no 8KHz squeal). -
Super simple, foolproof operation! Nothing to program other than the throttle range. ESC Specification
- Cont Current: 30A - Burst Current: 35A - BEC Model: Linear mode - BEC Output: 5V3A - Li-
ion/Li0poly:2-4S,or Ni-MH/Ni-Cd:4-12NIMH - Weight: 25g - Size: 32*24*7mm
3.3.5 Potensiometer
Potensiometer yang digunakan adalah tipe mono dengan besar resistansi 10K ohm.
Potensiometer ini di fungsikan sebagai setpoint.
3.3.6 LCD 20x4
LCD (Liquid Crystal Display) adalah suatu jenis media tampil yang menggunakan kristal cair
sebagai penampil utama. LCD sudah digunakan diberbagai bidang misalnya alalā€“alat elektronik seperti
televisi, kalkulator, atau pun layar komputer. Pada postingan aplikasi LCD yang dugunakan ialah LCD
dengan jumlah karakter 20x4. LCD sangat berfungsi sebagai penampil yang nantinya akan digunakan
untuk menampilkan status kerja alat.
Spesifikasi:
3.4 Deskripsi Perangkat Lunak
Deskripsi perangkat lunak pada alat yang dibuat meliputi tahapan-tahapan
tertentu, diantaranya:
ā€¢ Menentukan bahasa pemrograman yang akan digunakan adalah Bahasa C++.
ā€¢ Menentukan software penunjang bahasa pemrograman yang digunakan adalah Arduino IDE.
ā€¢ Membuat dan menguji program yang telah dibuat sesuai dengan respon sistem yang telah diset
sesuai spesifikasi serta mensimulasikannya ke pin13 Arduino Uno yang telah disiapkan.
ā€¢ Menguji program pada alat yang dibuat.
4.1 Deskripsi Sistem Kendali
Deskripsi system kendali pada alat yang akan dibuat diantaranya:
ā€¢ Rise Time yang cepat yaitu dibawah 1,5 detik.
ā€¢ Toleransi Overshoot yaitu dibawah 10%.
ā€¢ Settling Time yang cepat yaitu dibawah 2 detik dengan batas-batas 5%.
ā€¢ Tidak terdapat Error Steadystate.
5.1 Penutup
Demikian dokumen B200 ini dibuat, untuk berikutnya dokumen ini dapat dijadikan acuan untuk
pembuatan dan pengembangan alat bagi tahapan dan dokumentasi berikutnya.
KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN
POLITEKNIK NEGERI BANDUNG
Jln. Gegerkalong Hilir, Ds. Ciwaruga, Bandung 40012, Kotak Pos 1234, Telepon (022) 2013789, Fax. (022)
2013889 Homepage :www.polban.ac.id Email : polban@polban.ac.id
Lembar Sampul Dokumen B300
Judul Dokumen Dokumen B300: ā€œBalancing Bi-Copter dengan Kendali PIDā€
Jenis Dokumen B300
Nomor Dokumen B300 ā€“ 01
Nomor Revisi 01
Nama File 2B_NanjarSyabanul_SKDB300
Tanggal Penerbitan 25 April 2019
Unit Penerbit Nanjar Syabanul Fajar
Jumlah Halaman
Data Pengusul
Pengusul
Nama
Jabatan
Mahasiswa D ā€“ III
Teknik Elektronika
Nanjar Syabanul Fajar 171311059
Tanggal 25-04-2019 Tanda Tangan
Lembaga Politeknik Negeri Bandung
Alamat
Jln. Gegerkalong Hilir, Ds. Ciwaruga Bandung 40012, Kotak Pos 1234,
Telepon (022) 2013789, Fax. (022) 2013889
Telepon : 022-2013789 Faks : 022-2013889 Email : polban@polban.ac.id
Pengantar
Dokumen B200 Dokumen B200 ini berisi tentang dokumen Sistem Mekanik, Elektronik, dan
Perangkat Lunak sistem dalam mengembangkan alat ini, serta detail dari perancangan sistem mekanik,
elektronik, dan perangkat lunak alat yang akan dibuat dengan nama ā€œBalancing Bi-Copter dengan
Kedali PIDā€.
1.1 Ringkasan isi dokumen
Dokumen ini terdiri dari 2 bagian:
1. Bab Pengantar
Menjelaskan mengenai ringkasan isi dokumen, tujuan penulisan. Bab ini bertujuan untuk
memudahkan pengerjaan proyek ini.
2. Bab Pengembangan Sistem Mekanik, Elektronik, dan Perangkat Lunak
Bab ini berisikan pendahuluan, perancangan sistem mekanik, elektronik, dan perangkat lunak..
1.2 Tujuan Penulisan dan Aplikasi/Kegunaan Dokumen
Dokumen B300 ini bertujuan untuk menjadi salah satu bagian dari rangkaian dokumentasi
dalam pembuatan dan pengembangan proyek. Dokumen B300 ini menjadi acuan apabila terjadi
ketidaksesuaian atau kesalahan pada perancangan proyek yang akan dibuat.
Proposal Pengembangan
2.1 Gambaran Umum
Pada pengembangan proyek ini, akan dipaparkan rancangan mekanik, elektronik, dan juga
perangkat lunak yang akan menjadi acuan dalam pengembangan proyek ini dan dapat terealisasi
sehingga proses pengerjaannya dapat lebih mudah.
2.2 Perancangan Mekanik
Perancangan mekanik yang dapat dilakukan adalah sebagai berikut
Gambar 2.1 Perancangan Mekanik
2.3 Perancangan Elektronik
2.3.1 Diagram Blok
Gambar 2.2 Blok Diagram Sistem Kendali
Berdasarkan blok diagram pada gambar 1 maka rancangan komponen yang akan dibuat
ialah:
ā€¢ Setpoint = Potensiometer
ā€¢ Controller = Arduino Uno
ā€¢ Driver = ESC (Electronic Speed Controller)
ā€¢ Actuator = BLDC (Brushlees DC) Motor
ā€¢ Sensor (Feedback) = MPU6065
2.3.2. Analisis Rangkaian Per Blok
A. Set Point (SV)
Set Point
+
-
Controller Driver Actuator
Sensor
Plant
Output
Feedback
Untuk dapat mengatur Set Point (SV) pada perancangan Sistem kendali posisi Bi-copter.
Komponen ini diperlukan untuk memberikan set point atau menentukan posisi yang diinginkan.
Kemudian nilai SV tersebut akan diteruskan ke Arduino untuk diolah agar plan bekerja sesuai
yang diinginkan.
B. Proses Pengontrolan
Proses pengontrolan dalam Sistem Kendali Posisi Bicopter diproses oleh Arduino.
Arduino mendapat sinyal dari potensiometer dan nilainya diolah agar posisi pada ruangan
sesuai dengan yang diinginkan. Ketika ada gangguan plan akan beradaptasi dengan cepat dan
juga merespon gangguan tersebut sehingga memungkinkan lampu meredup atau bertambah
cerah sesuai dengan SV yang diberikan.
C. Sistem Driver
ESC ( Electronic Speed Controls ) adalah driver Motor Brusless DC, ESC ini mengatur
kecepatan putaran Motor Brusless DC.
D. Actuator
BR2306S 2400KV 2-4S Brushless Motor adalah sebagai aktuator yang menggerakan
aktuator manipulator.
E. Actuator Manipulator
HQProp Propellers 5.1x4.1x3 adalah sebagai manipulasi aktuator untuk menghasilkan
dorongan udara yang nantinya mempengaruhi posisi.
F. Feedback (Umpan Balik)
Modul MPU-6050 merupakan balik berupa pembacaan posisi kemiringan sudut.
2.3.3. Wiring
Gambar 2.3 Wiring
2.4. Perancangan Perangkat Lunak (Flow Chart)
3 Penutup
Demikian dokumen B300 ini dibuat, untuk berikutnya dokumen ini dapat dijadikan acuan untuk
pembuatan dan pengembangan alat bagi tahapan dan dokumentasi berikutnya.
KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN
POLITEKNIK NEGERI BANDUNG
Jln. Gegerkalong Hilir, Ds. Ciwaruga, Bandung 40012, Kotak Pos 1234, Telepon (022) 2013789, Fax. (022)
2013889 Homepage :www.polban.ac.id Email : polban@polban.ac.id
Lembar Sampul Dokumen B400
Judul Dokumen Dokumen B400: ā€œBalancing Bi-Copter dengan Kendali PIDā€
Jenis Dokumen B400
Nomor Dokumen B400 ā€“ 01
Nomor Revisi 02
Nama File 2B_NanjarSyabanul_SKDB400
Tanggal Penerbitan 02 Mei 2019
Unit Penerbit Nanjar Syabanul Fajar
Jumlah Halaman
Data Pengusul
Pengusul
Nama
Jabatan
Mahasiswa D ā€“ III
Teknik Elektronika
Nanjar Syabanul Fajar 171311059
Tanggal 02-05-2019 Tanda Tangan
Lembaga Politeknik Negeri Bandung
Alamat
Jln. Gegerkalong Hilir, Ds. Ciwaruga Bandung 40012, Kotak Pos 1234,
Telepon (022) 2013789, Fax. (022) 2013889
Telepon : 022-2013789 Faks : 022-2013889 Email : polban@polban.ac.id
I Pengantar
Secara spesifik, dokumen ini menjelaskan berbagai macam test yang akan dilakukan untuk
mengetahui performa suatu sistem. Ukuran tersebut dapat berupa bekerja atau tidaknya suatu fitur.
Sistem yang dibahas pada dokumen ini adalah sistem kendali posisi Bi-Copter.
1.1 Ringkasan isi dokumen
Dokumen ini terdiri dari 2 bagian:
1. Bab Pengantar
Menjelaskan mengenai ringkasan isi dokumen, tujuan penulisan. Bab ini bertujuan untuk
memudahkan pengerjaan proyek ini.
2. Bab Pengujian
Bab ini berisikan berbagai macam test yang akan dilakukan untuk mengetahui performa suatu
sistem.
1.2 Tujuan Penulisan dan Aplikasi/Kegunaan Dokumen
Dokumen B400 ini bertujuan untuk dijadikan salah satu bagian dari rangkaian dokumentasi
dalam pembuatan dan pengembangan proyek. Dokumen B400 ini menjadi landasan dalam pembuatan
proyek mandiri, dan diharapkan dokumen ini memudahkan dalam pembuatan alat.
II Pengujian
2.1 Pengujian Arduino Uno
Gambar 1. Program pengujian Arduino
Gambar 2. Program pengujian Arduino
Arduino uno di uji dengan memasukkan program blink pada arduino sebagai mikrokontroller.
Berdasarkan hasil uji, arduino uno berfungsi dengan baik dan dapat digunakan dalam pembuatan proyek
mandiri.
2.2 Pengujian LCD
Pada proyek ini sensor yang digunakan adalah LCD 20x4 sebagai display. Berikut program
dan hasil dari pengujian.
Gambar 3. Program pengujian LCD
Gambar 4. Hasil Pengujian LCD
Berdasarkan hasil pengujian LCD tersebut dapat digunakan sebagai diplay pada proyek mandiri
ini.
2.3 Pengujian Potensiometer sebagai SV
Pengujian Setpoint dengan potensiometer dilakukan dengan cara menghubungkan kaki tengah
potensiomter ke A0 arduino dan salah satu kakinya ke ground dan kaki yang lainnya ke Vcc. Lalu di
test dengan program dibawah ini.
Gambar 5. Program pengujian potensiometer
Gambar 6. Hasil plotter dari potensiometer
Berdasarkan hasil pengujian potensiometer tersebut dapat digunakan sebagai pengatur nilai
setpoint pada proyek mandiri.
2.4 Pengujian Sensor
Pada proyek ini sensor yang digunakan adalah sensor MPU sebagai pengukur posisi kemiringan
sudut. Berikut program dan hasil dari pengujian.
Gambar 7. Program pengujian MPU6050
Gambar 8. Program pengujian MPU6050
Oranye : 0Ā°
Biru : Tanpa Filter.
Merah : Dengan Complementary Filter.
2.5 Pengujian Driver dan Aktuator
Pada proyek ini yang digunakan adalah ESC (Electronic Speed Controls) SimonK 30A sebagai
Driver dan BR2306S 2400KV sebagai aktuator. Berikut program dan hasil dari pengujian.
Gambar 9. Program pengujian Driver dan Aktuator
Gambar 10. Program pengujian Driver dan Aktuator
3 Listing Program
Berikut adalah listing program keseluruhan yang akan digunakan pada proyek.
//Last Updated : 24 Juni 2019, 17:50
//=============== PID Parameter =======================
float Kp = 0.92;//1.12;//1.2;//1.15;//1.2;//5.2;//2.2;//0.204;
float Ti = 1;//73;//100;//1;//300;//200;//300;//150;//100//0.38;//73;//0.5;//0.3551; goes
fine
float Td =
0.29;//0.281;//0.26;//0.42;//0.35;//0.29;//0.26//0.26;//0.2;//0.15;//1;//0.9;//0.0887; 0.2 fine
float Ki;
float Kd;
float PID;
int SV=0;
float PV;
int arming=1100;
int MV,MV1,MV2;
float e;
float eint,eint_1;
float eint_update;
float edif;
float et, et_1;
float temp_Kp = Kp;
float temp_Ti = Ti;
float temp_Td = Td;
//float interval_elapsed, interval_limit;
unsigned long t,t_1; // t=pencatatan wak tu skrg
float Ts;
//========================= Global Variables
=============================
int atas=90;
int bawah=-90;
unsigned long prevmillis=0;
bool toggle_var=0;
bool toggle_it(unsigned int Interval){
if(millis()-prevmillis>=Interval){
toggle_var=!toggle_var;
prevmillis=millis();
}
return toggle_var;
}
float mapFloat(long x, long fromLow, long fromHigh, float toLow, float toHigh){
return (x - fromLow) * (toHigh - toLow) / (fromHigh - fromLow) + toLow;
}
//============================ MPU6050
===================================
#include <MPU6050_tockn.h> //https://github.com/tockn/MPU6050_tockn
#include <Wire.h>
MPU6050 mpu6050(Wire);
//=============================== ESC
====================================
#include <Servo.h>
Servo ESCL; // create servo object to control the ESCL
Servo ESCR; // create servo object to control the ESCR
//=============================== LCD
====================================
#include <LiquidCrystal.h>
LiquidCrystal lcd(6, 7, 5, 4, 3, 2); //RS, EN, D4, D5, D6, D7
#define BL 1
byte bar[8] = {0, 0, 0, 31, 31, 31, 31, 31};
byte barR[8] = {0, 0, 0, 24, 28, 30, 28, 24};
byte barL[8] = {0, 0, 0, 3, 7, 15, 7, 3};
byte selected[8] = {8, 12, 14, 15, 14, 12, 8, 0};
//============================ Push Button
================================
//Debouncing Button
#include <JC_Button.h> // https://github.com/JChristensen/JC_Button
#define btnDecPin A1
#define btnIncPin A2
#define btnCancelPin A3
#define btnOkPin 8
Button
btn1(btnDecPin),
btn2(btnIncPin),
btnCancel(btnCancelPin),
btnOk(btnOkPin);
int x=0;
int prev_x=0;
float Step=0.01;
int y=0;
const unsigned long
REPEAT_FIRST(500), // ms required before repeating on long press
REPEAT_INCR(100); // repeat interval for long press
//const int
// MIN_COUNT(0),
// MAX_COUNT(59);
float count;
float increase_decrease(float Step){
//float
//count=var;
//lastCount-1;
static unsigned long
rpt(REPEAT_FIRST);
enum states_t {WAIT, INCR, DECR};
static states_t STATE;
btn1.read();
btn2.read();
switch (STATE)
{
case WAIT: // wait for a button event
if (btn2.wasPressed())
STATE = INCR;
else if (btn1.wasPressed())
STATE = DECR;
else if (btn2.wasReleased()) // reset the long press interval
rpt = REPEAT_FIRST;
else if (btn1.wasReleased())
rpt = REPEAT_FIRST;
else if (btn2.pressedFor(rpt)) // check for long press
{
rpt += REPEAT_INCR; // increment the long press interval
STATE = INCR;
}
else if (btn1.pressedFor(rpt))
{
rpt += REPEAT_INCR;
STATE = DECR;
}
break;
case INCR: // increment the counter
//count = min(count++, MAX_COUNT); // but not more than the specified
maximum
count+=Step;
STATE = WAIT;
break;
case DECR: // decrement the counter
//count = max(count--, MIN_COUNT); // but not less than the specified
minimum
count-=Step;
STATE = WAIT;
break;
}
return count;
}
const unsigned int LONG_PRESS(1000);
bool gow=false;
void scanButton(){
btn1.read();
btn2.read();
btnCancel.read();
btnOk.read();
}
//============================ Buzzer
================================
#define buzzerPin 13
void beep(unsigned int x){
digitalWrite(buzzerPin,HIGH);
delay(x);
digitalWrite(buzzerPin,LOW);
}
void setup() {
Serial.begin(9600);
//pinMode(btn,INPUT_PULLUP);
btn1.begin();
btn2.begin();
btnCancel.begin();
btnOk.begin();
pinMode(buzzerPin,OUTPUT);
digitalWrite(buzzerPin,LOW);
// set up the LCD's number of columns and rows:
lcd.begin(20, 4);
lcd.createChar(1, bar);
lcd.createChar(2, barR);
lcd.createChar(3, barL);
lcd.createChar(4, selected);
pinMode(BL,OUTPUT);
digitalWrite(BL,LOW);
lcd.setCursor(0,0);
lcd.print(" YOKOGAWE ");
lcd.setCursor(0,2);
lcd.print(" stand alone ");
lcd.setCursor(0,3);
lcd.print(" PID controller ");
while(!gow){
scanButton();
if(btnOk.wasPressed()){
beep(500);
gow=true;
lcd.clear();
}
}
//========================== Home
================================
Home:
Wire.begin();
mpu6050.begin();
int i=0;
int prev_i=0;
//int j;
lcd.setCursor(0,0);
lcd.print(" ( Home ) ");
while(1){
scanButton();
if(btn1.wasPressed()){
beep(100);
if(i>=4) i=4;
else i++;
if(i>0){
prev_i=i-1;
}
}
if(btn2.wasPressed()){
beep(100);
prev_i=i;
if(i<=0) i=0;
else i--;
}
if(btnOk.wasPressed()){
beep(200);
lcd.clear();
switch(i){
case 0: lcd.clear(); goto Run; break;
case 1: lcd.clear(); goto mpuCal; break;
case 2: lcd.clear(); goto ZN2; break;
case 3: lcd.clear(); goto Tuning; break;
}
}
lcd.setCursor(1,0);
lcd.print("RUN");
lcd.setCursor(1,1);
lcd.print("MPU Cal");
lcd.setCursor(1,2);
lcd.print("ZN2");
lcd.setCursor(1,3);
lcd.print("Tuning");
lcd.setCursor(0,prev_i);
lcd.print(" ");
lcd.setCursor(0,i);
lcd.write(4);
lcd.setCursor(11,1);
lcd.print("Kp "); lcd.print(Kp);
lcd.setCursor(11,2);
lcd.print("Ti "); lcd.print(Ti);
lcd.setCursor(11,3);
lcd.print("Td "); lcd.print(Td);
}
//========================= Tuning
===============================
Tuning:
x=0;
prev_x=0;
Step=0.01;
y=0;
lcd.setCursor(10,x);
lcd.write(4);
while(1){
scanButton();
if(btn1.wasPressed()){
beep(100);
if(x>=3) x=3;
else x++;
if(x>0){
prev_x=x-1;
}
}
if(btn2.wasPressed()){
beep(100);
prev_x=x;
if(x<=0) x=0;
else x--;
}
if(btnOk.wasPressed()){
beep(200);
lcd.clear();
lcd.setCursor(10,x);
lcd.write(4);
if(x==0){
temp_Kp = Kp;
count = Kp;
while(1){
if(toggle_it(600)==true){
lcd.setCursor(10,x);
lcd.write(4);
}
else{
lcd.setCursor(10,x);
lcd.write(" ");
}
lcd.setCursor(11,0);
lcd.print("Kp "); lcd.print(temp_Kp);
lcd.setCursor(11,1);
lcd.print("Ti "); lcd.print(Ti);
lcd.setCursor(11,2);
lcd.print("Td "); lcd.print(Td);
lcd.setCursor(0,0);
lcd.print("inc/dec");
lcd.setCursor(0,1);
lcd.print("stp "); lcd.print(Step); lcd.print(" ");
temp_Kp=increase_decrease(Step);
btnOk.read();
if(btnOk.wasPressed()){
if(y>=3) y=0;
else y++;
}
if(btnOk.pressedFor(LONG_PRESS)){
lcd.clear();
Kp=temp_Kp;
beep(200);
break;
}
switch(y){
case 0: Step=0.01; break;
case 1: Step=0.10; break;
case 2: Step=1.00; break;
case 3: Step=10.00; break;
}
}
}
if(x==1){
temp_Ti = Ti;
count = Ti;
//increase_decrease(Ti,Step);
while(1){
if(toggle_it(600)==true){
lcd.setCursor(10,x);
lcd.write(4);
}
else{
lcd.setCursor(10,x);
lcd.write(" ");
}
lcd.setCursor(11,0);
lcd.print("Kp "); lcd.print(Kp);
lcd.setCursor(11,1);
lcd.print("Ti "); lcd.print(temp_Ti);
lcd.setCursor(11,2);
lcd.print("Td "); lcd.print(Td);
lcd.setCursor(0,0);
lcd.print("inc/dec");
lcd.setCursor(0,1);
lcd.print("stp "); lcd.print(Step); lcd.print(" ");
temp_Ti=increase_decrease(Step);
btnOk.read();
if(btnOk.wasPressed()){
if(y>=3) y=0;
else y++;
}
if(btnOk.pressedFor(LONG_PRESS)){
lcd.clear();
Ti=temp_Ti;
beep(200);
break;
}
switch(y){
case 0: Step=0.01; break;
case 1: Step=0.10; break;
case 2: Step=1.00; break;
case 3: Step=10.00; break;
}
}
}
if(x==2){
temp_Td = Td;
count = Td;
while(1){
if(toggle_it(600)==true){
lcd.setCursor(10,x);
lcd.write(4);
}
else{
lcd.setCursor(10,x);
lcd.write(" ");
}
lcd.setCursor(11,0);
lcd.print("Kp "); lcd.print(Kp);
lcd.setCursor(11,1);
lcd.print("Ti "); lcd.print(Ti);
lcd.setCursor(11,2);
lcd.print("Td "); lcd.print(temp_Td);
lcd.setCursor(0,0);
lcd.print("inc/dec");
lcd.setCursor(0,1);
lcd.print("stp "); lcd.print(Step); lcd.print(" ");
temp_Td=increase_decrease(Step);
btnOk.read();
if(btnOk.wasPressed()){
lcd.setCursor(0,1); lcd.print(" ");
//delay(200);
if(y>=3) y=0;
else y++;
}
if(btnOk.pressedFor(LONG_PRESS)){
lcd.clear();
Td=temp_Td;
beep(200);
break;
}
switch(y){
case 0: Step=0.01; break;
case 1: Step=0.10; break;
case 2: Step=1.00; break;
case 3: Step=10.00; break;
}
}
}
if(x==3){
lcd.clear();
goto Home;
}
}
lcd.setCursor(10,prev_x);
lcd.print(" ");
lcd.setCursor(10,x);
lcd.write(4);
lcd.setCursor(0,0);
lcd.print("Tuning");
lcd.setCursor(11,0);
lcd.print("Kp "); lcd.print(Kp);
lcd.setCursor(11,1);
lcd.print("Ti "); lcd.print(Ti);
lcd.setCursor(11,2);
lcd.print("Td "); lcd.print(Td);
lcd.setCursor(11,3);
lcd.print("( Home )");
}
mpuCal:
Wire.begin();
mpu6050.begin();
delay(1500);
lcd.setCursor(0,0);
lcd.print(" MPU6050 ");
lcd.setCursor(0,2);
lcd.print(" Calibrating ");
lcd.setCursor(0,3);
lcd.print(" Don't Move!! ");
mpu6050.calcGyroOffsets(true);
lcd.clear();
beep(200);
ESCL.attach(9);
ESCR.attach(10);
delay(800);
lcd.print(" ESC ");
lcd.setCursor(0,2);
lcd.print(" Calibrating ");
lcd.setCursor(0,3);
lcd.print(" Take Care! ");
ESCR.writeMicroseconds(2000); // Send the signal to the ESC
ESCL.writeMicroseconds(2000); // Send the signal to the ESC
delay(3000);
ESCR.writeMicroseconds(1000); // Send the signal to the ESC
ESCL.writeMicroseconds(1000); // Send the signal to the ESC
delay(2000);
beep(200);
lcd.clear();
lcd.setCursor(0,2);
lcd.print(" All Done ");
delay(1800);
lcd.clear();
goto Home;
ZN2:
lcd.clear();
SV = 0;
while(1){
if(toggle_it(600)==true){
lcd.setCursor(10,3);
lcd.write(4);
}
else{
lcd.setCursor(10,3);
lcd.write(" ");
}
lcd.setCursor(11,3);
lcd.print("Kp "); lcd.print(Kp); lcd.print(" ");
//lcd.setCursor(0,3);
//lcd.print("inc/dec");
lcd.setCursor(0,3);
lcd.print("stp "); lcd.print(Step); lcd.print(" ");
Kp=increase_decrease(Step);
btnOk.read();
if(btnOk.wasPressed()){
if(y>=3) y=0;
else y++;
}
if(btnOk.pressedFor(LONG_PRESS)){
lcd.clear();
//Kp=temp_Kp;
beep(200);
break;
}
switch(y){
case 0: Step=0.01; break;
case 1: Step=0.10; break;
case 2: Step=1.00; break;
case 3: Step=10.00; break;
}
mpu6050.update();
PV=mpu6050.getAngleX();
//e=SV-PV;
e=PV-SV;
//MV=Kp*(e*-1);
MV=Kp*e;
MV2=1075+MV;
MV1=1075-MV; //off set
if(MV2>1120){ //max 1000
MV2=1120;
}
else if(MV2<1000){ //min 1000
MV2=1000;
}
if(MV1>1120){ //max 2000
MV1=1120;
}
else if(MV1<1000){ //min 1000
MV1=1000;
}
ESCR.writeMicroseconds(MV2); //R
ESCL.writeMicroseconds(MV1); //L
if(millis()-prevmillis>=150){
//Serial.print(mpu6050.getRawGyroX()/100); //BLUE
//Serial.print(" ");
//Serial.print(e); //ORANGE
//Serial.print(" ");
Serial.println(PV); //RED
lcd.setCursor(0,0);
lcd.print("e "); lcd.print(e); lcd.print(" ");
lcd.setCursor(0,1);
lcd.print("MVL "); lcd.print(MV1); lcd.print(" ");
lcd.setCursor(0,2);
lcd.print("MVR "); lcd.print(MV2); lcd.print(" ");
prevmillis=millis();
}
}
Run:
lcd.clear();
prevmillis=millis;
int count_down=3;
while(count_down!=0){
if(millis()-prevmillis>=500){
count_down--;
prevmillis=millis();
beep(100);
}
lcd.setCursor(0,1);
lcd.print(" Running in "); lcd.print(count_down); lcd.print(" ");
}
beep(100);
lcd.clear();
//==================================================
et_1=0;
eint_1=0;
t_1=millis();
prevmillis=millis();
x=0;
prev_x=0;
Step=0.01;
y=0;
lcd.setCursor(10,x);
lcd.write(4);
//=================================================
}
void loop() {
run_PID();
tuningPID();
//t_1=t;
}
void run_PID(){
if (Ti==0){
Ki=0; //untuk mengindari error akibat pembagi 0
}
else {
Ki=Kp/Ti;
}
Kd=Kp*Td;
int adc = analogRead(A0);
if(adc>186){
SV = map(adc, 187, 1020, 0, 30);
}
if(adc<186){
SV = map(adc, 185, 10, 0, -30);
}
if(SV<-30){
SV=-30;
}
else if(SV>30){
SV=30;
}
else{
SV=SV;
}
mpu6050.update();
PV=mpu6050.getAngleX();
et=PV-SV;
//hitung time sampling
//t=millis();
//Ts=(t-t_1)*0.001;
Ts=0.016;
//hitung luasan error
eint_update=((et +et_1)*Ts)/2;
eint=eint_1+eint_update;
//hitung percepatan error
edif=(et -et_1)/Ts;
PID = (Kp*et) + (Ki*eint) + (Kd*edif);
//PID = (Kp*et) + (Kd*edif);
MV2=arming+PID;
MV1=arming-PID;
if(MV2>1500){ //max 1000
MV2=1500;
}
else if(MV2<1000){ //min 1000
MV2=1000;
}
if(MV1>1500){ //max 2000
MV1=1500;
}
else if(MV1<1000){ //min 1000
MV1=1000;
}
ESCR.writeMicroseconds(MV2); //R
ESCL.writeMicroseconds(MV1); //L
if(millis()-prevmillis>=50){
Serial.print(SV);
Serial.print(" ");
Serial.print(atas);
Serial.print(" ");
Serial.print(PV);
Serial.print(" ");
Serial.println(bawah);
lcd.setCursor(0,0); lcd.print("SV ");lcd.print(SV); lcd.print(" ");
lcd.setCursor(0,1); lcd.print("PV "); lcd.print(PV); lcd.print(" ");
lcd.setCursor(0,2); lcd.print(MV1); lcd.print(" ");
lcd.setCursor(5,2); lcd.print(MV2); lcd.print(" ");
lcd.setCursor(0,3); lcd.print("Ts "); lcd.print(Ts,3); lcd.print(" ");
prevmillis=millis();
}
//jangan lupa simpan nilai sebelumnya
et_1=et;
eint_1=eint;
//t_1=t;
}
void tuningPID(){
lcd.setCursor(10,x);
lcd.write(4);
btnCancel.read();
if(btnCancel.wasPressed()){
beep(100);
if(x>=2){
x=0;
lcd.setCursor(10,2);
lcd.print(" ");
}
else{
x++;
}
if(x>0){
lcd.setCursor(10,x-1);
lcd.print(" ");
}
}
if(x==0){
count = Kp;
lcd.setCursor(11,0);
lcd.print("Kp "); lcd.print(Kp,3);
lcd.setCursor(11,1);
lcd.print("Ti "); lcd.print(Ti,3);
lcd.setCursor(11,2);
lcd.print("Td "); lcd.print(Td,3);
lcd.setCursor(10,3);
lcd.print("stp "); lcd.print(Step,3); lcd.print(" ");
Kp=increase_decrease(Step);
btnOk.read();
if(btnOk.wasPressed()){
if(y>=4) y=0;
else y++;
}
switch(y){
case 0: Step=0.001; break;
case 1: Step=0.01; break;
case 2: Step=0.1; break;
case 3: Step=1.00; break;
case 4: Step=10.00; break;
}
}
if(x==1){
count = Ti;
lcd.setCursor(11,0);
lcd.print("Kp "); lcd.print(Kp,3);
lcd.setCursor(11,1);
lcd.print("Ti "); lcd.print(Ti,3);
lcd.setCursor(11,2);
lcd.print("Td "); lcd.print(Td,3);
lcd.setCursor(10,3);
lcd.print("stp "); lcd.print(Step,3); lcd.print(" ");
Ti=increase_decrease(Step);
btnOk.read();
if(btnOk.wasPressed()){
if(y>=4) y=0;
else y++;
}
switch(y){
case 0: Step=0.001; break;
case 1: Step=0.01; break;
case 2: Step=0.1; break;
case 3: Step=1.00; break;
case 4: Step=10.00; break;
}
}
if(x==2){
count = Td;
lcd.setCursor(11,0);
lcd.print("Kp "); lcd.print(Kp,3);
lcd.setCursor(11,1);
lcd.print("Ti "); lcd.print(Ti,3);
lcd.setCursor(11,2);
lcd.print("Td "); lcd.print(Td,3);
lcd.setCursor(10,3);
lcd.print("stp "); lcd.print(Step,3); lcd.print(" ");
Td=increase_decrease(Step);
btnOk.read();
if(btnOk.wasPressed()){
lcd.setCursor(0,1); lcd.print(" ");
//delay(200);
if(y>=4) y=0;
else y++;
}
switch(y){
case 0: Step=0.001; break;
case 1: Step=0.01; break;
case 2: Step=0.1; break;
case 3: Step=1.00; break;
case 4: Step=10.00; break;
}
}
}
4 Penutup
Demikian dokumen B400 ini dibuat, untuk berikutnya dokumen ini dapat dijadikan acuan
untuk perancangan dan pengembangan alat bagi tahapan dan dokumentasi berikutnya.
KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN
POLITEKNIK NEGERI BANDUNG
Jln. Gegerkalong Hilir, Ds. Ciwaruga, Bandung 40012, Kotak Pos 1234, Telepon (022) 2013789, Fax. (022)
2013889 Homepage :www.polban.ac.id Email : polban@polban.ac.id
Lembar Sampul Dokumen B500
Judul Dokumen Dokumen B500: ā€œBalancing Bi-Copter dengan Kendali PIDā€
Jenis Dokumen B500
Nomor Dokumen B500 ā€“ 01
Nomor Revisi 01
Nama File 2B_NanjarSyabanul_SKDB500
Tanggal Penerbitan 16 Mei 2019
Unit Penerbit Nanjar Syabanul Fajar
Jumlah Halaman
Data Pengusul
Pengusul
Nama
Jabatan
Mahasiswa D ā€“ III
Teknik Elektronika
Nanjar Syabanul Fajar 171311059
Tanggal 16-05-2019 Tanda Tangan
Lembaga Politeknik Negeri Bandung
Alamat
Jln. Gegerkalong Hilir, Ds. Ciwaruga Bandung 40012, Kotak Pos 1234,
Telepon (022) 2013789, Fax. (022) 2013889
Telepon : 022-2013789 Faks : 022-2013889 Email : polban@polban.ac.id
I Pengantar
Dokumen B500 ini berisi mengenai desain system kendali pada Bicopter menggunakan
pemodelan Ziegler Nichols Tipe 2 agar mendapatkan parameter kendali yaitu Kp, Ti, dan Td.
1.1 Ringkasan isi dokumen
Dokumen ini terdiri dari 2 bagian:
1. Bab Pengantar
Menjelaskan mengenai ringkasan isi dokumen, tujuan penulisan. Bab ini bertujuan untuk
memudahkan pengerjaan proyek ini.
2. Desain Sistem Kendali
Bab ini berisikan pembutan desain sistem.kendali PID menggunakan metode Ziegler Nichols
Tipe 2.
1.2 Tujuan Penulisan dan Aplikasi/Kegunaan Dokumen
Dokumen B500 ini bertujuan untuk :
ā€¢ Dokumentasi proyek mandiri.
ā€¢ Mencari parameter kendali.
II Desain Sistem Kendali
2.1 Ziegler Nichols Tipe 2
Pada pemodelan dalam mendapatkan parameter kendali, terdapat beberapa metoda yang dapat
digunakan contohnya seperti Ziegler-Nichols Tipe 1, Ziegler-Nichols Tipe 2, dan yang lainnya.
Biasanya kendali posisi menggunakan metoda ini. Pada metode Ziegler-Nichols Tipe 2, untuk
mendapatkan parameter kendali, system dibuat close-loop dan respon dibuat menjadi berosilasi yang
berpola. Nilai Kp diatur agar respon dapat berosilasi dan nilai Ti dan Td di nol kan. Respon dibuat
berosilasi untuk mendapatkan nilai Kcr dan Pcr.
2.2 Desain Kendali dari Respon Sistem
Dibawah ini merupakan respon yang telah dibuat berosilasi dengan nilai gain / Kp / Kcr = 0.65.
Gambar 1. Desain ZN-2 dari Respon Sistem
Perlu diingat bahwa waktu yang ada di plotter bukanlah kontanta waktu asli, maka dari itu
diperlukan perhitungan sebagai berikut :
t asli t plotter Kt=t asli/ t plotter
10,32 225,087 0,045848938
Kt = t asli : t plotter
Kt = 10,32 : 225,087
Kt = 0,045848938
Selanjutnya perhitungan Kcr dan Pcr.
Kcr=K Pcr=L*Kt
0,34 0,710291754
Kcr = K
Kcr = 0,34
Pcr = L x Kt
Pcr = 15,492 x Kt
Pcr = 0,710291754 detik
Selanjutnya perhitungan Kp, Ti, dan Td.
Kp=(0,6 * Kcr) Ti =(0,5 * Pcr) Td=(0,125 * Pcr)
0,204 0,355145877 0,088786469
Kp = 0,6 x Kcr
Kp = 0,6 x 0,34
Kp = 0,204
Ti = 0,5 x Pcr
Ti = 0,5 x 0,710291754
Ti = 0,355145877
Td = 0,125 x Pcr
Td = 0,125 x 0,710291754
Td = 0,088786469
2.3 Hasil Desain Kendali
Gambar 2. Respon Hasil Desain.
Pada gambar diatas terdapat overshoot sehingga perlu tuning untuk memperbaiki respon
tersebut.
3 Penutup
Demikian dokumen B500 ini dibuat, untuk berikutnya dokumen ini dapat dijadikan acuan untuk
perancangan dan pengembangan alat bagi tahapan dan dokumentasi berikutnya.
KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN
POLITEKNIK NEGERI BANDUNG
Jln. Gegerkalong Hilir, Ds. Ciwaruga, Bandung 40012, Kotak Pos 1234, Telepon (022) 2013789, Fax. (022)
2013889 Homepage :www.polban.ac.id Email : polban@polban.ac.id
Lembar Sampul Dokumen B600
Judul Dokumen Dokumen B600: ā€œBalancing Bi-Copter dengan Kendali PIDā€
Jenis Dokumen B600
Nomor Dokumen B600 ā€“ 01
Nomor Revisi 01
Nama File 2B_NanjarSyabanul_SKDB600
Tanggal Penerbitan 31 Mei 2019
Unit Penerbit Nanjar Syabanul Fajar
Jumlah Halaman
Data Pengusul
Pengusul
Nama
Jabatan
Mahasiswa D ā€“ III
Teknik Elektronika
Nanjar Syabanul Fajar 171311059
Tanggal 31-05-2019 Tanda Tangan
Lembaga Politeknik Negeri Bandung
Alamat
Jln. Gegerkalong Hilir, Ds. Ciwaruga Bandung 40012, Kotak Pos 1234,
Telepon (022) 2013789, Fax. (022) 2013889
Telepon : 022-2013789 Faks : 022-2013889 Email : polban@polban.ac.id
I Pengantar
Dokumen B600 ini berisi mengenai tuning parameter PID dan percobaan gangguan
terhadap system.
1.1 Ringkasan isi dokumen
Dokumen ini terdiri dari 2 bagian:
1. Bab Pengantar
Menjelaskan mengenai ringkasan isi dokumen, tujuan penulisan. Bab ini bertujuan untuk
memudahkan pengerjaan proyek ini.
2. Desain Sistem Kendali
Bab ini berisi mengenai tuning parameter PID dan percobaan gangguan terhadap system.
1.2 Tujuan Penulisan dan Aplikasi/Kegunaan Dokumen
Dokumen B600 ini bertujuan untuk :
ā€¢ Dokumentasi proyek mandiri.
ā€¢ Tuning parameter kendali.
ā€¢ Mencoba gangguan pada plant.
II Tuning dan Gangguan
2.1 Tuning Parameter Kendali
Gambar 1. Respon Hasil Desain
Kp Ti Td
0,204 0,355145877 0,088786469
Berdasarkan respon hasil desain ZN2, respon yang dihasilkan masih belum sempurna karena
masih ada overshoot dan Error Steadystate, sehingga diperlukan tuning parameter PID. Pada proses
tuning didasarkan terhadap table dibawah agar mendapatkan parameter yang baik.
Tabel Pengaruh perubahan parameter terhadap respon
Parameter Rise Time Overshoot Settling Time S-S Error
Kp Berkurang Bertambah Minor Change Berkurang
Ki Berkurang Bertambah Bertambah Menghilangkan
Kd Minor Change Bertambah Berkurang Minor Change
Setelah melakukan proses tuning didapatkan hasil akhir sebagai berikut:
Kp = 1.05
Ti = 0.997
Td = 0.292
Gambar 2. Respon Hasil Tuning
Berikut respon dari tuning akhir dengan setpoint kemiringan sudut 0Ā°
Gambar 2. Respon Pada SV = 0Ā°
Gambar 3. Respon Pada SV diubah-ubah
Berdasarkan parameter hasil desain dan tuning akhir, Kp yang diubah menjadi 0,846 agar rise
time berkurang. Ti yang diubah menjadi 0,355145877 pada saat error steady state dapat memberikan
tenaga lebih untuk memperbaiki kemiringan. Td yang diubah menjadi 0.292 agas dapat mengurangi
overshoot.
2.2 Percobaan Gangguan
Setelah mendapatkan respon dan parameter yang baik, perlu adanya gangguan untuk
menguji system kendalinya. Berikut respon hasil gangguan setelah respon berada pada steady state.
Gambar 4. Percobaan Gangguan
Pada gambar yang bertanda persegi merah merupakan hasil dari gangguan yang diberikan
terhadap plant. Sistem dapat mencapai setpoint kembali dan berada pada steady state.
3 Penutup
Demikian dokumen B600 ini dibuat, dokumen ini merupakan dokumen terakhir dari
dokumentasi proyek mandiri.

More Related Content

What's hot

Makalah generator kelompok 04
Makalah generator kelompok 04Makalah generator kelompok 04
Makalah generator kelompok 04M Rizky Adriansyah
Ā 
Sistem Transmisi Manual (Mobil)
Sistem Transmisi Manual (Mobil)Sistem Transmisi Manual (Mobil)
Sistem Transmisi Manual (Mobil)e pai
Ā 
Materi motor listrik dc 1
Materi motor listrik dc 1Materi motor listrik dc 1
Materi motor listrik dc 1Adhi Susanto
Ā 
KESETIMBANGAN
KESETIMBANGANKESETIMBANGAN
KESETIMBANGANDwi Ratna
Ā 
Pneumatik & Hidrolik
Pneumatik & HidrolikPneumatik & Hidrolik
Pneumatik & HidroliklombkTBK
Ā 
Pusat massa dan momentum
Pusat massa dan momentum Pusat massa dan momentum
Pusat massa dan momentum khrisna pangeran
Ā 
Medan elektromagnetik 2
Medan elektromagnetik 2Medan elektromagnetik 2
Medan elektromagnetik 2sinta novita
Ā 
03 bab 06 motor listrik dc
03 bab 06 motor listrik dc03 bab 06 motor listrik dc
03 bab 06 motor listrik dcEko Supriyadi
Ā 
pemodelan state space
pemodelan state spacepemodelan state space
pemodelan state spaceRumah Belajar
Ā 
SISTEM PENGISIAN PADA MOTOR
SISTEM PENGISIAN PADA MOTORSISTEM PENGISIAN PADA MOTOR
SISTEM PENGISIAN PADA MOTORbram santo
Ā 
Sistem Koordinat
Sistem Koordinat Sistem Koordinat
Sistem Koordinat Desy Aryanti
Ā 
Modul 3 transformasi laplace
Modul 3 transformasi laplaceModul 3 transformasi laplace
Modul 3 transformasi laplaceAchmad Sukmawijaya
Ā 
Transformasi z
Transformasi zTransformasi z
Transformasi zIbnu Hakim
Ā 
Persamaan Diferensial [orde-2]
Persamaan Diferensial [orde-2]Persamaan Diferensial [orde-2]
Persamaan Diferensial [orde-2]Bogor
Ā 
Polar Coordinates & Polar Curves
Polar Coordinates & Polar CurvesPolar Coordinates & Polar Curves
Polar Coordinates & Polar CurvesDiponegoro University
Ā 
Fungsi alih sistem kontrol
Fungsi alih sistem kontrolFungsi alih sistem kontrol
Fungsi alih sistem kontrolarie eric
Ā 
Makalah metode transformasi fourier
Makalah metode transformasi fourierMakalah metode transformasi fourier
Makalah metode transformasi fourierRegy Buana Pramana
Ā 

What's hot (20)

Makalah generator kelompok 04
Makalah generator kelompok 04Makalah generator kelompok 04
Makalah generator kelompok 04
Ā 
Sistem Transmisi Manual (Mobil)
Sistem Transmisi Manual (Mobil)Sistem Transmisi Manual (Mobil)
Sistem Transmisi Manual (Mobil)
Ā 
Materi motor listrik dc 1
Materi motor listrik dc 1Materi motor listrik dc 1
Materi motor listrik dc 1
Ā 
KESETIMBANGAN
KESETIMBANGANKESETIMBANGAN
KESETIMBANGAN
Ā 
induktansi diri
induktansi diriinduktansi diri
induktansi diri
Ā 
Pneumatik & Hidrolik
Pneumatik & HidrolikPneumatik & Hidrolik
Pneumatik & Hidrolik
Ā 
Pusat massa dan momentum
Pusat massa dan momentum Pusat massa dan momentum
Pusat massa dan momentum
Ā 
Medan elektromagnetik 2
Medan elektromagnetik 2Medan elektromagnetik 2
Medan elektromagnetik 2
Ā 
03 bab 06 motor listrik dc
03 bab 06 motor listrik dc03 bab 06 motor listrik dc
03 bab 06 motor listrik dc
Ā 
pemodelan state space
pemodelan state spacepemodelan state space
pemodelan state space
Ā 
SISTEM PENGISIAN PADA MOTOR
SISTEM PENGISIAN PADA MOTORSISTEM PENGISIAN PADA MOTOR
SISTEM PENGISIAN PADA MOTOR
Ā 
Sistem Koordinat
Sistem Koordinat Sistem Koordinat
Sistem Koordinat
Ā 
2 deret fourier
2 deret fourier2 deret fourier
2 deret fourier
Ā 
Modul 3 transformasi laplace
Modul 3 transformasi laplaceModul 3 transformasi laplace
Modul 3 transformasi laplace
Ā 
Transformasi z
Transformasi zTransformasi z
Transformasi z
Ā 
Persamaan Diferensial [orde-2]
Persamaan Diferensial [orde-2]Persamaan Diferensial [orde-2]
Persamaan Diferensial [orde-2]
Ā 
State space
State spaceState space
State space
Ā 
Polar Coordinates & Polar Curves
Polar Coordinates & Polar CurvesPolar Coordinates & Polar Curves
Polar Coordinates & Polar Curves
Ā 
Fungsi alih sistem kontrol
Fungsi alih sistem kontrolFungsi alih sistem kontrol
Fungsi alih sistem kontrol
Ā 
Makalah metode transformasi fourier
Makalah metode transformasi fourierMakalah metode transformasi fourier
Makalah metode transformasi fourier
Ā 

Similar to Balancing Bi-Copter dengan Kendali PID

3 c skd-b200_regi adriana saputra_stabilizer kamera 2-axis
3 c skd-b200_regi adriana saputra_stabilizer kamera 2-axis3 c skd-b200_regi adriana saputra_stabilizer kamera 2-axis
3 c skd-b200_regi adriana saputra_stabilizer kamera 2-axisRegiAdriana1
Ā 
Magnetic Levitation Report Document
Magnetic Levitation Report DocumentMagnetic Levitation Report Document
Magnetic Levitation Report DocumentSaufik Ramadhan
Ā 
Desain PID Dokumen B100-B600 Ball And Beam M Fauzan F
Desain PID Dokumen B100-B600 Ball And Beam M Fauzan FDesain PID Dokumen B100-B600 Ball And Beam M Fauzan F
Desain PID Dokumen B100-B600 Ball And Beam M Fauzan FFauzan Flick
Ā 
Sistem Kendali PID untuk kecepatan rotasi motor DC berbasis arduino, mosfet, ...
Sistem Kendali PID untuk kecepatan rotasi motor DC berbasis arduino, mosfet, ...Sistem Kendali PID untuk kecepatan rotasi motor DC berbasis arduino, mosfet, ...
Sistem Kendali PID untuk kecepatan rotasi motor DC berbasis arduino, mosfet, ...Ridwan Anwar
Ā 
3 c skd-b300_regi adriana saputra_stabilizer kamera 2-axis
3 c skd-b300_regi adriana saputra_stabilizer kamera 2-axis3 c skd-b300_regi adriana saputra_stabilizer kamera 2-axis
3 c skd-b300_regi adriana saputra_stabilizer kamera 2-axisRegiAdriana1
Ā 
3 c skd-b100_regi adriana saputra_stabilizer kamera 2-axis
3 c skd-b100_regi adriana saputra_stabilizer kamera 2-axis3 c skd-b100_regi adriana saputra_stabilizer kamera 2-axis
3 c skd-b100_regi adriana saputra_stabilizer kamera 2-axisRegiAdriana1
Ā 
Riko hadiarto 151354027_b200_saski
Riko hadiarto 151354027_b200_saskiRiko hadiarto 151354027_b200_saski
Riko hadiarto 151354027_b200_saskiRiko Hadiarto
Ā 
Sistem Kendali Ketinggian Air Menggunakan PID
Sistem Kendali Ketinggian Air Menggunakan PIDSistem Kendali Ketinggian Air Menggunakan PID
Sistem Kendali Ketinggian Air Menggunakan PIDhusnymubarak20
Ā 
Sistem Kendali Water Level dengan Metode PID
Sistem Kendali Water Level dengan Metode PIDSistem Kendali Water Level dengan Metode PID
Sistem Kendali Water Level dengan Metode PIDMiftah Hasan
Ā 
B400 (kendali tinggi dengan beban menggunakan p&id) vgr.docx
B400 (kendali tinggi dengan beban menggunakan p&id) vgr.docxB400 (kendali tinggi dengan beban menggunakan p&id) vgr.docx
B400 (kendali tinggi dengan beban menggunakan p&id) vgr.docxElan G
Ā 
Makalah Pembuatan Water Level Control dengan metode PID 1
Makalah Pembuatan Water Level Control dengan metode PID 1Makalah Pembuatan Water Level Control dengan metode PID 1
Makalah Pembuatan Water Level Control dengan metode PID 1Politeknik Negeri Bandung
Ā 
Sistem Kendali Volume Air pada Air Isi Ulang dengan Ultrasonic metode PID ber...
Sistem Kendali Volume Air pada Air Isi Ulang dengan Ultrasonic metode PID ber...Sistem Kendali Volume Air pada Air Isi Ulang dengan Ultrasonic metode PID ber...
Sistem Kendali Volume Air pada Air Isi Ulang dengan Ultrasonic metode PID ber...DestiNuraeni
Ā 
2 b dioverdiansah_b400
2 b dioverdiansah_b4002 b dioverdiansah_b400
2 b dioverdiansah_b400DioVerdiansah
Ā 
3 c skd-b600_regi adriana saputra_stabilizer kamera 2-axis
3 c skd-b600_regi adriana saputra_stabilizer kamera 2-axis3 c skd-b600_regi adriana saputra_stabilizer kamera 2-axis
3 c skd-b600_regi adriana saputra_stabilizer kamera 2-axisRegiAdriana1
Ā 
Makalah Pembuatan Water Level Control dengan metode PID 4
Makalah Pembuatan Water Level Control dengan metode PID 4Makalah Pembuatan Water Level Control dengan metode PID 4
Makalah Pembuatan Water Level Control dengan metode PID 4Politeknik Negeri Bandung
Ā 
B100 - B600 Water Level Control dengan metode PID
B100 - B600 Water Level Control dengan metode PIDB100 - B600 Water Level Control dengan metode PID
B100 - B600 Water Level Control dengan metode PIDIkhsan Fawakal
Ā 
2A_171311015_Muhammad Aldi Saefurohman_B100-B600
2A_171311015_Muhammad Aldi Saefurohman_B100-B6002A_171311015_Muhammad Aldi Saefurohman_B100-B600
2A_171311015_Muhammad Aldi Saefurohman_B100-B600SaefurohmanMuhammad
Ā 
Dokumen B Project Mandiri Ball on Beam with Stand Alone PID Controller
Dokumen B Project Mandiri Ball on Beam with Stand Alone PID ControllerDokumen B Project Mandiri Ball on Beam with Stand Alone PID Controller
Dokumen B Project Mandiri Ball on Beam with Stand Alone PID ControllerLuqman Al Labib
Ā 
[Kendali Suhu dengan TRIAC dan Sensor LM35] Sutan Dafari B300
[Kendali Suhu dengan TRIAC dan Sensor LM35] Sutan Dafari B300[Kendali Suhu dengan TRIAC dan Sensor LM35] Sutan Dafari B300
[Kendali Suhu dengan TRIAC dan Sensor LM35] Sutan Dafari B300daffawaks
Ā 

Similar to Balancing Bi-Copter dengan Kendali PID (20)

3 c skd-b200_regi adriana saputra_stabilizer kamera 2-axis
3 c skd-b200_regi adriana saputra_stabilizer kamera 2-axis3 c skd-b200_regi adriana saputra_stabilizer kamera 2-axis
3 c skd-b200_regi adriana saputra_stabilizer kamera 2-axis
Ā 
Magnetic Levitation Report Document
Magnetic Levitation Report DocumentMagnetic Levitation Report Document
Magnetic Levitation Report Document
Ā 
Desain PID Dokumen B100-B600 Ball And Beam M Fauzan F
Desain PID Dokumen B100-B600 Ball And Beam M Fauzan FDesain PID Dokumen B100-B600 Ball And Beam M Fauzan F
Desain PID Dokumen B100-B600 Ball And Beam M Fauzan F
Ā 
Sistem Kendali PID untuk kecepatan rotasi motor DC berbasis arduino, mosfet, ...
Sistem Kendali PID untuk kecepatan rotasi motor DC berbasis arduino, mosfet, ...Sistem Kendali PID untuk kecepatan rotasi motor DC berbasis arduino, mosfet, ...
Sistem Kendali PID untuk kecepatan rotasi motor DC berbasis arduino, mosfet, ...
Ā 
3 c skd-b300_regi adriana saputra_stabilizer kamera 2-axis
3 c skd-b300_regi adriana saputra_stabilizer kamera 2-axis3 c skd-b300_regi adriana saputra_stabilizer kamera 2-axis
3 c skd-b300_regi adriana saputra_stabilizer kamera 2-axis
Ā 
3 c skd-b100_regi adriana saputra_stabilizer kamera 2-axis
3 c skd-b100_regi adriana saputra_stabilizer kamera 2-axis3 c skd-b100_regi adriana saputra_stabilizer kamera 2-axis
3 c skd-b100_regi adriana saputra_stabilizer kamera 2-axis
Ā 
7157 12453-1-sm
7157 12453-1-sm7157 12453-1-sm
7157 12453-1-sm
Ā 
Riko hadiarto 151354027_b200_saski
Riko hadiarto 151354027_b200_saskiRiko hadiarto 151354027_b200_saski
Riko hadiarto 151354027_b200_saski
Ā 
Sistem Kendali Ketinggian Air Menggunakan PID
Sistem Kendali Ketinggian Air Menggunakan PIDSistem Kendali Ketinggian Air Menggunakan PID
Sistem Kendali Ketinggian Air Menggunakan PID
Ā 
Sistem Kendali Water Level dengan Metode PID
Sistem Kendali Water Level dengan Metode PIDSistem Kendali Water Level dengan Metode PID
Sistem Kendali Water Level dengan Metode PID
Ā 
B400 (kendali tinggi dengan beban menggunakan p&id) vgr.docx
B400 (kendali tinggi dengan beban menggunakan p&id) vgr.docxB400 (kendali tinggi dengan beban menggunakan p&id) vgr.docx
B400 (kendali tinggi dengan beban menggunakan p&id) vgr.docx
Ā 
Makalah Pembuatan Water Level Control dengan metode PID 1
Makalah Pembuatan Water Level Control dengan metode PID 1Makalah Pembuatan Water Level Control dengan metode PID 1
Makalah Pembuatan Water Level Control dengan metode PID 1
Ā 
Sistem Kendali Volume Air pada Air Isi Ulang dengan Ultrasonic metode PID ber...
Sistem Kendali Volume Air pada Air Isi Ulang dengan Ultrasonic metode PID ber...Sistem Kendali Volume Air pada Air Isi Ulang dengan Ultrasonic metode PID ber...
Sistem Kendali Volume Air pada Air Isi Ulang dengan Ultrasonic metode PID ber...
Ā 
2 b dioverdiansah_b400
2 b dioverdiansah_b4002 b dioverdiansah_b400
2 b dioverdiansah_b400
Ā 
3 c skd-b600_regi adriana saputra_stabilizer kamera 2-axis
3 c skd-b600_regi adriana saputra_stabilizer kamera 2-axis3 c skd-b600_regi adriana saputra_stabilizer kamera 2-axis
3 c skd-b600_regi adriana saputra_stabilizer kamera 2-axis
Ā 
Makalah Pembuatan Water Level Control dengan metode PID 4
Makalah Pembuatan Water Level Control dengan metode PID 4Makalah Pembuatan Water Level Control dengan metode PID 4
Makalah Pembuatan Water Level Control dengan metode PID 4
Ā 
B100 - B600 Water Level Control dengan metode PID
B100 - B600 Water Level Control dengan metode PIDB100 - B600 Water Level Control dengan metode PID
B100 - B600 Water Level Control dengan metode PID
Ā 
2A_171311015_Muhammad Aldi Saefurohman_B100-B600
2A_171311015_Muhammad Aldi Saefurohman_B100-B6002A_171311015_Muhammad Aldi Saefurohman_B100-B600
2A_171311015_Muhammad Aldi Saefurohman_B100-B600
Ā 
Dokumen B Project Mandiri Ball on Beam with Stand Alone PID Controller
Dokumen B Project Mandiri Ball on Beam with Stand Alone PID ControllerDokumen B Project Mandiri Ball on Beam with Stand Alone PID Controller
Dokumen B Project Mandiri Ball on Beam with Stand Alone PID Controller
Ā 
[Kendali Suhu dengan TRIAC dan Sensor LM35] Sutan Dafari B300
[Kendali Suhu dengan TRIAC dan Sensor LM35] Sutan Dafari B300[Kendali Suhu dengan TRIAC dan Sensor LM35] Sutan Dafari B300
[Kendali Suhu dengan TRIAC dan Sensor LM35] Sutan Dafari B300
Ā 

Recently uploaded

Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...
Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...
Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...rororasiputra
Ā 
Pengolahan Kelapa Sawit 1 pabrik pks.pdf
Pengolahan Kelapa Sawit 1 pabrik pks.pdfPengolahan Kelapa Sawit 1 pabrik pks.pdf
Pengolahan Kelapa Sawit 1 pabrik pks.pdffitriAnnisa54
Ā 
perbedaan jalan raya dan rel bahasa Indonesia.pptx
perbedaan jalan raya dan rel bahasa Indonesia.pptxperbedaan jalan raya dan rel bahasa Indonesia.pptx
perbedaan jalan raya dan rel bahasa Indonesia.pptxMuhamadIrfan190120
Ā 
Presentasi gedung jenjang 6 - Isman Kurniawan.ppt
Presentasi gedung jenjang 6 - Isman Kurniawan.pptPresentasi gedung jenjang 6 - Isman Kurniawan.ppt
Presentasi gedung jenjang 6 - Isman Kurniawan.pptarifyudianto3
Ā 
Laporan Tinjauan Manajemen HSE/Laporan HSE Triwulanpptx
Laporan Tinjauan Manajemen HSE/Laporan HSE TriwulanpptxLaporan Tinjauan Manajemen HSE/Laporan HSE Triwulanpptx
Laporan Tinjauan Manajemen HSE/Laporan HSE Triwulanpptxilanarespatinovitari1
Ā 
PEMELIHARAAN JEMBATAN pada Ujian Kompete
PEMELIHARAAN JEMBATAN pada Ujian KompetePEMELIHARAAN JEMBATAN pada Ujian Kompete
PEMELIHARAAN JEMBATAN pada Ujian KompeteIwanBasinu1
Ā 
397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx
397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx
397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptxVinaAmelia23
Ā 
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptx
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptxppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptx
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptxArisatrianingsih
Ā 
BAB_3_Teorema superposisi_thevenin_norton (1).ppt
BAB_3_Teorema superposisi_thevenin_norton (1).pptBAB_3_Teorema superposisi_thevenin_norton (1).ppt
BAB_3_Teorema superposisi_thevenin_norton (1).pptDellaEkaPutri2
Ā 
2024.02.26 - Pra-Rakor Tol IKN 3A-2 - R2 V2.pptx
2024.02.26 - Pra-Rakor Tol IKN 3A-2 - R2 V2.pptx2024.02.26 - Pra-Rakor Tol IKN 3A-2 - R2 V2.pptx
2024.02.26 - Pra-Rakor Tol IKN 3A-2 - R2 V2.pptxEnginerMine
Ā 
Pengeloaan Limbah NonB3 KLHK-Upik-090921.pdf
Pengeloaan Limbah NonB3 KLHK-Upik-090921.pdfPengeloaan Limbah NonB3 KLHK-Upik-090921.pdf
Pengeloaan Limbah NonB3 KLHK-Upik-090921.pdfPusatKeteknikanKehut
Ā 
Manajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptx
Manajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptxManajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptx
Manajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptxarifyudianto3
Ā 
B_Kelompok 4_Tugas 2_Arahan Pengelolaan limbah pertambangan Bauksit_PPT.pdf
B_Kelompok 4_Tugas 2_Arahan Pengelolaan limbah pertambangan Bauksit_PPT.pdfB_Kelompok 4_Tugas 2_Arahan Pengelolaan limbah pertambangan Bauksit_PPT.pdf
B_Kelompok 4_Tugas 2_Arahan Pengelolaan limbah pertambangan Bauksit_PPT.pdf114210034
Ā 
sample for Flow Chart Permintaan Spare Part
sample for Flow Chart Permintaan Spare Partsample for Flow Chart Permintaan Spare Part
sample for Flow Chart Permintaan Spare Parthusien3
Ā 
UTILITAS BANGUNAN BERUPA PENANGKAL PETIR.pptx
UTILITAS BANGUNAN BERUPA PENANGKAL PETIR.pptxUTILITAS BANGUNAN BERUPA PENANGKAL PETIR.pptx
UTILITAS BANGUNAN BERUPA PENANGKAL PETIR.pptxAndimarini2
Ā 
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptxPresentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptxyoodika046
Ā 
Konsep rangkaian filter aktif berbasis operational amplifier
Konsep rangkaian filter aktif berbasis operational amplifierKonsep rangkaian filter aktif berbasis operational amplifier
Konsep rangkaian filter aktif berbasis operational amplifierbudi194705
Ā 
LAJU RESPIRASI.teknologi hasil pertanianpdf
LAJU RESPIRASI.teknologi hasil pertanianpdfLAJU RESPIRASI.teknologi hasil pertanianpdf
LAJU RESPIRASI.teknologi hasil pertanianpdfIftitahKartika
Ā 

Recently uploaded (19)

Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...
Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...
Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...
Ā 
Pengolahan Kelapa Sawit 1 pabrik pks.pdf
Pengolahan Kelapa Sawit 1 pabrik pks.pdfPengolahan Kelapa Sawit 1 pabrik pks.pdf
Pengolahan Kelapa Sawit 1 pabrik pks.pdf
Ā 
Abortion Pills In Doha // QATAR (+966572737505 ) Get Cytotec
Abortion Pills In Doha // QATAR (+966572737505 ) Get CytotecAbortion Pills In Doha // QATAR (+966572737505 ) Get Cytotec
Abortion Pills In Doha // QATAR (+966572737505 ) Get Cytotec
Ā 
perbedaan jalan raya dan rel bahasa Indonesia.pptx
perbedaan jalan raya dan rel bahasa Indonesia.pptxperbedaan jalan raya dan rel bahasa Indonesia.pptx
perbedaan jalan raya dan rel bahasa Indonesia.pptx
Ā 
Presentasi gedung jenjang 6 - Isman Kurniawan.ppt
Presentasi gedung jenjang 6 - Isman Kurniawan.pptPresentasi gedung jenjang 6 - Isman Kurniawan.ppt
Presentasi gedung jenjang 6 - Isman Kurniawan.ppt
Ā 
Laporan Tinjauan Manajemen HSE/Laporan HSE Triwulanpptx
Laporan Tinjauan Manajemen HSE/Laporan HSE TriwulanpptxLaporan Tinjauan Manajemen HSE/Laporan HSE Triwulanpptx
Laporan Tinjauan Manajemen HSE/Laporan HSE Triwulanpptx
Ā 
PEMELIHARAAN JEMBATAN pada Ujian Kompete
PEMELIHARAAN JEMBATAN pada Ujian KompetePEMELIHARAAN JEMBATAN pada Ujian Kompete
PEMELIHARAAN JEMBATAN pada Ujian Kompete
Ā 
397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx
397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx
397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx
Ā 
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptx
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptxppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptx
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptx
Ā 
BAB_3_Teorema superposisi_thevenin_norton (1).ppt
BAB_3_Teorema superposisi_thevenin_norton (1).pptBAB_3_Teorema superposisi_thevenin_norton (1).ppt
BAB_3_Teorema superposisi_thevenin_norton (1).ppt
Ā 
2024.02.26 - Pra-Rakor Tol IKN 3A-2 - R2 V2.pptx
2024.02.26 - Pra-Rakor Tol IKN 3A-2 - R2 V2.pptx2024.02.26 - Pra-Rakor Tol IKN 3A-2 - R2 V2.pptx
2024.02.26 - Pra-Rakor Tol IKN 3A-2 - R2 V2.pptx
Ā 
Pengeloaan Limbah NonB3 KLHK-Upik-090921.pdf
Pengeloaan Limbah NonB3 KLHK-Upik-090921.pdfPengeloaan Limbah NonB3 KLHK-Upik-090921.pdf
Pengeloaan Limbah NonB3 KLHK-Upik-090921.pdf
Ā 
Manajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptx
Manajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptxManajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptx
Manajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptx
Ā 
B_Kelompok 4_Tugas 2_Arahan Pengelolaan limbah pertambangan Bauksit_PPT.pdf
B_Kelompok 4_Tugas 2_Arahan Pengelolaan limbah pertambangan Bauksit_PPT.pdfB_Kelompok 4_Tugas 2_Arahan Pengelolaan limbah pertambangan Bauksit_PPT.pdf
B_Kelompok 4_Tugas 2_Arahan Pengelolaan limbah pertambangan Bauksit_PPT.pdf
Ā 
sample for Flow Chart Permintaan Spare Part
sample for Flow Chart Permintaan Spare Partsample for Flow Chart Permintaan Spare Part
sample for Flow Chart Permintaan Spare Part
Ā 
UTILITAS BANGUNAN BERUPA PENANGKAL PETIR.pptx
UTILITAS BANGUNAN BERUPA PENANGKAL PETIR.pptxUTILITAS BANGUNAN BERUPA PENANGKAL PETIR.pptx
UTILITAS BANGUNAN BERUPA PENANGKAL PETIR.pptx
Ā 
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptxPresentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
Ā 
Konsep rangkaian filter aktif berbasis operational amplifier
Konsep rangkaian filter aktif berbasis operational amplifierKonsep rangkaian filter aktif berbasis operational amplifier
Konsep rangkaian filter aktif berbasis operational amplifier
Ā 
LAJU RESPIRASI.teknologi hasil pertanianpdf
LAJU RESPIRASI.teknologi hasil pertanianpdfLAJU RESPIRASI.teknologi hasil pertanianpdf
LAJU RESPIRASI.teknologi hasil pertanianpdf
Ā 

Balancing Bi-Copter dengan Kendali PID

  • 1. KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN POLITEKNIK NEGERI BANDUNG Jln. Gegerkalong Hilir, Ds. Ciwaruga, Bandung 40012, Kotak Pos 1234, Telepon (022) 2013789, Fax. (022) 2013889 Homepage :www.polban.ac.id Email : polban@polban.ac.id Lembar Sampul Dokumen B100 Judul Dokumen Dokumen B100: ā€œBalancing Bi-Copter dengan Kendali PIDā€ Jenis Dokumen B100 Nomor Dokumen B100 ā€“ 01 Nomor Revisi 01 Nama File 2B_NanjarSyabanul_SKDB100 Tanggal Penerbitan 05 April 2019 Unit Penerbit Nanjar Syabanul Fajar Jumlah Halaman 5 Data Pengusul Pengusul Nama Jabatan Mahasiswa D ā€“ III Teknik Elektronika Nanjar Syabanul Fajar 171311059 Tanggal 05-04-2019 Tanda Tangan Lembaga Politeknik Negeri Bandung Alamat Jln. Gegerkalong Hilir, Ds. Ciwaruga Bandung 40012, Kotak Pos 1234, Telepon (022) 2013789, Fax. (022) 2013889 Telepon : 022-2013789 Faks : 022-2013889 Email : polban@polban.ac.id
  • 2. I Pengantar 1.1 Ringkasan isi dokumen Dokumen ini berisi proposal pengembangan Sistem Kendali Posisi yang diterapkan pada sistem Balancing Bi-Copter untuk ditujukan sebagai tugas mandiri mata kuliah Sistem Kendali Lanjut (SKL) program studi D3 Teknik Elektronika Politeknik Negeri Bandung. Penulisan dokumen berdasar pada ide pengembangan yang berisi antara lain : konsep, desain dan fitur dari Sistem Kendali Posisi yang direncanakan akan dikembangkan, perangkat/tools yang akan digunakan dan rencana pengembangan dari awal perencanaan hingga produk akhir dari proyek ini. 1.2 Tujuan penulisan Tujuan penulisan dari dokumen ini yaitu : 1. Sebagai acuan dan referensi dalam pengembangan topik serupa dan pengembangan lebih lanjut. 2. Membuat miniatur pengendalian posisi pada Bi-Copter dengan menggunakan MPU6065 sebagai sensor posisi.
  • 3. II Proposal Pengembangan 2.1 Pendahuluan Sebuah komputer dapat mengendalikan sebuah rangkaian/alat elektronika menggunakan sebuah chip IC yang dapat diisi program dan logika yang disebut teknologi Mikroprosesor. Pada Sistem Kendali Posisi ini memanfaatkan mikrokontroller sebagai controller dimana algoritma sistem dipusatkan pada satu mikrokontroller. Mikrokontroler Arduino saat ini menjadi salah satu development board yang banyak digunakan untuk mendukung pembelajaran dan pengembangat alat-alat sederhana. Arduino digunakan sebagai salah satu controller dalam mengaplikasikan sistem kendali digital dengan metode PID. Berdasarkan perencanaan, perancangan dan pengoperasian kemudian, diharapkan Bi-Copter bekerja sesuai dengan kondisi yang diinginkan. 2.2 Latar Belakang Menurut Oā€™Sullivan, keseimbangan adalah kemampuan untuk mempertahankan pusat gravitasi pada bidang tumpu terutama ketika posisi tegak. Keseimbangan juga dapat diartikan sebagai kemampuan relatif untuk mengontrol pusat massa tubuh atau pusat gravitasi terhadap bidang tumpu. Salah satu aplikasi dalam menerapkan ilmu keseimbangan adalah Sistem pengendalian posisi keimbangan pada miniatur Bi-Copter. Sebuah miniatur Bi-Copter adalah suatu perangkat yang memiliki 2 baling-baling dan memiliki 2 lengan kuasa yang berpusat tumpu masa di antara 2 lengankuasa tersebut. Bi-Copter dapat bermanufer sangat lincah karena gaya angkat yang dihasilkan oleh aliran udara yang dihasilkan dari bilah-bilah baling-baling rotornya. Bi-Copter ini didesain untuk dapat mengendalikan putaran baling-baling supaya dapat mencapai posisi yang (0Ā°) dinginkan. Setiap perubahan posisi dibaca oleh sensor MPU6065. Untuk dapat tetap dalam posisi seimbang dan atau mempertahankan posisi, Bi-
  • 4. Copter ini dilengkapi sistem Kendali Posisi yang berfungsi mengunci dan mempertahankan supaya posisi lengan kuasa tetap seimbang. 2.3 Desain Sistem Kendali Posisi Gambar 1. Blok Diagram Sistem Kendali Berdasarkan blok diagram pada gambar 1 maka rancangan komponen yang akan dibuat ialah : ā€¢ Setpoint = Potensiometer ā€¢ Controller = Arduino ā€¢ Driver = ESC (Electronic Speed Controller) ā€¢ Actuator = BLDC (Brushlees DC) Motor ā€¢ Sensor = MPU6065 2.4 Konsep Sistem plant terdiri dari 2 lengan kuasa yang terpasang motor BLDC dan baling- baling pada kedua ujung lengan kuasa tersebut. Lengan kuasa memiliki Panjang lengan yang sama panjang dan bertitik tumpu pada satu poros. Sensor MPU6065 sebagai pembaca posisi ditempatkan sejajar dengan titik tumpu. Kecepatan putaran kedua baling-baling akan saling mempengaruhi satu sama lainnya, jika posisi terbaca tidak seimbang atau misalnya nilai kemiringan > 0Ā° maka putaran baling-baling kanan harus lebih cepat dibandingkan yang kiri, dan begitupula sebaliknya jika nilai kemiringan < 0Ā°. Hasil pembacaan Potensiometer dikonversi menjadi Setpoint untuk nilai posisi kemiringan Lengan kuasa dalam satuan sudut. Simpangan dari posisi lengan kuasa terhadap Set Point + - Controller Driver Actuator Sensor Plant Output Feedback
  • 5. nilai setPoint disebut sebagai Error. Nilai error inilah yang akan diolah oleh sistem kendali PID supaya posisi lengan kuasa sesuai dengan nilai setpoint serta mempertahankan posisi tersebut walaupun diberi ganguan/distrubansi. Gambar 2. Bentuk Fisis Plant
  • 6. KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN POLITEKNIK NEGERI BANDUNG Jln. Gegerkalong Hilir, Ds. Ciwaruga, Bandung 40012, Kotak Pos 1234, Telepon (022) 2013789, Fax. (022) 2013889 Homepage :www.polban.ac.id Email : polban@polban.ac.id Lembar Sampul Dokumen B200 Judul Dokumen Dokumen B200: ā€œBalancing Bi-Copter dengan Kendali PIDā€ Jenis Dokumen B200 Nomor Dokumen B200 ā€“ 01 Nomor Revisi 01 Nama File 2B_NanjarSyabanul_SKDB200 Tanggal Penerbitan 22 April 2019 Unit Penerbit Nanjar Syabanul Fajar Jumlah Halaman Data Pengusul Pengusul Nama Jabatan Mahasiswa D ā€“ III Teknik Elektronika Nanjar Syabanul Fajar 171311059 Tanggal 22-04-2019 Tanda Tangan Lembaga Politeknik Negeri Bandung Alamat Jln. Gegerkalong Hilir, Ds. Ciwaruga Bandung 40012, Kotak Pos 1234, Telepon (022) 2013789, Fax. (022) 2013889 Telepon : 022-2013789 Faks : 022-2013889 Email : polban@polban.ac.id
  • 7. Pengantar 1.1 Ringkasan isi dokumen Dokumen B200 Dokumen B200 ini berisi tentang dokumen spesifikasi alat yang meliputi spesifikasi sistem dalam mengembangkan alat ini, serta detail dari alat yang akan dibuat dengan nama ā€œBalancing Bi-Copter dengan Kedali PIDā€. Dokumen ini berisi mengenai mekanisme alat dan cara kerja alat. 1.2 Functional Requirement Specification ā€¢ Alat ini diciptakan sebagai pengembangan untuk mengatur dan mempertahankan posisi. Hal yang akan dikembangkan dalam alat ini adalah sistem kendali Posisi dengan PID.
  • 8. Proposal Pengembangan 2.1 Gambaran Umum Posisi lengan kuasa akan terus dijaga supaya sama dengan nilai set point yang diberikan. Untuk mencapai kondisi tersebut perlu diterapkan sistem kendali Posisi dengan metode PID. Pengujian sistem dilakukan dengan memberikan gangguan pada salah satu lengan kusa berupa penambahan beban. 2.2 Tujuan Tujuan utama dari dibuatnya alat ini adalah : ā€¢ Merancang dan merealisasikan perangkat keras dan perangkat lunak Balancing Bi- Copter. ā€¢ Menguji dan mengevaluasi kinerja dari Balancing Bi-Copter. 2.3 Ruang Lingkup Alat ini memiliki batasan-batasan sebagai berikut : ā€¢ Mengatur posisi dengan set Point berupa nilai dari Potensiometer ā€¢ Metode Kendali yang digunakan adalah metode PID. ā€¢ Gangguan yang diberikan pada plant berupa penambahan beban pada lengan kuasa atau perubahan kemiringan dengan cara apapun. 2.4 Deskripsi Sistem Karakteristik sistem dari alat ini adalah : ā€¢ Mengatur posisi kemiringan supaya sama dengan nilai Setpoint yang diberikan. ā€¢ Berusaha mempertahankan posisi walaupun diberi distrubansi atau ganguan. 2.5 Elemen yang Dibutuhkan ā€¢ Aktuator yang sesuai untuk sistem.
  • 9. ā€¢ Menentukan parameter kendali agar sistem sesuai dengan yang diinginkan. ā€¢ Memasukkan parameter kendali kedalam algoritma pemrograman. Overall Specification 3.1 Pendahuluan Bagian ini akan menjelaskan mengenai spesifikasi keseluruhan dari Balancing Bi-Copter dengan Kedali PID dan komponen-komponen penyusunnya. Hal-hal yang akan dijelaskan antara lain: ā€¢ Deskripsi Alat : menjelaskan mengenai cara kerja secara umum dari system alat ini. ā€¢ Deskripsi Perangkat Keras : menjelaskan lebih lanjut dari perangkat keras yang mendukung system ā€¢ Deskripsi Perangkat Lunak: menjelaskan komponen-komponen perangkat lunak penyusun sistem. 3.2 Deskripsi Alat Sistem plant terdiri dari 2 lengan kuasa yang terpasang motor BLDC dan baling-baling pada kedua ujung lengan kuasa tersebut. Lengan kuasa memiliki Panjang lengan yang sama panjang dan bertitik tumpu pada satu poros. Sensor MPU6065 sebagai pembaca posisi ditempatkan sejajar dengan titik tumpu. Kecepatan putaran kedua baling-baling akan saling mempengaruhi satu sama lainnya, jika posisi terbaca tidak seimbang atau misalnya nilai kemiringan > 0Ā° maka putaran baling-baling kanan harus lebih cepat dibandingkan yang kiri, dan begitupula sebaliknya jika nilai kemiringan < 0Ā°. Hasil pembacaan Potensiometer dikonversi menjadi Setpoint untuk nilai posisi kemiringan Lengan kuasa dalam satuan sudut. Simpangan dari posisi lengan kuasa terhadap nilai setPoint disebut sebagai Error. Nilai error inilah yang akan diolah oleh sistem kendali PID supaya posisi lengan kuasa sesuai dengan nilai setpoint serta mempertahankan posisi tersebut walaupun diberi ganguan/distrubansi.
  • 10. 3.3 Deskripsi Perangkat Keras Balancing Bi-Copter dengan Kedali Posisi Metode PID membutuhkan perangkat keras sebagai pendukung sistem ini diantaranya: 3.3.1 HQProp Propellers 5.1x4.1x3 Ini adalah New Swap POPO HQProp Baru yang kompatibel. Ini juga dapat digunakan untuk motor NON POPO. Termasuk 2x 5.1X4.1X3 CW propellers 2x 5.1X4.1X3 CCW propellers Specs Taille: 5.1 pouces Pitch: 4.1 Blades: 3 Material: Diameter Hub Carbon Carbonate "" '13.2mm Hub Thicknes ""' 7mm Hub Thicknes "" '7mm Shaft: 5mm Poids: 4.7g. 3.3.2 2400KV Brushless Motor Racerstar Racing Edition 2306 BR2306S 2400KV 2-4S Brushless Motor For X210 X220 250 FPV Racing Frame
  • 11. Description: CW screw thread motor comes with red cap CCW screw thread motor comes with black cap Brand: Racerstar Item name: BR2306S 2400KV Brushless Motor RPM/V: 2400KV Height: 33.5mm Width: 28.5mm Shaft diameter: M5 Motor mount hole size: M3 Weight: 33.5 grams Voltage: 2-4S Battery: 2-4S lipo battery Internal resistance: ā„¦ Tested with 14.8V voltage 5045 propellers: Load current: 33A Pull: 980g Power: 458W Efficiency: 2.1 (g/W) Features: Stainless steel motor shaft Long life Japanese NMB ball bearings Oxygen free copper wire CNC machined aluminum case More powerful than BR2205S Package included: 20 x BR2306S 2400KV Brushless Motor
  • 13. 3.3.4 MPU 6065 Modul MPU-6050 (giroskop tiga sumbu + accelerometer tiga sumbu) Gunakan chip: MPU-6050 Catu daya: 3-5v (regulator putus sekolah rendah internal) Mode komunikasi: protokol komunikasi IIC standar Konverter 16bit AD chip internal, output data 16-bit Kisaran giroskop: 250 500 1000 2000 / dtk Kisaran percepatan: 2 4 8 16g Pin pitch 2.54mm
  • 14. 3.3.5 ESC ( Electronic Speed Controls ) SimonK 30A ESC ( Electronic Speed Controls ) SimonK 30A dengan Mosfet Toshiba TPCA 8057 Deskripsi : - Menggunakan Mosfet Toshiba TPCA 8057 - Dapat digunakan untuk pengatur kecepatan motor brushless multirotor atau RC Plane - Maksimal Arus : up to 30A - BEC : 5v / 3A Feature: - Highest efficiency 100% N-FET design. - Highest accuracy with Crystal Oscillator (Temperature won't affect the PWM operating range like other cheap ESC's). - No low voltage cutoff, because any cutoff in a multirotor = crash. - No over temp cutoff, because any cutoff in a multirotor = crash. - Super high refresh rate, no buffering of the input signal, resulting in more than 490Hz response rate. - 16KHz motor frequency, giving fastest response of the motor, and quietest operation as well (no 8KHz squeal). - Super simple, foolproof operation! Nothing to program other than the throttle range. ESC Specification - Cont Current: 30A - Burst Current: 35A - BEC Model: Linear mode - BEC Output: 5V3A - Li- ion/Li0poly:2-4S,or Ni-MH/Ni-Cd:4-12NIMH - Weight: 25g - Size: 32*24*7mm
  • 15. 3.3.5 Potensiometer Potensiometer yang digunakan adalah tipe mono dengan besar resistansi 10K ohm. Potensiometer ini di fungsikan sebagai setpoint. 3.3.6 LCD 20x4 LCD (Liquid Crystal Display) adalah suatu jenis media tampil yang menggunakan kristal cair sebagai penampil utama. LCD sudah digunakan diberbagai bidang misalnya alalā€“alat elektronik seperti televisi, kalkulator, atau pun layar komputer. Pada postingan aplikasi LCD yang dugunakan ialah LCD
  • 16. dengan jumlah karakter 20x4. LCD sangat berfungsi sebagai penampil yang nantinya akan digunakan untuk menampilkan status kerja alat. Spesifikasi: 3.4 Deskripsi Perangkat Lunak Deskripsi perangkat lunak pada alat yang dibuat meliputi tahapan-tahapan tertentu, diantaranya: ā€¢ Menentukan bahasa pemrograman yang akan digunakan adalah Bahasa C++. ā€¢ Menentukan software penunjang bahasa pemrograman yang digunakan adalah Arduino IDE. ā€¢ Membuat dan menguji program yang telah dibuat sesuai dengan respon sistem yang telah diset sesuai spesifikasi serta mensimulasikannya ke pin13 Arduino Uno yang telah disiapkan. ā€¢ Menguji program pada alat yang dibuat.
  • 17. 4.1 Deskripsi Sistem Kendali Deskripsi system kendali pada alat yang akan dibuat diantaranya: ā€¢ Rise Time yang cepat yaitu dibawah 1,5 detik. ā€¢ Toleransi Overshoot yaitu dibawah 10%. ā€¢ Settling Time yang cepat yaitu dibawah 2 detik dengan batas-batas 5%. ā€¢ Tidak terdapat Error Steadystate. 5.1 Penutup Demikian dokumen B200 ini dibuat, untuk berikutnya dokumen ini dapat dijadikan acuan untuk pembuatan dan pengembangan alat bagi tahapan dan dokumentasi berikutnya.
  • 18. KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN POLITEKNIK NEGERI BANDUNG Jln. Gegerkalong Hilir, Ds. Ciwaruga, Bandung 40012, Kotak Pos 1234, Telepon (022) 2013789, Fax. (022) 2013889 Homepage :www.polban.ac.id Email : polban@polban.ac.id Lembar Sampul Dokumen B300 Judul Dokumen Dokumen B300: ā€œBalancing Bi-Copter dengan Kendali PIDā€ Jenis Dokumen B300 Nomor Dokumen B300 ā€“ 01 Nomor Revisi 01 Nama File 2B_NanjarSyabanul_SKDB300 Tanggal Penerbitan 25 April 2019 Unit Penerbit Nanjar Syabanul Fajar Jumlah Halaman Data Pengusul Pengusul Nama Jabatan Mahasiswa D ā€“ III Teknik Elektronika Nanjar Syabanul Fajar 171311059 Tanggal 25-04-2019 Tanda Tangan Lembaga Politeknik Negeri Bandung Alamat Jln. Gegerkalong Hilir, Ds. Ciwaruga Bandung 40012, Kotak Pos 1234, Telepon (022) 2013789, Fax. (022) 2013889 Telepon : 022-2013789 Faks : 022-2013889 Email : polban@polban.ac.id
  • 19. Pengantar Dokumen B200 Dokumen B200 ini berisi tentang dokumen Sistem Mekanik, Elektronik, dan Perangkat Lunak sistem dalam mengembangkan alat ini, serta detail dari perancangan sistem mekanik, elektronik, dan perangkat lunak alat yang akan dibuat dengan nama ā€œBalancing Bi-Copter dengan Kedali PIDā€. 1.1 Ringkasan isi dokumen Dokumen ini terdiri dari 2 bagian: 1. Bab Pengantar Menjelaskan mengenai ringkasan isi dokumen, tujuan penulisan. Bab ini bertujuan untuk memudahkan pengerjaan proyek ini. 2. Bab Pengembangan Sistem Mekanik, Elektronik, dan Perangkat Lunak Bab ini berisikan pendahuluan, perancangan sistem mekanik, elektronik, dan perangkat lunak.. 1.2 Tujuan Penulisan dan Aplikasi/Kegunaan Dokumen Dokumen B300 ini bertujuan untuk menjadi salah satu bagian dari rangkaian dokumentasi dalam pembuatan dan pengembangan proyek. Dokumen B300 ini menjadi acuan apabila terjadi ketidaksesuaian atau kesalahan pada perancangan proyek yang akan dibuat.
  • 20. Proposal Pengembangan 2.1 Gambaran Umum Pada pengembangan proyek ini, akan dipaparkan rancangan mekanik, elektronik, dan juga perangkat lunak yang akan menjadi acuan dalam pengembangan proyek ini dan dapat terealisasi sehingga proses pengerjaannya dapat lebih mudah. 2.2 Perancangan Mekanik Perancangan mekanik yang dapat dilakukan adalah sebagai berikut Gambar 2.1 Perancangan Mekanik
  • 21. 2.3 Perancangan Elektronik 2.3.1 Diagram Blok Gambar 2.2 Blok Diagram Sistem Kendali Berdasarkan blok diagram pada gambar 1 maka rancangan komponen yang akan dibuat ialah: ā€¢ Setpoint = Potensiometer ā€¢ Controller = Arduino Uno ā€¢ Driver = ESC (Electronic Speed Controller) ā€¢ Actuator = BLDC (Brushlees DC) Motor ā€¢ Sensor (Feedback) = MPU6065 2.3.2. Analisis Rangkaian Per Blok A. Set Point (SV) Set Point + - Controller Driver Actuator Sensor Plant Output Feedback
  • 22. Untuk dapat mengatur Set Point (SV) pada perancangan Sistem kendali posisi Bi-copter. Komponen ini diperlukan untuk memberikan set point atau menentukan posisi yang diinginkan. Kemudian nilai SV tersebut akan diteruskan ke Arduino untuk diolah agar plan bekerja sesuai yang diinginkan. B. Proses Pengontrolan Proses pengontrolan dalam Sistem Kendali Posisi Bicopter diproses oleh Arduino. Arduino mendapat sinyal dari potensiometer dan nilainya diolah agar posisi pada ruangan sesuai dengan yang diinginkan. Ketika ada gangguan plan akan beradaptasi dengan cepat dan juga merespon gangguan tersebut sehingga memungkinkan lampu meredup atau bertambah cerah sesuai dengan SV yang diberikan. C. Sistem Driver ESC ( Electronic Speed Controls ) adalah driver Motor Brusless DC, ESC ini mengatur kecepatan putaran Motor Brusless DC.
  • 23. D. Actuator BR2306S 2400KV 2-4S Brushless Motor adalah sebagai aktuator yang menggerakan aktuator manipulator. E. Actuator Manipulator HQProp Propellers 5.1x4.1x3 adalah sebagai manipulasi aktuator untuk menghasilkan dorongan udara yang nantinya mempengaruhi posisi. F. Feedback (Umpan Balik) Modul MPU-6050 merupakan balik berupa pembacaan posisi kemiringan sudut.
  • 25. 2.4. Perancangan Perangkat Lunak (Flow Chart)
  • 26. 3 Penutup Demikian dokumen B300 ini dibuat, untuk berikutnya dokumen ini dapat dijadikan acuan untuk pembuatan dan pengembangan alat bagi tahapan dan dokumentasi berikutnya.
  • 27. KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN POLITEKNIK NEGERI BANDUNG Jln. Gegerkalong Hilir, Ds. Ciwaruga, Bandung 40012, Kotak Pos 1234, Telepon (022) 2013789, Fax. (022) 2013889 Homepage :www.polban.ac.id Email : polban@polban.ac.id Lembar Sampul Dokumen B400 Judul Dokumen Dokumen B400: ā€œBalancing Bi-Copter dengan Kendali PIDā€ Jenis Dokumen B400 Nomor Dokumen B400 ā€“ 01 Nomor Revisi 02 Nama File 2B_NanjarSyabanul_SKDB400 Tanggal Penerbitan 02 Mei 2019 Unit Penerbit Nanjar Syabanul Fajar Jumlah Halaman Data Pengusul Pengusul Nama Jabatan Mahasiswa D ā€“ III Teknik Elektronika Nanjar Syabanul Fajar 171311059 Tanggal 02-05-2019 Tanda Tangan Lembaga Politeknik Negeri Bandung Alamat Jln. Gegerkalong Hilir, Ds. Ciwaruga Bandung 40012, Kotak Pos 1234, Telepon (022) 2013789, Fax. (022) 2013889 Telepon : 022-2013789 Faks : 022-2013889 Email : polban@polban.ac.id
  • 28. I Pengantar Secara spesifik, dokumen ini menjelaskan berbagai macam test yang akan dilakukan untuk mengetahui performa suatu sistem. Ukuran tersebut dapat berupa bekerja atau tidaknya suatu fitur. Sistem yang dibahas pada dokumen ini adalah sistem kendali posisi Bi-Copter. 1.1 Ringkasan isi dokumen Dokumen ini terdiri dari 2 bagian: 1. Bab Pengantar Menjelaskan mengenai ringkasan isi dokumen, tujuan penulisan. Bab ini bertujuan untuk memudahkan pengerjaan proyek ini. 2. Bab Pengujian Bab ini berisikan berbagai macam test yang akan dilakukan untuk mengetahui performa suatu sistem. 1.2 Tujuan Penulisan dan Aplikasi/Kegunaan Dokumen Dokumen B400 ini bertujuan untuk dijadikan salah satu bagian dari rangkaian dokumentasi dalam pembuatan dan pengembangan proyek. Dokumen B400 ini menjadi landasan dalam pembuatan proyek mandiri, dan diharapkan dokumen ini memudahkan dalam pembuatan alat.
  • 29. II Pengujian 2.1 Pengujian Arduino Uno Gambar 1. Program pengujian Arduino Gambar 2. Program pengujian Arduino Arduino uno di uji dengan memasukkan program blink pada arduino sebagai mikrokontroller. Berdasarkan hasil uji, arduino uno berfungsi dengan baik dan dapat digunakan dalam pembuatan proyek mandiri.
  • 30. 2.2 Pengujian LCD Pada proyek ini sensor yang digunakan adalah LCD 20x4 sebagai display. Berikut program dan hasil dari pengujian. Gambar 3. Program pengujian LCD Gambar 4. Hasil Pengujian LCD Berdasarkan hasil pengujian LCD tersebut dapat digunakan sebagai diplay pada proyek mandiri ini.
  • 31. 2.3 Pengujian Potensiometer sebagai SV Pengujian Setpoint dengan potensiometer dilakukan dengan cara menghubungkan kaki tengah potensiomter ke A0 arduino dan salah satu kakinya ke ground dan kaki yang lainnya ke Vcc. Lalu di test dengan program dibawah ini. Gambar 5. Program pengujian potensiometer
  • 32. Gambar 6. Hasil plotter dari potensiometer Berdasarkan hasil pengujian potensiometer tersebut dapat digunakan sebagai pengatur nilai setpoint pada proyek mandiri.
  • 33. 2.4 Pengujian Sensor Pada proyek ini sensor yang digunakan adalah sensor MPU sebagai pengukur posisi kemiringan sudut. Berikut program dan hasil dari pengujian. Gambar 7. Program pengujian MPU6050
  • 34. Gambar 8. Program pengujian MPU6050 Oranye : 0Ā° Biru : Tanpa Filter. Merah : Dengan Complementary Filter. 2.5 Pengujian Driver dan Aktuator Pada proyek ini yang digunakan adalah ESC (Electronic Speed Controls) SimonK 30A sebagai Driver dan BR2306S 2400KV sebagai aktuator. Berikut program dan hasil dari pengujian.
  • 35. Gambar 9. Program pengujian Driver dan Aktuator
  • 36. Gambar 10. Program pengujian Driver dan Aktuator 3 Listing Program Berikut adalah listing program keseluruhan yang akan digunakan pada proyek. //Last Updated : 24 Juni 2019, 17:50 //=============== PID Parameter ======================= float Kp = 0.92;//1.12;//1.2;//1.15;//1.2;//5.2;//2.2;//0.204; float Ti = 1;//73;//100;//1;//300;//200;//300;//150;//100//0.38;//73;//0.5;//0.3551; goes fine float Td = 0.29;//0.281;//0.26;//0.42;//0.35;//0.29;//0.26//0.26;//0.2;//0.15;//1;//0.9;//0.0887; 0.2 fine float Ki; float Kd; float PID; int SV=0; float PV; int arming=1100; int MV,MV1,MV2; float e; float eint,eint_1; float eint_update; float edif;
  • 37. float et, et_1; float temp_Kp = Kp; float temp_Ti = Ti; float temp_Td = Td; //float interval_elapsed, interval_limit; unsigned long t,t_1; // t=pencatatan wak tu skrg float Ts; //========================= Global Variables ============================= int atas=90; int bawah=-90; unsigned long prevmillis=0; bool toggle_var=0; bool toggle_it(unsigned int Interval){ if(millis()-prevmillis>=Interval){ toggle_var=!toggle_var; prevmillis=millis(); } return toggle_var; } float mapFloat(long x, long fromLow, long fromHigh, float toLow, float toHigh){ return (x - fromLow) * (toHigh - toLow) / (fromHigh - fromLow) + toLow; } //============================ MPU6050 =================================== #include <MPU6050_tockn.h> //https://github.com/tockn/MPU6050_tockn #include <Wire.h> MPU6050 mpu6050(Wire); //=============================== ESC ==================================== #include <Servo.h> Servo ESCL; // create servo object to control the ESCL Servo ESCR; // create servo object to control the ESCR //=============================== LCD ==================================== #include <LiquidCrystal.h>
  • 38. LiquidCrystal lcd(6, 7, 5, 4, 3, 2); //RS, EN, D4, D5, D6, D7 #define BL 1 byte bar[8] = {0, 0, 0, 31, 31, 31, 31, 31}; byte barR[8] = {0, 0, 0, 24, 28, 30, 28, 24}; byte barL[8] = {0, 0, 0, 3, 7, 15, 7, 3}; byte selected[8] = {8, 12, 14, 15, 14, 12, 8, 0}; //============================ Push Button ================================ //Debouncing Button #include <JC_Button.h> // https://github.com/JChristensen/JC_Button #define btnDecPin A1 #define btnIncPin A2 #define btnCancelPin A3 #define btnOkPin 8 Button btn1(btnDecPin), btn2(btnIncPin), btnCancel(btnCancelPin), btnOk(btnOkPin); int x=0; int prev_x=0; float Step=0.01; int y=0; const unsigned long REPEAT_FIRST(500), // ms required before repeating on long press REPEAT_INCR(100); // repeat interval for long press //const int // MIN_COUNT(0), // MAX_COUNT(59); float count; float increase_decrease(float Step){ //float //count=var; //lastCount-1; static unsigned long rpt(REPEAT_FIRST); enum states_t {WAIT, INCR, DECR}; static states_t STATE; btn1.read(); btn2.read();
  • 39. switch (STATE) { case WAIT: // wait for a button event if (btn2.wasPressed()) STATE = INCR; else if (btn1.wasPressed()) STATE = DECR; else if (btn2.wasReleased()) // reset the long press interval rpt = REPEAT_FIRST; else if (btn1.wasReleased()) rpt = REPEAT_FIRST; else if (btn2.pressedFor(rpt)) // check for long press { rpt += REPEAT_INCR; // increment the long press interval STATE = INCR; } else if (btn1.pressedFor(rpt)) { rpt += REPEAT_INCR; STATE = DECR; } break; case INCR: // increment the counter //count = min(count++, MAX_COUNT); // but not more than the specified maximum count+=Step; STATE = WAIT; break; case DECR: // decrement the counter //count = max(count--, MIN_COUNT); // but not less than the specified minimum count-=Step; STATE = WAIT; break; } return count; } const unsigned int LONG_PRESS(1000); bool gow=false; void scanButton(){ btn1.read(); btn2.read(); btnCancel.read(); btnOk.read();
  • 40. } //============================ Buzzer ================================ #define buzzerPin 13 void beep(unsigned int x){ digitalWrite(buzzerPin,HIGH); delay(x); digitalWrite(buzzerPin,LOW); } void setup() { Serial.begin(9600); //pinMode(btn,INPUT_PULLUP); btn1.begin(); btn2.begin(); btnCancel.begin(); btnOk.begin(); pinMode(buzzerPin,OUTPUT); digitalWrite(buzzerPin,LOW); // set up the LCD's number of columns and rows: lcd.begin(20, 4); lcd.createChar(1, bar); lcd.createChar(2, barR); lcd.createChar(3, barL); lcd.createChar(4, selected); pinMode(BL,OUTPUT); digitalWrite(BL,LOW); lcd.setCursor(0,0); lcd.print(" YOKOGAWE "); lcd.setCursor(0,2); lcd.print(" stand alone "); lcd.setCursor(0,3); lcd.print(" PID controller "); while(!gow){ scanButton(); if(btnOk.wasPressed()){ beep(500);
  • 41. gow=true; lcd.clear(); } } //========================== Home ================================ Home: Wire.begin(); mpu6050.begin(); int i=0; int prev_i=0; //int j; lcd.setCursor(0,0); lcd.print(" ( Home ) "); while(1){ scanButton(); if(btn1.wasPressed()){ beep(100); if(i>=4) i=4; else i++; if(i>0){ prev_i=i-1; } } if(btn2.wasPressed()){ beep(100); prev_i=i; if(i<=0) i=0; else i--; } if(btnOk.wasPressed()){ beep(200); lcd.clear(); switch(i){ case 0: lcd.clear(); goto Run; break; case 1: lcd.clear(); goto mpuCal; break; case 2: lcd.clear(); goto ZN2; break; case 3: lcd.clear(); goto Tuning; break; }
  • 42. } lcd.setCursor(1,0); lcd.print("RUN"); lcd.setCursor(1,1); lcd.print("MPU Cal"); lcd.setCursor(1,2); lcd.print("ZN2"); lcd.setCursor(1,3); lcd.print("Tuning"); lcd.setCursor(0,prev_i); lcd.print(" "); lcd.setCursor(0,i); lcd.write(4); lcd.setCursor(11,1); lcd.print("Kp "); lcd.print(Kp); lcd.setCursor(11,2); lcd.print("Ti "); lcd.print(Ti); lcd.setCursor(11,3); lcd.print("Td "); lcd.print(Td); } //========================= Tuning =============================== Tuning: x=0; prev_x=0; Step=0.01; y=0; lcd.setCursor(10,x); lcd.write(4); while(1){ scanButton(); if(btn1.wasPressed()){ beep(100); if(x>=3) x=3; else x++; if(x>0){ prev_x=x-1; } }
  • 43. if(btn2.wasPressed()){ beep(100); prev_x=x; if(x<=0) x=0; else x--; } if(btnOk.wasPressed()){ beep(200); lcd.clear(); lcd.setCursor(10,x); lcd.write(4); if(x==0){ temp_Kp = Kp; count = Kp; while(1){ if(toggle_it(600)==true){ lcd.setCursor(10,x); lcd.write(4); } else{ lcd.setCursor(10,x); lcd.write(" "); } lcd.setCursor(11,0); lcd.print("Kp "); lcd.print(temp_Kp); lcd.setCursor(11,1); lcd.print("Ti "); lcd.print(Ti); lcd.setCursor(11,2); lcd.print("Td "); lcd.print(Td); lcd.setCursor(0,0); lcd.print("inc/dec"); lcd.setCursor(0,1); lcd.print("stp "); lcd.print(Step); lcd.print(" "); temp_Kp=increase_decrease(Step); btnOk.read(); if(btnOk.wasPressed()){ if(y>=3) y=0; else y++; } if(btnOk.pressedFor(LONG_PRESS)){ lcd.clear();
  • 44. Kp=temp_Kp; beep(200); break; } switch(y){ case 0: Step=0.01; break; case 1: Step=0.10; break; case 2: Step=1.00; break; case 3: Step=10.00; break; } } } if(x==1){ temp_Ti = Ti; count = Ti; //increase_decrease(Ti,Step); while(1){ if(toggle_it(600)==true){ lcd.setCursor(10,x); lcd.write(4); } else{ lcd.setCursor(10,x); lcd.write(" "); } lcd.setCursor(11,0); lcd.print("Kp "); lcd.print(Kp); lcd.setCursor(11,1); lcd.print("Ti "); lcd.print(temp_Ti); lcd.setCursor(11,2); lcd.print("Td "); lcd.print(Td); lcd.setCursor(0,0); lcd.print("inc/dec"); lcd.setCursor(0,1); lcd.print("stp "); lcd.print(Step); lcd.print(" "); temp_Ti=increase_decrease(Step); btnOk.read(); if(btnOk.wasPressed()){ if(y>=3) y=0; else y++; }
  • 45. if(btnOk.pressedFor(LONG_PRESS)){ lcd.clear(); Ti=temp_Ti; beep(200); break; } switch(y){ case 0: Step=0.01; break; case 1: Step=0.10; break; case 2: Step=1.00; break; case 3: Step=10.00; break; } } } if(x==2){ temp_Td = Td; count = Td; while(1){ if(toggle_it(600)==true){ lcd.setCursor(10,x); lcd.write(4); } else{ lcd.setCursor(10,x); lcd.write(" "); } lcd.setCursor(11,0); lcd.print("Kp "); lcd.print(Kp); lcd.setCursor(11,1); lcd.print("Ti "); lcd.print(Ti); lcd.setCursor(11,2); lcd.print("Td "); lcd.print(temp_Td); lcd.setCursor(0,0); lcd.print("inc/dec"); lcd.setCursor(0,1); lcd.print("stp "); lcd.print(Step); lcd.print(" "); temp_Td=increase_decrease(Step); btnOk.read(); if(btnOk.wasPressed()){ lcd.setCursor(0,1); lcd.print(" "); //delay(200); if(y>=3) y=0; else y++; }
  • 46. if(btnOk.pressedFor(LONG_PRESS)){ lcd.clear(); Td=temp_Td; beep(200); break; } switch(y){ case 0: Step=0.01; break; case 1: Step=0.10; break; case 2: Step=1.00; break; case 3: Step=10.00; break; } } } if(x==3){ lcd.clear(); goto Home; } } lcd.setCursor(10,prev_x); lcd.print(" "); lcd.setCursor(10,x); lcd.write(4); lcd.setCursor(0,0); lcd.print("Tuning"); lcd.setCursor(11,0); lcd.print("Kp "); lcd.print(Kp); lcd.setCursor(11,1); lcd.print("Ti "); lcd.print(Ti); lcd.setCursor(11,2); lcd.print("Td "); lcd.print(Td); lcd.setCursor(11,3); lcd.print("( Home )"); } mpuCal: Wire.begin(); mpu6050.begin(); delay(1500);
  • 47. lcd.setCursor(0,0); lcd.print(" MPU6050 "); lcd.setCursor(0,2); lcd.print(" Calibrating "); lcd.setCursor(0,3); lcd.print(" Don't Move!! "); mpu6050.calcGyroOffsets(true); lcd.clear(); beep(200); ESCL.attach(9); ESCR.attach(10); delay(800); lcd.print(" ESC "); lcd.setCursor(0,2); lcd.print(" Calibrating "); lcd.setCursor(0,3); lcd.print(" Take Care! "); ESCR.writeMicroseconds(2000); // Send the signal to the ESC ESCL.writeMicroseconds(2000); // Send the signal to the ESC delay(3000); ESCR.writeMicroseconds(1000); // Send the signal to the ESC ESCL.writeMicroseconds(1000); // Send the signal to the ESC delay(2000); beep(200); lcd.clear(); lcd.setCursor(0,2); lcd.print(" All Done "); delay(1800); lcd.clear(); goto Home; ZN2: lcd.clear(); SV = 0; while(1){ if(toggle_it(600)==true){ lcd.setCursor(10,3); lcd.write(4);
  • 48. } else{ lcd.setCursor(10,3); lcd.write(" "); } lcd.setCursor(11,3); lcd.print("Kp "); lcd.print(Kp); lcd.print(" "); //lcd.setCursor(0,3); //lcd.print("inc/dec"); lcd.setCursor(0,3); lcd.print("stp "); lcd.print(Step); lcd.print(" "); Kp=increase_decrease(Step); btnOk.read(); if(btnOk.wasPressed()){ if(y>=3) y=0; else y++; } if(btnOk.pressedFor(LONG_PRESS)){ lcd.clear(); //Kp=temp_Kp; beep(200); break; } switch(y){ case 0: Step=0.01; break; case 1: Step=0.10; break; case 2: Step=1.00; break; case 3: Step=10.00; break; } mpu6050.update(); PV=mpu6050.getAngleX(); //e=SV-PV; e=PV-SV; //MV=Kp*(e*-1); MV=Kp*e; MV2=1075+MV; MV1=1075-MV; //off set
  • 49. if(MV2>1120){ //max 1000 MV2=1120; } else if(MV2<1000){ //min 1000 MV2=1000; } if(MV1>1120){ //max 2000 MV1=1120; } else if(MV1<1000){ //min 1000 MV1=1000; } ESCR.writeMicroseconds(MV2); //R ESCL.writeMicroseconds(MV1); //L if(millis()-prevmillis>=150){ //Serial.print(mpu6050.getRawGyroX()/100); //BLUE //Serial.print(" "); //Serial.print(e); //ORANGE //Serial.print(" "); Serial.println(PV); //RED lcd.setCursor(0,0); lcd.print("e "); lcd.print(e); lcd.print(" "); lcd.setCursor(0,1); lcd.print("MVL "); lcd.print(MV1); lcd.print(" "); lcd.setCursor(0,2); lcd.print("MVR "); lcd.print(MV2); lcd.print(" "); prevmillis=millis(); } } Run: lcd.clear(); prevmillis=millis; int count_down=3; while(count_down!=0){ if(millis()-prevmillis>=500){ count_down--; prevmillis=millis(); beep(100); } lcd.setCursor(0,1); lcd.print(" Running in "); lcd.print(count_down); lcd.print(" "); }
  • 50. beep(100); lcd.clear(); //================================================== et_1=0; eint_1=0; t_1=millis(); prevmillis=millis(); x=0; prev_x=0; Step=0.01; y=0; lcd.setCursor(10,x); lcd.write(4); //================================================= } void loop() { run_PID(); tuningPID(); //t_1=t; } void run_PID(){ if (Ti==0){ Ki=0; //untuk mengindari error akibat pembagi 0 } else { Ki=Kp/Ti; } Kd=Kp*Td; int adc = analogRead(A0); if(adc>186){ SV = map(adc, 187, 1020, 0, 30); } if(adc<186){ SV = map(adc, 185, 10, 0, -30); }
  • 51. if(SV<-30){ SV=-30; } else if(SV>30){ SV=30; } else{ SV=SV; } mpu6050.update(); PV=mpu6050.getAngleX(); et=PV-SV; //hitung time sampling //t=millis(); //Ts=(t-t_1)*0.001; Ts=0.016; //hitung luasan error eint_update=((et +et_1)*Ts)/2; eint=eint_1+eint_update; //hitung percepatan error edif=(et -et_1)/Ts; PID = (Kp*et) + (Ki*eint) + (Kd*edif); //PID = (Kp*et) + (Kd*edif); MV2=arming+PID; MV1=arming-PID; if(MV2>1500){ //max 1000 MV2=1500; } else if(MV2<1000){ //min 1000 MV2=1000; } if(MV1>1500){ //max 2000 MV1=1500; } else if(MV1<1000){ //min 1000 MV1=1000;
  • 52. } ESCR.writeMicroseconds(MV2); //R ESCL.writeMicroseconds(MV1); //L if(millis()-prevmillis>=50){ Serial.print(SV); Serial.print(" "); Serial.print(atas); Serial.print(" "); Serial.print(PV); Serial.print(" "); Serial.println(bawah); lcd.setCursor(0,0); lcd.print("SV ");lcd.print(SV); lcd.print(" "); lcd.setCursor(0,1); lcd.print("PV "); lcd.print(PV); lcd.print(" "); lcd.setCursor(0,2); lcd.print(MV1); lcd.print(" "); lcd.setCursor(5,2); lcd.print(MV2); lcd.print(" "); lcd.setCursor(0,3); lcd.print("Ts "); lcd.print(Ts,3); lcd.print(" "); prevmillis=millis(); } //jangan lupa simpan nilai sebelumnya et_1=et; eint_1=eint; //t_1=t; } void tuningPID(){ lcd.setCursor(10,x); lcd.write(4); btnCancel.read(); if(btnCancel.wasPressed()){ beep(100); if(x>=2){ x=0; lcd.setCursor(10,2); lcd.print(" "); } else{ x++; } if(x>0){ lcd.setCursor(10,x-1); lcd.print(" ");
  • 53. } } if(x==0){ count = Kp; lcd.setCursor(11,0); lcd.print("Kp "); lcd.print(Kp,3); lcd.setCursor(11,1); lcd.print("Ti "); lcd.print(Ti,3); lcd.setCursor(11,2); lcd.print("Td "); lcd.print(Td,3); lcd.setCursor(10,3); lcd.print("stp "); lcd.print(Step,3); lcd.print(" "); Kp=increase_decrease(Step); btnOk.read(); if(btnOk.wasPressed()){ if(y>=4) y=0; else y++; } switch(y){ case 0: Step=0.001; break; case 1: Step=0.01; break; case 2: Step=0.1; break; case 3: Step=1.00; break; case 4: Step=10.00; break; } } if(x==1){ count = Ti; lcd.setCursor(11,0); lcd.print("Kp "); lcd.print(Kp,3); lcd.setCursor(11,1); lcd.print("Ti "); lcd.print(Ti,3); lcd.setCursor(11,2); lcd.print("Td "); lcd.print(Td,3); lcd.setCursor(10,3); lcd.print("stp "); lcd.print(Step,3); lcd.print(" ");
  • 54. Ti=increase_decrease(Step); btnOk.read(); if(btnOk.wasPressed()){ if(y>=4) y=0; else y++; } switch(y){ case 0: Step=0.001; break; case 1: Step=0.01; break; case 2: Step=0.1; break; case 3: Step=1.00; break; case 4: Step=10.00; break; } } if(x==2){ count = Td; lcd.setCursor(11,0); lcd.print("Kp "); lcd.print(Kp,3); lcd.setCursor(11,1); lcd.print("Ti "); lcd.print(Ti,3); lcd.setCursor(11,2); lcd.print("Td "); lcd.print(Td,3); lcd.setCursor(10,3); lcd.print("stp "); lcd.print(Step,3); lcd.print(" "); Td=increase_decrease(Step); btnOk.read(); if(btnOk.wasPressed()){ lcd.setCursor(0,1); lcd.print(" "); //delay(200); if(y>=4) y=0; else y++; } switch(y){ case 0: Step=0.001; break; case 1: Step=0.01; break; case 2: Step=0.1; break; case 3: Step=1.00; break; case 4: Step=10.00; break; } } }
  • 55. 4 Penutup Demikian dokumen B400 ini dibuat, untuk berikutnya dokumen ini dapat dijadikan acuan untuk perancangan dan pengembangan alat bagi tahapan dan dokumentasi berikutnya.
  • 56. KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN POLITEKNIK NEGERI BANDUNG Jln. Gegerkalong Hilir, Ds. Ciwaruga, Bandung 40012, Kotak Pos 1234, Telepon (022) 2013789, Fax. (022) 2013889 Homepage :www.polban.ac.id Email : polban@polban.ac.id Lembar Sampul Dokumen B500 Judul Dokumen Dokumen B500: ā€œBalancing Bi-Copter dengan Kendali PIDā€ Jenis Dokumen B500 Nomor Dokumen B500 ā€“ 01 Nomor Revisi 01 Nama File 2B_NanjarSyabanul_SKDB500 Tanggal Penerbitan 16 Mei 2019 Unit Penerbit Nanjar Syabanul Fajar Jumlah Halaman Data Pengusul Pengusul Nama Jabatan Mahasiswa D ā€“ III Teknik Elektronika Nanjar Syabanul Fajar 171311059 Tanggal 16-05-2019 Tanda Tangan Lembaga Politeknik Negeri Bandung Alamat Jln. Gegerkalong Hilir, Ds. Ciwaruga Bandung 40012, Kotak Pos 1234, Telepon (022) 2013789, Fax. (022) 2013889 Telepon : 022-2013789 Faks : 022-2013889 Email : polban@polban.ac.id
  • 57. I Pengantar Dokumen B500 ini berisi mengenai desain system kendali pada Bicopter menggunakan pemodelan Ziegler Nichols Tipe 2 agar mendapatkan parameter kendali yaitu Kp, Ti, dan Td. 1.1 Ringkasan isi dokumen Dokumen ini terdiri dari 2 bagian: 1. Bab Pengantar Menjelaskan mengenai ringkasan isi dokumen, tujuan penulisan. Bab ini bertujuan untuk memudahkan pengerjaan proyek ini. 2. Desain Sistem Kendali Bab ini berisikan pembutan desain sistem.kendali PID menggunakan metode Ziegler Nichols Tipe 2. 1.2 Tujuan Penulisan dan Aplikasi/Kegunaan Dokumen Dokumen B500 ini bertujuan untuk : ā€¢ Dokumentasi proyek mandiri. ā€¢ Mencari parameter kendali.
  • 58. II Desain Sistem Kendali 2.1 Ziegler Nichols Tipe 2 Pada pemodelan dalam mendapatkan parameter kendali, terdapat beberapa metoda yang dapat digunakan contohnya seperti Ziegler-Nichols Tipe 1, Ziegler-Nichols Tipe 2, dan yang lainnya. Biasanya kendali posisi menggunakan metoda ini. Pada metode Ziegler-Nichols Tipe 2, untuk mendapatkan parameter kendali, system dibuat close-loop dan respon dibuat menjadi berosilasi yang berpola. Nilai Kp diatur agar respon dapat berosilasi dan nilai Ti dan Td di nol kan. Respon dibuat berosilasi untuk mendapatkan nilai Kcr dan Pcr. 2.2 Desain Kendali dari Respon Sistem Dibawah ini merupakan respon yang telah dibuat berosilasi dengan nilai gain / Kp / Kcr = 0.65. Gambar 1. Desain ZN-2 dari Respon Sistem Perlu diingat bahwa waktu yang ada di plotter bukanlah kontanta waktu asli, maka dari itu diperlukan perhitungan sebagai berikut :
  • 59. t asli t plotter Kt=t asli/ t plotter 10,32 225,087 0,045848938 Kt = t asli : t plotter Kt = 10,32 : 225,087 Kt = 0,045848938 Selanjutnya perhitungan Kcr dan Pcr. Kcr=K Pcr=L*Kt 0,34 0,710291754 Kcr = K Kcr = 0,34 Pcr = L x Kt Pcr = 15,492 x Kt Pcr = 0,710291754 detik Selanjutnya perhitungan Kp, Ti, dan Td. Kp=(0,6 * Kcr) Ti =(0,5 * Pcr) Td=(0,125 * Pcr) 0,204 0,355145877 0,088786469 Kp = 0,6 x Kcr Kp = 0,6 x 0,34 Kp = 0,204 Ti = 0,5 x Pcr Ti = 0,5 x 0,710291754 Ti = 0,355145877 Td = 0,125 x Pcr Td = 0,125 x 0,710291754 Td = 0,088786469
  • 60. 2.3 Hasil Desain Kendali Gambar 2. Respon Hasil Desain. Pada gambar diatas terdapat overshoot sehingga perlu tuning untuk memperbaiki respon tersebut. 3 Penutup Demikian dokumen B500 ini dibuat, untuk berikutnya dokumen ini dapat dijadikan acuan untuk perancangan dan pengembangan alat bagi tahapan dan dokumentasi berikutnya.
  • 61. KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN POLITEKNIK NEGERI BANDUNG Jln. Gegerkalong Hilir, Ds. Ciwaruga, Bandung 40012, Kotak Pos 1234, Telepon (022) 2013789, Fax. (022) 2013889 Homepage :www.polban.ac.id Email : polban@polban.ac.id Lembar Sampul Dokumen B600 Judul Dokumen Dokumen B600: ā€œBalancing Bi-Copter dengan Kendali PIDā€ Jenis Dokumen B600 Nomor Dokumen B600 ā€“ 01 Nomor Revisi 01 Nama File 2B_NanjarSyabanul_SKDB600 Tanggal Penerbitan 31 Mei 2019 Unit Penerbit Nanjar Syabanul Fajar Jumlah Halaman Data Pengusul Pengusul Nama Jabatan Mahasiswa D ā€“ III Teknik Elektronika Nanjar Syabanul Fajar 171311059 Tanggal 31-05-2019 Tanda Tangan Lembaga Politeknik Negeri Bandung Alamat Jln. Gegerkalong Hilir, Ds. Ciwaruga Bandung 40012, Kotak Pos 1234, Telepon (022) 2013789, Fax. (022) 2013889 Telepon : 022-2013789 Faks : 022-2013889 Email : polban@polban.ac.id
  • 62. I Pengantar Dokumen B600 ini berisi mengenai tuning parameter PID dan percobaan gangguan terhadap system. 1.1 Ringkasan isi dokumen Dokumen ini terdiri dari 2 bagian: 1. Bab Pengantar Menjelaskan mengenai ringkasan isi dokumen, tujuan penulisan. Bab ini bertujuan untuk memudahkan pengerjaan proyek ini. 2. Desain Sistem Kendali Bab ini berisi mengenai tuning parameter PID dan percobaan gangguan terhadap system. 1.2 Tujuan Penulisan dan Aplikasi/Kegunaan Dokumen Dokumen B600 ini bertujuan untuk : ā€¢ Dokumentasi proyek mandiri. ā€¢ Tuning parameter kendali. ā€¢ Mencoba gangguan pada plant.
  • 63. II Tuning dan Gangguan 2.1 Tuning Parameter Kendali Gambar 1. Respon Hasil Desain Kp Ti Td 0,204 0,355145877 0,088786469 Berdasarkan respon hasil desain ZN2, respon yang dihasilkan masih belum sempurna karena masih ada overshoot dan Error Steadystate, sehingga diperlukan tuning parameter PID. Pada proses tuning didasarkan terhadap table dibawah agar mendapatkan parameter yang baik. Tabel Pengaruh perubahan parameter terhadap respon Parameter Rise Time Overshoot Settling Time S-S Error Kp Berkurang Bertambah Minor Change Berkurang Ki Berkurang Bertambah Bertambah Menghilangkan Kd Minor Change Bertambah Berkurang Minor Change
  • 64. Setelah melakukan proses tuning didapatkan hasil akhir sebagai berikut: Kp = 1.05 Ti = 0.997 Td = 0.292 Gambar 2. Respon Hasil Tuning Berikut respon dari tuning akhir dengan setpoint kemiringan sudut 0Ā° Gambar 2. Respon Pada SV = 0Ā°
  • 65. Gambar 3. Respon Pada SV diubah-ubah Berdasarkan parameter hasil desain dan tuning akhir, Kp yang diubah menjadi 0,846 agar rise time berkurang. Ti yang diubah menjadi 0,355145877 pada saat error steady state dapat memberikan tenaga lebih untuk memperbaiki kemiringan. Td yang diubah menjadi 0.292 agas dapat mengurangi overshoot. 2.2 Percobaan Gangguan Setelah mendapatkan respon dan parameter yang baik, perlu adanya gangguan untuk menguji system kendalinya. Berikut respon hasil gangguan setelah respon berada pada steady state. Gambar 4. Percobaan Gangguan Pada gambar yang bertanda persegi merah merupakan hasil dari gangguan yang diberikan
  • 66. terhadap plant. Sistem dapat mencapai setpoint kembali dan berada pada steady state. 3 Penutup Demikian dokumen B600 ini dibuat, dokumen ini merupakan dokumen terakhir dari dokumentasi proyek mandiri.