Pengembangan Kontroler PID Digital Menggunakan Matlab dan Proteus - Nurcahyo, Sidik; Sungkono, Sungkono; Yulianto, Yulianto; Shandy, Hairus (TELKA - Telekomunikasi Elektronika Komputasi dan Kontrol, 2025)
Artikel ini membahas aspek teknis terkait desain dan implementasi kontroler PID digital pada mikrokontroler menggunakan Matlab dan Proteus. Matlab digunakan untuk mencari parameter PID digital yang tepat sesuai dengan beberapa kriteria perancangan, seperti gain margin, frekuensi crossover, dan amplitudo maksimal aktuator. Sedangkan Proteus digunakan untuk mengimplementasi dan menguji PID digital hasil rancangan. PID digital tersebut diimplementasikan pada mikrokontroler AVR 8-bit yang dilengkapi dengan program PID berupa kode C WinAVR. Fungsi alih plant yang akan dikontrol dianggap telah diketahui dan parameter PID ditala menggunakan tool Matlab bernama pidtune. Tahap implementasi dan pengujian dimulai dengan membuat diagram simulasi Proteus yang memuat plant, sensor, aktuator dan kontroler PID. Kode program PID pada mikrokontroler dibuat berdasarkan persamaan beda yang diturunkan dari rumus PID digital hasil diskritisasi Euler Backward. Untuk menjamin bahwa program PID dijalankan sekali setiap waktu sampling yang ditentukan maka kode program PID diletakkan pada vektor interupsi timer. Hasil pengujian dengan waktu sampling 10ms menunjukkan bahwa respon PID digital didalam Proteus sangat mendekati respon PID analog didalam Matlab, dimana selisih output pada waktu mantap hanya 0.0134 atau 0.089% dari setpoint. Hal ini membuktikan bahwa PID yang dirancang menggunakan Matlab telah berhasil diimplementasikan secara digital pada mikrokontroler AVR 8-bit. This article discusses technical aspects related to design and implementation of digital PID controller on microcontroller using Matlab and Proteus. Matlab is used to find the right digital PID parameters according to some design criterias, such as gain margin, crossover frequency, and maximum actuator amplitude. Meanwhile, Proteus is used to implement and test the designed digital PID. This controller is implemented on an 8-bit AVR microcontroller which is equipped with PID program in the form of WinAVR C code. The plant transfer function to be controlled is assumed to be known and the PID parameters are tuned using Matlab tool named pidtune. The implementation and testing begin by creating Proteus simulation diagram containing plant, sensor, actuator and PID controller. PID program code on the microcontroller is created based on difference equation derived from the digital PID formula result of Euler Backward Discreatization. To guarantee that this program is executed once every specified sampling time, this code is placed in timer interrupt vector. The test results with sampling time 10ms show that Digital PID response in Proteus response is very close to analog PID in Matlab response, where otput difference at setting time is only 0.0134 or 0.089% of setpoint. This proves that the digital PID designed with Matlab has been successfully implemented on 8-bit AVR microcontroller.