Микроконтролери и електроника
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: Помощ за подбряване на алгоритъм

Dimitar написа:
Е1, знаеш ли какво е ПИД?

+ система от кой ред се явява твоя ел.мотор?
+ желана устойчивост?
+време за реакция?
+алгоритъм за подбор на най-добри параметри(ПИД тюнинг :))
+ предпочитан модел за имплементиране на ПИД-а

Автор:  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: Помощ за подбряване на алгоритъм

Абе ПИД е вариант, ама Д май е малко излишно, та може да се укаже че и И да е излишно :) И аз си мислех да му пиша за ПИД, но в крайна сметка фъзи може би е по-добре. Всичко май опира до това какво точно се търси, установяване за максимално кратко време, или времето за установяване не е толкова важно. Може би е важно за да мъчи мотора на 80 Hz ... ПИД също би свършил работа но стабилността в зоната на достигане на заданието може да се окаже проблемна, стабилността на позицията имам в предвид. Това е типична задача за DC мотор, контрола става елементарен, може и да е чисто дискретен, с асинхронен не виждам как ще го направиш достатъчно точно без спирачка тъй като мотор аима инерция и не спира веднага, ако не механична то електродинамична.

п.с. хлъзгането не го интересува толкова много. При отношение 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/