# Optimasi kendali palang pintu otomatis menggunakan PID ## Nama Kelompok * Muhammad Sadam Erlangga - 1103202153 * Andreas Hasiholan Sinaga - 1103213033 * Ahmad Luthfi Muhajir Munandar - 1103200148 * Raihan Atha - 1103202123 * Andiva Kasih Anggoro Putra - 1103204031 ## Daftar Isi [TOC] **[CLO 4]** Memiliki kemampuan untuk menganalisis sistem kendali loop tertutup pada kondisi transien dan steady state untuk melihat performansinya. **[CLO5]** Memiliki kemampuan merancang sistem kendali motor DC. ## Pendahuluan Di zaman modern, teknologi otomasi menjadi bagian integral dari kehidupan sehari-hari.Penerapan yang umum adalah sistem penghenti pintu otomatis yang digunakan untuk mengatur lalu lintas kendaraan dan pejalan kaki.Untuk memastikan kinerja yang optimal dengan sistem ini, penggunaan kontrol PID (proporsional, integral, derivatif) adalah pilihan utama.Kontrol PID merupakan metode kontrol yang terbukti efektif dalam menjaga stabilitas dan daya tanggap dalam sistem otomatis.Kontrol PID menggunakan kombinasi kontrol proporsional, integral, dan derivatif untuk menyesuaikan kinerja sistem secara dinamis guna mencapai setpoint yang diinginkan.Demo ini berfokus pada optimalisasi kontrol penghenti pintu otomatis menggunakan algoritma PID.Penghenti pintu otomatis ini dirancang untuk memastikan keseimbangan yang tepat antara kecepatan membuka dan menutup pintu, meminimalkan overshoot atau undershoot yang mungkin terjadi. **Tujuan** * Memahami prinsip dasar kendali PID dalam konteks palang pintu otomatis. * Mengobservasi respons sistem terhadap perubahan setpoint atau gangguan eksternal. * Menerapkan tuning PID untuk mencapai kinerja optimal dalam situasi tertentu. * Memahami peran masing-masing komponen PID (proporsional, integral, dan derivatif) dalam meningkatkan respons sistem. **Alat dan bahan** **1**. Sistem palang pintu otomatis dengan kontrol PID. **2**. Sensor posisi atau sensor yang mendeteksi keberadaan kendaraan atau pejalan kaki. **3**. Kontroler PID yang dapat diatur parameter-parameternya. **4**. Antarmuka pengguna atau sistem pemantauan untuk pengaturan dan observasi. ## Rancangan Sistem Kendali Loop Tertutup PID **1**. **Teori Dasar Kendali PID pada Rancangan Sistem Kendali Loop Tertutup PID pada Palang Pintu Otomatis** * Proporsional : Menyesuaikan output secara proporsional terhadap selisih antara setpoint dan posisi aktual sistem. Hal ini membantu mengurangi overshoot atau undershoot. * Integral : Mengatasi kesalahan statis dengan menyesuaikan output seiring waktu, sehingga mencapai nol kesalahan pada kondisi setpoint. * Derivatif : Menyesuaikan output berdasarkan laju perubahan kesalahan, membantu mencegah overshoot atau perubahan yang tiba-tiba. **2**.**Gambar Close Loop System pada Rancangan Sistem Kendali Loop Tertutup PID pada Palang Pintu Otomatis** ![Untitled Diagram.drawio](https://hackmd.io/_uploads/H1x4rTGYup.png) **3**. **Sensor dan Akuator** * Sensor : Mengukur posisi palang pintu, memberikan umpan balik ke kontroler PID. * Actuator : Bertanggung jawab untuk menggerakkan palang pintu sesuai dengan sinyal yang diterima dari sensor HCRSR04. ## Mekanik Motor DC **A**. **Fungsi Transfer Motor DC** * Motor DC adalah salah satu jenis motor listrik yang umum digunakan dalam sistem otomatisasi seperti pada palang pintu otomatis. Fungsi transfer motor DC menyatakan hubungan antara input tegangan dan output kecepatan motor. * Parameter fungsi transfer melibatkan konstanta motor seperti torsi konstan (k), hambatan internal (R ), konstanta waktu (L), dan momen inersia (J). * Fungsi transfer dapat dipresentasikan sebagai berikut: G(s)= w(s)/V(s) dimana G adalah fungsi transfer,w(s)ada;ah kecepatan output,V(s)tegangan input **B**. **Mekanisme Daya Motor DC** * Motor DC menggunakan prinsip elektromagnetik untuk mengubah energi listrik menjadi energi mekanik. * Motor ini terdiri dari dua bagian utama: rotor (bagian yang berputar) dan stator (bagian diam). * Pemberian tegangan pada stator menciptakan medan magnet yang menyebabkan rotor berputar. * Pada penahan pintu otomatis, motor DC menggerakkan mekanisme yang mengontrol penahan pintu. * Kecepatan motor mempengaruhi kecepatan membuka dan menutup kunci pintu. **C**. **Bentuk Mekanik Yang Digunakan** * Pilihan mekanisme sangat tergantung pada desain spesifik sistem palang pintu, kebutuhan kecepatan, dan torsi yang diperlukan untuk mengatasi hambatan gerakan pintu. * Mekanisme harus dirancang sedemikian rupa sehingga dapat mentransmisikan daya secara efisien dari motor DC ke palang pintu, serta memberikan kestabilan dan ketahanan yang diperlukan terhadap kondisi lingkungan seperti beban angin atau tahanan gesek. ## Analisis Transient Respon Untuk melakukan analisis transient response pada sistem kendali PID yang diimplementasikan pada palang pintu otomatis, kita dapat menggunakan Serial Plot pada Arduino untuk memvisualisasikan perubahan variabel-variabel kunci selama waktu. Analisis ini bertujuan untuk memahami bagaimana sistem merespons terhadap perubahan setpoint dan bagaimana PID mengoreksi kesalahan. Saat menganalisis respons sementara sistem kontrol PID yang diterapkan pada palang pintu otomatis, gunakan plot serial Arduino untuk memvisualisasikan perubahan variabel kunci dari waktu ke waktu. Mengaktifkan plotter serial di Arduino IDE mencatat variabel seperti kesalahan, integral, turunan, dan keluaran PID untuk membantu Anda memahami respons sistem Anda terhadap perubahan titik setel dan kondisi lingkungan. Mengamati perubahan variabel-variabel ini dapat membantu Anda mengevaluasi kinerja sistem Anda secara real time, analisis mencakup pemantauan perkembangan kesalahan, akumulasi kesalahan sistem, dan tingkat perubahan kesalahan untuk menghindari melampaui batas dan perubahan mendadak. Pengukuran ini digunakan untuk menginterpretasikan grafik dan, jika perlu, menyesuaikan nilai Kp, Ki, dan Kd pengontrol PID untuk meningkatkan kinerja sistem. Proses ini memungkinkan sistem kontrol PID beradaptasi secara efektif terhadap perubahan kondisi dan menghasilkan respons cepat dan stabil yang memenuhi kebutuhan penghentian pintu otomatis. ``` #include <Servo.h> #define trigPin 12 #define echoPin 11 Servo servo; // Variabel kontrol PID double Kp = 2.0; // Konstanta Proporsional double Ki = 2.0; // Konstanta Integral double Kd = 1.3; // Konstanta Derivatif double setpoint_1 = 5.0; // Batas bawah untuk jarak 0-10 cm double setpoint_2 = 15.0; // Batas bawah untuk jarak 10-20 cm double setpoint_3 = 25.0; // Batas bawah untuk jarak 20-30 cm double error, lastError = 0; double integral = 0, derivative; double dt = 0.1; // Interval waktu (dalam detik) void setup() { Serial.begin(9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); servo.attach(9); } void loop() { long duration, distance; digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); distance = (duration / 2) / 29.1; // Perhitungan error if (distance >= 0 && distance <= setpoint_1) { error = setpoint_1 - distance; } else if (distance > setpoint_1 && distance <= setpoint_2) { error = setpoint_2 - distance; } else if (distance > setpoint_2 && distance <= setpoint_3) { error = setpoint_3 - distance; } else { // Jarak di luar rentang yang didefinisikan, tetapkan error maksimum error = setpoint_3 - distance; } integral = integral + (error * dt); derivative = (error - lastError) / dt; // Output PID double output = (Kp * error) + (Ki * integral) + (Kd * derivative); // Batasan output untuk sudut servo if (output > 180) { output = 180; } else if (output < 0) { output = 0; } // Menyesuaikan sudut servo berdasarkan rentang jarak yang diinginkan if (distance >= 0 && distance <= setpoint_1) { servo.write(180); // Jarak 0-10cm, servo 180 derajat } else if (distance > setpoint_1 && distance <= setpoint_2) { servo.write(120); // Jarak 10-20cm, servo 120 derajat } else if (distance > setpoint_2 && distance <= setpoint_3) { servo.write(60); // Jarak 20-30cm, servo 60 derajat } else { // Jarak di luar rentang yang didefinisikan, servo tetap di posisi awal servo.write(0); } // Print data for Serial Plotter Serial.print("Set Point:"); Serial.print(setpoint_1); // You can replace setpoint_1 with your appropriate setpoint variable Serial.print(","); Serial.print("OutputSensor:"); Serial.print(distance); // You can replace distance with your appropriate sensor output variable Serial.print(","); Serial.print("PIDOutput:"); Serial.print(output); Serial.print(","); Serial.print("Error:"); Serial.print(error); // Menambahkan informasi tentang nilai error Serial.print(","); Serial.print("ServoOutput:"); Serial.println(servo.read()); lastError = error; // Simpan error saat ini untuk penggunaan selanjutnya delay(100); // Waktu penundaan untuk menghitung nilai PID } ``` ![KD 10](https://hackmd.io/_uploads/SJAk9FY_a.jpg) Nilai Kp=10,Ki=0,Kd=0 ![ki=10](https://hackmd.io/_uploads/HkrI5tYdT.jpg) Nilai Kp=0,Ki=10,Kd=0 ![WhatsApp Image 2024-01-08 at 21.12.17_5bb638a4](https://hackmd.io/_uploads/Hklc9Ftua.jpg) Nilai Kp=0,Ki=0,Kd=10 Pengukuran Ulang setelah dilakukan tuning PID ![Screenshot 2024-01-08 215334](https://hackmd.io/_uploads/H1oKhtFOT.jpg) Nilai Kp=2.0,Ki=0.5,Kd=0,.01 ![WhatsApp Image 2024-01-08 at 22.30.19_4fae41e5](https://hackmd.io/_uploads/BJXHuitd6.jpg) Gambar Rangkaian ## Analisis Mekanika - Sistem cenderung berosilasi ketika nilai KP (Proportional Gain) terlalu besar atau ketika kombinasi KP, KI (Integral Gain), dan KD (Derivative Gain) tidak seimbang. Terlalu besarnya nilai KP atau kurangnya nilai KI dan KD dapat menyebabkan sistem menjadi tidak stabil dan rentan terhadap osilasi. - Respons transien sistem dalam kategori kecepatan dapat diukur dengan parameter berikut: 1. *Delay Time (Td):* Waktu yang dibutuhkan oleh sistem untuk merespons pertama kali setelah menerima perubahan pada set point. 2. *Rise Time (Tr):* Waktu yang dibutuhkan oleh sistem untuk mencapai 90% dari nilai set point setelah merespons perubahan. 3. *Peak Time (Tp):* Waktu yang dibutuhkan oleh sistem untuk mencapai puncak respons osilasi, jika ada. 4. *Settling Time (Ts):* Waktu yang dibutuhkan oleh sistem untuk mencapai kondisi stabil setelah melewati osilasi awal. Waktu-waktu ini memberikan gambaran tentang seberapa cepat sistem merespons dan seberapa cepat mencapai kondisi stabil setelah perubahan pada set point. Pengukuran dapat dilakukan menggunakan stopwatch atau alat pengukur waktu yang sesuai. ### Pengukuran Mekanika Gear - Hubungkan kedua gear tersebut dengan kondisi: 1. Posisikan gear yang kecil sebagai driver gear dan gear yang besar sebagai driven gear. Putar driver gear sebanyak 360°. Untuk mengetahui derajat berputarnya driven gear, Anda perlu mengetahui rasio gigi antara keduanya. Jika misalnya rasio gigi 2:1, driven gear akan berputar 180°. 2. Posisikan gear yang besar sebagai driver gear dan gear yang kecil sebagai driven gear. Putar driver gear sebanyak 360°. Berapa derajat driven gear berputar tergantung pada rasio gigi antara keduanya. 3. Menurut kelompok kita, keputusan untuk menggunakan gear yang kecil atau besar sebagai driver gear harus dipertimbangkan berdasarkan kebutuhan aplikasi dan faktor-faktor seperti torsi yang diperlukan dan kecepatan yang diinginkan. Gear yang lebih besar mungkin memberikan torsi lebih besar, sementara gear yang lebih kecil dapat memberikan kecepatan yang lebih tinggi. - Nyalakan motor listrik tanpa beban: 1. Motor tanpa beban seharusnya dapat berputar. 2. Saat beban ditambahkan, analisis hubungan antara torsi (gaya yang menyebabkan rotasi) dan kecepatan dari setiap beban yang ditambah dapat memberikan informasi tentang kinerja motor dalam mengatasi beban tambahan. 3. Jika beban terus ditambahkan dan menyebabkan motor berhenti berputar, keberhasilan menggunakan gear untuk memutar beban tersebut tergantung pada rasio gigi dan torsi yang dihasilkan oleh sistem gearing. 4. Mengatur komposisi gear dapat dilakukan dengan menyesuaikan rasio gigi antara driver gear dan driven gear. Jika rasio gigi dipilih dengan bijak, beban dapat berputar lebih efisien dan motor dapat menangani torsi tambahan. 5. Beban dapat berputar setelah ditambahkan rangkaian gear karena rasio gigi yang dipilih memberikan keuntungan mekanis, mengubah torsi dan kecepatan secara proporsional sehingga motor dapat mengatasi beban yang lebih besar. ## Hasil dan Saran - Kita dapat mengevaluasi dan optimasi sistem kendali PID - Kita dapat mendemonstrasikan sistem mekanisme transfer daya sederhana menggunakan gear dan motor DC. Dan juga kontrol PID berhasil diterapkan pada palang pintu otomatis dengan hasil yang cukup memuaskan. - Melanjutkan pemantauan sistem, memperbarui parameter PID sesuai dengan perubahan, dan mengintegrasikan sistem pemantauan jarak jauh untuk meningkatkan efisiensi dan respons sistem. ## Link Video https://youtu.be/1qJebZHNWXw?si=IYpD-j996zrmz2Ng ## Referensi - Artikel Jurnal: "PID Controller Design for Systems with Time Delay" oleh K. Astrom dan B. Wittenmark - Tutorial Online: "A Brief Introduction to PID Control" di YouTube - Artikel Teknis: "Tuning of PID Controllers for First Order Plus Time Delay Systems" oleh A. P. Tiwari dan S. N. Singh ## Rubrik Penilaian | Penilaian Indikator Ketercapaian CLO | Bobot | | -------- | -------- | | Mahasiswa mampu mengevaluasi dan optimasi sistem kendali PID (soal CLO 4). | 50 % | | Mahasiswa mampu mendemonstrasikan sistem mekanisme transfer daya sederhana menggunakan gear dan motor DC (soal CLO 5) | 50% | ## Kriteria Nilai | 65-80 | 50-65 | 80-100 | 40-50 | 0-40 | | ----- | ----- | ------ | ----- | ---- | | CLO 4 | | | | | |Mampu menjelaskan konsep kendali umpan balik, merancang sistem kendali PID, hingga mengevaluasi dan optimasi sistem kendali PID. |Mampu menjelaskan konsep kendali umpan balik, merancang, dan mengevaluasi sistem kendali PID. |Mampu menjelaskan konsep kendali umpan balik dan merancang sistem kendali PID. |Mampu menjelaskan konsep kendali umpan balik dan PID, tetapi kesulitan dalam merancang dan mengevaluasi sistem kendali PID. |Kesulitan dalam menjelaskan konsep kendali umpan balik dan PID. | | CLO 5 | | | | | |Mampu mendapatkan fungsi transfer sistem dari mekanisme transfer daya, menganalisis hubungan antara torsi dan kecepatan motor, menjelaskan cara kerja dan karakteristik motor listrik, serta mendemonstrasikan sistem mekanisme transfer daya sederhana menggunakan gear dan motor DC. |Mampu mendapatkan fungsi transfer sistem dari mekanisme transfer daya, menganalisis hubungan antara torsi dan kecepatan motor, menjelaskan cara kerja dan karakteristik motor listrik, tetapi kesulitan dalam mendemonstrasikan sistem mekanisme transfer daya sederhana menggunakan gear dan motor DC. |Mampu mendapatkan fungsi transfer sistem dari mekanisme transfer daya, menganalisis hubungan antara torsi dan kecepatan motor, tetapi kesulitan dalam menjelaskan cara kerja dan karakteristik motor listrik. |Mampu mendapatkan fungsi transfer sistem dari mekanisme transfer daya dan menganalisis hubungan antara torsi dan kecepatan motor. |Tidak dapat menentukan satu langkah pun untuk menjelaskan mengenai mekanisme transfer daya. |