Съдържание:
- Стъпка 1: Въведение
- Стъпка 2: Система за управление, базирана на PID
- Стъпка 3: Самобалансиращ се робот
- Стъпка 4: Дизайн на робот
- Стъпка 5: Компоненти на проекта
- Стъпка 6: Структура на робота
- Стъпка 7: Код
- Стъпка 8: Заключение
- Стъпка 9: Специални благодарности
Видео: Самобалансиращ се робот, използващ PID алгоритъм (STM MC): 9 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
Напоследък беше извършена много работа по самобалансирането на обекти. Концепцията за самобалансиране започва с балансирането на обърнато махало. Тази концепция се разпростира и върху проектирането на самолети. В този проект ние проектирахме малък модел на самобалансиращ се робот, използвайки PID (пропорционален, интегрален, производен) алгоритъм. Оттогава този метод е новото лице на системите за управление на индустриалните процеси. Този доклад разглежда методите, използвани при самобалансиране на обекти. Този проект се проведе като семестрален проект, за да се разбере връзката на PID с ефективността на различните индустриални процеси. Тук ние се фокусираме само върху кратък преглед на ефективността и прилагането на PID контрола. Този документ е разработен, като предоставя кратко въведение в системите за управление и свързаната терминология, в допълнение към мотивите за проекта. Бяха предприети експерименти и наблюдения, описани достойнства и недостатъци, завършващи с бъдещи подобрения. Разработен е модел на самобалансиращ се робот, за да се разбере ефективността на PID в света на системата за управление. Преминавайки през някои строги тестове и експерименти, бяха открити достойнствата и недостатъците на системата за управление на PID. Установено е, че въпреки многото предимства на PID контрола пред предишни методи, все пак тази система изисква много подобрения. Надяваме се, че читателят ще разбере добре значението на самобалансирането, ефективността и недостатъците на PID контрола
Стъпка 1: Въведение
С навлизането на компютрите и индустриализацията на процесите през цялата човешка история винаги е имало изследвания за разработване на начини за прецизиране на процесите и по -важното за тяхното автоматично управление с машини. Целта е да се намали участието на човека в тези процеси, като по този начин се намали грешката в тези процеси. Поради това е разработено полето „Инженеринг на системи за управление“. Инженерингът на системата за управление може да се определи като използване на различни методи за контрол на работата на процес или поддържане на постоянна и предпочитана среда, било то ръчна или автоматична.
Прост пример може да бъде контролирането на температурата в помещението. Ръчно управление означава присъствие на лице, което проверява настоящите условия (сензор), сравнява го с желаната стойност (обработка) и предприема подходящи действия, за да получи желаната стойност (задвижващ механизъм). Проблемът с този метод е, че той не е много надежден, тъй като човек е склонен към грешки или небрежност в работата си. Друг проблем е, че скоростта на процеса, иницииран от задвижващия механизъм, не винаги е еднакъв, което означава, че понякога може да се случи по -бързо от необходимото или понякога може да е бавно. Решението на този проблем беше да се използва микроконтролер за управление на системата. Микроконтролерът е
програмиран да контролира процеса, съгласно дадените спецификации, свързан във верига (което ще бъде обсъдено по -късно), захранва желаната стойност или условия и по този начин контролира процеса, за да поддържа желаната стойност. Предимството на този процес е, че не се изисква човешка намеса в този процес. Също така, скоростта на процеса е еднаква
Основна система за управление
Предишната диаграма показва много опростена версия на система за управление. Микроконтролерът е в основата на всяка система за управление. Това е много важен компонент, поради което изборът му трябва да се прави внимателно въз основа на изискванията на Системата. Микроконтролерът получава вход от потребителя. Този вход определя желаното състояние на системата. Микроконтролерът също получава вход за обратна връзка от сензора. Този сензор е свързан към изхода на Системата, чиято информация се връща обратно към входа. Микропроцесорът, въз основа на неговото програмиране, извършва различни изчисления и дава изход на задвижването. Задвижващият механизъм, въз основа на мощността, контролира инсталацията, за да се опита да поддържа тези условия. Пример може да бъде шофьор на мотор, който управлява двигател, където шофьорът на двигателя е задвижващият механизъм, а двигателят е завода. По този начин двигателят се върти с дадена скорост. Свързаният сензор отчита състоянието на инсталацията в момента и го връща обратно към микроконтролера. Микроконтролерът отново сравнява, прави изчисления и по този начин цикълът се повтаря. Този процес се повтаря и е безкраен, при което микроконтролерът поддържа желаните условия
Стъпка 2: Система за управление, базирана на PID
PID алгоритъмът е ефективен метод за проектиране на система за управление.
Определение
PID означава пропорционално, интегрално и производно. В този алгоритъм полученият сигнал за грешка е вход. Следното уравнение се прилага към сигнала за грешка
U (t) = Kp ∗ e (t) + Kd ∗ d/dt (e (t)) + Ki ∗ интеграл (e (t)) (1.1)
Кратко обяснение
Както може да се види в горното уравнение, интегралът и производната на сигналите за грешка се изчисляват, умножават със съответните им константи и се добавят заедно с константата Kp, умножена с e (t). След това изходът се подава към задвижването, което кара системата да работи. Сега нека разгледаме всяка част от функцията на свой ред. Тази функция директно отразява времето на нарастване, време на падане, връх над издънката, време на утаяване и грешка в стационарно състояние.
• Пропорционална част: Пропорционалната част намалява времето за нарастване и намалява грешката при стационарно състояние. Това означава, че системата ще отнеме по -малко време, за да достигне пиковата си стойност и когато достигне стационарно състояние, грешката в стационарно състояние ще бъде ниска. Това обаче увеличава превишаването на пика.
• Производна част: Деривативната част намалява превишаването и времето за утаяване. Това означава, че преходното състояние на системата ще бъде по -амортизирано. Също така системата ще достигне стационарно състояние за по -малко време. Той обаче няма ефект върху времето на нарастване или грешката в стационарно състояние.
• Интегрална част: Интегралната част намалява времето за нарастване и напълно елиминира грешката в стационарно състояние. Това обаче увеличава превишаването на пика и времето за утаяване.
• Настройка: Добрата система за управление ще има ниско време на нарастване, време на утаяване, превишаване на пиковите стойности и грешка в стационарно състояние. Следователно, Kp, Kd, Ki трябва да бъдат окончателно настроени, за да се коригира приносът на горните фактори, за да се придобие добра система за контрол.
Фигура е приложена, показваща ефекта от промяната на различни параметри в PID алгоритъма.
Стъпка 3: Самобалансиращ се робот
Самобалансиращ се робот е многопластов робот с две колела.
Роботът ще се опита да се балансира при прилагане на всякакви неравни сили. Той ще се балансира чрез прилагане на сила, противопоставяща се на резултата от силите на робота.
Методи за самобалансиране
Има четири метода за самобалансиране на роботи. Те са както следва:
Самобалансиране с помощта на два IR сензора за накланяне
Това е един от най -грубите начини за балансиране на робота, тъй като изисква много по -малко хардуер и сравнително лесен алгоритъм. При този подход два наклонени IR сензора се използват за измерване на разстоянието между земята и робота. Въз основа на изчисленото разстояние, PID може да се използва за задвижване на двигателите, за да балансира робота съответно. Един недостатък на този метод е, че IR сензорът може да пропусне някои показания. Друг проблем е, че прекъсването и циклите са необходими за изчисляването на разстоянието, което увеличава времевата сложност на алгоритъма. Следователно този метод за балансиране на робота не е много ефективен.
Самобалансиране с помощта на акселерометър
Акселерометърът ни дава ускорението на тялото по 3 оси. Ускорението, ориентирано по оста y (нагоре) и оста x (напред), ни дава мярката за изчисляване на посоката на тежестта и следователно изчисляване на ъгъла на наклона. Ъгълът се изчислява, както следва:
θ = арктан (Ay/Ax) (1.2)
Недостатъкът на използването на този метод е, че по време на движението на робота хоризонталното ускорение също ще бъде добавено към показанията, което е високочестотен шум. Следователно ъгълът на наклон ще бъде неточен.
Самобалансиране с помощта на жироскоп
За изчисляване на англуарните скорости по трите оси се използва жироскоп. Ъгълът на наклон се получава с помощта на следното уравнение.
θp (i) = θp (i − 1) + 1/6 (vali − 3 + 2vali − 2 + 2vali − 1 + vali) (1.3)
Един голям недостатък на използването на жироскопа е, че той има малък DC Bias, който е нискочестотен шум и след няколко време върнатите стойности са напълно погрешни. Това след интегриране ще доведе до отклоняване на нулевата точка. В резултат на това роботът ще остане във вертикално положение за известно време и ще падне, след като настъпи отклонението.
Самобалансиране с помощта на акселерометър и жироскоп
Както бе обсъдено по -горе, използването само на акселерометър или жироскоп няма да ни даде правилния ъгъл на наклон. За да се отчете това, се използват акселерометър и жироскоп. И двете са вградени в MPU6050. В това ние получаваме данните и от двамата и след това ги обединяваме, като използваме филтър на Калман или допълнителен филтър.
• Филтър на Калман: Филтърът на Калман изчислява най -добрата оценка на състоянието на динамична система от шумни измервания, свеждайки до минимум средната квадратна грешка на оценката. Той работи на два етапа, предсказване и корекция, предвид дискретните стохастични уравнения, описващи динамиката на системата. Въпреки това, това е много сложен алгоритъм за прилагане, особено на ограничен хардуер на микроконтролер.
• Допълнителен филтър: Този алгоритъм използва предимно данните, получени от жироскопа, и ги интегрира във времето, за да получи ъгъла на наклона. Той също така използва малка част от показанията на акселерометъра. Допълнителният филтър всъщност свежда до минимум високочестотния шум на акселерометъра и нискочестотния шум на жироскопа и след това ги обединява, за да даде най -добрия точен ъгъл на наклон.
Стъпка 4: Дизайн на робот
Ние сме проектирали самобалансиращ се робот, използвайки Пропорционален производен контролер, реализиран от Допълнителен филтър за MPU6050. Този малък модел на Self Balancing Robot ще ни илюстрира полезността на системите за управление при Self Balancing на роботи.
Внедряване на системата:
Системата е самобалансиращ се робот. Той се реализира с помощта на PID контролер, който е пропорционален интегрален производен контролер. Ние балансираме робота, като задвижваме колелата му по посока на падането му. По този начин се опитваме да запазим центъра на тежестта на робота над точката на завъртане. За да задвижваме колелата по посока на падането му, трябва да знаем къде пада роботът и скоростта, с която пада. Тези данни се получават с помощта на MPU6050, който има акселерометър и жироскоп. MPU6050 измерва ъгъла на наклона и дава своя изход на микроконтролера. MPU6050 е свързан с STM Board чрез I2C. В I2C един проводник е за часовника, който е кръстен като SCL. Другият е за трансфер на данни, който е SDA. При това се използва комуникация главен подчинен. Началният и крайният адрес са определени, за да се знае откъде започват данните и къде свършват. Тук сме внедрили Допълнителния филтър за MPU6050, който е математически филтър за обединяване на изходите на акселерометър и жироскоп. След получаване на данните от MPU6050, микроконтролерът ще извърши изчисления, за да знае къде пада. Въз основа на изчисленията, STM микроконтролерът ще даде команди на водача на двигателя да управлява превозните средства в посока на падане, което ще балансира робота.
Стъпка 5: Компоненти на проекта
Следните компоненти бяха използвани в проекта за самобалансиращ се робот:
STM32F407
Микроконтролер, проектиран от ST Microelectronics. Работи върху архитектурата ARM Cortex-M.
Шофьор на мотор L298N
Тази интегрална схема се използва за работа на двигателя. Той получава два външни входа. Един от микроконтролера, който му подава ШИМ сигнал. Чрез регулиране на ширината на импулса може да се регулира скоростта на двигателя. Вторият му вход е източникът на напрежение, необходим за задвижване на двигателя, който е 12V батерия в нашия случай.
DC мотор
Електрическият мотор работи с постоянен ток. В този експеримент DC двигателят работи с помощта на оптроните, свързани към драйвера на двигателя. За задвижване на двигателя използвахме моторното задвижване L298N.
MPU6050
MPU6050 се използва за получаване на информация къде пада роботът. Той измерва ъгъла на наклона по отношение на нулевата точка на наклон, която е позицията на MPU6050, когато програмата започне да работи.
MPU6050 има 3-осен акселерометър и 3-осен жироскоп. Акселерометърът измерва ускорението по трите оси, а жироскопът измерва ъгловата скорост около трите оси. За да комбинираме изхода, трябва да филтрираме шумовете и на двете. За да филтрираме шумовете, имаме Калман и Допълнителен филтър. Ние внедрихме Допълнителен филтър в нашия проект.
Opto двойка 4N35
Оптрон е устройство, използвано за изолиране на частта с ниско напрежение и частта с високо напрежение на веригата. Както подсказва името, той работи на базата на светлина. Когато нисковолтовата част получи сигнал, във високоволтовата част тече ток
Стъпка 6: Структура на робота
Структурата на робота е обяснена, както следва:
Физическа структура
Самобалансиращият се робот се състои от два слоя, съставени от прозрачно пластмасово стъкло. Подробностите за два слоя са дадени по -долу:
Първи слой
В долната част на първия слой сме поставили клетка за захранване на STM платка. Също така два двигателя с по 4 волта са поставени от всяка страна с свързани гуми за движение на робота. В горната част на първия слой са поставени две батерии от 4 волта всяка (общо 8 волта) и IC драйвер IC (L298N) за работа на двигатели.
Втори слой
В горния слой на робота сме поставили STM Board върху Perf Board. Друга перф дъска от 4 опто съединителя се поставя върху горния слой. Жироскопът също се поставя върху горния слой на робота от долната страна. И двата компонента са поставени в средната част, така че центърът на тежестта да е възможно най -нисък.
Център на тежестта на робота
Центърът на тежестта се поддържа възможно най -нисък. За тази цел сме поставили тежки батерии на долния слой и леки компоненти като STM платка и оптрони на горния слой.
Стъпка 7: Код
Кодът е компилиран на Atollic TrueStudio. STM studio беше използвано за отстраняване на грешки.
Стъпка 8: Заключение
След много експерименти и наблюдения най -накрая стигаме до точката, в която обобщаваме резултатите си и обсъждаме докъде сме успели да внедрим и разработим ефективността на системата.
Общ преглед
По време на експеримента скоростта на двигателя беше успешно контролирана с помощта на PID алгоритъма. Кривата обаче не е точно гладка права линия. Има много причини за това:
• Въпреки че сензорът е свързан към нискочестотен филтър, все още осигурява определени неограничени изключвания; това се дължи на нелинейните съпротивления и някои неизбежни причини за аналоговата електроника.
• Двигателят не се върти плавно при малко напрежение или ШИМ. Той осигурява шутове, които могат да причинят някои грешни стойности, подадени към системата.
• Поради трептене сензорът може да пропусне някои прорези, осигуряващи по -високи стойности. • Друга основна причина за грешки може да бъде тактовата честота на ядрото на микроконтролера STM. Този модел микроконтролер STM осигурява ядро на тактова честота от 168MHz. Въпреки че в този проект беше разгледан този проблем, има обща представа за този модел, че той не осигурява точно толкова висока честота.
Скоростта на отворен цикъл осигурява много гладка линия само с няколко неочаквани стойности. PID алгоритъмът също работи добре, като осигурява много ниско време на утаяване на двигателя. PID алгоритъмът на двигателя е тестван при различни напрежения, като поддържа референтната скорост постоянна. Промяната на напрежението не променя скоростта на двигателя, което показва, че PID алгоритъмът работи добре
Ефективност
Тук обсъждаме ефективността на PID контролера, която наблюдавахме по време на експеримента.
Просто изпълнение
Видяхме в секцията за експерименти и наблюдения, че PID контролерът е много лесен за внедряване. Това изисква само три параметъра или константи, които трябва да бъдат зададени, за да има система за контрол на скоростта
Ненадмината ефективност за линейни системи
Линейният PID контролер е най -ефективният в семейството на контролерите, тъй като логиката е много проста и приложението е широко разпространено в случай на линейни или сравнително линейни приложения.
Ограничения
Обяснихме абстрактно за ограниченията на тази система. Тук обсъждаме някои от тях, които наблюдавахме.
Избор на константи
Видяхме, че макар PID контролерът да е лесен за внедряване, все пак това е основен недостатък на системата, че стъпката за избор на стойността на константи е трудоемка; тъй като човек трябва да прави трудни изчисления. Другият начин е методът на пробиване, но и той не е ефективен.
Константите не винаги са постоянни
Експерименталните резултати показаха, че за различни стойности на референтната скорост на двигателя, PID контролерът не е функционирал за същите стойности на PID константи. За различни скорости константните трябваше да се избират различно и това увеличава изчислителните разходи експоненциално.
Нелинейно
PID контролерът, използван в нашия случай, е линеен, поради което може да се прилага само за линейни системи. За нелинейни системи контролерът трябва да се прилага по различен начин. Въпреки че са налични различни нелинейни методи за PID, те изискват избиране на повече параметри. Това отново прави системата нежелана поради високите изчислителни разходи.
Изисква се първоначално натискане
Ние показахме в секцията за експерименти, че за сравнително малка референтна скорост, където грешката е доста малка в началото, ШИМ, доставена от PID, е толкова малка, че не генерира необходимия стартов въртящ момент за двигателя. Така че моторът в някои опити не работи или в други опити осигурява голямо превишаване и по -дълго време за утаяване.
Стъпка 9: Специални благодарности
Специални благодарности на членовете на моята група, които ми помогнаха в този проект.
Скоро ще кача връзката към видеото.
Надявам се тази инструкция да ви е интересна.
Това е Tahir Ul Haq от UET, който се отписва. Наздраве !!!
Препоръчано:
Самобалансиращ се робот - ПИД контрол алгоритъм: 3 стъпки
Self Balancing Robot - PID Control Algorithm: Този проект е замислен, защото имах интерес да науча повече за контролните алгоритми и как ефективно да прилагам функционални PID контури. Проектът все още е във фаза на разработка, тъй като тепърва ще бъде добавен Bluetooth модул, който ще
Самобалансиращ се робот от Magicbit: 6 стъпки
Самобалансиращ се робот от Magicbit: Този урок показва как да си направите самобалансиращ се робот с помощта на Magicbit dev board. Ние използваме magicbit като борда за разработка в този проект, който е базиран на ESP32. Следователно всяка платка за разработка на ESP32 може да се използва в този проект
Кордилен алгоритъм, използващ VHDL: 4 стъпки
Cordic Algorithm Използване на VHDL: ## Това е най -често кликваната, популярна връзка в Google за VHDL внедряване на CORDIC ALGORITHM за генериране на синус и косинус вълна ## В момента съществуват много хардуерно ефективни алгоритми, но те не са добре известни поради доминиране на меката война
Създаване на дистанционно управляван самобалансиращ се робот Arduino: B-робот EVO: 8 стъпки
Създаване на дистанционно управляван самобалансиращ се робот Arduino: B-робот EVO: ------------------------------------ -------------- АКТУАЛИЗАЦИЯ: тук има нова и подобрена версия на този робот: B-роботът EVO, с нови функции! ------------ -------------------------------------- Как работи? B-ROBOT EVO е дистанционно контрол
Контрол на скоростта на DC двигател с помощта на PID алгоритъм (STM32F4): 8 стъпки (със снимки)
Контрол на скоростта на DC двигател с помощта на PID алгоритъм (STM32F4): здравей на всички, Това е tahir ul haq с друг проект. Този път това е STM32F407 като MC. Това е проектът в края на семестъра. Надявам се да ви хареса. Изисква много концепции и теория, така че първо ще се заемем с него. С появата на компютрите и