Implementasi Pengendali PID Digital pada FPGA
Nanang Roni Wibowo1), Reski Praminasari2)1 Teknik Mekatronika, Politeknik Bosowa(penulis 1) email: [email protected]
2 Teknik Elektro, Politeknik Negeri Ujung Pandang(penulis 2) email: [email protected]
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 digital diimplementasikan pada 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.
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.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.
( ) ( ) [ ] ( ) ( ) [ ] ( ) ( ) [ ] [ ] [ ] [ ] 2.3 u(t)
-
y(t) Sp(t )+
e(t) Pengendali PID (Controller) Kendalian / Plant sensor
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 RZ-EasyFPGA 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, 1,
ek-2, 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
mk-2ß 0, mk-1ß 0, ek-1ß 0, ek-2ß 0, ekß 0, ukß 0 E0 ek ß error, K1 ßK1,K2 ßK2, K3 ßK3 E1 uKA ß K1*ek E2 uKB ß K2*ek-1 E3 uKC ß K3*ek-2 E4 uKD ß uKA+uKB E5 uKE ß uKC+mk-2 E6 E8 uk > 64000 uk ß64000 uk ß uk Y T mk ß uk E9 mk-1 ß mk E10 mk-2 ß mk-1 E11 ek-2 ß ek-1 E12 ek-1 ß ek E13 Anti Windup uk ß uKD+uKE E7
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
E8-E12 dilakukan operasi pengupdatetan terhadap
nilai mk =uk, mk-1=mk, mk-2=mk-1,
ek-2=ek-1, 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.
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
Tabel 3. Prosentase Pemakaian Resource FPGA EP4CE6E22C8 dari hasil fitter.
Keterangan Resource
Total Logic Elements Total combinational functions Dedicated logic registers Total registers
Total pins Total virtual pins Total memory bits
Embedded Multiplier 9-bit elements Total PLLs 193 / 6,272 (3 % ) 129 / 6,272 ( 2 % ) 172 / 6,272 ( 3 % ) 172 42 / 92 ( 46 % ) 0 0 / 276,480 ( 0 % ) 3 / 30 ( 10 % ) 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, 1,
uk-2,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).