Daftar Isi:
- Langkah 1: Pendahuluan
- Langkah 2: Sistem Kontrol Berbasis PID
- Langkah 3: Robot Penyeimbang Diri
- Langkah 4: Desain Robot
- Langkah 5: Komponen Proyek
- Langkah 6: Struktur Robot
- Langkah 7: Kode
- Langkah 8: Kesimpulan
- Langkah 9: Terima kasih khusus
Video: Robot Self Balancing Menggunakan Algoritma PID (STM MC): 9 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:57
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
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 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
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 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:
Robot Self-Balancing Dua Roda: 7 Langkah
Robot Self-Balancing Dua Roda: Instruksi ini akan melalui proses desain dan pembuatan untuk robot self-balancing. Sebagai catatan, saya hanya ingin mengatakan bahwa robot self-balancing bukanlah konsep baru dan mereka telah dibuat dan didokumentasikan oleh orang lain. Saya ingin menggunakan kesempatan ini
Cara Membuat Robot Self-Balancing Cetak 3D Terkendali Jarak Jauh: 9 Langkah (dengan Gambar)
Cara Membuat Robot Self-Balancing Cetak 3D Terkendali Jarak Jauh: Ini adalah evolusi dari B-robot versi sebelumnya. 100% SUMBER TERBUKA / robot Arduino. KODE, suku cadang 3D, dan elektronik terbuka, jadi silakan modifikasi atau buat robot versi besar. Jika Anda memiliki keraguan, ide, atau butuh bantuan, buat
Robot Self Balancing 2 Roda: 4 Langkah
Robot Penyeimbang Diri Beroda 2: Menurut pendapat saya, Anda bukanlah pembuat sejati, kecuali jika Anda tidak membuat robot penyeimbang diri Anda sendiri.:-)Jadi, ini dia… dan yang terpenting, ia berhasil !!!Proyek ini terlihat sangat sederhana. Sebaliknya, itu membutuhkan tingkat pengetahuan yang
Membuat Robot Self Balancing Arduino yang Dikendalikan dari Jarak Jauh: B-robot EVO: 8 Langkah
Membuat Robot Self Balancing Arduino yang Dikendalikan dari Jarak Jauh: B-robot EVO: ------------------------------------ --------------UPDATE: ada versi baru dan lebih baik dari robot ini di sini: B-robot EVO, dengan fitur baru!------------ --------------------------------------- Bagaimana cara kerjanya? B-ROBOT EVO adalah jarak jauh kontrol
Kontrol Kecepatan Motor DC Menggunakan Algoritma PID (STM32F4): 8 Langkah (dengan Gambar)
Kontrol Kecepatan Motor DC Menggunakan Algoritma PID (STM32F4): halo semuanya,Ini tahir ul haq dengan proyek lain. Kali ini STM32F407 sebagai MC. Ini adalah proyek akhir semester. Semoga Anda menyukainya. Ini membutuhkan banyak konsep dan teori, jadi kita masuk dulu. Dengan munculnya komputer dan