Мазмұны:

PID алгоритмін қолданатын өзін -өзі теңестіретін робот (STM MC): 9 қадам
PID алгоритмін қолданатын өзін -өзі теңестіретін робот (STM MC): 9 қадам

Бейне: PID алгоритмін қолданатын өзін -өзі теңестіретін робот (STM MC): 9 қадам

Бейне: PID алгоритмін қолданатын өзін -өзі теңестіретін робот (STM MC): 9 қадам
Бейне: Arduino AC Dimmer көмегімен айнымалы ток шамын басқарыңыз 2024, Шілде
Anonim
PID алгоритмін қолданатын өзін -өзі теңестіретін робот (STM MC)
PID алгоритмін қолданатын өзін -өзі теңестіретін робот (STM MC)

Жақында объектілерді өзін -өзі теңестіру бойынша көп жұмыс жасалды. Өзін -өзі теңестіру тұжырымдамасы инверттелген маятникті теңестіруден басталды. Бұл тұжырымдама әуе кемелерінің дизайнына да қатысты. Бұл жобада біз PID (пропорционалды, интегралды, туынды) алгоритмін қолдана отырып, өзін -өзі теңестіретін роботтың шағын моделін жасадық. Содан бері бұл әдіс өндірістік процестерді басқару жүйелерінің жаңа беті болып табылады. Бұл есепте объектілерді теңестіру әдістері қарастырылады. Бұл жоба әр түрлі өндірістік процестердің тиімділігіне PID корреляциясын түсіну үшін семестрлік жоба ретінде жүргізілді. Мұнда біз тек PID бақылауының тиімділігі мен қолданылуы туралы қысқаша шолуды ұсынуға ғана назар аударамыз. Бұл құжат жобаның мотивациясынан басқа басқару жүйелері мен олармен байланысты терминологияларға қысқаша кіріспе ұсыну арқылы әзірленген. Тәжірибелер мен бақылаулар алынды, жетістіктері мен кемшіліктері болашақтағы жақсартулармен аяқталды. Әлемдегі басқару жүйесіндегі PID әсерін түсіну үшін өзін -өзі теңестіретін робот моделі жасалды. Кейбір қатаң сынақтар мен эксперименттерден өтіп, PID басқару жүйесінің артықшылықтары мен кемшіліктері ашылды. Өткен әдістермен салыстырғанда PID бақылауының көптеген артықшылықтарына қарамастан, бұл жүйе көптеген жетілдірулерді қажет ететіні анықталды. Оқырман өзін -өзі теңестірудің маңыздылығын, PID бақылауының тиімділігі мен тиімділігін жақсы түсінеді деп үміттенеміз.

1 -қадам: Кіріспе

Компьютерлердің пайда болуымен және процестердің индустриялануымен адамзат тарихында процестерді жаңарту жолдарын әзірлеу және одан да маңыздысы оларды автоматты түрде машиналар көмегімен басқару бойынша зерттеулер жүргізілді. Мақсаты - бұл процестерге адамның қатысуын азайту, осылайша бұл процестердегі қателікті азайту. Осылайша, «Басқару жүйесінің инженериясы» саласы дамыды. Басқару жүйелерінің инженериясын қолмен немесе автоматты түрде тұрақты немесе қолайлы ортаның сақталуын бақылау үшін әр түрлі әдістерді қолдануға болады деп анықтауға болады.

Қарапайым мысал бөлмедегі температураны бақылау болуы мүмкін. Қолмен басқару - бұл қазіргі жағдайды (сенсорды) тексеретін, оны қажетті мәнмен (өңдеумен) салыстыратын және қажетті мәнді алу үшін тиісті әрекетті жүргізетін адамның болуын білдіреді. Бұл әдістің мәселесі - бұл өте сенімді емес, өйткені адам өз жұмысында қателікке немесе немқұрайлылыққа бейім. Сонымен қатар, тағы бір мәселе - жетегімен басталатын процестің жылдамдығы әрқашан біркелкі емес, яғни кейде ол талап етілгеннен тезірек, кейде баяу болуы мүмкін. Бұл мәселенің шешімі жүйені басқару үшін микроконтроллерді қолдану болды. Микроконтроллер-бұл

берілген спецификацияға сәйкес процесті басқаруға бағдарламаланған, тізбекке қосылған (кейінірек талқыланатын болады), қажетті мәнді немесе шарттарды береді және осылайша қажетті мәнді ұстап тұру үшін процесті басқарады. Бұл процестің артықшылығы - бұл процеске адамның араласуы қажет емес. Сонымен қатар, процестің жылдамдығы біркелкі

Негізгі басқару жүйесі

Алдыңғы диаграммада Басқару жүйесінің өте қарапайым нұсқасы көрсетілген. Микроконтроллер кез келген басқару жүйесінің жүрегі болып табылады. Бұл өте маңызды компонент, сондықтан таңдауды жүйенің талаптарына сәйкес мұқият таңдау керек. Микроконтроллер пайдаланушыдан кіріс алады. Бұл енгізу жүйенің қажетті жағдайын анықтайды. Микроконтроллер сенсордан кері байланыс алады. Бұл сенсор жүйенің шығысына қосылған, оның ақпараты кіріске қайтарылады. Микропроцессор өзінің бағдарламалауына сүйене отырып, әр түрлі есептеулер жүргізеді және атқарушыға шығыс береді. Жетекші шығысқа негізделген, бұл шарттарды сақтауға тырысу үшін зауытты басқарады. Мысал ретінде мотор жүргізушісі қозғаушы, ал мотор зауыт болып табылатын моторды жүргізуші болуы мүмкін. Қозғалтқыш осылайша белгілі бір жылдамдықпен айналады. Қосылған сенсор зауыттың қазіргі жағдайын оқиды және оны микроконтроллерге береді. Микроконтроллер қайтадан салыстырады, есептейді және осылайша цикл қайталанады. Бұл процесс қайталанатын және шексіз, осылайша микроконтроллер қажетті шарттарды сақтайды

2 -қадам: PID негізіндегі басқару жүйесі

PID негізіндегі басқару жүйесі
PID негізіндегі басқару жүйесі
PID негізіндегі басқару жүйесі
PID негізіндегі басқару жүйесі

PID алгоритмі - басқару жүйесін құрудың тиімді әдісі.

Анықтау

PID пропорционалды, интегралды және туынды дегенді білдіреді. Бұл алгоритмде қабылданған қате сигналы кіріс болып табылады. Ал қате сигналына келесі теңдеу қолданылады

U (t) = Kp ∗ e (t) + Kd ∗ d/dt (e (t)) + Ki ∗ интеграл (e (t)) (1.1)

Қысқаша түсініктеме

Жоғарыда келтірілген теңдеуден көрініп тұрғандай, қате сигналдарының интегралы мен туындысы есептеледі, олардың сәйкес тұрақтыларына көбейтіледі және e (t) көбейтілген Kp тұрақтысымен бірге қосылады. Содан кейін шығыс жүйені іске қосатын атқарушыға беріледі. Енді функцияның әрбір бөлігін кезекпен қарастырайық. Бұл функция көтерілу уақытын, түсу уақытын, атудың ең жоғары деңгейін, орнықтау уақытын және тұрақты күй қатесін тікелей әсер етеді.

• Пропорционалды бөлік: Пропорционалды бөлік көтерілу уақытын қысқартады және тұрақты күй қатесін азайтады. Бұл жүйенің максималды мәніне жету үшін аз уақыт қажет екенін және тұрақты күйге жеткенде тұрақты күй қатесі төмен болатынын білдіреді. Дегенмен, бұл асып түсудің шыңын арттырады.

• Туынды бөлім: Туынды бөлік асып кетуді және тұндыру уақытын қысқартады. Бұл жүйенің өтпелі күйі көбірек сөнетінін білдіреді. Сонымен қатар, жүйе аз уақыт ішінде өзінің тұрақты күйіне жетеді. Алайда, оның көтерілу уақытына әсері немесе тұрақты күй қатесі жоқ.

• Интегралды бөлік: Интегралды бөлік көтерілу уақытын қысқартады және тұрақты күй қатесін толығымен жояды. Дегенмен, бұл асып кетудің шыңы мен шөгу уақытын арттырады.

• Реттеу: Жақсы басқару жүйесінде көтерілу уақыты төмен болады, шөгу уақыты, шектен асып кету және тұрақты күй қатесі болады. Сондықтан Kp, Kd, Ki жақсы басқару жүйесін алу үшін жоғарыда аталған факторлардың үлесін реттеу үшін мұқият реттелуі керек.

PID алгоритмінде әр түрлі параметрлерді өзгерту әсерін көрсететін сурет қоса берілген.

3 -қадам: Өзін -өзі теңестіретін робот

Өзін -өзі теңестіретін робот
Өзін -өзі теңестіретін робот

Өзін-өзі теңестіретін робот-бұл көп қабатты, екі дөңгелекті робот.

Робот кез келген тең емес күштерді қолдануда тепе -теңдік сақтауға тырысады. Ол роботқа әсер ететін күшке қарсы күш қолдану арқылы өзін -өзі теңестіреді.

Өзін -өзі теңестіру әдістері

Роботтарды теңестірудің төрт әдісі бар. Бұлар төмендегідей:

Екі IR IR сенсоры көмегімен өзін -өзі теңестіру

Бұл роботты теңестірудің ең қатал әдісі, себебі ол өте аз жабдықты және салыстырмалы түрде қарапайым алгоритмді қажет етеді. Бұл тәсілде жер мен робот арасындағы қашықтықты өлшеу үшін екі еңкіш ИҚ сенсоры қолданылады. Есептелген қашықтыққа сүйене отырып, PID моторды роботты сәйкесінше теңестіру үшін жүргізуге болады. Бұл әдістің бір кемшілігі - ИҚ сенсоры кейбір көрсеткіштерді өткізіп жіберуі мүмкін. Тағы бір мәселе - алгоритмнің уақыт күрделілігін арттыратын қашықтықты есептеу үшін үзіліс пен цикл қажет. Демек, роботты теңестірудің бұл әдісі тиімді емес.

Акселерометр көмегімен өзін -өзі теңестіру

Акселерометр дененің 3 осьте үдеуін береді. У осіне (жоғары) және х осіне (алға) бағытталған үдеу бізге ауырлық күшінің бағытын есептеуге мүмкіндік береді, осылайша көлбеу бұрышты есептейді. Бұрыш келесі түрде есептеледі:

θ = арктандық (Ай/Балта) (1.2)

Бұл әдісті қолданудың кемшілігі - роботтың қозғалысы кезінде көлденең үдеу де жоғары жиілікті шу болып табылатын көрсеткіштерге қосылады. Демек, көлбеу бұрышы дәл болмайды.

Гироскоп көмегімен өзін -өзі теңдестіру

Гироскоп үш ось бойындағы бұрыштық жылдамдықтарды есептеу үшін қолданылады. Көлбеу бұрышы келесі теңдеудің көмегімен алынады.

θp (i) = θp (i − 1) + 1/6 (vali − 3 + 2 vali − 2 + 2 vali − 1 + vali) (1.3)

Гироскопты қолданудың бір үлкен кемшілігі - бұл кіші тұрақты токтың ауытқуы, ол төмен жиілікті шу болып табылады және бірнеше уақыттан кейін қайтарылған мәндер мүлдем қате болады. Бұл интеграциядан кейін нөлдік нүктенің алыстауына әкеледі. Нәтижесінде робот біраз уақыт тік күйінде қалады және дрейф келгенде құлап кетеді.

Акселерометр мен гироскоптың көмегімен өзін -өзі теңестіру

Жоғарыда айтылғандай, тек акселерометрді немесе гироскопты қолдану бізге көлбеу бұрышын дұрыс бермейді. Бұл үшін акселерометр мен гироскоп қолданылады. Бұл екеуі де MPU6050 ендірілген. Бұл жағдайда біз екеуінен де деректерді аламыз, содан кейін оларды Калман сүзгісі немесе қосымша сүзгі арқылы біріктіреміз.

