Innehållsförteckning:

Undervisning i PID -kontroll med Lego Robots: 14 steg
Undervisning i PID -kontroll med Lego Robots: 14 steg

Video: Undervisning i PID -kontroll med Lego Robots: 14 steg

Video: Undervisning i PID -kontroll med Lego Robots: 14 steg
Video: Section 11 2024, November
Anonim
Undervisning i PID -kontroll med Lego -robotar
Undervisning i PID -kontroll med Lego -robotar

Många unga robotentusiaster är intresserade av mer avancerade kontrollämnen, men kan stymmas av den kalkyl som ofta krävs för att analysera slutna kretsar. Det finns underbara resurser tillgängliga online som förenklar konstruktionen av en "Proportional Integral Differential Controller" (PID Controller), och en bra beskrivning finns här:

Ändå kan dessa vara svåra att följa, och kanske inte lämpliga för ett klassrum med cirka 20 elever.

Detta steg för steg Instruerbara visar hur man framgångsrikt kan lära ett rum fullt av elever som använder Lego -robotsystemet, ett antal robotar (5 till 10 av dem), lika många datorarbetsstationer som kör NXT 2.0 och ett sju fot spår av svart eltejp på golvet.

ASIDE: Tack till J. Sluka, som skrev ovanstående länk, Dr. Bruce Linnell, som skapade några tidiga Lego -laboratorier på ECPI -universitetsnivå, och Dr Reza Jafari, som gav PID Control -lärandemål för att kartlägga idéer mot EET220 och Capstone kurser.

Steg 1: Laboratorieförberedelser innan studenterna anländer

Laboratorieförberedelser innan studenterna anländer
Laboratorieförberedelser innan studenterna anländer

Låt eleverna veta om ditt hårda arbete;-)

Instruktörer och lärarassistenter har varit MYCKET upptagna med att göra sig redo för att du ska göra det här labbet! Roboten har laddats och monterats för detta labb. Om montering behövs kan det ta upp till 90 minuters tid för en eller flera robotar. Ännu mer tid krävs för att ladda batterierna eller konditionera dem med laddnings-/urladdningscykler. För detaljerade instruktioner om hur vi bygger roboten som vi kommer att använda idag, se NXT 2.0 eller 2.1 Educational kit, "följ en linje" robotbyggnadsguide. Vi kommer dock att använda mer komplex programmering … Svart eltejp på ljust linoleum gör ett bra spår. Den här är 3 'x 7' med halvcirkulära kurvor.

Steg 2: Bekanta dig med roboten

Bekanta dig med roboten
Bekanta dig med roboten

Först kommer du att bekanta dig med robotmenyn, liksom några av delarna i den här roboten. Du kommer också att lära dig om sensortekniken i industriell stil som används av roboten, inklusive ljusdioder, ljussensorer, stegmotorer och rotationspositionssensorer. Var noga med att fylla i all begärd information (vanligtvis understrukna ämnen _).

1. Koppla bort roboten från laddaren och/eller USB -porten på din dator. Använd den orange knappen för att slå på roboten. De orange, vänster och höger knapparna och”bakåt” grå rektangelknapp tillåter menynavigering. Navigera till menyn "Programfiler" och bläddra igenom de tillgängliga programfilerna på roboten. Lista namnen på varje programvarufil, exakt hur den stavas, inklusive versaler och mellanslag:

_

Steg 3: Kalibrera ljussensorn

Kalibrera ljussensorn
Kalibrera ljussensorn

2 Undersök ljussensorn och kalibreringsinformationen. Gå tillbaka till huvudmenyn och välj "Visa". Välj alternativet "Reflekterat ljus" och Porten (det ska vara "Port 3") vilket gör att lampan tänds och ett nummer visas på skärmen. Se till att allt fungerar och spela in lite kalibreringsinformation.

a. Maximal avläsning med ett vitt papper: Antal: _ Beskriv det ungefärliga avståndet från papperet: _

b. Maximal avläsning på det ljusa linoleumgolvet: _

c. Minsta avläsning när du pekar på mitten av den svarta eltejpen: _

Steg 4: Testa motorkalibrering

Testa motorkalibrering
Testa motorkalibrering

3 Undersök hjulmotorerna (vänster och höger) samt kalibreringsinformation. Gå tillbaka till huvudmenyn och välj "Motorrotationer" Välj port (det ska antingen vara "Port B" eller "Port C" för de två motorerna). Se om du kan kontrollera kalibreringen av denna avläsning genom att vrida varje motor ett fast antal varv medan du läser avläsningen. Du kommer att göra samma kalibreringstest för båda motorerna med hjälp av kalibreringsskärmen “View” à “Motor Degrees”.

Motor på Port B

  • Antal gånger du roterade hjulet _
  • ”Motorrotationer” visningsvärde_
  • Avståndet i grader hjulet roterades_
  • ”Motor Degrees” visningsvärde_

Motor på port C

  • Antal gånger du roterade hjulet _
  • ”Motorrotationer” visningsvärde_
  • Avståndet i grader hjulet roterades_
  • ”Motor Degrees” visningsvärde_

Stämde visningsvärdena med dina förväntningar? Vänligen förklara. _

Steg 5: Kör den medföljande på-av-kontrollen

Kör den medföljande på-av-kontrollen
Kör den medföljande på-av-kontrollen

En "On-Off" (ibland kallad "Bang-Bang") -styrenhet har bara två alternativ, på och av. Det liknar termostatkontrollen i ditt hem. När den är inställd på en vald temperatur värmer termostaten huset om det är för kallt och kyler huset om det är för varmt. Den valda temperaturen kallas "börvärde" och skillnaden mellan den aktuella husets temperatur och börvärdet kallas "fel". Så du kan säga, om felet är positivt, slå på AC, annars slå på värmen.

I vårt fall kommer roboten att svänga till vänster eller höger, beroende på om ljussensorns börvärde har ett positivt eller negativt fel (för mycket på det vita golvet eller för mycket på den svarta tejpen).

Du kommer att märka att din robot redan kan laddas med ett antal program (eller så kan du använda den bifogade filen "01 line.rbt" inbäddad här) lagrad på den med namn som "1 rad" och "2 rad" och där också kan vara en extra bokstav efter programmets nummer, till exempel "3b -rad". Du måste köra programmet med siffran “1” i dess namn och sedan placera roboten på bandspåret, med senorn på den svarta linjen. Försök att hålla dig borta från andra robotar som redan finns på banan så att du kan ta din robot utan avbrott i att stöta på andra robotar.

4 Mät följande tidsprov:

a. Dags att slutföra en rak sida av banan: _

b. Beskriv rakrörelserobotrörelse: _

c. Dags att slutföra en kurva på spåret: _

d. Beskriv krökt spårrobotrörelse: _

e. Dags att gå runt banan en gång: _

Steg 6: Öppna "01 Line" On-Off Controller Software

Öppna
Öppna
Öppna
Öppna
Öppna
Öppna

Du öppnar programvaran "LEGO MINDSTORMS NXT 2.0" (inte Edu 2.1 -programvaran) och du laddar det lämpliga programmet "01 line.rbt" och undersöker och ändrar programvaran enligt instruktionerna nedan:

Öppna programvaran”LEGO MINDSTORMS NXT 2.0” (inte Edu 2.1 -programvaran). Din instruktör kommer att berätta var filerna är lagrade på din dator, och från den platsen öppnar du programmet "1 rad". Välj bara "Arkiv" och sedan "Öppna" och välj "1 rad" -programmet som ska öppnas.

När programmet är öppet kan du använda "hand" -ikonen för att flytta hela skärmbilden av programmet och du kan använda "pil" -ikonen för att klicka på enskilda objekt för att se hur de fungerar (och även göra ändringar).

Steg 7: Förstå "01 Line" On-Off Controller Software

Att förstå
Att förstå

Programmet "1 rad" använder en "On-Off" -metod för kontroll. I det här fallet är alternativen antingen "Sväng vänster" eller "Sväng höger". Grafiken innehåller en beskrivning av programelementen:

Steg 8: Redigering av "01 Line" On-Off Controller Software

Redigerar
Redigerar

Ändra börvärdet och jämför resultat.

Du upptäckte några verkliga värden för ljusmätaren i steg 2 ovan. Du registrerade värden i del b och c, siffror för de lägsta och högsta värden som roboten skulle se när du kör spåret.

5 Beräkna ett bra börvärde (genomsnittet för min och max): _

6 Välj ett BAD set-pint-värde (ett tal mycket nära min eller max): _

Ändra börvärdet till ett av dessa värden med hjälp av pilikonen för att klicka på felberäkningsrutan och ändra antalet som subtraheras (se bilden nedan). Anslut nu roboten till datorn med USB -kabeln, se till att roboten är påslagen och ladda ner den nya versionen av programmet "1 rad" till roboten. Du kommer att se hur lång tid roboten tar att gå runt spåret medurs, en gång med det BRA börvärdet och en gång med det DÅLIGA börvärdet.

7 Slutför tidsprov med BRA och BAD börvärden

a. Dags att gå helt runt spåret en gång (BRA börvärde): _

b. Dags att gå helt runt spåret en gång (BAD Set-Point): _

Dina observationer / slutsatser? _

Steg 9: Förstå "02 Line" On-Off med Dead-Zone Controller Software

Att förstå
Att förstå

Om AC och värmen i ditt hem fortsatte att slås på och av hela dagen kan det definitivt förstöra ditt HVAC -system (eller åtminstone förkorta dess livslängd). De flesta termostater är gjorda med en inbyggd "dödzon". Till exempel, om ditt börvärde är 70 grader Fahrenheit, kanske termostaten inte slår på AC förrän den nådde 72 grader, och inte heller skulle den slå på värmen förrän temperaturen sjönk till 68 grader. Om dödzonen blir för bred kan huset bli obekvämt.

I vårt fall kommer vi att använda 02-linjeprogrammet för att lägga till en dödzon, under vilken roboten helt enkelt kör rakt.

Undersök nu programvarufilen "02 -rad" enligt beskrivningen i grafiken och som finns i den bifogade filen.

Denna programvarufil programmerar roboten att följa linjen med On-Off-kontroll med ett differensgap. Detta är också känt som ett Deadband och det betyder att roboten kommer att svänga åt vänster eller höger beroende på felet, men om felet är litet går roboten bara rakt.

Programmet "02 -rad" beräknar ovanstående först genom att subtrahera börvärdet från ljusmätningen och sedan göra jämförelserna enligt ovan. Undersök programmet på datorn och spela in de värden du ser.

Vad är "2 rad" -programmets nuvarande (ursprungliga) värde för börvärdet? _

Vad är "2 rad" -programmets nuvarande (ursprungliga) värde "Stort" positivt fel? _

Vad är "2 rad" -programmets nuvarande (ursprungliga) värde "Stort" negativt fel? _

Vilket Dead-Band-felområde kommer att få roboten att gå rakt? FRÅN TILL _

Kör tre (3) tidförsök med olika värden för det "stora" felet ovan. De aktuella “2 rad” -inställningarna samt två andra inställningar som du kommer att beräkna. Du har redan valt ett bra börvärde för din robot. Nu väljer du två olika Dead-Band-intervall och registrerar den tid det tar roboten att ta ett varv medurs:

Originalinställningar för 02 rad _

Dead -Band på +4 till -4 _

Dead -Band på +12 till -12 _

Steg 10: Förstå "03 Line" Proportional Controller Software

Att förstå
Att förstå

Med proportionell kontroll slår vi inte bara på eller av värmen, vi kan ha flera inställningar för hur mycket vi ska slå upp ugnen (som storleken på lågorna på en spis). När det gäller roboten har vi inte bara tre motorinställningar (vänster, höger och rak). Istället kan vi kontrollera hastigheten på vänster och höger hjul för att få en mängd olika svänghastigheter. Ju större fel, desto snabbare vill vi vända tillbaka till linjen.

Låt oss titta på Proportional Control med programmet “03 line”

Programmet för "03-rad" är mer komplicerat eftersom det inte bara ställer in "Proportional" kontrollmetod, utan det innehåller också all programvara för att göra Proportional-Integral, Proportional-Differential och Proportional-Integral-Differential (PID) kontroller. När du laddar programvaran kommer den förmodligen att vara för stor för att passa på skärmen på en gång, men den har verkligen tre delar, som visas i den bifogade grafiken.

A - Matematiken för att beräkna felet och "kalkylen" för att hitta integralen och derivatet av fel över tid.

B - Matematiken för att beräkna vänster motorhastighet baserat på PID -kontrollinställningar för Kp, Ki och Kd

C - Matematiken för att testa motorns hastighetsbegränsningar och skicka rätt motorvarv till vänster och höger motor.

Alla tre av dessa kör sina egna oändliga slingor (efter initialisering) och du kan bläddra runt med hjälp av "hand" -ikonen, men växla tillbaka till "pil" -ikonen för att undersöka rutans innehåll och ändra inställningar.

Steg 11: Redigera 03 Line (Proportional Control) -programmet

Redigera 03 Line (Proportional Control) -programmet
Redigera 03 Line (Proportional Control) -programmet

I det mellersta avsnittet (avsnitt B i den föregående beskrivningen) kommer du att märka att inställningarna för Ki och Kd båda är 0 i programmet "03 -rad".

