Daftar Isi:

Robot Self Balancing Menggunakan Algoritma PID (STM MC): 9 Langkah
Robot Self Balancing Menggunakan Algoritma PID (STM MC): 9 Langkah

Video: Robot Self Balancing Menggunakan Algoritma PID (STM MC): 9 Langkah

Video: Robot Self Balancing Menggunakan Algoritma PID (STM MC): 9 Langkah
Video: PID demo 2024, Juli
Anonim
Robot Self Balancing Menggunakan Algoritma PID (STM MC)
Robot Self Balancing Menggunakan Algoritma PID (STM MC)

Baru-baru ini banyak pekerjaan telah dilakukan dalam keseimbangan objek. Konsep keseimbangan diri dimulai dengan keseimbangan pendulum terbalik. Konsep ini diperluas ke desain pesawat juga. Dalam proyek ini, kami telah merancang model kecil robot penyeimbang diri menggunakan Algoritma PID (Proporsional, Integral, Derivatif). Sejak itu, metode ini adalah wajah baru dari sistem kontrol proses industri. Laporan ini meninjau metode yang terlibat dalam self balancing objek. Proyek ini dilakukan sebagai proyek semester untuk memahami korelasi PID pada efisiensi berbagai proses industri. Di sini kami hanya fokus pada memberikan tinjauan singkat tentang efektivitas dan penerapan kontrol PID. Makalah ini telah dikembangkan dengan memberikan pengantar singkat untuk sistem kontrol dan terminologi terkait, dengan tambahan motivasi untuk proyek tersebut. Eksperimen dan pengamatan telah dilakukan, kelebihan dan kekurangan dijelaskan dengan diakhiri pada perbaikan di masa depan. Sebuah model robot self balancing dikembangkan untuk memahami efektivitas PID dalam dunia sistem kontrol. Melalui beberapa pengujian dan eksperimen yang ketat, kelebihan dan kekurangan sistem kontrol PID ditemukan. Ditemukan bahwa meskipun banyak keuntungan dari kontrol PID dibandingkan metode sebelumnya, sistem ini masih membutuhkan banyak perbaikan. Diharapkan pembaca mendapatkan pemahaman yang baik tentang pentingnya self balancing, efektivitas dan kekurangan kontrol PID.

Langkah 1: Pendahuluan

Dengan munculnya komputer dan industrialisasi proses, sepanjang sejarah manusia, selalu ada penelitian untuk mengembangkan cara untuk menyempurnakan proses dan yang lebih penting, untuk mengendalikannya menggunakan mesin secara mandiri. Tujuannya adalah untuk mengurangi keterlibatan manusia dalam proses ini, sehingga mengurangi kesalahan dalam proses ini. Oleh karena itu, bidang "Rekayasa Sistem Kontrol" dikembangkan. Rekayasa Sistem Kontrol dapat didefinisikan sebagai penggunaan berbagai metode untuk mengontrol kerja suatu proses atau pemeliharaan lingkungan yang konstan dan disukai, baik itu manual atau otomatis.

Contoh sederhananya adalah mengontrol suhu di dalam ruangan. Kontrol Manual berarti kehadiran seseorang di lokasi yang memeriksa kondisi saat ini (sensor), membandingkannya dengan nilai yang diinginkan (pemrosesan) dan mengambil tindakan yang tepat untuk mendapatkan nilai yang diinginkan (aktuator). Masalah dengan metode ini adalah sangat tidak dapat diandalkan karena seseorang rentan terhadap kesalahan atau kelalaian dalam pekerjaannya. Juga, masalah lain adalah bahwa laju proses yang diprakarsai oleh aktuator tidak selalu seragam, yang berarti kadang-kadang dapat terjadi lebih cepat dari yang dibutuhkan atau kadang-kadang mungkin lambat. Solusi dari masalah ini adalah dengan menggunakan mikrokontroler untuk mengontrol sistem. Mikrokontroler adalah

diprogram untuk mengontrol proses, menurut spesifikasi yang diberikan, terhubung dalam sirkuit (akan dibahas nanti), memasukkan nilai atau kondisi yang diinginkan dan dengan demikian mengontrol proses untuk mempertahankan nilai yang diinginkan. Keuntungan dari proses ini adalah tidak diperlukan campur tangan manusia dalam proses ini. Juga, laju prosesnya seragam

Sistem Kontrol Dasar

Diagram sebelumnya menunjukkan versi yang sangat sederhana dari Sistem Kontrol. Mikrokontroler adalah jantung dari setiap Sistem Kontrol. Ini adalah komponen yang sangat penting oleh karena itu, pemilihannya harus dilakukan dengan hati-hati berdasarkan persyaratan Sistem. Mikrokontroler menerima input dari pengguna. Input ini menentukan kondisi Sistem yang diinginkan. Mikrokontroler juga menerima masukan umpan balik dari sensor. Sensor ini terhubung ke output Sistem, yang informasinya diumpankan kembali ke input. Mikroprosesor, berdasarkan pemrogramannya, melakukan berbagai perhitungan dan memberikan output ke aktuator. Aktuator, berdasarkan output, mengontrol pabrik untuk mencoba mempertahankan kondisi tersebut. Contohnya adalah pengemudi motor yang menggerakkan motor di mana pengemudi motor adalah aktuator dan motor adalah pembangkit. Motor, dengan demikian berputar pada kecepatan tertentu. Sensor yang terhubung membaca kondisi plant saat ini dan mengirimkannya kembali ke mikrokontroler. Mikrokontroler kembali membandingkan, membuat perhitungan dan dengan demikian, siklus berulang. Proses ini berulang dan tanpa akhir dimana mikrokontroler mempertahankan kondisi yang diinginkan

Langkah 2: Sistem Kontrol Berbasis PID

Sistem Kontrol Berbasis PID
Sistem Kontrol Berbasis PID
Sistem Kontrol Berbasis PID
Sistem Kontrol Berbasis PID

Algoritma PID adalah metode yang efisien untuk merancang Sistem Kontrol.

definisi

PID adalah singkatan dari Proporsional, Integral dan Derivatif. Pada algoritma ini, sinyal error yang diterima merupakan input. Dan persamaan berikut diterapkan ke sinyal kesalahan

U(t) = Kp∗e(t) + Kd∗d/dt(e(t)) + Ki∗integral(e(t)) (1.1)

Penjelasan singkat

Seperti dapat dilihat pada persamaan di atas, integral dan turunan dari sinyal kesalahan dihitung, dikalikan dengan konstanta masing-masing dan ditambahkan bersama dengan konstanta Kp dikalikan dengan e(t). Outputnya kemudian diumpankan ke aktuator yang membuat sistem berjalan. Sekarang mari kita lihat setiap bagian dari fungsi secara bergantian. Fungsi ini secara langsung mempengaruhi waktu naik, waktu jatuh, puncak over shoot, settling time dan kesalahan kondisi tunak.

• Bagian proporsional: Bagian proporsional mengurangi waktu naik dan mengurangi kesalahan kondisi tunak. Ini berarti bahwa sistem akan membutuhkan waktu lebih sedikit untuk mencapai nilai puncaknya dan ketika mencapai keadaan tunaknya, kesalahan keadaan tunak akan rendah. Namun, itu meningkatkan overshoot puncak.

• Bagian turunan: Bagian turunan mengurangi overshoot dan waktu pengendapan. Ini berarti bahwa keadaan transien sistem akan lebih teredam. Juga, sistem akan mencapai kondisi mapan dalam waktu yang lebih singkat. Namun, itu tidak memiliki efek pada waktu naik atau kesalahan keadaan tunak.

• Bagian integral: Bagian integral mengurangi waktu naik dan sepenuhnya menghilangkan kesalahan kondisi tunak. Namun, itu meningkatkan overshoot puncak dan waktu penyelesaian.

• Tuning: Sistem Kontrol yang baik akan memiliki rise time yang rendah, settling time, peak overshoot dan steady state error. Oleh karena itu, Kp, Kd, Ki perlu disetel dengan baik untuk menyesuaikan kontribusi faktor-faktor di atas agar diperoleh Sistem Kendali yang baik.

Gambar telah dilampirkan yang menunjukkan pengaruh perubahan berbagai parameter dalam algoritma PID.

Langkah 3: Robot Penyeimbang Diri

Robot Penyeimbang Diri
Robot Penyeimbang Diri

Robot penyeimbang diri adalah robot roda dua berlapis-lapis.

Robot akan mencoba menyeimbangkan dirinya pada penerapan gaya yang tidak seimbang. Ini akan menyeimbangkan dirinya sendiri dengan penerapan gaya yang berlawanan dengan resultan gaya pada robot.

Metode Self Balancing

Ada empat metode penyeimbangan diri robot. Ini adalah sebagai berikut:

Self Balancing menggunakan Dua Sensor Kemiringan IR

Ini adalah salah satu cara paling kasar untuk menyeimbangkan robot karena membutuhkan perangkat keras yang sangat sedikit dan algoritma yang relatif mudah. Dalam pendekatan ini, dua sensor IR miring digunakan untuk mengukur jarak antara tanah dan robot. Berdasarkan jarak yang dihitung, PID dapat digunakan untuk menggerakkan motor untuk menyeimbangkan robot. Salah satu kelemahan metode ini adalah sensor IR dapat melewatkan beberapa pembacaan. Masalah lain adalah bahwa interupsi dan loop diperlukan untuk perhitungan jarak yang meningkatkan kompleksitas waktu dari algoritma. Oleh karena itu, metode penyeimbangan robot ini kurang efisien.

Self Balancing menggunakan Accelerometer

Accelerometer memberi kita percepatan tubuh dalam 3 sumbu. Berorientasi percepatan pada sumbu y (ke atas) dan sumbu x (maju) memberi kita ukuran untuk menghitung arah gravitasi dan karenanya menghitung sudut kemiringan. Sudut dihitung sebagai berikut:

= arctan(Ay/Ax) (1.2)

Kerugian menggunakan metode ini adalah bahwa selama gerakan robot, percepatan horizontal juga akan ditambahkan ke bacaan yang merupakan kebisingan frekuensi tinggi. Oleh karena itu, sudut kemiringan akan tidak akurat.

Self Balancing menggunakan Giroskop

Sebuah giroskop digunakan untuk menghitung kecepatan sudut sepanjang tiga sumbu. Sudut kemiringan diperoleh dengan menggunakan persamaan berikut.

p(i) = p(i−1) + 1/6(vali−3 + 2vali−2 + 2vali−1 + vali) (1.3)

Salah satu kelemahan besar menggunakan giroskop adalah memiliki Bias DC kecil yang merupakan gangguan frekuensi rendah dan dalam beberapa waktu nilai yang dikembalikan benar-benar salah. Ini, setelah integrasi, akan menyebabkan titik nol hanyut. Akibatnya, robot akan tetap dalam posisi vertikal untuk beberapa waktu dan akan jatuh begitu drift datang.

Self Balancing menggunakan Akselerometer dan Giroskop

Seperti dibahas di atas, hanya menggunakan akselerometer atau giroskop tidak akan memberi kita sudut kemiringan yang benar. Untuk memperhitungkan itu, baik akselerometer dan giroskop digunakan. Keduanya tertanam di MPU6050. Dalam hal ini kami memperoleh data dari keduanya dan kemudian menggabungkannya dengan menggunakan Filter Kalman atau Filter Pelengkap.

• Filter Kalman: Filter Kalman menghitung estimasi terbaik dari keadaan sistem dinamis dari pengukuran derau, meminimalkan kesalahan kuadrat rata-rata dari estimasi. Ini beroperasi dalam dua tahap, prediksi dan koreksi, mengingat persamaan stokastik diskrit yang menggambarkan dinamika sistem. Namun, ini adalah algoritma yang sangat kompleks untuk diterapkan terutama pada perangkat keras mikrokontroler yang terbatas.

• Filter Pelengkap: Algoritma ini terutama menggunakan data yang diperoleh dari giroskop dan mengintegrasikannya dari waktu ke waktu untuk mendapatkan sudut kemiringan. Ini juga menggunakan sebagian kecil dari pembacaan akselerometer. Filter komplementer, pada kenyataannya, meminimalkan kebisingan frekuensi tinggi dari akselerometer dan kebisingan frekuensi rendah dari giroskop dan kemudian menggabungkannya untuk memberikan sudut kemiringan terbaik yang akurat.

Langkah 4: Desain Robot

Desain Robot
Desain Robot

Kami telah merancang robot penyeimbang diri menggunakan pengontrol Proporsional Derivatif yang diimplementasikan oleh Filter Pelengkap untuk MPU6050. Model kecil Self Balancing Robot ini akan menggambarkan kegunaan Sistem Kontrol dalam Self Balancing robot.

Implementasi Sistem:

