SKRIPSI
KOSENTRASI TEKNIK KONTROL
Disusun Oleh:
MOHAMMAD SHIDDIQ PRATOMO
NIM. 145060301111038
Mahasiswa,
RINGKASAN
Kapal merupakan salah satu moda transportasi yang digunakan untuk keperluan jalur
perairan dan digunakan untuk berbagai kepentingan, baik transportasi barang, maupun
transportasi manusia. Akan tetapi kapal sering terkena gangguan berupa ombak yang
mengakibatkan guncangan dan mengurangi dari kenyamanan penumpang. Oleh karena itu
diperlukan alat penstabil kapal agar tidak oleng yaitu Fin stabilizer. Fin stabilizer adalah
suatu peralatan roll damping sistem yang dipasang pada lambung kanan dan kiri kapal
bagian bawah yang berfungsi untuk menjaga keseimbangan kapal. Untuk mengetahui
kemiringan kapal digunakan sensor MPU6050. Pada penelitian ini kontroler PID digunakan
untuk mengontrol Fin. Dari hasil pengujian menggunakan metode Handtuning didapat gain
yang digunakan pada penelitian ini yaitu Kp=30, Ki=0.02, dan Kd=10. Pada pengujian tanpa
gangguan didapat nilai overshoot sebesar 7.44% dan memiliki settling time sebesar 2.6 detik
dengan error steady sebesar 0 derajat dari kemiringan maksimal 30 derajat. Sedangkan pada
pengujian dengan diberikan tiga kali gangguan didapatkan nilai rata-rata settling time 3.69
detik, dan rata rata overshoot 8.82% dengan rata rata error steady sebesar 0.85 derajat dari
kemiringan maksimal.
Kata Kunci : Kapal, Fin stabilizer, kontroler PID,gerak rolling kapal.
xi
SUMMARY
Ships are one of the modes of transportation that are used for the purposes of waterways
and are used for various purposes, both transportation of goods and human transportation.
However, ships are often exposed to interference in the form of waves that cause shock and
reduce passenger comfort. Therefore, a ship stabilizer is needed so that it is not tilted,
namely the Fin stabilizer. Fin stabilizer is an equipment roll damping system that is mounted
on the right and left hulls of the lower part of the ship which serves to maintain the balance
of the ship. MPU6050 sensor is used to determine the slope of the ship. In this study the PID
controller is used to control Fins. From the test results using the Handtuning method, the
gain used in this study is Kp = 30, Ki = 0.02, and Kd = 10. In the test without interference,
the overshoot value is 7.44% and has a settling time of 2.6 seconds with a steady error of 0
degrees from a maximum slope of 30 degrees. Whereas in the testing given three times the
interference obtained the average settling time was 3.69 seconds, and the average overshoot
was 8.82% with a steady average error of 0.85 degrees of the maximum slope.
Keywords: Ship, Fin stabilizer, PID controller, rolling ship.
xii
i
PENGANTAR
Bismillahirrohmanirrohim. Alhamdulillah, puji dan syukur penulis panjatkan kepada
Allah SWT, karena atas segala petunjuk dan nikmat-Nya lah skripsi ini dapat diselesaikan.
Skripsi berjudul “RANCANG BANGUN SISTEM STABILIZER ROLLING KAPAL
PENUMPANG MENGGUNAKAN FIN STABILIZER DENGAN KONTROLLER PID ” ini
disusun untuk memenuhi persyaratan memperoleh gelar Sarjana Teknik di Jurusan Teknik
Elektro Universitas Brawijaya.
Penulis menyadari bahwa dalam penyusunan skripsi ini tidak terlepas dari bantuan
berbagai pihak. Oleh karena itu, dengan ketulusan dan kerendahan hati penulis
menyampaikan terima kasih kepada:
1. Kedua orang tua yang selalu menjadi motivator dalam pengerjaan skripsi ini.
2. Saudara-saudara saya di Pekalongan yang selalu memberi motivasi untuk bisa
mempercepat pengerjaan skripsi ini.
3. Bapak Ir. Hadi Suyono, S.T., M.T., Ph.D., IPM. selaku Ketua Jurusan Teknik Elektro
Fakultas Teknik Universitas Brawijaya.
4. Ibu Ir. Nurussa’adah, M.T. selaku Sekretaris Jurusan Teknik Elektro Fakultas Teknik
Universitas Brawijaya.
5. Bapak Ali Mustofa, S.T., M.T. selaku Ketua Program Studi Sarjana Jurusan Teknik
Elektro Fakultas Teknik Universitas Brawijaya.
6. Bapak Ir. Purwanto, M.T. selaku Ketua Kelompok Dosen Konsentrasi Teknik Kontrol
Jurusan Teknik Elektro Fakultas Teknik Universitas Brawijaya, serta sebagai
pembimbing saya yang memberikan pengarahan saran dan kritik selama proses
pengerjaan skripsi.
7. Segenap dosen pengajar dan staff administrasi Jurusan Teknik Elektro Fakultas Teknik
Universitas Brawijaya.
8. Sahabat-sahabat arek kontrakan (Reza, Ajib, Aldi, Ardi, Hasyim, Ulum) dalam
memberikan semangat dalam pengerjaan skripsi.
9. Teman-teman sebimbingan dan seperjuangan Pangky, Aldi rizaldi, Iqbal kurniawan atas
motivasi yang telah diberikan.
10. Meilan Sarbaini, Oktarudin, Alfian dalam memberikan saran, dan bantuannya dalam
pengerjaan skripsi.
11. Teman teman dolan Agus, Arifin surya, Dhani dalam memberikan semangat sewaktu
skripsian.
12. Teman-teman Konsentrasi Teknik Kontrol Universitas Brawijaya.
ii
Penulis
iii
DAFTAR ISI
PENGANTAR ....................................................................................................................... i
DAFTAR ISI ....................................................................................................................... iii
DAFTAR GAMBAR .......................................................................................................... iv
DAFTAR TABEL ................................................................................................................ v
BAB I PENDAHULUAN .................................................................................................... 1
1.1 Latar belakang ...................................................................................................... 1
1.2 Rumusan Masalah ................................................................................................ 2
1.3 Batasan Masalah ................................................................................................... 2
1.4 Tujuan .................................................................................................................... 2
1.5 Manfaat .................................................................................................................. 3
1.6 Sistematika Penulisan ........................................................................................... 3
BAB II TINJAUAN PUSTAKA ......................................................................................... 4
2.1 Fin Stabilizer .......................................................................................................... 4
2.2 Kapal ...................................................................................................................... 5
2.2.1 Kapal Niaga dan Komersi ............................................................................. 5
2.2.2 Kapal perang .................................................................................................. 6
2.2.3 Kapal kapal khusus ....................................................................................... 6
2.3 Motor DC servo ..................................................................................................... 7
2.4 Gelombang air laut ............................................................................................... 8
2.5 Mikrokontroller Arduino UNO ......................................................................... 10
2.6 Sensor MPU 6050 ................................................................................................ 11
2.7 Kontroler PID...................................................................................................... 12
BAB III METODE PENELITIAN ................................................................................... 14
3.1 Menentukan spesifikasi desain .......................................................................... 14
3.2 Perancangan Blok Diagram Sistem ................................................................... 14
3.3 Perancangan dan Pembuatan Perangkat Keras (Hardware) .......................... 15
3.3.1 Perancangan pembuatan kapal dan Fin Stabilizer ................................... 15
3.3.2 Perancangan Pembuatan Akuarium ......................................................... 16
3.4 Perancangan algoritma ...................................................................................... 16
3.4.1 Flowchart keseluruhan................................................................................ 16
3.4.2 Flowchart program...................................................................................... 17
3.5 Menentukan parameter dari PID ...................................................................... 18
3.5.1 Pengaturan nilai Kp .................................................................................... 19
3.5.2 Pengaturan nilai Kp,Kd .............................................................................. 21
iv
DAFTAR GAMBAR
Gambar 2.1 Fin stabilizer pada kapal.................................................................................4
Gambar 2.2 Bentuk Fin stabilizer .......................................................................................5
Gambar 2.3 Motor DC servo ...............................................................................................8
Gambar 2.4 Arduino Uno ..................................................................................................11
Gambar 2.5 Sensor MPU6050 ...........................................................................................12
Gambar 3.1 Blok diagram kapal ......................................................................................15
Gambar 3.2 Flowchart keseluruhan alat dan perhitungan PID ....................................17
Gambar 3.3 Flowchart program .......................................................................................18
Gambar 3.4 Grafik Respon untuk Kp=20 .......................................................................19
Gambar 3.5 Grafik Respon untuk Kp=25 .......................................................................20
Gambar 3.6 Grafik Respon untuk Kp=30 .......................................................................20
Gambar 3.7 Grafik respon untuk Kp=30, Ki=0.1 ...........................................................21
Gambar 3.8 Grafik respon untuk Kp=30, Ki=0.02 .........................................................22
Gambar 3.9 Grafik respon untuk Kp=30, Ki=0.08 .........................................................22
Gambar 3.10. Grafik respon untuk Kp=30, Ki=0.02, Kd=1 ..........................................23
Gambar 3.11. Grafik respon untuk Kp=30, Ki=0.02, Kd=5 ..........................................23
Gambar 3.12 Grafik respon untuk Kp=30, Ki=0.02,dan Kd=10 ...................................24
Gambar 3.13 Grafik pengujian sensor MPU 6050 ..........................................................25
Gambar 3.14 Grafik pengujian motor DC servo kanan .................................................27
v
DAFTAR TABEL
Tabel 2.1 spesifikasi servo…………...…...………………..………………………………7
Tabel 2.2 Spesifikasi Arduino UNO.……………….……………………………..……...10
Kapal penumpang merupakan salah satu alat transportasi antar pulau, masyarakat sering
menggunakannya sebagai komoditas transportasi utama karena selain dapat mengangkut
pennumpang juga bisa mengangkut kendaraan bermotor. Tentunya kondisi ini memerlukan
suatu suasana yang nyaman karena banyak sekali gangguan seperti salah satunya gerak oleng
dari kapal itu sendiri yang disebabkan oleh ombak, angin, arus air laut dan lain sebagainya.
Faktor ini tentunya juga secara tidak langsung mempengaruhi keamanan dari penumpang itu
sendiri.
Pada dinamika kapal gerak translasi dibagi menjadi tiga yaitu surge, sway dan heave.
Sedangkan gerak rotasi dibagi menjadi tiga yaitu roll, pitch, dan yaw (Fossen, 2011). Kapal
sangat membutuhkan pergerakan yang stabil saat di laut. Pergerakan tersebut mempengaruhi
kenyamanan bagi penumpang, semakin stabil kapal tersebut maka akan semakin kecil juga
guncangan yang dirasakan oleh penumpang. Sistem fin merupakan aktuator untuk
mengendalikan heading kapal saat beroperasi dan mengurangi sudut roll kapal. Salah satu
factor yang mempengaruhi sudut roll kapal yaitu ombak dan arus air.
Pada masa ini banyak modifikasi dan perlakuan yang dilakukan terhadap sebuah kapal
demi memenuhi kebutuhan tersebut.Salah satu modifikasi yang dilakukan adalah dengan
adanya penambahan fins pada area dibawah lambung kapal, penambahan pada bagian ini
dilakukan dengan tujuan mengarahkan aliran fluida dibawah lambung kapal yang mengarah
pada propeller kapal lebih selaras. Penambahan Fins diharapkan mampu memperkecil
tahanan viskos kapal, sehingga mampu membuat kapal lebih seimbang dan mengurangi
1
2
guncangan yang diakibatkan oleh ombak. Pemilihan fin stabilizer digunakan karena untuk
efisiensi tempat didalam kapal. Jika menggunakan sistem balas maka tempat didalam kapal
semakin sempit. Stabilitas rolling kapal merupakan kemampuan sistem dalam merespon
gangguan untuk berusaha kembali ke keadaan normal. Untuk meredam gerakan oleng
digunakan alat yang dapat menjaga stabilitas kapal (Dontiawan,2012).
Metode yang digunakan adalah metode PID karena pengontrolan fin menggunakan
motor DC servo serta lebih tahan terhadap gangguan luar serta dapat diterapkan dalam
kondisi operasi yang bervariasi. Tetapi pengontrol PID perlu ditala secara benar yaitu
menentukan harga konstanta pengontrol proporsional, integral dan derivatif yang
mengoptimalkan kinerja sistem. Setelah tiga parameter tersebut ditala, maka nilai parameter
pengontrol tersebut pada PID biasanya dipertahankan tetap selama proses pengontrolan.
Tujuan yang ingin dicapai dari penulisan penelitian ini adalah menentukan besar
parameter kontroler PID yang optimal pada pengontrolan fin stabilizer, sehingga didapat fin
yang bekerja secara otomatis dalam menyeimbangkan kapal secara cepat.
3
1.5 Manfaat
Manfaat dari hasil penelitian ini adalah sebagai berikut:
1. Dapat meningkatkan keseimbangan kapal.
2. Dapat mengurangi guncangan yang terjadi pada kapal.
3. Dapat mengontrol keseimbangan kapal secara cepat.
Sistematika penulisan digunakan dalam penyusunan penelitian ini adalah sebagai berikut:
BAB I: PENDAHULUAN
Bab ini berisikan latar belakang masalah, rumusan masalah, tujuan penulisan,
batasan masalah, metode penulisan, dan sistematika penulisan.
BAB II: TINJAUAN PUSTAKA
Bab ini berisi teori yang digunakan untuk penelitian dan untuk mendukung
permasalahan yang diteliti.
BAB III: METODE PENELITIAN
Berisi tahapan penyeleseian penelitian ini yang meliputi studi literature,
spesifikasi alat alat, perencanaan blok diagram sisitem, Perancangan dan Pembuatan
Perangkat Keras (Hardware), Perancangan algoritma, dan Rencana kegiatan.
BAB IV: HASIL DAN PEMBAHASAN
Berisi pengujian dan pengambilan data hasil perancangan alat yang kemudian
digunakan untuk analisis.
BAB V: KESIMPULAN DAN SARAN
Berisi kesimpulan dari analisis hasil peneltian serta saran untuk penelitian
selanjutnya.
BAB II
TINJAUAN PUSTAKA
Fin stabilizer adalah suatu peralatan roll damping sistem yang dipasang pada lambung
kanan dan kiri kapal bagian bawah yang berfungsi untuk menjaga keseimbangan kapal pada
saat kapal berada di atas air dan bekerjanya berdasarkan prinsip pengontrolan posisi fin. Fin
stabilizer digunakan untuk mengatur aliran fluida di bawah lambung kapal dengan tujuan
mengarahkan aliran fluida bawah lambung kapal agar terpusat dan menuju ke propeller
dengan sempurna untuk menambah gaya dorong yang dihasilkan oleh kapal
(Jokosusilo.2013).
Fin stabilizer bekerja berdasarkan kecepatan kapal, dan amplitudo oleng kapal. Namun
pada penelitian ini kami hanya mengamati kapal dalam keadaan diam dengan
memperhatikan sudut kemiringan yang dipengaruhi oleh gelombang air laut. Pada saat
amplitudo oleng kapal tinggi maka sudut fin stabilizer akan besar dan bila amplitudo oleng
kapal rendah maka sudut fin stabilizer juga harus kecil. Amplitudo oleng kapal selalu
berubah-ubah sehingga sudut fin stabilizer juga harus berubah mengikuti perubahan
keduanya. Data amplitudo dan periode oleng kapal dihasilkan oleh rate gyro yang
terintegrasi langsung dengan sistem hidrolik dan mekanik dari fin stabilizer
(Johansyah,2011). Sistem fin stabilizer aktif terdiri dari sepasang pada sisi kanan dan kiri
kapal. Jika gerak kapal mengarah kekiri maka fin kapal bagian kiri akan bergerak ke atas dan
fin bagian kanan akan bergerak ke bawah, begitu juga sebaliknya dan fin akan kembali
normal ketika kapal dalam keadaan stabil tidak oleng (Kartikasari,2010).
4
5
Sumber: https://www.researchgate.net/figure/Principle-of-zero-speed-fin-
stabilizer_fig25_272370747
2.2 Kapal
Kapal, adalah kendaraan pengangkut penumpang dan barang di laut (sungai dsb)
seperti halnya sampan atau perahu yang lebih kecil. Kapal biasanya cukup besar untuk
membawa perahu kecil seperti sekoci. Sedangkan dalam istilah inggris, dipisahkan
antara ship yang lebih besar dan boat yang lebih kecil. Secara kebiasaannya kapal
dapat membawa perahu tetapi perahu tidak dapat membawa kapal. Ukuran sebenarnya
dimana sebuah perahu disebut kapal selalu ditetapkan oleh undang-undang dan peraturan
atau kebiasaan setempat (Sumaryanto.2013).
Pada dinamika kapal terdapat enam macam gerakan yang terjadi pada kapal saat dilautan.
Enam gerakan kapal tersebut dibagi menjadi dua macam yaitu translasi dan rotasi. Gerakan
transalasi dibagi menjadi tiga yaitu surge, sway, dan heave. Sedangakan gerakan rotasi dbagi
menjadi tiga yaitu roll, pitch dan yaw.
Saat ini terdapat banyak jenis kapal. Jenis kapal dibedakan berdasarkan fungsinya.
Diantaranya yaitu:
Yang termasuk sebagai kapal niaga dan komersil antara lain adalah kapal angkut,
kapal penumpang, kapal ikan dan kapal tunda. Kapal angkut biasa berupa kapal cargo,
kapal container, maupun semi kontainer (perpaduan antara kapal cargo dan kontainer),
kapal feri dan juga kapal tangker.
6
Kapal tunda adalah kapal kecil yang beroperasi di pelabuhan guna membantu
maneuver kapal-kapal besar yang akan bersandar maupun berlabuh di pelabuhan,
meskipun kecil kapal tunda memiliki daya dorong yang besar agar mampu mengarahkan
kapal-kapal yang akan bersandar.
Untuk kapal tangker, cargo dan kapal ikan kenyamanan tidak menjadi pertimbangan.
Berbeda halnya dengan kapal penumpang, kenyamanan dan kemewahan kadang
diperlukan demi memuaskan para penumpang. Lain dari itu kapal penumpang harus
memiliki kemampuan bertahan hidup pada situasi darurat.
Kapal perang diklasifikasi menjadi beberapa tipe antara lain kapal tempur, patroli,
kapal pendukung. Ada juga kapal perang yang dibuat secara khusus seperti kapal induk
yang mengangkut pesawat dalam jumlah besar, helicopter, tank dan peralatan tempur
lainnya. Kapal lain yang dirancang secara khusus antara lain kapal peluncur peluru
kendali, kapal penghancur dan kapal selam. Hal yang penting diperhatikan dalam
mendesign kapal perang antara lain:
ke bawahan).
Kecepatan menjadi penting karena kapal perang harus mampu bersaing dalam
pengejaran maupun melepaskan diri dari musuh. Sedangkan maneuver diperlukan
dalam hal kontak senjata. Untuk itu sistem penggerak kapal harus memenuhi kebutuhan
ini.
Kapal yang mempunyai tugas khusus, artinya bukan untuk pengangkutan, disebut
juga sesuai dengan tugas pekerjaan yang dilaksanakan. Berikut ini adalah jenis jenis
kapal khusus:
4. Kapal Peneliti
t = ukuran waktu
Persamaan ini ditunjukkan secara grafis yaitu kurva sinus. Kami menganggap gelombang
sinusoidal pertama yang merupakan gelombang yang dapat diwakili oleh sebuah kurva sinus
atau kosinus. Persamaan kurva ini ditulis sebagai
𝜁 = 𝜁𝑎 sin 𝑘𝑥 (2.3)
Dimana
9
2𝜋
𝑘 = 𝐿 , diketahui sebagai nomor gelombang
𝑤
Jadi
2𝜋
𝜁 = 𝜁𝑎 sin 𝐿 𝑥 (2.4)
𝑤
Perlu diperhatikan bahwa, kurva yang digambarkan adalah bentuk yang stasioner dan tidak
bergerak maju seperti gelombang progresif dalam air.
Tanpa menempatkan batasan besarnya kedalaman air, h, relatif terhadap panjang
gelombang, gelombang sinusoidal telah dipelajari dan kecepatan gelombang (dikenal juga
sebagai fase kecepatan atau celeritas) telah ditemukan.
𝑔𝐿𝑤 2𝜋ℎ
𝑉𝑤 = tanh (2.5)
2𝜋 𝐿𝑤
Dimana Vw adalah kecepatan gelombang atau seleritas, Lw adalah panjang gelombang, dan
h adalah kedalaman air.
Jika kedalaman kedalaman air sangat jauh lebih kecil dari pada panjang gelombangnya
(h/Lw →0) maka,
2𝜋ℎ 2𝜋ℎ
tan ℎ → = 𝑘ℎ (2.6)
𝐿𝑤 𝐿𝑤
Persamaan 2.8 menunjukkan Tidak seperti gelombang air dangkal, gelombang air dalam
merambat pada kecepatan tergantung pada panjangnya. Seperti yang kita ketahui
sebelumnya, panjang gelombang diukur dari puncak ke puncak. Jika Tw adalah waktu yang
dibutuhkan untuk sebuah partikel pada puncak tertentu untuk mencapai puncak berikutnya,
maka
𝐿𝑤 = 𝑉𝑤 𝑇𝑤 (2.9)
Atau
10
2𝜋𝐿𝑤
𝑇𝑤 = √ (2.10)
𝑔
= 𝜁𝑎 cos(𝑘𝑥 − 𝜔𝑤 𝑡)
Sumber: https://www.marineinsight.com/naval-architecture/roll-stabilization-systems/
MPU 6050 adalah berupa sensor untuk menentukan orientasi gerak dengan bertumpu
pada roda atau cakram yang berotasi dengan cepat pada sumbu. MPU 6050 sensor bisa
mendeteksi gerakan sesuai gravitasi, MPU 6050 pada penelitian ini digunakan untuk
mengukur sumbu kemiringan kapal. Sebelum digunakan, sensor MPU 6050 terlebih dahulu
dilakukan proses kalibrasi dengan menggunakan bandul. Proses kalibrasi tersebut berfungsi
untuk memperoleh nilai faktor kalibrasi. MPU 6050 memiliki keluaran berupa kecepatan
sudut dari arah 3 sumbu yaitu: sumbu x yang nantinya akan menjadi sudut phi (kanan dan
kiri) dari sumbu y nantinya menjadi sudut theta (atas dan bawah), dan sumbu z nantinya
menjadi sudut psi (depan dan belakang).
Sumber: https://www.robotistan.com/mpu6050-6-axis-acceleration-and-gyro-sensor-6-dof-
3-axis-accelerometer-and-gyros
Jika e(t) adalah masukan ke alat kontrol PID, keluaran u(t) dari alat kontrol ini adalah
1 𝑡 𝑑𝑒(𝑡)
𝑢(𝑡) = 𝐾𝑝 [𝑒(𝑡) + 𝑇 ∫−∞ 𝑒(𝑡)𝑑𝑡 + 𝑇𝑑 ] (2.13)
𝑖 𝑑𝑡
Konstanta-konstanta Kp,Ti,Td adalah parameter parameter alat kontrol persamaan (6.1) juga
dapat dituliskan sebagai
𝐾𝑖
𝐺𝑐 𝑠 = 𝐾𝑝 + + 𝐾𝑑 𝑠
𝑠
Dalam hal ini Kp,Ki,Kd menjadi parameter parameter alat kontrol. Proses pemilihan
parameter parameter alat kontrol agar menghasilkan spesifikasi kerja disebut penyepadanan
alat kontrol (controller tuning) (Ogata.1997).
BAB III
METODE PENELITIAN
Skripsi ini adalah perancangan sistem kontrol pada fin stabilizer kapal menggunakan
metode PID. Untuk menyelesaikan rumusan masalah dan merealisasikan tujuan dari skripsi
ini maka diperlukan langkah untuk menyelesaikan masalah tersebut. Adapun langkah
tersebut adalah:
Berdasarkan spesifikasi desain dan spesifikasi alat yang telah ditentukan sebelumnya,
maka dapat dibuat blok diagram sistem yang dapat menjabarkan sistem secara garis besar.
Blok diagram sistem dapat dilihat pada Gambar 3.1.
14
15
3. Plant adalah objek fisik yang di kontrol dalam sistem berupa Kapal dan Fin.
Pada blok diagram gambar 3.1 terlihat blok diagram kendali yang digunakan dalam
penelitian ini dimana pemberian input berupa error dari set point dikurangi dengan sudut
yang dibaca oleh sensor MPU6050. Error tersebut kemudian menjadi input dari perhitungan
PID, yang mana output perhitungan PID berupa nilai tegangan dan PWM yang akan menjadi
nilai manipulasi untuk gerak motor DC servo sebagai aktuator utama alat untuk
menyeimbangkan kapal. Kemudian sensor membaca sudut dari kemiringan kapal setelah
servo bergerak sebelumnya hal ini menjadi nilai feedback dari sistem dimana PID akan
menghitung lagi nilai hingga error yang didapat menjadi 0 sesuai dengan setpoint.
1. Panjang Kapal: 43 cm
2. Lebar Kapal: 15 cm
3. Tinggi Kapal: 13 cm
4. Lebar Fin: 3 cm
5. Panjang Fin: 5 cm
6. Tinggi Fin: 0,5 cm
3.3.2 Perancangan Pembuatan Akuarium
Pada prosedur disini akan dibahas langkah-langkah yang dilakukan dalam
pembuatan Miniatur Pembangkit Gelombang Laut (Ombak). Wadah yang
digunakan yaitu akuarium sebagai miniatur gelombang air laut, dimana akuarium
ini dibuat sendiri dan spesifikasinya ditentukan sendiri, diantaranya:
1. Bahan yang digunakan adalah kaca.
2. Ukuran akuarium Panjang 55 cm, lebar 40 cm, tinggi 30 cm
3.4 Perancangan algoritma
Perancangan perangkat lunak (software) dibutuhkan agar mikrokontroler dapat
mengendalikan sistem sesuai dengan yang diharapkan. Desain algoritma yang akan
diterapkan ke dalam mikrokontroler Arduino UNO.
Proses diawali dengan pembacaan dari sensor MPU6050 untuk mengetahui sudut
kemiringan kapal, kemudian data berupa sudut dikirimkan ke mikrokontroller yang
kemudian diolah agar disesuaikan dengan aktuator yang nantinya akan mengubah sudut
kemiringan dari kapal agar bisa menjadi seimbang.
3.4.1 Flowchart keseluruhan
Gambar 3.2 merupakan flowchart sistem secara keseluruhan yang juga berkaitan
dengan flowchart program pada software Arduino.
17
Start
start
Baca SP
Init error,
Kp,Ki,Kd
dan sudut
Hitung
Hitung error
PID
FIN Program
bergerak PID
Pengiriman
Selesai
data
Flowchart gambar 3.2 merupakan alur kerja alat secara keseluruhan dimana pembacaan
setpoint dan feedback sudut akan diteruskan sebagai input dari PID. Kemudian input tersebut
dihitung pada program PID dengan Kp,Ki,dan Kd yang telah ditentukan terlebih dahulu dan
hasil dari perhitungan PID tersebut akan menggerakkan fin stabilizer.
Flowchart program merupakan alur kerja dari program yang digunakan pada
penelitian ini yang ditunjukkan pada gambar 3.3.
18
start
Hitung Hitung
PID PID
Dapat dilihat pada flowchart gambar 3.3 program berjalan diawali dengan
pembacaan sensor, ketika keadaan kapal miring kekanan maka fin bagian kanan
bergerak ke atas dan fin kiri bergerak kebawah begitu juga sebaliknya. Sensor akan
mendeteksi berapa derajat kemiringan kapal yang kemudian dikurangi dengan setpoint
yang nantinya menjadi input dari PID. PID akan menghitung input error beserta nilai
Kp,Ki,Kd yang sebelumnya sudah ditentukan terlebih dahulu. Hasil dari perhitungan
PID akan menentukan berapa besar gerak yang diperlukan fin stabilizer untuk bergerak
guna menyeimbangkan kapal.
Dengan menggunakan metode hand tuning nilai parameter PID perlu diubah ubah secara
trial and error agar respon yang diperoleh sesuai dengan yang diinginkan. Proses tuning PID
ini dilakukan dengan cara menaikkan nilai Kp hingga didapatkan respon sistem yang cepat.
Untuk nilai Kp= 20, Ki=0, dan Kd=0 diperoleh grafik seperti pada gambar 3.4
Untuk nilai Kp=25, Ki=0, dan Kd=0 diperoleh grafik sperti pada gambar 3.5
20
Untuk nilai Kp=30, Ki=0,dan Kd=0 diperoleh grafik sperti pada gambar 3.6
Pada tuning ini dipilih Kp sebesar 30 karena memiliki respon yang paling cepat serta
sedangkan pada tuning nilai Kp diatas 30 menimbulkan error semakin besar, serta nilai
Kp=30 memiliki waktu steady (ts) yang relative cepat yaitu 1.3 detik.
Untuk nilai Kp=30, Ki=0, dan Kd=1 diperoleh grafik sperti pada gambar 3.7
Untuk nilai Kp=30, Ki=0, dan Kd=5 diperoleh grafik sperti pada gambar 3.8
607.9−553
Grafik gambar 3.8 memiliki 𝑀𝑝 = × 100% = 9.92% dan ts sebesar 4 detik
553
Untuk nilai Kp=30, Ki=0,dan Kd=10 diperoleh grafik sperti pada gambar 3.9
Pada tuning ini nilai Kd= 10 dipilih karena nilai lebih besar dari 10 maka respon akan
mengalami noise atau gangguan sehingga membuat respon gerak dari fin stabilizer
terganggu/ tersendat, sedangkan pada sistem ini diperlukan gerak fin yang lancar agar dapat
menyeimbangkan dengan maksimal. Untuk nilai Kd yang lebih kecil dari 1 didapat respon
yang kurang dapat meredam overshoot. Nilai Kd=10 dipilih juga karena memiliki ts yang
paling cepat yaitu 3 detik.
Untuk nilai Kp=30, Ki=0.02,dan Kd=10 diperoleh grafik sperti pada gambar 3.10
23
Untuk nilai Kp=30, Ki=0.08, dan Kd=10 diperoleh grafik sperti pada gambar 3.11.
Untuk nilai Kp=30, Ki=0.1, dan Kd=10 diperoleh grafik sperti pada gambar 3.12
24
Pada hasil tuning kontroler Kp,Ki,Kd ini dipilih nilai Kp=30, Ki=0.02,dan Kd=10
karena pada nilai kontroler tersebut memiliki respon yang paling baik karena dapat meredam
overshoot hingga sekecil mungkin serta memiliki error steady state yang kecil. Pada tuning
ini dipilih nilai Ki sebesar 0.02 karena memiliki overshoot yang kecil dibandingkan nilai
yang lain,serta tidak mempunyai error steady state. Nilai tersebut juga memiliki respon yang
paling cepat karena semakin besar nilai Ki maka respon akan semakin lambat. Pada dasarnya
semakin besar nilai Ki akan memperbaiki nilai error steady yang ada, akan tetapi pada
skripsi ini dibutuhkan respon yang cepat pada fin agar dapat menyeimbangkan kapal,
dikarenakan pada nilai Ki yang lebih besar dari 0.1 akan memperlambat respon gerak dari
fin stabilizer maka semakin kecil nilai Ki maka respon dari fin akan semakin cepat
pula.sedangkan untuk nilai yang kurang dari 0.02 sistem tersebut kurang bisa untuk
memperbaiki error steady state yang ada.
dengan membaca hasil pembacaan sudut yang dilakukan MPU6050 dengan tegangan
yang diukur dengan menggunakan voltmeter yang kemudian didapat nilai Gain Steady
state. Hasil pengujian ditunjukkan pada table 3.1.
Dari tabel 3.1 diperoleh grafik pembacaan antara sudut dengan sudut tegangan
seperti pada gambar 3.13
Pengujian motor dc Servo ini dilakukan untuk mengetahui output sudut motor dc
servo yang dihasilkan, dengan masukannya berupa pulse sehingga dapat diketahui
sudutnya yang diukur dengan busur. Berdasarkan datasheet dari motor dc servo HITEC
HS-322 pulse yang dibutuhkan untuk menggerakkan servo yaitu 533-2200 antara rentang
sudut 0-180 dengan begitu didapat untuk menggerakkan sudut sebesar 1 derajat
membutuhkan pertambahan pulsa sebesar 9.15. Berikut tabel hasil pengujian motor DC
servo bagian kanan ditunjukkan pada tabel 3.2.
Tabel 3.2 Hasil pengujian karakterisasi motor DC servo kanan
No pulse Sudut Sudut Error
servo nyata
1 553 0 0 0
2 644.5 10 10 0
3 736 20 20 0
4 827.5 30 30 0
5 919 40 40 0
6 1010.5 50 50 0
7 1102 60 60 0
8 1193.5 70 70 0
9 1285 80 80 0
10 1376.5 90 90 0
11 1468 100 100 0
12 1559.5 110 112 2
13 1651 120 121 1
14 1742.5 130 130 0
15 1834 140 141 1
16 1925.5 150 152 2
17 2017 160 162 2
18 2108.5 170 170 0
19 2200 180 180 0
27
Dari tabel 3.2 diperoleh grafik hubungan antara sudut (derajat) dengan pulse disertai
dengan perbandingan antara sudut nyata dan sudut servo seperti pada gambar 3.14.
Berikut tabel hasil pengujian motor DC servo bagian kiri yang ditunjukkan pada
tabel 3.3.
Dari tabel 3.3 diperoleh grafik hubungan antara sudut (derajat) dengan pulse disertai
dengan perbandingan antara sudut nyata dan sudut servo seperti pada gambar 3.15.
Dari pengujian karakteristik dari kedua servo berdasarkan tabel 3.2 dan tabel 3.3
dapat diambil kesimpulan bahwa servo tersebut identik dan hampir sama antara kanan dan
kiri, meskipun dari pengujian servo kiri lebih baik dari kanan karena servo kiri memiliki
error yang kecil.
BAB IV
HASIL DAN PEMBAHASAN
Pengujian sistem secara keseluruhan dilakukan untuk mengetahui kerja dari perangkat
keras dan perangkat lunak serta respon aktuator terhadap kemiringan kapal dalam
menyeimbangkannya pada kondisi ideal. Hal ini dilakukan dengan menetapkan setpoint 0
derajat atau dalam keadaan tegak, kemudian error didapat dengan pembacaan kemiringan
sensor MPU 6050 sebagai input dari kontroler PID.
Pengujian ini dilakukan dengan mengamati kondisi kapal yang menggunakan kontroller
dengan kondisi awal kapal bergerak dan tanpa diberi gangguan berupa ombak serta
menggunakan gain Kp=30,Ki=0.02,Kd=10. Kemudian kapal diamati waktu untuk mencapai
keadaan steady. Kapal digerakkan kearah kiri agar kapal dapat melakukan gerakan rolling.
Pada kondisi ideal ini keadaan permukaan air tenang dan tidak bergelombang. Berikut hasil
pengujian ditunjukkan pada gambar 4.1
594.175−553
Pada pengujian ini didapat 𝑀𝑝 = × 100% = 7.44% dan memiliki ts sebesar 2.6
553
detik. Dapat dilihat pada grafik diatas kapal dapat menyeimbangkan kembali setelah
diimiringkan terlebih dahulu selama kurang lebih 2.6 detik untuk mencapai keadaan steady/
seimbang, dengan error steady sekitar 0 derajat.
4.2 Pengujian dengan gangguan
Pada pengujian ini kapal diberi gangguan berupa ombak dan kemudian diamati waktu
yang dibutuhkan agar mencapai keadaan steady kembali. Pada pengujian ini ombak
diberikan dengan keadaan acak dengan pengujian 3 kali serta menggunakan gain
Kp=30,Ki=0.02, dan Kd=10.
Pengujian ini dilakukan sama dengan pengujian sebelumnya yaitu kapal diberi
gangguan ombak secara acak. Kapal akan didiamkan dalam kondisi awal
dimiringkan terlebih dahulu yang kemudian diberi gangguan berupa ombak atau
gelombang air sehingga menyebabkan kapal melakukan gerakan rolling. Kemudian
kapal akan diamati waktu yang dibutuhkan untuk mencapai keadaan steady. Berikut
hasil hasil dari pengujian pertama ditunjukkan pada gambar 4.3.
589.6−553
Pada pengujian kedua ini didapat 𝑀𝑝 = × 100% = 6.61% dan memiliki
553
Pada pengujian ketiga perlakuan yang dilakukan kepada kapal sama seperti
sebelumnya, kapal diberikan gangguan gelombang air secara acak. Kapal akan
didiamkan dalam kondisi awal dimiringkan terlebih dahulu yang kemudian diberi
gangguan berupa ombak atau gelombang air sehingga menyebabkan kapal
melakukan gerakan rolling. Kemudian kapal akan diamati waktu yang dibutuhkan
untuk mencapai keadaan steady. Berikut hasil hasil dari pengujian pertama
ditunjukkan pada gambar 4.4.
Dari ketiga pengujian dengan menggunakan gangguan berupa gelombang air acak dapat
dilihat kapal mempunyai waktu steady rata rata 3.69 detik, dengan rata rata error steady
sebesar 0.85 derajat dan rata rata overshoot sebesar 8.82%.
BAB V
PENUTUP
5.1 Kesimpulan
Dari perancangan, pengujian dan pengamatan yang telah dilakukan dapat diambil
kesimpulan sebagai berikut:
1. Dari respon sistem yang diperoleh dari pengujian dengan menggunakan metode
Hand tuning, parameter kontroler PID didapat dengan nilai Kp=30, Ki=0.02, dan
Kd=10.
2. Pada pengujian tanpa gangguan dengan menggunakan kontroler PID didapat nilai
overshoot sebesar 7.44%, memiliki ts sebesar 2.6 detik, dan dengan error steady 0
derajat. Sedangkan pada pengujian dengan gangguan gelombang air acak dengan
kontroler PID didapat waktu steady rata rata 3.69 detik, dengan rata rata error steady
sebesar 0.85 derajat dan rata rata overshoot sebesar 8.82%.
3. Fin stabilizer pada skripsi ini telah berhasil dibuat dengan menggunakan sensor
MPU6050 dan motor DC servo hitec hs322. Fin stabilizer dapat menyeimbangkan
kapal meski diganggu menggunakan kontroler PID. Respon kapal juga sesuai dengan
yang diinginkan meskipun masih ada overshoot, tetapi waktu yang dibutuhkan fin
untuk menyeimbangkan kapal cukup singkat yaitu sekitar 3.69 detik.
5.2 Saran
Pada perancangan dan pembuatan alat ini masih terdapat kelemahan, untuk memperbaiki
kinerja alat dan pengembangan lebih lanjut disarankan beberapa hal sebagai berikut:
33
34
DAFTAR PUSTAKA
LAMPIRAN 1
Foto alat
36
37
LAMPIRAN 2
Listing program dan data
38
#define RESTRICT_PITCH // Comment out to restrict roll to ±90deg instead - please read:
http://www.freescale.com/files/sensors/doc/app_note/AN3461.pdf
#define RESTRICT_YAW
float PWMOutput;
int error;
float PID, pwmLeft, pwmRight, previous_error;
float elapsedTime, time, timePrev;
float rad_to_deg = 180/3.141592654;
float desired_angle = 0;//I am setting it to move through 100 degrees
float pid_p=0;
float pid_i=0;
float pid_d=0;
float changeError = 0;
float totalError = 0;
float pidTerm = 0;
/* IMU Data */
double accX, accY, accZ;
double gyroX, gyroY, gyroZ;
double magX, magY, magZ;
double yaw;
int16_t tempRaw;
double gyroXangle, gyroYangle, gyroZangle; // Angle calculate using the gyro only
double compAngleX, compAngleY, compAngleZ; // Calculated angle using a
complementary filter
double kalAngleX, kalAngleY, kalAngleZ; // Calculated angle using a Kalman filter
uint32_t timer;
39
void setup() {
Serial.begin(115200);
Wire.begin();
Wire.beginTransmission(0x68);
Wire.write(0x6B);
Wire.write(0);
Wire.endTransmission(true);
servo1.attach(3);
servo2.attach(5);
magX *= magGain[0];
magY *= magGain[1];
magZ *= magGain[2];
magX -= magOffset[0];
magY -= magOffset[1];
magZ -= magOffset[2];
yaw *= -1;*/
time = millis();
void loop() {
#ifdef RESTRICT_PITCH
// This fixes the transition problem when the accelerometer angle jumps between -180 and
180 degrees
if ((roll < -90 && kalAngleX > 90) || (roll > 90 && kalAngleX < -90)) {
kalmanX.setAngle(roll);
compAngleX = roll;
kalAngleX = roll;
gyroXangle = roll;
} else
kalAngleX = kalmanX.getAngle(roll, gyroXrate, dt); // Calculate the angle using a
Kalman filter
yaw *= -1;
// This fixes the transition problem when the yaw angle jumps between -180 and 180
degrees
if ((yaw < -90 && kalAngleZ > 90) || (yaw > 90 && kalAngleZ < -90)) {
kalmanZ.setAngle(yaw);
compAngleZ = yaw;
kalAngleZ = yaw;
gyroZangle = yaw;
} else
kalAngleZ = kalmanZ.getAngle(yaw, gyroZrate, dt); // Calculate the angle using a
Kalman filter
compAngleX = 0.93 * (compAngleX + gyroXrate * dt) + 0.07 * roll; // Calculate the angle
using a Complimentary filter
compAngleY = 0.93 * (compAngleY + gyroYrate * dt) + 0.07 * pitch;
compAngleZ = 0.93 * (compAngleZ + gyroZrate * dt) + 0.07 * yaw;
//PID calculation
error = kalAngleX - desired_angle;
pid_p = kp*error;
if(-3 <error <3)
{
pid_i = pid_i+(ki*error);
}
pid_d = kd*((error - previous_error));
PID = pid_p + pid_i + pid_d;
// limit the PID to the resolution we have for the PWM variable
if(PID < -1000)
{
PID=-1000;
}
if(PID > 1000)
{
PID=1000;
}
/* Print Data */
#if 0 // Set to 1 to activate
Serial.print(accX); Serial.print("\t");
Serial.print(accY); Serial.print("\t");
Serial.print(accZ); Serial.print("\t");
44
Serial.print(gyroX); Serial.print("\t");
Serial.print(gyroY); Serial.print("\t");
Serial.print(gyroZ); Serial.print("\t");
Serial.print("\t");
#endif
Serial.print(pid_d); Serial.print("\t");
Serial.print(PID); Serial.print("\t");
Serial.print((int)error); Serial.print("\t");
Serial.print(PWMOutput); Serial.print("\t");
Serial.print(roll); Serial.print("\t");
//Serial.print(gyroXangle); Serial.print("\t");
Serial.print(compAngleX); Serial.print("\t");
Serial.println(kalAngleX);Serial.print("\t");
previous_error = error;
// Serial.print("\t");
//
// Serial.print(pitch); Serial.print("\t");
// //Serial.print(gyroYangle); Serial.print("\t");
// //Serial.print(compAngleY); Serial.print("\t");
// Serial.print(kalAngleY); Serial.print("\t");
//
// Serial.print("\t");
//
// Serial.print(yaw); Serial.print("\t");
//Serial.print(gyroZangle); Serial.print("\t");
//Serial.print(compAngleZ); Serial.print("\t");
// Serial.print(kalAngleZ); Serial.print("\t");
Serial.print("\r\n");
delay(2);
}
45
class Kalman {
public:
Kalman() {
/* We will set the variables like so, these can also be tuned by the user */
Q_angle = 0.001;
Q_bias = 0.003;
R_measure = 0.03;
P[0][0] = 0; // Since we assume that the bias is 0 and we know the starting angle (use
setAngle), the error covariance matrix is set like so - see:
http://en.wikipedia.org/wiki/Kalman_filter#Example_application.2C_technical
P[0][1] = 0;
P[1][0] = 0;
P[1][1] = 0;
};
// The angle should be in degrees and the rate should be in degrees per second and the
delta time in seconds
double getAngle(double newAngle, double newRate, double dt) {
// KasBot V2 - Kalman filter module - http://www.x-firm.com/?page_id=145
// Modified by Kristian Lauszus
// See my blog post for more information: http://blog.tkjelectronics.dk/2012/09/a-
practical-approach-to-kalman-filter-and-how-to-implement-it
K[0] = P[0][0] / S;
K[1] = P[1][0] / S;
return angle;
};
void setAngle(double newAngle) { angle = newAngle; }; // Used to set angle, this should
be set as the starting angle
double getRate() { return rate; }; // Return the unbiased rate
private:
/* Kalman filter variables */
double Q_angle; // Process noise variance for the accelerometer
double Q_bias; // Process noise variance for the gyro bias
double R_measure; // Measurement noise variance - this is actually the variance of the
measurement noise
double angle; // The angle calculated by the Kalman filter - part of the 2x1 state vector
double bias; // The gyro bias calculated by the Kalman filter - part of the 2x1 state vector
double rate; // Unbiased rate calculated from the rate and the calculated bias - you have to
call getAngle to update the rate
LAMPIRAN 3
Datasheet
51
Datasheet MPU6050
56
57
58
59