---
# System prepended metadata

title: Sistem Solar Tracking

---

# Sistem *Solar Tracking*

## Nama Anggota Kelompok:
* Atanasius Pradiptha Sampurno - 1103213036
* Badi Rafli Rizky Purnama - 1103213178
* Falah Muhammad Akbar - 1103213135
* Muhammad Fadhil Nararya Basuki - 1103210009
* Reffa Kresna Dwifayangga - 1103210147
* Yusran Yasir - 1103213166


## Daftar Isi
[TOC]

 **[CLO 4]** Memiliki kemampuan untuk menganalisis sistem kendali loop tertutup pada kondisi transien dan steady state untuk melihat perfomansinya.
 **[CLO 5]** Memiliki kemampuan merancang sistem kendali motor DC.
 
## 1. Pendahuluan
### 1.1 Latar Belakang
*Clean energy* merupakan salah satu topik yang paling banyak dibahas pada zaman ini. Salah satu contoh dari *clean energy* adalah energi surya yang memanfaatkan cahaya matahari. Teknologi seperti panel surya telah dikembangkan untuk menangkap dan mengonversi energi matahari menjadi listrik yang dapat digunakan untuk berbagai kebutuhan, mulai dari penerangan rumah tangga hingga pengoperasian fasilitas industri. 

Pada proyek berjudul "Sistem *Solar Tracking*" ini, kami membuat sebuah sistem sederhana, dimana solar paner bergerak berdasarkan arah cahaya matahari. Alat ini menggunakan *photoresistor* sebagai sensor, dan servo sebegai *actuator*. Alat ini juga dilengkapi dengan sistem PID untuk memaksimalkan penangkapan cahaya matahari. 

### 1.2 Tujuan
Adapun tujuan dari pembuatan dan laporan "Sistem *Solar Tracking*" ini adalah:
1. Mendapatkan nilai tugas besar dari mata kuliah Sistem Kendali dan Mekanika;
2. Memahami dan mengimplementasikan materi CLO 4 dan CLO 5 dari mata kuliah Sistem Kendali dan Mekanika;
3. Mengimplementasikan sistem PID dengan pembuatan sebuah alat secara langsung;
4. Membuat sebuah alat yang meningkatkan efisiensi penangkapan energi surya melalui penyesuaian posisi panel surya secara otomatis berdasarkan arah cahaya matahari.

