Pid хянагч ev3 шугамын дагуу хөдөлгөөн. Олон улсын роботын тэмцээнүүд - Дүрэм - Роботуудын жишээ - LEGO EV3 дээр суурилсан замналын робот. Дөрвөн гэрлийн мэдрэгч бүхий роботын удирдлага

Энэ асуудал бол сонгодог, үзэл суртлын хувьд энгийн, олон удаа шийдэж болох бөгөөд тэр болгонд та шинэ зүйлийг олж мэдэх болно.

Дараах шугамын асуудлыг шийдэх олон арга байдаг. Тэдгээрийн аль нэгийг нь сонгох нь роботын тусгай загвар, мэдрэгчийн тоо, дугуй болон бие биентэйгээ харьцуулахад байршил зэргээс хамаарна.

Бидний жишээнд робот сурган хүмүүжүүлэгчийн үндсэн боловсролын загварт үндэслэн роботын гурван жишээг шинжлэх болно.

Эхлэхийн тулд бид Robot Educator боловсролын роботын үндсэн загварыг угсарч, үүний тулд та MINDSTORMS EV3 програм хангамжийн зааврыг ашиглаж болно.

Жишээлбэл, бидэнд EV3 цайвар өнгийн мэдрэгч хэрэгтэй болно. Эдгээр гэрлийн мэдрэгч нь бусадтай адил бидний ажилд хамгийн тохиромжтой байдаг тул бид эргэн тойрон дахь гэрлийн эрчмийн талаар санаа зовох хэрэггүй болно. Энэхүү мэдрэгчийн хувьд бид мэдрэгчийн улаан арын гэрлээс туссан гэрлийн хэмжээг тооцдог туссан гэрлийн горимыг програмуудад ашиглах болно. Мэдрэгчийн уншилтын хязгаар нь "тусгалгүй" ба "нийт тусгал"-ын хувьд 0-100 нэгж байна.

Жишээ болгон бид хавтгай, цайвар дэвсгэр дээр дүрсэлсэн хар траекторийн дагуу шилжих програмын 3 жишээнд дүн шинжилгээ хийх болно.

· Нэг мэдрэгч, P зохицуулагчтай.

· Нэг мэдрэгч, компьютерийн зохицуулагчтай.

· Хоёр мэдрэгч.

Жишээ 1. Нэг мэдрэгч, P зохицуулагчтай.

Дизайн

Гэрлийн мэдрэгчийг загвар дээр тохиромжтой байрлуулсан цацрагт суурилуулсан.


Алгоритм

Алгоритмын үйл ажиллагаа нь мэдрэгчийн гэрэлтүүлгийн цацрагийн хар шугамтай давхцах зэргээс хамааран мэдрэгчийн буцаасан заалтууд нь градиентаар өөрчлөгддөгт суурилдаг. Робот нь хил дээрх гэрлийн мэдрэгчийн байрлалыг хадгалдаг хар шугам. Хяналтын систем нь гэрлийн мэдрэгчийн оролтын өгөгдлийг хөрвүүлснээр роботын эргэлтийн хурдны утгыг үүсгэдэг.


Бодит зам дээр мэдрэгч нь бүхэл бүтэн үйл ажиллагааны хүрээнд (0-100) утгыг үүсгэдэг тул энэ тохиолдолд 50-ийг роботын эрэлхийлдэг утгыг сонгоно хүрээ -50 - 50, гэхдээ эдгээр утгууд нь траекторийг огцом эргүүлэхэд хангалтгүй юм. Тиймээс хүрээг -75 - 75 хүртэл нэг хагас дахин нэмэгдүүлэх хэрэгтэй.

Үүний үр дүнд программд тооцоолуурын функц нь энгийн пропорциональ хянагч юм. Үүний функц нь ( (a-50)*1.5 ) гэрлийн мэдрэгчийн ажиллах мужид графикийн дагуу эргэлтийн утгыг үүсгэдэг.

Алгоритм хэрхэн ажилладаг тухай жишээ

Жишээ 2. Нэг мэдрэгч, PK зохицуулагчтай.

Энэ жишээ нь ижил бүтэц дээр суурилдаг.

Өмнөх жишээн дээр робот хэт ганхаж байсан нь хангалттай хурдлах боломжгүй байсныг та анзаарсан байх. Одоо бид энэ байдлыг бага зэрэг сайжруулахыг хичээх болно.

Пропорциональ хянагчдаа бид энгийн шоо хянагч нэмж байгаа бөгөөд энэ нь хянагчийн функцэд бага зэрэг гулзайлгах болно. Энэ нь роботын замналын хүссэн хилийн ойролцоо эргэлдэхийг багасгахаас гадна түүнээс хол байх үед илүү хүчтэй эргэлдэх болно.

Пропорциональ хянагч

Тодорхойлолт

Автомат удирдлагад удирдлагын үйлдэл u(t) нь ихэвчлэн динамик алдааны функц юм - хяналттай хувьсагчийн x(t)-ийн тогтоосон утгаас x0(t)-ийн хазайлт e(t):

e(t) = x0(t) – x(t).

Энэ бол хазайлтаар зохицуулах Ползунов-Ватт зарчим буюу санал хүсэлтийн зарчим юм. Хүссэн удирдлагын үйлдэл u0(t) хянагчаар хэмжигдэх хэмжигдэхүүнүүдээс функциональ хамаарлын математик илэрхийллийг дээр дурдсан хууль буюу хяналтын алгоритм гэнэ.

Пропорциональ хянагч нь тухайн объектод өгөгдсөн төлөвөөс хазайсантай пропорциональ хяналтын нөлөө үзүүлдэг төхөөрөмж юм.

Энд k нь хянагчийн ашиг юм.

Өгөгдсөн x0 төлөвийг ихэвчлэн тогтоосон цэг гэж нэрлэдэг ба түүнээс гарах хазайлтыг e үлдэгдэл гэж нэрлэдэг. Дараах зүйлд тодорхой байхын тулд бид үлдэгдлийг err (-аас) товчлолоор тэмдэглэнэ. Англи үг"алдаа" - алдаа).

Моторын удирдлага

Туршлагатай дайчин буухиа хянагч дээрх робот шиг сэлэм савлахгүй. Бид сэлэм барьсан моторыг хатуу тогтсон байрлалд барих алгоритмыг гаргах хэрэгтэй (Зураг 7.1). P-зохицуулагч нь үүнд тусална.

E 1 - A мотор дээрх хурд мэдрэгч 1-ийн уншилтыг тохируулж болох хувьсагч гэж үзье. Тохиргоо x0 = 45, үлдэгдэл e = 45 – e 1. Дараа нь мотор дээрх удирдлагын үйлдлийг томъёогоор тодорхойлно.

u = k ∙ (45 – e 1).

Энд k нь ашгийн коэффициент, жишээ нь 5 бөгөөд энэ нь тогтоосон цэгээс бага зэрэг хазайсан ч моторын хариу урвалыг нэмэгдүүлэх болно.

1 Үлдэгдэл e-ийн математик тэмдэглэгээг (алдаанаас) кодлогч e 1 (кодлогчоос)-ийн заалттай андуурч болохгүй, Robolab орчны урьдчилан тодорхойлсон хувьсагч.

Хэрэв хазайлт байгаа бол эерэг талмоторт сөрөг хяналтын оролтыг ашиглах ба эсрэгээр. Энэ удирдлагыг хөдөлгүүрт 1-10 мс-ийн богино хугацааны хоцрогдолтой циклээр хийж, хянагчийг суллаж болно (Зураг 7.8).

Цагаан будаа. 7.8. Пропорциональ хянагч ашиглан моторын хяналтын алгоритм.

Хэрэв ашгийн коэффициентийг 5-аас 100 хүртэл нэмэгдүүлбэл манай пропорциональ хянагч реле шиг ажиллаж эхлэх бөгөөд энэ нь хэт давалтын нөлөөнөөс болж хүчтэй хэлбэлзэл үүсгэх болно.

RobotC хэл нь Robolab дээрх шиг кодлогчийг уншихад тохиромжтой тэмдэглэгээгүй тул програм нь арай урт харагдаж байна.

int k=5, u; nMotorEncoder=0; байхад (үнэн)

u=k*(45-nMotorEncoder); мотор = u;

Цаашилбал, "сэлэмтэй цохилт" хийхийн тулд 45-ын оронд хувьсагчтай байх ба түүний утгыг гаднаас нь, жишээлбэл, зэрэгцээ даалгавараас өөрчлөхөд хангалттай. Үүнийг 8-р бүлгийн робот бөмбөрчдийн тухай хэсэгт авч үзнэ.

Одоо зөвхөн моторын хөдөлгөөнгүй байрлал төдийгүй хөдөлгөөний хурдыг хянадаг зохицуулагчийг бүтээцгээе. Алгоритмын логикийн дагуу одоог хүртэл тогтмол байсан бөгөөд өөрчлөгдөөгүй тогтоосон цэг нь өсөлт эсвэл бууралт руу шилжиж эхлэх ёстой. Зохицуулагчийг дуулгавартай дагаснаар мотор зайлшгүй дагаж мөрдөх болно. Тогтсон утгыг тасралтгүй нэмэгдүүлэх хамгийн энгийн хэрэгсэл бол таймер юм.

NXT хянагч нь дөрвөн суурилагдсан таймертай бөгөөд тус бүр нь секундын аравны нэг, зуутын нэг, мянгатын нэгээр цагийг хэмжиж чаддаг. Нэг секундэд 10 "зөвлөгөө" хийдэг эхний таймерыг эзэмшицгээе.

ков". Robolab-д үүнийг T1 эсвэл Timer100ms1 гэж тодорхойлсон бол RobotC-д энэ нь timer100 байна.

Өмнөх жишээнд дурдсан моторын хазайлтын альфа өнцгийг k 2 хурдатгалын коэффициент бүхий таймерын уншилтаас хамаарч 45 болгож үзье.

альфа = k2 ∙ T1.

Хяналтын арга хэмжээолшруулах хүчин зүйл k 1-тэй ижил хэвээр байх болно:

u = k 1 ∙ (альфа – e 1).

Товчхондоо, Robolab хэл дээрх программ дээр бид таймерыг эхлүүлсэн тул хяналтын үйлдлийг моторт шууд хэрэгжүүлэх болно.

Цагаан будаа. 7.9. Хөдөлгүүрийн хурдны хяналт нь секундэд нэг эргэлт юм.

k 2 = 36 коэффициент нь секундын дотор альфа утга 360 болж өсөхийг тодорхойлдог бөгөөд энэ нь хөдөлгүүрийн нэг бүрэн эргэлттэй тохирч байна.

int k1=2, k2=36, u, альфа; nMotorEncoder=0; ClearTimer(T1); байхад (үнэн)

альфа = таймер100*k2; u=k1*(alpha-nMotorEncoder); мотор = u;

Бүхэл тоон төрлийн хувьсагчдын хувьд C (болон Robolab) дээр батлагдсан бүхэл тоо хуваах аргыг ашиглан салангид өнцгийн өөрчлөлтийг хийх боломжтой. секундэд нэг удаа нэмэгдүүлнэ:

альфа = T 1 / 10 ∙ k 2.

Коэффициент k 2 = 60 бол цацрагийн хөдөлгөөн нь цагны товчлуур дээрх хоёр дахь гарны хөдөлгөөнтэй тохирно. Гэхдээ энэ нь хангалтгүй юм

мэдэгдэхүйц. Тодорхой болгохын тулд та k2 = 30-ыг тохируулж болно, дараа нь сум тус бүр нь 30 градусын 12 "хачиг" -аар бүрэн эргэлт хийнэ. Бүхэл тоо хуваах, үржүүлэх үйлдлүүдийн дарааллыг анхааралтай ажиглаарай;

Цагаан будаа. 7.10. Цагийн зүүний хөдөлгөөнийг хурдасгасан дуураймал.

Эцэст нь, математикийн бөмбөрчдийн жишээ. Үргэлж урагшлахын оронд зүү нь P-зохицуулагчийн хяналтан дор нааш цааш хэлбэлзэнэ. С хэлэнд % тэмдгээр тэмдэглэгдсэн үлдэгдэлтэй хуваах үйлдэл нь үүнд тусална. Сөрөг бус бүхэл тооны 2-т хуваагдсан үлдэгдэл нь үргэлж 0 эсвэл 1 байх болно:

альфа = T 1% 2 ∙ k 2.

Хазайлтыг k 2 = 15 дахин нэмэгдүүлснээр бид альфа хэлбэлзэлтэй тогтоосон цэгийг олж авдаг бөгөөд энэ нь хянагчийг секундэд 5 удаа моторыг 0º эсвэл 15 градусаар хөдөлгөхөд хүргэдэг. Хөтөлбөрт гарсан өөрчлөлтүүд бага байна. RobotC дээрх жишээг харцгаая:

int k1=3, k2=15, u, альфа; nMotorEncoder=0; ClearTimer(T1); байхад (үнэн)

альфа = таймер100%2*k2; u=k1*(alpha-nMotorEncoder); мотор = u;

Энэхүү прототип бөмбөрчин тогтмол давтамжтайгаар ширээн дээр гарч ирдэг. Хамгийн гол нь зөв байрлалаас эхлэх явдал юм. Бүхэл тоон математикийн тусламжтайгаар та илүү төвөгтэй хэмнэлийн хэв маягийг тохируулж болно, жишээлбэл (Хүснэгт 7.1):

альфа = T 1% 5% 2 ∙ k 2.

төв = S3.

Коэффицентийг мөчлөгт тодорхойлно.

k 1 = c + (S 3 - төв) / k 2.

Цагаан будаа. 7.36. Хөвөгч коэффициент бүхий пропорциональ хянагч дээрх шугамын хөдөлгөөн.

Үүний үр дүнд бий болсон ашгийн хяналтын хуулийг зөвхөн пропорциональ бүрэлдэхүүн хэсэгт төдийгүй бусад бүрэлдэхүүн хэсгүүдэд, түүнчлэн бүхэлд нь хяналтын үйл ажиллагаанд хэрэглэж болно (Зураг 7.36).

PID хянагч

Пропорциональ интеграл дериватив (PID) хянагч нь хамгийн алдартай бөгөөд олон тооны төхөөрөмжүүдэд ашиглагддаг. янз бүрийн төрөл, хурдан хариу үйлдэл болон системийн байршлын нарийвчлалыг шаарддаг. Нэрнээс нь харахад энэхүү зохицуулагч нь гурван бүрэлдэхүүн хэсгийн нийлбэрээс бүрдэх бөгөөд Зураг дээр графикаар дүрслэгдсэн болно. 7.37.

Цагаан будаа. 7.37. PID хянагчийн хэлхээ.

Энэ бол хялбаршуулсан диаграмм юм. Динамик алдааны утгыг e (t) хянагчийн оролтод өгч, хяналтын үйлдэл u (t) гаралт дээр үүсдэг.

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

e (τ)d τ + k d ∙

де.

Диаграммд гурвалжин хэлбэрээр үзүүлсэн пропорциональ бүрэлдэхүүн хэсэг нь системийг тухайн төлөвт байрлуулах үүрэгтэй. Зарим тохиолдолд энэ нь дараагийн өөрөө хэлбэлзэлтэй хэт их ачаалал үүсгэж болно. Өөрөөр хэлбэл, P-зохицуулагч нь "хэтрүүлэн давж" магадгүй бөгөөд робот нь нөгөө талаас нөгөө рүү шилжиж эхэлнэ.

Салшгүй бүрэлдэхүүн хэсэг нь сөрөг туршлага хуримтлуулж (алдааг нэгтгэн дүгнэж), нөхөн олговор өгдөг. Хамгийн бага хазайлтаар пропорциональ бүрэлдэхүүн хэсэг нь "суларч", интеграл бүрэлдэхүүн хэсэг нь нийлбэрээр хурдан нэмэгдэж байгаа тул хяналттай утгыг тогтоосон цэгт "хүрэхэд" тусалдаг.

Дифференциал бүрэлдэхүүн хэсэг (D-бүрэлдэхүүн хэсэг) нь системийн төлөв байдлын өөрчлөлтийн хурдыг хянаж, болзошгүй хэт ачааллаас сэргийлдэг. Зарим тохиолдолд D бүрэлдэхүүн хэсэг нь пропорциональ шинж тэмдгийн эсрэг байдаг бол зарим тохиолдолд давхцдаг.

Бид пропорциональ бүрэлдэхүүнийг аль хэдийн мэддэг болсон, дифференциалыг өмнөх 6-р бүлэгт тайлбарласан болно. Интегралыг авч үзье. Энэ бүрэлдэхүүн хэсэг нь динамикаар тодорхойлогддог бөгөөд өмнөх утгатай нэгтгэгддэг.

i = i + ki × e(t) × dt.

e(t) × dt хэмжигдэхүүний физик утга нь ийм байна

системийн алдааны төлөвт байх хугацаатай пропорциональ. k i коэффициентийг хаалтнаас хассан тул алдааны үргэлжлэх хугацааны нийлбэр гэж i утгын талаар ярьж болно. Тиймээс бид интегралыг нийлбэрээр олдог.

Хоёр дугуй дээр тэнцвэржүүлдэг роботын жишээг ашиглан PID хянагч ашиглах талаар авч үзье. Энэхүү сонгодог асуудлыг янз бүрийн мэдрэгч ашиглан янз бүрийн аргаар шийдэж болно. Санал болгож буй жишээнд гэрлийн мэдрэгчийг ашигладаг хамгийн энгийн хэлбэр PID хянагч. Гэсэн хэдий ч роботыг тогтворжуулахад илүү нарийвчлалтай мэдрэгчийн заалтыг ашиглах шаардлагатай болно.

RAW формат

Мэдрэгчийн өгөгдөл нь боловсруулаагүй, түүхий хэлбэрээр NXT хянагч руу ордог. Бүх мэдрэгч дамжуулдаг үйлдлийн систем 0-ээс 1023 хүртэлх тоон утгыг харгалзах драйвер боловсруулж, илүү ойлгомжтой хэлбэрт оруулдаг (зай 0...255, гэрэлтүүлэг 0...100, 0 эсвэл 1-д хүрэх гэх мэт). Гэхдээ өгөгдлийг жолоочийг тойрч шууд хүлээн авах боломжтой. Энэ түүхий форматыг ихэвчлэн RAW гэж нэрлэдэг (англи хэлнээс "raw"). Зарим тохиолдолд үүнийг илүү нарийвчлалтай болгохын тулд ашиглаж болно. Жишээлбэл, гэрлийн мэдрэгчийн утгын хүрээ ойролцоогоор 10 дахин нэмэгдэж болно. Энэ боломжийг цаашид ашиглаж байна.

Та өгөгдлийг RAW форматаар Robolab болон RobotC-д хүлээн авах боломжтой. Үүнийг хийхийн тулд мэдрэгчийг тохируулж, тусгай урьдчилан тодорхойлсон хувьсагч ашиглан өгөгдлийг уншдаг.

Тэнцвэржүүлэгч робот

Segway роботын загварыг Зураг дээр үзүүлэв. 7.38: босоо байрлалтай хянагч, ойрхон байрлуулсан дугуй, доошоо харсан гэрлийн мэдрэгч. Алгоритм нь арай илүү төвөгтэй байх болно.

Сегвейг тэнцвэртэй байрлалд тогтворжуулах зарчим нь дараах байдалтай байна. Хэрэв робот урагш тонгойвол туссан гэрлийн улмаас гэрлийн мэдрэгч дээрх заалт нэмэгддэг. Үүний хариуд роботыг урагшлах, улмаар босоо байрлалд дахин ороход хүргэдэг хяналтын үйлдэл үүсдэг.

Ухрах үед мэдрэгчийн заалт буурч, робот арагшаа хөдөлж эхэлдэг. Энэ бүхнийг пропорциональ бүрэлдэхүүн хариуцдаг. Интеграл ба дифференциал бүрэлдэхүүн хэсгүүдийн үүргийг хэт ачааллаас хамгаалах даатгал гүйцэтгэдэг.

Цагаан будаа. 7.38. Segway роботыг тэнцвэржүүлэх.

Зураг дээр. 7.39 нь Robolab дахь алгоритмыг харуулж байна. Үүний дийлэнх хэсгийг хувьсагчдыг эхлүүлэх ажил эзэлдэг. Нарийвчлалыг сайжруулахын тулд мэдрэгчийн өгөгдлийг RAW форматаар уншаад зогсохгүй ихэнх хувьсагчдыг бодит хөвөгч форматаар зарладаг. PID алгоритм нь өөрөө гогцоонд байдаг.

Цагаан будаа. 7.39. Тэнцвэржүүлэгчийн алгоритм нь PID хянагч дээр суурилдаг.

Шугамын дагуу шилжих уламжлалын дагуу бид саарал хувьсагчийг тогтоосон цэг болгон ашигладаг - тэнцвэрийн байрлал дахь гэрлийн мэдрэгчийн дундаж уншилт. Шинэ масштабын параметр нь хяналтын үйл ажиллагааны масштабыг тодорхойлдог. Энэ нь үндсэндээ унтрах хүчин зүйл юм, учир нь зохицуулагчийн үйлдвэрлэсэн үнэ цэнэ NXT моторт хэт өндөр байдаг. Үүнийг одоо байгаа коэффициентүүд дотор нэмэх боломжтой боловч RobotC-ийн хувьд энэ параметр өөр байх боловч коэффициентүүд нь ижил байх болно.

Өгөгдсөн коэффициентүүдийн тусламжтайгаар робот нь энгийн, цайвар өнгийн хулдаас эсвэл ширээн дээр сайн тогтворждог. Энэ нь түүнд хэрэггүй гэсэн үг цагаангадаргуу. Эхлэхийн тулд та Segway-ийг тэнцвэрийн байрлалд зөв тохируулах хэрэгтэй. Хэрэв робот урагш эсвэл хойшоо хазайж эхэлбэл тэр даруй хазайсан чиглэлд хөдөлж эхэлнэ.

RobotC дээрх ижил төстэй жишээ нь хэд хэдэн шалтгааны улмаас арай өөр юм. Нэгдүгээрт, энэ орчны програм хангамжтай NXT-ийн гүйцэтгэл нь Robolab-аас ойролцоогоор 1.4 дахин их байгаа тул масштабын хүчин зүйлийг нэмэгдүүлэх шаардлагатай. Хоёрдугаарт, RAW утгууд нь зөв дарааллаар дамждаг тул та моторыг эргүүлэх эсвэл зүгээр л сөрөг хяналтын үйлдэл хийх хэрэгтэй болно.

int саарал = SensorRaw; int err, errold=0;

хөвөх kp=25, ki=350, kd=0.3; хөвөх масштаб=14;

хөвөх dt=0.001; хөвөх p, i=0, d, u; байхад (үнэн)

алдаа = саарал-SensorRaw; //Эсрэг тэмдэгтэй хазайлт p=kp*err;

i=i+ki*err*dt; d=kd*(алдаа-алдаа)/dt; алдаа = алдаа; u=(p+i+d)/масштаб; мотор = u; мотор = u; 1Мсек хүлээх(1);

Онолын элементүүд автомат удирдлагасургуульд 1

Чухал бөгөөд сонирхолтой арга зүйн ажил бол сургуулийн сурагчдад ирээдүйг харахад туслах мэргэжилтэн, оюутны мэдлэгийн талбаруудын хооронд "гүүр тавих" явдал юм. ирээдүйн мэргэжил, өөрөөр хэлбэл ажил мэргэжлийн чиг баримжаа олгох ба оюутнууд мэргэжлийн мэдлэгээ практикт ашиглах боломжтойг олж хардаг. Үүнтэй төстэй үр дүнд хүрэхийн тулд математик, физикийн сургуулийн сургалтын хөтөлбөрөөс хэтрээгүй математикийн аппарат ашиглан зохицуулагчийг тооцоолох аргыг боловсруулсан. Ялангуяа оронд нь дифференциал тэгшитгэлКомпьютерийн удирдлагад объект ба хянагч хоорондын харилцан үйлчлэлийн салангид шинж чанартай сайн тохирдог ялгааг ашигласан.

Жишээлбэл, хөдөлгөөнт роботын хананы дагуух хөдөлгөөнийг хянах асуудалд пропорциональ (P) ба пропорциональ дериватив (PD) хянагчийг бий болгох асуудлыг авч үзье. Робот ба хананы хоорондох зайг x t-ээр, θt - роботын явах өнцөг, u t - тухайн үеийн t серийн дугаартай удирдлагын үйлдлийг тус тус тэмдэглэе, энд t = 0, 1, 2, ... - өөрчлөлтийн мөчүүдийн тоо

рений. Мэдрэгчийн санал асуулга, хяналтын үйл ажиллагааны хэмжээг өөрчлөх нь цаг хугацааны тэнцүү интервалд явагддаг гэж үздэг. Lego NXT роботуудын удирдлагын даалгаврын хувьд удирдлагын үйлдэл нь ялгаатай гэж үзэх нь зүйн хэрэг юм өнцгийн хурдуудДугуйны эргэлт, чиглэлийн өнцгийн өөрчлөлтийн хурдтай пропорциональ:

Нэрлэсэн θt =0-аас курсийн хазайлт бага, роботын дундаж хурд тогтмол: vt=v гэж үзвэл роботын төлөвийн хувьсагчдын өөрчлөлтийн динамикийг төлөвийн шугаман тэгшитгэлээр эхний ойролцоо байдлаар дүрсэлж болно. :

Энд g = h2vr / b.

Хананд хүрэх хүссэн зайг x*>0 гэж тогтоож, хамаарлаар хяналтын зорилгыг (CT) тодорхойлъё.

xt → x* гэж t→∞.

Одоо аяндааАсимптотик тогтвортой байдлын тухай ойлголтыг (4) системийн шийдлүүдийн шинж чанар болгон, зорилтот нөхцөлөөс бага зэрэг ялгаатай аливаа анхны нөхцөлд зорилтот утгад (5) хүрэхийг баталгаажуулдаг үндсэн түвшинд танилцуулъя. u t = 0-ийн хувьд (4) тэгшитгэлийн шийдэл нь x t = x* аливаа тогтмол утга болохыг харахад хялбар байдаг. Гэхдээ давхар интеграторын (давхар нэмэгч) загварт тохирсон тэгшитгэл (4) нь асимптотик тогтвортой байдлын шинж чанартай байдаггүй тул хяналтын төв (5) тогтмол хяналтанд хүрч чадахгүй. Үүнийг хэд хэдэн зүйлийг нэгтгэн дүгнэх замаар аналитик байдлаар хялбархан харуулж байна

Хөнгөн барилгын үндсэн хөдөлгөөнүүдийн нэг нь хар шугамыг дагах явдал юм.

Програмыг бий болгох ерөнхий онол, тодорхой жишээг wroboto.ru вэбсайт дээр тайлбарласан болно

Ялгаатай тул би үүнийг EV3 орчинд хэрхэн хэрэгжүүлэх талаар тайлбарлах болно.

Роботын мэдэх ёстой хамгийн эхний зүйл бол хар, цагаан өнгийн хил дээр байрлах "хамгийн тохиромжтой цэг" -ийн утга юм.

Зураг дээрх улаан цэгийн байршил нь энэ байрлалд яг тохирч байна.

Тооцооллын хамгийн тохиромжтой сонголт бол хар ба цагаан утгыг хэмжиж, арифметик дундажийг авах явдал юм.

Та үүнийг гараар хийж болно. Гэхдээ сул талууд нь шууд харагдах болно: богино хугацаанд ч гэсэн гэрэлтүүлэг өөрчлөгдөж, тооцоолсон утга буруу байх болно.

Тиймээс та үүнийг хийх робот авч болно.

Туршилтын явцад бид хар, цагаан аль алиныг нь хэмжих шаардлагагүй гэдгийг олж мэдсэн. Зөвхөн цагаан өнгийг хэмжиж болно. Мөн хамгийн тохиромжтой цэгийн утгыг хар шугамын өргөн ба роботын хурдаас хамааран цагаан утгыг 1.2 (1.15)-д хуваана.

Тооцоолсон утгыг дараа нь хандахын тулд хувьсагч руу бичих ёстой.

"Хамгийн тохиромжтой цэг" -ийн тооцоо

Хөдөлгөөнд хамаарах дараагийн параметр бол эргэлтийн коэффициент юм. Энэ нь том байх тусам робот нь гэрэлтүүлгийн өөрчлөлтөд илүү хурдан хариу үйлдэл үзүүлдэг. Гэхдээ хэтэрхий их их үнэ цэнэроботыг ганхуулах болно. Утгыг роботын загвар тус бүрээр туршилтаар дангаар нь сонгоно.

Сүүлийн параметр нь моторуудын үндсэн хүч юм. Энэ нь роботын хурдад нөлөөлдөг. Хөдөлгөөний хурдыг нэмэгдүүлэх нь гэрэлтүүлгийн өөрчлөлтөд роботын хариу үйлдэл үзүүлэх хугацааг нэмэгдүүлэхэд хүргэдэг бөгөөд энэ нь замаасаа гарахад хүргэдэг. Мөн утгыг туршилтаар сонгоно.

Тохиромжтой болгох үүднээс эдгээр параметрүүдийг хувьсагч болгон бичиж болно.

Эргэлтийн харьцаа ба үндсэн хүч

Хар шугамын дагуу шилжих логик нь дараах байдалтай байна: хамгийн тохиромжтой цэгээс хазайлтыг хэмждэг. Энэ нь том байх тусам робот түүнд буцаж очихыг хичээх ёстой.

Үүнийг хийхийн тулд бид хоёр тоог тооцоолно - В ба С мотор тус бүрийн чадлын утгыг тус тусад нь тооцно.

Томъёоны хэлбэрээр энэ нь дараах байдалтай байна.

Энд Isens нь гэрлийн мэдрэгчийн заалтуудын утга юм.

Эцэст нь EV3 дахь хэрэгжилт. Үүнийг тусдаа блок хэлбэрээр зохион байгуулах нь хамгийн тохиромжтой.

Алгоритмыг хэрэгжүүлэх

Энэ нь яг ийм алгоритмыг роботод хэрэгжүүлсэн юм дунд ангилал WRO 2015

Дэлгэрэнгүй Зохиогч: Коновалов Игорь     Пропорциональ хянагч нь сайжруулалт юм. Релений гол сул тал нь одоогийн утга нь мэдрэгчийн ердийн утгаас хэр зэрэг ялгаатай байх нь хамаагүй юм. Энэ нь зөвхөн хоёр төлөвтэй байдаг - хэрэв мэдрэгчийн утгыг хэвийн хэмжээнээс бага бол тодорхой тогтмол тоогоор нэмэгдүүлэхийг оролдох эсвэл нэмэгдүүлэх. Үүнээс болж хэлбэлзэл нь тогтмол далайцтай байдаг бөгөөд энэ нь маш үр ашиггүй байдаг.
    Одоогийн уншилтууд хэвийн хэмжээнээс хэр хол байгааг тодорхойлж, үүнээс хамааран далайцыг өөрчлөх нь илүү логик юм. Илүү ойлгомжтой болгохын тулд жишээг авч үзье. Жишээ нь өмнөх нийтлэлийн нэгэн адил: Lego Mindstorms EV3 робот нь гэрлийн горимд нэг өнгө мэдрэгч ашиглан хар шугамын дагуу хөдөлдөг.

Робот нь цагаан ба хар хоёрын хоорондох хилийн дагуу жолоодохыг оролддог бөгөөд мэдрэгч нь гэрэлтүүлгийн 50 орчим хувийг харуулж байна. Энэ нь хэвийн байрлалаас хол байх тусам робот 50% руу буцахын тулд илүү их хүчин чармайлт гаргадаг.
    Програм бичихдээ бид "алдаа", "хяналтын үйлдэл" гэсэн нэр томъёог ашиглана. Алдаа нь одоогийн мэдрэгчийн уншилт ба ердийнх хоорондын ялгаа юм. Манай тохиолдолд робот одоо гэрэлтүүлгийн 20% -ийг харж байгаа бол алдаа нь 20-50 = -30% байна. Алдааны тэмдэг нь робот алдаанаас ангижрахын тулд аль зүгт эргэх ёстойг заана. Одоо бид моторуудад робот ямар чиглэлд, ямар хурдтай, ямар огцом эргэх ёстойг хэлэх ёстой. Хөдөлгүүрүүдэд хяналтын нөлөө үзүүлэх шаардлагатай бөгөөд энэ нь хэвийн байрлалдаа хэр хурдан эргэж орох ёстой гэсэн үг юм. Хяналтын үйлдлийг (UP) алдаа (алдаа) пропорциональ байдлын хүчин зүйлээр (k) үржүүлсэн байдлаар тооцоологддог. Энэ коэффициент нь хяналтын үйлдэлд алдааны нөлөөллийг нэмэгдүүлэх буюу багасгахад ашиглагддаг. Хяналтын оролтыг жолоодлого руу илгээдэг бөгөөд тэнд роботын дундаж хурдыг тохируулдаг.
    Пропорциональ хүчин зүйлийг хэрхэн тохируулах вэ? Туршилтын дагуу утгыг сонгох, жишээлбэл, роботын хурд, дизайнаас хамааран 0.2-оос 1.5 хүртэл байж болно. Коэффициент хэт том бол робот маш их ганхах, бага бол саадгүй жолоодох боловч хяналтын оролт хангалтгүйгээс болж хэзээ нэгэн цагт эргэх үед гулсах болно. Хөтөлбөрийн хоёр хувилбарыг бичье - хувьсагчтай (тэдгээрийг аль хэдийн судалж үзсэн хүмүүсийн хувьд) болон байхгүй.


    Гэхдээ энэ зохицуулагчийг пропорциональ ба салшгүй бүрэлдэхүүн хэсэг болгон бэхжүүлж болно, тайлбарыг дараахь зүйлд оруулна. Удахгүй уулзацгаая!