Mündəricat:

Özünü Balanslaşdıran Robot - PID Nəzarət Alqoritmi: 3 Addım
Özünü Balanslaşdıran Robot - PID Nəzarət Alqoritmi: 3 Addım

Video: Özünü Balanslaşdıran Robot - PID Nəzarət Alqoritmi: 3 Addım

Video: Özünü Balanslaşdıran Robot - PID Nəzarət Alqoritmi: 3 Addım
Video: Поглощение и неопределенность - Часть 1 2024, Noyabr
Anonim
Özünü Balanslaşdıran Robot - PID Nəzarət Alqoritmi
Özünü Balanslaşdıran Robot - PID Nəzarət Alqoritmi

Bu layihə, Nəzarət Alqoritmləri və funksional PID döngələrinin effektiv şəkildə tətbiq edilməsi haqqında daha çox öyrənməklə maraqlandığım üçün hazırlanmışdır. Layihə hələ inkişaf mərhələsindədir, çünki Bluetooth -u dəstəkləyən bir smartfondan robotu idarə etməyə imkan verəcək bir Bluetooth modulu əlavə edilməlidir.

İstifadə olunan N20 DC mühərrikləri nisbətən ucuz idi və buna görə də xeyli miqdarda oyun var. Bu, təkərlərə fırlanma anı tətbiq edərkən mühərriklərin "boşluğu" aşması səbəbindən az miqdarda sarsıntıya səbəb olur. Beləliklə, mükəmməl hamar bir hərəkət əldə etmək mümkün deyil. Yazdığım kod olduqca sadədir, lakin PID alqoritminin imkanlarını effektiv şəkildə nümayiş etdirir.

Layihə Xülasəsi:

Robotun şassisi, Ender 3 printerindən istifadə edərək 3D çap edilib və bir-birinə sıxışdırmaq üçün nəzərdə tutulmuşdur.

Robot, MPU6050 -dən sensor məlumatlarını alan və xarici mühərrik sürücüsü vasitəsi ilə DC mühərriklərini idarə edən bir Arduino Uno tərəfindən idarə olunur. 7.4V, 1500mAh batareya ilə işləyir. Motor sürücüsü, Arduino -nu gücləndirmək üçün bunu 5V -a tənzimləyir və mühərriklərə 7.4V verir.

Proqram, gitHub'dan 'Arduino-KalmanFilter-master' və 'Arduino-MPU6050-master' kitabxanalarının köməyi ilə sıfırdan yazılmışdır.

Təchizat:

  • 3D çaplı hissələr
  • Arduino UNO
  • MPU6050 6 Eksenli Sensor
  • D. C Motor Sürücü
  • N20 DC Motorlar (x2)
  • 9V Batareya

Addım 1: Robot qurma

Robot quruluşu
Robot quruluşu
Robot quruluşu
Robot quruluşu
Robot quruluşu
Robot quruluşu

Çap və montaj

Bütün quruluş presə uyğun olmalıdır, ancaq balans edərkən robotun tamamilə sərt olmasını təmin etmək üçün komponentləri möhkəmləndirmək üçün super yapışqan istifadə etdim.

Parçaları Fusion 360 -da hazırladım və hər bir hissəni daha sərt toleranslara və daha təmiz bir səthə icazə vermək üçün dayaqlar olmadan çap etmək üçün optimallaşdırdım.

Ender 3 Yazıcıda istifadə edilən ayarlar: 0.16mm Layer Heights @ 40% doldurma bütün hissələr üçün.

Addım 2: 3D Çap Robotu

3D çap robotu
3D çap robotu

Şassi (x1)

Sol Təkər (x2)

Sol Motor Korpusu (x2)

Arduino Çantası (x1)

Addım 3: PID Nəzarət Alqoritmi

PID Nəzarət Alqoritmi
PID Nəzarət Alqoritmi

GitHub-dan 'Arduino-KalmanFilter-master' və 'Arduino-MPU6050-master' kitabxanalarını istifadə edərək sıfırdan bir PID İdarəetmə Alqoritmi yazdım.

Alqoritmin əsası belədir:

  • MPU6050 -dən xam məlumatları oxuyun
  • Sensorun sürətlənməsi səbəbindən giroskop oxunuşundakı qeyri -dəqiqlikləri ləğv etmək üçün həm Gyroscope, həm də Accelerometer -dən məlumatları təhlil etmək üçün Kalman Filterindən istifadə edin. Bu, sensorun dərəcəsi üçün iki ondalık işarəyə nisbətən hamar bir dəyər qaytarır.
  • E rrorunu bucaqda hesablayın, yəni: Sensorla təyin olunan nöqtə arasındakı bucaq.
  • Oransal xətanı (nisbət sabitliyi x xətası) hesablayın.
  • İnteqral Xətanı işləyən cəm olaraq hesablayın (Sabit inteqrasiya x xətası).
  • Törəmə Səhvini Sabit [Diferensiya Sabiti) x (Səhv dəyişikliyi / Zaman dəyişikliyi)] kimi hesablayın
  • Mühərriklərə göndəriləcək sürəti vermək üçün bütün səhvləri toplayın.
  • Səhv bucağının işarəsinə əsaslanaraq mühərrikləri hansı istiqamətə çevirəcəyinizi hesablayın.
  • Döngü qeyri -müəyyən müddətə işləyəcək və giriş dəyişdiyindən çıxış üzərində qurulacaq. Növbəti iterasiya üçün yeni giriş dəyərləri olaraq çıxış dəyərlərindən istifadə edərək bir geribildirim döngəsidir.

Son addım, PID loop Kp, Ki & Kd parametrlərini tənzimləməkdir.

  1. Yaxşı bir başlanğıc nöqtəsi, robot balans nöqtəsi ətrafında salınana və düşə biləcək qədər Kp -ni yavaş -yavaş artırmaqdır.
  2. Sonra, Kd -ni Kp dəyərinin təxminən 1% -dən başlayın və salınımlar yox olana və robot itələdikdə hamar bir şəkildə sürüşənə qədər yavaş -yavaş artırın.
  3. Nəhayət, Ki -nin təxminən 20% -i ilə Ki ilə başlayın və robot aktiv şəkildə düşməni tutmaq və şaquli vəziyyətə qayıtmaq üçün təyin olunan nöqtəni "aşana" qədər dəyişin.

Tövsiyə: