KENDALI POSISI MENGGUNAKAN FUZZY LOGIC BERBASIS PROGRAMMABLE LOGIC CONTROLLER Hany Ferdinando1)
Handy Wicaksono1)
Ricky Mintaraga 2)
1) Jurusan Teknik Elektro, Universitas Kristen Petra Surabaya, email: {hanyf,handy}@stikom.edu 2) alumni Jurusan Teknik Elektro, Universitas Kristen Petra Surabaya
Abstract: Pengendalian posisi menggunakan sebuah motor merupakan hal yang penting saat ini. Pengendalian ini digunakan untuk menggerakkan konveyor sehingga akan berhenti di tempat yang telah ditentukan. Aplikasi lain adalah untuk menggerakkan lengan robot ke posisi tertentu. Berbagai macam algoritma pengendalian sudah dicoba, di antaranya fuzzy, PID, sliding mode control, robust, dll. Makalah ini membahas pengendalian posisi sebuah motor DC menggunakan algoritma fuzzy logic yang diimplementasikan pada PLC (Programmable Logic Controller). Sebuah rotary encoder dengan resolusi 500 ppr dipergunakan untuk membaca posisi dari shaft motor DC. PLC yang dipergunakan adalah OMRON C-200HG yang dilengkapi dengan analog output unit, high speed counter unit dan fuzzy logic unit. Sistem dirancang dengan 2 input (dengan 7 label) dan 2 output (dengan 5 dan 3 label). Hasil percobaan menunjukkan bahwa sistem memilliki rise time antara 2-5ms dan tanpa overshoot. Beberapa kesalahan terjadi karena terdapat backlash pada sistem transmisi yang dipergunakan. PLC OMRON C200HG tidak mengenal bilangan negatif, sehingga perlu dilakukan sedikit manipulasi pada pengolahan bilangan ini Keywords: fuzzy, position control, PLC Pengendalian posisi menjadi penting di saat dunia bergerak ke arah otomasi. Penggerak yang selama ini dipergunakan dalam industri adalah motor, sistem hidrolik dan sistem pneumatik. Algoritma pengendalian juga bervariasi, misalnya PID, fuzzy, sliding mode control, learning feed forward control, dll. Makalah ini membahas implementasi pengendali PI pada pengendalian posisi shaft motor DC dengan algoritma fuzzy logic. Sebagai pengendali dipergunakan PLC OMRON C-200HG yang dilengkapi dengan FZ001 (fuzzy unit) (OMRON, 1992), analog output unit dan high speed counter unit. Semua proses fuzzy akan dilakukan oleh fuzzy unit sehingga program utama hanya tinggal mengambil nilai yang telah disediakan oleh fuzzy unit tadi. Sebagai pendukung sistem dipergukana LM3524 PWM generator dan rangkaian H-bridge untuk menggerakkan motor searah dan berlawanan arah jarum jam. PLC menerima input posisi shaft motor dari rotary encoder yang terhubung ke high speed counter unit, membandingkannya dengan setting point yang dimasukkan dan melalukan perhitungan fuzzy. Hasilnya diberikan kepada analog output unit untuk selanjutnya dapat menggerakkan motor. Penelitian ini dilakukan untuk menguji kehandalan fuzzy logic unit pada PLC untuk melakukan pengendalian posisi. Dari penelitian ini akan didapatkan beberapa masukan seputar penggunaan fuzzy logic unit pada PLC yang akan berguna untuk aplikasi yang lain. METODE Sistem dibangun secara sederhana menggunakan sebuah motor DC yang terhubung dengan sebuah penggerak dan rotary encoder sebagai
sensor posisi. Sebagai pengendali utama dipilih PLC OMRON C200Hx (OMRON, 1996) karena pengendali ini merupakan pengendali yang umum dipergunakan di industri. Gambar 1 menunjukkan diagram blok dari sistem yang dibuat.
Gambar 1. Diagram blok dari sistem.
Rotary encoder yang dipergunakan memiliki resolusi 500 ppr, artinya dalam satu putaran akan dihasilkan 500 pulsa. Perhitungan posisi dari jarum penunjuk pada busur derajad didasarkan pada informasi ini. Rotary encoder ini memiliki konfigurasi keluaran berupa open collector, sehingga perlu diberi sebuah tahanan pull-up. Sebagai penggerak motor dipergunakan Hbridge. Penggerak jenis ini dipilih karena dapat menggerakkan motor untuk berputar searah dan berlawanan jarum jam (CW – Clock Wise dan CCW – Counter Clock Wise). Rangkaian penggerak ini dibuat dari 2 pasang transistor yang komplemen, yaitu TIP41C dan TIP42C yang dipasang pada konfigurasi tertentu. Sistem juga dilengkapi dengan PWM (Pulse Width Modulation) generator. Oleh karena PWM unit untuk PLC OMRON tidak dimiliki, maka dibuatlah rangkaian eksternal dari IC LM3524 (Jacob, 1988).
Dengan menggunakan IC ini, maka PLC hanya cukup memberikan tegangan yang berbanding lurus dengan duty cycle yang diinginkan. Gambar 2 menunjukkan detil dari diagram blok yang dipergunakan dalam sistem ini. Output unit terhubung dengan H-bridge untuk menentukan arah putar motor, analog output unit OC001 (Hamman et al, 1990) memberikan duty cycle pada rangkaian PWM, pulsa dari encoder dibaca oleh high speed counter unit CT001 (Frengle, 1989), Fuzzy Logic unit FZ001 melakukan operasi fuzzy.
menunjukkan membership function untuk output duty cycle. Gambar 5 menunjukkan membership function output arah.
Gambar 4. Membership function duty cycle
Gambar 5. Membership function output arah
Gambar 2. Detil diagram blok gambar 1
Oleh karena FZ001 tidak mengenal nilai negatif, sehingga semua nilai dibuat positif dengan menambahkan semacam offset. Dengan demikian nilai terendah setiap membership function adalah nol. Gambar 6 menunjukkan aturan yang dibuat untuk sistem ini.
Gambar 3a. Membership function input error
Perancangan sistem fuzzy menggunakan 2 input dan 2 output. Sebagai input ada error dan delta error (untuk selanjutnya disebut sebagai derror), sedang outputnya duty cycle dan arah putar. Sistem fuzzy dirancang dengan bantuan FSS (Fuzzy Support System).
Gambar 6. Aturan pada pengendali fuzzy
Gambar 3b. Membership function input derror
Gambar 3 menunjukkan bentuk membership function untuk kedua input sedangkan gambar 4
HASIL DAN PEMBAHASAN Pada percobaan awal menunjukkan bahwa nilai awal DAC untuk dapat menggerakkan motor adalah 460 dan bukan nol. Dengan demikian batas bawah membership function output duty cycle diubah menjadi 490 sedangkan batas atasnya tetap. Pengambilan respon posisi pointer untuk percobaan ini dilakukan menggunakan bantuan Wonderware dengan script yang langsung dapat
menyimpan datanya dalam bentuk spreadsheet. Gambar 7 menunjukkan petikan script tersebut.
Gambar 12 dan 13 menunjukkan bahwa rise time dan settling time kedua kondisi sama, yaitu 3ms dan 8ms. Secara umum hal ini terkesan tidak masuk akal, tetapi apabila dilihat dari keluaran duty cycle, hal ini menjadi masuk akal.
Gambar 7. Petikan script pada Wonderware
Percobaan dilakukan untuk beberapa setting point untuk dua arah. Berikut adalah respon sistem untuk berbagai setting point yang diberikan.
Gambar 10. Titik awal 0º, setting point 180o
Gambar 8. Titik awal 0o, setting point 90o
Gambar 11. Titik awal 180º, setting point 0o
Gambar 9. Titik awal 90º, setting point 0o
Gambar 8 dan 9 menunjukkan bahwa pada saat gerakan dari 0o ke 90º, sistem tidak bisa mencapai setting point yang ditentukan, demikian juga dengan kondisi sebaliknya. Kondisi akhir yang dicapai adalah 83º dan 0.69º. Hal ini dikarenakan terdapat backlash pada sistem transmisi motor dan encoder. Percobaan awal yang dilakukan juga telah menunjukkan bahwa backlash yang terdapat pada sistem telah membuat hasil pengukuran posisi sudut tidak sesuai dengan yang diharapkan. Kedua percobaan memberikan rise time yang sama, yaitu 2ms. Settling time pada gambar 8 dan 9 masing-masing 7ms dan 12ms. Kondisi untuk gambar 10 dan 11 sedikit lebih baik. Untuk gambar 10, setting point yang diinginkan tercapai, tetapi untuk kondisi sebaliknya tidak tercapai, terjadi error kecil. Pada percobaan ini didapat rise time dan settling yang sama untuk dua kondisi, yaitu 3ms dan 7ms.
Gambar 12. Titik awal 0º, setting point 270o
Percobaan pada gambar 14 dan 15 memberikan hasil yang agak berbeda. Rise time dan settling time untuk gambar 14 adalah 3ms dan 6ms. Untuk gambar 15, nilai rise time dan settling time masing-masing 5ms dan 8ms.
Gambar 13. Titik awal 270º, setting point 0o
Gambar 17. Perubahan output DAC untuk respon gambar 9
Gambar 14. Titik awal 0º, setting point 360o
Gambar 18. Perubahan output DAC untuk respon gambar 10
Gambar 15. Titik awal 360º, setting point 0o
Gambar 16. Perubahan output DAC untuk respon gambar 8
Gambar 19. Perubahan output DAC untuk respon gambar 11
Gambar 20. Perubahan output DAC untuk respon gambar 12
Gambar 21. Perubahan output DAC untuk respon gambar 13
Keluaran duty cycle yang ditunjukkan pada gambar 16 sampai 23 bahwa semakin jauh setting point dari titik awalnya, nilai duty cycle yang dihasilkan oleh fuzzy juga semakin besar. Nilai akhir dari setiap duty cycle mendekati nilai minimum pada membership function output duty cycle, yaitu 490. Dengan nilai yang mendekati 490, kondisi motor bisa dianggap berhenti oleh karena inersia yang ada.
Gambar 22. Perubahan output DAC untuk respon gambar 14
SIMPULAN Penggunaan fuzzy logic unit FZ001 sangat mempermudah dalam implementasi fuzzy logic pada PLC. Editor FSS yang disediakan dapat dipergunakan untuk merancang semua hal yang berhubungan dengan fuzzy logic. Dalam PLC, sistem fuzzy tidak mengenal angka negatif, sehingga harus ditambahkan semacam offset untuk membuat batas terendah menjadi nol. Dengan demikian, semua nilai masukan harus disesuaikan terlebih dahulu. Sistem menghasilkan duty cycle yang sebanding dengan kebutuhan, artinya jika error awal besar semakin besar maka duty cycle awal yang dihasilkan oleh pengendali fuzzy juga besar. Hal ini dikarenakan sistem berusaha untuk mencapai setting point secepat mungkin. Duty cycle yang dihasilkan tidak tetap sepanjang percobaan, tetapi berubah perlahan sampai akhirnya mencapai nilai yang membuat motor tidak bergerak lagi. Adanya backlash pada sistem transmisi telah memberikan error yang cukup besar. Hal ini perlu diatasi mengingat sistem sudah menggunakan rotary encoder dengan resolusi yang cukup tinggi. Backlash yang ada dapat diminimkan dengan menggunakan gigi yang lebih baik. Hasil percobaan yang ditampilkan menunjukkan bahwa sistem tidak memiliki overshoot. Tetapi dalam pengamatan visual terkadang terdapat overshoot yang sangat kecil. Hal ini tidak terlihat dalam pengambilan data karena respon pembacaan Wonderware yang relatif lebih lambat dari perubahan nilai yang seharusnya dibaca. Sistem ini dapat dikembangkan lebih jauh untuk menggerakkan motor induksi dengan bantuak inverter. Hal ini lebih mendekati kondisi nyata di industri. DAFTAR RUJUKAN _______. 1992. C200H-FZ001 Fuzzy Logic Unit: Operation Manual. Tokyo: OMRON Co. Ltd. _______. 1996. C200HX/ C200HG/ C200HE Programmable Controllers: Operation Manual. OMRON. Tokyo: OMRON Co., Ltd. Frengle, N. 1989. SYSMAC C200H-CT001-V1/CT002 High Speed Counter Operation Manual. Japan: Datec, Inc. Hamann, P. & Thomas Mueller. 1990. C200H Analog I/O Units Operation Guide. Tokyo: Gold Coast Production Jacob, M. J. 1988. Industrial Control Electronics Application and Design. Englewood Cliff, NJ: Prentice Hall Inc.
Gambar 23. Perubahan output DAC untuk respon gambar 15
Nilai duty cycle dihitung dengan membagi nilai yang tercantum pada gambar 16 sampai 23 dengan 4095 (nilai maksimum keluaran DAC) dan dikalikan dengan 100%.