Implementasi Pengendali PID Digital pada FPGA Nanang Roni Wibowo1), Reski Praminasari2) Teknik Mekatronika, Politeknik Bosowa(penulis 1) email:
[email protected] 2 Teknik Elektro, Politeknik Negeri Ujung Pandang(penulis 2) email:
[email protected] 1
Abstract Pengendali PID mengalami beberapa kali perubahan dalam proses implementasinya, mulai dari implementasi menggunakan perangkat pneumatik/ hidraulik, elektronika analog dengan Op-Amp yang biasa dikenal sebagai pengendali analog. Dengan perkembangan teknologi digital yang pesat selanjutnya realisasi pengendali PID mulai dikembangkan, dalam realisasi secara digital terdapat dua metode implementasi pengendali PID dalam bentuk kode program yang direalisasikan pada perangkat berbasis mikroprosesor/ mikrokontroler dan DSP, dan implementasi dalam bentuk arsitektur perangkat keras yang direalisasikan menggunakan perangkat berbasis SPLD, CPLD, dan FPGA. FPGA mempunyai kelebihan operasi kerja yang cepat dan kemampuan dalam melakukan operasi paralel yang tidak bisa dilakukan oleh sistem berbasis mikroprosesor/ mikrokontroler. Dalam penelitian dibahas mengenai proses realisasi pengendali PID pada chip FPGA dengan menggunakan algoritma incremental, representasi data menggunakan sistem 8 bit dan 16 bit yang diimplementasikan pada chip FPGA Cyclone IVE Altera EP4CE6E22C8. Hasil synthesis diperoleh data pemakaian resource logic elements193/6,272( 3 % ), register 172/6,272(3%), pin 42/92(46%), Embedded multiplier 9-bit elements 3/30(10%). Pemakaian yang paling kritis adalah pemakaian resource pin. Keywords: Pengendali PID, Digital, FPGA
I. PENDAHULUAN Terdapat dua bagian utama dalam sistem pengendalian, yaitu kendalian atau plant dan pengendali atau kontroler. Kendalian merupakan bagian dari sistem yang dikendalikan oleh pengendali sehingga dapat berlaku sebagaimana yang diinginkan oleh operator[1,2,5]. sedangkan pengendali berdasarkan sinyal yang diolah terdiri atas pengendali analog dan digital, dalam proses implementasinya pengendali PID mengalami beberapa kali perubahan yang diawali dengan implementasi pengendali PID pada perangkat pneumatik/ hidraulik, Op-Amp yang lebih dikenal sebagai pengendali analog[1,4,5,8]. Pengendali PID digital mulai dikembangkan seiring perkembangan teknologi komputer, terdapat dua metode implementasi pengendali PID digital, metode implementasi dalam bentuk kode program yang diimplementasikan dalam perangkat mikroprosesor/ mikrokontroler dan digital signal processing (DSP), metode selanjutnya adalah implementasi dalam bentuk arsitektur perangkat keras yang banyak diimplementasikan menggunakan perangkat SPLD, CPLD dan FPGA[4,8]. Kebanyakan pengendali PID diimplementasikan pada
digital sebuah
mikroprosesor/ mikrokontroler dalam bentuk kode program yang disimpan dalam sebuah memori yang selanjutnya prosesor melakukan pengambilan kode (fetches), pendekodean (decodes), pengeksekusian (executes) baris perintah pada kode program, yang mempunyai kelemahan pada kecepatan operasi karena operasi tergantung pada kode program yang mempunyai urutan baris perintah dan instruksi yang banyak membutuhkan banyak siklus mesin[3,4,6,8]. Dalam sebuah pengendali digital melibatkan proses komputasi dengan algoritma yang kompleks sehingga dibutuhkan perangkat yang mampu melakukan proses komputasi yang cepat dan performa yang tinggi dan fleksibel, kebutuhan tersebut berakibat pada peningkatan biaya dan resource yang tidak bisa dikejar oleh sistem berbasis mikroprosesor/ mikrokontroler dan DSP. Field Programmable Gate Array (FPGA) saat ini menjadi salah satu solusi alternatif dalam bidang sistem pengendalian digital yang sebelumnya didominasi oleh sistem berbasis mikroprosesor/ mikrokontroler. Kelebihan yang mampu diberikan oleh teknologi FPGA adalah kemudahan dalam melakukan konfigurasi, perancangan perangkat keras melalui pemrograman dengan bahasa pengembangan perangkat keras (Verilog,
VHDL), kecepatan operasi yang tinggi karena sistem dibangun dalam bentuk arsitektur perangkat keras, kemampuan operasi secara paralel dan perlindungan hak kekayaan intelektual dan penggunaan ulang kode, hal ini terjadi dikarenakan program yang sudah diimplementasikan tidak bisa dikembalikan kedalam bentuk program[ ]. Realisasi pengendali PID digital pada FPGA akan meningkatkan kecepatan, effisiensi, akurasi, keterpaduan sistem kedalam sebuah chip. Penelitan sebelumnya merealisasikan pengendali PID menggunakan chip FPGA EPF10K70RC240-4 yang terdapat pada Altera UP2 Education Board, diperoleh total logic cell yang digunakan sebesar 1.424/3.744 (38%), dan berdasarkan hasil simulasi timing diperoleh frekuensi kerja maksimum yang dapat digunakan sebesar 4,73MHz atau periode minimumnya 211,6ns, dengan realisasi pengendali PID digital menggunakan model direct programming[]. II. PENGENDALI PID DIGITAL Pengendali PID digital merupakan pengendali pada sistem kendali otomatis yang termasuk sistem kendali loop tertutup yang bekerja dengan membandingkan nilai keluaran dari kendalian (y(t)) dengan nilai yang diinginkan (sp(t)) sehingga diperoleh nilai kesalahan atau error (e(t)), tugas dari pengendali PID digital menjaga agar kondisi nilai kesalahan menjadi nol atau sekecil mungkin. Secara umum sistem kendali otomatis ditunjukan pada gambar 1. Sp(t )
e(t)
+
Pengendali PID (Controller)
[ ( )
( )
∫ ( )
]
2.1 Dengan melakukan transformasi laplace terhadap persamaan diatas diperoleh fungsi alih dalam domain frekuensi. ( ) ( )
[
]
2.2 Persamaan fungsi alih yang diperoleh diatas masih belum bisa diimplementasikan kedalam perangkat digital, harus dilakukan pendekatan ke dalam sistem waktu diskrit, dengan melakukan transformasi Z terhadap fungsi alih diatas diperoleh fungsi alih dalam fungsi diskrit, terdapat 3 metode yang dapat dipergunakan. Tabel 1. Metode Dikritisasi Persamaan Pengendali PID. Metode G(z) Metode Backward Difference Metode Euler/ Forward Difference Metode Tustin’s Approximation/ Trapezoidal T = Nilai periode sampling
Dengan menerapkan salah satu metode pada tabel 1 dengan mengganti variabel s pada persamaan 2.2 maka akan diperoleh persamaan hasil transformasi z sebagai berikut. ( ) ( )
[
( ) ( )
[
( ) ( )
[
]
u(t) Kendalian / Plant
y(t)
( )
sensor
Gambar 1. Diagram Blok Sistem Kendali Otomatis
Pengendali PID digital merupakan algoritma pengendalian yang terdiri atas tiga mode proportional, integral, derivative. Persamaan umum yang memenuhi pengendali PID digital dinyatakan dalam bentuk fungsi alih dalam domain waktu kontinyu sebagai berikut.
[
]
] ]
[
]
[
]
2.3
Sehingga dapat disederhanakan menjadi. ( ) ( )
[
]
( )
( )
( )
(
( ) ( ) )
( ) (
( )
( )
)
2.4
Persamaan 2.4 merupakan persamaan beda yang dapat diimplementasikan kedalam program maupun arsitektur perangkat keras pada FPGA, dengan menggunakan komponen adder, delay dan substract. Variabel e(k) menyatakan nilai error pada clock sekarang, e(k-1) menyatakan nilai error pada sinyal clock atau periode sampling sebelumnya. III. METODE PENELITIAN Metode penelitian yang dipergunakan dalam penelitian ini adalah perancangan dan pemodelan dengan menggunakan perangkat lunak Quartus II versi 10.1 Web Edition dan ModelSim-Altera 6.6c yang dipergunakan dalam proses perancangan dan simulasi dari pengendali PID digital pada penelitian. Perangkat keras yang dipergunakan board RZEasyFPGA A2.1 dari DIGI-Bytes yang didalamnya menggunakan chip FPGA Cyclone IVE EP4CE6E22C8N yang diproduksi oleh perusahaan Altera.corp, board juga dilengkapi dengan antarmuka PS-2, VGA, RS232, pushbutton, switch dan sensor serta perangkat programmer USBBlaster. Metode yang dipergunakan dalam perancangan pengendali PID digital yang diimplementasikan ke dalam chip FPGA adalah dengan metode FSMD ( Finite State Machine with Data Path) yang merupakan kombinasi dari FSM ( Finite State Machine ) sebagai bagian sinyal kontrol dan rangkaian sekuensial biasa yang biasa dikenal sebagai Data Path. FSMD digunakan untuk mengimplementasikan sistem yang sering dijelaskan dalam metodologi Register Transfer Level (RTL) yang merupakan pemodelan rangkaian digital dalam bentuk aliran sinyal data yang terjadi antar register pada rangkaian digital, operasi berdasarkan metodologi RTL dilakukan setiap step berdasarkan sinyal clock.
Perancangan data path dirancang dengan mengacu pada persamaan 2.4, sehingga dapat digambarkan diagram blok arsitektur pengendali PID digital adalah ditunjukan pada gambar 2. Pengendali PID digital direalisasikan dengan menggunakan metode Direct Structure yang berdasarkan persamaan 2.4 proses realisasi membutuhkan komponen digital Register sebanyak 3 yang berfungsi menyimpan nilai parameter K1, K2, K3, 3 komponen Multiplier diperlukan untuk melakukan proses perkalian antara parameter pengendalian K1,K2,K3 dengan nilai sinyal kesalahan/ error, nilai error(k-1) yang diperoleh dari periode sampling sebelumnya satu kali yang ditunda oleh delay1 dan nilai error(k-2) dari periode waktu sampling sebelumnya dua kali yang yang ditunda oleh delay2.
Gambar 2. Realisasi Pengendali PID dengan metode Direct Structure
Rancangan bagian kontrol dibangun dengan menggunakan konsep RTL dengan Finite State Machine yang beroperasi berdasarkan diagram ASMD ( Algorithmic State Machine with Data Path ) seperti pada gambar 3. Gambar 3 menunjukan diagram ASMD yang dalam implementasinya membutuhkan 6 register mk-2, mk-1, ek-1, ek2, ek, uk yang diinisialisasi dengan data 0 pada state E0, selanjutnya dilakukan operasi update data parameter pengendalian K1, K2, K3 dan ek yang diperoleh dari pengurangan nilai setpoint dengan nilai umpan balik yang dilakukan pada state E1. Pada state E2 sampai E6 dilakukan operasi aritmatika dasar sebagai berikut.
–2
E0 mk-2ß 0, mk-1ß 0, ek-1ß 0, ek-2ß 0, ekß 0, ukß 0 E1 ek ß error, K1 ßK1,K2 ßK2, K3 ßK3
E8 Anti Windup uk > 64000 Y
T
IV. HASIL DAN PEMBAHASAN Pengendali PID digital direalisasikan dengan menggunakan bahasa pemrograman perangkat keras Verilog menggunakan editor Quartus II Web Edition yang selanjutnya dilakukan synthesis diperoleh data sebagai berikut. Tabel 2. Hasil Synthesis Pengendali PID Digital pada FPGA EP4CE6E22C8
uk ß64000
E2 uKA ß K1*ek uk ß uk E3 uKB ß K2*ek-1 E9 mk ß uk
E4 uKC ß K3*ek-2
E5 uKD ß uKA+uKB
E10 mk-1 ß mk E11 mk-2 ß mk-1
E6 uKE ß uKC+mk-2 E7 uk ß uKD+uKE
E12 ek-2 ß ek-1 E13 ek-1 ß ek
Gambar 3. ASMD ( Algorithmic State Machine Chart with Data Path ) Pengendali PID Digital
Pada state E7 dipergunakan operasi anti windup yang dipergunakan untuk menangani kondisi perubahan nilai error yang berubah secara tiba-tiba dengan nilai yang besar melebihi kondisi, selanjutnya pada state E8E12 dilakukan operasi pengupdatetan terhadap nilai mk =uk, mk-1=mk, mk-2=mk-1, ek-2=ek1, ek-1=ek. Selanjutnya state kembali ke state E1, sistem beroperasi dengan menggunakan sinyal clock yang nilainya berfungsi juga sebagai sinyal periode sampling T. Proses implementasi rancangan pada diagram ASMD pada gambar 3 selanjutnya dituliskan ke dalam kode dengan bahasa pemrograman perangkat keras Verilog yang diintegrasikan dengan kode FSM sehingga dapat diperoleh secara langsung dalam satu kode program bagian kontrol atau FSM dengan Data Path. Representasi data menggunakan 8 bit data dengan arsitektur internal menggunakan representasi data 16 bit.
Tabel 3. Prosentase Pemakaian Resource FPGA EP4CE6E22C8 dari hasil fitter. Keterangan Resource Total Logic Elements 193 / 6,272 (3 % ) Total combinational functions 129 / 6,272 ( 2 % ) Dedicated logic registers 172 / 6,272 ( 3 % ) Total registers 172 Total pins 42 / 92 ( 46 % ) Total virtual pins 0 Total memory bits 0 / 276,480 ( 0 % ) Embedded Multiplier 9-bit elements 3 / 30 ( 10 % ) Total PLLs 0/2(0%)
Hasil synthesis pada tabel 2 menunjukan bahwa hasil realisasi menggunakan resource dari rgister chip FPGA EP4CE6E22C8 sebanyak 196 register dari total 6.272 register , yang digunakan untuk realisasi uk, uk-1, uk2,mk,mk-1,mk-2, K1, K2, K3 dan pada proses fitter menjadi sebesar 172 register sehingga resource dimanfaatkan sebesar 3% . Estimasi pemakaian Logic Elemen (LEs) sebesar 217LEs yang pada proses fitter dioptimasi menjadi hanya 193 LEs sehingga resource yang dipergunakan sebesar 3%. Penggunaan pin pada chip dipergunakan sebanyak 42 pin dari total 92 pin sehingga penggunaan resource pin dipergunakan sebesar
46% . pemakaian elemen Embedded multiplier dipergunakan sebanyak 3 Multiplier 9bit elements sehingga dipergunakan resource sebanyak 10% dari 30 Multiplier yang ada. Pada PLL tidak ada pemakaian karena pada perancangan belum menggunakan fungsi clock divider. Dari hasil synthesis dan fitter menunjukan bahwa kebutuhan terhadap IO yang menunjukan pemakaian terbesar, hal ini dikarenakan sistem pengendali PID dibuat dengan menggunakan direct programming dimana pemakaian Tabel 4. Hasil Simulasi Frekuensi Maksimum Operasi Pengendali PID digital.
Berdasarkan hasil simulasi timing diperoleh data bahwa keseluruhan proses pengendali PID digital mampu dioperasikan dengan menggunakan sinyal clock sebesar 1GHz sehingga kebutuhan waktu operasi hanya memerlukan waktu sebesar 1ns. Periode waktu ini menunjukan bahwa kecepatan operasi dengan menggunakan chip FPGA mampu bekerja dalam ukuran waktu nano second yang hal ini tidak bisa dilakukan oleh perangkat berbasis Mikroprosesor/ mikrokontroler. V. KESIMPULAN Proses implementasi pengendali PID digital dapat diimplementasikan pada chip FPGA EP4CE6E22C8 dengan pemakaian resource logic elements sebesar 193/6.272
atau 3%, register 172/6.272 sebesar 3%, dan pemakaian pin sebesar 42/92 atau 46%, pemakaian elemen multiplier sebesar 3 multiplier 9 bit elements sebesar 10% dari total multiplier. Untuk pemakaian terhadap logic elements dan register serta elemen multiplier masih sedikit, sedangkan untuk pemakaian pin jika dibuat representasi data dengan bit lebih besar maka chip EP4CE6E22C8 tidak mencukupi sehingga dibutuhkan chip dengan users IO yang lebih banyak. Untuk penelitian selanjutnya dapat digunakan metode implementasi secara serial
sehingga dapat dipergunakan pemakaian IO lebih sedikit. UCAPAN TERIMA KASIH Ucapan terima kasih kepada Direktur Politeknik Bosowa dan Direktur Politeknik Negeri Ujung Pandang, Ketua Jurusan dan rekan-rekan dosen yang membantu dalam proses pembuatan jurnal ini. REFERENSI [1]Ogata. Katsuhiko , Teknik kontrol automatic jilid I edisi kedua ( Jakarta : Erlangga, 1996 ). [2]Basri, Muh, Pengendali Digital Universal, Teknik Elektro Universitas Hasanuddin, Makassar, 2011. [3]Triyanto, Dedy. Perancangan Pengendali PID Digital dan Implementasinya Menggunakan FPGA, Sekolah Teknik Elektro dan Informatika ITB, Bandung, 2008. [4]Abdelati, Mohamed, FPGA-Based PID Controller Implementation, The Islamic University of Gaza, Gaza. [5]Kuo, Benjamin C, Teknik kontrol automatic jilid I (Jakarta: Prenhallindo, 1998). [6]Astrom. K, Hagglund. T, PID controllers: theory design and tuning (Research Triangle Park, NC: Instrument Society, 1995). [7]Ogata, Katsuhiko, Discrete time control signal second edition (Englewood Cliffs, NJ: Prentice Hall, 1995). [8]Khan, Hammad, PID Controller: Comparative Analysis and Design of Diverse Realizations (Saarbrucken, Germany: LAP LAMBERT Academic, 2012). [9]Brown. Stephen, Vranesic. Zvonko, Fundamentals of Digital Logic with Verilog Design (Avenue of Americas, NY: McGraw-Hills, 2003). [10]Chu. Pong P, FPGA Prototyping by Verilog Examples (Hoboken, NJ: John Wiley and Sons, 2008).