Pengaturan Posisi Motor Servo dengan Metode PID
Abstrak Motor servo adalah sebuah aktuator yang bergerak dalam poros yang mempunyai spesifikasi untuk control posisi sudut yang presisi. Banyak jenis motor servo. Ada yang dikontrol secara serial ataupun dengan PWM. Kali ini kita akan mencoba megatur posisi dari sebuah motor servo dengan menggunakan PWM yang dibangkitkan dari timer1. PWM harus diatur agar memenuhi standar sinyal input untuk motor servo sehingga motor servo dapat bergerak sesuai dengan perintah yang kita kirimkan lewat PWM. Pada proyek akhir ini akan dibuat pengaturan posisi pada motor servo yang telah dipasang sedemikian rupa dengan gear pembanding agar putarannya tidak berputar dengan cepat dan dapat diatur posisinya. Untuk menggerakkan motornya dibuat rangkaian PWM analog dan rangkaian pendukung lainnya dalam modul ini. Output respon sistem pada proyek akhir ini antara lain membandingkan penggunaan plant saat menggunakan PID.
BAB I Pendahuluan
1.1 Latar Belakang Motor servo adalah sebuah aktuator yang bergerak dalam poros yang mempunyai spesifikasi untuk control posisi sudut yang presisi. Banyak jenis motor servo. Ada yang dikontrol secara serial ataupun dengan PWM. Kali ini kita akan mencoba megatur posisi dari sebuah motor servo dengan menggunakan PWM yang dibangkitkan dari timer1. PWM harus diatur agar memenuhi standar sinyal input untuk motor servo sehingga motor servo dapat bergerak sesuai dengan perintah yang kita kirimkan lewat PWM. Dalam TA ini akan dibahas bagaimana cara mengatur posisi motor servo dengan menggunakan kontroler P,PI,PID. Mungkin dalam penggunaan metode PID dalam kontrol motor sudah banyak sekali digunakan. Terutama kontrol motor servo yang banyak sekali aplikasinya di dunia industri. Biasanya dalam kontrol kecepatan motor. Dalam TA ini akan dibuat aktuator motor servo sendiri. Motor servo akan dipasang mekanik sedemikian rupa dengan gear pembanding agar putarannya tidak berputar dengan cepat dan dan dapat diatur. Motor servo yang digunakan adalah motor servo dengan tegangan 5 volt. Dengan menggunakan metode kotrol P, PI, PID akan dibandingkan masing-masing responsenya.
1.2 Tujuan Proyek akhir dengan judul “Sistem Pengaturan Posisi Motor Servo Stepper Dengan Kontroller P,PI, dan PID” ini bertujuan untuk membuat suatu modul pembelajaran pengaturan posisi motor servo stepper. Dengan adanya proyek akhir ini diharapkan dapat membantu memudahkan mahasiswa dalam memahami Kontroller P, PI, dan PID pada praktikum ini.
1.3 Permasalahan Adapun permasalahan yang akan dibahas adalah sebagai berikut : 1. Bagaimana cara merancang rangkaian PWM analog dengan benar. 2. Bagaimana cara mengkomunikasikan antara PC dengan modul yang dibuat. 3. Bagaimana merancang mekanik motor servo. 4. Bagaimana cara penggunaan MATLAB dalam pengaturan posisi motor.
1.4 Batasan Masalah Adapun batasan-batasan masalah yang dibuat agar dalam pengerjaan proyek akhir ini dapat berjalan dengan baik adalah sebagai berikut : 1. 2. 3. 4.
Motor servo yang akan dibuat dalam proyek akhir ini adalah motor servo standart. Sudut masukkan yang diberikan berada pada kuadran 1 dan 2 (90 derajat). Menggunakan Arduino UNO. Menggunakan software MATLAB sebagai tampilan grafik respon waktu.
BAB II TINJAUAN PUSTAKA
2.1 Permodelan posisi motor stepper Motor servo mampu bekerja dua arah (CW dan CCW) dimana rah dan sudut pergerakkan rotornya dapat dikendalikan hanya dengan memberikan pengaturan duty cycle sinyal PWM pada bagian pin kontrolnya. Berikut ini pinout dari motor servo:
Kecepatan motor servo termasuk dalam kategori lambat, kelebihan yang dimiliki adalah torsi dan presisi yang handal. Dapat kita ketahui bahwa sebuah motor servo memiliki spesifikasi sebagai berikut : 1. 3 jalur kabel : VCC, Ground, control data. 2. Sinyal kontrol mengendalikan putaran dan posisi. 3. Operasional dari servo motor dikendalikan oleh sebuah pulsa berfrekuensi 50Hz, dimana lebar pulsa antara 1,3 – 1,7 ms. 4. Konstruksi di dalamnya meliputi internal gear.
BAB III PERENCANAAN DAN PEMBUATAN SISTEM
3.1 Gambaran Sistem Secara umum sistem yang akan dibngun pada proyek akhir ini dapat dilihat pada blok diagram berikut ini :
INPUT SUDUT
PC KONTROLLER
ARDUINO
MOTOR
Informasi sudut masukan diolah oleh PC, kemudian output dikeluarkan melalui PC yang dihubungkan dengan Arduino sebagai wiring terminalnya berupa tegangan analog. Sehingga akan dihasilkan gelombang denga lebar pulsa yang dapat diatur atau pulse width modulation (PWM). PWM ini digunakan untuk mengatur cepat l ambatnya putaran motor.
3.2 Perancangan Perangkat Keras Dengan menggunakan komponen-komponen diatas, maka rancangan sistem pada proyek akhir dpat dilihat sebagai berikut:
Dari perancangan diatas, PC akan disambung dengan arduino uno sebagai input/output, input dari I/O akan masuk ke motor servo. Dimana rangkaian diatas akan menghasilkan sinyal PWM sesuai hasil yang diinginkan.
3.3 Perancangan Perangkat Lunak
Perangkat lunak (software) yang dibutuhkan untuk mengintegrasikan menjadi satu sistem utuh dibangun dengan menggunakan MATLAB. Pembuatan perangkat lunak meliputi:
Program kontroler PID dengan menggunakan Arduino.
Program tampilan respon dari sistem.
Mengontrol Motor Servo dengan Arduino
Mengontrol Servo dengan Arduino relatif mudah, sudah tersedia library Servo untuk Arduino. Caranya : Pertama: Sediakan sebuah servo untuk percobaan ini, tidak perlu yang mahal. Kedua: Sambungkan servo ke Arduino. Pin 5V Arduino ke kabel merah Servo. Pin GND Arduino ke kabel hitam Servo dan pin 9 Arduino ke kabel putih/orange pada Servo. Kirakira seperti pada gambar ini:
Ketiga: Jalankan software Arduino dan salin program di bawah ini. #include Servo myservo; // buat objek servo int pos; // Koreksi oleh Agung Cahyawan void setup() { myservo.attach(9); // set servo pada pin 9 } void loop() { // bergerak dari 0 sampai 180 derajat for(pos = 0;pos < 180;pos += 1) { myservo.write(pos); // posisikan servo pada sudut 'pos' delay(15); // tunggu 15 milidetik } // bergerak dari 180 sampai 0 derajat for(pos = 180;pos>=1;pos-=1) {
myservo.write(pos); // posisikan servo pada sudut 'pos' delay(15); // tunggu 15 milidetik } }
Upload program ini ke Arduino dan lihat gerakan pada servo. Kalau rangkaian dan program sudah benar, maka servo akan bergerak bolak-balik dari 0 ke 180 derajat, kemudian balik lagi dari 180 ke 0 derajat. Begitu seterusnya .
3.3.1 Program Kontroller PID Program kontroller PID yang akan dibuat nantinya bertujuan untuk mengatur besarnya analog output dengan masukkan dari analog input. Berikut blok diagram proses kontroler PIDnya.
Input
KONTROLER
Analog Output
Analog input
POTENSIOMETER
Motor
Pada proyek akhir pengturan posisi motor servo ini yang menggunakan kontroller PID, dipergunakan metode untuk mendapat nilai masing-masing parameter Kp, Ki, dan Kd nya.
Pada Matlab dibuat dengan menggunakan : Cara Mengatur Posisi Motor Servo dengan Internal Source pada MATLAB
1. membuka model motor servo. 2. memberikan masukan pada Standard Servo Write block.pada block sets kita atur sudut motor servo setiap 0,01 second. 3. Didalam model Simulink, pilih Tools>Run on Target Hardware > Run. 4. Ketika model sedang dijalankan ,motor servo akan berputar antara 0 dan 180 derajat. 5. Nilai kontrol PID yang diberikan adalah : Kp=100; Ki=80; Kd=30
BAB IV PENGUJIAN DAN ANALISA
Pengujian Posisi Motor Servo Cara kerja Servo
Servo dapat digerakkan dengan mengirimkan pulsa tegangan 5V DC yang diulang setiap 20 milidetik. Panjang pulsa menentukan posisi putaran. Servo dirancang untuk menerima pulsa tegangan dengan variasi 0.75 milidetik sampai dengan 2.25 milidetik. Pada umumnya servo yang ada di pasaran sekarang ini mempunyai jangkauan gerakan 0 s.d 180 derajat. Ini berarti pulsa 0.75 milidetik untuk 0 derajat. Pulsa 2.25 milidetik untuk 180 derajat dan pulsa 1.5 milidetik untuk 90 derajat.
Pada motor DC servo ini memiliki nilai frekuensi f = 50 Hz, sehingga nilai T adalah T= T=
1 1 50
T = 20000 us Dimana, T adalah periode pulsa. Dengan diketahuinya nilai T = 20000 us, maka dapat di setting nilai Ton dan Toff untuk setiap derajat ( mulai 00 sampai 1800) dengan ketentuan : T = Ton + Toff = 20000 us Dimana : Ton adalah T aktif (high) Toff adalah T off ( low ) Berikut ini adalah tabel pengujian open loop motor DC servo. Berdasarkan tabel diatas, dapat dihitung nilai PWM secara teori sebagai berikut : PWM =
+
x TOP PWM ..................(4.5)
Dimana : TOP PWM = nilai max PWM = 27648 Oleh karena itu, nilai PWM setiap step adalah sebagai berikut :
Dalam sistem ini menggunakan kontrol PID, yai tu dengan memasukkan nilai Kp, Ki, dan Kd. Berikut penjelasan karakter masing-masing kontrolnya.
1.Kontrol Proporsional Kontrol P jika G(s) = kp, dengan k adalah konstanta. Jika u = G(s) • e maka u = Kp • e dengan Kp adalah Konstanta Proporsional. Kp berlaku sebagai Gain (penguat) saja tanpa memberikan efek dinamik kepada kinerja kontroler. Penggunaan kontrol P memiliki berbagai keterbatasan karena sifat kontrol yang tidak dinamik ini. Walaupun demikian dalam aplikasiaplikasi dasar yang sederhana kontrol P ini cukup mampu untuk memperbaiki respon transien khususnya rise time dan settling time. 2.Kontrol Integratif Jika G(s) adalah kontrol I maka u dapat dinyatakan sebagai u(t)=[integarl(t) dT]xKi dengan Ki adalah konstanta Integral, dan dari persamaan di atas, G(s) dapat dinyatakan sebagai u=Kd[delta e/delta t]Jika e(T) mendekati konstan (bukan nol) maka u(t) akan menjadi sangat besar sehingga diharapkan dapat memperbaiki error. Jika e(T) mendekati nol maka efek
kontrol I ini semakin kecil. Kontrol I dapat memperbaiki sekaligus menghilangkan respon steady-state, namun pemilihan Ki yang tidak tepat dapat menyebabkan respon transien yang tinggi sehingga dapat menyebabkan ketidakstabilan sistem. Pemilihan Ki yang sangat tinggi justru dapat menyebabkan output berosilasi karena menambah orde sistem 3.Kontrol Derivatif Sinyal kontrol u yang dihasilkan oleh kontrol D dapat dinyatakan sebagai G(s)=sxKd. Dari persamaan di atas, nampak bahwa sifat dari kontrol D ini dalam konteks "kecepatan" atau rate dari error. Dengan sifat ini ia dapat digunakan untuk memperbaiki respon transien dengan memprediksi error yang akan terjadi. Kontrol Derivative hanya berubah saat ada perubahan error sehingga saat error statis kontrol ini tidak akan bereaksi, hal ini pula yang menyebabkan kontroler Derivative tidak dapat dipakai sendiri.
BAB V KESIMPULAN
Setelah melakukan tahap perencanaan dan pengujin sistem, maka dapat diambil kesimpulan sebagai berikut : 1. Motor DC servo mampu bergerak sesuai setting point yang diberikan, walaupun sesekali masih terdapat error. 2. Motor tidak berbalik ke posisi 0 o setelah diberi kontrol meski program yang di-upload adalah program motor servo berbalik dari posisi 0 o-180o-0o
BAB VI DAFTAR PUSTAKA
Ari Santoso, “ Kriteria Kestabilan Sistem Linier Terlambat untuk Kasus Skalar ”, IES’2001,ITS,Nopember 2001. Ali J. Koshkouei and Keith J. Burnham, Control Of DC Motors Using Propotional Integral Sliding Mode, 2005.