Mundarija:

O'zini muvozanatlaydigan robot - PIDni boshqarish algoritmi: 3 qadam
O'zini muvozanatlaydigan robot - PIDni boshqarish algoritmi: 3 qadam

Video: O'zini muvozanatlaydigan robot - PIDni boshqarish algoritmi: 3 qadam

Video: O'zini muvozanatlaydigan robot - PIDni boshqarish algoritmi: 3 qadam
Video: VIDEO MA'RUZA.RAXMATULLAYEVA N,(K.MENEJMENT)MAVZU DIVERSIFIKATSIYALANGAN KOMPANIYALAR STRAT. TAHLILI 2024, Noyabr
Anonim
O'zini muvozanatlaydigan robot - PIDni boshqarish algoritmi
O'zini muvozanatlaydigan robot - PIDni boshqarish algoritmi

Ushbu loyiha men nazorat algoritmlari va funktsional PID looplarini qanday samarali amalga oshirish haqida ko'proq bilishga qiziqqanim uchun ishlab chiqilgan. Loyiha hali ishlab chiqish bosqichida, chunki Bluetooth moduli qo'shilishi kerak, bu esa robotni Bluetooth bilan ishlaydigan smartfondan boshqarishga imkon beradi.

Ishlatilgan N20 DC dvigatellari nisbatan arzon edi, shuning uchun ular juda ko'p o'ynaydi. Bu g'ildiraklarga momentni qo'llagan holda, motorlar "bo'shashishni" yengib chiqqanda, ozgina silkinishga olib keladi. Shunday qilib, mukammal silliq harakatga erishish imkonsizdir. Men yozgan kod juda oddiy, lekin PID algoritmining imkoniyatlarini samarali namoyish etadi.

Loyihaning qisqacha mazmuni:

Robot shassisi Ender 3 printeri yordamida 3D-bosma bo'lib, bir-biriga bosish uchun mo'ljallangan.

Robot Arduino Uno tomonidan boshqariladi, u MPU6050 sensor ma'lumotlarini oladi va tashqi dvigatel drayveri orqali shahar motorlarini boshqaradi. U 7,4 V, 1500 mA / soat batareya bilan ishlaydi. Dvigatel haydovchisi Arduino -ni quvvatlantirish uchun 5V ga o'rnatadi va dvigatellarga 7,4 V quvvat beradi.

Dasturiy ta'minot gitHub-dan "Arduino-KalmanFilter-master" va "Arduino-MPU6050-master" kutubxonalari yordamida noldan yozilgan.

Ta'minot:

  • 3D bosilgan qismlar
  • Arduino UNO
  • MPU6050 6 o'qli sensor
  • DC motor haydovchi
  • N20 DC motorlari (x2)
  • 9V batareya

1 -qadam: Robot yaratish

Robot qurilishi
Robot qurilishi
Robot qurilishi
Robot qurilishi
Robot qurilishi
Robot qurilishi

Bosib chiqarish va yig'ish

Butun konstruktsiya matbuotga mos bo'lishi kerak, lekin men robotni muvozanatlashda to'liq qattiq bo'lishini ta'minlash uchun komponentlarni mahkamlash uchun superglue ishlatganman.

Men qismlarni Fusion 360 -da ishlab chiqdim va har bir qismini bardoshli bardoshlik va sirtni toza tozalash uchun ruxsatisiz chop etish uchun optimallashtirdim.

Ender 3 printerida ishlatiladigan sozlamalar quyidagilardir: 0,16 mm qatlam balandligi @ 40% barcha qismlar uchun.

2 -qadam: 3D bosma robot

3D bosma robot
3D bosma robot

Shassi (x1)

Chap g'ildirak (x2)

Chap motorli korpus (x2)

Arduino qutisi (x1)

3 -qadam: PIDni boshqarish algoritmi

PID nazorat qilish algoritmi
PID nazorat qilish algoritmi

Men gitHub-dan "Arduino-KalmanFilter-master" va "Arduino-MPU6050-master" kutubxonalari yordamida noldan PID nazorat qilish algoritmini yozdim.

Algoritmning asosi quyidagicha:

  • MPU6050 dan olingan ma'lumotlarni o'qing
  • Sensorning tezlashishi tufayli giroskop o'qishidagi noaniqliklarni bekor qilish uchun Gyroskop va Akselerometr ma'lumotlarini tahlil qilish uchun Kalman Filtridan foydalaning. Bu sensorlar pog'onasining gradusli ikkita o'nli kasrga nisbatan tekislangan qiymatini qaytaradi.
  • E rrorni burchak bilan hisoblang, ya'ni: Sensor va belgilangan nuqta orasidagi burchak.
  • Proportional xatoni hisoblang (mutanosiblik x xatosi).
  • Integral xatoni ishga tushirish yig'indisi sifatida hisoblang (Integratsiya x xatosi).
  • Derivativ xatoni [Differentsial Constant] x (Xatolik o'zgarishi / Vaqt o'zgarishi)] kabi doimiy deb hisoblang.
  • Dvigatelga yuboriladigan tezlikni berish uchun barcha xatolarni yig'ing.
  • Xato burchagi belgisiga asoslanib, dvigatellarni qaysi tomonga burish kerakligini hisoblang.
  • Loop abadiy ishlaydi va kirishga qarab o'zgaradi. Bu chiquvchi qiymatlarni keyingi takrorlash uchun yangi kirish qiymatlari sifatida ishlatib, teskari aloqa.

Oxirgi qadam - PID loop Kp, Ki & Kd parametrlarini sozlash.

  1. Yaxshi boshlang'ich nuqtasi - robot muvozanat nuqtasi atrofida tebranmaguncha va yiqilishni ushlab turmaguncha Kp ni asta -sekin oshirish.
  2. Keyin, Kd qiymatini Kp qiymatining 1% atrofida boshlang va tebranishlar yo'qolguncha va itarib yuborilganda robot silliq siljimaguncha asta -sekin oshiring.
  3. Nihoyat, Ki -dan Kpning 20% atrofida boshlang va robot yiqilishni faol ushlab, vertikalga qaytish uchun belgilangan nuqtadan "oshib ketguncha" o'zgarib turing.

Tavsiya: