|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 10:44 am
Помощ за подбряване на алгоритъм
| Автор |
Съобщение |
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 8:57 pm Мнения: 607 Местоположение: Белград
|
 Помощ за подбряване на алгоритъм
Необходимо е да управлявам ъгъл на завъртане на електромотор(по-точно - на редуктор след електромотора), максимално синхронизирано с потенциометър. Налична е обратна връзка и мога да контролирам крайното положение и честотата на въртене. Принципно използвах една функция за мапиране, която превръща зададеното изместване в съответстваща честота. Получава се доста добро следване. Почти отлично. Проблемът е, че искам да е наистина безупречно. Сега се получава понякога леко подскачане, особено при смяна на посока или осцилиране около една точка. Идеята ми е да направя масиви с предварително зададени корекции на честотата и позициите. Нещо малко не ми достига, за да съставя ясен подход как точно да го организирам. Ако някой има подобен пример, моля да сподели. А аз продължавам с търсене на алтернативни решения.
|
| Пон Ное 28, 2016 12:16 am |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30684 Местоположение: София
|
 Re: Помощ за подбряване на алгоритъм
мм чакай да си изясним, потенциометъра прави заданието а изход ана редуктора го изпълнява ? Ако е така не е маловажно какъв е мотора, предполагам асинхронен съдейки по това е управляваш с честота, и какво е предавателното отношение на редуктора, колкото ти е по-малко отношението на редуктора толкова по-неподходящо става за асинхронен мотор. С таблици не виждам много смисъл, таблицата работи по заданието или по грешката, защото първото малко ми се вижда безсмислено. Освен това има няколко чисто практични въпроса свързани с изпозлванеот на това нещо, може ли ъгловата скорост на изхода на редуктора да е променлива и в какви граници, и каква динамика гониш ?
|
| Пон Ное 28, 2016 11:16 am |
|
 |
|
itso.t
Ранг: Форумен бог
Регистриран на: Чет Фев 03, 2005 2:21 am Мнения: 12765 Местоположение: София
|
 Re: Помощ за подбряване на алгоритъм
Не по маловажно е какви са луфтовете в редуктора между входа и изхода му...
|
| Пон Ное 28, 2016 11:27 am |
|
 |
|
DanielDimov
Ранг: Почетен член
Регистриран на: Нед Фев 16, 2014 3:36 pm Мнения: 953
|
 Re: Помощ за подбряване на алгоритъм
Аз го разбрах така:
Потенциометъра е само у-во което преобразува ъгъла в електрическа величина (съпротивление).
Заданието (на какъв ъгъл трябва да отиде и да се спре изхода на редуктора) се подава към управлението по електронен път.
Моите въпроси са: 1. правилно ли съм разбрал? 2. потенциометъра линеен ли е или логаритмичен? един ли е или са два насрещно вързани? 3. товара закачен на изхода на редуктора константен ли е или може да се променя? 4. какъв в крайна сметка е двигателя и как точно се управлява?
|
| Пон Ное 28, 2016 12:08 pm |
|
 |
|
DanielDimov
Ранг: Почетен член
Регистриран на: Нед Фев 16, 2014 3:36 pm Мнения: 953
|
 Re: Помощ за подбряване на алгоритъм
Явно не съм чел внимателно...
Потенциометъра служи за задаване на заданието. Този потенциометър човек ли го върти? Какъв е?
Обратната връзка как е реализирана?
|
| Пон Ное 28, 2016 12:53 pm |
|
 |
|
s7ama7
Ранг: Почетен член
Регистриран на: Съб Ное 29, 2014 10:11 am Мнения: 774
|
 Re: Помощ за подбряване на алгоритъм
Май това е продължението на тази тема viewtopic.php?f=2&t=14823
|
| Пон Ное 28, 2016 1:59 pm |
|
 |
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 8:57 pm Мнения: 607 Местоположение: Белград
|
 Re: Помощ за подбряване на алгоритъм
Пояснявам: Асинхронен трифазен мотор. Използвана честота от 10 до 80 херца чрез инвертор. Обратната връзка е от специализиран потенциометър(вече пусках питане тук във връзка с това, както правилно забеляза колегата). Задаването става с плъзгач в програмата. Работи аналогично на потенциометър. Държи се изключително добре, но при някои ситуации има нужда от подобряване. Понеже работя без спирачка, ще се наложи коригираща таблица за позициите при по-висока честота(спирането да започва по-рано). Механично системата е изработена така, че на практика не се влияе от товара - т.е. товарът е достатъчно малък, за да не оказва видимо влияние върху работата. Предавателното отношение е 60:1. И двата потенциометъра(в програмата) и реалният - на оста на редуктора са линейни. Можем така да разглеждаме и отношението зададен ъгъл:ъгъл на завъртане. Следването е безупречно, освен при някои от вече изброените ситуации. Най-вече ме интересува как да се работи с честотата при малки измествания и смяна на посоката. Идеята ми е да въведа корекциите в таблици, които използват за входни параметри честотите(начална и максимална) и отклонението. Луфтовете в редуктора могат да се пренебрегнат, докато не се разбие достатъчно - има малко чукане в изходящия вал, но е само между шпонката и колелото, не мога да определя колко е, но е малко и се чува само при смяна на посока без спиране. т.е. в редуктора няма видим луфт. Както казах, подбран е значително по-мощен редуктор(над 20 пъти) от необходимото и се предполага достатъчно дълъг живот.
Последна промяна E1 на Пон Ное 28, 2016 2:32 pm, променена общо 1 път
|
| Пон Ное 28, 2016 2:18 pm |
|
 |
|
DanielDimov
Ранг: Почетен член
Регистриран на: Нед Фев 16, 2014 3:36 pm Мнения: 953
|
 Re: Помощ за подбряване на алгоритъм
а има ли тахометър на самия мотор?
|
| Пон Ное 28, 2016 2:29 pm |
|
 |
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 8:57 pm Мнения: 607 Местоположение: Белград
|
 Re: Помощ за подбряване на алгоритъм
Не. Работи само с потенциометъра и инвертора. Не е проблем да се постави, но за даденото приложение няма нужда от такава прецизност.
|
| Пон Ное 28, 2016 2:37 pm |
|
 |
|
DanielDimov
Ранг: Почетен член
Регистриран на: Нед Фев 16, 2014 3:36 pm Мнения: 953
|
 Re: Помощ за подбряване на алгоритъм
Като нямаш тахометър - ти нямаш представа с каква точно скорост се върти мотора. Той все пак е асинхронен, така че ти може да въртиш полето с една скорост, но мотора може да се върти със съвсем друга, може дори да е блокирал или пък да се върти на другата страна...
Според мен задачата трябва да се раздели на две под-задачи:
1. определяне с каква скорост трябва да се върти ротора на двигателя, така че положението на изхода на редуктора да стане желаното
2. определяне с каква скорост трябва да се върти магнитното поле, така че скоростта и посоката на движение на ротора да е желаната
за да стане това - трябва да имаш по някакъв начин мерене на истинската скорост и посоката на въртене на ротора!
|
| Пон Ное 28, 2016 2:53 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
 Re: Помощ за подбряване на алгоритъм
Е1, знаеш ли какво е ПИД?
|
| Пон Ное 28, 2016 3:19 pm |
|
 |
|
MYXATA
Ранг: Форумен бог
Регистриран на: Пон Юни 05, 2006 1:48 pm Мнения: 4906 Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
|
 Re: Помощ за подбряване на алгоритъм
+ система от кой ред се явява твоя ел.мотор? + желана устойчивост? +време за реакция? +алгоритъм за подбор на най-добри параметри(ПИД тюнинг  ) + предпочитан модел за имплементиране на ПИД-а
_________________ ... ако трети ден не ти се работи... това означава, че е сряда !
|
| Пон Ное 28, 2016 4:16 pm |
|
 |
|
DanielDimov
Ранг: Почетен член
Регистриран на: Нед Фев 16, 2014 3:36 pm Мнения: 953
|
 Re: Помощ за подбряване на алгоритъм
Точно и аз към това щях да го насоча...
По първата част от задачата - най-добре да си реализираш някакъв прост ПИД регулатор. Потърси за MiniPID-Java - това е един много прост клас, който се пренаписва на C за 5 минути, работи много добре (ползвал съм го за моите симулации) и мисля че ще ти свърши перфектна работа. Входа (sensor, target) ще са ти реални числа примерно между 0 и 1, като 0 ще съответства на едното крайно положение, а 1 на другото. Изхода от обекта (output) ще ти е скорост на ротора (положителна скорост ще означава че мотора трябва да върти напред и да придвижва крайния вал от положение "0" към положение "1").
По втората част от задачата - понеже нямаш тахометър и вероятно няма и да сложиш - може да приемеш, че винаги хлъзгането е максималното (около 5%). Тогава изхода винаги ще е равен на 1.05 * входа.
|
| Пон Ное 28, 2016 5:06 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30684 Местоположение: София
|
 Re: Помощ за подбряване на алгоритъм
Абе ПИД е вариант, ама Д май е малко излишно, та може да се укаже че и И да е излишно  И аз си мислех да му пиша за ПИД, но в крайна сметка фъзи може би е по-добре. Всичко май опира до това какво точно се търси, установяване за максимално кратко време, или времето за установяване не е толкова важно. Може би е важно за да мъчи мотора на 80 Hz ... ПИД също би свършил работа но стабилността в зоната на достигане на заданието може да се окаже проблемна, стабилността на позицията имам в предвид. Това е типична задача за DC мотор, контрола става елементарен, може и да е чисто дискретен, с асинхронен не виждам как ще го направиш достатъчно точно без спирачка тъй като мотор аима инерция и не спира веднага, ако не механична то електродинамична. п.с. хлъзгането не го интересува толкова много. При отношение 60:1 няма никакво значение, а самия ПИД ще мъчи и двигателя и инвертора в зоната около заданието.
|
| Пон Ное 28, 2016 5:13 pm |
|
 |
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 8:57 pm Мнения: 607 Местоположение: Белград
|
 Re: Помощ за подбряване на алгоритъм
ПИД одпадна като вариант още в началото, когато ми доставиха инверторите и моторите и казаха: "Това имаш. Давай". Да не разтягаме темата с излишни дискусии. Имам ограничение от 20ms между отделните команди към инвертора. Но всичко това не е проблем. Държи се добре с това, което имам. 80 Hz се използват изключително рядко. В повечето случаи работи между 20 и 40 Hz. Това, което исках е малка помощ за формиране на таблиците. Проверено: при едни и същи входни параметри, се държи идентично. Има няколко частни случая, които искам да дефинирам предварително. Нищо повече.
|
| Пон Ное 28, 2016 5:37 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 5 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|