Отговори на тема  [ 20 мнения ]  Отиди на страница 1, 2  Следваща
ШИМ и редицата на Фарей 
Автор Съобщение
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Нед Ное 16, 2008 1:16 pm
Мнения: 179
Местоположение: София
Мнение ШИМ и редицата на Фарей
Здравейте,

преди няколко дни разлиствах пак документацията на Microchip относно ШИМ възможностите на техните контролери и ми направи отново впечатление как описват подкарването на ШИМ с определен duty cycle - човек остава с впечатлението, че честотата на ШИМ-а се избира предварително и се фиксира - после само се мени запълването, което дава N възможни стъпки на запълване (равномерни интервали). При това N обикновено е степен на двойката (примерно онзи PIC поддържа 10-битов ШИМ, duty cycle-а е дроб със знаменател 1024 и променлив числител).

Тук човек може да се запита, "абе защо да ми е фиксиран знаменателя?". И конкретен пример - ако целим запълване точно 1/3, то най-добре да променим дължината на цикъла (и честотата на ШИМа), така че цикълът да има 3 деления, и да е запълнено 1 от 3-те. Изобщо, може да се намеси цялата артилерия зад любимата ми гимназиална материя - редиците на Фарей - и да се ползват произволни рационални дроби за определяне на duty cycle-a. Не само, че може да се намеси, ами се е утепало за нея - ето вижте за илюстрация -

възможните стъпки при 5-битов шим, N = 32:
Изображение

ето и след като включим всички възможни несъкратими дроби със знаменател ≤ 32:
Изображение

Редицата на Фарей е с неравномерна "дупка", но пък покритието в общия случай е много по-добро. По ирония на съдбата, големите дупки са точно около "простичките" дроби като 1/2, 1/3 и т.н.

Всъщност, дупките тук оставят човек с впечатлението, че подобрението не е чак толкова добро. Но при повече битове, подобрението е още по-фрапантно. Ето статистика за максималната дупка между две последователни дроби при 8-битов ШИМ и фиксиран знаменател:

Изображение

Нищо учудващо тук - константно 1/256 навсякъде.

Ако се оценят само максималните дупки при редицата на Фарей с дроби до знаменател 256, то се получава следната красота:

Изображение

Ако се разгледа само средната дупка, то нещата вече са доста по-гладки:
Изображение

T.e., ако игнорираме няколкото лоши примера, в средния случай имаме разделителна способност над една десетохилядна - или еквивалентното на 13-14 битов ШИМ! И това без допълнителен хардуер, само с малко математика - и то не особено сложна такава. Ще дам едно примерче:

Нека се колебаем дали да ползваме запълване от 2/5 (0.40 като числена стойност) и 3/7 (~0.4286). Примерно, в моята задачка, ШИМ-а го мисля да се ползва за фино задаване на постоянното напрежение на гейта на един MOSFET (след RC група, разбира се), който да играе като настройваем товар. През обратната връзка съм определил, че при 2/5 запълване токът е прекалено малко, а при 3/7 - прекалено много. Междинната дроб може да се намери с конвенционална математика - привеждане под общ знаменател (14/35 и 15/35 респективно), и средата е 29/70 (~0.4142857). Обаче знаменателят тука скача много - вече не можем да го изпълним, ако сме на 5 битов ШИМ, както беше първата графика. Теорията на Фарей ни предлага алтернативно намиране на междинната стойност, като генерира следващата дроб с най-малък знаменател, която е между двете дадени. Операцията се нарича "намиране на медианта" и е супер шантаво нещо (и до днес му се дивя как работи :)). Правим новата дроб, като за числител ползваме сбора от числителите на входните дроби, и за знаменател - пак сбора от знаменателите на входните дроби - тотално се абстрахираме от всичко, което сме учили в училището. Т.е. новата дроб между 2/5 и 3/7 е (2+3)/(5+7) = 5/12 или ~0.416667 - не точно по средата, но достатъчно близо.

Така всъщност може да се намери най-доброто рационално приближение на произволно реално число от 0 до 1, чрез "двоично търсене" - тръгваме от дробите 0/1 и 1/1, и с многократно намиране на медиантата и отхвърляне на едната "половина", стигаме до желаната дроб. За доста хора, този метод изглежда по-лесен от развиването на египетски дроби.

Та след тея примери, се чудя аз, защо тая магия не изглежда да се ползва много в практиката. Просто търсене в гугъл на PWM + Farey не ми извежда някакви смислени резултати. В дейташийтовете на Microchip, онези прилежно обясняват как да се зафиксира знаменателя, и се бият в гърдите, как числителят се задава през двойка регистри и е двойно-буфериран, и как, от реално 8-битов ШИМ вадят 10-битов с хакове - и пропускат тотално да споменат (дори в бележка под линия) за Фарей!?! Защо, по дяволите, "знаменателят" не е също двойно-буфериран? Не знам как е при другите производители (тук сте вие да кажете как е при тях), но се чудя защо е това пренебрежение към редицата на Фарей за ШИМ приложения и има ли някави технически прични извън "бе, изглежда ми сложно"?

Как мислите?

_________________
2 + 2 = 5, при много големи стойности на 2.


Вто Юли 17, 2012 2:53 am
Профил ICQ WWW
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Май 29, 2007 2:23 pm
Мнения: 3714
Местоположение: Високо в планината
Мнение Re: ШИМ и редицата на Фарей
Много ми харесва ентусиазма ти.
Има си причина да не се ползва особено често: като промениш "знаменателя" променяш и честотата на ШИМ-а. Обикновено тази честота не се избира произволно, а според време-константите на управляваните вериги. Ако например L/R време-константата на стъпков мотор е 100us, хубаво е периода на ШИМ-а да се избере съизмерим с тази времеконстанта. Ако е по-голяма, намотките ще се насищат и ще се увеличат загубите в проводниците, ако е по-малка- има опасност да не достигнеш макс. въртящ момент.

Освен това- грешките от коефициента на запълване на ШИМ често пъти са съизмерими с грешките от толерансите на филтриращите и другите елементи. Т.е. губи се смисъла .

Дерзай!

_________________
Хайде де!


Вто Юли 17, 2012 9:32 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 10, 2005 3:25 pm
Мнения: 5677
Местоположение: София
Мнение Re: ШИМ и редицата на Фарей
Мдаааа. Луд умора нема, а резултата е само пот...


Вто Юли 17, 2012 10:34 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Юли 31, 2007 2:55 pm
Мнения: 1792
Местоположение: София
Мнение Re: ШИМ и редицата на Фарей
anrieff написа:
Защо, по дяволите, "знаменателят" не е също двойно-буфериран?

Защото носещата честота не се сменя, а не се сменя защото последващите вериги са оразмерени за нея (или тя е подбрана заради тях).

Понякога ако се търси допълнително някой-друг бит разрешителна способност се прилага dither на коефицента на запълване във времето, например от 6-битовите TN LCD-та да се "извадят" 8 бита, но това си върви с комплекта недостатъци и проблеми естествено.


Вто Юли 17, 2012 11:24 am
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Пон Апр 16, 2012 9:05 pm
Мнения: 182
Мнение Re: ШИМ и редицата на Фарей
Аз си мисля че има хляб в идеята. И ще се пробвам да сътворя 5бит DAC с НЧ филтър.
Времето за достигане до установена стойност зависи от времеконстантата на филтъра. Пулсациите ще са променливи, но хубавото е че намалявайки битовете на периода можем да вдигнем честотата на ШИМа, а от това пулсаците винаги ще са по-малки от тези на стандартния ШИМ


Вто Юли 17, 2012 2:36 pm
Профил
Online
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30686
Местоположение: София
Мнение Re: ШИМ и редицата на Фарей
Ами колегите са го обеснили, аз всъщност имам едно или две приложения в които меня честотата, но не с цел получаване по до добра разделителна способност а поради чисто технологични причини, подобни на тези налагащи фиксирана честота.


Вто Юли 17, 2012 3:18 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Пон Апр 16, 2012 9:05 pm
Мнения: 182
Мнение Re: ШИМ и редицата на Фарей
Само не мистана ясно, защо на картинката с променливите дупки (червената графика )няма голяма дупка в самото начало 0 --- 1/256 ?
А на променливите дупки (черната ) я има - 0--1/32?


Вто Юли 17, 2012 4:36 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Пон Апр 16, 2012 9:05 pm
Мнения: 182
Мнение Re: ШИМ и редицата на Фарей
Ето колко мазно се получава само с 4 бита (за периода и запълването). И доста по-бързо ще е. Само в долния край скока е доста мощен - 1/15.