Sistemnya adalah robot penyeimbang diri. Implementasinya menggunakan PID Controller yang merupakan Proportional Integral Derivative Controller. Kami menyeimbangkan robot dengan menggerakkan rodanya ke arah jatuhnya. Dalam melakukan itu, kami mencoba untuk menjaga pusat gravitasi robot di atas titik pivot. Untuk menggerakkan roda ke arah jatuhnya, kita harus mengetahui dimana robot jatuh dan kecepatan jatuhnya. Data ini diperoleh dengan menggunakan MPU6050 yang memiliki akselerometer dan giroskop. MPU6050 mengukur sudut kemiringan dan memberikan outputnya ke Micro-Controller. MPU6050 dihubungkan dengan Papan STM melalui I2C. Di I2C, satu kabel untuk jam yang dinamai SCL. Yang lainnya adalah untuk transfer data yaitu SDA. Dalam hal ini, komunikasi master slave digunakan. Alamat awal dan alamat akhir ditentukan untuk mengetahui dari mana data dimulai dan di mana berakhir. Kami telah mengimplementasikan Filter Pelengkap di sini untuk MPU6050 yang merupakan filter matematika untuk menggabungkan output akselerometer dan giroskop. Setelah mendapatkan data dari MPU6050, mikrokontroler akan melakukan perhitungan untuk mengetahui letak jatuhnya. Berdasarkan hasil perhitungan, mikrokontroler STM akan memberikan perintah kepada pengemudi motor untuk mengarahkan kendaraan ke arah jatuh yang akan menyeimbangkan robot.

Langkah 5: Komponen Proyek

Komponen Proyek
Komponen Proyek
Komponen Proyek
Komponen Proyek
Komponen Proyek
Komponen Proyek

Komponen berikut digunakan dalam proyek robot penyeimbang diri:

STM32F407

Mikrokontroler yang dirancang oleh ST Microelectronics. Ia bekerja pada Arsitektur ARM Cortex-M.

Pengemudi Motor L298N

IC ini digunakan untuk menjalankan motor. Ia mendapat dua input eksternal. Satu dari mikrokontroler yang memasok sinyal PWM. Dengan mengatur lebar pulsa, kecepatan motor bisa diatur. Input kedua adalah sumber tegangan yang diperlukan untuk menggerakkan motor yang merupakan baterai 12V dalam kasus kami.

Motor DC

Sebuah Motor DC berjalan pada suplai DC. Pada percobaan ini Motor DC dijalankan dengan menggunakan optocoupler yang terhubung dengan driver motor. Untuk menggerakkan motor kami telah menggunakan Motor Drive L298N.

MPU6050

MPU6050 digunakan untuk mendapatkan informasi tentang di mana robot jatuh. Ini mengukur sudut kemiringan sehubungan dengan titik kemiringan nol yang merupakan posisi MPU6050 saat program mulai berjalan.

MPU6050 memiliki akselerometer 3-sumbu dan giroskop 3-sumbu. Akselerometer mengukur percepatan di sepanjang tiga sumbu dan giroskop mengukur laju sudut di sekitar ketiga sumbu. Untuk menggabungkan output, kita harus menyaring noise dari keduanya. Untuk menyaring noise, kami memiliki filter Kalman dan Complementary. Kami telah menerapkan filter Pelengkap dalam proyek kami.

Pasangan Opto 4N35

Optocoupler adalah perangkat yang digunakan untuk mengisolasi bagian tegangan rendah dan bagian tegangan tinggi dari rangkaian. Seperti namanya, ia bekerja berdasarkan cahaya. Ketika bagian tegangan rendah mendapat sinyal, arus mengalir di bagian tegangan tinggi

Langkah 6: Struktur Robot

Struktur robot dijelaskan sebagai berikut:

Struktur Fisik

Robot self-balancing terdiri dari dua lapisan yang terbuat dari kaca plastik transparan. Rincian dua lapisan diberikan di bawah ini:

Lapisan Pertama

Di bagian bawah lapisan pertama, kami telah menempatkan sel untuk memberi daya pada papan STM. Juga dua motor 4 volt masing-masing telah ditempatkan di setiap sisi dengan ban terhubung agar robot dapat bergerak. Di bagian atas lapisan pertama, dua baterai masing-masing 4 volt (total 8 volt) dan IC driver motor (L298N) telah ditempatkan untuk pengoperasian motor.

Lapisan Kedua

Di lapisan atas robot, kami telah menempatkan Papan STM di Papan Perf. Papan perf lain dari 4 skrup opto ditempatkan di lapisan atas. Giroskop juga ditempatkan pada lapisan atas robot dari sisi bawah. Kedua komponen tersebut ditempatkan di bagian tengah sehingga pusat gravitasi dijaga serendah mungkin.

Pusat Gravitasi Robot

Pusat gravitasi dipertahankan serendah mungkin. Untuk tujuan ini, kami telah menempatkan baterai berat di lapisan bawah dan komponen ringan seperti papan STM dan optocoupler di lapisan atas.

Langkah 7: Kode

Kode dikompilasi di Atollic TrueStudio. STM studio digunakan untuk keperluan debugging.

Langkah 8: Kesimpulan

Setelah banyak eksperimen dan observasi, kami akhirnya sampai pada titik di mana kami merangkum hasil kami dan mendiskusikan seberapa jauh kami berhasil menerapkan dan bekerja di luar keefektifan sistem.

Tinjauan Umum

Selama percobaan, kecepatan motor berhasil dikendalikan menggunakan Algoritma PID. Namun kurva tersebut bukanlah garis lurus yang mulus. Ada banyak alasan untuk itu:

• Sensor meskipun terhubung ke filter lolos rendah masih memberikan debouncing terbatas tertentu; ini karena resistensi non linier dan beberapa alasan tak terelakkan dari elektronik analog.

• Motor tidak berputar dengan lancar di bawah tegangan kecil atau PWM. Ini memberikan sentakan yang mungkin menyebabkan beberapa nilai yang salah dimasukkan ke sistem.

• Karena goyangan, sensor mungkin melewatkan beberapa celah yang memberikan nilai lebih tinggi. • Alasan utama lain untuk kesalahan dapat menjadi frekuensi clock inti dari mikrokontroler STM. Model mikrokontroler STM ini menyediakan core clock 168MHz. Meskipun berurusan dengan masalah ini dalam proyek ini, ada gagasan keseluruhan tentang model ini yang tidak memberikan frekuensi tinggi seperti itu.

Kecepatan loop terbuka memberikan garis yang sangat halus dengan hanya beberapa nilai yang tidak terduga. Algoritme PID juga bekerja dengan baik sehingga memberikan waktu penyelesaian motor yang sangat rendah. Algoritma PID motor diuji pada berbagai tegangan dengan menjaga kecepatan referensi tetap konstan. Perubahan tegangan tidak mengubah kecepatan motor menunjukkan bahwa Algoritma PID bekerja dengan baik

Efektivitas

Di sini kami membahas efektivitas pengontrol PID yang kami amati selama eksperimen.

Implementasi Sederhana

Kita telah melihat di bagian eksperimen dan observasi bahwa pengontrol PID sangat mudah diimplementasikan. Hanya membutuhkan tiga parameter atau konstanta yang harus diatur untuk memiliki sistem kontrol kecepatan

Efisiensi Tak Tertandingi untuk Sistem Linier

Kontroler PID linier adalah yang paling efisien dalam keluarga pengontrol karena logikanya sangat sederhana dan aplikasinya tersebar luas dalam kasus aplikasi linier atau cukup linier.

Batasan

Kami menjelaskan secara abstrak tentang Keterbatasan sistem ini. Berikut kami bahas beberapa di antaranya yang kami amati.

Pemilihan Konstanta

Kita telah melihat bahwa, meskipun pengontrol PID mudah diimplementasikan, tetap saja merupakan kelemahan utama dari sistem bahwa langkah memilih nilai konstanta adalah langkah yang melelahkan; karena seseorang harus membuat perhitungan yang sulit. Cara lain adalah metode hit and trial tetapi itu juga tidak efisien.

Konstanta tidak selalu konstan

Hasil eksperimen menunjukkan bahwa untuk nilai kecepatan referensi motor yang berbeda, kontroler PID tidak berfungsi untuk nilai konstanta PID yang sama. Untuk kecepatan yang berbeda, konstanta harus dipilih secara berbeda dan ini meningkatkan biaya komputasi secara eksponensial.

Non Linier

Kontroler PID yang digunakan dalam kasus kami adalah linier, oleh karena itu, hanya dapat diterapkan pada sistem linier. Untuk sistem non-linier, pengontrol harus diimplementasikan secara berbeda. Meskipun tersedia metode PID non linier yang berbeda, metode tersebut memerlukan lebih banyak parameter untuk dipilih. Ini sekali lagi membuat sistem tidak diinginkan karena biaya komputasi yang tinggi.

Diperlukan Dorongan Awal

Kami menunjukkan di bagian eksperimen bahwa untuk kecepatan referensi yang cukup kecil di mana kesalahannya cukup kecil di awal, PWM yang disuplai oleh PID sangat kecil sehingga tidak menghasilkan torsi awal yang diperlukan untuk motor. Sehingga motor pada beberapa percobaan tidak berjalan atau pada percobaan lainnya memberikan overshoot yang besar dan settling time yang lebih lama.

Langkah 9: Terima kasih khusus

Terima kasih khusus kepada anggota kelompok saya yang membantu saya melalui proyek ini.

Link video akan segera saya upload.

Saya harap Anda menemukan instruksi ini menarik.

Ini Tahir Ul Haq dari penandatanganan UET. Bersulang !!!

Direkomendasikan: