Мазмұны:

Өзін -өзі теңестіретін робот - PID бақылау алгоритмі: 3 қадам
Өзін -өзі теңестіретін робот - PID бақылау алгоритмі: 3 қадам

Бейне: Өзін -өзі теңестіретін робот - PID бақылау алгоритмі: 3 қадам

Бейне: Өзін -өзі теңестіретін робот - PID бақылау алгоритмі: 3 қадам
Бейне: Скандинавияда жаңа компанияда жүргізуші жұмысы! Жұмыс шарттары және компания туралы барлығы! 2024, Қараша
Anonim
Өзін -өзі теңестіретін робот - PID бақылау алгоритмі
Өзін -өзі теңестіретін робот - PID бақылау алгоритмі

Бұл жоба ойластырылды, себебі мен Басқару алгоритмдері мен функционалды PID ілмектерін қалай тиімді енгізу керектігін білгім келді. Жоба әзірше даму сатысында, өйткені Bluetooth модулі қосылмаса, ол роботты Bluetooth қосылған смартфоннан басқаруға мүмкіндік береді.

Қолданылатын N20 тұрақты ток қозғалтқыштары салыстырмалы түрде арзан болды, сондықтан оларда айтарлықтай мөлшерде ойын бар. Бұл дөңгелектерге крутящийді қолданған кезде қозғалтқыштар «босаңсуды» жеңетіндіктен, аз мөлшерде серпіліске әкеледі. Демек, біркелкі қозғалысқа қол жеткізу мүмкін емес. Мен жазған код қарапайым, бірақ PID алгоритмінің мүмкіндіктерін тиімді көрсетеді.

Жобаның қысқаша мазмұны:

Роботтың корпусы Ender 3 принтерінің көмегімен 3D басып шығарылған және бір-біріне басуға арналған.

Роботты Arduino Uno басқарады, ол MPU6050 -ден сенсорлық мәліметтерді алады және сыртқы қозғалтқыш драйвері арқылы тұрақты ток қозғалтқыштарын басқарады. Ол 7,4 В, 1500 мАч батареямен жұмыс істейді. Мотор драйвері Arduino -ны қуаттандыру үшін 5В -қа дейін реттейді және қозғалтқыштарға 7.4 В береді.

Бағдарламалық қамтамасыз ету gitHub-дан 'Arduino-KalmanFilter-master' және 'Arduino-MPU6050-master' кітапханаларының көмегімен нөлден бастап жазылған.

Жабдықтар:

  • 3D басып шығарылған бөлшектер
  • Arduino UNO
  • MPU6050 6 осьті сенсор
  • DC мотор жүргізушісі
  • N20 DC қозғалтқыштары (x2)
  • 9В батарея

1 -қадам: Робот құрастыру

Робот құрастыру
Робот құрастыру
Робот құрастыру
Робот құрастыру
Робот құрастыру
Робот құрастыру

Басып шығару және құрастыру

Бүкіл конструкция сығымдалған болуы керек, бірақ мен тепе-теңдік кезінде роботтың мүлдем қатаң болуын қамтамасыз ету үшін компоненттерді бекіту үшін супер желімді қолдандым.

Мен бөлшектерді Fusion 360 -да құрастырдым және қатаң төзімділік пен беттің тазалығын қамтамасыз ету үшін әр бөлікті тіректерсіз басып шығаруға оңтайландырдым.

Ender 3 принтерінде қолданылатын параметрлер: 0,16 мм қабат биіктігі @ 40% толтыру барлық бөліктер үшін.

2 -қадам: 3D басып шығару роботы

3D басып шығару роботы
3D басып шығару роботы

Шасси (x1)

Сол жақ доңғалақ (x2)

Сол жақ мотор корпусы (x2)

Arduino корпусы (x1)

3 -қадам: PID бақылау алгоритмі

PID бақылау алгоритмі
PID бақылау алгоритмі

Мен gitHub-дан 'Arduino-KalmanFilter-master' және 'Arduino-MPU6050-master' кітапханаларын пайдаланып, PID бақылау алгоритмін нөлден бастап жаздым.

Алгоритмнің алғышарты келесідей:

  • Шикі деректерді MPU6050 -ден оқыңыз
  • Сенсордың үдеуіне байланысты гироскоп көрсеткіштеріндегі дәлсіздіктерді болдырмау үшін гироскоп пен акселерометрден алынған мәліметтерді талдау үшін Калман сүзгісін қолданыңыз. Бұл сенсор қадамының салыстырмалы тегістелген мәнін градуспен екі ондық таңбаға қайтарады.
  • Электронды бұрышты бұрышпен есептеңіз, яғни: сенсор мен белгіленген нүкте арасындағы бұрыш.
  • Пропорционалды қатені есептеңіз (пропорционалдылықтың қателігі x қатесі).
  • Интегралдық қатені жұмыс істейтін қосынды ретінде есептеңіз (константаның қателігі x қатесі).
  • Туынды қатені [дифференциация константасы] x (қатенің өзгеруі / уақыттың өзгеруі)] сияқты тұрақты ретінде есептеңіз
  • Қозғалтқышқа жіберілетін жылдамдықты беру үшін барлық қателерді есептеңіз.
  • Қателік бұрышы белгісі бойынша қозғалтқыштарды қай бағытқа бұру керектігін есептеңіз.
  • Цикл шексіз жұмыс істейді және кіріс өзгерген сайын шығысқа негізделеді. Бұл шығыс мәндерін келесі итерация үшін жаңа кіріс мәндері ретінде пайдаланатын кері байланыс циклы.

Соңғы қадам - PID циклінің Kp, Ki & Kd параметрлерін реттеу.

  1. Жақсы бастапқы нүкте - робот тепе -теңдік нүктесінің айналасында тербелмейінше және құлап кетпейінше Kp -ны баяу жоғарылату.
  2. Содан кейін, Kd мәнін Kp мәнінен шамамен 1% -дан бастаңыз және тербелістер жойылғанша және робот итерілген кезде тегіс сырғып кеткенше баяу өсіңіз.
  3. Ақырында, Ki -ден шамамен 20% Kp -тен бастаңыз және робот құлауды белсенді ұстап, вертикальға оралу үшін белгіленген нүктеден «асып кетпейінше» өзгереді.

Ұсынылған: