Konferensi Nasional Sistem dan Informatika 2009; Bali, November 14, 2009
KNS&I09-033
KONTROL MOTOR PID DENGAN KOEFISIEN ADAPTIF MENGGUNAKAN ALGORITMA SIMULTANEOUS PERTURBATION Sofyan Tan, Lie Hian Universitas Pelita Harapan, Universitas Bina Nusantara
[email protected],
[email protected] ABSTRACT This research aims to investigate an adaptive controller using the simultaneous perturbation algorithm and the proportional-integral-differential controller. The research is conducted by determining the strengths, and weaknesses of the proposed adaptive control for its ability to adapt its coefficient for a better dc motor rotor position response. The PID controller is implemented in a FPGA chip, and connected with the simultaneous perturbation algorithm implemented in a PC via a serial interface. Evaluations of this adaptive controller show its ability to change the coefficient of the PID controller to achieve better position response. Keywords: Adaptive Controller, PID Controller, Simultaneous Perturbation, FPGA
1.
Pendahuluan
Kontrol automatik telah memegang peranan yang sangat penting dalam perkembangan ilmu dan teknologi, dan merupakan bagian yang penting dan terpadu dari proses-proses dalam pabrik dan industri modern[1]. Metode kontrol Proportional-Integral-Derivative (PID) merupakan salah satu metode kontrol automatik yang telah lama digunakan untuk mengendalikan sistem dalam berbagai bidang. Salah satunya adalah bidang robotika yang banyak menggunakan metode kontrol PID untuk mengendalikan pergerakan robot. Suatu Robot yang telah dikendalikan dengan metode kontrol automatik akan dapat berfungsi dengan baik apabila diberikan parameter (koefisien) kontrol yang sesuai. Akan tetapi sejalan dengan waktu, dapat terjadi perubahan pada karakteristik robot maupun lingkungan tempat robot tersebut berkerja sehingga dibutuhkan penyesuaian kembali koefisien kontrol agar robot dapat tetap bekerja dengan baik. Akan lebih baik lagi apabila penyesuaian parameter terhadap perubahan robot dan lingkungannya tersebut dapat dilakukan secara automatik (adaptif) oleh pengendali. Penelitian ini ingin menyelidiki suatu metode kontrol adaptif menggunakan algoritma optimasi yang disebut Simultanous Perturbation (SP) untuk melakukan penyesuaian koefisien kontrol PID dalam mengendalikan posisi rotor dari suatu motor arus searah (dc). Kontrol PID beserta dengan interface ke/dari motor dc diimplementasikan menggunakan sebuah chip Field Programmable Gate Array (FPGA), sedangkan algoritma simultaneous perturbation diimplementasikan dalam sebuah Personal Computer (PC). Tujuan dari penelitian ini adalah untuk mengevaluasi kemampuan algoritma SP dan kontrol PID sebagai suatu kontrol adaptif yang dapat menyesuaikan koefisien kontrol secara otomatik dalam mengendalikan posisi rotor motor dc. Hasil penelitian ini akan bermanfaat dalam perancangan kontrol adaptif untuk berbagai aplikasi, khususnya dalam bidang robotika, agar robot dapat beradaptasi dengan perubahan beban atau lingkungannya.
2.
Landasan Teori
Kontrol adaptif bukanlah topik penelitian yang baru, topik ini telah dibahas dalam berbagai penelitian di bidang kontrol. Berbagai metode baik secara teoritis maupun aplikatif telah dibahas, seperti pada[2] dan[3] yang memberikan wawasan mengenai berbagai penelitian di bidang kontrol adaptif. Umumnya metode kontrol adaptif dapat dikelompokkan menjadi tiga jenis, yaitu Gain Scheduling, Model Reference, dan Self Tuning[3]. Pada metode gain scheduling umumnya digunakan look-up table untuk menentukan parameter kontrol yang sesuai dengan berbagai kondisi sistem yang dikendalikan (plant). Keuntungan metode ini adalah kemudahan implementasi dan kecepatan operasinya. Akan tetapi metode gain scheduling membutuhkan informasi yang banyak mengenai sistem yang dikendalikan untuk mendapatkan look-up table. Metode model reference menggunakan model respon ideal dari sistem yang ingin dikendalikan untuk dibandingkan dengan respon sistem yang aktual dalam melakukan penyesuaian parameter kontrol. Dengan metode ini, kontrol dasar yang digunakan sebelumnya (controller) dapat bekerja secara independen, sehingga bila terjadi kegagalan pada sistem adaptif, kontrol dasar masih tetap bekerja walaupun mungkin tidak secara optimal. Akan tetapi metode ini membutuhkan model respon yang realistis sehingga dapat berkerja dengan optimal. Metode self-tuning menggunakan model sistem dengan parameter yang terus menerus diperbaharui untuk meniru sistem yang dikendalikan. Model sistem tiruan ini kemudian digunakan untuk menghitung penyesuaian parameter kontrol terhadap sistem yang dikendalikan agar didapatkan respon yang optimal. Untuk dapat menghasilkan parameter kontrol yang optimal dibutuhkan model tiruan yang semirip mungkin dengan sistem yang dikendalikan dan perhitungan yang kompleks.
179
Konferensi Nasional Sistem dan Informatika 2009; Bali, November 14, 2009
KNS&I09-033
Gambar 1. Kontrol Adaptif Model Reference[3] Menggunakan Simultaneous Perturbation Metode kontrol adaptif yang digunakan pada penelitian ini dapat dikategorikan sebagai metode kontrol adaptif model reference dengan blok diagram ditunjukkan pada Gambar 1, dimana blok controller adjustments diimplementasikan menggunakan algoritma SP, dan model yang digunakan adalah suatu step function. Aksi proportional APn, integral AIn, dan differential ADn dideskripsikan secara sederhana pada persamaan (1-3) sebagai fungsi dari input diskrit dan koefisien proporsional P, integral I, dan diferensial D, dengan mengabaikan pembulatan dan overflow dalam perhitungan 16-bit pada FPGA. APn = P(input n − output n )
(1)
n
AI n = ∑ (input i − output i ) i =0
ADn = 64 D[(input n − output n ) − (input n −1 − output n−1 )]
(2) (3)
Masing-masing aksi tersebut dijumlahkan dan dibagi 256 untuk mendapatkan output Pulse Width Modulation (PWM) 8bit ke motor dc. Simultaneous Perturbation Stochastic Approximation (SPSA) atau disingkat Simultaneous Perturbation (SP) merupakan algoritma optimasi multivariate yang relatif baru. Algoritma ini menarik perhatian internasional di bidang-bidang seperti perkiraan parameter statistik, sistem kontrol umpan balik, optimasi berbasis simulasi, pengolahan sinyal dan gambar. Kekuatan dari SP terletak pada kemudahan implementasinya, dan jumlah pengukuran yang sedikit (hanya dua per iterasi), dan tidak tergantung pada dimensi masalah (jumlah parameter input). Selain itu metode optimasi SP tidak membutuhkan informasi kemiringan (gradient) dari fungsi error (loss function) L(·), melainkan menggunakan perkiraan kemiringan yang didapatkan dari pengukuran fungsi error (measurement of loss function) y(·). Hasil pengukuran fungsi error umumnya disertai dengan noise, yaitu perbedaan antara error yang terukur dengan error yang sebenarnya. Sehingga pengukuran fungsi error y(·) = (L(·) + noise)[5]. Pada penelitian ini algoritma SP digunakan untuk melakukan optimasi nilai koefisien θˆ , yang terdiri dari koefisien proportional P, integral I, dan differential D, berdasarkan perkiraan kemiringan dari dua kali pengukuran fungsi error. Pengukuran fungsi error dilakukan dengan mengakumulasi selisih antara respon motor dc dan respon dari model ideal (step function) untuk jumlah sampel tertentu, seperti ditunjukkan dengan daerah yang diarsir pada Gambar 2. Semakin kecil daerah yang diarsir, artinya respon sistem semakin baik (mendekati ideal).
Gambar 2. Contoh Pengukuran Fungsi Error Pada SP terdapat dua jenis metode perkiraan kemiringan fungsi error, yaitu one-sided gradient approximation dan twosided gradient approximation. Pada perhitungan yang pertama perkiraan kemiringan dilakukan dengan pengukuran terhadap y (θˆ ) dan y (θˆ + perturbation) , sedangkan pada perhitungan yang kedua perkiraan kemiringan dilakukan k
k
dengan pengukuran terhadap y (θˆk + perturbation) dan y (θˆk − perturbati on) . Pada penelitian ini digunakan metode perhitungan yang kedua. 180
Konferensi Nasional Sistem dan Informatika 2009; Bali, November 14, 2009
KNS&I09-033
Dua kali pengukuran fungsi error yang disebut di atas adalah y (θˆk + ck ∆ˆ k ) (selanjutnya disebut yplus) dan y (θˆk − ck ∆ˆ ) (selanjutnya disebut yminus). Pengukuran pertama dilakukan dengan koefisien θˆ + c ∆ˆ (selanjutnya disebut θplus) k
k
k
dan pengukuran kedua dilakukan dengan koefisien θˆk − c k ∆ˆ k (selanjutnya disebut θminus). Perkiraan kemiringan untuk masing-masing koefisien dihitung sesuai persamaan-persamaan berikut: y (θˆk + ck ∆ˆ k ) − y (θˆk − ck ∆ˆ k ) g kP (θˆk ) = 2c k ∆ kP
(4)
y (θˆk + ck ∆ˆ k ) − y (θˆk − ck ∆ˆ k ) 2c k ∆ kI
(5)
y (θˆk + ck ∆ˆ k ) − y (θˆk − ck ∆ˆ k ) g kD (θˆk ) = 2c k ∆ kD
(6)
g kI (θˆk ) =
dimana k merupakan nomor iterasi yang dimulai dari 1, dan gain sequence ck merupakan suatu angka positif yang semakin kecil nilainya ketika k bertambah. Sedangkan θˆ merupakan matriks koefisien PID yang ingin dioptimasi, dan ∆ˆ merupakan matriks angka random dengan kemungkinan nilai +1 atau –1. g kP (θˆk ) gˆ k (θˆk ) = g kI (θˆk ) g (θˆ ) kD k
Pk ˆ θ k = I k Dk
(7)
∆ kP ˆ∆ = ∆ k kI ∆ kD
(8)
(9)
Setelah didapatkan nilai gˆ (θˆ) , maka nilai θˆ dapat diperbaharui untuk iterasi berikutnya menggunakan persamaan:
θˆk +1 = θˆk − a k gˆ k (θˆk )
(10)
Gain sequence ak dan ck dapat dihitung menggunakan persamaan berikut: ak =
a ( k + A)
α
ck =
(11)
c kγ
(12)
Petunjuk untuk menentukan nilai konstanta a, c, A, α, dan γ dapat dilihat pada [6]. Pemilihan nilai gain sequence ak dan ck sangat menentukan performa dari algoritma SP seperti halnya metode-metode optimasi lainnya.
3.
Metode Penelitian
Penelitian ini diawali dengan studi pustaka mengenai kontrol PID dan perancangan kontrol PID secara digital, kontrol adaptif, algoritma SPSA dan metode implementasinya, PWM dan penguat arus motor dc, serta shaft encoder dan proses decodingnya. Dilanjutkan dengan perancangan hardware untuk motor dc, termasuk penguat arus motor dc, interface PWM, dan decoder sinyal shaft encoder. Perancangan modul kontrol PID 16-bit dimulai dengan simulasi fungsional dari kontrol PID yang diharapkan pada PC. Selanjutnya rancangan digital modul kontrol PID dikerjakan modul per modul, disimulasikan, dan diuji. Algoritma simultaneous perturbation dirancang pada PC, beserta dengan modul komunikasi serial dengan FPGA. Tahap terakhir adalah integrasi algoritma SPSA di PC dengan kontrol PID pada FPGA, pengujian komunikasi serial, pengumpulan dan analisa data evaluasi sistem, serta dokumentasi.
4.
Hasil Evaluasi dan Diskusi
Media implementasi hasil penelitian ini dibagi menjadi dua, kontrol PID diimplementasikan secara hardware dalam chip FPGA Spartan XCS10PC84, dan algoritma SP diimplementasikan secara software dalam PC dengan pemrograman Visual Basic. Blok diagram pada Gambar 1, digambarkan kembali pada Gambar 3 untuk menunjukkan media implementasi yang digunakan oleh masing-masing komponen sistem. Tampilan antar muka Program Monitoring algoritma SP ditunjukkan pada Gambar 5.
181
Konferensi Nasional Sistem dan Informatika 2009; Bali, November 14, 2009
KNS&I09-033
Gambar 3. Media Implementasi Sistem Kontrol Adaptif Komponen Kontrol PID, beserta dengan penghitung selisih input dan output diimplementasikan menggunakan sebuah chip FPGA, dengan harapan komponen ini dapat digunakan secara luas untuk berbagai aplikasi pengendalian posisi rotor motor dc, dengan maupun tanpa fungsi adaptif. Sedangkan seluruh fungsi adaptif (daerah yang diarsir tipis pada Gambar 3) diimplementasikan secara software pada PC. Seluruh komunikasi antara PC dan chip FPGA dilakukan secara serial pada baud rate 57600 bps dengan sebuah kabel standar RS-232. Selebihnya dari Gambar 3 (yang tidak diarsir) adalah motor dc yang akan dikendalikan beserta dengan rangkaian penguat arus untuk motor dc. Data yang dikirim dari FPGA ke PC adalah data posisi dari rotor motor dc, berupa angka biner 16-bit yang dikirimkan di akhir dari setiap periode sample kontrol PID. Frekuensi sample kontrol PID pada evaluasi adalah 83 Hz. Sedangkan data yang dikirim dari PC ke FPGA adalah input posisi, koefisien P, I, dan D, yang kesemuanya berupa biner 16-bit. Kontrol PID dalam FPGA mengendalikan torka pada motor dc menggunakan teknik Pulse Width Modulation (PWM) 8-bit. Frekuensi PWM yang digunakan pada evaluasi adalah sekitar 3 kHz. Motor dc yang digunakan pada penelitian ini merupakan motor dc 12 volt. Beban yang akan digunakan pada evaluasi merupakan roda karet dengan diameter 9.8 cm dengan berat 200 g. Roda dipasang langsung pada rotor motor dc dengan kondisi yang tidak terpengaruh oleh gaya gravitasi. Agar mendapatkan respon yang konsisten, pada evaluasi ini, motor selalu direset ke kondisi awal sebelum nilai θplus atau θminus yang baru dikirimkan, dan input posisi (reference point) yang diberikan selalu sama, yaitu 16384. Beberapa parameter algoritma SP dan kontrol PID yang tidak berubah dalam evaluasi ini adalah sebagai berikut: Parameter SP: α γ A c Jumlah Iterasi
= 0.602 = 0.101 =2 = 327.68 = 20
Parameter PID: Input Posisi = 16384 Ki Awal =0 Kd Awal =0
Nilai-nilai parameter α, γ, dan A di atas disesuaikan dengan nilai optimal yang disarankan pada [6], sedangkan nilai c sebesar 327,68 merupakan 1% dari nilai maksimum koefisien P, I, atau D. Nilai c akan menentukan gain sequence ck yang mempengaruhi seberapa jauh perturbasi terhadap θˆ pada θplus dan θminus. Semakin besar nilai c, maka semakin jauh pula beda antara θplus dan θminus. Dari percobaan yang dilakukan, ditemukan bahwa nilai c sebesar 327,68 tersebut telah cukup untuk menghitung perkiraan kemiringan gˆ (θˆ) tanpa banyak terpengaruh oleh noise pada pengukuran fungsi error. Jumlah interasi 20 ditemukan sudah cukup agar sistem stabil. Seperti yang telah didiskusikan di atas, nilai input atau reference point selalu sama untuk konsistensi data evaluasi. Nilai koefisien I dan D awal bernilai nol untuk melihat kemampuan algoritma SP dalam menentukan nilai optimum bagi kedua koefisien ini. (Hal ini juga disesuaikan dengan tuning koefisien PID secara manual, yang umumnya selalu dimulai dengan koefisien P saja). Nilai koefisien P awal perlu diatur agar motor dc dapat berputar sejak iterasi yang pertama. Gambar 4 sampai dengan 8 menunjukkan perubahan respon posisi terhadap waktu dengan koefisien awal (sebelum disesuaikan oleh SP) dan koefisien akhir (setelah disesuaikan dengan SP). Secara keseluruhan didapatkan perbaikan respon sistem akhir dibandingkan awal, terutama dalam hal steady state error. Dari percobaan B dan C ditemukan perubahan koefisien P awal berpengaruh terhadap respon akhir. Hal ini menjelaskan bahwa kondisi awal sistem harus berada pada nilai fungsi error yang mendekati minimum, atau nilai minimum lainnya akan ditemukan pada iterasi (local minima), yang mana bukan merupakan nilai minimum yang kita inginkan. Percobaan E menghasilkan output yang lebih 182
Konferensi Nasional Sistem dan Informatika 2009; Bali, November 14, 2009
KNS&I09-033
stabil dibandingkan percobaan D. Hal ini diakibatkan oleh jumlah sampel yang terlalu kecil pada percobaan D, sehingga sebagian besar nilai fungsi error adalah kontribusi dari periode rise time yang panjang. Pada kondisi seperti ini, algoritma SP akan lebih “berusaha” untuk mengurangi rise time, dengan memperbesar koefisien I, daripada mengurangi overshoot dan osilasi. Percobaan A (Tanpa Beban)
Percobaan B (Tanpa Beban)
32768
32768
28672
28672
24576
24576
20480
20480
16384
16384
12288
12288
8192
8192
4096
4096
0
0 0
50
100
150
200
250
300
350
400 450
0
a=400; Kp Aw al=16384; Sam pel=500 Awal
50
100
150
200
250
300
350
400 450
a=800; Kp Aw al=16384; Sam pel=500
Akhir
Awal
Akhir
Gambar 4. Respon Awal & Akhir Perc. A
Gambar 5. Respon Awal & Akhir Perc. B
Percobaan C (Tanpa Beban)
Percobaan D (Dengan Beban)
32768
32768
28672
28672
24576
24576
20480
20480
16384
16384
12288
12288
8192
8192
4096
4096
0
0 0
50
100
150
200
250
300
350
400 450
0
a=800; Kp Aw al=8192; Sam pel=500 Awal
Akhir
28672 24576 20480 16384 12288 8192 4096 0 300 400
500
600
700
800 900
a=800; Kp Aw al=8192; Sam pel=1000 Awal
500
600
700
800 900
Akhir
Gambar 7. Respon Awal & Akhir Perc. D
32768
200
300 400
Awal
Percobaan E (Dengan Beban)
100
200
a=800; Kp Aw al=8192; Sam pel=500
Gambar 6. Respon Awal & Akhir Perc. C
0
100
Akhir
Gambar 8. Respon Awal & Akhir Perc. E
183
Konferensi Nasional Sistem dan Informatika 2009; Bali, November 14, 2009
5.
KNS&I09-033
Kesimpulan
Dalam penelitian ini suatu sistem kontrol PID dengan koefisien adaptif berhasil dibangun dan dievaluasi. Kontrol adaptif model reference ini dibangun dengan menambahkan algoritma simultaneous perturbation untuk menyesuaikan koefisien P, I, dan D dari sebuah kontrol PID, agar mendapatkan respon yang lebih baik. Secara keseluruhan, evaluasi terhadap respon awal dan akhir dari posisi rotor motor dc menunjukkan bahwa kontrol adaptif ini berhasil mendapatkan respon yang lebih baik dari posisi rotor motor dc, terutama dalam mengatasi masalah steady state error. Akan tetapi kontrol adaptif ini masih terpengaruh oleh masalah local minima ketika parameter awal terlalu jauh dari optimum. Penelitian ini menggunakan referensi model respon berupa step function, walaupun merupakan model yang terlalu ideal, namun evaluasi menunjukkan bahwa kontrol adaptif ini masih dapat menyesuaikan respon sistem ke arah yang lebih optimum. Penelitian lebih lanjut dengan menggunakan referensi model respon yang lebih realistis dapat dilakukan untuk menghasilkan kontrol adaptif yang lebih baik. Perhitungan perkiraan kemiringan dari loss function yang digunakan dalam penelitian ini adalah two-sided gradient approximation. Penelitian yang sama menggunakan perhitungan one-sided gradient approximation dapat dilakukan untuk mengevaluasi kemungkinan pengaruhnya untuk mengurangi jumlah pengukuran dan pengaruhnya pada kecepatan sistem mencapai kondisi stabil. Penelitian lebih jauh untuk mengaplikasikan kontrol adaptif ini juga dapat dilakukan. Tidak seperti pada penelitian ini yang selalu mengembalikan motor ke kondisi awal dan input posisi yang konstan, pada aplikasinya nilai input posisi ini dapat dikendalikan sesuai dengan posisi-posisi yang ingin dicapai (pada aplikasi mobile robot misalnya). Evaluasi juga dapat dilakukan untuk menganalisa fungsi adaptif dalam mengatasi perubahan pada beban dan lingkungan dengan jumlah iterasi yang tidak terbatas. Pada aplikasi lebih disarankan untuk menggunakan koefisien PID awal yang mendekati optimal sehingga fungsi adaptif dapat dievaluasi untuk mengatasi perubahan beban dan lingkungan sistem.
Daftar Pustaka [1] [2] [3] [4]
Ogata, K. (1981). Teknik Kontrol Automatik. Jilid 1 Edisi 2. Erlangga. ISBN 979-411-466-9 M. M. Gupta. (1985). Adaptive Methods for Control Systems Design: An Overview. IEEE PRESS. Warwick, K. (1990). Adaptive Control: An Insight. Computing & Control Engineering Journal. Tan, S. (2005). Sistem Kontrol PID 16-bit Menggunakan FPGA. Proc. Seminar Nasional: Soft Computing, Intelligent Systems and Information Technology. [5] Spall, James C. (1998). An Overview of the Simultaneous Perturbation Method for Efficient Optimization. Johns Hopkins APL Technical Digest, Vol 19 No 4. [6] Spall, James C. (1998). Implementation of the Simultaneous Perturbation Algorithm for Stochastic Optimization. IEEE Transactions on Aerospace and Electronic Systems, Vol 34 No 3.
184