Съдържание:

Преподаване на PID контрол с Lego роботи: 14 стъпки
Преподаване на PID контрол с Lego роботи: 14 стъпки

Видео: Преподаване на PID контрол с Lego роботи: 14 стъпки

Видео: Преподаване на PID контрол с Lego роботи: 14 стъпки
Видео: How to Set Up Parental Controls on iPad 2024, Юли
Anonim
Преподаване на PID контрол с Lego роботи
Преподаване на PID контрол с Lego роботи

Много млади ентусиасти на роботи се интересуват от по -усъвършенствани теми за управление, но може да бъдат затруднени от смятането, което често се изисква за анализ на системи със затворен цикъл. Има чудесни ресурси, достъпни онлайн, които опростяват изграждането на „Пропорционален интегрален диференциален контролер“(PID контролер), а едно страхотно описание е тук:

Независимо от това, те могат да бъдат трудни за следване и може да не са подходящи за класна стая с около 20 ученици.

Тази стъпка по стъпка Instructable показва как успешно да преподавате стая, пълна със студенти, използвайки системата Lego Robot, редица роботи (от 5 до 10 от тях), равен брой компютърни работни станции, работещи с NXT 2.0, и седем стъпки от черно електрическа лента на пода.

НАПРАВО: Благодаря на J. Sluka, който написа горната връзка, д -р Брус Линел, който създаде някои ранни Lego лаборатории на ниво университет ECPI, и д -р Reza Jafari, който предостави учебни цели за PID контрол за нанасяне на идеи за EET220 и Курсова работа от Capstone.

Стъпка 1: Лабораторна подготовка преди пристигането на учениците

Лабораторна подготовка преди пристигането на учениците
Лабораторна подготовка преди пристигането на учениците

Уведомете учениците за вашата упорита работа;-)

Инструкторите и асистентите в преподаването бяха МНОГО заети да се подготвят да направите тази лаборатория! Роботът е зареден и сглобен за тази лаборатория. Ако е необходимо сглобяване, това може да отнеме до 90 минути време за един или повече роботи. Необходимо е още повече време за зареждане на батериите или за тяхното зареждане с цикли на зареждане/разреждане. За подробни инструкции как да изградите робота, който ще използваме днес, вижте образователния комплект NXT 2.0 или 2.1, Ръководството за изграждане на робота „следвайте една линия“. Ще използваме по -сложно програмиране … Черната електрическа лента върху светло оцветен линолеум прави страхотна песен. Това е 3 'x 7' с полукръгли извивки.

Стъпка 2: Запознайте се с робота

Запознайте се с робота
Запознайте се с робота

Първо ще се запознаете с менюто на робота, както и с някои от частите на този конкретен робот. Ще научите и за сензорната технология в индустриален стил, използвана от робота, включително светодиоди, светлинни сензори, стъпкови двигатели и сензори за въртене. Моля, не забравяйте да попълните цялата поискана информация (обикновено подчертани празни места _).

1. Изключете робота от зарядното устройство и/или USB порта на вашия компютър. Използвайте оранжевия бутон, за да включите робота. Оранжевият, левият и десният бутон и сивият правоъгълен бутон „назад“позволяват навигация в менюто. Придвижете се до менюто „Софтуерни файлове“и превъртете през наличните софтуерни файлове на робота. Избройте имената на всеки софтуерен файл, точно как е написан, включително главни букви и интервали:

_

Стъпка 3: Калибрирайте сензора за светлина

Калибрирайте сензора за светлина
Калибрирайте сензора за светлина

2 Проверете светлинния сензор и информацията за калибриране. Върнете се в главното меню и изберете „Преглед“. Изберете опцията „Отразена светлина“и порта (той трябва да е „Порт 3“), което кара светлината да се включи и да се покаже номер на екрана. Уверете се, че всичко работи и запишете малко информация за калибриране.

а. Максимално четене с бял лист хартия: Номер: _ Опишете приблизителното разстояние от хартията: _

б. Максимално отчитане, когато сте върху светло оцветен под от линолеум: _

° С. Минимално отчитане при насочване към центъра на черната електрическа лента: _

Стъпка 4: Тествайте калибрирането на двигателя

Тествайте калибрирането на двигателя
Тествайте калибрирането на двигателя

3 Проверете двигателите на колелата (отляво и отдясно), както и информацията за калибриране. Върнете се в главното меню и изберете „Rotation Motor“. Изберете порта (той трябва да бъде или „Port B“или „Port C“за двата двигателя). Вижте дали можете да проверите калибрирането на това отчитане, като завъртите всеки двигател с фиксиран брой завъртания, докато гледате отчитането. Ще направите един и същ тест за калибриране за двата двигателя, като използвате екрана за калибриране „Изглед“- „Степени на двигателя“.

Мотор на порт B

  • Брой пъти, когато завъртите колелото _
  • Дисплейна стойност на „въртене на двигателя“_
  • Разстоянието в градуси колелото беше завъртяно _
  • Дисплейна стойност „Степени на двигателя“_

Мотор на порт C

  • Брой пъти, когато завъртите колелото _
  • Дисплейна стойност на „въртене на двигателя“_
  • Разстоянието в градуси колелото беше завъртяно _
  • Дисплейна стойност „Степени на двигателя“_

Стойностите на дисплея съответстват ли на вашите очаквания? Моля обяснете. _

Стъпка 5: Стартирайте предоставения контролер за включване и изключване

Стартирайте предоставения контролер за включване и изключване
Стартирайте предоставения контролер за включване и изключване

Контролерът "On-Off" (понякога наричан "Bang-Bang") има само две опции, включване и изключване. Той е подобен на контрола на термостата във вашия дом. Когато е настроен на избрана температура, термостатът ще отоплява къщата, ако е твърде студено, и ще охлажда къщата, ако е твърде горещо. Избраната температура се нарича "Зададена точка" и разликата между текущата температура на дома и зададената точка се нарича „Грешка“. Така че можете да кажете, че ако грешката е положителна, включете променливотоковия ток, в противен случай включете отоплението.

В нашия случай роботът ще се завърти наляво или надясно, в зависимост от това дали зададената точка на сензора за светлина има положителна или отрицателна грешка (твърде много на белия под или твърде много на черната лента).

Ще забележите, че вашият робот може вече да е зареден с множество програми (или можете да използвате прикачения файл „01 line.rbt“, вграден тук), съхранен в него с имена като „1 ред“и „2 ред“, а също и там може да бъде допълнителна буква след номера на програмата, например „3b ред“. Ще трябва да изпълните програмата с числото „1“в името си и след това да поставите робота на касетофона, като сензорът на черната линия. Опитайте се да се държите далеч от други роботи, които вече са на пистата, за да можете да измервате времето на робота си, без да прекъсвате да се блъскате в други роботи.

4 Измерете следните изпитания във времето:

а. Време за завършване на една права страна на пистата: _

б. Опишете движението на робота по права линия: _

° С. Време за завършване на една крива на пистата: _

д. Опишете извитото движение на робот: _

д. Време е да обиколите пистата веднъж: _

Стъпка 6: Отворете софтуера за включване и изключване на контролера „01 ред“

Отвори
Отвори
Отвори
Отвори
Отвори
Отвори

Ще отворите софтуера „LEGO MINDSTORMS NXT 2.0“(а не софтуера Edu 2.1) и ще заредите съответната програма, наречена „01 line.rbt“, и ще разгледате и промените софтуера, като следвате инструкциите по -долу:

Отворете софтуера „LEGO MINDSTORMS NXT 2.0“(не софтуера Edu 2.1). Вашият инструктор ще ви каже къде се съхраняват файловете на вашия компютър и от това място ще отворите програмата „1 ред“. Просто изберете „Файл“, след това „Отваряне“и изберете програмата „1 ред“, която да отворите.

След като програмата е отворена, можете да използвате иконата „ръка“, за да преместите цялото изображение на екрана на програмата, и можете да използвате иконата „стрелка“, за да щракнете върху отделни обекти, за да видите как работят (и също да направите промени).

Стъпка 7: Разбиране на софтуера за включване / изключване на контролера „01 ред“

Разбирането на
Разбирането на

Програмата „1 ред“използва метод за управление „On-Off“. В този случай изборът е или „Завийте наляво“или „Завийте надясно“. Графиката съдържа описание на програмните елементи:

Стъпка 8: Редактиране на софтуера за включване и изключване на контролера "01 ред"

Редактиране на
Редактиране на

Променете зададената точка и сравнете резултатите.

Открихте някои реални стойности на светломера в стъпка 2 по-горе. Записали сте стойности в части b и c, числа за минималните и максималните стойности, които роботът би видял при изпълнение на пистата.

5 Изчислете ДОБРА стойност на зададената точка (средната стойност на мин. И макс.): _

6 Изберете лоша стойност на зададена пинта (число, много близко до min или max): _

Променете зададената точка на една от тези стойности, като използвате иконата със стрелка, за да кликнете върху полето за изчисляване на грешка, и променете броя, който се изважда (вижте изображението по-долу). Сега свържете робота към компютъра с помощта на USB кабел, уверете се, че роботът е включен и изтеглете новата версия на програмата „1 ред“към робота. Ще видите колко време ще отнеме на робота да обиколи пистата по посока на часовниковата стрелка, веднъж с ДОБРАТА зададена точка и веднъж с ЛОШАТА.

7 Пълни времеви изпитания с ДОБРИ и ЛОШИ зададени стойности

а. Време е да заобиколите изцяло пистата веднъж (ДОБРА зададена точка): _

б. Време е да обиколите изцяло пистата веднъж (лоша зададена точка): _

Вашите наблюдения / заключения? _

Стъпка 9: Разбиране на "02 Line" On-Off със софтуер за контролер на мъртва зона

Разбирането на
Разбирането на

Ако климатикът и отоплението в дома ви продължават да се включват и изключват по цял ден, това определено може да разруши вашата ОВК система (или поне да съкрати живота й). Повечето термостати са направени с вградена "мъртва зона". Например, ако вашата зададена точка е 70 градуса по Фаренхайт, термостатът може да не включи променливотоковия ток, докато не достигне 72 градуса, нито ще включи топлината, докато температурата не спадне до 68 градуса. Ако мъртвата зона стане твърде широка, къщата може да стане неудобна.

В нашия случай ще използваме програмата 02 line, за да добавим мъртва зона, по време на която роботът просто ще кара направо.

Сега разгледайте софтуерния файл „02 ред“, както е описано на графиката и както се съдържа в прикачения файл.

Този софтуерен файл програмира робота да следва линията, като използва On-Off контрол с диференциална пролука. Това също е известно като Deadband и означава, че роботът ще завие наляво или надясно в зависимост от грешката, но ако грешката е малка, роботът просто ще отиде направо.

Програмата „02 ред“първо изчислява горното, като изважда зададената точка от измерването на светлината и след това прави сравненията, както е отбелязано по -горе. Разгледайте програмата на компютъра и запишете стойностите, които виждате.

Каква е текущата (оригиналната) стойност на зададената точка на програмите „2 реда“? _

Каква е текущата (първоначалната) стойност на програмите „2 реда“„Голяма“Положителна грешка? _

Каква е текущата (първоначалната) стойност на програмите „2 реда“„Голяма“Отрицателна грешка? _

Какъв диапазон на грешки в Мъртвата лента ще накара робота да тръгне направо? ОТ ДО _

Изпълнете три (3) изпитания във времето с различни стойности за грешката „Голяма“по -горе. Текущите настройки на „2 реда“, както и две други настройки, които ще изчислите. Вече сте избрали ДОБРА зададена точка за вашия робот. Сега ще изберете два различни диапазона на Dead-Band и ще запишете времето, необходимо на робота, за да направи една обиколка по часовниковата стрелка:

Оригинални настройки за 02 ред _

Мъртва лента от +4 до -4 _

Мъртва лента от +12 до -12 _

Стъпка 10: Разбиране на софтуера за пропорционален контролер "Line 03"

Разбирането на
Разбирането на

С пропорционален контрол ние не просто включваме или изключваме топлината, може да имаме няколко настройки за това колко да включим пещта (като размера на пламъците върху плота на печката). В случая с робота ние нямаме само три настройки на двигателя (ляв, десен и прав). Вместо това можем да контролираме скоростта на лявото и дясното колело, за да получим голямо разнообразие от обороти. Колкото по -голяма е грешката, толкова по -бързо искаме да се върнем към линията.

Нека да разгледаме Пропорционалния контрол с програма „03 ред“

Програмата за „03 ред“е по-сложна, тъй като не само задава „Пропорционален“метод на управление, но също така съдържа целия софтуер за извършване на пропорционално-интегрални, пропорционално-диференциални и пропорционално-интегрално-диференциални (PID) контроли. Когато заредите софтуера, той вероятно ще бъде твърде голям, за да се побере на екрана наведнъж, но наистина има три части, както е показано на приложената графика.

A - математиката за изчисляване на грешката и „изчислението“за намиране на интеграла и производната на грешката във времето.

B - математиката за изчисляване на скоростта на левия двигател въз основа на настройките за PID управление на Kp, Ki и Kd

C - математиката за тестване на ограниченията на скоростта на двигателя и изпращане на правилните скорости на двигателя към левия и десния двигател.

И трите изпълняват свои собствени безкрайни цикли (след инициализация) и можете да разглеждате наоколо, като използвате иконата „ръка“, но превключете обратно към иконата „стрелка“, за да проверите съдържанието на кутията и да промените настройките.

Стъпка 11: Редактиране на програмата 03 Line (Пропорционален контрол)

Редактиране на програмата 03 Line (Пропорционален контрол)
Редактиране на програмата 03 Line (Пропорционален контрол)

В средната секция (раздел B в предишното описание) ще забележите, че в програмата „03 ред“настройките на Ki и Kd са и 0.

Нека ги оставим така. Ще променяме само стойността на Kp, пропорционалната част на контролера.

Kp решава колко плавно роботът променя скоростта, докато се отдалечава от линията. Ако Kp е твърде голям, движението ще бъде изключително резко (подобно на контролера за включване и изключване). Ако Kp е твърде малък, тогава роботът ще прави корекции твърде бавно и ще се отдалечава далеч от линията, особено по кривите. Може дори да се отклони толкова далеч, че да загуби линията напълно!

13 Каква зададена точка използва програмата „03 ред“? (извадено след четене на настройката на светлината в контур А) _

14 Каква е стойността на Kp в текущата програма „03 ред“? _

Времеви изпитания за пропорционален контролер (програма „3 реда“)

Ще използвате оригиналните настройки за програмата „03 ред“, запазена в паметта на вашия робот, за да направите изпитание във времето, а също така ще използвате две други модификации на програмата „03 линия“за общо три измервания във времето. Модификациите, които трябва да направите, включват

DRIFTY - Намиране на стойност на Kp, която кара робота да се движи много бавно и евентуално да изгуби линията от поглед (но се надяваме, че не). Опитайте различни стойности на Kp между 0,5 и 2,5 (или друга стойност), докато получите такава, където роботът се движи, но остава на линията.

JERKY - Намиране на стойност на Kp, която кара робота да се дръпне напред -назад, много подобен на типа On -Off движение. Опитайте Kp стойност някъде между 1,5 и 3,5 (или друга стойност), докато не получите такава, при която роботът просто започва да проявява движение напред и назад, но не твърде драматично. Това е известно също като „критичната“стойност на Kp.

Времеви изпитания за цялото завъртане по посока на часовниковата стрелка са необходими само с оригиналните стойности на „3 реда“и двата нови набора от стойности (DRIFTY и JERKY), които откривате, като накарате робота да следва само кратка дължина на пистата. Не забравяйте да изтегляте промените във вашия робот всеки път!

15 Запишете пропорционалните контролни стойности и времеви изпитания за програма „3 реда“(не забравяйте да изтеглите промените в робота!) За всяка от тези три стойности на Kp (първоначалната стойност на реда 03 и две стойности, които определяте чрез опит и грешка да бъде DRIFTY и JERKY).

Стъпка 12: Разширени PID контролери

Разширени PID контролери
Разширени PID контролери
Разширени PID контролери
Разширени PID контролери

Преди да започнете тази стъпка, не забравяйте да изпълните предишните стъпки, като запишете цялата поискана информация, с конкретния робот, който възнамерявате да използвате за тази лаборатория. Всеки робот е малко по -различен по отношение на механичните аспекти, моторните аспекти и особено резултатите от сензора за светлина на пистата.

Числа, които ще ви трябват от предишните експерименти

16 Максимално отчитане на сензора за светлина (от стъпка 2) _

17 Минимално отчитане на сензора за светлина (от стъпка 5) _

18 ДОБРА настройка за зададената точка (средна стойност по-горе) _

19 Настройка DRIFTY за Kp (от стъпка 15) _

20 JERKY (критична) настройка за Kp (от стъпка 15) _

Разбиране на PID контролера

Може да сте научили за Пропорционалния интегрален диференциален (PID) контролер като част от курс по Индустриален контрол, а добър бърз преглед е онлайн в Wikipedia (https://en.wikipedia.org/wiki/PID_controller).

В случая на този експеримент, измерената стойност е количеството светлина, отразено от пода. Зададената точка е желаното количество светлина, когато роботът е точно над ръба на черната лента. Грешката е разликата между текущото отчитане на светлината и зададената точка.

С пропорционалния контролер скоростта на левия двигател беше пропорционална на грешката. По -конкретно:

Грешка = Леко четене-зададена точка

В тази графика зададената точка е зададена на 50.

По -късно, за да намерим скоростта на левия двигател, умножаваме грешката по пропорционалната константа „Kp“конкретно:

L Мотор = (Kp * Грешка) + 35

Където в тази графика, Kp е зададено на 1.5, а добавянето на 35 се случва в друга част на програмата. Стойността 35 се добавя за преобразуване на число, което е някъде в диапазона от -40 до +40, за да бъде число, което е някъде между 10 и 60 (разумни скорости на двигателя).

Интегралът е един вид спомен от миналото. Ако грешката е била лоша за по-дълго време, роботът трябва да ускори към зададената точка. Ki се използва за умножаване по интеграла (интегралът е текущата сума от грешки - в този случай се намалява с 1,5 всяка итерация, така че роботът ще има „избледняваща памет“на минали грешки).

Дериватът е вид прогноза за бъдещето. Ние прогнозираме бъдеща грешка, като сравняваме последната грешка с текущата грешка и приемаме, че скоростта на промяна на грешката ще бъде донякъде линейна. Колкото по-голяма е бъдещата грешка, толкова по-бързо трябва да преминем към зададената точка. Kd се използва за умножение по производната (производната е разликата между текущата грешка и предишната грешка).

L двигател = (Kp * Грешка) + (Ki * Интеграл) + (Kd * Производна) + 35

Стъпка 13: Намиране на най -добрите PID параметри

Намиране на най -добрите PID параметри
Намиране на най -добрите PID параметри
Намиране на най -добрите PID параметри
Намиране на най -добрите PID параметри
Намиране на най -добрите PID параметри
Намиране на най -добрите PID параметри

Има няколко начина, които могат да бъдат използвани за намиране на PID параметрите, но нашата ситуация има уникални аспекти, които ни позволяват да използваме по -„ръчен“експериментален начин за намиране на параметрите. Уникалните аспекти, които имаме, са:

  • Експериментаторите (вие) разбират добре начина на работа на машината
  • Няма опасност от нараняване, ако контролерът полудее, както и няма опасност от повреда на робота поради лоши настройки на контролера
  • Светлинният сензор е толкова небрежно сензорно устройство и има само един сензор за светлина, така че можем само да се надяваме да получим незначително добър краен резултат. Следователно „най -доброто усилие“е добре за нашите експерименти

Първо, вече използвахме „03 ред“, за да вземем решение за най-доброто Kp (ДОБРАТА зададена точка и стойностите на JERKY Kp, стъпки 18 и 20 по-горе). Вижте първата графика за инструкции как открихме стойността JERKY за Kp.

Използвайте софтуера „04 ред“, за да определите Ki. Първо ще променим „4 ред“, за да имаме стойностите, които записахме в точки 18 и 20 по -горе. След това бавно ще увеличаваме Ki, докато не получим стойност, която наистина много бързо ни премества до зададената точка. Вижте втората графика за инструкции как да изберете стойността за Ki.

21 FASTEST Стойност на Ki, която се установява най-бързо на зададената точка (дори при известно превишаване) _

Използвайте софтуера „линия 05“, за да определите Kd. Първо променете „5 ред“със стойности от стъпки 18, 20 и 21, след това увеличете Kd, докато получите окончателния работещ робот, който достига зададената точка бързо и с много малко превишаване, ако има такова. Третата графика показва инструкции как да изберете Kd.

22 ОПТИМАЛНА стойност на Kd _

23 КОЛКО ДОЛОВНО ТВОЙ РОБОТ ТРЕБЕ ДА СЕГА ОБЪРНЕТЕ ПЪТЯТА ??? _

Стъпка 14: Заключение

Лабораторният експеримент мина много добре. С около 20 студенти, използващи 10 (десет) работни станции + роботи, показани в първата графика, никога не е имало закъснение в ресурсите. Най -много трима робота кръжаха по пистата едновременно за изпитанията във времето.

Препоръчвам разбиването на частта за PID контрол (най -малко, програми "04 ред" и "05 ред") на отделен ден, поради включените концепции.

Ето поредица от видеоклипове, показващи напредъка на контролите (от "01 ред" до "05 ред"), използващи избраните от мен стойности - но всеки ученик излезе с малко по -различни стойности, което може да се очаква!

ЗАПОМНЕТЕ: Една от основните причини много добре подготвените екипи от роботи да се представят лошо на състезателни събития е фактът, че не извършват калибриране на точното място, където ще се проведе събитието. Осветлението и леките промени в позицията на сензорите поради тласък могат да повлияят значително на стойностите на параметрите!

  • 01 ред (On -Off) PID контрол с Lego Robots -
  • 02 ред (On-Off с Dead-Zone) PID контрол с Lego Robots-https://videos.ecpi.net/Watch/n4A5Lor7
  • 03 ред (пропорционален) PID контрол с Lego Robots -
  • 04 ред (пропорционално -интегрален) PID контрол с Lego Robots -
  • 05 ред (пропорционално-интегрално-производно) PID контрол с Lego роботи-https://videos.ecpi.net/Watch/s6LRi5r7

Препоръчано: