Автор Тема: Теория на управлението  (Прочетена 21772 пъти)

westony

  • Заклет Роботостроител
  • *****
  • Публикации: 237
    • Профил
    • http://westony.blogspot.com
Теория на управлението
« -: Ноември 24, 2011, 03:06:44 pm »
Колеги робостроители,

може ли да попитам, как теория на управлението се вписва в роботиката и заслужава ли си да се изучи?


Благодаря предварително

П.С. Не съм запознат по темата, някоя статия или по-подробен отговор, ако дадете ще ми бъде от ГОЛЯМА полза.
Технически Университет - София , ФА, III курс.
Мартин, 21 години
   Ако е лесно няма да е интересно!

Един не по-различен блог
Google+

sv_shady

  • Administrator
  • *****
  • Публикации: 636
    • Профил
Теория на управлението
« Отговор #1 -: Ноември 24, 2011, 11:31:54 pm »
Ами според мен това е едно от най-важните направления в инженерството. Идеята е много просто - на всяка система може да бъде изграден модел, набор от зависимости, които я описват. Имайки този модел, системата може да бъде моделирана и съответно как се държи при различни смущения, входящи сигнали, може да се изследва проблема как да се управлява тази система, трябва ли обратна връзка и така нататък, Най-интересното накрая е, че тази теория можеш да ползваш за каквото се сетиш: електроника, механика, мделиране на всякакви процеси дори и в биологията и химията. Смятам, че ако искаш наистина да се занимаваш с роботика няма как да не знаеш поне основни неща. Ако си добре с английския разгледай това:
http://en.wikipedia.org/wiki/Control_theory
Imagination is the only limit.......

Светлин Пенков
София / Рединг, Великобритания

Vexorian

  • Заклет Роботостроител
  • *****
  • Публикации: 305
    • Профил
Теория на управлението
« Отговор #2 -: Декември 08, 2011, 07:12:37 pm »
Теорията на контрола се занимава с анализ на системи (било то механични, електронни, цифрови и т.н.) и тяхното управление. Тази инженерна дисциплина е според мен задължителна в роботиката.

Да предположим, че имаш подвижен робот с някакви сензори, които да го насочват в определена посока. За тази цел моторите трябва да реагират спрямо сензорите, и то точно и адекватно.

Как постигаме това?
1. Задаваме цел на робота, какво действие да направи (завой на ляво,дясно, напред, назад и т.н.)
2. Отчитаме резултатите от сензорите
3. Според резултатите, превръщаме цифровата обработка в аналогова
4. Електрическата енергия се превръща в механическа чрез моторите
5. Механическата енергия кара нашия робот да извършва дадено действие.
6. Пак отчитаме резултатие от сензорите и преценяваме дали желаният резултат е постигнат.
7. Ако резултатът не постигнат, повтаряме стъпки 3-7. Ако е постигнат се връщаме на 1.

Това е един вид затворена система (с обратна връзка). А индивидуално погледнатите елементи (мотори, сензори) са индивидуални отворени системи.

За да се осигури този процес да върви адекватно, се създават специални контролери: PID (Пропорция-Интеграл-Производна контролер) или Fuzzy Logic.

Контролният инженер обикновено се занимава с разработката на тези контролери, като преди това прави анализ на отворените системи, и след това прибавя контролера към затворената система.
Викторио Семир Ел Хаким, София 20г.
Аналогова/Цифрова електроника, програмиране
I\'m watching your ass! :D

westony

  • Заклет Роботостроител
  • *****
  • Публикации: 237
    • Профил
    • http://westony.blogspot.com
Теория на управлението
« Отговор #3 -: Декември 14, 2011, 10:26:02 am »
Цитат на: "Vexorian"
Теорията на контрола се занимава с анализ на системи (било то механични, електронни, цифрови и т.н.) и тяхното управление. Тази инженерна дисциплина е според мен задължителна в роботиката.

Да предположим, че имаш подвижен робот с някакви сензори, които да го насочват в определена посока. За тази цел моторите трябва да реагират спрямо сензорите, и то точно и адекватно.

Как постигаме това?
1. Задаваме цел на робота, какво действие да направи (завой на ляво,дясно, напред, назад и т.н.)
2. Отчитаме резултатите от сензорите
3. Според резултатите, превръщаме цифровата обработка в аналогова
4. Електрическата енергия се превръща в механическа чрез моторите
5. Механическата енергия кара нашия робот да извършва дадено действие.
6. Пак отчитаме резултатие от сензорите и преценяваме дали желаният резултат е постигнат.
7. Ако резултатът не постигнат, повтаряме стъпки 3-7. Ако е постигнат се връщаме на 1.

Това е един вид затворена система (с обратна връзка). А индивидуално погледнатите елементи (мотори, сензори) са индивидуални отворени системи.

За да се осигури този процес да върви адекватно, се създават специални контролери: PID (Пропорция-Интеграл-Производна контролер) или Fuzzy Logic.

Контролният инженер обикновено се занимава с разработката на тези контролери, като преди това прави анализ на отворените системи, и след това прибавя контролера към затворената система.

Ами ти ми описваш програмист...
Технически Университет - София , ФА, III курс.
Мартин, 21 години
   Ако е лесно няма да е интересно!

Един не по-различен блог
Google+

sv_shady

  • Administrator
  • *****
  • Публикации: 636
    • Профил
Теория на управлението
« Отговор #4 -: Декември 14, 2011, 08:37:04 pm »
Абе далеч не е програмист. Това, че в днешно време голямата част от контрола се извършва върху компютри е друга тема. В теория на управлението се използват неща като трансформация на Лаплас, честотен анализ на поведението на системата, проектиране на контролер за системата и още куп други неща. Цялата тази теория може да се реализира на цифров компютър, но може и с аналогова електроника например, но това не прави дисциплината електроника.
Imagination is the only limit.......

Светлин Пенков
София / Рединг, Великобритания

westony

  • Заклет Роботостроител
  • *****
  • Публикации: 237
    • Профил
    • http://westony.blogspot.com
Теория на управлението
« Отговор #5 -: Декември 14, 2011, 10:05:15 pm »
Ами, аз уча в ТУ и ние учим Теория на управлението /2 части/, но при нас лошото, е че се опира само на частта с теорията отколкото на управлението, защото упражненията ни свършват само с Матлаб, но никога не сме прилагали каквото и да било на реален обект. Точно това поражда проблеми, с които не знам как да се преборя/поне за сега/...

Ако някой може да предложи нещо, ще бъда много благодарен.
Технически Университет - София , ФА, III курс.
Мартин, 21 години
   Ако е лесно няма да е интересно!

Един не по-различен блог
Google+

sv_shady

  • Administrator
  • *****
  • Публикации: 636
    • Профил
Теория на управлението
« Отговор #6 -: Декември 14, 2011, 11:25:51 pm »
Взимаш един обикновен DC мотор слагаш един ротационен енкодер и се пробвай да контролираш позицията на мотора, скоростта и ускорението. Ще видиш, че проблемът не е лесен. Пробвай се да логваш информация в реално време и да рисуваш графики на променливите в реално време, това ще ти помогно много бързо да свържеш теорията с практика. (МАТЛАБ е идеална за тази цел)
Imagination is the only limit.......

Светлин Пенков
София / Рединг, Великобритания

westony

  • Заклет Роботостроител
  • *****
  • Публикации: 237
    • Профил
    • http://westony.blogspot.com
Теория на управлението
« Отговор #7 -: Декември 15, 2011, 12:10:44 am »
Това, което описа току що, нямам и на идея как да го почна дори... Ще можеш ли на лично примерно да ми напишеш няколко изречение нещо като how to Или step by step, защото наистина нямам идея как да стане номера едното с другото. Не ме разбирай грешно, уча си теорията разбирам я що-годе... Но на упражнение освен да използваме матрици и да пишем разни фунциики,/например: боде, найкуист и тн/... повече не сме правили, следвай си ръководството там пише как да си направите упрж. и от там на там ОПРАВЯЙ се...
Технически Университет - София , ФА, III курс.
Мартин, 21 години
   Ако е лесно няма да е интересно!

Един не по-различен блог
Google+

sv_shady

  • Administrator
  • *****
  • Публикации: 636
    • Профил
Теория на управлението
« Отговор #8 -: Декември 15, 2011, 10:49:44 pm »
Ами тук е по-добре да опиша, за да могат и другите да го видят. Най-лесният начин да видиш приложение на теория на контрола е да се пробваш да контролираш един DC мотор.
1. Намираш си един DC мотор и му правиш електроника, така че да може да му управляваш скоростта. Това най-лесно ще стане с един H-мост и ШИМ. За целта можеш да ползваш някой микроконтролер, в зависимост от твоите вкусове.
2. Намираш си един ротационен енкодер - можеш най-обикновен механичен от комет, може да си намериш някой оптичен от университета, а може и да си направиш оптичен - един диск с прорези и оптрон с въждушна междина. Енкодера е хубаво да го закрепиш на ротора на мотора или на изходния вал на редуктора, ако има такъв.
3. Правиш си малък софтуер, който може да мери интервалите между отделните стъпки на енкодера или брой стъпки за секунда - така всъщност ще мериш скоростта на въртене. Не е много точен подход, но върши работа за образователни цели.
4. Свързваш контролера чрез сериен порт с компютър. Трябва да можеш да пращаш показаният от енкодера (времетраенето на всяка стъпка или броя стъпки) по серийния порт до компютъра. Там най-добре една MATLAB програмка да го слуша и да plot-ва получената стойност. Така с времето ще видиш една графика, която представя скоростта на въртене.
5. От програмката под MATLAB трябва да можеш да контролираш коефициента на запълване на правоъгълната вълната, с която управляваш мотора. Тоест трябва да можеш да пращаш коефициента на запълване по серийната връзка до микроконтролера.
6. Ето ти готова система. Входът е скоростта, която искаш да поддържаш. Изходът е реалната скорост, а обратната ти връзка е реалното измерено време за 1 стъпка на енкодера или броят стъпки за 1 секунда. Всички тези величини ги имаш в МАТЛАБ, сега само остава да си разгледаш упражненията.
7. Моделираш си ситемата (първоначално можеш да я разгледаш като система от 2-ри ред).
8. Слагаш един пропорционален контролер и гледаш какво става на графиката отразяваща реалната измерена скорост. Да речем, че искаш да управляваш мотора с константна скорост - задаваш например 10 стъпки за секунда (100мс за стъпка респективно), Графиката с измерената скорост трябва след известно време да стигне се установи около 10. Как ще стигне до 10 и дали въобще ще се установи, а няма да почне да осцилира, зависи от стойноста коефициента на усилване на пропорционалния контролер. Но тези неща със сигурност ти ги има в лекциите и упражнения, щом ви говорят за Боде и Никуист.
9. След като направиш т.8 можеш да пробваш различни контролери ПИ и ПИД.

Всичко това може да го направиш и за позицията на мотра.
Imagination is the only limit.......

Светлин Пенков
София / Рединг, Великобритания

westony

  • Заклет Роботостроител
  • *****
  • Публикации: 237
    • Профил
    • http://westony.blogspot.com
Теория на управлението
« Отговор #9 -: Декември 15, 2011, 11:03:52 pm »
Целият, този код, може ли да се напише на матлаб ? Единствения МК, с който разполагам за момента е Arduino Mega 1280.


PS:. Благодаря за подробното описание.
Технически Университет - София , ФА, III курс.
Мартин, 21 години
   Ако е лесно няма да е интересно!

Един не по-различен блог
Google+

Vexorian

  • Заклет Роботостроител
  • *****
  • Публикации: 305
    • Профил
Теория на управлението
« Отговор #10 -: Декември 15, 2011, 11:40:52 pm »
Матлаб използваш за да си анализираш системата и да си проектираш контролера (не микроконтролер а PID контролер).

След това системата можеш по аналогов,цифров или софтуерен начин да я сътвориш. Няма значение. Можеш и симулация да направиш с Матлаб.

По аналогов:
PID контролер най-лесно може да се създаде с един операционен усилвател четворка. Само едно крайно транзисторно стъпало PUSH-PULL ти трябва за да управляваш мотора и някакви аналогови сензори за отчитане на скорростта (оптрон с енкодер и пълниш кондензатор примерно).

Аз като имах практикум по контролна теория, използвах Labview за да управлявам една аналогова затворена система. Чрез Матлаб я анализирах и настройх контролера. За съжаление нямам тези материали в момента, но работя в/у една електромагнитна система, свързана чрез USB към компа. Като я направя ще пост-на за да ви покажа как може да се използва тази теория.
Викторио Семир Ел Хаким, София 20г.
Аналогова/Цифрова електроника, програмиране
I\'m watching your ass! :D

sv_shady

  • Administrator
  • *****
  • Публикации: 636
    • Профил
Теория на управлението
« Отговор #11 -: Декември 15, 2011, 11:54:33 pm »
Ами след като съм ти го написал значи може. Ако мислиш, че електрониката ти е по-силна от програмирането, тогава може да послушаш Vexorian.
Imagination is the only limit.......

Светлин Пенков
София / Рединг, Великобритания

westony

  • Заклет Роботостроител
  • *****
  • Публикации: 237
    • Профил
    • http://westony.blogspot.com
Теория на управлението
« Отговор #12 -: Декември 15, 2011, 11:57:06 pm »
Електрониката ми е слаба, но за сметка на това програмирането ми е на добро ниво, но самия код на матлаб, не сме качвали на контролер и тн и там ми е малко мътно, но попитах Google и той ми каза, че има готова библиотека за Arduino - Matlab... и за LabView същата работа :)
Технически Университет - София , ФА, III курс.
Мартин, 21 години
   Ако е лесно няма да е интересно!

Един не по-различен блог
Google+

sv_shady

  • Administrator
  • *****
  • Публикации: 636
    • Профил
Теория на управлението
« Отговор #13 -: Декември 16, 2011, 12:56:14 am »
Не, идеята не е да качваш код на МАТЛАБ върху микроконтролера. Просто да си напишеш малка програмка (например на С), която да си сложиш на микроконтролера, и да пращаш чрез нея инфромация до МАТЛАБ чрез серийния порт. От там нататък правиш всичко на МАТЛАБ върху компютъра.
Imagination is the only limit.......

Светлин Пенков
София / Рединг, Великобритания