• Калман сүзгісі: Калман фильтрі шулы өлшеулерден динамикалық жүйенің күйінің ең жақсы бағасын есептейді, бұл бағалаудың орташа квадраттық қателігін азайтады. Ол жүйенің динамикасын сипаттайтын дискретті стохастикалық теңдеулерді ескере отырып, болжау мен түзетудің екі кезеңінде жұмыс істейді. Алайда, бұл әсіресе микроконтроллердің шектеулі аппараттық құралдарына енгізу үшін өте күрделі алгоритм.

• Қосымша сүзгі: Бұл алгоритм ең алдымен гироскоптан алынған деректерді пайдаланады және көлбеу бұрышын алу үшін оны уақыт бойынша біріктіреді. Ол сондай -ақ акселерометр көрсеткіштерінің аз мөлшерін пайдаланады. Қосымша сүзгі шын мәнінде акселерометрдің жоғары жиілікті шуын және гироскоптың төменгі жиілікті шуын азайтады, содан кейін оларды ең жақсы көлбеу бұрышты беру үшін сақтандырады.

4 -қадам: роботтың дизайны

Робот дизайны
Робот дизайны

Біз MPU6050 үшін Complementary Filter арқылы іске асырылатын пропорционалды туынды контроллерді қолдана отырып, өзін -өзі теңестіретін робот жасадық. Бұл өзін -өзі теңдестіру роботының шағын моделі роботтардың өзін -өзі теңдестірудегі басқару жүйелерінің пайдалылығын көрсетеді.

Жүйені енгізу:

Бұл жүйе өзін -өзі теңестіретін робот. Ол пропорционалды интегралды туынды контроллер болып табылатын PID контроллері арқылы жүзеге асады. Біз роботтың дөңгелектерін құлау бағытында жүргізу арқылы тепе -теңдікті сақтаймыз. Бұл ретте біз роботтың ауырлық центрін айналу нүктесінен жоғары ұстауға тырысамыз. Дөңгелектердің құлау бағытында қозғалу үшін біз роботтың қай жерде құлап жатқанын және оның жылдамдығын білуге тиіспіз. Бұл деректер акселерометр мен гироскопы бар MPU6050 көмегімен алынады. MPU6050 көлбеу бұрышты өлшейді және оның шығысын микроконтроллерге береді. MPU6050 ST2 тақтасымен I2C арқылы байланысады. I2C -де бір сым SCL деп аталатын сағатқа арналған. Екіншісі - SDA деректерді беруге арналған. Бұл жағдайда негізгі құлдық байланыс қолданылады. Деректердің қайдан басталатынын және қай жерде аяқталатынын білу үшін бастапқы мекен -жай мен соңғы мекен -жай анықталады. Біз мұнда акселерометр мен гироскоптың шығуын біріктіруге арналған математикалық фильтр болып табылатын MPU6050 үшін қосымша сүзгіні енгіздік. MPU6050 деректерін алғаннан кейін микроконтроллер қай жерге құлап жатқанын білу үшін есептеулер жүргізеді. Есептеулер негізінде STM микроконтроллері мотор жүргізушісіне роботты теңестіретін көліктерді құлау бағытында жүргізуге пәрмен береді.

5 -қадам: Жоба компоненттері

Жоба компоненттері
Жоба компоненттері
Жоба компоненттері
Жоба компоненттері
Жоба компоненттері
Жоба компоненттері

Өзін -өзі теңестіретін робот жобасында келесі компоненттер қолданылды:

STM32F407

ST Microelectronics жасаған микроконтроллер. Ол ARM Cortex-M архитектурасында жұмыс істейді.

L298N драйвері

Бұл IC қозғалтқышты іске қосу үшін қолданылады. Ол екі сыртқы кірісті алады. PWM сигналын беретін микроконтроллердің бірі. Импульстің енін реттеу арқылы қозғалтқыштың айналу жиілігін реттеуге болады. Оның екінші кірісі - бұл біздің жағдайда 12В аккумулятор болып табылатын қозғалтқышты басқаруға кернеу көзі.

Тұрақты ток қозғалтқышы

Тұрақты ток қозғалтқышы тұрақты ток көзінен жұмыс істейді. Бұл экспериментте тұрақты ток қозғалтқышы қозғалтқыш драйверіне қосылған оптикалық қосқыштардың көмегімен іске қосылады. Қозғалтқышты басқару үшін біз L298N қозғалтқышын қолдандық.

MPU6050

MPU6050 робот қай жерге құлап бара жатқаны туралы ақпарат алу үшін қолданылады. Бағдарлама жұмыс істей бастаған кезде MPU6050 позициясы болатын нөлдік қисықтық нүктеге қатысты көлбеу бұрышты өлшейді.

MPU6050-де 3 осьті акселерометр мен 3 осьті гироскоп бар. Акселерометр үш ось бойымен үдеуді өлшейді, ал гироскоп үш ось бойынша бұрыштық жылдамдықты өлшейді. Шығаруды біріктіру үшін біз екеуінің де дыбыстарын ажыратуымыз керек. Шуды жою үшін бізде Калман мен қосымша фильтр бар. Біз өз жобамызға қосымша фильтр енгіздік.

Opto жұп 4N35

Опто -қосқыш - тізбектің төменгі кернеулі бөлігін және жоғары кернеулі бөлігін оқшаулауға арналған құрылғы. Аты айтып тұрғандай, ол жарық негізінде жұмыс істейді. Төмен кернеулі бөлік сигнал алған кезде ток жоғары вольтты бөлікте ағып кетеді

6 -қадам: роботтың құрылымы

Робот құрылымы келесідей түсіндіріледі:

Физикалық құрылым

Өзін-өзі теңестіретін робот мөлдір пластик шыныдан жасалған екі қабаттан тұрады. Төменде екі қабат туралы мәліметтер берілген:

Бірінші қабат

Бірінші қабаттың төменгі бөлігінде біз STM тақтасын қуаттандыратын ұяшықты орналастырдық. Сондай -ақ, әрқайсысы 4 вольтты екі қозғалтқыш роботтың қозғалуы үшін шиналары қосылған. Бірінші қабаттың жоғарғы бөлігінде қозғалтқыштардың жұмыс істеуі үшін әрқайсысы 4 вольтты екі батарея (барлығы 8 вольт) және мотор драйвері IC (L298N) орналастырылған.

Екінші қабат

Роботтың жоғарғы қабатында біз STM тақтасын Perf Board тақтасына орналастырдық. Үстіңгі қабатта 4 опто -қосқыштың тағы бір перфорациялық тақтасы орналастырылған. Гироскоп сонымен қатар роботтың жоғарғы қабатына төменгі жағынан орналастырылған. Екі компонент те ауырлық центрін мүмкіндігінше төмен ұстау үшін ортаңғы бөлігіне орналастырылған.

Роботтың ауырлық орталығы

Ауырлық орталығы мүмкіндігінше төмен деңгейде сақталады. Осы мақсатта біз төменгі қабатқа ауыр батареяларды, ал жоғарғы қабатына STM тақтасы мен оптикалық қосқыштар сияқты жеңіл компоненттерді қойдық.

7 -қадам: код

Код Atollic TrueStudio -да құрастырылды. STM студиясы отладтау мақсатында қолданылды.

8 -қадам: Қорытынды

Көптеген эксперименттер мен бақылаулардан кейін біз түпкілікті нәтижеге қол жеткіземіз және жүйенің тиімділігін қаншалықты іске асырғанымызды талқылаймыз.

Жалпы шолу

Эксперимент кезінде PID алгоритмінің көмегімен қозғалтқыштың жылдамдығы сәтті басқарылды. Алайда қисық тегіс түзу емес. Бұған көптеген себептер бар:

• Сенсор әлі де төмен өткізгішке жалғанған болса да, белгілі бір ақырғы ақауды береді; бұл аналогтық электрониканың сызықты емес қарсылықтарына және кейбір сөзсіз себептеріне байланысты.

• Қозғалтқыш кіші кернеуде немесе PWM кезінде тегіс айналмайды. Ол жүйеге кейбір қате мәндерді жіберуі мүмкін дірілдерді қамтамасыз етеді.

• Дірілдеудің арқасында сенсор жоғары мәндерді беретін кейбір саңылауларды өткізіп жіберуі мүмкін. • Қателердің тағы бір негізгі себебі STM микроконтроллерінің негізгі жиілік жиілігі болуы мүмкін. STM микроконтроллерінің бұл моделі 168 МГц негізгі сағатты қамтамасыз етеді. Бұл жобада бұл мәселе қарастырылғанымен, бұл модель туралы жалпы түсінік бар, ол дәл осындай жоғары жиілікті қамтамасыз етпейді.

Ашық цикл жылдамдығы күтпеген мәндермен өте тегіс сызықты қамтамасыз етеді. PID алгоритмі сонымен қатар қозғалтқыштың өте аз шөгу уақытын қамтамасыз ететін жұмыс істейді. Қозғалтқыштың PID алгоритмі эталондық жылдамдықты тұрақты ұстап тұру үшін әр түрлі кернеулерде сыналды. Кернеудің өзгеруі PID алгоритмінің жұмыс істейтінін көрсететін қозғалтқыштың жылдамдығын өзгертпейді

Эффективтілік

Мұнда біз эксперимент кезінде байқаған PID контроллерінің тиімділігін талқылаймыз.

Қарапайым іске асыру

Біз эксперименттер мен бақылаулар бөлімінде PID контроллерін іске асыру өте оңай екенін көрдік. Жылдамдықты басқару жүйесі болу үшін оған тек үш параметр немесе тұрақтылық қажет

Сызықтық жүйелер үшін теңдесі жоқ тиімділік

Сызықтық PID контроллері контроллерлер тобындағы ең тиімді болып табылады, себебі логика өте қарапайым және сызықтық немесе жеткілікті сызықтық қосымшаларда қолдану кең таралған.

Шектеулер

Біз бұл жүйенің шектеулері туралы рефератта түсіндірдік. Мұнда біз өзіміз байқаған кейбіреулерін талқылаймыз.

Тұрақтыларды таңдау

Біз PID контроллерін іске асыру оңай болғанына қарамастан, тұрақтылардың мәнін таңдаудың қиын кезең екендігінің жүйенің басты кемшілігі екенін көрдік; күрделі есептеулер жүргізуге тура келеді. Басқа әдіс - бұл хит және сынақ әдісі, бірақ бұл да тиімді емес.

Тұрақтылар әрқашан тұрақты емес

Тәжірибе нәтижелері көрсеткендей, қозғалтқыштың анықтамалық жылдамдығының әр түрлі мәндері үшін PID контроллері PID тұрақтыларының бірдей мәндері үшін дұрыс жұмыс істемеді. Әр түрлі жылдамдықтар үшін тұрақтыларды әр түрлі таңдау қажет болды, бұл есептеу құнын экспоненциалды түрде арттырады.

Сызықтық емес

Біздің жағдайда қолданылатын PID контроллері сызықты, сондықтан оны тек сызықтық жүйелерге қолдануға болады. Сызықтық емес жүйелер үшін контроллер әр түрлі болуы керек. PID -тің әр түрлі сызықты емес әдістері бар болса да, олар қосымша параметрлерді таңдауды талап етеді. Бұл жоғары есептеу құнына байланысты жүйені қажетсіз етеді.

Бастапқы басу қажет

Біз тәжірибе бөлімінде көрсеткендей, бастапқыда қате өте аз болатын анықтамалық жылдамдық үшін, PID беретін PWM соншалықты аз, ол қозғалтқыш үшін қажетті іске қосу моментін жасамайды. Сонымен, кейбір сынақтарда қозғалтқыш жұмыс істемейді немесе басқа сынақтарда үлкен асып кетуді қамтамасыз етеді.

9 -қадам: ерекше алғыс

Маған осы жобаны жүзеге асыруға көмектескен топ мүшелеріне ерекше рахмет.

Жақында видеоның сілтемесін жүктеймін.

Сізге бұл нұсқаулық қызықты болады деп үміттенемін.

Бұл UET -тен шыққан Тахир Ул Хак. Сәлем !!!

Ұсынылған: