Kontrollues integral proporcional i diferencës PID në robotikën Lego Mindstorms. Rregullatori proporcional. Konkurrenca Ndërkombëtare e Robotëve - Rregullat - Shembuj të Robotëve - Shembull i Algoritmit të Robotës së Trajektimit LEGO EV3

Një nga lëvizjet themelore në ndërtimin e dritës është ndjekja e vijës së zezë.

Teoria e përgjithshme dhe shembujt specifik të krijimit të një programi përshkruhen në faqen e internetit wroboto.ru

Unë do të përshkruaj se si e zbatojmë këtë në mjedisin EV3, pasi ka dallime.

Gjëja e parë që robot duhet të dijë është vlera e "pikës ideale" e vendosur në kufirin e bardh e zi.

Vendndodhja e pikës së kuqe në figurë korrespondon saktësisht me këtë pozicion.

Opsioni ideal i llogaritjes është të matni vlerën e bardhë e zi dhe të merrni mesataren aritmetike.

Ju mund ta bëni këtë manualisht. Por disavantazhet janë menjëherë të dukshme: brenda edhe një kohe të shkurtër, ndriçimi mund të ndryshojë dhe vlera e llogaritur do të dalë e pasaktë.

Kështu që, ju mund ta bëni robotin ta bëjë atë.

Përmes eksperimenteve tona, ne zbuluam se matja e zezë dhe e bardhë është opcionale. Vetëm e bardha mund të matet. Dhe vlera ideale e pikës llogaritet si vlera e bardhë e ndarë me 1.2 (1.15), në varësi të gjerësisë së vijës së zezë dhe shpejtësisë së robotit.

Vlera e llogaritur duhet të shkruhet në një ndryshore në mënyrë që të arrihet më vonë.

Llogaritja ideale e pikës

Parametri tjetër i përfshirë në lëvizje është raporti i drejtimit. Sa më i madh të jetë, aq më i mprehtë robot reagon ndaj ndryshimeve në ndriçim. Por një vlerë shumë e lartë do të bëjë që robot të tundet. Vlera zgjidhet eksperimentalisht individualisht për secilin model të robotit.

Parametri i fundit është fuqia bazë e motorëve. Ndikon në shpejtësinë e robotit. Një rritje në shpejtësinë e lëvizjes çon në një rritje në kohën e përgjigjes së robotit ndaj ndryshimeve në ndriçim, gjë që mund të çojë në largimin nga trajektorja. Vlera zgjidhet edhe eksperimentalisht.

Për lehtësi, këto parametra gjithashtu mund të shkruhen në variabla.

Raporti drejtues dhe Fuqia bazë

Logjika e lëvizjes përgjatë vijës së zezë është si më poshtë: devijimi nga pika ideale matet. Sa më i madh të jetë, aq më i fortë robot duhet të përpiqet të kthehet tek ai.

Për ta bërë këtë, ne llogarisim dy numra - vlerën e fuqisë së secilit prej motorëve B dhe C veç e veç.

Në formën e formulave, duket kështu:

Ku Isens është vlera e leximeve të sensorit të dritës.

Më në fund, implementimi në EV3. Mostshtë më e përshtatshme për ta rregulluar atë si një bllok të veçantë.

Zbatimi i algoritmit

Pikërisht ky algoritëm u implementua në robot për kategorinë e mesme ZRRUM 2015

Kjo detyrë është klasike, konceptualisht e thjeshtë, mund të zgjidhet shumë herë, dhe çdo herë do të zbuloni diçka të re për veten tuaj.

Ka shumë qasje për zgjidhjen e problemit vijues. Zgjedhja e njërit prej tyre varet nga dizajni specifik i robotit, nga numri i sensorëve, vendndodhja e tyre në lidhje me rrotat dhe me njëri-tjetrin.

Në shembullin tonë, ne do të analizojmë tre shembuj të një robot bazuar në modelin bazë të trajnimit Robot Teacher.

Për të filluar, ne mbledhim një model bazë të robotit trajnues Robot Edukator, për këtë ju mund të përdorni udhëzimet në programin MINDSTORMS EV3.

Gjithashtu, për shembuj na duhen sensorë me ngjyra të lehta EV3. Këta sensorë të dritës, si asnjë tjetër, janë më të përshtatshmit për detyrën tonë, kur punojmë me ta, nuk duhet të shqetësohemi për intensitetin e dritës së ambientit. Për këtë sensor, në programet do të përdorim mënyrën e dritës së reflektuar, në të cilën vlerësohet sasia e dritës së reflektuar të dritës së kuqe të sensorit. Kufijtë e leximeve të sensorit janë 0 - 100 njësi, përkatësisht për "pa reflektim" dhe "reflektim të plotë".