Låt oss lämna dem så. Vi kommer bara att ändra värdet på Kp, den proportionella delen av regulatorn.

Kp bestämmer hur smidigt roboten ändrar hastighet när den driver bort från linjen. Om Kp är för stor blir rörelsen extremt ryckig (liknar On-Off-kontrollen). Om Kp är för liten, kommer roboten att göra korrigeringar för långsamt och kommer att driva långt bort från linjen, särskilt på kurvorna. Det kan till och med driva så långt att tappa linjen helt och hållet!

13 Vilket börvärde använder programmet “03 line”? (subtraheras efter läsljusinställning i A -slingan) _

14 Vad är värdet på Kp i det aktuella programmet “03 line”? _

Time Trials for Proportional Controller ("3 rad" -program)

Du kommer att använda de ursprungliga inställningarna för "03 -rad" -programmet som sparats i din robots minne för att göra en tidsperiod, och du kommer också att använda två andra ändringar av "03 -linjen" -programmet för totalt tre tidsmätningar. De ändringar du ska göra inkluderar

DRIFTY - Hitta ett värde på Kp som får roboten att driva mycket långsamt och eventuellt tappa linan ur sikte (men förhoppningsvis inte). Prova en Kp olika värden mellan 0,5 och 2,5 (eller ett annat värde) tills du får ett där roboten Drifts, men stannar på linjen.

JERKY - Hitta ett värde på Kp som får roboten att rycka fram och tillbaka, mycket lik på -av -rörelsen. Prova ett Kp -värde någonstans mellan 1,5 och 3,5 (eller ett annat värde) tills du får ett där roboten bara börjar visa fram och tillbaka rörelse, men inte för dramatiskt. Detta är också känt som det "kritiska" värdet för Kp.

Tidsförsök för en hel medurs svängning av spåret behövs bara med de ursprungliga 3 -radiga värdena och de två nya uppsättningarna värden (DRIFTY och JERKY) som du upptäcker genom att låta roboten följa en kort spårlängd. Glöm inte att ladda ner ändringar i din robot varje gång!

15 Spela in proportionella kontrollvärden och tidsprov för "3 -raders" -program (kom ihåg att ladda ner ändringar till roboten!) För vart och ett av dessa tre värden för Kp (det ursprungliga 03 -radvärdet och två värden som du bestämmer genom försök och fel att vara DRIFTY och JERKY).

Steg 12: Avancerade PID -kontroller

Avancerade PID -kontroller
Avancerade PID -kontroller
Avancerade PID -kontroller
Avancerade PID -kontroller

Innan du påbörjar detta steg, var noga med att slutföra de föregående stegen, registrera all begärd information, med den specifika roboten du tänker använda för detta labb. Varje robot är något annorlunda med avseende på mekaniska aspekter, motoriska aspekter och särskilt ljussensorresultat på banan.

Antal som du behöver från de tidigare experimenten

16 Maximal ljussensoravläsning (från steg 2) _

17 Minsta avläsning av ljussensor (från steg 5) _

18 BRA inställning för börvärdet (genomsnittet av ovanstående) _

19 DRIFTY -inställning för Kp (från steg 15) _

20 JERKY (kritisk) inställning för Kp (från steg 15) _

Förstå PID -styrenheten

Du kanske har lärt dig om Proportional Integral Differential (PID) -kontrollen som en del av en Industrial Controls -kurs, och en bra snabb översikt finns online på Wikipedia (https://en.wikipedia.org/wiki/PID_controller).

I detta experiment är mätvärdet mängden ljus som reflekteras från golvet. Börvärdet är den önskade mängden ljus när roboten är direkt ovanför kanten på den svarta tejpen. Felet är skillnaden mellan den aktuella ljusavläsningen och börvärdet.

Med den proportionella styrenheten var hastigheten för den vänstra motorn proportionell mot felet. Specifikt:

Fel = Ljusavläsning-Börvärde

I denna grafik sattes börvärdet till 50.

Senare, för att hitta hastigheten på den vänstra motorn, multiplicerar vi felet med proportionell konstant "Kp" specifikt:

L Motor = (Kp * fel) + 35

Där i denna grafik är Kp satt till 1,5, och tillägget av de 35 sker i en annan del av programmet. Värdet 35 läggs till för att konvertera tal som ligger någonstans i intervallet -40 till +40, till ett tal som ligger någonstans mellan 10 och 60 (rimliga motorvarvtal).

Integralen är ett slags minne från det förflutna. Om felet har varit dåligt under en längre tid, bör roboten snabba upp mot börvärdet. Ki används för att multiplicera med integralen (integralen är den löpande summan av fel - i det här fallet reduceras med 1,5 varje iteration så att roboten kommer att ha ett "blekande minne" av tidigare fel).

Derivatet är ett slags framtida förutsägelser. Vi förutspår ett framtida fel genom att jämföra det sista felet med det aktuella felet och antar att felhastigheten kommer att vara något linjär. Ju större det framtida felet förutses bli, desto snabbare behöver vi flytta till börvärdet. Kd används för att multiplicera med derivatet (derivatet är skillnaden mellan det aktuella felet och det tidigare felet).

L Motor = (Kp * Fel) + (Ki * Integral) + (Kd * Derivat) + 35

Steg 13: Hitta de bästa PID -parametrarna

Hitta de bästa PID -parametrarna
Hitta de bästa PID -parametrarna
Hitta de bästa PID -parametrarna
Hitta de bästa PID -parametrarna
Hitta de bästa PID -parametrarna
Hitta de bästa PID -parametrarna

Det finns ett antal sätt som kan användas för att hitta PID -parametrar, men vår situation har unika aspekter som gör att vi kan använda ett mer”manuellt” experimentellt sätt att hitta parametrarna. De unika aspekterna vi har är:

  • Experimentörerna (du) har en god förståelse för hur maskinen fungerar
  • Det finns ingen risk för personskada om handkontrollen blir galen och inte heller någon fara för att skada roboten på grund av dåliga regulatorinställningar
  • Ljussensorn är en så slarvig avkänningsanordning, och det finns bara en ljussensor, så vi kan bara hoppas på att få ett marginellt bra slutresultat. Därför är en "bästa insats" bra för våra experiment

Först använde vi redan "03-rad" för att bestämma bästa Kp (GOOD-börvärdet och JERKY Kp-värdena steg 18 och 20 ovan). Se den första grafiken för instruktioner om hur vi hittade JERKY -värdet för Kp.

Använd programvaran “04 line” för att bestämma Ki. Vi kommer först att ändra “4 rad” för att ha de värden som vi spelade in i punkterna 18 och 20 ovan. Därefter kommer vi långsamt att öka Ki tills vi får ett värde som verkligen flyttar oss till börvärdet mycket snabbt. Se den andra grafiken för instruktioner om hur du väljer värdet för Ki.

21 FASTEST Value of Ki som sätter sig på börvärdet snabbast (även med lite överskott) _

Använd programvaran “05 line” för att bestämma Kd. Ändra först “5 rad” med värden från steg 18, 20 och 21, öka sedan Kd tills du får den slutliga arbetsroboten som snabbt når börvärdet och med mycket lite överskridande om någon. Den tredje grafiken visar instruktioner om hur du väljer Kd.

22 OPTIMALT värde av Kd _

23 HUR LÄNGER DU DIN ROBOT FÖR ATT KRINGA SPÅRET NU ??? _

Steg 14: Slutsats

Laboratorieexperimentet gick väldigt bra. Med cirka 20 elever som använde de 10 (tio) arbetsstationerna + robotinställningarna som visas i den första grafiken, fanns det aldrig en logg av resurser. Som mest cirkulerade tre robotar längs banan åt gången för tidsproven.

Jag rekommenderar att du bryter ut PID -kontrolldelen (åtminstone programmerar "04 line" och "05 line") till en separat dag, på grund av de inblandade begreppen.

Här är en videosekvens som visar hur kontrollerna utvecklas (från "01 -rad" till "05 -rad") med hjälp av värden jag valde - men varje elev kom med lite olika värden, vilket kan förväntas!

KOM ihåg: En av de främsta anledningarna till att mycket väl förberedda robotlag gör sig dåligt vid tävlingsevenemang är det faktum att de inte utför kalibrering på den exakta platsen som evenemanget kommer att äga rum. Belysning och små positionsändringar av sensorerna på grund av jostling kan i hög grad påverka parametervärdena!

  • 01 -rad (On -Off) PID -kontroll med Lego Robots -
  • 02 line (On-Off with Dead-Zone) PID Control med Lego Robots-https://videos.ecpi.net/Watch/n4A5Lor7
  • 03 -rad (proportionell) PID -kontroll med Lego Robots -
  • 04 -rad (proportionellt integrerad) PID -kontroll med Lego Robots -
  • 05-rad (proportionellt integrerat-derivat) PID-kontroll med Lego Robots-https://videos.ecpi.net/Watch/s6LRi5r7

Rekommenderad: