|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 12:43 pm
Помощ за подбряване на алгоритъм
| Автор |
Съобщение |
|
slav4o.com
Ранг: Форумен бог
Регистриран на: Нед Яну 01, 2012 8:04 pm Мнения: 2663 Местоположение: София / Велико Търново
|
 Re: Помощ за подбряване на алгоритъм
То това явно е един вид спирачката линейното намаляване на честотата  . Но като смъкне до 20 Hz изключва и по инерция спира.
|
| Пон Ное 28, 2016 10:30 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30684 Местоположение: София
|
 Re: Помощ за подбряване на алгоритъм
Линейото намаляване не е спирачка, при 20 hz има да върти доста докато спре, зависи каква точност търси. Хубаво е да се изпозлва електрическа спирачка, инвертора най-вероятно може да го направи. Ти подаваш ли му старт стоп сигнал или регулираш само честотата ? Аз бих го направил с два входа, ACW и CW на който има сигнал на там върти, и отделно му задаваш честота, а ако я задаваш протоколно може и посоката и тръгването от там. Ако се разчита на спиране на двигателя няма как да е точно, утре ще стане студено греста ще се сгъсти и ако днес се премества 1 градус докато спре, утре ще е 0.5, лятото ще стане обратното. Трябва да си сигурен че като спреш наистина спираш.
|
| Вто Ное 29, 2016 12:32 am |
|
 |
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 8:57 pm Мнения: 607 Местоположение: Белград
|
 Re: Помощ за подбряване на алгоритъм
Има някаква DC спирачка, но не съм я тествал. Доста сполучливо се получава и при задаване на ниска честота, със стръмна крива(може да се манипулира чрез модбъса, включително да задам и честота под 20Hz), но няма нужда от такова издевателство. Със зададената линейна характеристика спира достатъчно добре - с предвидима грешка. Не е критична инерцията, а при едно и също начално и крайно състояние, в зависимост от честотата, спира винаги на едно и също място. Опитвал съм и рязко сваляне на честотата на 10 Hz. Буквално заковава, но предпочитам да не натоварвам механиката. Цялата конструкция подскача. Подавам старт и стоп сигнал, но се старая да ги избягвам, защото резултатът е накъсване на движението. При манипулиране на честотата се получава плавност.
|
| Вто Ное 29, 2016 1:25 am |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
 Re: Помощ за подбряване на алгоритъм
E1, не искам да се обиждаш но нещо не мога да се светна сърби ли те или те боли повече  . Първо хем имаш проблем, дето не знаеш как да го решиш и ни питаш тук и второ като ти даваме жокери, почваш да остроумничиш и да ни обясняваш да не разтягаме дискусията. Мога ли да те попитам тогава защо я пусна тая тема - да ни обясниш как не разбираме нищо от контрол и закони за регулиране ли? Или да ни кажеш как си направил нещо по възможно най-балъшкия начин - с проби и грешки и някакви измислени таблици за корекции, дето разказват играта на всички закономерности за регулиране и после посмъртно не могат да се настроят нещата. До сега колкото пъти съм виждал как някой, дето си няма идея от регулиране се опитва да регулира нещо винаги е било с някакви такива измислени корекции, дето им викат "алгоритъм" или пък им викат по модерно му "фъзи логика", без въобще да си имат идея какво е фъзи логика и кога и за какво точно се ползва. На един добре настроен закон за регулиране не му трябват никакви корекции, защото само ще му пречат. Така че ако искаш това да стане като хората почвай да четеш за пид закон за позициониране и също така какво е не само фийдбек ами и фийдфоруърд и специално в твоя случай фийдфоруърд по скорост и ускорение. Това е от мен и обещавам повече да не ти разводнявам дискусията за фенси алгоритмите  .
|
| Вто Ное 29, 2016 4:43 am |
|
 |
|
DanielDimov
Ранг: Почетен член
Регистриран на: Нед Фев 16, 2014 3:36 pm Мнения: 953
|
 Re: Помощ за подбряване на алгоритъм
Колега, съветвам те да изгледаш няколко видеа навързани в последователност като започнеш от това: https://www.youtube.com/watch?v=UR0hOmjaHp0 - доста неща ще ти се изяснят и се надявам да си пренапишеш алгоритъма от нулата, да стане както се прави и шефовете ти да се изкефят от резултата!
Последна промяна DanielDimov на Вто Ное 29, 2016 11:24 am, променена общо 1 път
|
| Вто Ное 29, 2016 10:19 am |
|
 |
|
DanielDimov
Ранг: Почетен член
Регистриран на: Нед Фев 16, 2014 3:36 pm Мнения: 953
|
 Re: Помощ за подбряване на алгоритъм
Още нещо - ако решиш да реализираш алгоритъма на MiniPID - имай предвид, че никъде в сметките не участва времето. Затова трябва да се постараеш максимално да викаш getOutput през РАВНИ ВРЕМЕВИ ИНТЕРВАЛИ!. Всички константи, които експериментално установиш, че трябва да са с някаква стойност ще зависят от това време. Щом казваш че инвертора не позволява да му даваш задание по-често от 20 ms - тогава 50 ms би било перфектно време на дискретизация на цялото ти управление
|
| Вто Ное 29, 2016 10:48 am |
|
 |
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 8:57 pm Мнения: 607 Местоположение: Белград
|
 Re: Помощ за подбряване на алгоритъм
[quote="Dimitar"]E1, не искам да се обиждаш .../quote] Отговарям: Говоря за АЛГОРИТЪМ(разбира се - софтуер). А тръгваме в посока ХАРДУЕР. Там няма пипане, да не навлизам в детайли. На практика получих насоките, които исках, за което благодаря. Междувременно открих и пропуск(грешка), който объркваше една част от програмата(нормално, след 4 дни с общо няколко часа почивка  ).
|
| Вто Ное 29, 2016 12:05 pm |
|
 |
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 8:57 pm Мнения: 607 Местоположение: Белград
|
 Re: Помощ за подбряване на алгоритъм
Явно от началото не се разбрахме. Имам действаща програма. По принцип винаги премълчавам една част от информацията, по мои си съображения, което, странно защо, тук в 99% от случаите, се възприема като незнание. Истината е, че след 4 дни почти без сън, започнах да блокирам(колеги, които са имали "щастието" да работят с мен, знаят за какво става дума  ). В монета коригирам и нещата се получават.
|
| Вто Ное 29, 2016 12:13 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30684 Местоположение: София
|
 Re: Помощ за подбряване на алгоритъм
Е1, никой не говори за хардуер, ПИД-а не е хардуер, това е алгоритъм който имплементираш в твоят софтуер точно както имплементираш въпросните таблици. Относно фъзи, има не малко изписано по въпроса, кога е подходящ и кога не, в конкретният случай няма нещо което да дава голямо предимство на ПИД-а, както казах ако беше серво мотор безспорно ПИД-а щеше да реши проблема изцяло, с товa AC управление, ограничената долна честота и липсата на спирачка ми се струва ми се елементарно пропорционално управление с промяна на коефициента, което си е един вид фъзи ще стане. ПИД-а винаги ми е бил предпочитаният избор но до рим водят много пътища и не винаги магистралите са най-бързи и безопасни. p.s. да не забравяме че ПИД реално си е живо фъзи, просто конкретна реализация на алгоритъм.
|
| Вто Ное 29, 2016 12:33 pm |
|
 |
|
DanielDimov
Ранг: Почетен член
Регистриран на: Нед Фев 16, 2014 3:36 pm Мнения: 953
|
 Re: Помощ за подбряване на алгоритъм
Пролича си, че си блокирал след като 4-5 неща от постановката отначало бяха едни, после се оказаха други... на всеки се е случвало.
Опиши ни с прости думи как работи текущата ти програма/алгоритъм! Може някой да ти даде полезен съвет как да я оправиш без тотално пренаписване (което би било най-добре).
|
| Вто Ное 29, 2016 1:00 pm |
|
 |
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 8:57 pm Мнения: 607 Местоположение: Белград
|
 Re: Помощ за подбряване на алгоритъм
Тони, не говоря, за ПИД-а, а например за: "Като нямаш тахометър - ти нямаш представа..." и т.н. За промяната на постановката - не съм забелязал. По-скоро не конкретизирам някои неща, а ги задавам като общ случай, но пък започва въртене в кръг точно около тях. Описание на програмата на кратко: 1. Инициализация. 2. Получаване на данните през FTDI, съгласно протокола. Данните се получават през равни интервали. 3. Изчисляват се отместването и посоката. 4. Изчислява се честотата на база на отместването("MAP") 5. Данните се подават към инвертора чрез "модбъс": ако е в спряно състояние-старт със съответна посока и честота, ако е в движение, корекция на честота. Непрекъснато се следи положението на изхода, чрез потенциометъра на вала. При всяко получаване на данни се проверява дали има промяна в параметрите. Ако няма - нищо не се предава към инвертора, до достигане на зададеното състояние, след което следва "стоп".
Резултатът е, че с голяма прецизност следва движението на задаващия потенциометър. Това, което подлежи на корекция: 1. Ако е зададено положение А, посоката е положителна и в момент преди достигане на състоянието, се зададе ново положение В, което е в отрицателна посока, се получава смяна почти с удар. (това при условие, че промяната е рязка). Мисля, че намерих начина за решаване. След теста ще знам със сигурност. 2. При задаване на големи интервали, предполагащи високи честоти, инерцията предизвиква подминаване на положението. Решено е с таблица на корекции.
|
| Вто Ное 29, 2016 2:36 pm |
|
 |
