Përmbajtje:

Roboti i vet balancimit - Algoritmi i kontrollit PID: 3 hapa
Roboti i vet balancimit - Algoritmi i kontrollit PID: 3 hapa

Video: Roboti i vet balancimit - Algoritmi i kontrollit PID: 3 hapa

Video: Roboti i vet balancimit - Algoritmi i kontrollit PID: 3 hapa
Video: Контрольная лампа переменного тока с диммером Arduino AC 2024, Nëntor
Anonim
Roboti i vet balancimit - Algoritmi i kontrollit PID
Roboti i vet balancimit - Algoritmi i kontrollit PID

Ky projekt u krijua sepse isha i interesuar të mësoja më shumë rreth Algoritmeve të Kontrollit dhe si të zbatoja në mënyrë efektive sythet PID funksionale. Projekti është ende në fazën e zhvillimit pasi një modul Bluetooth ende nuk është shtuar i cili do të lejojë kontrollin mbi robotin nga një smartphone me Bluetooth.

Motorët N20 DC të përdorur ishin relativisht të lirë, dhe kështu kanë një sasi të konsiderueshme loje në to. Kjo çon në një sasi të vogël hovi pasi motorët kapërcejnë 'plogështinë' ndërsa aplikon çift rrotullues në rrota. Prandaj, është pothuajse e pamundur të arrihet një lëvizje e përkryer e qetë. Kodi që kam shkruar është mjaft i thjeshtë, por në mënyrë efektive demonstron aftësitë e algoritmit PID.

Përmbledhje projekti:

Shasia e robotit është e printuar 3D duke përdorur një printer Ender 3 dhe është projektuar që të përshtatet së bashku.

Roboti kontrollohet nga një Arduino Uno i cili merr të dhënat e sensorit nga MPU6050 dhe kontrollon motorët DC përmes një drejtuesi të motorit të jashtëm. Ajo punon me një bateri 7.4V, 1500mAh. Drejtuesi i motorit e rregullon këtë në 5V për të fuqizuar Arduino dhe furnizon motorët 7.4V.

Softueri është shkruar nga e para me ndihmën e bibliotekave 'Arduino-KalmanFilter-master' dhe 'Arduino-MPU6050-master' nga gitHub.

Furnizimet:

  • Pjesë të printuara 3D
  • Arduino UNO
  • Sensori MPU6050 6-Bosht
  • Drejtuesi i motorit D. C
  • N20 DC Motors (x2)
  • Bateri 9V

Hapi 1: Ndërtimi i robotëve

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

Shtypja dhe montimi

E gjithë struktura duhet të jetë e përshtatshme për shtyp, por unë kam përdorur superglues për të siguruar përbërësit për të siguruar që roboti të jetë plotësisht i ngurtë kur balancohet.

Unë kam projektuar pjesët në Fusion 360 dhe kam optimizuar secilën pjesë për të printuar pa mbështetës për të lejuar toleranca më të forta dhe një përfundim më të pastër të sipërfaqes.

Cilësimet e përdorura në Ender 3 Printer ishin: 0.16mm Lartësia e Shtresës @ 40% mbushje për të gjitha pjesët.

Hapi 2: Roboti i printimit 3D

Roboti i printimit 3D
Roboti i printimit 3D

Shasia (x1)

Rrota e majtë (x2)

Strehimi i motorit të majtë (x2)

Rast Arduino (x1)

Hapi 3: Algoritmi i Kontrollit PID

Algoritmi i kontrollit PID
Algoritmi i kontrollit PID

Unë kam shkruar një algoritëm të kontrollit PID nga e para duke përdorur bibliotekat 'Arduino-KalmanFilter-master' dhe 'Arduino-MPU6050-master' nga gitHub.

Premisa e algoritmit është si më poshtë:

  • Lexoni të dhëna të papërpunuara nga MPU6050
  • Përdorni Kalman Filter për të analizuar të dhënat nga Xhiroskopi dhe Përshpejtuesi për të anuluar pasaktësitë në leximet e xhiroskopit për shkak të përshpejtimit të sensorit. Kjo kthen një vlerë relativisht të zbutur për lartësinë e sensorit në shkallë në dy vende dhjetore.
  • Llogaritni gabimin E në kënd, domethënë: Këndi midis sensorit dhe pikës së caktuar.
  • Llogaritni gabimin proporcional si (Konstanta e proporcionalitetit x gabim).
  • Llogaritni Gabimin Integral si shumën rrjedhëse të (Konstanta e Integrimit x gabim).
  • Llogaritni Gabimin Derivativ aq konstant sa [(Konstantja e Diferencimit) x (Ndryshimi në gabim / Ndryshimi në kohë)]
  • Përmblidhni të gjitha gabimet për të dhënë shpejtësinë e daljes që do t'i dërgohet motorëve.
  • Llogaritni drejtimin për të kthyer motorët bazuar në shenjën e këndit të gabimit.
  • Lak do të funksionojë pafundësisht dhe do të ndërtohet mbi daljen pasi hyrja ndryshon. Shtë një lak reagimi, duke përdorur vlerat e daljes si vlerat e reja hyrëse për përsëritjen e ardhshme.

Hapi i fundit është të sinkronizoni parametrat e lakut PID, Ki & Kd.

  1. Një pikënisje e mirë është të rrisni ngadalë Kp derisa roboti të lëkundet rreth pikës së ekuilibrit dhe mund të kapë një rënie.
  2. Tjetra, filloni Kd me rreth 1% vlerën e Kp dhe rriteni ngadalë derisa lëkundjet të zhduken dhe roboti të rrëshqasë pa probleme kur shtyhet.
  3. Së fundi, filloni me Ki rreth 20% të Kp dhe ndryshoni derisa roboti të "tejkalojë" pikën e caktuar për të kapur në mënyrë aktive një rënie dhe të kthehet në vertikale.

Recommended: