Daftar Isi:

Robot Penyeimbang Diri - Algoritma Kontrol PID: 3 Langkah
Robot Penyeimbang Diri - Algoritma Kontrol PID: 3 Langkah

Video: Robot Penyeimbang Diri - Algoritma Kontrol PID: 3 Langkah

Video: Robot Penyeimbang Diri - Algoritma Kontrol PID: 3 Langkah
Video: 181354017 - Self-Balancing Robot Menggunakan Metoda Kendali PID Sebagai Kendali Keseimbangan 2024, Desember
Anonim
Robot Penyeimbang Diri - Algoritma Kontrol PID
Robot Penyeimbang Diri - Algoritma Kontrol PID

Proyek ini disusun karena saya tertarik untuk mempelajari lebih lanjut tentang Algoritma Kontrol dan cara mengimplementasikan loop PID fungsional secara efektif. Proyek ini masih dalam tahap pengembangan karena modul Bluetooth belum ditambahkan yang akan memungkinkan kontrol atas robot dari smartphone berkemampuan Bluetooth.

Motor DC N20 yang digunakan relatif murah, dan karenanya memiliki banyak peran di dalamnya. Hal ini menyebabkan sedikit sentakan saat motor mengatasi 'kendur' karena menerapkan torsi ke roda. Oleh karena itu, hampir tidak mungkin untuk mencapai gerakan yang mulus sempurna. Kode yang saya tulis cukup sederhana tetapi secara efektif menunjukkan kemampuan algoritma PID.

Ringkasan proyek:

Sasis robot dicetak 3D menggunakan printer Ender 3 dan dirancang untuk saling menempel.

Robot dikendalikan oleh Arduino Uno yang mengambil data sensor dari MPU6050 dan mengendalikan motor DC melalui driver motor eksternal. Ini menjalankan baterai 7.4V, 1500mAh. Pengemudi motor mengatur ini ke 5V untuk memberi daya pada Arduino dan memasok 7.4V ke motor.

Perangkat lunak ini ditulis dari awal dengan bantuan perpustakaan 'Arduino-KalmanFilter-master' dan 'Arduino-MPU6050-master' dari gitHub.

Perlengkapan:

  • Bagian Cetak 3D
  • Arduino UNO
  • Sensor 6 Sumbu MPU6050
  • Pengemudi Motor DC
  • N20 Motor DC (x2)
  • Baterai 9V

Langkah 1: Pembuatan Robot

Membangun Robot
Membangun Robot
Membangun Robot
Membangun Robot
Membangun Robot
Membangun Robot

Cetak dan Perakitan

Seluruh bangunan harus pas, tetapi saya telah menggunakan lem super untuk mengamankan komponen untuk memastikan robot sepenuhnya kaku saat menyeimbangkan.

Saya telah merancang bagian-bagian di Fusion 360 dan telah mengoptimalkan setiap bagian untuk dicetak tanpa penyangga untuk memungkinkan toleransi yang lebih ketat dan permukaan akhir yang lebih bersih.

Setting yang digunakan pada Printer Ender 3 adalah: 0.16mm Layer Heights @ 40% infill untuk semua bagian.

Langkah 2: Robot Cetak 3D

Robot Cetak 3D
Robot Cetak 3D

Sasis (x1)

Roda Kiri (x2)

Rumah Motor Kiri (x2)

Kasing Arduino (x1)

Langkah 3: Algoritma Kontrol PID

Algoritma Kontrol PID
Algoritma Kontrol PID

Saya telah menulis Algoritma Kontrol PID dari awal menggunakan perpustakaan 'Arduino-KalmanFilter-master' dan 'Arduino-MPU6050-master' dari gitHub.

Premis dari Algoritma adalah sebagai berikut:

  • Baca data mentah dari MPU6050
  • Gunakan Filter Kalman untuk menganalisis data dari Giroskop dan Akselerometer untuk menghilangkan ketidakakuratan dalam pembacaan giroskop karena percepatan sensor. Ini mengembalikan nilai yang relatif halus untuk nada sensor dalam derajat ke dua tempat desimal.
  • Hitung E rror pada sudut, yaitu: Sudut antara sensor dan setpoint.
  • Hitung kesalahan Proporsional sebagai (Konstanta Proporsionalitas x kesalahan).
  • Hitung Kesalahan Integral sebagai jumlah berjalan dari (Konstanta Integrasi x kesalahan).
  • Hitung Kesalahan Derivatif Sekonstan [(Konstanta Diferensiasi) x (Perubahan kesalahan / Perubahan Waktu)]
  • Jumlahkan semua kesalahan untuk memberikan output kecepatan yang akan dikirim ke motor.
  • Hitung arah mana untuk memutar motor berdasarkan tanda sudut kesalahan.
  • Loop akan berjalan tanpa batas waktu dan dibangun di atas output saat input bervariasi. Ini adalah loop umpan balik, menggunakan nilai output sebagai nilai input baru untuk iterasi berikutnya.

Langkah terakhir adalah Tune parameter Kp, Ki & Kd loop PID.

  1. Titik awal yang baik adalah meningkatkan Kp secara perlahan hingga robot berosilasi di sekitar titik keseimbangan dan dapat terjatuh.
  2. Selanjutnya, mulai Kd di sekitar 1% nilai Kp dan naikkan perlahan hingga osilasi hilang dan robot meluncur mulus saat didorong.
  3. Terakhir, mulailah dengan Ki sekitar 20% dari Kp dan variasikan hingga robot "melampaui" setpoint untuk secara aktif menangkap jatuh dan kembali ke vertikal.

Direkomendasikan: