Solar charge Controler with pid

Diagram alir system control charging with PID
PV Charge Controller MPPT PID

Konsep Dasar Sistem (Closed-Loop Control)

Alur di diagram:

Pada sistem kontrol arus untuk solar charger, proses dimulai dari target current, yaitu nilai arus yang diinginkan untuk mengisi baterai. Nilai ini biasanya ditentukan berdasarkan jenis baterai, misalnya sekitar 2A untuk baterai lithium atau 5A untuk baterai lead-acid. Target arus ini dapat berasal dari pengaturan manual (setpoint) maupun dari algoritma yang lebih canggih seperti Maximum Power Point Tracking (MPPT), yang menyesuaikan arus agar daya dari panel surya optimal.

Selanjutnya, sistem menghitung error, yaitu selisih antara arus target dan arus yang terukur, yang dirumuskan sebagai error=ItargetImeasurederror = I_{target} – I_{measured}. Nilai error ini menjadi inti dari mekanisme kontrol. Jika arus aktual lebih kecil dari target (error positif), maka sistem akan meningkatkan duty cycle PWM untuk menaikkan arus. Sebaliknya, jika arus terlalu besar (error negatif), sistem akan menurunkan duty cycle untuk mengurangi arus yang mengalir ke baterai.

Nilai error tersebut kemudian diproses oleh PID controller yang diimplementasikan pada mikrokontroler seperti Arduino atau ESP32. PID (Proportional-Integral-Derivative) bekerja dengan mengombinasikan tiga komponen: respons terhadap error saat ini (proportional), akumulasi error masa lalu (integral), dan prediksi perubahan error (derivative). Hasil dari proses ini adalah sinyal kontrol berupa nilai duty cycle PWM dalam rentang 0–100%, yang menentukan seberapa besar energi yang akan disalurkan ke sistem daya.

Sinyal PWM ini kemudian diterapkan pada switching circuit atau rangkaian daya, yang umumnya terdiri dari MOSFET dan driver, serta menggunakan topologi buck converter. Rangkaian ini berfungsi untuk mengatur aliran energi dari panel surya ke baterai secara efisien. Ketika duty cycle PWM tinggi, MOSFET akan lebih lama dalam kondisi ON sehingga arus yang mengalir menjadi lebih besar. Sebaliknya, duty cycle rendah akan menghasilkan arus yang lebih kecil.

Akhirnya, sistem membutuhkan current sensor sebagai umpan balik (feedback) untuk mengukur arus aktual yang mengalir ke baterai. Sensor yang umum digunakan antara lain INA219, ACS712, atau resistor shunt. Data arus ini dikirim kembali ke mikrokontroler untuk dibandingkan dengan target arus, sehingga membentuk sistem kontrol loop tertutup (closed-loop system). Dengan mekanisme ini, sistem dapat secara otomatis menyesuaikan kondisi agar arus pengisian tetap stabil sesuai dengan nilai yang diinginkan.

Cara Kerja Sistem Secara Nyata

Cara kerja sistem kontrol arus pada solar charger ini berlangsung secara berulang dalam suatu loop tertutup (closed-loop) dengan periode sampling yang sangat cepat, biasanya setiap 1 hingga 10 milidetik. Pada setiap siklus, mikrokontroler pertama-tama membaca nilai arus aktual dari sensor, seperti INA219 atau sensor berbasis shunt resistor. Nilai arus ini kemudian dibandingkan dengan target arus yang telah ditentukan sebelumnya untuk menghitung error, yaitu selisih antara arus yang diinginkan dan arus yang terjadi di sistem.

Setelah error diperoleh, nilai tersebut diproses oleh algoritma PID yang bertugas menentukan respons kontrol yang optimal. PID akan mempertimbangkan kondisi error saat ini, akumulasi error sebelumnya, serta kecenderungan perubahan error, sehingga menghasilkan sinyal kontrol yang halus dan stabil. Output dari PID ini berupa nilai duty cycle PWM yang akan digunakan untuk mengatur kerja MOSFET pada rangkaian switching.

Selanjutnya, mikrokontroler memperbarui sinyal PWM yang dikirim ke MOSFET. Perubahan duty cycle ini secara langsung memengaruhi jumlah energi yang dialirkan dari panel surya ke baterai, sehingga arus dapat dinaikkan atau diturunkan sesuai kebutuhan. Setelah itu, proses kembali ke tahap awal dan diulang terus-menerus. Dengan loop yang cepat dan kontinu ini, sistem mampu merespons perubahan kondisi secara real-time dan menjaga arus pengisian tetap stabil sesuai dengan target yang diinginkan.

Implementasi Project (Step-by-Step)

Hardware Yang Dibutuhkan

  • Arduino / ESP32
  • MOSFET (IRFZ44N / IRLZ44N)
  • Driver (optional: IR2104)
  • Induktor (untuk buck converter)
  • Dioda fast recovery
  • Current sensor (INA219 recommended)
  • Solar panel + baterai

Contoh Struktur Code Arduino

float Kp = 0.5, Ki = 0.1, Kd = 0.01;
float error, prev_error = 0;
float integral = 0;
float duty;

void loop() {
  float I_meas = readCurrent();   // dari INA219
  float I_target = 2.0;           // target arus (Ampere)

  error = I_target - I_meas;

  integral += error;
  float derivative = error - prev_error;

  float output = Kp*error + Ki*integral + Kd*derivative;

  duty = constrain(output, 0, 255);
  analogWrite(PWM_PIN, duty);

  prev_error = error;

  delay(10);
}

Hubungan dengan Solar Charger

Mode kontrol ini biasanya dipakai untuk:

CC (Constant Current Charging)

  • Arus dijaga konstan
  • Tegangan akan naik perlahan

CV (Constant Voltage) (upgrade)

  • Saat baterai penuh → pindah ke kontrol tegangan

Berikut adalah desaian rangkaian elektronik yang dapat di implementasikan: