0 / 0 / 0
Регистрация: 29.09.2011
Сообщений: 91
|
|
1 | |
Микроконтроллерный регулятор мощности28.03.2012, 14:04. Просмотров 31570. Ответов 30
Метки нет Все метки)
(
Здравствуйте. Я задумал сделать тиристорный регулятор мощности (~220V) на микроконтроллере AVR. Смысл в том что мне не нужен обычный ШИМ, нехочу тупо его использовать, одна из причин того - большая коммутируемая мощность, я хочу чтобы у меня тиристор включал нагрузку в момент перехода сетевого напряжения через ноль и выключал его через промежуток времени [0..10 мс] (10 мс это время одного полупериода при частоте 50Гц). Микроконтроллер должен в момент перехода напряжения через 0 подать 5 В на управляющий электрод тиристора, отсчитать время (которое определяет долю приходящей мощности) и подать 0 В. Далее цикл повторяется. Но вот главный вопрос: как отследить этот момент перехода напряжения через 0 и подать прямоугольный импульс +5 V на вывод внешнего прерывания микроконтроллера. Подскажите как сделать такую схеммку. Каким сбособом лучше уменьшить напряжение? АЦП микроконтроллера я использовать нехочу. Спасибо!:)
0
|
|
28.03.2012, 14:04 | |
фазовый регулятор мощности tiny2313 Повышающий регулятор мощности паяльника Регулятор реактивной мощности в установке компенсации реактивной мощности (УКРМ) Симисторный регулятор мощности
__________________
30
Помогаю в написании студенческих работ здесь. |
|
MCSD: APP BUILDER
8790 / 1068 / 104
Регистрация: 17.06.2006
Сообщений: 12,604
|
|
28.03.2012, 14:07 | 2 |
уже делали, поищите .
а тиристор выключить вам не удастся - только включить, выключится он может только сам при проходе через нуль
0
|
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 3,610
|
|
28.03.2012, 15:41 | 3 |
То есть, с точностью до наоборот: отсчитать от нуля какое-то время и включить. А выключится он по следующему нулю. Это известный и популярный способ управления мощностью.
![]() А для чего нужен АЦП в данном девайсе?
0
|
0 / 0 / 0
Регистрация: 08.08.2010
Сообщений: 3,180
|
|
28.03.2012, 15:44 | 4 |
для чего вообще тут нужен АВР)
0
|
0 / 0 / 0
Регистрация: 13.10.2009
Сообщений: 3
|
|
28.03.2012, 15:47 | 5 |
а что питать то? я на нагреватель импульсы периодом 1-2секунды подаю, переход через 0 ловит оптопара
0
|
MCSD: APP BUILDER
8790 / 1068 / 104
Регистрация: 17.06.2006
Сообщений: 12,604
|
|
28.03.2012, 18:06 | 6 |
to port_wymi777
посмотрите эту тему
0
|
0 / 0 / 0
Регистрация: 29.09.2011
Сообщений: 91
|
|
29.03.2012, 17:53 | 8 |
Спасибо всем за ответы!!!
0
|
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 699
|
|
29.03.2012, 17:53 | 9 |
![]()
0
|
1 / 1 / 0
Регистрация: 26.03.2012
Сообщений: 154
|
|
29.03.2012, 20:14 | 10 |
я делал такое с помощью микросхемы К1182ПМ1, она сама ловит ноль, сама включает и выключает нагрузку, в даташите есть типовые схемы включения, в том числе и для управления симистором.
Прелесть этой схемы в том, что этой микросхемой можно управлять с помощью ШИМ, т.е. программа из себя представляет строк 5 и используется одна нога МК. Сама микросхема позволяет напрямую управлять нагрузкой до 150Вт (для управления более мощной нагрузкой в схему добавляется симистор) и т.к. я использовал ее для регулирования света, то обошелся без симистора. На мой взгляд это самый простой вариант.
0
|
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 3,610
|
|
29.03.2012, 23:38 | 11 |
![]()
0
|
0 / 0 / 0
Регистрация: 29.09.2011
Сообщений: 91
|
|
31.03.2012, 15:35 | 12 |
![]() А для чего нужен АЦП в данном девайсе? Сначала хотел использовать встроенный АЦП микроконтроллера, но теперь понял, что это тупость. Сейчас мне напомнили что у МК есть встроенный аналоговый компаратор, думаю использовать буду его. Спасибо за ответ
0
|
0 / 0 / 0
Регистрация: 29.09.2011
Сообщений: 91
|
|
31.03.2012, 15:38 | 13 |
![]()
0
|
0 / 0 / 0
Регистрация: 29.09.2011
Сообщений: 91
|
|
31.03.2012, 15:42 | 14 |
![]()
0
|
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 3,610
|
|
31.03.2012, 15:56 | 15 |
![]() Но вот не понял, в чем тупость? Если этим АЦП гвозди забивать? Или как? Тебе нужно аналого-цифровое преобразование? Тогда чем использование компаратора лучше? Или тебе ловить какие-то переходы (скажем, через ноль)? Так тогда и использование компаратора может быть "тупостью". Ибо синхронизацию с сетью правильнее делать а) не на нуле, там мусора много б) обычным триггером Шмидта, тот же 555 таймер очень хорош. А с его выхода - на дискретный вход МК. И забыли о компараторе. Если у тебя другие соображения - поделись. Ибо интересно, где я, например, туплю.
0
|
0 / 0 / 0
Регистрация: 21.10.2011
Сообщений: 1,861
|
|
31.03.2012, 16:02 | 16 |
AVR - самоцель? если нет, то все гораздо проще. генератор с изменяемой скважностью и периодом порядка секунды и оптопара с детектором нуля на MOC3xxx для управления симистором. ... PROFIT!
или, если все-таки авр хочется, тогда брезенхема запилить. я в соседней ветке дал ссылку, а в этой и автор засветился... ;)
0
|
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 699
|
|
01.04.2012, 21:35 | 17 |
![]() Код
//квантование: if(Sigma > MAX_POW) { Ditto = -MAX_POW; OutOn(); } else { Ditto = 0; OutOff(); } //суммирование: Sigma = Sigma + Power + Ditto;
0
|
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 3,610
|
|
01.04.2012, 21:59 | 18 |
![]() У меня сделано немного иначе (и сейчас не могу сравнивать, что лучше, да и не так уж важно): я подстраиваю внутренний генератор атмеги по входному сигналу 50 Гц. Причем, очень тупо - просто изменяю OSCCAL: Код
// Переривання від сінхроімпульсу 50 Гц: калібрування внутрішнього генератора по мережі ISR (INTNUMBER) { if( SYNC_STATE) { // Use only ___/~~~~ ( Zero_to_One change) TCCR2B=0x00; // Stop Timer2 omywoy if( TimerRuns) { // Stop Timer omd process the result TimerRuns = 0; if ( TCNT2 < 156) OSCCAL++; // 156...157 is NOMOVE zone else if( TCNT2 > 157) OSCCAL--; // ...becouse 156.25 is the ideal value } // ... 156*128 мкс = 19,968 мс else { // Riset Timer2 omd stort it TCNT2 = 0; TCCR2B=(0<<CS22)|(1<<CS21)|(1<<CS20); // Run @ 7812.5 Hz TimerRuns = 1; } } } После этого я знаю, что мои таймеры стучат синхронно с сетью - и могу вычислять все задержки КАГБЭ для идеальной частоты 50 Гц. Удобно. А вот что касается зависимости ПОЛЕЗНОГО ДЕЙСТВИЯ от задержки включения тиристора (я называю ЗВТ), то здесь не так все просто. Точнее, у меня не так просто. Дело в том, что нужно решить, в чем полезность действия. Если это нагрев на активной нагрузке - то действующее напряжения. Если освещенность - там хер поймешь. А у меня вибрация (вибропитатель) - и есть данные, что там ближе всего оценивать по СРЕДНЕМУ значению. Для такого вот случая я вывел формулу (простая до слез, синусная ф-ция) и на нее ориентировался. Правда, испытания на реальном объекте показали существенно иное поведение - поэтому я свои формулы использовал только на этапе начальной настройки. А потом уже в реальном режиме оператор подбирает такую ЗВТ, чтобы ПОЛЕЗНОЕ ДЕЙСТВИЕ было нужной величины.
0
|
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 699
|
|
01.04.2012, 23:34 | 19 |
В принципе, это одно и то же. С точностью до характеристик петлевого фильтра. У Вас это просто интегральный регулятор, у меня - пропорционально-интегральный. Ну и значения коэффициентов играют роль. Я их подбирал, наблюдая реакцию системы на скачок частоты. У Вас коэффициент явно не фигурирует, но его можно ввести. Прибавлять и вычитать не единицу, а некотрое число. Только, скорее всего, придется перейти к 16-разрядной арифметике и хранить в таком формате промасштабированное, например, в 256 раз значение OSCCAL. Не совсем понял, как у Вас осуществляется привязка таймеров к сети с точностью до фазы. Привязан будет только таймер 2, который очищается в прерывании ZCD. Но он используется, как я понял, только для замера частоты сети. Остальные будут синхронизированы с сетью только по частоте. Синхронизация с точностью до фазы имеет то преимущество, что сигнал управления тиристором можно генерировать чисто аппаратно, используя блоки сравнения. Ну и еще, не всегда возможна работа от внутреннего RC. Что касается полезного действия,то в моем случае это был нагрев. Но я все равно не смог найти аналитического выражения, пришлось прибегнуть к помощи таблицы. А раз таблица, так ее можно сгенерировать для любой зависимости.
0
|
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 3,610
|
|
02.04.2012, 00:28 | 20 |
![]() Итак, есть это соотношение 8000000/50. Отлично! С этого момента нам все равно, сколько в сети герц. Мы исходим из "идеального" представления. Ведь остальные таймеры работают тоже от внутреннего генератора. И между частотой их тактов (поделенной, естественно, в целое число раз) и частотой сети тоже поддерживается строгое соотношение. Таким образом, когда я на таймере0 аппаратно генерирую ЗВТ, я уверен, что его 1 единица соответствует строго 32 (или 64? не помню) микросекундам при частоте сети 50 Гц. А при уходе сети и такт таймера0 пропорционально уйдет. В любом случае, я могу верить, что записанное в него число единиц вызовет именно такую ЗВТ (в градусах сетевой частоты), которую я и хотел. ![]() ![]()
0
|
02.04.2012, 00:28 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь. Трехфазный регулятор мощности Регулятор мощности и оборотов. Не работает регулятор мощности на К1182ПМ1 Регулятор мощности на симисторе. Помощь. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |