Sisukord:

PID -kontrolli õpetamine Lego robotitega: 14 sammu
PID -kontrolli õpetamine Lego robotitega: 14 sammu

Video: PID -kontrolli õpetamine Lego robotitega: 14 sammu

Video: PID -kontrolli õpetamine Lego robotitega: 14 sammu
Video: LEGO MINDSTORMS Education EV3 2024, Juuli
Anonim
PID -kontrolli õpetamine Lego robotitega
PID -kontrolli õpetamine Lego robotitega

Paljud noored robotihuvilised on huvitatud keerukamatest juhtimisteemadest, kuid neid võib takistada arvutus, mida sageli vajatakse suletud ahelaga süsteemide analüüsimiseks. Internetis on saadaval suurepäraseid ressursse, mis lihtsustavad "proportsionaalse integreeritud diferentsiaalkontrolleri" (PID -kontroller) ehitamist, ja üks suurepärane kirjeldus on siin:

Sellegipoolest võib neid olla raske järgida ja need ei pruugi sobida umbes 20 õpilasega klassiruumi.

See samm -sammult juhendatav näitab, kuidas edukalt õpetada õpilastega täis ruumi, kasutades Lego robotite süsteemi, mitmeid roboteid (5–10 neist), võrdsel arvul arvutitööjaamu, kus töötab NXT 2.0, ja seitsme jala pikkune must rada. elektrilint põrandal.

Kõrval: tänu J. Slukale, kes kirjutas ülaltoodud lingi, dr Bruce Linnellile, kes lõi ECPI ülikooli tasemel mõned varased Lego laborid, ja dr Reza Jafarile, kes pakkus PID -kontrolli eesmärke, et kaardistada ideid EET220 ja Capstone'i kursusetöö.

Samm: enne õpilaste saabumist laboratoorsed ettevalmistused

Labori ettevalmistus enne õpilaste saabumist
Labori ettevalmistus enne õpilaste saabumist

Andke õpilastele oma raskest tööst teada;-)

Instruktorid ja õpetaja assistendid on olnud VÄGA hõivatud, et saaksite seda laborit teha! Robot on selle labori jaoks laetud ja kokku pandud. Kui kokkupanek on vajalik, võib ühe või mitme roboti jaoks kuluda kuni 90 minutit. Aku laadimiseks või laadimise/tühjendamise tsüklitega konditsioneerimiseks on vaja veelgi rohkem aega. Üksikasjalikke juhiseid selle kohta, kuidas robotit täna kasutada, leiate NXT 2.0 või 2.1 hariduskomplektist, „järgige joont“roboti ehitamise juhendist. Kasutame siiski keerukamat programmeerimist … Must elektrilint heledal linoleumil teeb suurepärase raja. See on 3 'x 7' poolringikujuliste kõveratega.

2. samm: tutvuge robotiga

Tutvuge robotiga
Tutvuge robotiga

Esiteks tutvute robotimenüüga, samuti selle konkreetse roboti mõne osaga. Samuti saate teada roboti kasutatavast tööstusliku stiili anduritehnoloogiast, sealhulgas valgusdioodidest, valgusanduritest, samm -mootoritest ja pöördasendi anduritest. Palun täitke kindlasti kogu nõutud teave (tavaliselt allajoonitud tühikud _).

1. Ühendage robot laadijast ja/või arvuti USB -pordist lahti. Roboti sisselülitamiseks kasutage oranži nuppu. Oranž, vasak ja parem nupp ning „tagasi” hall ristküliku nupp võimaldavad navigeerida menüüs. Liikuge menüüsse „Tarkvarafailid” ja kerige robotil saadaolevaid tarkvarafaile. Loetlege iga tarkvarafaili nimed ja täpne kirjutamisviis, sealhulgas suurtähed ja tühikud:

_

Samm: kalibreerige valgusandur

Kalibreerige valgusandur
Kalibreerige valgusandur

2 Uurige valgusandurit ja kalibreerimisteavet. Minge tagasi peamenüüsse ja valige „Vaata”. Valige suvand "Peegeldatud valgus" ja port (see peaks olema "Port 3"), mis põhjustab valguse sisselülitamise ja numbri kuvamise ekraanil. Veenduge, et kõik töötab, ja salvestage kalibreerimisteave.

a. Maksimaalne lugemine valge paberilehe abil: Number: _ Kirjeldage ligikaudset kaugust paberist: _

b. Maksimaalne näit heledal linoleumpõrandal: _

c. Minimaalne näit musta elektrilindi keskele osutamisel: _

4. samm: testige mootori kalibreerimist

Testige mootori kalibreerimist
Testige mootori kalibreerimist

3 Uurige rataste mootoreid (vasakule ja paremale) ning kalibreerimisteavet. Tagasi peamenüüsse ja valige „Mootori pöörlemine” Valige port (kahe mootori puhul peaks see olema kas port „B” või „Port C”). Vaadake, kas saate selle näidu kalibreerimist kontrollida, keerates näidikut vaadates iga mootorit kindla arvu pööretega. Te teete mõlema mootori jaoks sama kalibreerimistesti, kasutades kalibreerimisekraani „View” või „Motor Degrees”.

Mootor pordis B

  • Rataste pööramise kordade arv _
  • „Mootori pöörlemiste” kuvamisväärtus_
  • Kaugus kraadides pöörati ratast _
  • Kuvatud väärtus „Mootorikraadid”_

Mootor sadamas C

  • Rataste pööramise kordade arv _
  • „Mootori pöörlemiste” kuvamisväärtus_
  • Kaugus kraadides pöörati ratast _
  • Kuvatud väärtus „Mootorikraadid”_

Kas kuvamisväärtused vastasid teie ootustele? Palun selgitage. _

Samm: käivitage kaasasolev väljalülitatud kontroller

Käivitage kaasasolev väljalülitatud kontroller
Käivitage kaasasolev väljalülitatud kontroller

"On-Off" (mõnikord ka "Bang-Bang") kontrolleril on ainult kaks võimalust-sisse ja välja. See sarnaneb teie kodus oleva termostaadi juhtimisega. Kui valitud temperatuur on seatud, soojendab termostaat maja, kui see on liiga külm, ja jahutab maja, kui see on liiga kuum. Valitud temperatuuri nimetatakse "seadepunktiks" ning vahe praeguse maja temperatuuri ja seadepunkti vahel nimetatakse "veaks". Nii et võite öelda, et kui viga on positiivne, lülitage vahelduvvool sisse, vastasel juhul lülitage kuumus sisse.

Meie puhul pöörab robot vasakule või paremale, sõltuvalt sellest, kas valgusanduri seadeväärtusel on positiivne või negatiivne viga (liiga palju valgel põrandal või liiga palju mustal lindil).

Märkate, et teie robot võib olla juba laaditud mitmete programmidega (või võite kasutada siia manustatud lisatud faili "01 line.rbt"), millele on salvestatud nimed nagu "1 rida" ja "2 rida". võib olla täiendav täht pärast programmi numbrit, näiteks „3b rida”. Peate programmi käivitama nimega numbriga „1” ja seejärel asetama roboti lindile, andur musta joonega. Püüdke hoida end eemal teistest juba rajal olevatest robotitest, et saaksite oma robotit ajastada, ilma et peaksite katkestama teistele robotitele põrkumist.

4 Mõõtke järgmisi ajakatseid:

a. Aeg raja ühe sirge külje läbimiseks: _

b. Kirjeldage robotite sirgjoonelist liikumist: _

c. Aeg raja ühe kurvi läbimiseks: _

d. Kirjeldage kõverdatud rööbastee liikumist: _

e. Aeg läbida kogu rada üks kord: _

6. toiming: avage sisse-välja lülititarkvara "01 rida"

Ava
Ava
Ava
Ava
Ava
Ava

Avate tarkvara „LEGO MINDSTORMS NXT 2.0” (mitte tarkvara Edu 2.1) ja laadite sobiva programmi nimega „01 line.rbt” ning uurite ja muutke tarkvara, järgides alltoodud juhiseid.

Avage tarkvara “LEGO MINDSTORMS NXT 2.0” (mitte tarkvara Edu 2.1). Teie juhendaja ütleb teile, kus failid teie arvutisse salvestatakse, ja sealt avate programmi “1 rida”. Valige lihtsalt "Fail", seejärel "Ava" ja valige avamiseks programm "1 rida".

Kui programm on avatud, saate programmi kogu ekraanipildi teisaldamiseks kasutada ikooni „käsi” ja üksikute objektide klõpsamiseks nooleikooni abil (ja ka muudatuste tegemiseks).

Samm 7: "01-rea" on-off kontrolleritarkvara mõistmine

Mõistmine
Mõistmine

Programm “1 rida” kasutab juhtimismeetodit “On-Off”. Sel juhul on valikud kas “Pööra vasakule” või “Pööra paremale”. Graafik sisaldab programmi elementide kirjeldust:

8. samm: sisse-välja lülitatud kontrolleritarkvara "01 rida" redigeerimine

Redigeerimine
Redigeerimine

Muutke seadeväärtust ja võrrelge tulemusi.

Ülaltoodud 2. sammus avastasite valgusmõõturi reaalmaailma väärtused. Salvestasite väärtused osades b ja c, miinimum- ja maksimumväärtuste numbrid, mida robot näeks raja läbimisel.

5 Arvutage HEA seadeväärtus (min ja max keskmine): _

6 Valige BAD set-pint väärtus (miinimumile või maksimumile väga lähedane number): _

Muutke seadeväärtuseks üks neist väärtustest, kasutades nooleikooni, et klõpsata veaarvestuse kastil, ja muutes lahutatavat arvu (vt allolevat pilti). Nüüd ühendage robot USB -kaabli abil arvutiga, veenduge, et robot on sisse lülitatud, ja laadige robotile alla programmi „1 rida“uus versioon. Näete, kui kaua kulub robotil ringi liikumiseks päripäeva, kord heade ja kord halbade seadetega.

7 Lõpetage ajakatsed heade ja halbade seadeväärtustega

a. Aeg läbida kogu rada üks kord (HEA seadeväärtus): _

b. Aeg läbida kogu rada üks kord (BAD Set-Point): _

Teie tähelepanekud / järeldused? _

9. samm: arusaamine "02-liini" sisselülitamisest surnud tsooni kontrolleritarkvara abil

Mõistmine
Mõistmine

Kui teie kodu vahelduvvool ja soojus lülituvad kogu päeva sisse ja välja, võib see teie HVAC -süsteemi kindlasti hävitada (või vähemalt lühendada selle eluiga). Enamik termostaate on valmistatud sisseehitatud surnud tsooniga. Näiteks kui teie seadeväärtus on 70 kraadi Fahrenheiti, ei pruugi termostaat vahelduvvoolu sisse lülitada enne, kui see on jõudnud 72 kraadini, ega lülita soojust sisse enne, kui temperatuur langeb 68 kraadini. Kui surnud tsoon läheb liiga laiaks, võib maja muutuda ebamugavaks.

Meie puhul kasutame 02-liini programmi surnud tsooni lisamiseks, mille jooksul robot lihtsalt sõidab otse.

Nüüd uurige tarkvarafaili “02 rida”, nagu on kirjeldatud joonisel ja lisatud failis.

See tarkvarafail programmeerib roboti jälgima joont, kasutades sisse-välja lülitust diferentsiaalivahega. Seda tuntakse ka surnud ribana ja see tähendab, et robot pöörab sõltuvalt veast vasakule või paremale, kuid kui viga on väike, läheb robot lihtsalt otse.

Programm “02 line” arvutab ülaltoodud esmalt, lahutades valguse mõõtmisest seadepunkti ja tehes seejärel võrdlused, nagu eespool märgitud. Uurige programmi arvutis ja salvestage kuvatud väärtused.

Milline on programmide „2 rida” praegune (algne) seadeväärtus? _

Mis on programmide “2 rida” praegune (algne) väärtus “Suur” positiivne viga? _

Mis on programmide “2 rida” praegune (algne) väärtus “Suur” negatiivne tõrge? _

Milline surnud riba veavahemik paneb roboti otse minema? ALATES KUNI _

