Hello sahabat Anak Kendali.
Pada kesempatan kali ini saya akan menuliskan artikel tentang Arduino, Tutorial PID untuk Air Heater dengan Sensor LM35 tanpa Library (Identifikasi)
sebelumnya kita akan berkenalan dulu dengan PID Controller jangan sampai tidak mengenalnya kemudian kita langsung menerapkan PID pada sistem kita.
Keyword :
Aplikasi PID pada Arduino.
Program PID Arduino
Tutorial PID dengan Arduino
PID tanpa Library
PID Arduino
Contoh Program PID
PID adalah singkatan dari Proportional, Integral dan Derivative pengendali sistem yang sangat familiar dan banyak yang menggunakan meskipun sudah terbilang cukup tertinggal, atau jadul.
kenapa demikian ?
PID selain mudah diaplikasikan juga komputasinya tidak terlalu berat pada komputer atau mikrokontroller. sehingga sebagian besar dari orang Teknik Kontrol masih menggunakan PID sebagai pengendali sistemnya.
PID merupakan salah satu pengendali kalang tertutup yang memerlukan sensor sebagai umpan balik nya. sehingga ada yang bilang jika ingin menerapkan PID tanpa sensor itu berarti PID Hoax.
dan pada artikel ini kita akan mempelajari penerapan PID controller menggunakan Arduino tanpa bantuan Library sehingga kita dapat lebih memahami konsep PID itu sendiri.
sistem yang akan kita buat adalah Air Heater atau Pemanas Udara sehingga artikel ini bisa juga di sebut dengan judul PID Sistem pada Air Heater menggunakan Arduino
sebelum masuk ke materi PID, siapkan alat alatnya terlebih dahulu.
Heater Element (Heater untuk penetas telur)
PSU 12V 10A (dibutuhkan Arus yang besar, karena Heater makan banyak arus, uji coba 5A masih kurang)
Arduino Uno / Nano / Promini / mega 2560
Sensor LM35
Driver Mosfet PWM (untuk ngdrive Heater)
Kipas CPU / kipas apapun (untuk membantu panas menyebar, sesuai namanya, Pemanas Udara)
saya yakin jika sudah akan mempelajari PID controller artinya sudah mengerti cara merangkai semua komponen yang ada di atas, jika belum menegerti, sebaiknya, pelajari dulu dasar elektronika, karena terburu2 juga tidak baik.
– Akuisisi Data / Perekaman Data / Pengambilan Data pada proses ini kita akan mengambil data Output berdasarkan Input yang kita berikan, yang kemudian datanya digunakan untuk Identifikasi Sistem (Pncarian Model Matematis)
untuk melakukan Perekaman data silahkan gunakan program Arduino Berikut.
#define pinSensor A0
int val;
float suhu;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
analogWrite(5, 255);
val = analogRead(pinSensor);
suhu = val / 2.0479;
Serial.println(suhu);
delay(100);
}
Buka Serial Monitor dan amati keluaran Suhu yang terekam oleh sensor lm35, sampai suhu mencapai nilai Steady State.
kemudian Copy Paste kan data dari Serial Monitor Arduino ke Excell.
dari gambar Excell diatas, datanya sampai 3000 lebih. dan pada bagian kolom A semuanya di isi nilai 255, karena pada program Arduino diatas, kita menggunkaan nilai Input PWM 255 untuk mendapatkan nilai Suhu tersebut. kemudian Save data pada excell nya.
– Identifikasi Sistem
pada proses ini kita akan menggunakan Aplikasi MATLAB, untuk melakukan Identifikasi Sistem, karena pada matlab terdapat toolbok Identifikasi, tidak hanya matlab, kita juga bisa menggunkaan Labview, atau bahkan program lainya. tergantung kemampuan kita.
Buka Aplikasi MATLAB. pilih HOME, dan Import Data, masukan Data Excell yang sudah kita simpan tadi.
selanjutnya
kemduian Import Selection.
maka data sudah masuk ke dalam aplikasi Matlab.
selanjutnya buka Toolbox Identifikasi dengan cara memanggil pada command window “ident”
klik Import data >> Time Domain Data
Selanjutnya ikuti seperti pada gambar dibawah
data tadi silahkan di bagi range nya untuk melakukan validasi, dengan cara klik Preprocess kemudian pilih Range.
saya membagi data dari 3238 menjadi 1/2, 1/3 dan 1/4 sehingga dihasilkan 4 data lainya dari data utama.
kemudian kita melakukan pencarian Model. bisa menggunakan ARX, ARMAX, OE dan BJ.
Cara nya klik Estimate >> Polinomial Models silahkan tentukan sendiri mau menggunakan yang mana. dan angkanya dapat di ganti sesuka kita.
Ceklis Models Output dan Resids Output.
model output dianggap baik jika Best Fit mendekati 100, maka sebisa mungkin cari yang mendekati 100. dan validasikan dengan beberapa data lainya.
jika perubahanya tidak jauh, maka model tersebut boleh dipilih.
dan untuk Residual nya paling baik jika antara 1 dan -1.
selanjutnya data yang di pilih, drag dan drop kan ke Workspace, untuk melihat hasilnya.
saya memilih bj2221 dan mendapatkan hasil seperti pada gambar di atas
berdasarkan rumus BJ yaitu Y = [B/F]u + [A/B]e
maka gunakan data B dan F untuk Numerator dan Denumeratornya.
sehingga fungsi alihnya = [0, 0.0012, 0.0012] / [1, -0.0441, -0.9479]
fungsi alih tersebut yang akan kita gunakan untuk simulasi dengan simulink.
-Simulasi
pada tahap ini kita akan membuat simulasinya, untuk mencari parameter KP, KI dan KD
buat lah simulink seperti berikut :
untuk saturasi silahkan set nilai limit down = 0 dan limit up = 255
cari nilai KP KI dan KD untuk mendapatkan respon terbaik mu.
diatas adalah gambar respon terbaik yang saya dapatkan, dengan nilai Kp = 10, Ki=0.38 dan Kd = 0
respon diatas steady state pertama pada saat nilai T = 40s
dan itu merupakan waktu yang cukup lama.
karena sudah terlalu panjang Artikelnya. untuk pengujian PID dengan Arduino akan saya tulis pada artikel selanjutnya.
Selanjutnya : Arduino, Tutorial PID untuk Air Heater dengan Sensor LM35 tanpa Library (Pengujian) untuk berdiskusi silahkan di komentar, atau chat WA yang ada di pojok bawah kiri.
kalau pakek ARMAX yang diambil untuk numerator dan denumartor yang mana kak?