Отговори на тема  [ 27 мнения ]  Отиди на страница 1, 2  Следваща
Минимизация на грешка 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Юли 22, 2006 9:50 pm
Мнения: 1638
Мнение Минимизация на грешка
Постановката на задачата е следната - измерва се производна на ток.Математически,израза който използвам е следния:dI(t)/dt ~ [I(n)-I(n-1)]/dt,разликата от настоящия и предидущия отчет разделени на времето между двата отчета.Целия проблем идва от това,че ако във времето между две вземания на отчет се появи някакво случайно колебание на тока,то по горната формула това не може да се отчете .Ако има колебание в интервала между отчетите той колкото и да е малък,пак става невъзможно да се хване пика.Дайте някаква идея щото се виждам в чудо. :cry:


Пон Сеп 04, 2006 5:54 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
Правил съм същото нещо, при мен обаче измерванията се изчертават върху диаграма и резултата от тия колебания в тока изпъкват изключително много. Ще се включа малко по-късно да ти обясня как съм реализирал филтъра за такива смущения, иначе ето резултата


Прикачени файлове:
Коментар на файл: Без филтър
peakoff.gif
peakoff.gif [ 11 KiB | Прегледано 4270 пъти ]
Коментар на файл: С филтър
peakon.gif
peakon.gif [ 10.26 KiB | Прегледано 4270 пъти ]
Пон Сеп 04, 2006 6:03 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Съб Юни 24, 2006 8:25 pm
Мнения: 2292
Мнение Re: Минимизация на грешка
Ako е мрежов ток, решението е или DSP или подходящ аналогов филтър. Както усещам, най-лесен ще ти е втория вариант.
Преди години и аз се блъсках с този проблем (регулатор на фактора на мащността) и стигнах до това решение.

_________________
Две плюс две е приблизително равно на четири. Факт!


Пон Сеп 04, 2006 6:12 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Юли 22, 2006 9:50 pm
Мнения: 1638
Мнение 
При мен проблема е управление на 3-фазен двигател.За да се поддържа постоянен момент при променлива скорост в широк диапазон на регулиране,потока трябва да е константен.Динамиката на товара изисква от управлението за всеки градус завъртане да се смята изменението на тока а от там така да се регулира напрежението с инвертора,че да се запази потока и оборотите.В противен случай работата се нарушава. :oops:


Пон Сеп 04, 2006 6:35 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
Единия начин е да си поставиш една константа за максимум на dI , така при всяко измерване да сравняваш тая константа с dI и ако имаш по-голяма стойност да отчиташ съответното измерване като невалидно...това е малко дърварско решение, другия начин е да си смяташ вектор на изменение на тока и да сравняваш всеки следващ резултат дали е в съотношение с вектора, тоя вариант обаче изисква доста сметки


Пон Сеп 04, 2006 6:49 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Юли 22, 2006 9:50 pm
Мнения: 1638
Мнение 
При мен тази константа за dI я има -определя максималното значение на тока.Всяка стойност се сравнява с нея и стойност над нея изключва-така че това не е дърварско решение а част от програмата.Резултантния ми вектор е сума от три вектора(по 3-те фази).Работата е там,че аз задавам посоката и скоростта на въртене на вектора,в същото време трябва да измеря токовете,да реша диференциалните уравнвния да съпоставя с моментното положение и да взема решение как да превключа инвертора.Целия проблем идва от производната.Мислех да пресмятам като средноквадратична стойност за да се намали грешката или да взема няколко производни ,да усредня стойността им за даден момент от време и да използвам тази стойност - но математиката силно нараства. То се вижда че се отива към DSP.В момента съм пуснал инвертора с един PIC18,оборотите се регулират но не по закона по който изкам да става а и има и много вибрации.Мисля още малко да си поблъскам главата с математиките,но на PIC много ме спира делението на 16 bit числа (не че не го правя на асемблер но е бавно).На С има още много какво да уча :oops: С аналоговите филтри ме притеснява фазовите характеристики. За това и попитах- някой може да е имал сходни проблеми и да каже нещо.


Пон Сеп 04, 2006 7:21 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Съб Юни 24, 2006 8:25 pm
Мнения: 2292
Мнение 
Миналата година разглеждах омронското решение на проблема за 200Hz трифазен сервомотор, работещ на 200V. Не си спомням точно вида на процесора (може и да не съм го видял), но беше с радиатор.
Тая задачка е много красива и ме интерисува. Като се справиш, похвали се.
Ако те нерви умножението и делението, можеш да ползваш моторолските процесори.

_________________
Две плюс две е приблизително равно на четири. Факт!


Пон Сеп 04, 2006 8:10 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30684
Местоположение: София
Мнение 
Сега малко .. не е съвсем ясно, ти се притесняваш че няма да ханеш колебания в тока които са между два отчета, или че ще имаш пролеми с подобиколебния. Защото това което Predatоr предлага е как д отфилтрираш тзи колебания, но май на теб не ти трябва да ги отфилтрираш а точно обратното.


Пон Сеп 04, 2006 9:11 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Юли 22, 2006 9:50 pm
Мнения: 1638
Мнение 
Ако между 2 отчета имаш рязко нарастване на тока,т.е имаш голям динамичен спирачен момент на вала на двигателя,не можеш да дигнеш тока(респективно магнитния поток) и по този начин вала може да се окаже застопорен от силата приложена на вала му за момент(или разтоварен и оборотите се вдигат).В следващия момент (ако спирачния момент не осцилира) ще се хване тази промяна,но се получава една неравномерна работа което искам да избегна.Ако се знае производната и нейния знак който се получава от пресмятането и може да се определи дали външното въздействие е ускоряващо или спиращо за двигателя.Това е другия проблем - ако имаш спускане на товар с постоянна скорост не трябва да се допускат ускоряващи процеси.Тук пак ми трябва производната и пак се получава същата гнусна история.Трябва ми амплитудата (моментната стойност) на колебанието на тока,а не да го отфилтрирам.Правя едни сметки колко трябва да е честота на взенане на отчети но се оказва че тя варира в зависимост от оборотите и ъгъла на които искам да се завърти вала при ниски обороти.
Като гледам Хищника как се справя с производните може да направи доста голям бизнес с управление на термични процеси.Там доста се използват тези неща.


Вто Сеп 05, 2006 12:20 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
Мда, в твоя случай е доста по-различно, от първия ти пост разбрах че искаш да отфилтрираш пикови стойности, но в случая точно те са най-важни


Вто Сеп 05, 2006 2:37 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Съб Юни 24, 2006 8:25 pm
Мнения: 2292
Мнение 
Мнение по принцип - можеш да реализираш аналогова диференцирашо звено с последващ върхов детектор, който да го нулираш след четене. Проблемът е в параметрите на звената. Може и да се получи нещо. За всеки случай решаваш в първо приближение проблема с времевата дискретизация. Ако разчетите покажат необходимост, можеш да ползваш няколко паралелни такива звена, за да минимизираш методичната грешка. Или пък да променяш параметрите в зависимост от честотата. Всичко е въпрос на компромиси.

_________________
Две плюс две е приблизително равно на четири. Факт!


Вто Сеп 05, 2006 5:39 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юли 24, 2005 10:28 am
Мнения: 2658
Мнение 
е, знам че сме в клуб mcu, ама я си направи аналогово управление :)


Вто Сеп 05, 2006 8:55 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Сря Мар 22, 2006 3:25 am
Мнения: 6418
Мнение 
Ки4о написа:
Ако между 2 отчета имаш рязко нарастване на тока,т.е имаш голям динамичен спирачен момент на вала на двигателя,не можеш да дигнеш тока(респективно магнитния поток) и по този начин вала може да се окаже застопорен от силата приложена на вала му за момент(или разтоварен и оборотите се вдигат).В следващия момент (ако спирачния момент не осцилира) ще се хване тази промяна,но се получава една неравномерна работа което искам да избегна.Ако се знае производната и нейния знак който се получава от пресмятането и може да се определи дали външното въздействие е ускоряващо или спиращо за двигателя.Това е другия проблем - ако имаш спускане на товар с постоянна скорост не трябва да се допускат ускоряващи процеси.Тук пак ми трябва производната и пак се получава същата гнусна история.Трябва ми амплитудата (моментната стойност) на колебанието на тока,а не да го отфилтрирам.Правя едни сметки колко трябва да е честота на взенане на отчети но се оказва че тя варира в зависимост от оборотите и ъгъла на които искам да се завърти вала при ниски обороти.
Като гледам Хищника как се справя с производните може да направи доста голям бизнес с управление на термични процеси.Там доста се използват тези неща.


ако правилно съм разбрал имаш проблем с такта на дискретизация...... едно време съм ги учил тея неща но вече съм ги забравил.... имаше нещо от рода че такта на дискредизация се избира 6-10 пъти по малък от най малката времеконстанта - в случая тя ти зависи от инерцията на ротора. говориш за рязко натоварване, колкото и да е голямо това натоварване ротора все пак си има инерция и е нужно време за спад на оборотите, ако избереш такт на дискретизация 10 пъти по малък от това време със сигърност ще хванеш тази промяна и ще има време за корекция в управлението, в момента пиша с един пик18 за дц сервомотор, такта ми е от 1 до 2 килохерца, но под 1 кхз работата почва да прилича на твоята :)
колкото до сметките... по приказките ти като те слушам (чета ) :) май сме учили едно и също.... и аз съм я учил тая теория с уравнения и простотии.... ама забрави да го заложиш директно в пик , има регулатори които и дсп ще се изпоти ако не направиш някои опростявания, в момента ми работят един ПИ и един ПД регулатор със защити и ограничения, кода написан на С 1 такт го изпълнява за 300 микросекунди, по нататък ще го обърна на асемблер предполагам времето ще падне на половина, но всичко е с много опростявания - деленията ги свеждаш до степените на 2, умноженията ползваш хардуерния умножител само с една проверка на знака преди това,минаваш на фиксирана запетая, да кажем (8бит) . (8бит), всички сметки ги опростяваш предварително на хартия и работата ще стане даже и с пик18


Вто Сеп 05, 2006 9:20 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Юли 22, 2006 9:50 pm
Мнения: 1638
Мнение 
Ник,прав си но ако двигателя се върти с 1 оборот в минута нямаш инерция(практически може и да има някакъв инерционен момент,но той е пренебрежимо малък).Проблемите се проявяват при ниските обороти.До сега го управлявах със синусоида получена от шим,но не мога да избягам от проблема при ниските обороти - вибрациите и загряването.Доста съм се задълбал в теорията и практически мисля да смятам с матрици.Проблема идва че преди това трябва да се знае диференциала на тока,да се замести в матрицата.За момента това ме спира и търся решение.Хардуеерния умножител е нещо наистина хубаво,но ми трябва и хардуеерен делител - тогава ще е още по-лесно :) Аз на С съм МНОГО ЗЛЕ но пък на асемблер се справям, С-то сега го уча :oops:


Вто Сеп 05, 2006 10:02 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Сря Мар 22, 2006 3:25 am
Мнения: 6418
Мнение 
за трифазен двигател четах някъде че при много ниски обороти е по добре регулирането да става чрез хлъзгането,за да увеличиш хлъзгането намаляш напрежението а честотата си остава да кажем 30-40-50 херца, което ще рече че намалянето на оборотите да се регулира с напрежението... не съм си играл още, но някой ден със сигурност и това ще пробвам....
колкото до ниските обороти... пробвай с 1килохерц такт на дискретизация - ще останеш доволен
какво ползваш за обратна връзка? тахо-то почва да издъхва под определени обороти


Вто Сеп 05, 2006 10:32 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 27 мнения ]  Отиди на страница 1, 2  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 8 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни