Indholdsfortegnelse:

PID -styret kuglebalancerende Stewart -platform: 6 trin
PID -styret kuglebalancerende Stewart -platform: 6 trin

Video: PID -styret kuglebalancerende Stewart -platform: 6 trin

Video: PID -styret kuglebalancerende Stewart -platform: 6 trin
Video: Уроки Ардуино. ПИД регулятор 2024, Juli
Anonim
Image
Image
Få materialer
Få materialer

Motivation og overordnet koncept:

Som fysiker under uddannelse er jeg naturligt tiltrukket af og søger at forstå fysiske systemer. Jeg er blevet uddannet til at løse komplekse problemer ved at bryde dem ned i deres mest basale og essentielle ingredienser og derefter bygge problemet tilbage derfra. Selvom jeg har lært mekanik og elektromagnetisme fra de første principper, har jeg endnu ikke brugt dem i en eller anden fysisk applikation. Jeg får endelig denne mulighed ved at oprette en robot, der bruger teori om automatisk kontrol til selvstændigt at balancere en bold på en flad, fuldt kontrolleret platform, helt på egen hånd!

I denne vejledning; som er beregnet til den teknisk kyndige hacker, programmør eller ingeniør, vil vi bruge en Arduino Uno som vores mikrokontrollerplatform. Den lukkede tilbagekoblingssløjfe starter først, når den registrerer positionen af et massivt metal kugleleje, der ligger på en flad berøringsresistiv skærm, som føder kuglerne umiddelbar position tilbage. Denne position føres derefter ind i en proportional-integral-derivat (PID) controller, som vi har programmeret i Arduino Uno. Jeg har lavet denne kode til open source og linket til projektet. Controlleren har til opgave at genskabe bolden til enhver bruger valgt position på bordet, selv når den er væsentligt forstyrret. Den strukturelle støtteplatform, vi vil bruge, er kendt som en "Stewart -platform" og understøttes af seks uafhængige forbindelsesstænger drevet af servomotorer, der giver op til seks frihedsgrader; X-, Y- og Z -oversættelser, roll, pitch og yaw (rotationer om henholdsvis X-, Y- og Z -akserne). Konstruktion og programmering af en så stærkt mobil platform præsenterer sine egne udfordringer, så for dette projekt vil vi kun kræve pitch and roll frihedsgrader og efterlade de andre som valgfri opgraderinger af funktionalitet, hvis brugeren ønsker det. Sammen med platformen, der flytter bolden til en hvilken som helst af et sæt statiske brugerdefinerede positioner, vil avancerede programmører finde det let at forbedre programmet og tilføje lidt panache ved at erstatte vores statiske, brugerdefinerede position med et semi-kontinuerligt spor af en bruger defineret sti, såsom en figur otte, cirkulær bane, dit navn i kursiv, eller min favorit en livestream af nogens stylus eller finger på deres egen mobile enhed! Glad hacking!

Trin 1: Få materialer

Få materialer
Få materialer
Få materialer
Få materialer
Få materialer
Få materialer

Nødvendige materialer:

1. Et par ark 1/4 "og 1/8" akryl

2. 6 - Servomotorer (Vi brugte HS5485HB Servoer)

3. 6 - Gevindstænger (justerbar)

4. 6 - CNC -bearbejdede servoarms med flere huller til justerbarhed

5. 12 - Heim Joint Rod Ends

6. 6 - Stænger (justerbar)

7. 1- 17”USB-kit med fem ledningsresistive berøringsskærmspaneler (registrer kuglelejes position)

Trin 2: Forbered materialer

Forbered materialer
Forbered materialer
Forbered materialer
Forbered materialer
Forbered materialer
Forbered materialer

Den bedste måde at få akrylskåret på er ved hjælp af et laserkamera. Adgang til en kan være vanskelig, så akrylen kan også let skæres ved hjælp af de skæreværktøjer, du kender, er korrekt uddannet og kan fungere sikkert. Hvis jeg f.eks. Gjorde dette hjemme, ville jeg bruge en håndsav. Den overordnede form af Stewart -platformen behøver ikke nøjagtigt at matche den model, jeg byggede. Jeg vil dog gerne påpege et par forenklede muligheder. For det første er det meget lettere at kortlægge banen og rulle frihedsgrader ved at bruge tre basis, i stedet for standard to. dette gøres ved at gøre fastgørelsen af forbindelsesstængerne til den faktiske platform til en ligesidet trekant. Dette giver dig mulighed for at negligere alle komplikationer ved at finde pitch and roll frihedsgrader (DOF) fra bunden, i stedet bruger vi 3 ikke-lineært uafhængige "basis", der simpelthen er kortet over det hjørne af trekanten, der går op. Dette ville være udfordrende for dig eller jeg at skrive koordinater på dette grundlag, men indbyrdes afhængighed af dette grundlag håndteres let af koden. Denne forenklede antagelse er nøglen til at negligere alle forviklingerne i geometrien. Se billedet MS Paint grafik og whiteboard billede for detaljer.

Når stykkerne er skåret, skal du bore alle hullerne ud, det er, hvor dine forbindelsesstænger og kugleled forbindes til. Vær omhyggelig med at matche hulstørrelsen til den korrekte hardware, du bruger. Dette er afgørende for at få dine valgte befæstelseselementer til at fungere. Hulstørrelserne er baseret på, hvilken størrelse hane du skal bruge til din lukning. For at gøre dette skal du finde en online reference til den specifikke trykstørrelse, tonehøjde og trådtype (fint vs kursus). Jeg anbefaler kursustråde til akryl, men hvis du skal bruge fintråd, burde det fungere, da det vi alligevel brugte. Nu er det tid til at gå videre til samlingen.

Trin 3: Saml materialer

Saml materialer
Saml materialer
Saml materialer
Saml materialer
Saml materialer
Saml materialer
Saml materialer
Saml materialer

Saml forsigtigt materialerne til spec. Vær især forsigtig med ikke at fjerne alle skruer. Når dette er gjort, skal du enten skifte hardware ved at dimensionere og bore større huller og trykke på dem, eller du skal skære et helt nyt stykke akryl. Bemærk også at være forsigtig med den berøringsresistive skærm. Det er skrøbeligt !!! Det er trods alt et tyndt glaslag. Bemærk, at vi selv havde et uheld.

Trin 4: Programmering

Programmering
Programmering

Programmeringen kan tage noget tid. Det er her dine programmeringsevner virkelig kan betale sig. Du behøver ikke være i stand til at skrive koden fra bunden, men hvis du kan finde en velkommenteret og organiseret kildekode, der skal ændres, gør det livet så meget lettere. Her er linket til vores kildekode: https://github.com/a6guerre/Ball-balanced-on-Stew…, hjælp dig selv! Det er bestemt ikke optimeret, men fik arbejdet gjort! Husk, at vi bruger tre separate ikke-ortogonale, ikke-lineært uafhængige grundlag for kontrolkortet. Vi læser simpelthen alt i x, y og kortlægger til A, B og C. Dette svar indstilles derefter globalt for at justere, hvor meget mere eller mindre vi ønsker, at systemet skal reagere.

Trin 5: Test

Her tester vi frihedsgrader. Bemærk nu, hvordan vores tre grundlag betaler sig! For eksempel, for at få rollen DOF, går vi simpelthen ned ad en enhed til venstre, mens vi går op en enhed til højre, og omvendt i den anden retning. Det er også vigtigt at have gjort et tilstrækkeligt godt stykke arbejde med at filtrere støj fra din berøringsskærm. Dette er afgørende for at have gode data til at føde til dit PID.

Trin 6: Finjuster og nyd

Testfasen var egentlig bare for at få fejlene ud. Her fokuserer vi på finjustering af kontrolsystemet. dette gøres bedst med en forudindstillet algoritme. Min favorit er at gribe det an som et kritisk dæmpningsproblem, Ahem! Jeg er fysiker! Så du slukker dæmpningsperioden! Det vil sige det afledte udtryk, der fungerer som et trækbegreb. Nu vil bolden svinge vildt! Målet er dog at få svingningerne til at være så tæt på harmonisk som muligt, ikke vokse eller henfalde, så godt du kan. Når det er gjort, tænder du det afledte udtryk og justerer, indtil det kommer tilbage til ligevægt så hurtigt som muligt. Det er, når kritisk dæmpning opnås. Men hvis dette ikke virker, er der mange andre velafprøvede tuningsordninger for PID -styrede systemer. Jeg fandt dette på wikipedia under PID -controller. Mange tak for at du kiggede på mit projekt, og kontakt mig gerne med spørgsmål, jeg vil med glæde besvare alle dine spørgsmål. Særlig bemærkning: Jeg vil påpege, at dette projekt fra start til slut blev udført af Miracle Max Guerrro og mig selv på knap fire uger, inklusive at vente i to uger på en ny skærm, der sad fast i tolden, efter vores første gik i stykker. Så undskyld at det langt fra er perfekt ydeevne. Glad hacking!

Anbefalede: