| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| ШИМ и редицата на Фарей http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=10322 |
Страница 1 от 2 |
| Автор: | anrieff [ Вто Юли 17, 2012 2:53 am ] |
| Заглавие: | ШИМ и редицата на Фарей |
Здравейте, преди няколко дни разлиствах пак документацията на 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 битов ШИМ, както беше първата графика. Теорията на Фарей ни предлага алтернативно намиране на междинната стойност, като генерира следващата дроб с най-малък знаменател, която е между двете дадени. Операцията се нарича "намиране на медианта" и е супер шантаво нещо (и до днес му се дивя как работи Така всъщност може да се намери най-доброто рационално приближение на произволно реално число от 0 до 1, чрез "двоично търсене" - тръгваме от дробите 0/1 и 1/1, и с многократно намиране на медиантата и отхвърляне на едната "половина", стигаме до желаната дроб. За доста хора, този метод изглежда по-лесен от развиването на египетски дроби. Та след тея примери, се чудя аз, защо тая магия не изглежда да се ползва много в практиката. Просто търсене в гугъл на PWM + Farey не ми извежда някакви смислени резултати. В дейташийтовете на Microchip, онези прилежно обясняват как да се зафиксира знаменателя, и се бият в гърдите, как числителят се задава през двойка регистри и е двойно-буфериран, и как, от реално 8-битов ШИМ вадят 10-битов с хакове - и пропускат тотално да споменат (дори в бележка под линия) за Фарей!?! Защо, по дяволите, "знаменателят" не е също двойно-буфериран? Не знам как е при другите производители (тук сте вие да кажете как е при тях), но се чудя защо е това пренебрежение към редицата на Фарей за ШИМ приложения и има ли някави технически прични извън "бе, изглежда ми сложно"? Как мислите? |
|
| Автор: | dan [ Вто Юли 17, 2012 9:32 am ] |
| Заглавие: | Re: ШИМ и редицата на Фарей |
Много ми харесва ентусиазма ти. Има си причина да не се ползва особено често: като промениш "знаменателя" променяш и честотата на ШИМ-а. Обикновено тази честота не се избира произволно, а според време-константите на управляваните вериги. Ако например L/R време-константата на стъпков мотор е 100us, хубаво е периода на ШИМ-а да се избере съизмерим с тази времеконстанта. Ако е по-голяма, намотките ще се насищат и ще се увеличат загубите в проводниците, ако е по-малка- има опасност да не достигнеш макс. въртящ момент. Освен това- грешките от коефициента на запълване на ШИМ често пъти са съизмерими с грешките от толерансите на филтриращите и другите елементи. Т.е. губи се смисъла . Дерзай! |
|
| Автор: | Desert Leo [ Вто Юли 17, 2012 10:34 am ] |
| Заглавие: | Re: ШИМ и редицата на Фарей |
Мдаааа. Луд умора нема, а резултата е само пот... |
|
| Автор: | woody [ Вто Юли 17, 2012 11:24 am ] | |||||||||
| Заглавие: | Re: ШИМ и редицата на Фарей | |||||||||
Защото носещата честота не се сменя, а не се сменя защото последващите вериги са оразмерени за нея (или тя е подбрана заради тях). Понякога ако се търси допълнително някой-друг бит разрешителна способност се прилага dither на коефицента на запълване във времето, например от 6-битовите TN LCD-та да се "извадят" 8 бита, но това си върви с комплекта недостатъци и проблеми естествено. |
||||||||||
| Автор: | Пушека [ Вто Юли 17, 2012 2:36 pm ] |
| Заглавие: | Re: ШИМ и редицата на Фарей |
Аз си мисля че има хляб в идеята. И ще се пробвам да сътворя 5бит DAC с НЧ филтър. Времето за достигане до установена стойност зависи от времеконстантата на филтъра. Пулсациите ще са променливи, но хубавото е че намалявайки битовете на периода можем да вдигнем честотата на ШИМа, а от това пулсаците винаги ще са по-малки от тези на стандартния ШИМ |
|
| Автор: | ToHu [ Вто Юли 17, 2012 3:18 pm ] |
| Заглавие: | Re: ШИМ и редицата на Фарей |
Ами колегите са го обеснили, аз всъщност имам едно или две приложения в които меня честотата, но не с цел получаване по до добра разделителна способност а поради чисто технологични причини, подобни на тези налагащи фиксирана честота. |
|
| Автор: | Пушека [ Вто Юли 17, 2012 4:36 pm ] |
| Заглавие: | Re: ШИМ и редицата на Фарей |
Само не мистана ясно, защо на картинката с променливите дупки (червената графика )няма голяма дупка в самото начало 0 --- 1/256 ? А на променливите дупки (черната ) я има - 0--1/32? |
|
| Автор: | Пушека [ Вто Юли 17, 2012 7:27 pm ] | ||
| Заглавие: | Re: ШИМ и редицата на Фарей | ||
Ето колко мазно се получава само с 4 бита (за периода и запълването). И доста по-бързо ще е. Само в долния край скока е доста мощен - 1/15.
|
|||
| Автор: | Desert Leo [ Вто Юли 17, 2012 7:39 pm ] |
| Заглавие: | Re: ШИМ и редицата на Фарей |
И каква е целта на задачата? |
|
| Автор: | Cekins [ Вто Юли 17, 2012 7:56 pm ] |
| Заглавие: | Re: ШИМ и редицата на Фарей |
Спортна злоба явно. Аз напоследък се занимавам с едни глупости дето се прилагат едни хватки с промяна на честотата, ама става въпрос за малки промени във високи честоти. Хич и не ми се мисли КАКВИ индуктивности трябва да се сложат за 5-6 киловата при 1-2 kHz |
|
| Автор: | Пушека [ Вто Юли 17, 2012 8:39 pm ] | |||||||||
| Заглавие: | Re: ШИМ и редицата на Фарей | |||||||||
Много е просто. Хващаме ПИК за 1-2$ макс. Което ще рече, че ще е максимално с 20Мхц клок. Искаме мазна линия, но и висока честота. Е тривиалното е периода да е 256 клока поне. Отзад го чака един НЧ филтър. Но за скок от ниво в следващото ниво, трябва да се изчакат едни 10ина периода поне с еднакво запълване. Ако това е синусоида за 1/4 период ни трябват 2560 клока. А за цял период 4х2560 = 10 240 клока. Сиреч максималната честота на желаната синусоида ще е 1953Хц и някак малнее доста. Ако това е честотата на стъпване на мотор с 200ст/об отиваме на няма и 10об/сек или 600 об/мин. По Схемата на Анериф честотата скача 16-20 пъти. Иначе варианти има с по-бързи процесори, и с корпуси с по 40крака и паралелно конвертване, но слагаме още $ и още кв.см. на платката. Така го мисля де, може и да бъркам някъде с числата. ПС всъщност бъркам ускоряването е към 30-40% |
||||||||||
| Автор: | Desert Leo [ Вто Юли 17, 2012 9:21 pm ] |
| Заглавие: | Re: ШИМ и редицата на Фарей |
Оффф... остарявам... 1. Напоследък, като хвана ПИК за 1-2$ макс. все 32MHz макс. клок ми излиза, ама както и да е... 2. Твоята линия не е мазна, особено в началото... 3. При положение, че има филтър на изхода що трябва да чакаш между нивата? 4. За генериране на синусоида има куп начини в зависимост от приложението. Приложения "по принцип" не коментирам, щото може с 20-тонен ТИР да ти пратя бутилка бира. Става, ама струва ли си? 5. Едва сега се появява бързо управление на стъпков двигател, а автора на темата пишеше нещо за управляем товар - я се разберете... Объркахте ме... По-висока резолюция на ШИМ-а ли се търси или що? |
|
| Автор: | ToHu [ Вто Юли 17, 2012 9:32 pm ] |
| Заглавие: | Re: ШИМ и редицата на Фарей |
Аз все мисля че търсят по висока резолюция на ШИМ, и не виждам това пък как влияе на скоростта на ШИМ-а .. по точно как това ще ти вдигне честотата на синусоидата .. може да стоплям бавно ама ... А и аз PIC вече почти не ползвам, има процесори с къде къде по добър и смислен PWM. |
|
| Автор: | Cekins [ Вто Юли 17, 2012 10:07 pm ] |
| Заглавие: | Re: ШИМ и редицата на Фарей |
Че то и пикове вече с по-така пвм-и има. А има и такива дето тичкат на 64 MHz. Това прави 62,5 kHz на обикновен PWM с 10 бита. Не ги знам само дали могат и да се овърклокнат малко. Аз доколкото схванах идеята е хем да има висока честота хем да има и резолюция. |
|
| Автор: | ToHu [ Вто Юли 17, 2012 10:32 pm ] |
| Заглавие: | Re: ШИМ и редицата на Фарей |
Абе скоро не съм ги гледал, ама на силабс повечетъо имат по 4 или 5 независими CCP, то там е един counter aray де, който има доста функции. |
|
| Страница 1 от 2 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|