Tehke ülaltoodud vea „Suur” jaoks kolm (3) ajakatseid erinevate väärtustega. Praegused "2 rea" seaded ja kaks muud seadistust, mille arvutate. Olete oma robotile juba valinud HEA seadistuspunkti. Nüüd valite kaks erinevat Dead-Band vahemikku ja registreerite aja, mis robotil kulub ühe päripäeva ringi tegemiseks:

02 -rea algseaded _

Surnud riba +4 kuni -4 _

Surnud riba +12 kuni -12 _

Samm: mõistke proportsionaalse kontrolleri tarkvara "03 rida"

Mõistmine
Mõistmine

Proportsionaalse juhtimise korral ei lülita me lihtsalt kütet sisse ega välja, vaid meil võib olla mitu seadet ahju sisselülitamiseks (näiteks leekide suurus pliidiplaadil). Roboti puhul pole meil ainult kolme mootoriseadet (vasak, parem ja sirge). Selle asemel saame kontrollida vasaku ja parema ratta kiirust, et saada mitmesuguseid pöördeid. Mida suurem on viga, seda kiiremini tahame joonele tagasi pöörduda.

Vaatame proportsionaalset kontrolli programmiga “03 rida”

„03-rea” programm on keerulisem, kuna see mitte ainult ei seadista „proportsionaalset” juhtimismeetodit, vaid sisaldab ka kogu tarkvara, mis võimaldab teha proportsionaalse-integraalse, proportsionaalse-diferentsiaalse ja proportsionaalse-integraalse-diferentsiaalse (PID) juhtimise. Tarkvara laadimisel on see tõenäoliselt liiga suur, et korraga ekraanile mahtuda, kuid sellel on tõesti kolm osa, nagu on näidatud lisatud graafikul.

A - matemaatika vea arvutamiseks ja "arvutus" vea integraali ja tuletise leidmiseks aja jooksul.

B - matemaatika mootori vasakpoolse pöörlemiskiiruse arvutamiseks, lähtudes Kp, Ki ja Kd PID -reguleerimisseadetest

C - matemaatika mootori kiirusepiirangute testimiseks ja õigete mootorikiiruste saatmiseks vasakule ja paremale mootorile.

Kõik need kolm käitavad oma lõpmatuid ahelaid (pärast lähtestamist) ja saate sirvida, kasutades ikooni „käsi”, kuid lülitage tagasi nooleikoonile, et uurida kasti sisu ja muuta seadeid.

Samm 11: 03 -rea (proportsionaalse kontrolli) programmi redigeerimine

03 -rea (proportsionaalse kontrolli) programmi redigeerimine
03 -rea (proportsionaalse kontrolli) programmi redigeerimine

Keskmises osas (eelmise kirjelduse jaotis B) märkate, et programmis “03 line” on Ki ja Kd seaded mõlemad 0.

Jätame nad nii. Muudame ainult kontrolleri proportsionaalse osa Kp väärtust.

Kp otsustab, kui sujuvalt robot joonest eemale triivides kiirust muudab. Kui Kp on liiga suur, on liikumine äärmiselt tõmblev (sarnane On-Off kontrolleriga). Kui Kp on liiga väike, teeb robot parandusi liiga aeglaselt ja triivib joonest kaugele, eriti kurvides. See võib isegi triivida nii kaugele, et kaotab joone üldse!

13 Millist seadeväärtust kasutab programm “03 line”? (lahutatakse pärast valgussätte lugemist A -silmusest) _

14 Milline on Kp väärtus praeguses programmis “03 rida”? _

Ajakatsed proportsionaalse kontrolleri jaoks (programm “3 rida”)

Kasutate ajakatsete tegemiseks roboti mällu salvestatud programmi „03 rida” algseadeid ja kasutate ka kahte muud „03 -rea” programmi muudatust, et teha kokku kolm ajasõidu mõõtmist. Muudatused, mida peate tegema, hõlmavad

DRIFTY - Kp väärtuse leidmine, mis paneb roboti väga aeglaselt triivima ja võib kaotada joone silmist (kuid loodetavasti mitte). Proovige Kp erinevaid väärtusi vahemikus 0,5 kuni 2,5 (või mõni muu väärtus), kuni saate väärtuse, kus robot triivib, kuid jääb joonele.

JERKY - Kp väärtuse leidmine, mis paneb roboti edasi -tagasi jõnksutama, väga sarnane liikumise On -Off tüübile. Proovige Kp väärtust kuskil 1,5–3,5 (või mõni muu väärtus), kuni saate väärtuse, kus robot alles hakkab edasi -tagasi liikuma, kuid mitte liiga dramaatiliselt. Seda tuntakse ka kui Kp kriitilist väärtust.

Ajakatsetused kogu päripäeva pööramisel raja ümber on vajalikud ainult algsete „3 rida” väärtuste ja kahe uue väärtuste komplektiga (DRIFTY ja JERKY), mille avastate, kui lasete robotil jälgida vaid lühikest rada. Ärge unustage iga kord oma robotile muudatusi alla laadida!

15 Salvestage programmi „3 rida” proportsionaalsed kontrollväärtused ja ajakatsed (ärge unustage robotile muudatusi alla laadida!) Kõigi nende kolme Kp väärtuse (algne 03 rea väärtus ja kaks katse -eksituse meetodil määratud väärtuste kohta) olla DRIFTY ja JERKY).

12. samm: täiustatud PID -kontrollerid

Täiustatud PID -kontrollerid
Täiustatud PID -kontrollerid
Täiustatud PID -kontrollerid
Täiustatud PID -kontrollerid

Enne selle sammu alustamist tehke kindlasti eelnevad sammud ja salvestage kogu nõutud teave konkreetse robotiga, mida kavatsete selles laboris kasutada. Iga robot on mehaaniliste aspektide, mootoriaspektide ja eriti valgusandurite tulemuste osas rajal pisut erinev.

Arvud, mida vajate eelmistest katsetest

16 Maksimaalne valgusanduri näit (2. sammust) _

17 Minimaalne valgusanduri näit (alates 5. sammust) _

18 Seadepunkti HEA seadistus (ülaltoodud keskmine) _

19 DRPTY seadistus Kp jaoks (alates sammust 15) _

20 JERKY (kriitiline) säte Kp jaoks (alates sammust 15) _

PID -kontrolleri mõistmine

Võimalik, et olete õppinud proportsionaalse integreeritud diferentsiaali (PID) kontrollerit tööstuslike juhtimiskursuste raames ja hea kiire ülevaate leiate veebist Vikipeediast (https://en.wikipedia.org/wiki/PID_controller).

Selle katse puhul on mõõdetud väärtus põrandalt peegeldunud valguse hulk. Seadistuspunkt on soovitud valguse hulk, kui robot asub otse musta lindi serva kohal. Viga on erinevus praeguse valgusnäidu ja seadeväärtuse vahel.

Proportionaalse kontrolleriga oli vasaku mootori kiirus veaga võrdeline. Täpsemalt:

Viga = kerge lugemine-seadeväärtus

Sellel graafikul oli seadeväärtuseks seatud 50.

Hiljem, vasakmootori kiiruse leidmiseks korrutame vea proportsioonikonstandiga “Kp”:

L Mootor = (Kp * viga) + 35

Selles graafikas on Kp väärtuseks 1,5 ja 35 lisamine toimub programmi teises osas. Väärtus 35 lisatakse, et teisendada arv, mis jääb vahemikku -40 kuni +40, et saada arv, mis jääb vahemikku 10 kuni 60 (mõistlikud mootori kiirused).

Integraal on omamoodi mälestus minevikust. Kui viga on olnud pikemat aega halb, peaks robot seadistuspunkti suunas kiirustama. Ki kasutatakse integraaliga korrutamiseks (integraal on vigade jooksev summa - antud juhul vähendatakse seda iga korduse korral 1,5 võrra, nii et robotil on mineviku vigade „tuhmuv mälu”).

Tuletis on omamoodi tulevikuprognoos. Me ennustame tulevast viga, võrreldes viimast viga praeguse veaga, ja eeldame, et vea muutumise määr on mõnevõrra lineaarne. Mida suurem on tulevane viga, seda kiiremini peame seadistuspunkti liikuma. Kd kasutatakse korrutamiseks tuletisinstrumendiga (tuletis on praeguse vea ja eelmise vea vahe).

L Mootor = (Kp * viga) + (Ki * integraal) + (Kd * tuletis) + 35

13. samm: parimate PID -parameetrite leidmine

Parimate PID -parameetrite leidmine
Parimate PID -parameetrite leidmine
Parimate PID -parameetrite leidmine
Parimate PID -parameetrite leidmine
Parimate PID -parameetrite leidmine
Parimate PID -parameetrite leidmine

PID parameetrite leidmiseks võib kasutada mitmeid viise, kuid meie olukorral on ainulaadseid aspekte, mis võimaldavad meil parameetrite leidmiseks kasutada „käsitsi“eksperimentaalsemat viisi. Meie ainulaadsed aspektid on järgmised:

  • Katsetajad (teie) saavad masina toimimisviisist hästi aru
  • Kontrolleri hulluks minnes ei ole vigastuste ohtu, samuti pole viga robotit kahjustada, kuna kontrolleri seaded on halvad.
  • Valgusandur on selline lohakas andur ja valgussensoreid on ainult üks, nii et jääb vaid loota, et saame marginaalselt hea lõpptulemuse. Seetõttu sobib meie katsete jaoks "parim pingutus"

Esiteks kasutasime juba parema Kp valimiseks „joont 03“(HEA seadeväärtus ja JERKY Kp väärtused ülaltoodud sammud 18 ja 20). Vaadake esimesest graafikust juhiseid selle kohta, kuidas leidsime Kp jaoks JERKY väärtuse.

Ki määramiseks kasutage tarkvara “04 line”. Esmalt muudame „4 rida”, et saada väärtused, mille oleme salvestanud ülaltoodud punktides 18 ja 20. Järgmisena suurendame aeglaselt Ki-d, kuni saame väärtuse, mis viib meid väga kiiresti seatud punkti. Ki väärtuse valimise juhised leiate teisest graafikust.

21 Kiireim Ki väärtus, mis jõuab sihtpunkti kõige kiiremini (isegi mõningase ületamise korral) _

Kd määramiseks kasutage tarkvara “05 line”. Esmalt muutke „5 rida” väärtustega sammudest 18, 20 ja 21, seejärel suurendage Kd, kuni saate lõpliku tööroboti, mis jõuab seadistuspunkti kiiresti ja väga väikese ületamisega, kui see on olemas. Kolmas graafik näitab juhiseid Kd valimiseks.

22 KD OPTIMAALNE väärtus _

23 KUI KAUA SINU ROBOT VÕIB RADA NÜÜD ringi teha ??? _

14. samm: järeldus

Labori katse läks väga hästi. Umbes 20 õpilasega, kasutades esimeses graafikus näidatud 10 (kümmet) tööjaama + roboti seadistust, ei olnud kunagi ressursside logjami. Ajasõitudeks tiirutas ringrajal korraga kõige rohkem kolm robotit.

Soovitan PID -kontrolli osa (vähemalt programmid "04 rida" ja "05 rida") eraldi päevadeks lahti seletada.

Siin on jada videoid, mis näitavad juhtelementide edenemist ("01 rida" kuni "05 rida"), kasutades minu valitud väärtusi - kuid iga õpilane pakkus välja veidi erinevad väärtused, mida võib oodata!

TÄHELEPANU: Üks peamisi põhjusi, miks väga hästi ettevalmistatud robotimeeskonnad võistlusüritustel halvasti lähevad, on asjaolu, et nad ei soorita kalibreerimist täpselt kohas, kus üritus toimub. Valgustus ja andurite kerged asendimuutused tõukamise tõttu võivad parameetrite väärtusi oluliselt mõjutada!

  • 01 rida (sisse -välja) PID -kontroll Lego robotitega -
  • 02 rida (sisse-välja surnud tsooniga) PID-kontroll Lego robotitega-https://videos.ecpi.net/Watch/n4A5Lor7
  • 03 rida (proportsionaalne) PID -kontroll Lego robotitega -
  • 04 rida (proportsionaalne -integreeritud) PID -kontroll Lego robotitega -
  • 05 rida (proportsionaalne-integreeritud-tuletis) PID-kontroll Lego robotitega-https://videos.ecpi.net/Watch/s6LRi5r7

Soovitan: