Isi kandungan:

Robot Pengimbangan Diri - Algoritma Kawalan PID: 3 Langkah
Robot Pengimbangan Diri - Algoritma Kawalan PID: 3 Langkah

Video: Robot Pengimbangan Diri - Algoritma Kawalan PID: 3 Langkah

Video: Robot Pengimbangan Diri - Algoritma Kawalan PID: 3 Langkah
Video: Новый робот Alter 3 GPT4 с искусственным интеллектом и 43 осями раскрывает шокирующие способности 2024, November
Anonim
Robot Pengimbangan Diri - Algoritma Kawalan PID
Robot Pengimbangan Diri - Algoritma Kawalan PID

Projek ini dibuat kerana saya berminat untuk mempelajari lebih lanjut mengenai Algoritma Kawalan dan bagaimana melaksanakan gelung PID berfungsi dengan berkesan. Projek ini masih dalam fasa pengembangan kerana modul Bluetooth masih belum ditambahkan yang akan memungkinkan untuk mengawal robot dari telefon pintar berkemampuan Bluetooth.

Motor N20 DC yang digunakan agak murah, dan oleh itu mempunyai banyak permainan di dalamnya. Ini membawa sedikit kejutan ketika motor mengatasi 'kendur' kerana ia menerapkan tork pada roda. Oleh itu, mustahil untuk mencapai gerakan yang sempurna. Kod yang saya tulis agak mudah tetapi menunjukkan keupayaan algoritma PID dengan berkesan.

Ringkasan Projek:

Casis robot dicetak 3D menggunakan pencetak Ender 3 dan direka untuk dipasang bersama.

Robot dikendalikan oleh Arduino Uno yang mengambil data sensor dari MPU6050 dan mengawal motor DC melalui pemacu motor luaran. Ia menggunakan bateri 7.4V, 1500mAh. Pemandu motor mengatur ini hingga 5V untuk menghidupkan Arduino dan membekalkan 7.4V ke motor.

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

Bekalan:

  • Bahagian Bercetak 3D
  • Arduino UNO
  • Sensor MP-6050 6-Axis
  • Pemandu Motor D. C
  • Motor N20 D. C (x2)
  • Bateri 9V

Langkah 1: Pembinaan Robot

Pembinaan Robot
Pembinaan Robot
Pembinaan Robot
Pembinaan Robot
Pembinaan Robot
Pembinaan Robot

Cetakan dan Pemasangan

Keseluruhan binaan harus sesuai dengan tekan tetapi saya telah menggunakan superglue untuk mengamankan komponen untuk memastikan robot sepenuhnya kaku ketika mengimbangkan.

Saya telah merancang bahagian-bahagian di Fusion 360 dan mengoptimumkan setiap bahagian untuk mencetak tanpa sokongan untuk membolehkan toleransi yang lebih ketat dan permukaan yang lebih bersih.

Tetapan yang digunakan pada Ender 3 Printer adalah: 0.16mm Layer Heights @ 40% isi untuk semua bahagian.

Langkah 2: Robot Cetak 3D

Robot Cetak 3D
Robot Cetak 3D

Casis (x1)

Roda Kiri (x2)

Perumahan Motor Kiri (x2)

Kes Arduino (x1)

Langkah 3: Algoritma Kawalan PID

Algoritma Kawalan PID
Algoritma Kawalan PID

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

Premis Algoritma adalah seperti berikut:

  • Baca data mentah dari MPU6050
  • Gunakan Penapis Kalman untuk menganalisis data dari Giroskop dan Akselerometer untuk membatalkan ketidaktepatan dalam pembacaan giroskop kerana pecutan sensor. Ini mengembalikan nilai yang agak lancar untuk nada sensor dalam darjah hingga dua tempat perpuluhan.
  • Hitung ralat E dalam sudut, iaitu: Sudut antara sensor dan setpoint.
  • Kira ralat berkadar sebagai (Kekal kestabilan ralat x).
  • Hitung Ralat Integral sebagai jumlah berjalan (Kesalahan pemalar x).
  • Hitung Kesalahan Derivatif sebagai Pemalar sebagai [(Pembezaan Pemalar) x (Perubahan ralat / Perubahan Masa)]
  • Jumlahkan semua kesalahan untuk memberikan kelajuan output yang akan dihantar ke motor.
  • Hitung arah mana untuk menghidupkan motor berdasarkan tanda sudut ralat.
  • Gelung akan berjalan selama-lamanya dan membina output kerana inputnya berbeza-beza. Ini adalah gelung maklum balas, menggunakan nilai output sebagai nilai input baru untuk lelaran seterusnya.

Langkah terakhir adalah Menyetel parameter Kp, Ki & Kd gelung PID.

  1. Titik permulaan yang baik adalah dengan perlahan-lahan meningkatkan Kp sehingga robot berayun di sekitar titik keseimbangan dan dapat jatuh.
  2. Seterusnya, mulakan Kd sekitar 1% nilai Kp dan tingkatkan perlahan sehingga ayunan hilang dan robot meluncur dengan lancar ketika ditolak.
  3. Akhirnya, mulailah dengan Ki sekitar 20% Kp dan ubah sehingga robot "melampaui" titik titik untuk secara aktif menangkap kejatuhan dan kembali ke menegak.

Disyorkan: