PENGENDALI MOTOR SERVO DC MENGGUNAKAN PI UNTUK DIIMPLEMENTASIKAN PADA MESIN CNC Bartolomeus Bregas Raditya; Enrico Kartanadi; Jimmy Linggarjati Computer Engineering Department, Faculty of Engineering, Binus University Jln. K.H. Syahdan No. 9, Palmerah, Jakarta Barat 11480
[email protected]
ABSTRACT The purpose of this research is to analyze the design of a DC servo motor controller using the ATmega8 IC. The DC servo motor controller will be used to control a DC servo motor on a CNC (Computer Numerical Control) machine. The CNC machine is used to physically create a design from the computer. The CNC machine used in this research has three axes, axis X, axis Y and the axis Z. The DC servo motor is used for axis X. The DC servo motor controller receives an input from the computer. The ATmega8 executes the input by turning the DC servo motor according to the input while reading the position from the encoder of the servo motor. To get a high precision, PI driver is used that can reduce any error. The result of this research can be seen from the error percentage occurred during the test. Drawing a 10 cm line, repeated 40 times, resulted in 0.1% error, while drawing a 5 cm line, repeated 40 times as well, resulted in 2% error. Keywords: ATmega8, CNC machine, DC servo motor controller, PI
ABSTRAK Penelitian ini bertujuan untuk menganalisis perancangan sebuah pengendali motor servo DC menggunakan IC ATmega8. Pengendali motor servo DC tersebut akan digunakan untuk mengendalikan motor servo DC pada mesin CNC (Computer Numerical Control). Mesin CNC digunakan untuk menghasilkan suatu bentuk fisik yang diambil dari desain yang dibuat di dalam computer. Mesin CNC yang digunakan memiliki 3 sumbu, sumbu X, sumbu Y dan sumbu Z. Motor servo DC berfungsi untuk menggerakkan sumbu X pada mesin CNC. Pengendali motor servo DC akan menerima input dari komputer. ATmega8 akan mengeksekusi input dengan menggerakkan motor sesuai inputnya sambil membaca posisi motor dari encoder motor servo. Untuk mendapatkan presisi yang tinggi digunakan driver PI yang dapat mengurangi error. Hasil dari penelitian ini dilihat dari persentase error yang terjadi pada percobaan. Untuk menggambar garis 10 cm 40 kali didapatkan error 0.1% dan untuk menggambar 5 cm 40 kali didapatkan error 2%. Kata kunci: ATmega8, mesin CNC, pengendali motor servo DC, PI
102
Jurnal Teknik Komputer Vol. 19 No. 2 Agustus 2011: 102 – 112
PENDAHULUAN Mesin CNC (computer numerical controlled) adalah sebuah mesin yang akan membuat bentuk fisik dari desain yang digambarkan di dalam komputer. Mesin ini memiliki hubungan dengan CAD (computer aided design) yang digunakan untuk merancang dan mesin CNC mewujudkannya menjadi nyata. Mesin CNC memiliki tiga sumbu, sumbu X, sumbu Y dan sumbu Z, yang digerakkan dengan motor untuk menghasilkan output yang diinginkan. Kami akan menganalisis pengendali motor servo DC yang berfungsi untuk menggerakkan sumbu X. Penelitian yang dilakukan adalah untuk mendapatkan kepresisian, ketepatan posisi, yang terbaik. Penelitian sebelumnya telah dilakukan di jurusan Sistem Komputer - Universitas Bina Nusantara (Baskoro, 2009, dan Nagantara, 2010). Namun kedua penelitian tersebut belum sampai pada tahap uji-coba di suatu mesin CNC. Sedangkan pada penelitian kali ini, peralatan elektronik yang digunakan untuk pengontrolan PID pada motor DC, telah berhasil dengan baik diterapkan pada mesin CNC. Jianxin Tang (n.d.) dari divisi electrical engineering dari universitas Alfred, New York membuat PID Controller menggunakan TMS320c31 untuk mengatur kecepatan secara real-time dari motor DC dan position control. Pada hasil pengujian-nya, sebagai pengatur kecepatan menghasilkan steady state error yang telah di eliminasi dan output pada kecepatan motor DC menghasilkan kecepatan yang sama dengan input yang telah dimasukan. Sedangkan sebagai position controller menghasilkan ouput posisi yang presisi tanpa ada overshoot. Kontroler ini memiliki kekurangan, yaitu untuk mengubah PID-nya harus dari programming assembly, tidak dapat diubah tanpa mem-burn program ke dalam kontrolernya. Pada tahun 2008, Nurul Izzati Binti Pandak Jabo dari Universitas Malaysia membuat kontroler kecepatan motor DC menggunakan PID untuk di implementasikan dengan visual basic. Penelitian ini lebih cenderung untuk membuat GUI (Graphical User Interface) dari speed control untuk memberikan input PID-nya dan disimulasikan hasilnya. Hasil yang didapat yaitu grafik dari PID-nya memiliki respon yang baik sehingga bisa untuk dianalisis. Banyak penelitian tentang Pengendali Motor DC dengan teknik PID yang sudah sangat maju dan terkini dalam hal teknologi dan algoritma, contohnya adalah "Advances in PID Control" karangan Yurkevich (2011). Hanya saja, untuk membaca buku sekelas tersebut, kita perlu pertama kali mencoba melakukan kontrol sederhana pada sebuah motor DC dan kemudian diterapkan didalam mesin CNC; dan hal inilah yang telah berhasil dilakukan; karena tanpa melalui percobaan, tidak mungkin kita dapat mencapai kualitas pemahaman seperti yang tertuang pada buku tersebut. Oleh karena itu, kami membuat modul pengendali motor DC dengan dan di implementasikan pada mesin CNC untuk menganalisis kepresisian yang bisa didapat menggunakan teknik PI.
METODE PI (Proportional Integral) Driver PI (Proportional Integral) Driver merupakan driver yang kami gunakan untuk menentukan kepresisian suatu sistem instrumentasi dengan karakteristik adanya umpan balik/feed back pada sistem tersebut. Komponen PI terdiri dari dua jenis, yaitu Proportional dan Integratif.
Pengendali Motor Servo DC… (Bartolomeus Bregas Raditya; dkk)
103
Ada beberapa parameter dalam menentukan kualitas suatu sistem close loop, yaitu rise time, overshoot, settling time, dan steady state error (Gambar 1). Rise time adalah waktu yang dibutuhkan oleh sinyal output untuk melebihi 90% dari tingkat yang diinginkan (set point) saat pertama kali sistem dijalankan. Overshoot adalah besarnya peak level yang lebih tinggi dari set point. Settling time adalah waktu yang dibutuhkan sistem untuk mencapai kestabilan pada set point. Steady state error adalah perbedaan output yang dihasilkan dengan output output yang didapatkan. Kp berguna untuk mengurangi rise time. Sedangkan Ki berguna untuk menghapuskan steady state error.
Gambar 1. Respon sistem.
Perancangan Pengendali motor servo DC terdiri dari 3 rangkaian, yaitu modul pengendali motor DC, modul Schmitt Trigger, dan modul Differensial (Gambar 2). Modul pengendali motor servo DC ini berhubungan dengan komputer dan mesin CNC (Hudognik. 2008). Modul ini menerima input dari komputer berupa input step dan dir melalui port paralel. Sebelum masuk ke modul, sinyal step dan dir tersebut melalui rangkaian differensial agar sinyal yang masuk ke mikrokontroller ATMega8 sejernih mungkin agar output yang dihasilkan sebaik mungkin. Sistem internal modul ini menggunakan prinsip H-Bridge Mosfet dengan teknik PWM (Nand, 2010). Modul ini juga menerima input berupa feedback yang dikirim oleh encoder. Sinyal feedback ini dikuatkan terlebih dahulu oleh rangkaian Schmitt trigger (Gambar 3) untuk diperjelas sinyalnya. Untuk mem-burn mikrokontroller pada modul ini, digunakan USBasp yang dihubungkan dengan port USB pada komputer. Sedangkan untuk men-set parameter Kp dan Ki-nya, menggunakan port serial yang terdapat pada komputer. Untuk men-set parameter Kp dan Ki, digunakan software Servo Controller yang dapat di-unduh dari forum komunikasi www.cnczone.com secara gratis (Hudognik. 2008). Rangkaian Schmitt trigger di atas menggunakan IC74HC14 dan menghubungkan encoder dari motor DC dengan modul pengendali motor servo DC. Sedangkan rangkaian differensial (Gambar 4) menggunakan IC AM26LS31 yang berfungsi mengubah sinyal dari single-ended menjadi differential dan IC AM26LS32 yang berfungsi mengubah sinyal differential menjadi single-ended. Source code untuk pengendali motor ini menggunakan bahasa assembly. Source code ini dapat di-unduh di forum komunikasi www.cnczone.com.
104
Jurnal Teknik Komputer Vol. 19 No. 2 Agustus 2011: 102 – 112
Gambar 2. Rangkaian pengendali motor servo DC.
Gambar 3. Rangkaian Schmitt Trigger.
Gambar 4. Rangkaian differensial.
Flowchart Program Berikut adalah flowchart program yang dibuat (Gambar 5).
Pengendali Motor Servo DC… (Bartolomeus Bregas Raditya; dkk)
105
Gambar 5. Flowchart program.
Foreground process adalah proses di dalam program yang akan berjalan ketika mendapatkan perintah dari komputer. Ketika pengendali motor servo DC dinyalakan, semua parameter di-reset, mengembalikan pada kondisi awal. Setelah inisialisasi program akan menunggu perintah dari komputer. Ketika mendapatkan perintah, perintah tersebut akan dijalankan. Setelah dijalankan program akan looping kembali dan menunggu perintah berikutnya. Sedangkan background process adalah proses di dalam program yang akan berjalan secara paralel bersamaan dengan foreground process. Background process selalu berjalan tanpa perintah dari komputer. Background process merupakan proses yang membaca sinyal dari encoder untuk membaca dan menyimpan posisi motor.
Spesifikasi Sistem Sistem terdiri dari komputer, modul pengendali motor DC, encoder, rangkaian Schmitt trigger, dan rangkaian differensial. Motor terpasang pada mesin CNC untuk menggerakkan sumbu X pada mesin CNC. Mesin CNC yang digunakan memiliki 3 buah motor. Terdiri dari 2 motor stepper untuk menggerakan sumbu Y dan sumbu Z, dan sebuah motor servo untuk menggerakan sumbu X. Setiap motor memiliki driver nya sendiri. Driver yang kami buat digunakan untuk mengontrol motor servo pada sumbu X mesin CNC. Komputer yang digunakan menggunakan Operating System Linux Ubuntu. Software untuk menjalankan mesin CNC menggunakan software EMC2 yang tersedia secara open source. Pengendali motor DC menggunakan ATMega8 sebagai mikokontroler-nya dan di program dengan bahasa pemrograman Assembly. Pengendali ini terhubung dengan komputer dan motor servo DC. Pengendali ini menggunakan tegangan power supply sebesar 12 Volt untuk mengaktifkan mikrokontroler-nya dan 36 Volt untuk menggerakan motor servo DC nya. Motor DC yang digunakan adalah motor DC servo yang memilik encoder sebesar 200 clock/turns dan membutuhkan tegangan power supply sebesar 36 volt. Berikut adalah blok diagram sistem keseluruhan (Gambar 6).
106
Jurnal Teknik Komputer Vol. 19 No. 2 Agustus 2011: 102 – 112
Gambar 6. Blok diagram sistem keseluruhan.
HASIL DAN PEMBAHASAN Pengujian dilakukan dengan membuat gambar pada komputer dan mencetaknya dengan mesin CNC. Gambar yang dibuat adalah gambar bintang, persegi, spiral, dan persegi. Masingmasing gambar diambil sebanyak 25 kali. Dan membuat gambar garis 10 cm dan 5 cm sebanyak 40 kali.
Penggambaran Bintang Pada bintang (Gambar 7), kami mengukur salah satu panjang sisinya yang digambar oleh kombinasi sumbu X dan sumbu Y. Rata-rata hasil pengukurannya adalah 1.396cm. Seharusnya adalah 1.4cm. Presentase error nya adalah 0.285% (Tabel 1).
Gambar 7. Gambar bintang.
Pengendali Motor Servo DC… (Bartolomeus Bregas Raditya; dkk)
107
Tabel 1. Hasil penggambaran gambar bintang Bintang No. 1 2 3 4 5
Panjang (cm) 1.4 1.4 1.4 1.4 1.4
Bintang No. 6 7 8 9 10
Panjang (cm) 1.4 1.4 1.4 1.4 1.4
Bintang No. 11 12 13 14 15
Panjang (cm) 1.4 1.4 1.4 1.4 1.4
Bintang No. 16 17 18 19 20
Panjang (cm) 1.4 1.4 1.4 1.4 1.4
Bintang No. 21 22 23 24 25
Panjang (cm) 1.4 1.4 1.3 1.4 1.4
Pengambaran Persegi Pada persegi (Gambar 8), kami mengukur panjang salah satu sisi nya yang digambar oleh sumbu X. Rata-rata hasil pengukurannya adalah 4.016cm. Seharusnya adalah 4cm. Presentase error nya adalah 0.4% (Tabel 2).
Gambar 8. Gambar persegi.
Tabel 2. Hasil penggambaran gambar persegi Persegi No. 1 2 3 4 5
Panjang (cm) 4 4 4 4.1 4
Persegi No. 6 7 8 9 10
Panjang (cm) 4 4.1 4 4 4
Persegi No. 11 12 13 14 15
Panjang (cm) 4 4 4 4 4
Persegi No. 16 17 18 19 20
Panjang (cm) 4 4 4.1 4 4
Persegi No. 21 22 23 24 25
Panjang (cm) 4 4 4 4.1 4
Penggambaran Spiral Pada spiral (Gambar 9), kami mengukur panjang salah satu sisi nya yang digambar oleh gabungan dari sumbu X dan sumbu Y. Rata-rata hasil pengukurannya adalah 2.404cm. Seharusnya adalah 2.4cm. Presentase error nya adalah 0.16% (Tabel 3).
108
Jurnal Teknik Komputer Vol. 19 No. 2 Agustus 2011: 102 – 112
Gambar 9. Gambar spiral.
Tabel 3. Hasil penggambaran gambar spiral Spiral No. 1 2 3 4 5
Panjang (cm) 2.4 2.4 2.4 2.4 2.5
Spiral No. 6 7 8 9 10
Panjang (cm) 2.4 2.4 2.4 2.4 2.4
Spiral No. 11 12 13 14 15
Panjang (cm) 2.4 2.4 2.4 2.4 2.4
Spiral No. 16 17 18 19 20
Panjang (cm) 2.4 2.4 2.4 2.4 2.4
Spiral No. 21 22 23 24 25
Panjang (cm) 2.4 2.4 2.4 2.4 2.4
Penggambaran Garis 10cm Pada percobaan ini, kami menggambar garis sepanjang 10 cm dan 5 cm (Gambar 10) berturut-turut sebanyak 40 kali. Kami mengukur panjang garis yang merupakan hasil dari penggambaran dengan sumbu X pada mesin CNC. Rata-rata hasil pengukurannya adalah 10.1cm. Seharusnya adalah 10cm. Presentase error nya adalah 0.1% (Tabel 4).
Gambar 10. Gambar garis 10 cm.
Pengendali Motor Servo DC… (Bartolomeus Bregas Raditya; dkk)
109
Tabel 4. Hasil penggambaran gambar garis 10cm Garis ke1 2 3 4 5 6 7 8 9 10
Panjang (cm) 10.1 10.1 10.1 10.1 10.1 10.1 10.1 10.1 10.1 10.1
Garis ke11 12 13 14 15 16 17 18 19 20
Panjang (cm) 10.1 10.1 10.1 10.1 10.1 10.1 10.1 10.1 10.1 10.1
Garis ke21 22 23 24 25 26 27 28 29 30
Panjang (cm) 10.1 10.1 10.1 10.1 10.1 10.1 10.1 10.1 10.1 10.1
Garis ke31 32 33 34 35 36 37 38 39 40
Panjang (cm) 10.1 10.1 10.1 10.1 10.1 10.1 10.1 10.1 10.1 10.1
Penggambaran Garis 5cm Percobaan ini mengambil garis 5 cm (Gambar 11). Kami mengukur panjang garis yang merupakan hasil dari peggambaran dengan sumbu X pada mesin CNC. Rata-rata hasil pengukurannya adalah 5.1cm. Seharusnya adalah 5cm. Presentase error nya adalah 2% (Tabel 5).
Gambar 11. Gambar garis 5 cm.
110
Jurnal Teknik Komputer Vol. 19 No. 2 Agustus 2011: 102 – 112
Tabel 5. Hasil penggambaran gambar garis 5 cm Garis ke1 2 3 4 5 6 7 8 9 10
Panjang (cm) 5.1 5.1 5.1 5.1 5.1 5.1 5.1 5.1 5.1 5.1
Garis ke11 12 13 14 15 16 17 18 19 20
Panjang (cm) 5.1 5.1 5.1 5.1 5.1 5.1 5.1 5.1 5.1 5.1
Garis ke21 22 23 24 25 26 27 28 29 30
Panjang (cm) 5.1 5.1 5.1 5.1 5.1 5.1 5.1 5.1 5.1 5.1
Garis ke31 32 33 34 35 36 37 38 39 40
Panjang (cm) 5.1 5.1 5.1 5.1 5.1 5.1 5.1 5.1 5.1 5.1
SIMPULAN Penelitian ini bertujuan untuk menganalisis perancangan sebuah pengendali motor servo DC menggunakan IC ATmega8. Pengendali motor servo DC tersebut digunakan untuk mengendalikan motor servo DC pada mesin CNC (Computer Numerical Control). Mesin CNC digunakan untuk menghasilkan suatu bentuk fisik yang diambil dari desain yang dibuat di dalam komputer. Untuk mendapatkan presisi yang tinggi digunakan driver PI yang dapat mengurangi error. Hasil dari penelitian ini dilihat dari persentase error yang terjadi pada percobaan. Pengujian dilakukan dengan membuat gambar pada komputer dan mencetaknya dengan mesin CNC. Gambar yang dibuat adalah gambar bintang, persegi, spiral, dan persegi. Masing-masing gambar diambil sebanyak 25 kali. Dan membuat gambar garis 10 cm dan 5 cm sebanyak 40 kali. Pada gambar bintang, presentase error-nya adalah 0.285%. Pada gambar persegi, presentase error-nya adalah 0.4%. Pada gambar spiral, presentase error-nya adalah 0.16%. Pada gambar garis 10cm, presentase errornya adalah 0.1%. Pada gambar garis 5cm, presentase error-nya adalah 2%.
DAFTAR PUSTAKA Baskoro, Dwi. 2009. Perancangan Pengendali Posisi Linier untuk Motor DC dengan Menggunakan PID. Hudognik. (2008). Modernization of the Elm DC Servo Controller. http://www.cnczone.com/forums/open_source_controller_boards/69640modernization_elm_DC_servo_controller.html.
Diakses
dari
Jianxin Tang. Real-Time Adaptive PID Controller Using the TMS320C31 DSK. Diakses dari http://www.ti.com/sc/docs/general/dsp/festproceedings/fest2000/alfred001.pdf. Nagantara, Jemie. 2010. Sistem Kerja PID pada Rangkaian Penggerak Servo Untuk Motor DC. Nand,
Krishna. (2010). PWM in AVR. Diakses content/uploads/2011/01/PWM-in-AVR-v1.0.pdf.
dari
http://vnit.ac.in/ieee/wp-
Skripsi tidak diterbitkan. Jakarta: Universitas Bina Nusantara.
Pengendali Motor Servo DC… (Bartolomeus Bregas Raditya; dkk)
111
Skripsi tidak diterbitkan. Jakarta: Universitas Bina Nusantara. Yurkevich, Valery D. (2011). Advances in PID Control. http://www.intechopen.com/books/show/title/advances-in-pid-control.
112
Diaskes
dari
Jurnal Teknik Komputer Vol. 19 No. 2 Agustus 2011: 102 – 112