Tutorial PID Arduino Kontrol Sistem Pemanas Udara Otomatis

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.

Download Code

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)

chaerul

Recent Posts

Panduan Lengkap: Cara Menyiapkan Klaster Kubernetes pada Ubuntu 22.04 LTS

Pendahuluan Dalam dunia pengembangan perangkat lunak yang terus berkembang, Kubernetes telah muncul sebagai alat kunci dalam orkestrasi…

1 week ago

AplikasiAkademik.com: Solusi Terbaik untuk Manajemen Sekolah yang Efisien

Mengelola sebuah sekolah atau lembaga pendidikan adalah tugas yang kompleks dan penuh tantangan. Dengan berbagai…

7 months ago

Cara Mudah Menginstal OpenVPN Server di Ubuntu 20.04 di Huaweicloud Panduan Langkah demi Langkah

Selamat datang di artikel kami tentang cara menginstal OpenVPN server di Ubuntu 20.04 di HuaweiCloud!…

12 months ago

Install Docker Portainer dan Nginx Proxy Manager Ubuntu Server

Dalam dunia pengembangan aplikasi, salah satu hal yang menjadi penting adalah mengelola dan memonitor kontainer…

1 year ago

Tutorial led blinking lengkap, Wiring & Code

Tutorial led blinking. LED (Light Emitting Diode) merupakan salah satu komponen elektronik yang paling umum…

1 year ago

Tutorial LCD Display Lengkap dengan wiring & code untuk pemula

Tutorial LCD Display, ini merupakan salah satu komponen yang sering digunakan dalam project elektronika sebagai…

1 year ago