Për shembull, ne do të analizojmë 3 shembuj të programeve për të lëvizur përgjatë një trajektore të zezë të përshkruar në një sfond të sheshtë dhe të lehtë:

· Një sensor, me rregullator P.

· Një sensor, me kontrollues PC.

· Dy sensorë.

Shembull 1. Një sensor me një kontrollues P.

Projektimi

Sensori i dritës është montuar në një rreze të vendosur në model.


Algoritmi

Funksionimi i algoritmit bazohet në faktin se varësisht nga shkalla e mbivendosjes së rrezes së ndriçimit të sensorit me një vijë të zezë, leximet e kthyera nga sensori ndryshojnë me një gradient. Roboti mban pozicionin e sensorit të dritës në kufirin e vijës së zezë. Duke konvertuar të dhënat e hyrjes nga sensori i dritës, sistemi i kontrollit gjeneron vlerën e shpejtësisë së kthimit të robotit.


Meqenëse në një trajektore të vërtetë sensori gjeneron vlera në të gjithë diapazonin e tij të punës (0-100), atëherë vlera për të cilën përpiqet robot është 50. Në këtë rast, vlerat e transmetuara në funksionet e rrotullimit formohen në varg -50-50, por këto vlera nuk janë të mjaftueshme për një kthesë të pjerrët të trajektores. Prandaj, diapazoni duhet të zgjerohet me një herë e gjysmë në -75 - 75.

Si rezultat, në program, funksioni i llogaritësit është një rregullator i thjeshtë proporcional. Funksioni i kujt ( (a-50) * 1.5 ) në diapazonin e punës së sensorit të dritës gjeneron vlerat e rrotullimit në përputhje me grafikun:

Një shembull se si funksionon algoritmi

Shembull 2. Një sensor me një kontrollues PC.

Ky shembull bazohet në të njëjtën ndërtim.

Ju mund të keni vërejtur që në shembullin e mëparshëm, roboti lëkundej tepër, gjë që e parandaloi atë të përshpejtohej mjaftueshëm. Tani do të përpiqemi ta përmirësojmë pak këtë situatë.

Kontrolluesit tonë proporcional, ne gjithashtu shtojmë një kontrollues të thjeshtë kubik që do të shtojë përkuljen në funksionet e kontrolluesit. Kjo do të zvogëlojë lëkundjen e robotit afër kufirit të dëshiruar të trajektores, si dhe do të bëjë hov më të fortë në një distancë të madhe prej tij.

Kontrollues proporcional

Përshkrim

Në kontrollin automatik, veprimi i kontrollit u (t) është zakonisht një funksion i gabimit dinamik - devijimi e (t) i ndryshores së kontrolluar x (t) nga vlera e tij e specifikuar x0 (t):

e (t) \u003d x0 (t) - x (t).

Ky është parimi i rregullimit të devijimit Polzunov-Watt, ose parimi i feedback-ut. Shprehja matematikore e varësisë funksionale të veprimit të dëshiruar të kontrollit u0 (t) nga vlerat e matura nga kontrolluesi quhet ligj ose algoritmi i kontrollit, i cili u përmend më lart.

Një kontrollues proporcional është një pajisje që ushtron një efekt kontrolli mbi një objekt në proporcion me devijimin e tij nga një gjendje e caktuar:

Këtu k është fitimi i kontrolluesit.

Gjendja e dhënë x0 zakonisht quhet pika e caktuar, dhe devijimi e prej tij quhet mbetje. Më tej, për përcaktim, ne do të shënojmë mbetjen me shkurtimin err (nga fjala angleze "error" - një gabim).

Kontrolli motorik

Një luftëtar me përvojë nuk do të tundë një shpatë siç bën një robot në një kontrollues stafetë. Shtë e nevojshme të dilni me një algoritëm që do ta mbajë motorin që mban shpatën në një pozitë të fiksuar në mënyrë rigoroze (Fig. 7.1). Kontrolluesi P do t'ju ndihmojë me këtë.

Le e 1 - leximet e sensorit të shpejtësisë 1 në motorin A - është vlera e kontrolluar. Cilësimi është x0 \u003d 45, dhe mbetja është e \u003d 45 - e 1. Pastaj veprimi i kontrollit në motor jepet nga formula

u \u003d k ∙ (45 - e 1).

Këtu k është fitimi, për shembull 5, i cili do të rrisë përgjigjen e motorit edhe me devijime të vogla nga pika e caktuar.

1 Mos ngatërroni shënimin matematik të mbetjes e (nga gabimi) me leximet e kodifikuesit e 1 (nga koduesi), variabla e paracaktuar e mjedisit Robolab.

