Мазмуну:

Өзүн тең салмактоочу робот - PID башкаруу алгоритми: 3 кадам
Өзүн тең салмактоочу робот - PID башкаруу алгоритми: 3 кадам

Video: Өзүн тең салмактоочу робот - PID башкаруу алгоритми: 3 кадам

Video: Өзүн тең салмактоочу робот - PID башкаруу алгоритми: 3 кадам
Video: "Аралыктан окутуунун жөнөкөй жолу - физика предметинин мисалында" 2024, Ноябрь
Anonim
Өзүн тең салмактоочу робот - PID башкаруу алгоритми
Өзүн тең салмактоочу робот - PID башкаруу алгоритми

Бул долбоор мен ойлогом, анткени мен башкаруу алгоритмдери жана функционалдуу PID циклдерин эффективдүү ишке ашыруу жөнүндө көбүрөөк билүүгө кызыкчумун. Долбоор дагы эле өнүгүү стадиясында, анткени Bluetooth модулу кошула элек, ал роботту Bluetooth иштетилген смартфондон башкарууга мүмкүндүк берет.

Колдонулган N20 DC моторлору салыштырмалуу арзан болчу, демек, аларда бир топ ойноо бар. Бул дөңгөлөктөргө моментти колдонуп, моторлор "боштукту" жеңгендиктен, кичине чайпалууга алып келет. Демек, кемчиликсиз жылмакай кыймылга жетүү мүмкүн эмес. Мен жазган код абдан жөнөкөй, бирок натыйжалуу PID алгоритмин көрсөтөт.

Долбоордун корутундусу:

Роботтун шасси Ender 3 принтеринин жардамы менен 3D принтерде басылып, бири-бирине басуу үчүн иштелип чыккан.

Робот Arduino Uno тарабынан башкарылат, ал MPU6050 сенсорунун маалыматын алат жана DC моторун тышкы мотор айдоочусу аркылуу башкарат. Ал 7.4V, 1500mAh батарейкасы менен иштейт. Мотор айдоочусу муну 5V менен жөнгө салып, Arduinoго кубат берет жана моторлорго 7.4В жеткирет.

Программалык камсыздоо gitHubдан 'Arduino-KalmanFilter-master' жана 'Arduino-MPU6050-master' китепканаларынын жардамы менен нөлдөн баштап жазылган.

Берилиштер:

  • 3D басылган бөлүктөрү
  • Arduino UNO
  • MPU6050 6-октук сенсор
  • DC DC айдоочусу
  • N20 DC Motors (x2)
  • 9V батарея

1 -кадам: Robot Build

Robot Build
Robot Build
Robot Build
Robot Build
Robot Build
Robot Build

Басып чыгаруу жана жыйноо

Бүт түзүлүш пресс-фит болушу керек, бирок мен тең салмактоодо роботтун толугу менен катуу болушун камсыз кылуу үчүн компоненттерди коргоо үчүн суперглюгди колдондум.

Мен бөлүктөрдү Fusion 360та иштеп чыктым жана ар бир бөлүктү катаалыраак толеранттуулукка жана бетинин тазалыгы үчүн тирөөчсүз басып чыгарууга оптималдаштырдым.

Ender 3 принтеринде колдонулган жөндөөлөр: 0.16mm Layer Heights @ 40% толтуруу бардык бөлүктөрү үчүн.

2 -кадам: 3D Print роботу

3D басып чыгаруу роботу
3D басып чыгаруу роботу

Шасси (x1)

Сол дөңгөлөк (x2)

Сол мотор корпусу (x2)

Arduino Case (x1)

3 -кадам: PID контролдоо алгоритми

PID контролдоо алгоритми
PID контролдоо алгоритми

Мен gitHubдан 'Arduino-KalmanFilter-master' жана 'Arduino-MPU6050-master' китепканаларын колдонуп, башынан баштап PID башкаруу алгоритмин жаздым.

Алгоритмдин шарты төмөнкүчө:

  • MPU6050 чийки маалыматтарды окуу
  • Сенсордун ылдамдануусунан улам гироскоптун окууларындагы так эместиктерди жокко чыгаруу үчүн Гироскоптун жана Акселерометрдин маалыматтарын талдоо үчүн Калман чыпкасын колдонуңуз. Бул сенсордун кадамынын салыштырмалуу тегизделген маанисин эки ондукка чейин градуска кайтарат.
  • E rror бурчта эсептеңиз, башкача айтканда: Сенсор менен белгиленген чекиттин ортосундагы бурч.
  • Пропорционалдык катаны (Пропорционалдуулуктун катасы x катасы) катары эсептеңиз.
  • Интегралдык катаны иштеп жаткан сумма катары эсептеңиз (Интеграциянын х катасы).
  • Туундун катасын [Дифференциациялоочу туруктуу] x (Катанын өзгөрүшү / Убакыттын өзгөрүшү)] катары туруктуу эсептөө
  • Моторлорго жөнөтүлүүчү ылдамдыкты берүү үчүн бардык каталарды жыйынтыктаңыз.
  • Ката бурчу белгисинин негизинде моторлорду кайсы багытка бурууну эсептеңиз.
  • Укурук чексиз иштейт жана киргизүү өзгөрүп тургандыктан, өндүрүшкө негизделет. Бул кийинки кайталоо үчүн жаңы киргизүү баалуулуктары катары чыгуу баалуулуктарын колдонуп, кайтарым байланыш.

Акыркы кадам - PID циклинин Kp, Ki & Kd параметрлерин тууралоо.

  1. Жакшы баштапкы чекит - роботту баланстык чекиттин айланасында термелип, кулоону кармаганга чейин Кпти акырындык менен жогорулатуу.
  2. Андан кийин, Kdны Kpдын 1% тегерегинде баштаңыз жана термелүүлөр жоголгонго чейин жана робот түртүлгөндө жылмакай жылмайынча акырындык менен көбөйтүңүз.
  3. Акырында, Kiдин 20% тегерегинде баштаңыз жана робот активдүү түрдө жыгылып, вертикалга кайтуу үчүн белгиленген чекти "аша чапканга" чейин өзгөрөт.

Сунушталууда: