| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Минимизация на грешка http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=2848 |
Страница 1 от 2 |
| Автор: | Ки4о [ Пон Сеп 04, 2006 5:54 pm ] |
| Заглавие: | Минимизация на грешка |
Постановката на задачата е следната - измерва се производна на ток.Математически,израза който използвам е следния:dI(t)/dt ~ [I(n)-I(n-1)]/dt,разликата от настоящия и предидущия отчет разделени на времето между двата отчета.Целия проблем идва от това,че ако във времето между две вземания на отчет се появи някакво случайно колебание на тока,то по горната формула това не може да се отчете .Ако има колебание в интервала между отчетите той колкото и да е малък,пак става невъзможно да се хване пика.Дайте някаква идея щото се виждам в чудо. |
|
| Автор: | Predator_MF [ Пон Сеп 04, 2006 6:03 pm ] | |||
| Заглавие: | ||||
Правил съм същото нещо, при мен обаче измерванията се изчертават върху диаграма и резултата от тия колебания в тока изпъкват изключително много. Ще се включа малко по-късно да ти обясня как съм реализирал филтъра за такива смущения, иначе ето резултата
|
||||
| Автор: | sthx [ Пон Сеп 04, 2006 6:12 pm ] |
| Заглавие: | Re: Минимизация на грешка |
Ako е мрежов ток, решението е или DSP или подходящ аналогов филтър. Както усещам, най-лесен ще ти е втория вариант. Преди години и аз се блъсках с този проблем (регулатор на фактора на мащността) и стигнах до това решение. |
|
| Автор: | Ки4о [ Пон Сеп 04, 2006 6:35 pm ] |
| Заглавие: | |
При мен проблема е управление на 3-фазен двигател.За да се поддържа постоянен момент при променлива скорост в широк диапазон на регулиране,потока трябва да е константен.Динамиката на товара изисква от управлението за всеки градус завъртане да се смята изменението на тока а от там така да се регулира напрежението с инвертора,че да се запази потока и оборотите.В противен случай работата се нарушава. |
|
| Автор: | Predator_MF [ Пон Сеп 04, 2006 6:49 pm ] |
| Заглавие: | |
Единия начин е да си поставиш една константа за максимум на dI , така при всяко измерване да сравняваш тая константа с dI и ако имаш по-голяма стойност да отчиташ съответното измерване като невалидно...това е малко дърварско решение, другия начин е да си смяташ вектор на изменение на тока и да сравняваш всеки следващ резултат дали е в съотношение с вектора, тоя вариант обаче изисква доста сметки |
|
| Автор: | Ки4о [ Пон Сеп 04, 2006 7:21 pm ] |
| Заглавие: | |
При мен тази константа за dI я има -определя максималното значение на тока.Всяка стойност се сравнява с нея и стойност над нея изключва-така че това не е дърварско решение а част от програмата.Резултантния ми вектор е сума от три вектора(по 3-те фази).Работата е там,че аз задавам посоката и скоростта на въртене на вектора,в същото време трябва да измеря токовете,да реша диференциалните уравнвния да съпоставя с моментното положение и да взема решение как да превключа инвертора.Целия проблем идва от производната.Мислех да пресмятам като средноквадратична стойност за да се намали грешката или да взема няколко производни ,да усредня стойността им за даден момент от време и да използвам тази стойност - но математиката силно нараства. То се вижда че се отива към DSP.В момента съм пуснал инвертора с един PIC18,оборотите се регулират но не по закона по който изкам да става а и има и много вибрации.Мисля още малко да си поблъскам главата с математиките,но на PIC много ме спира делението на 16 bit числа (не че не го правя на асемблер но е бавно).На С има още много какво да уча |
|
| Автор: | sthx [ Пон Сеп 04, 2006 8:10 pm ] |
| Заглавие: | |
Миналата година разглеждах омронското решение на проблема за 200Hz трифазен сервомотор, работещ на 200V. Не си спомням точно вида на процесора (може и да не съм го видял), но беше с радиатор. Тая задачка е много красива и ме интерисува. Като се справиш, похвали се. Ако те нерви умножението и делението, можеш да ползваш моторолските процесори. |
|
| Автор: | ToHu [ Пон Сеп 04, 2006 9:11 pm ] |
| Заглавие: | |
Сега малко .. не е съвсем ясно, ти се притесняваш че няма да ханеш колебания в тока които са между два отчета, или че ще имаш пролеми с подобиколебния. Защото това което Predatоr предлага е как д отфилтрираш тзи колебания, но май на теб не ти трябва да ги отфилтрираш а точно обратното. |
|
| Автор: | Ки4о [ Вто Сеп 05, 2006 12:20 pm ] |
| Заглавие: | |
Ако между 2 отчета имаш рязко нарастване на тока,т.е имаш голям динамичен спирачен момент на вала на двигателя,не можеш да дигнеш тока(респективно магнитния поток) и по този начин вала може да се окаже застопорен от силата приложена на вала му за момент(или разтоварен и оборотите се вдигат).В следващия момент (ако спирачния момент не осцилира) ще се хване тази промяна,но се получава една неравномерна работа което искам да избегна.Ако се знае производната и нейния знак който се получава от пресмятането и може да се определи дали външното въздействие е ускоряващо или спиращо за двигателя.Това е другия проблем - ако имаш спускане на товар с постоянна скорост не трябва да се допускат ускоряващи процеси.Тук пак ми трябва производната и пак се получава същата гнусна история.Трябва ми амплитудата (моментната стойност) на колебанието на тока,а не да го отфилтрирам.Правя едни сметки колко трябва да е честота на взенане на отчети но се оказва че тя варира в зависимост от оборотите и ъгъла на които искам да се завърти вала при ниски обороти. Като гледам Хищника как се справя с производните може да направи доста голям бизнес с управление на термични процеси.Там доста се използват тези неща. |
|
| Автор: | Predator_MF [ Вто Сеп 05, 2006 2:37 pm ] |
| Заглавие: | |
Мда, в твоя случай е доста по-различно, от първия ти пост разбрах че искаш да отфилтрираш пикови стойности, но в случая точно те са най-важни |
|
| Автор: | sthx [ Вто Сеп 05, 2006 5:39 pm ] |
| Заглавие: | |
Мнение по принцип - можеш да реализираш аналогова диференцирашо звено с последващ върхов детектор, който да го нулираш след четене. Проблемът е в параметрите на звената. Може и да се получи нещо. За всеки случай решаваш в първо приближение проблема с времевата дискретизация. Ако разчетите покажат необходимост, можеш да ползваш няколко паралелни такива звена, за да минимизираш методичната грешка. Или пък да променяш параметрите в зависимост от честотата. Всичко е въпрос на компромиси. |
|
| Автор: | zaphod [ Вто Сеп 05, 2006 8:55 pm ] |
| Заглавие: | |
е, знам че сме в клуб mcu, ама я си направи аналогово управление |
|
| Автор: | nik [ Вто Сеп 05, 2006 9:20 pm ] | |||||||||
| Заглавие: | ||||||||||
ако правилно съм разбрал имаш проблем с такта на дискретизация...... едно време съм ги учил тея неща но вече съм ги забравил.... имаше нещо от рода че такта на дискредизация се избира 6-10 пъти по малък от най малката времеконстанта - в случая тя ти зависи от инерцията на ротора. говориш за рязко натоварване, колкото и да е голямо това натоварване ротора все пак си има инерция и е нужно време за спад на оборотите, ако избереш такт на дискретизация 10 пъти по малък от това време със сигърност ще хванеш тази промяна и ще има време за корекция в управлението, в момента пиша с един пик18 за дц сервомотор, такта ми е от 1 до 2 килохерца, но под 1 кхз работата почва да прилича на твоята колкото до сметките... по приказките ти като те слушам (чета ) |
||||||||||
| Автор: | Ки4о [ Вто Сеп 05, 2006 10:02 pm ] |
| Заглавие: | |
Ник,прав си но ако двигателя се върти с 1 оборот в минута нямаш инерция(практически може и да има някакъв инерционен момент,но той е пренебрежимо малък).Проблемите се проявяват при ниските обороти.До сега го управлявах със синусоида получена от шим,но не мога да избягам от проблема при ниските обороти - вибрациите и загряването.Доста съм се задълбал в теорията и практически мисля да смятам с матрици.Проблема идва че преди това трябва да се знае диференциала на тока,да се замести в матрицата.За момента това ме спира и търся решение.Хардуеерния умножител е нещо наистина хубаво,но ми трябва и хардуеерен делител - тогава ще е още по-лесно |
|
| Автор: | nik [ Вто Сеп 05, 2006 10:32 pm ] |
| Заглавие: | |
за трифазен двигател четах някъде че при много ниски обороти е по добре регулирането да става чрез хлъзгането,за да увеличиш хлъзгането намаляш напрежението а честотата си остава да кажем 30-40-50 херца, което ще рече че намалянето на оборотите да се регулира с напрежението... не съм си играл още, но някой ден със сигурност и това ще пробвам.... колкото до ниските обороти... пробвай с 1килохерц такт на дискретизация - ще останеш доволен какво ползваш за обратна връзка? тахо-то почва да издъхва под определени обороти |
|
| Страница 1 от 2 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|