Me një devijim në drejtimin pozitiv, një veprim negativ kontrolli do të zbatohet në motor, dhe anasjelltas. Ky kontroll mund të zbatohet në motor në një lak me një vonesë të vogël prej 1-10 ms për të shkarkuar kontrolluesin (Figura 7.8).

Figura: 7.8. Algoritmi për kontrollin motorik në një kontrollues proporcional.

Nëse faktori i fitimit rritet nga 5 në 100, rregullatori ynë proporcional do të fillojë të punojë si stafetë, duke shkaktuar lëkundje të forta për shkak të efektit të tejkalimit.

Në RobotC, nuk ka një shënim kaq të përshtatshëm për leximet e kodifikuesve si në Robolab, kështu që programi duket pak më i gjatë:

int k \u003d 5, u; nMotorEncoder \u003d 0; ndërsa (e vërtetë)

u \u003d k * (Koduesi 45-nMotor); motor \u003d u;

Më tej, për të goditur me shpatë, mjafton që të kesh një ndryshore në vend të numrit 45, të ndryshosh vlerën e saj nga jashtë, për shembull, nga një detyrë paralele. Kjo është përfshirë në seksionin për bateristët robotikë në Kapitullin 8.

Tani le të ndërtojmë një rregullator që kontrollon jo vetëm pozicionin statik të motorit, por edhe shpejtësinë e lëvizjes së tij. Duke ndjekur logjikën e algoritmit, pika e caktuar, e cila deri më tani ka qenë konstante dhe nuk ka ndryshuar, duhet të fillojë të lëvizë në drejtim të rritjes ose zvogëlimit. Duke iu bindur rregullatorit, motori në mënyrë të pashmangshme do ta ndjekë atë. Mjeti më i thjeshtë për rritjen e vazhdueshme të vlerës së pikës së caktuar është kohëmatësi.

Kontrolluesi NXT ka katër kohëmatës të integruar, secili prej të cilëve mund të masë kohën në të dhjetat, të qindtat dhe të mijtat e sekondës. Le të zotërojmë kohëmatësin e parë, i cili plotëson 10 “ti-

kov ". Në Robolab shënohet si T1 ose Timer100ms1, dhe në RobotC është timer100.

Alfa këndi i devijimit të motorit, i dhënë në shembullin e mëparshëm me vlerën 45, do të varet nga leximet e kohëmatësit me një faktor përshpejtues k 2:

alfa \u003d k2 ∙ T1.

Veprimi i kontrollit do të mbetet i njëjtë me koeficientin amplifikues k 1:

u \u003d k 1 ∙ (alfa - e 1).

Shkurtimisht, në programin në gjuhën Robolab, ne menjëherë do të zbatojmë veprimin e kontrollit në motor, pasi kemi iniciuar më parë kohëmatësin

Figura: 7.9. Kontrolli i shpejtësisë motorike është një revolucion në sekondë.

Koeficienti k 2 \u003d 36 përcakton që në një sekondë vlera e alfa shkon deri në 360, e cila korrespondon me një revolucion të plotë të motorit:

int k1 \u003d 2, k2 \u003d 36, u, alfa; nMotorEncoder \u003d 0; ClearTimer (T1); ndërsa (e vërtetë)

alfa \u003d kohëmatësi100 * k2; u \u003d k1 * (alfa-nMotorEncoder); motor \u003d u;

Përdorimi i pjesëtimit të plotë, i cili pranohet në gjuhën C (dhe në Robolab) për ndryshoret e një lloji të plotë, është e mundur të arrihet një ndryshim diskret në kënd, d.m.th. duke e shtuar atë një herë në sekondë:

alfa \u003d T 1/10 ∙ k 2.

Me koeficientin k 2 \u003d 60, lëvizja e rrezes do të korrespondojë me lëvizjen e dorës së dytë në numrin e orës. Por kjo nuk mjafton

dukshëm. Për qartësi, mund të vendosni k2 \u003d 30, atëherë shigjeta do të bëjë një revolucion të plotë në 12 "tik-tak" nga 30 gradë secila. Bëni kujdes me sekuencën e operacioneve të ndarjes dhe shumëzimit të numrave të plotë, ndryshimi i renditjes ose "zvogëlimit" të tyre me siguri do të ndryshojë rezultatin (Fig. 7.10).

Figura: 7.10. Imitim i përshpejtuar i lëvizjes së akrepit të orës.

Dhe së fundmi, një shembull i një bateristi matematikor. Në vend që të lëvizë vazhdimisht përpara, gjilpëra do të lëkundet mbrapa dhe me radhë nën kontrollin e kontrolluesit P. Ndarja e mbetur, e cila shënohet me shenjën% në C, do të ndihmojë me këtë. Pjesa e mbetur e pjesëtimit të një numri të plotë jo-negativ me 2 do të jetë gjithmonë 0 ose 1:

alfa \u003d T 1% 2 ∙ k 2.

Duke forcuar devijimin me një faktor k 2 \u003d 15 herë, kemi një alfa të pikës së luhatshme, e cila do të detyrojë rregullatorin të lëvizë motorin 5 herë në sekondë në 0º, pastaj 15 gradë. Ndryshimet në program janë të vogla. Le të shqyrtojmë një shembull në RobotC:

int k1 \u003d 3, k2 \u003d 15, u, alfa; nMotorEncoder \u003d 0; ClearTimer (T1); ndërsa (e vërtetë)

alfa \u003d kohëmatës 100% 2 * k2; u \u003d k1 * (alfa-nMotorEncoder); motor \u003d u;

Ky bateri prototip godet tryezën në intervale të rregullta. Gjëja kryesore është të fillosh në pozicionin e duhur. Duke përdorur matematikën e plotë, mund të vendosni një model ritmik më kompleks, për shembull (Tabela 7.1):

alfa \u003d T 1% 5% 2 ∙ k 2.

qendra \u003d S3.

Koeficienti përcaktohet në ciklin:

k 1 \u003d c + (S 3 - qendra) / k 2.

Figura: 7.36. Lëvizja e vijës në një kontrollues proporcional të faktorit lundrues.

Ligji i marrë i kontrollit të fitimit mund të zbatohet jo vetëm për përbërësin proporcional, por edhe për cilindo tjetër, si dhe për veprimin e kontrollit në tërësi (Fig. 7.36).

Kontrolluesi PID

Kontrolluesi proporcional-integral-derivat (PID) është një nga më të njohurit dhe përdoret në një numër të madh të pajisjeve të llojeve të ndryshme, të cilat kërkojnë përgjigje të shpejtë dhe saktësinë e pozicionimit të sistemit. Siç sugjeron emri, ky rregullator përbëhet nga shuma e tre përbërësve dhe është përshkruar grafikisht në Fig. 7.37.

Figura: 7.37. Qarku i kontrolluesit PID.

Ky është një diagram i thjeshtuar. Vlera e gabimit dinamik e (t) futet në hyrjen e kontrolluesit, dhe veprimi i kontrollit u (t) gjenerohet në dalje:

u (t) \u003d p + i + d \u003d k p ∙ e (t) + k i ∙ ò t

e (τ) d τ + k d

de

Komponenti proporcional, i treguar në diagramin me një trekëndësh, është përgjegjës për pozicionimin e sistemit në një gjendje të caktuar. Në disa raste, mund të shkaktojë tejkalim me vetë-lëkundje të mëvonshme. Kjo është, kontrolluesi P mund ta "teproj" dhe roboti do të fillojë të lëvizë nga njëra anë në tjetrën.

Komponenti integral grumbullon përvojë negative (përmbledh gabime) dhe gjeneron një efekt kompensues. Me devijime minimale, përbërësi proporcional "dobësohet" dhe integrali, për shkak të rritjes së tij të shpejtë nga përmbledhja, ndihmon në "tërheqjen" e vlerës së kontrolluar në pikën e caktuar.

Komponenti diferencial (komponenti D) monitoron shkallën e ndryshimit në gjendjen e sistemit dhe parandalon tejkalimin e mundshëm. Në disa raste, përbërësi D është i kundërt me atë proporcional në shenjë, dhe në disa përkon.

Ne tashmë jemi njohur me përbërësin proporcional, diferenciali është përshkruar në kapitullin e mëparshëm 6. Le të marrim integralin. Ky komponent përcaktohet në mënyrë dinamike, duke u shtuar me vlerën e mëparshme:

i \u003d i + ki × e (t) dt.

Kuptimi fizik i sasisë e (t) × dt është se është

proporcionale me kohëzgjatjen e gjendjes së gabimit të sistemit. Meqenëse koeficienti k i është marrë nga kllapat, mund të flasim për vlerën e i si shumë e zgjatjeve të gabimit. Pra, integralin e gjejmë me përmbledhje.

Le të shqyrtojmë zbatimin e kontrolluesit PID në shembullin e një roboti të ekuilibruar në dy rrota. Ky problem klasik mund të zgjidhet me sensorë të ndryshëm në mënyra të ndryshme. Në shembullin e propozuar, përdoret një sensor i dritës dhe forma më e thjeshtë e një kontrolluesi PID. Sidoqoftë, për të arritur stabilizimin e robotit, do të duhet të përdoren lexime më të sakta të sensorit.

Formati RAW

Të dhënat e sensorit i dërgohen kontrolluesit NXT në një formë të papërpunuar, të papërpunuar. Të gjithë sensorët transmetojnë një vlerë dixhitale nga 0 në 1023 në sistemin operativ, i cili më pas përpunohet nga drejtuesi përkatës dhe zvogëlohet në një formë më të kuptueshme (distanca 0 ... 255, ndriçimi 0 ... 100, prek 0 ose 1, etj). Por të dhënat mund të merren direkt duke anashkaluar shoferin. Ky format i papërpunuar quhet RAW (nga anglishtja "raw"). Në disa raste, mund të përdoret për të marrë saktësi më të madhe. Kështu, për shembull, diapazoni i vlerave të sensorit të dritës mund të rritet me rreth 10 herë. Kjo mundësi përdoret më tej.

Si Robolab ashtu edhe RobotC mund të marrin të dhëna RAW. Për këtë, sensori inicializohet në përputhje me rrethanat, dhe të dhënat lexohen prej tij duke përdorur një ndryshore të veçantë të paracaktuar.

Robot balancues

Dizajni i një roboti segway është treguar në Fig. 7.38: Kontrollues i pozicionuar vertikalisht, rrota me afërsi të ngushtë dhe sensori i dritës me drejtim poshtë. Algoritmi do të jetë disi më i ndërlikuar.

Parimi i stabilizimit të Segway në pozicionin e ekuilibrit është si më poshtë. Nëse roboti anon përpara, leximi në sensorin e dritës rritet nga drita e reflektuar. Në përgjigje të kësaj, gjenerohet një veprim kontrolli, duke e detyruar robotin të shkojë përpara dhe kështu përsëri të marrë një pozicion vertikal.

Kur anon mbrapa, leximet e sensorit zvogëlohen dhe roboti fillon të lëvizë prapa. Komponenti proporcional është përgjegjës për të gjitha këto. Sigurimi i tejkalimit i është caktuar rolit të përbërësve integrale dhe diferenciale.

Figura: 7.38. Balancimi i robotit segway.

Në fig. 7.39 tregon algoritmin në Robolab. Pjesa më e madhe e saj zë fillimi i ndryshueshëm. Për të përmirësuar saktësinë, jo vetëm të dhënat nga sensori lexohen në format RAW, por shumica e variablave deklarohen në formatin real float. Vetë algoritmi PID është në një lak.

Figura: 7.39 Algoritmi i balancuesit bazohet në një kontrollues PID.

Duke ndjekur traditën e lëvizjes përgjatë vijës, ne përdorim ndryshoren gri si pikën e përcaktuar - leximet mesatare të sensorit të dritës në pozicionin e ekuilibrit. Shkalla e re e parametrave vendos shkallëzimin e kontrollit. Ky është në thelb një faktor zbutje pasi vlera e prodhuar nga rregullatori është shumë e lartë për motorët NXT. Do të ishte e mundur të shtohej brenda koeficientëve ekzistues, por për RobotC ky parametër do të jetë i ndryshëm, dhe koeficientët janë të njëjtë.

Me koeficientët e dhënë, roboti stabilizohet mirë në linoleumin e thjeshtë ose në tryezën e shkollës. Kjo është, nuk kërkon një ngjyrë të bardhë të sipërfaqes. Për të filluar, duhet të vendosni saktë segway në pozicionin e ekuilibrit. Nëse roboti fillon me një anim përpara ose prapa, ai menjëherë do të fillojë të lëvizë në drejtim të animit.

Një shembull i ngjashëm në RobotC është paksa i ndryshëm për një numër arsyesh. Së pari, performanca e NXT me firmware-in e këtij ambienti është rreth 1.4 herë më e lartë se ajo e Robolab, kështu që faktori i shkallës duhet të rritet. Së dyti, vlerat RAW transmetohen në rendin e duhur dhe do të duhet të vendosni pjesën e pasme të motorëve ose thjesht të aplikoni një veprim të kontrollit negativ:

gri int \u003d SensorRaw; int gaboj, gaboj \u003d 0;

noton kp \u003d 25, ki \u003d 350, kd \u003d 0.3; shkalla e notimit \u003d 14;

noton dt \u003d 0.001; noton p, i \u003d 0, d, u; ndërsa (e vërtetë)

gabim \u003d gri-SensorRaw; // Devijimi me shenjë të kundërt p \u003d kp * gabon;

i \u003d i + ki * gaboj * dt; d \u003d kd * (gabim-gabim) / dt; gaboj \u003d gaboj; u \u003d (p + i + d) / shkalla; motor \u003d u; motor \u003d u; prisni1Msec (1);

Elementet e teorisë së kontrollit automatik në shkollë1

Një detyrë e rëndësishme dhe interesante metodologjike është "transferimi i një ure" midis fushave të njohurive të një specialisti dhe një studenti, i cili ndihmon studentët e shkollës të shohin perspektivën e specialitetit të tyre të ardhshëm, d.m.th. për të kryer udhëzime në karrierë, dhe studentët të shohin zbatueshmërinë praktike të njohurive të tyre profesionale. Për të arritur një efekt të ngjashëm, metodat për llogaritjen e rregullatorëve u zhvilluan duke përdorur një aparat matematikor që nuk shkon përtej programit shkollor në matematikë dhe fizikë. Në veçanti, në vend të ekuacioneve diferenciale, përdoren ekuacionet e diferencës, të cilat korrespondojnë mirë me natyrën diskrete të bashkëveprimit midis objektit dhe kontrolluesit nën kontrollin e kompjuterit.

Konsideroni, për shembull, problemin e ndërtimit të kontrollorëve proporcionalë (P) dhe proporcional-diferencial (PD) në problemin e kontrollit të lëvizjes së një roboti celular përgjatë një muri. Le të shënojmë me xt distancën midis robotit dhe murit, përmes θt - këndi i drejtimit të robotit dhe përmes ut - veprimit të kontrollit në moment me numrin rendor t, përkatësisht, ku t \u003d 0, 1, 2 , ... janë numrat e momenteve të matjes.

reniumit. Konsiderohet se marrja në pyetje e sensorëve dhe ndryshimet në madhësinë e veprimit të kontrollit kryhen në intervale të rregullta h. Për detyrat e kontrollit të robotëve Lego NXT, është e natyrshme të supozohet se veprimi i kontrollit është ndryshimi në shpejtësitë këndore të rrotave, proporcionale me shpejtësinë e ndryshimit të këndit të drejtimit:

Duke supozuar që devijimet e kursit nga θt \u003d 0 nominal janë të vogla, dhe shpejtësia mesatare e robotit është konstante: vt \u003d v, dinamika e ndryshimeve në variablat e gjendjes së robotit në përafrimin e parë mund të përshkruhet nga ekuacionet lineare të shtet:

ku g \u003d h2vr / b.

Le të vendosim distancën e dëshiruar në mur x *\u003e 0 dhe të përcaktojmë objektivin e kontrollit (CC) me raportin

xt → x * si t → ∞.

Tani ne natyrshëm prezantojmë në nivel kuptimplotë konceptin e stabilitetit asimptotik si një veti e zgjidhjeve për sistemin (4) që siguron arritjen e sistemit të kontrollit (5) për çdo kusht fillestar që ndryshon pak nga ato të synuara. Easyshtë e lehtë të shihet se për u t \u003d 0 zgjidhja e ekuacionit (4) është çdo vlerë konstante x t \u003d x *. Por meqenëse ekuacioni (4), që korrespondon me modelin e një integruesi të dyfishtë (mbledhës i dyfishtë), nuk posedon vetinë e stabilitetit asimptotik, ekuacioni i kontrollit (5) me kontroll të vazhdueshëm nuk është arritur. Kjo demonstrohet lehtësisht si nga ana analitike - duke përmbledhur seritë

Robotika është një drejtim i ri interesant, i cili, me sa duket, do të zhvillohet më tej brenda kornizës së kurseve shkollore të shkencave kompjuterike dhe teknologjisë. Bumi i robotikës është kryesisht për shkak të faktit se ju lejon t'i përgjigjeni pyetjes: "Pse, në fakt, po mësojmë programim?" Përveç kësaj, gjatë rrjedhës së robotikës, mund të njiheni me konceptet elementare të teorisë së kontrollit automatik.

Kjo faqe paraqet simulatorët e programimit dhe bordet Arduino të zhvilluara nga autori. Ato mund të ndihmojnë në rastet kur për ndonjë arsye nuk është e mundur të përdoret hardueri i vërtetë.

Simuluesit përdorin aftësitë e HTML5, kështu që ata do të funksionojnë vetëm në shfletuesit modernë (është më mirë të përdorni Google krom ose Mozilla Firefox).

Lajme tani ne kanalin Telegram

27 Nëntor 2015
Pista "mikrob" është shtuar në simulatorët ( M.V. Lazarev, Orekhovo-Zuevo).

13 tetor 2015
Tani mund të ngarkoni gjurmët tuaja (fushat e robotëve) në LEGO Robot Simulatorët. Si ta bëjmë atë? Shiko
Simulatorët e rinj të shtuar - robotë LEGO me dy, tre, katër sensorë të dritës.

Gjuha e kontrollit të robotëve

Për të kontrolluar robotët në simulatorët, përdoret një gjuhë e thjeshtë programimi, e cila mori emrin e punës SiRoP (Programim i thjeshtë i robotëve).

Kontrollimi i një roboti me një sensor të dritës

Sensori i dritës lejon që robot të orientohet në sipërfaqen e tryezës, për shembull, të drejtojë përgjatë kufirit midis zonave të bardha dhe të zeza (përgjatë buzës së vijës së zezë). Fotodioda ndriçon sipërfaqen, fotodetektori "kap" rrezet e pasqyruara dhe mat intensitetin e tyre.

Detyra më e popullarizuar e këtij lloji është të ndiqni një linjë. Duke përdorur imituesin, mund të studioni ligje të ndryshme të kontrollit - kontrollë rele, proporcional dhe madje edhe PID (proporcional-integral-diferencial).

Shembuj të programeve për një robot me një sensor të dritës

Ndërsa 1 (nëse sensori\u003e 128 (motor \u003d 100 motor \u003d 0) përndryshe (motor \u003d 0 motor \u003d 100) prisni (10))

KP \u003d 0,2 ndërsa motori 1 (u \u003d kP * (sensori-128) \u003d 50 + u motori \u003d 50 - u prit (20))

Kryesore (ndërsa 1 (ndërsa sensori\u003e 128 (motor \u003d 100 motor \u003d 100 pritje (10)) mbrapa () kthesë ())) mbrapa (motor \u003d -100 motor \u003d -100 pritje (260)) kthesë (motor \u003d -50 motor \u003d 50 prisni (50))

Kontrolli i robotit me dy sensorë të dritës

Dy sensorë të dritës lejojnë që robot të lundrojë më mirë dhe të drejtojë përgjatë një vije të hollë. Ato sillen pak përpara dhe shpërndahen larg. Sa i përket detyrave me një sensor, ligjet e ndryshme të kontrollit mund të studiohen duke përdorur këtë imitues.

Shembuj të programeve për një robot me tre sensorë të dritës

Kontrolli i robotëve me katër sensorë të dritës

Katër sensorë të dritës lejojnë që robot të zbulojë më mirë kthesat e ngushta. Sensorët e brendshëm përdoren për rregullim të imët, kontrolli proporcional përdoret për ta. Dy sensorë të jashtëm vendosen pak përpara dhe larg. Ato përdoren kur haset një kthesë e mprehtë. Fitimi për kontroll sipas leximeve të sensorëve të çiftit të jashtëm zgjidhet më shumë sesa për çiftin e brendshëm (shih. L.Yu. Ovsyanitskaya et al., Algoritme dhe programe për lëvizjen e robotit Lego Mindstorms EV3 përgjatë vijës, M.: "Pero", 2015).

Shembuj të programeve për një robot me katër sensorë të dritës

Ndërsa 1 (d0 \u003d kodues\u003e 128 d1 \u003d kodues\u003e 128 d2 \u003d kodues\u003e 128 d3 \u003d kodues\u003e 128 nëse d1 &! D2 (motor \u003d 100 motor \u003d 0) nëse! D1 & d2 (motor \u003d 0 motor \u003d 100) nëse d1 \u003d\u003d d2 (motor \u003d 100 motor \u003d 100) nëse d0 &! d3 (motor \u003d 30 motor \u003d 0) nëse! d0 & d3 (motor \u003d 0 motor \u003d 30) pres (10))

K1 \u003d 0.2 k2 \u003d 0.4 ndërsa 1 (u1 \u003d sensori - sensori u2 \u003d sensori - motori i sensorit \u003d 50 + k1 * u1 + k2 * u2 motor \u003d 50-k1 * u1-k2 * u2 pres (10))

Kontrollimi i një roboti me një sensor të distancës (hidrolokatori)

Sensori i distancës (hidrolokatori) ju lejon të përcaktoni distancën në pengesën më të afërt ndërsa roboti po lëviz. Ai lëshon një sinjal tejzanor dhe merr një sinjal të reflektuar. Sa më e gjatë të jetë koha midis sinjaleve të transmetuara dhe atyre të marra, aq më e madhe është distanca.

Duke përdorur një sensor distancë, një robot mund të programohet që automatikisht të përshkojë një labirint me formë të njohur, por dimensione të panjohura.

Një kontrollues proporcional është një pajisje që ushtron një efekt kontrolli u (t) mbi një objekt në proporcion me devijimin e tij linear e (t) nga një gjendje e dhënë x0 (t);

e (t) \u003d x0 (t) -x (t), ku x (t) është gjendja në një kohë të caktuar;

u (t) \u003d ke (t), ku k është një faktor fitimi.
Kjo është, sa më shumë që robot devijon nga kursi i dhënë, aq më aktivisht motorët duhet të punojnë, duke e rreshtuar atë.

Gjurmimi i linjës me një sensor të dritës duke përdorur kontrolluesin P

Lëvizja përgjatë kufirit të bardhë e zi mund të ndërtohet gjithashtu në P-kontrolluesin. Megjithëse nga pamja e jashtme, problemi duket se zgjidhet vetëm me ndihmën e një kontrolluesi të rele, pasi në sistem ekzistojnë vetëm dy gjendje të dukshme për syrin e njeriut: bardh e zi. Por roboti e sheh gjithçka ndryshe, sepse nuk ka asnjë kufi të mprehtë midis këtyre ngjyrave. Mund të thuash që ai është dritëshkurtër dhe sheh një tranzicion gradient të hijeve gri.

Kjo është ajo që do të ndihmojë për të ndërtuar një P-kontrollues.
Duke përcaktuar gjendjen e punës si leximet e sensorit të dritës, ne do të mësojmë të sigurojmë një efekt kontrolli proporcional në motorë sipas ligjit në vijim:
e \u003d s1-gri, ku s1 është leximi i sensorit aktual dhe gri është vlera e synuar.

Koeficienti k (i cili është 2 në këtë shembull) duhet të jetë mjaft i vogël (nga 1 në 3). Një rregullator i tillë punon në mënyrë efektive vetëm për këndet e vogla të devijimit, kështu që roboti duhet të vendoset në drejtim të lëvizjes në mënyrë që sensori të jetë në anën e majtë të vijës së zezë. Easyshtë e lehtë të shohësh që lëvizja përgjatë vijës në P-kontrolluesin është e qetë. dhe në disa zona të punës lëviz pothuajse në një vijë të drejtë ose saktësisht duke ndjekur kthesat e vijës.

Kalibrimi i sensorit

Le të kthehemi te numri 48 i përdorur në formulë. Kjo është mesatarja aritmetike e sensorit të dritës në të zezë dhe në të bardhë, për shembull (40 + 56) / 2 \u003d 48. Sidoqoftë, leximet e sensorëve shpesh ndryshojnë për arsye të ndryshme: një sipërfaqe tjetër, një ndryshim në ndriçimin e përgjithshëm në dhomë, një modifikim të lehtë të strukturës, etj. Prandaj, ne do ta kalibrojmë robotin manualisht duke përcaktuar leximet e sensorit të dritës në të bardhë dhe në të zezë.

Ngasja përgjatë një linje me dy sensorë të dritës duke përdorur një kontrollues P
Drejtimi i saktë i automjetit përmes një kryqëzimi me një sensor të dritës është mjaft i vështirë. Nëse doni ta bëni këtë me një shpejtësi mjaft të lartë, ju duhen të paktën dy sensorë, të vendosur në një distancë prej dy gjerësive të linjës (ose më të gjerë).
Kur lëvizni, ekzistojnë katër gjendje sensori:

  • të dy në të bardhë - drejt përpara;
  • majtas (s1) jo e zezë, djathtas (s2) në të bardhë - lëviz në të majtë;
  • majtas në të bardhë, djathtas në të zezë - lëvizja në të djathtë;
  • të dy në të zezë - drejt përpara.
Kështu që nëse leximet e sensorit janë të barabarta (të dy të bardha ose të dyja të zeza), roboti drejton drejt. Para fillimit të robotit, ne do të kalibrojmë automatikisht të dy sensorët. Atëherë algoritmi i lëvizjes përgjatë vijës me kontrolluesin P do të duket si a.s .:

Koeficienti k mund të ndryshojë në një diapazon mjaft të gjerë (nga 1 në 20 dhe më shumë) në varësi të lakimit të linjës, manovrueshmërisë së robotit dhe ndryshimit midis të zezës dhe të bardhës në fushë.
Një kusht i rëndësishëm. Kalibrimi automatik duhet të kryhet në një sipërfaqe me një ngjyrë dhe mundësisht në ndriçimin që do të zërë pjesën më të madhe të shtegut. Për shembull, nëse një robot po vozit përgjatë një vije të zezë në një fushë të bardhë, atëherë kalibroni në një të bardhë. Ata. pozicioni i robotit në fillim duhet të jetë i tillë:


Dhe një vërejtje më shumë. Ka sensorë leximet e të cilëve ndryshojnë me 10-20%. Shtë e këshillueshme që të mos bashkohen me një rregullator me një koeficient të madh, pasi që me një ndryshim të mprehtë në ndriçimin e përgjithshëm edhe në një fushë të bardhë uniforme, devijimet mund të jenë të ndryshme, gjë që do të çojë në pasoja të papritura.