Прикачени файлове:
4bit lader.JPG
4bit lader.JPG [ 56.23 KiB | Прегледано 2775 пъти ]
Вто Юли 17, 2012 7:27 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 10, 2005 3:25 pm
Мнения: 5677
Местоположение: София
Мнение Re: ШИМ и редицата на Фарей
И каква е целта на задачата?


Вто Юли 17, 2012 7:39 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение Re: ШИМ и редицата на Фарей
Спортна злоба явно. Аз напоследък се занимавам с едни глупости дето се прилагат едни хватки с промяна на честотата, ама става въпрос за малки промени във високи честоти. Хич и не ми се мисли КАКВИ индуктивности трябва да се сложат за 5-6 киловата при 1-2 kHz 8)


Вто Юли 17, 2012 7:56 pm
Профил ICQ
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Пон Апр 16, 2012 9:05 pm
Мнения: 182
Мнение Re: ШИМ и редицата на Фарей
Desert Leo написа:
И каква е целта на задачата?

Много е просто. Хващаме ПИК за 1-2$ макс. Което ще рече, че ще е максимално с 20Мхц клок. Искаме мазна линия, но и висока честота. Е тривиалното е периода да е 256 клока поне. Отзад го чака един НЧ филтър. Но за скок от ниво в следващото ниво, трябва да се изчакат едни 10ина периода поне с еднакво запълване. Ако това е синусоида за 1/4 период ни трябват 2560 клока. А за цял период 4х2560 = 10 240 клока. Сиреч максималната честота на желаната синусоида ще е 1953Хц и някак малнее доста. Ако това е честотата на стъпване на мотор с 200ст/об отиваме на няма и 10об/сек или 600 об/мин. По Схемата на Анериф честотата скача 16-20 пъти.
Иначе варианти има с по-бързи процесори, и с корпуси с по 40крака и паралелно конвертване, но слагаме още $ и още кв.см. на платката.
Така го мисля де, може и да бъркам някъде с числата.

ПС всъщност бъркам ускоряването е към 30-40%


Вто Юли 17, 2012 8:39 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 10, 2005 3:25 pm
Мнения: 5677
Местоположение: София
Мнение Re: ШИМ и редицата на Фарей
Оффф... остарявам...

1. Напоследък, като хвана ПИК за 1-2$ макс. все 32MHz макс. клок ми излиза, ама както и да е...
2. Твоята линия не е мазна, особено в началото...
3. При положение, че има филтър на изхода що трябва да чакаш между нивата?
4. За генериране на синусоида има куп начини в зависимост от приложението. Приложения "по принцип" не коментирам, щото може с 20-тонен ТИР да ти пратя бутилка бира. Става, ама струва ли си?
5. Едва сега се появява бързо управление на стъпков двигател, а автора на темата пишеше нещо за управляем товар - я се разберете...

Объркахте ме... По-висока резолюция на ШИМ-а ли се търси или що?


Вто Юли 17, 2012 9:21 pm
Профил
Online
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30686
Местоположение: София
Мнение Re: ШИМ и редицата на Фарей
Аз все мисля че търсят по висока резолюция на ШИМ, и не виждам това пък как влияе на скоростта на ШИМ-а .. по точно как това ще ти вдигне честотата на синусоидата .. може да стоплям бавно ама ...
А и аз PIC вече почти не ползвам, има процесори с къде къде по добър и смислен PWM.


Вто Юли 17, 2012 9:32 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение Re: ШИМ и редицата на Фарей
Че то и пикове вече с по-така пвм-и има. А има и такива дето тичкат на 64 MHz. Това прави 62,5 kHz на обикновен PWM с 10 бита. Не ги знам само дали могат и да се овърклокнат малко. :)

Аз доколкото схванах идеята е хем да има висока честота хем да има и резолюция.


Вто Юли 17, 2012 10:07 pm
Профил ICQ
Online
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30686
Местоположение: София
Мнение Re: ШИМ и редицата на Фарей
Абе скоро не съм ги гледал, ама на силабс повечетъо имат по 4 или 5 независими CCP, то там е един counter aray де, който има доста функции.


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

Кой е на линия

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


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

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