## 2. Rancangan Sistem Kendali *Close-Loop* PID 
### 2.1 Sistem *Close-Loop*
#### 2.1.1 Gambar Diagram 
![close loop tubes fix.drawio](https://hackmd.io/_uploads/H16MMARBR.png)


#### 2.1.2 Alat dan Bahan
1. Photoresistor
Berfungsi untuk mendeteksi cahaya. Apabila photoresistor mendeteksi cahaya dengan intensitas tertentu, maka komponen ini akan mengirimkan sinyal kepada mikrokontroler.

2. Arduino Uno
Arduino berfungsi sebagai mikrokontroler pada alat ini. Arduino berfungsi untuk membaca, memproses, dan mengendalikan pembukaan tirai. Arduino akan menerima sinyal dari photoresistor. Photoresistor akan mengirimkan sinyal kepada arduino apabila cahaya terdeteksi, sehingga arduino mengirimkan sinyal kepada servo sehingga tirai dapat dibuka.

3. Servo
Servo berfungsi sebagai penggerak *solar panel* sehingga bergerak berdasarkan arah matahari. Servo akan mendapatkan sinyal dari arduino sehingga akan bergerak sesuai dengan arah cahaya yang terdeteksi.


4. Breadboard
Breadboard berfungsi sebagai tempat perakitkan alat.

5. Kabel Jumper
Kabel berfungsi untuk menghantarkan arus listrik.

6. Stereofoam
Berfungsi sebagai alas dan arm dari alat.

#### 2.1.3 Penjelasan Close-Loop 
1. Set Point: Arah cahaya matahari
2. Mikrokontroller: Arduino Uno
3. Actuator: Mikro Servo
4. Process: Penggerakkan tangan servo ke arah cahaya
5. Controlled Variable: Arah solar panel 
6. Sensor: Photoresistor

### 2.2 Sistem Kendali PID
#### 2.2.1 Pengertian PID
Sistem kendali PID (*Proportional*, *Integral*, dan *Derivative*) adalah teknik kontrol yang digunakan untuk meningkatkan presisi suatu alat dengan menggunakan *feedback*, biasanya berupa sensor, pada alat tersebut[1].

#### 2.2.2 Impementasi PID pada Alat
Pada alat yang kami buat, nilai P, I, dan D memiliki pengaruh masing-masing pada respon sistem. Fungsi dari nilai-nilai ini untuk memberikan pengarahan warna yang lebih akurat. Berikut merupakan penjelasan pengaruh setiap nilai di alat ini:
 - Fungsi nilai P
Nilai P dari alat ini bertanggung jawab untuk mengatur output berdasarkan nilai kesalahan saat ini. Ini adalah ukuran mengapa output harus berubah sebesar-besarnya dalam respons terhadap kesalahan. Nilai P yang lebih tinggi akan menyebabkan sistem merespon lebih agresif terhadap perubahan kesalahan, sedangkan nilai P yang lebih rendah akan menyebabkan sistem merespon lebih lambat. Saat waktu P dihitung dengan mengalikan nilai kesalahan saat ini dengan nilai P gain (Kp).
 - Fungsi nilai I
Nilai I bertanggung jawab untuk mengatur output berdasarkan akumulasi nilai kesalahan yang terjadi sebelumnya. Ini adalah ukuran mengapa output harus berubah berdasarkan sejarah kesalahan. Nilai I yang lebih tinggi akan menyebabkan sistem merespon lebih kuat terhadap kesalahan yang terjadi secara terus-menerus, sedangkan nilai I yang lebih rendah akan menyebabkan sistem merespon lebih lemah. Term I dihitung dengan mengalikan jumlah kesalahan yang terjadi sebelumnya dengan nilai I gain (Ki).
 - Fungsi nilai D
Nilai D bertanggung jawab untuk mengatur output berdasarkan tingkat perubahan nilai kesalahan. Ini adalah ukuran mengapa output harus berubah dalam respons terhadap perubahan kesalahan. Nilai D yang lebih tinggi akan menyebabkan sistem merespon lebih agresif terhadap perubahan kesalahan yang cepat, sedangkan nilai D yang lebih rendah akan menyebabkan sistem merespon lebih lambat. Term D dihitung dengan mengalikan tingkat perubahan nilai kesalahan dengan nilai D gain (Kd).
    
## 3. Mekanik Aktuator
Mekanik aktuator pada sistem solar tracking bertujuan untuk menggerakan panel surya agar selalu menghadap ke arah cahaya matahari secara optimal. Komponen utama meliputi motor penggerak, gearbox untuk mengatur kecepatan dan torsi, serta mekanisme rotasi dan elevasi. Motor penggerak, yang bisa berupa motor DC atau servo, dikendalikan oleh sistem PID untuk mengatur posisi panel surya berdasarkan data dari sensor cahaya. Mekanisme ini memungkinkan panel surya untuk bergerak mengikuti pergerakan matahari sepanjang hari dan menyesuaikan sudut ketinggian matahari sepanjang tahun. Dengan demikian, sistem solar tracking dapat meningkatkan efiensi penangkapan energi surya dengan mengoptimalkan orientasi panel surya secara otomatis.

## 4. Analisis Respon Transient
### 4.1 Source Code Arduino
#include <Servo.h>

Servo servo;

int eastLDR = 0;
int westLDR = 1;
int east = 0;
int west = 0;
int error = 0;
int calibration = 600;
int servoposition = 90;

float Kp = 2.0; // Proportional gain
float Ki = 0.5; // Integral gain
float Kd = 1.0; // Derivative gain

float pidOutput = 0;
float pidError = 0;
float pidLastError = 0;
float pidIntegral = 0;

void setup() {
  servo.attach(9);
}

void loop() {
  east = calibration + analogRead(eastLDR);
  west = analogRead(westLDR);

  if (east < 350 && west < 350) {
    while (servoposition <= 160) {
      servoposition++;
      servo.write(servoposition);
      delay(100);
    }
  }

  error = east - west;

  pidError = error;
  pidIntegral += pidError;
  float pidDerivative = (pidError - pidLastError);
  pidLastError = pidError;

  pidOutput = Kp * pidError + Ki * pidIntegral + Kd * pidDerivative;

  pidOutput = constrain(pidOutput, -20, 20);

  servoposition += pidOutput;
  servo.write(servoposition);

  delay(100);
}

### 4.2 Percobaan Nilai PID
* Nilai Kp=0 ,Ki=0 ,Kd=0
![891948fa-cb27-485f-acc4-bafd3a785818](https://hackmd.io/_uploads/SJCH51kU0.jpg)

* Nilai Kp=2 ,Ki=5 ,Kd=1
![8b34868f-9bb1-413f-8aaa-5ef2cee87410](https://hackmd.io/_uploads/S1ttckk8A.jpg)

* Nilai Kp=6 ,Ki=5 ,Kd=1
![4a35ebee-6baf-4efc-8441-82e11c4c2262](https://hackmd.io/_uploads/ryoi9ykIA.jpg)

* Nilai Kp=2 ,Ki=7 ,Kd=1
![e87fc44a-5cf1-44c5-97ec-ed29a317d137](https://hackmd.io/_uploads/SJUaq1JIR.jpg)

* Nilai Kp=2 ,Ki=5 ,Kd=3
![b3eaecab-e931-49b2-8cf1-e424320c7ad8](https://hackmd.io/_uploads/B18kokkIC.jpg)


#### 4.2.1 Analisis Hasil Percobaan
1. Nilai Kp 0, Ki 0, Kd 0:
Pengamatan: Dikarenakan nilai Kp, Ki, dan Kd adalah 0 maka Kontroler tidak merespon error sama sekali, kontroler juga tidak mengakumulasi kesalahan apapun, dan term integral tidak memiliki efek apapun.

2. Nilai Kp 2, Ki 5, Kd 1:
Pengamatan:  Dengan nilai Kp, Ki, dan Kd ini, kontroler PID akan memiliki respons yang lebih agresif terhadap perubahan pada tingkat cahaya yang dideteksi oleh LDR. Servo akan bergerak lebih cepat dan lebih jauh untuk mengurangi kesalahan dan mencapai titik setpoint.

3. Nilai Kp 6, Ki 5, Kd 1:
Pengamatan: Saat nilai Kp diubah dari 2 menjadi 6 maka kontroler PID akan memiliki respons yang sangat agresif terhadap perubahan pada tingkat cahaya yang dideteksi oleh LDR. Servo akan bergerak sangat cepat dan sangat jauh untuk mengurangi kesalahan dan mencapai titik setpoint.

4. Nilai Kp 2, Ki 7, Kd 1:
Pemngamtan: Dikarenakan nilai Kp yang kecil maka PID akan memiliki respons yang lebih lambat dan lebih stabil terhadap perubahan pada tingkat cahaya yang dideteksi oleh LDR. Servo akan bergerak lebih lambat dan lebih stabil untuk mengurangi kesalahan dan mencapai titik setpoint.

5. Nilai Kp 2, Ki 5, Kd 3:
Pengamatan: kontroler PID akan memiliki respons yang lebih cepat dan lebih akurat terhadap perubahan pada tingkat cahaya yang dideteksi oleh LDR. Servo akan bergerak lebih cepat dan lebih akurat untuk mengurangi kesalahan dan mencapai titik setpoint.

## 5. Analisis Mekanika
### 5.1 Pengukuran Mekanika Servo
Proyek ini menggunakan mikro servo sebagai aktuator. Di dalam servo, terdapat gir dan motor. Batas beban maksimum dari servo ini adalah 1,6 kg. Motor ini mengubah energi listrik menjadi gerakan mekanik melalui medan magnet. Gaya putar yang dihasilkan diteruskan ke gir penggerak, yang kemudian terhubung ke rangkaian gir (gir yang digerakkan). Hubungan antar gir ini membentuk rasio gir, yang memengaruhi besarnya torsi yang dihasilkan.

Gir pada servo memiliki rasio 1:60 [3]. Hal ini berarti bahwa torsi output merupakan 60 kali lipat dari torsi input. Adapun  perhitungannya sebagai berikut:
- 1,6 kg/cm = input torque x 60
- input torque = 1,6 kg/cm / 60
- input torque = 0,027 kg/cm


## 6. Hasil dan Saran
### 6.1 Hasil
Hasil yang kami dapatkan adalah pengaruh PID pada pergerakan servo. PID mempengaruhi kecepatan dan kestabilan perputaran servo. Semakin tinggi nilai kp, maka akan semakin cepat perputaran servo. Nilai PID yang paling optimal dalam kestabilan alat adalah 2, 3, dan 5 secara berturut.

Masalah yang kami hadapi adalah apabila cahaya banyak yang masuk kedua sensor, alat menjadi tidak stabil. Hal ini dapat dilihat dalam servo yang bergerak-gerak sendiri.

### 6.2 Saran
Berikut adalah beberapa saran apabila ingin mengaplikasikan PID kepada solar tracking
1. Model Matematis: buat atau identifikasi model matematis yang menggambarkan perilaku sistem solar tracking dan harus mencangkup variabel variabel seperti posisi matahari ,sudut panel surya dan juga input yang diinginkan untuk tracaking.

2. Turning PID: Langkah selanjutnya adalah menentukan parameter - parameter PID(Kp,Ki,Kd)
- Propotional(P): Mengontrol seberapa jauh panel surya bergerak dari titik refrensi saat ini.
- Integral(I):Menangani kesalahan sistematis seperti offset yang mungkin terjadi dalam pengaturan proposional.
- Derivative (D): Mengantisipasi perubahaan cepat dalam posisi matahari dan membantu mengurangi overshoot.

3. Monitoring dan Pemeliharaan : setelah mengimplementasikan kontrol PID, penting untuk terus memantau kinerja sistem dan melakukan pemeliharaan rutin.

4. Pengujian dan Penyesuaian : lakukan pengujian menyeluruh untuk memvalidasi kinerja sistem dalam berbagi kondisi cuaca dan intensitas cahaya matahari.Sesuaikan parameter PID jika diperlukan untuk memastikan sistem berkinerja optimal.

## Video
https://youtube.com/shorts/J9ZkkmG5sTE?feature=share

## Referensi
[1] Dewi, Imelda Z.T., “Kontrol PID (Proportional Integral Derivative Controller)”, Medium, 23 Februari 2020. [Online]. Diakses dari: https://imeldaazahraa.medium.com/kontrol-pid-proportional-integral-derivative-controller-c173086724af. [Diakses 10 Juni 2024].
[2] Amol, Than Kuot., "How to make a solar tracking system using Arduino step by step", Sritu Hobby, 23 November 2023. [Online]. Diakses dari: https://srituhobby.com/how-to-make-a-solar-tracking-system-using-arduino-step-by-step/#google_vignette
[3] Hallroad, JK., "Tower Pro Micro Servo 9G SG90 Motor 180 Degree", Jumat, 21 Juni 2024. Diakses dari: https://www.majju.pk/product/tower-pro-micro-servo-9g-sg90-180-degree/#:~:text=Operating%20voltage%3A%204.8%2D6V,Gear%20ratio%3A%201%3A60
