| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Алгоритъм на Bresenham - управление на SSR http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=7014 |
Страница 1 от 3 |
| Автор: | Infinity [ Сря Юли 29, 2009 1:05 am ] |
| Заглавие: | Алгоритъм на Bresenham - управление на SSR |
Става въпрос за управление на активен товар на 220V/50Hz.В основата на принципа на управление стои следното - товарът се управлява с zero-crossing,като с помощта на алгоритъма на Bresenham се определя такова разпределение и продължителност на периодите on/off на симистора/тиристори/,че се постига степенно регулиране на мощността върху товара,с определена резолюция,нещо като PWM и най-важното - с равномерно рапределение на on_полупериодите и off_полупериодите.Някой правил ли е такова нещо,ако имате идеи как да стане практически най-лесно - споделете.Мерси! |
|
| Автор: | woody [ Сря Юли 29, 2009 9:26 am ] |
| Заглавие: | |
Какво точно ще ти помогне Брезенхам в случая? Генерирането на импулси за отпушване на силовия елемент е елементарно - имаш минимален и максимален ъгъл на отпушване (както и минимална ширина на импулса), избираш си какъв точно ъгъл искаш в момента. Синхронизираш по zero-crossing на фазата. Ако търсиш линеаризация на мощността си правиш таблица. И гледаш положителните и отрицателните полупериоди да са симетрични. |
|
| Автор: | ДедоБоре [ Сря Юли 29, 2009 1:33 pm ] |
| Заглавие: | |
уди, човека иска да работи само с цели полупериоди и да апроксимира кривата на желаната мощност към реалната/моментна като закръглява на цял (полу)период. а защо с брезенхам? сигурно някой болен асистентски мозък го иска за курсова задача... |
|
| Автор: | tgi [ Сря Юли 29, 2009 1:48 pm ] |
| Заглавие: | |
Не знам какъв е тоя Брезенхам, ама с триаци/тиристори хем zero crossing, хем фазово управление очевидно не става. Аналогичният случай в наше село беше преди 15-ина години, когато правих един 0 до 5 kV модул за първия нюкман; обратната връзка отиваше във вид на 0 до 5 волта на един ADC вход на HC11, един PWM изход щракаше ключа в първичната намотка (flyback convertor, очевидно). Та аналогичното в случая дойде от там, че разделителната способност на PWM-а беше 0.5 микросекунди; много повече, отколкото трябваше за плавно регулиране. Какво направих - ами Брезенхам не Брезенхам (не съм го ни чувал, ни виждал тоя един втори период, примерно 20 пъти колкото тоя на PWM-то (EEPROM програмируемо, както беше и честотата на PWM-а), и почнах двете съседни стойности да ги задавам в рамките на този период, от 1 на 20 за по-малката до 20 на 20 за същата. Работят и до ден днешен. Много други варианти за това zero-crossing не виждам - вариращ брой пуснати полупериоди за даден интервал от време на колкото е възможно по-равни интервали вътре в рамките на периода, какво друго може да направи човек. |
|
| Автор: | Wise [ Сря Юли 29, 2009 2:01 pm ] |
| Заглавие: | |
На мен ми се струва смислен въпроса. Примерно - правиш си 5 секунди такт. Това са около 1 байт синусоиди. За този период пускаш САМО ЦЕЛИ такива - от 0 до 249. И искаш да са разпределени равномерно, за някакъв дълъг период - не 5 накуп и после 244 - нулеви. Та ако знаеш големия период и запълването в малкия - да ги пръснеш подходящо. /не съм нищичко чел за подобни методи - просто ми се струва приемливо/ Но пък времето е толкова голямо, че можеш всякакви сметки да правиш. |
|
| Автор: | ДедоБоре [ Сря Юли 29, 2009 2:38 pm ] |
| Заглавие: | |
не се излагайте... http://en.wikipedia.org/wiki/Bresenham's_line_algorithm то верно, че съвременната тенденция на решаване на проблемите е силова (МИПС-ве, а не алгоритми), ама... някак си не мога да приема да рендваш тексели, без да си наясно с пикселите а дали ще с брезенхам или с питагоровата теорема ми се вижда еднакво отвлечено като постановка. но ако даскала е казал брезенхам - тогава трябва да е с брезенхам (ако целта е заверка) |
|
| Автор: | tgi [ Сря Юли 29, 2009 3:00 pm ] |
| Заглавие: | |
Ми не бях го чел, не го прочетох цялото и сега. Но преди 20-ина и кусур години, когато писах първите си графични библиотеки, нямах проблем как да ги направя - то и няма повече от един разумен начин. И сегашните в DPS-а - последно ги правих за power architecture преди няколко години - са все така правени. Времето да измисля алгоритъма, което съм похарчил общо за всичките графични библиотеки, дето съм писал, май е по-малко от времето, което би ми отнело да прочета статията в wikipedia... Знанията по елементарна геометрия са повече от достатъчни за да бъде тоя алгоритъм очевиден за всеки, комуто потрябва - и без да е чувал името (аз не бях го чувал досега). |
|
| Автор: | ¶ [ Сря Юли 29, 2009 4:08 pm ] |
| Заглавие: | |
Някой май не е внимавал в часа по компютърна графика |
|
| Автор: | woody [ Сря Юли 29, 2009 4:47 pm ] | |||||||||
| Заглавие: | ||||||||||
Определено имам проблем да декодирам заданието. Освен това, не е ли класическото регулиране по ъгъл на положителна и отрицателна полувълна най-доброто и за мрежата и за консуматора? Захранване с прескочени полупериоди ми се чини малко безумие. @Infinity - ако целта (на курсовата ти работа?) е да направиш интерполатор, няма дори нужда да споменаваш за 220V/50Hz и полупериоди. Дори един прост фазов акумулатор ще ти свърши работа. |
||||||||||
| Автор: | tgi [ Сря Юли 29, 2009 5:42 pm ] | |||||||||
| Заглавие: | ||||||||||
Не съм аз - никога не съм посещавал такива часове. Формалното ми образование не включва техниката, която правя последните 20 и кусур години Което не значи, че винаги съм внимавал във всички часове, които съм имал, де. Но май ме бива много в това да приема тая част от знанието на някого, с когото комуникирам, която нямам - knowledge vampire и половина съм... |
||||||||||
| Автор: | tgi [ Сря Юли 29, 2009 6:35 pm ] | |||||||||
| Заглавие: | ||||||||||
За класика класика е фазовото регулиране, но zero crossing - включване на товара в момента, когато напрежението е 0 волта - предполага цели полупериоди, триаците и тиристорите можеш само да ги включваш през гейта, изключват, когато токът през тях стане 0 (т.е. трябва да чакаш до края на полупериода). Предимството е, че генерират по-малки смущения - по-малък "inrush current". |
||||||||||
| Автор: | bongo_x2 [ Сря Юли 29, 2009 7:19 pm ] |
| Заглавие: | |
А бе тя задачката е ясна макар и тъпа: За време равно на N периода на мрежата (пиксели по X) мощността трябва от степен A да стане на степен B които са цели числа напр. от 0 до 100, т.е. пикселите по Y. Тук господин Б. си казва тежката дума: през първите n1 периода мощността трябва да е p1, после за n2 периода мощността трябва да е p2 и т.н. докато се запълни времевия интервал N. Следва да се определи за колко периода тиристорът да е отпушен и за колко запушен и те да се поразхвърлят що-годе равномерно. И тук идва голямото омазване: заради нееднаквостта на малките n не могат да се ползват готови таблици, и представете си че господин Б. е казал, че за 2-а мрежови периода мощността трябва да е 1/5 от максималната... Това само некадърник с летен грип и след голям запой ще да го е замислил |
|
| Автор: | Infinity [ Чет Юли 30, 2009 2:16 am ] | |||||||||||||||||||||||||||
| Заглавие: | ||||||||||||||||||||||||||||
Общо взето това са идеите:
|
||||||||||||||||||||||||||||
| Автор: | tgi [ Чет Юли 30, 2009 5:22 am ] |
| Заглавие: | |
Добре де, не е ли очевидно. Ако представиш интервала, който искаш да запълваш с управляван брой периоди, като X, където X е дължината на тоя период в брой полупериоди на 50 Hzсинусоидата, като Y можеш да представиш броя на пуснатите полупериоди. Ако чертаеш линията, както се чертае по т.нар. Брезенхам (както всеки нормален човек чертае линии по растер), при всяко минаване на нов, по-висок ред по Y пускаш един полупериод. Това е всичко. Нищо перверзно или сложно. |
|
| Автор: | smtp [ Чет Юли 30, 2009 9:06 am ] | |||||||||
| Заглавие: | ||||||||||
даже бонго е схванал същността на проблема ... а ти не |
||||||||||
| Страница 1 от 3 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|