|
DanielDimov
Ранг: Почетен член
Регистриран на: Нед Фев 16, 2014 3:36 pm Мнения: 953
|
 Re: Помощ за подбряване на алгоритъм
И двата ти проблема ПИД регулатора ги решава. Той точно за такива случаи е измислен. Ще трябва да смениш твоите точки 3 и 4.
|
| Вто Ное 29, 2016 3:10 pm |
|
 |
|
radolin
Ранг: Форумен бог
Регистриран на: Пон Дек 19, 2005 12:21 pm Мнения: 1037
|
 Re: Помощ за подбряване на алгоритъм
Проблем 1 с 'удара' PID-a не мисля, че ще го реши. При рязка смяна на заданието ще има и резки смени в изхода. За това по-скоро трябва някакъв ramp up/ramp down.
|
| Вто Ное 29, 2016 3:28 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11265 Местоположение: Добрич
|
 Re: Помощ за подбряване на алгоритъм
Даниеле, не подвеждай човека  ПИД управлението дава най-бърз преходен процес, което в повечето случаи ще означава голямо натоварване. Не помня вече дали през настройките можеше да се ограничи динамиката, ама по-скоро ми изглежда като кофти идея. По-добре е да си сложи ограничение на промяната (натоварването). Каквото и да е управлението, доколко е "управление" наистина ще се справи с "грешката" на по-късен етап. Мен повече ме притеснява втората точка с "подминаването"... явно става дума не за кофти управление, а липсващо такова 
|
| Вто Ное 29, 2016 3:40 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30684 Местоположение: София
|
 Re: Помощ за подбряване на алгоритъм
Относно ПИД, ще има рязка смяна в зависимост от Д коефициента, аз затова писах че по скоро ПИ е думата а не ПИД. Той затова е ПИД, ак искаш може да го орежеш до П или до И или до Д ... но не е там въпроса. С ПИД не може да избегнеш подминаване, той така си работи, е може и да може за конкретен случай с конкретни настройки, но все пак идеята му е да те държи около заданието с +/- някакво отклонение. И точно тук идва проблема, той няма спирачка, разчита мотора да си спре от самосебе си, и ако сме в еидн идеален свят ПИД-а ще се настрои и ще компенсира много точно тази латентност, да ама не сме, и както казах между зиме и лете само от грста ще имаш сериозно разминаване. Естетсвено с правилно настроен ПИД ще постигнеш максималното възможно приближение до заданието, но настройката хич няма да е толкова лесна. Те за разни такива случаи има нещкоето се нарича fuzzy PID, което не е нищо друго освен ПИД на който му менят коефициентите. Обикновенно там ще се получи по-бързо достигане на заданието, но отновно всичко зависи от настройки. И да се върнем на проблема, дали ще е ПИД, или просто пропорционално управлнеие, или ПИ .. доколкото от интегралната съставка да речем има полза в случая е все тая, въпросът е че може да регулира и П и И коефициента според грешката, т.е. за да постигне бързо достигане на заданието. Чукането нищо няма да го реши, първо трябва да се разбере къде чука, и кой кого чука, дали е в шпонката на двигателя, дали е в шпонката на някое колело, или пък на съединител .. както се казва божа работа. Най-благоприятно е да е в шпонката на двигателя тогава грешката ще е най-малка с оглед големия коефициент на предаване. От друга страна там щетата и износването ще са най-големи. Никаква рампа не може да го спаси ако чукането е в шпонката а двигателя, ако беше DC е едно но с асинхронен такава ниска скорост за да не чука не може да се постигне, а и не мисля че е нужно. Ако има чукане това е механичен проблем и решението е механично. За да минимизира подминаването еиднственият разумен и лесен начин е да спира по-бързо двигателя, това става или с механична спирачка или с електродинамична, и доколкото инвертора най-вероятно има такава функция това е и най-доброто решение, ниаккъв ПИД или какъвто и да е друг алгоритъм не може да я замени със същият ефект. А това дали ще има ПИД или не е друг въпрос, ако иска да пише ПИД ако иска да не пише, и в двата случая ако спира мотора ще получи по-висока точност.
|
| Вто Ное 29, 2016 4:06 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 4 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|