Hello sahabat Anak Kendali
Pada kesempatan kali ini saya akan menuliskan artikel tetang Tutorial PID Arduino Kontrol Sistem Pemanas Udara Otomatis.
Program PID pada mikrokontroler sebenarnya sangat sederhana dan mudah dibandingkan program Fuzzy Logic tapi kebanyakan orang orang menganggap program PID dengan Arduino itu susah karena di tempat kuliah dosen mengajarkan PID dengan simulasi dulu. dan kali ini saya buat tutorial PID dengan arduino supaya orang lain mudah mengerti
Apa itu PID ?
PID merupakan metode pengendali lama dalam suatu sistem yang terdiri dari tiga parameter Proportional, Integral dan Derivatif
PID adalah pengendali yang sangat sederhana dan masih banyak digunakan pada peran industri, dikarenakan algoritma nya yang sederhana, mudah digunakan dan komputasinya tidak berat.
Baca Juga : Arduino, Tutorial PID untuk Air Heater dengan Sensor LM35 tanpa Library (Identifikasi)
Setiap parameter memiliki peran penting dalam sebuah sinyal respon atau output, adapun bagian penting pada sebuah sinyal respon adalah :
Rise Time
Overshoot
Setling Time
Steady State Error
Rise Time
Rise time merupakan waktu pertama kali sinyal sampai pada titik set-point
Overshoot
Overshoot merupakan sinyal yang melebihi batas dari set-point pada saat pertama menuju set point
Setling Time
Setling Time merupakan waktu pada saat sinyal turun pertama kali dari steady state sampai naik lagi , sehingga menyebabkan sinyal berisolasi
Steady State Error
Steady State Error merupakan kondisi sinyal yang tidak sampai pada set-point (steady state)
untuk pengaruh dari setiap parameter PID terhadap respon sinyal dapat di lihat pada tabel di bawah ini.
Pengambilan Data
pengambilan data merupakan langkah awal untuk membuat simulasi pengendalian PID menggunakan Software MATLAB, hasil perekaman data akan digunakan untuk identifikasi sistem.
Identifikasi Sistem
Identifikasi Sistem merupakan pencarian model matematis pada suatu sistem berdasarkan Input dan Output yang merepresentasikan perilaku sistem tersebut.
Simulasi Pengendali PID dengan Matlab Simulink
Simulasi berguna untuk mencari masing – masing nilai parameter P I dan D dengan melihat hasil sinyal responnya,
jika model matematis yang di dapat dari hasil identifikasi sistem berhasil dan benar maka nilai parameter yang di tentukan pada simulasi juga dapat bekerja dengan baik saat diterapkan pada sistem yang sebenarnya.
jika proses validasi pada sistem gagal, maka bisa di lakukan percobaan ulang mulai dari tahap pengambilan data.
Rangkaian Skematik
untuk sekamtik sensor nya sudah ada pada artikel : Belajar Arduino, Mengakses Sensor Suhu NTC Thermistor 10K
tinggal tambahkan driver untuk element heater nya seperti modul mosfet yang sudah jadi, atau driver motor yang kuat mengangkat beban sampai 10A atau lebih
Code PID Arduino
Berikut merupakan code Arduino untuk Sistem Kendali Pemanas Udara Otomatis Menggunakan PID.
atau bisa juga langsung copy paste di bawah ini.
int ThermistorPin = A7;
int Vo;
float R1 = 10000;
float logR2, R2, T, Tc, Tf;
float c1 = 1.009249522e-03, c2 = 2.378405444e-04, c3 = 2.019202697e-07;
float Kp = 8;
float Ki = 0.1;
float Kd = 0;
float Error, dError, sum_Error;
float sp = 38;
float suhu_C() {
Vo = analogRead(ThermistorPin);
R2 = R1 * (1023.0 / (float)Vo - 1.0);
logR2 = log(R2);
T = (1.0 / (c1 + c2 * logR2 + c3 * logR2 * logR2 * logR2));
Tc = T - 273.15;
Tf = (Tc * 9.0) / 5.0 + 32.0;
return Tc;
delay(100);
}
int pid (float p, float i, float d)
{
dError = Error;
Error = sp - suhu_C();
sum_Error += Error;
float P = p * Error;
float I = i * sum_Error;
float D = (d / 100) * (Error - dError);
float power = P + I + D;
if (power > 255){
power = 255;
}
else if (power < 0){
power = 0;
}
analogWrite (5, power);
return power;
}
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.print (dError);
Serial.print(" ");
Serial.print (Error);
Serial.print(" ");
Serial.print (sum_Error);
Serial.print(" ");
Serial.print (sp);
Serial.print(" ");
Serial.print (suhu_C());
Serial.print(" ");
Serial.println (pid(Kp, Ki, Kd));
}
untuk melihat tutorial dan hasilnya silahkan tonton video di bawah ini.
Mungkin cukup sekian apa yang bisa saya bagikan kali ini, semoga bermanfaat, dan jika ada yang ingin di tanyakan silahkan berkomentar di bawah ini.
Pencarian terkait
Belajar PID Lengkap dengan Program (509)
Tutorial Memprogram PID Arduino (488)
Cara Implementasi PID pada Program Arduino (479)
Aplikasi PID Arduino (389)
Dasar Aplikasi PID (370)
Rumus dasar PID (333)
Penerapan PID dengan Arduino (205)