Სარჩევი:

თვითბალანსირებული რობოტი - PID კონტროლის ალგორითმი: 3 ნაბიჯი
თვითბალანსირებული რობოტი - PID კონტროლის ალგორითმი: 3 ნაბიჯი

ვიდეო: თვითბალანსირებული რობოტი - PID კონტროლის ალგორითმი: 3 ნაბიჯი

ვიდეო: თვითბალანსირებული რობოტი - PID კონტროლის ალგორითმი: 3 ნაბიჯი
ვიდეო: Весна на Заречной улице (1956) ЦВЕТНАЯ полная версия 2024, ნოემბერი
Anonim
თვითბალანსირებული რობოტი - PID კონტროლის ალგორითმი
თვითბალანსირებული რობოტი - PID კონტროლის ალგორითმი

ეს პროექტი შეიქმნა იმიტომ, რომ მე დაინტერესებული ვიყავი მეტი მესწავლა საკონტროლო ალგორითმების შესახებ და როგორ ეფექტურად განვახორციელო ფუნქციური PID მარყუჟები. პროექტი ჯერ კიდევ განვითარების ფაზაშია, რადგან Bluetooth მოდული ჯერ არ არის დამატებული, რაც საშუალებას მოგცემთ გააკონტროლოთ რობოტი Bluetooth ჩართული სმარტფონიდან.

N20 DC ძრავები შედარებით იაფი იყო და, შესაბამისად, მათში მნიშვნელოვანი თამაში აქვთ. ეს იწვევს მცირე რაოდენობის ხვრინვას, რადგან ძრავები გადალახავს "სუსტს", რადგან ის ბრუნავს ბორბლებზე. აქედან გამომდინარე, თითქმის შეუძლებელია სრულყოფილად გლუვი მოძრაობის მიღწევა. კოდი, რომელიც მე დავწერე, საკმაოდ მარტივია, მაგრამ ეფექტურად აჩვენებს PID ალგორითმის შესაძლებლობებს.

პროექტის შეჯამება:

რობოტის შასი არის 3D დაბეჭდილი Ender 3 პრინტერის გამოყენებით და შექმნილია ერთმანეთთან დაჭერით.

რობოტს აკონტროლებს Arduino Uno, რომელიც იღებს სენსორის მონაცემებს MPU6050– დან და აკონტროლებს DC ძრავებს გარე ძრავის დრაივერის საშუალებით. ის მუშაობს 7.4V, 1500mAh ბატარეაზე. ძრავის დრაივერი არეგულირებს არდუინოს 5 ვ -მდე და ძრავებს აწვდის 7.4 ვ.

პროგრამული უზრუნველყოფა დაიწერა ნულიდან „Arduino-KalmanFilter-master“და „Arduino-MPU6050-master“ბიბლიოთეკების დახმარებით gitHub– დან.

მასალები:

  • 3D ნაბეჭდი ნაწილები
  • Arduino UNO
  • MPU6050 6 ღერძიანი სენსორი
  • D. C საავტომობილო მძღოლი
  • N20 DC Motors (x2)
  • 9 ვ ბატარეა

ნაბიჯი 1: Robot Build

ონლაინ თამაში Robot Build
ონლაინ თამაში Robot Build
ონლაინ თამაში Robot Build
ონლაინ თამაში Robot Build
ონლაინ თამაში Robot Build
ონლაინ თამაში Robot Build

ბეჭდვა და შეკრება

მთელი ნაგებობა უნდა იყოს პრესისთვის მორგებული, მაგრამ მე გამოვიყენე სუპერწებო კომპონენტების გასამყარებლად, რომ რობოტი ბალანსირებისას სრულად ხისტი იყოს.

მე შემუშავებული მაქვს ნაწილები Fusion 360 – ში და თითოეული ნაწილი ოპტიმიზირებულია ბეჭდვის გარეშე, რათა გამკაცრდეს ტოლერანტობა და სუფთა ზედაპირი.

Ender 3 პრინტერზე გამოყენებული პარამეტრები იყო: 0.16 მმ ფენის სიმაღლე @ 40% შევსება ყველა ნაწილისთვის.

ნაბიჯი 2: 3D ბეჭდვის რობოტი

3D ბეჭდვის რობოტი
3D ბეჭდვის რობოტი

შასი (x1)

მარცხენა ბორბალი (x2)

მარცხენა საავტომობილო საცხოვრებელი (x2)

Arduino Case (x1)

ნაბიჯი 3: PID კონტროლის ალგორითმი

PID კონტროლის ალგორითმი
PID კონტროლის ალგორითმი

მე დავწერე PID კონტროლის ალგორითმი ნულიდან "Arduino-KalmanFilter-master" და "Arduino-MPU6050-master" ბიბლიოთეკების გამოყენებით gitHub– დან.

ალგორითმის საფუძველი შემდეგია:

  • წაიკითხეთ ნედლეული მონაცემები MPU6050– დან
  • გამოიყენეთ კალმანის ფილტრი გიროსკოპისა და აქსელერომეტრის მონაცემების გასაანალიზებლად სენსორის დაჩქარების გამო გიროსკოპის კითხვების უზუსტობების გასაუქმებლად. ეს აბრუნებს შედარებით გათლილ მნიშვნელობას სენსორის სიმაღლის ხარისხით ორ ათწილადში.
  • გამოთვალეთ E rror კუთხეში, ანუ: კუთხე სენსორსა და მითითებულ წერტილს შორის.
  • გამოთვალეთ პროპორციული შეცდომა როგორც (პროპორციულობის მუდმივი x შეცდომა).
  • გამოითვალეთ ინტეგრალური შეცდომა (ინტეგრაციის მუდმივი x შეცდომა).
  • გამოთვალეთ წარმოებული შეცდომა როგორც მუდმივი, როგორც [(დიფერენცირების მუდმივი] x (შეცდომის შეცვლა / დროის ცვლილება)]
  • შეაჯამეთ ყველა შეცდომა, რომ მიიღოთ სიჩქარე, რომელიც უნდა გაიგზავნოს ძრავებზე.
  • შეცვლის კუთხის ნიშნის მიხედვით გამოთვალეთ ძრავების რომელი მიმართულება.
  • მარყუჟი იმუშავებს განუსაზღვრელი ვადით და დაეყრდნობა გამომავალს, რადგან შეყვანა იცვლება. ეს არის უკუკავშირის მარყუჟი, გამომავალი მნიშვნელობების გამოყენებით, როგორც ახალი შემავალი მნიშვნელობები მომდევნო გამეორებისთვის.

ბოლო ნაბიჯი არის PID მარყუჟის დაყენება Kp, Ki & Kd პარამეტრები.

  1. კარგი ამოსავალი წერტილი არის ნელ -ნელა გაზრდა Kp მანამ, სანამ რობოტი არ ბრუნავს ბალანსის წერტილის გარშემო და შეძლებს დაცემას.
  2. შემდეგი, დაიწყეთ Kd Kp– ს მნიშვნელობით დაახლოებით 1% –ით და ნელ -ნელა გაზარდეთ სანამ რხევები არ გაქრება და რობოტი შეუფერხებლად სრიალებს, როდესაც უბიძგებს მას.
  3. დაბოლოს, დაიწყეთ Ki– ით Kp– ს დაახლოებით 20% –ით და იცვლება მანამ, სანამ რობოტი არ გადააჭარბებს მითითებულ წერტილს, რათა აქტიურად დაიჭიროს დაცემა და დაუბრუნდეს ვერტიკალს.

გირჩევთ: