| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Помощ за подбряване на алгоритъм http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=14920 |
Страница 1 от 6 |
| Автор: | E1 [ Пон Ное 28, 2016 12:16 am ] |
| Заглавие: | Помощ за подбряване на алгоритъм |
Необходимо е да управлявам ъгъл на завъртане на електромотор(по-точно - на редуктор след електромотора), максимално синхронизирано с потенциометър. Налична е обратна връзка и мога да контролирам крайното положение и честотата на въртене. Принципно използвах една функция за мапиране, която превръща зададеното изместване в съответстваща честота. Получава се доста добро следване. Почти отлично. Проблемът е, че искам да е наистина безупречно. Сега се получава понякога леко подскачане, особено при смяна на посока или осцилиране около една точка. Идеята ми е да направя масиви с предварително зададени корекции на честотата и позициите. Нещо малко не ми достига, за да съставя ясен подход как точно да го организирам. Ако някой има подобен пример, моля да сподели. А аз продължавам с търсене на алтернативни решения. |
|
| Автор: | ToHu [ Пон Ное 28, 2016 11:16 am ] |
| Заглавие: | Re: Помощ за подбряване на алгоритъм |
мм чакай да си изясним, потенциометъра прави заданието а изход ана редуктора го изпълнява ? Ако е така не е маловажно какъв е мотора, предполагам асинхронен съдейки по това е управляваш с честота, и какво е предавателното отношение на редуктора, колкото ти е по-малко отношението на редуктора толкова по-неподходящо става за асинхронен мотор. С таблици не виждам много смисъл, таблицата работи по заданието или по грешката, защото първото малко ми се вижда безсмислено. Освен това има няколко чисто практични въпроса свързани с изпозлванеот на това нещо, може ли ъгловата скорост на изхода на редуктора да е променлива и в какви граници, и каква динамика гониш ? |
|
| Автор: | itso.t [ Пон Ное 28, 2016 11:27 am ] |
| Заглавие: | Re: Помощ за подбряване на алгоритъм |
Не по маловажно е какви са луфтовете в редуктора между входа и изхода му... |
|
| Автор: | DanielDimov [ Пон Ное 28, 2016 12:08 pm ] |
| Заглавие: | Re: Помощ за подбряване на алгоритъм |
Аз го разбрах така: Потенциометъра е само у-во което преобразува ъгъла в електрическа величина (съпротивление). Заданието (на какъв ъгъл трябва да отиде и да се спре изхода на редуктора) се подава към управлението по електронен път. Моите въпроси са: 1. правилно ли съм разбрал? 2. потенциометъра линеен ли е или логаритмичен? един ли е или са два насрещно вързани? 3. товара закачен на изхода на редуктора константен ли е или може да се променя? 4. какъв в крайна сметка е двигателя и как точно се управлява? |
|
| Автор: | DanielDimov [ Пон Ное 28, 2016 12:53 pm ] |
| Заглавие: | Re: Помощ за подбряване на алгоритъм |
Явно не съм чел внимателно... Потенциометъра служи за задаване на заданието. Този потенциометър човек ли го върти? Какъв е? Обратната връзка как е реализирана? |
|
| Автор: | s7ama7 [ Пон Ное 28, 2016 1:59 pm ] |
| Заглавие: | Re: Помощ за подбряване на алгоритъм |
Май това е продължението на тази тема viewtopic.php?f=2&t=14823 |
|
| Автор: | E1 [ Пон Ное 28, 2016 2:18 pm ] |
| Заглавие: | Re: Помощ за подбряване на алгоритъм |
Пояснявам: Асинхронен трифазен мотор. Използвана честота от 10 до 80 херца чрез инвертор. Обратната връзка е от специализиран потенциометър(вече пусках питане тук във връзка с това, както правилно забеляза колегата). Задаването става с плъзгач в програмата. Работи аналогично на потенциометър. Държи се изключително добре, но при някои ситуации има нужда от подобряване. Понеже работя без спирачка, ще се наложи коригираща таблица за позициите при по-висока честота(спирането да започва по-рано). Механично системата е изработена така, че на практика не се влияе от товара - т.е. товарът е достатъчно малък, за да не оказва видимо влияние върху работата. Предавателното отношение е 60:1. И двата потенциометъра(в програмата) и реалният - на оста на редуктора са линейни. Можем така да разглеждаме и отношението зададен ъгъл:ъгъл на завъртане. Следването е безупречно, освен при някои от вече изброените ситуации. Най-вече ме интересува как да се работи с честотата при малки измествания и смяна на посоката. Идеята ми е да въведа корекциите в таблици, които използват за входни параметри честотите(начална и максимална) и отклонението. Луфтовете в редуктора могат да се пренебрегнат, докато не се разбие достатъчно - има малко чукане в изходящия вал, но е само между шпонката и колелото, не мога да определя колко е, но е малко и се чува само при смяна на посока без спиране. т.е. в редуктора няма видим луфт. Както казах, подбран е значително по-мощен редуктор(над 20 пъти) от необходимото и се предполага достатъчно дълъг живот. |
|
| Автор: | DanielDimov [ Пон Ное 28, 2016 2:29 pm ] |
| Заглавие: | Re: Помощ за подбряване на алгоритъм |
а има ли тахометър на самия мотор? |
|
| Автор: | E1 [ Пон Ное 28, 2016 2:37 pm ] |
| Заглавие: | Re: Помощ за подбряване на алгоритъм |
Не. Работи само с потенциометъра и инвертора. Не е проблем да се постави, но за даденото приложение няма нужда от такава прецизност. |
|
| Автор: | DanielDimov [ Пон Ное 28, 2016 2:53 pm ] |
| Заглавие: | Re: Помощ за подбряване на алгоритъм |
Като нямаш тахометър - ти нямаш представа с каква точно скорост се върти мотора. Той все пак е асинхронен, така че ти може да въртиш полето с една скорост, но мотора може да се върти със съвсем друга, може дори да е блокирал или пък да се върти на другата страна... Според мен задачата трябва да се раздели на две под-задачи: 1. определяне с каква скорост трябва да се върти ротора на двигателя, така че положението на изхода на редуктора да стане желаното 2. определяне с каква скорост трябва да се върти магнитното поле, така че скоростта и посоката на движение на ротора да е желаната за да стане това - трябва да имаш по някакъв начин мерене на истинската скорост и посоката на въртене на ротора! |
|
| Автор: | Dimitar [ Пон Ное 28, 2016 3:19 pm ] |
| Заглавие: | Re: Помощ за подбряване на алгоритъм |
Е1, знаеш ли какво е ПИД? |
|
| Автор: | MYXATA [ Пон Ное 28, 2016 4:16 pm ] | |||||||||
| Заглавие: | Re: Помощ за подбряване на алгоритъм | |||||||||
+ система от кой ред се явява твоя ел.мотор? + желана устойчивост? +време за реакция? +алгоритъм за подбор на най-добри параметри(ПИД тюнинг + предпочитан модел за имплементиране на ПИД-а |
||||||||||
| Автор: | DanielDimov [ Пон Ное 28, 2016 5:06 pm ] |
| Заглавие: | Re: Помощ за подбряване на алгоритъм |
Точно и аз към това щях да го насоча... По първата част от задачата - най-добре да си реализираш някакъв прост ПИД регулатор. Потърси за MiniPID-Java - това е един много прост клас, който се пренаписва на C за 5 минути, работи много добре (ползвал съм го за моите симулации) и мисля че ще ти свърши перфектна работа. Входа (sensor, target) ще са ти реални числа примерно между 0 и 1, като 0 ще съответства на едното крайно положение, а 1 на другото. Изхода от обекта (output) ще ти е скорост на ротора (положителна скорост ще означава че мотора трябва да върти напред и да придвижва крайния вал от положение "0" към положение "1"). По втората част от задачата - понеже нямаш тахометър и вероятно няма и да сложиш - може да приемеш, че винаги хлъзгането е максималното (около 5%). Тогава изхода винаги ще е равен на 1.05 * входа. |
|
| Автор: | ToHu [ Пон Ное 28, 2016 5:13 pm ] |
| Заглавие: | Re: Помощ за подбряване на алгоритъм |
Абе ПИД е вариант, ама Д май е малко излишно, та може да се укаже че и И да е излишно п.с. хлъзгането не го интересува толкова много. При отношение 60:1 няма никакво значение, а самия ПИД ще мъчи и двигателя и инвертора в зоната около заданието. |
|
| Автор: | E1 [ Пон Ное 28, 2016 5:37 pm ] |
| Заглавие: | Re: Помощ за подбряване на алгоритъм |
ПИД одпадна като вариант още в началото, когато ми доставиха инверторите и моторите и казаха: "Това имаш. Давай". Да не разтягаме темата с излишни дискусии. Имам ограничение от 20ms между отделните команди към инвертора. Но всичко това не е проблем. Държи се добре с това, което имам. 80 Hz се използват изключително рядко. В повечето случаи работи между 20 и 40 Hz. Това, което исках е малка помощ за формиране на таблиците. Проверено: при едни и същи входни параметри, се държи идентично. Има няколко частни случая, които искам да дефинирам предварително. Нищо повече. |
|
| Страница 1 от 6 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|