Categories: ArduinoArduino Pemula

Tutorial PID Arduino Air Heater dengan Sensor LM35 (Bagian Identifikasi)

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.

chaerul

View Comments

  • kalau pakek ARMAX yang diambil untuk numerator dan denumartor yang mana kak?

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…

6 days 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