0 / 0 / 0
Регистрация: 29.09.2011
Сообщений: 91
|
|
1 | |
Микроконтроллерный регулятор мощности28.03.2012, 14:04. Показов 32995. Ответов 30
Метки нет (Все метки)
Здравствуйте. Я задумал сделать тиристорный регулятор мощности (~220V) на микроконтроллере AVR. Смысл в том что мне не нужен обычный ШИМ, нехочу тупо его использовать, одна из причин того - большая коммутируемая мощность, я хочу чтобы у меня тиристор включал нагрузку в момент перехода сетевого напряжения через ноль и выключал его через промежуток времени [0..10 мс] (10 мс это время одного полупериода при частоте 50Гц). Микроконтроллер должен в момент перехода напряжения через 0 подать 5 В на управляющий электрод тиристора, отсчитать время (которое определяет долю приходящей мощности) и подать 0 В. Далее цикл повторяется. Но вот главный вопрос: как отследить этот момент перехода напряжения через 0 и подать прямоугольный импульс +5 V на вывод внешнего прерывания микроконтроллера. Подскажите как сделать такую схеммку. Каким сбособом лучше уменьшить напряжение? АЦП микроконтроллера я использовать нехочу. Спасибо!:)
0
|
28.03.2012, 14:04 | |
Ответы с готовыми решениями:
30
Регулятор мощности с детектором нуля фазовый регулятор мощности tiny2313 Повышающий регулятор мощности паяльника ПИД-регулятор (ПИ-регулятор) сервомотора |
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 3,609
|
|
02.04.2012, 02:14 | 21 |
Сообщение от Леанид Ивинавич
Вход: SIN(2*pi()*t) то есть, единичной амплитуды. Его СКЗ равно 0,707, мощность без регулирования - 1/2 на резисторе 1 Ом Выход: P = 1/2 - t1/T +1/(4*pi())*SIN(4*pi()*t1/T) это мощность на резисторе 1 Ом Проверка: при t1=0 имеем нерегулированную мощность 0,5, при t1=Т/2 мощность ноль. График красивенький, тоже не вызывает внутреннего протеста:
0
|
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 699
|
|
02.04.2012, 10:28 | 22 |
Сообщение от drvtos
У меня тот таймер, который используется для генерации управляющих импульсов тиристора, синхронизируется с сетью с точностью до фазы. Причем делается это петлей PLL, что эффективно подавляет дрожание импульса привязки. Я этот импульс нигде больше не использую, только как входной сигнал PLL. А саму PLL можно представить как полосовой фильтр с полосой пропускания, равной удвоенной частоте среза петлевого фильтра. Поэтому можно считать, что сигнал ZCD подвергается узкополосной полосовой фильтрации, что значительно снижает влияние помех. Вообще, частота сети не может меняться резко в силу самого принципа генерации сетевого напряжения. А вот амплитуда - может. Мы обычно судим о частоте, используя амплитудные характеристики. Например, момент перехода через ноль, что плохо. Вот тут и выручает PLL, которая нечувствительна к импульсным помехам. Отдельный импульс ZCD может вообще "выпасть", но это почти не скажется на работе системы. Да, в прошлом сообщении я ошибочно написал, что у Вас И-регулятор. На самом деле это интегрирующий релейный регулятор, так как значение ошибки не учитывается, учитывается только ее знак, ну и еще реализована зона нечувствительности.
Сообщение от drvtos
0
|
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 3,609
|
|
02.04.2012, 11:04 | 23 |
Сообщение от Леанид Ивинавич
В общем, если говорить о конкретной задаче, то мне хватает точности. Но ясно, что принципиально фазовая автоподстройка лучше. Но Вы уж совсем заругали принцип подстройки частоты генератора. Попытаюсь немного реабилитировать: 1)
Сообщение от Леанид Ивинавич
2)
Сообщение от Леанид Ивинавич
Сообщение от Леанид Ивинавич
У меня-то другая задача: управлять полезным эффектом, который зависит от ЗВТ вообще неизвестным образом (только монотонность бесспорна). Да и то - не задача, а прелюдия. Настоящая зубастая задача - стабилизировать полезное действие при изменении напряжения сети. Вот тут уж интересно! Там такие трехмерные поверхности подучаются, такие аппроксимации - я сам через полгода забываю, что же это я такое придумал. Но основная идея простая: корректировать ЗВТ в зависимости от напряжения в сети так, чтобы полезное действие изменялось минимально. Тоже таблички использую...
0
|
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 3,609
|
|
02.04.2012, 11:45 | 24 |
Сообщение от drvtos
0,25+0,25*COS(Omega*t) нашу искомую 0,5-t/T+(1/(4*PI()))*SIN(2*Omega*t) Вот: <Изображение удалено> А обратную от косинуса уже легче взять. Хотя, имея МК, я бы пошел по пути кусочно-линейной аппроскимации. Та же таблица, но с меньшим числом точек, а между ними - линейно вычислять. Функция-то гладенькая, как попа младенца :)
0
|
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 699
|
|
02.04.2012, 12:05 | 25 |
Сообщение от drvtos
Сообщение от drvtos
Сообщение от drvtos
0
|
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 3,609
|
|
02.04.2012, 12:16 | 26 |
Сообщение от Леанид Ивинавич
Ну что же, значит так и есть. В деле управления вибропитателем это пофик, ибо имеет значение усредненный эффект на многих периодах. Но придется все же Ваш подход изучить подробнее, когда будет повод полезть в свой девайс. Ведь знать, что можно лучше, и не сделать - тяжело! Тяжело истым контрабандистам перфекционистам! Спасибо за увлекательную беседу. Уважаемый автор темы, надеюсь, нас простит.
0
|
0 / 0 / 0
Регистрация: 29.09.2011
Сообщений: 91
|
|
02.04.2012, 22:13 | 27 |
Сообщение от drvtos
Но вот не понял, в чем тупость? Если этим АЦП гвозди забивать? Или как? Тебе нужно аналого-цифровое преобразование? Тогда чем использование компаратора лучше? Или тебе ловить какие-то переходы (скажем, через ноль)? Так тогда и использование компаратора может быть "тупостью". Ибо синхронизацию с сетью правильнее делать а) не на нуле, там мусора много б) обычным триггером Шмидта, тот же 555 таймер очень хорош. А с его выхода - на дискретный вход МК. И забыли о компараторе. Если у тебя другие соображения - поделись. Ибо интересно, где я, например, туплю. Ну скажем если я бы использовал компаратор, я переменку сравнивал бы не с нулём. Подал-бы на второй вывод компаратора напряжение чуть больше нуля, чтобы компаратор срабатывал при наличии мусора в сети. Эта идея мне нравится, тем что можно не "липить" дополнительную схему, а воспользоваться возможностями AVR-контроллера
0
|
0 / 0 / 0
Регистрация: 29.09.2011
Сообщений: 91
|
|
02.04.2012, 22:17 | 28 |
Сообщение от tid_fom
0
|
0 / 0 / 0
Регистрация: 29.09.2011
Сообщений: 91
|
|
02.04.2012, 22:32 | 29 |
Сообщение от Леанид Ивинавич
Код
//квантование: if(Sigma > MAX_POW) { Ditto = -MAX_POW; OutOn(); } else { Ditto = 0; OutOff(); } //суммирование: Sigma = Sigma + Power + Ditto;
0
|
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 699
|
|
02.04.2012, 23:25 | 30 |
В присоединенном файле декодер RC-5, который работает чисто по прерываниям и практически не тратит ресурсов процессора. Что касается описанного мной алгоритма регулировки мощности с программной PLL, то как раз он и работал у меня в ATmega48, которая делала еще много чего.
[6.78 Кб]
0
|
т.Дастаевский
|
|
07.04.2013, 18:07 | 31 |
Сообщение от Леанид Ивинавич
|
07.04.2013, 18:07 | |
07.04.2013, 18:07 | |
Помогаю со студенческими работами здесь
31
Регулятор реактивной мощности в установке компенсации реактивной мощности (УКРМ) Регулятор мощности и оборотов. Регулятор мощности пылесоса Симисторный регулятор мощности Симисторный регулятор мощности Трехфазный регулятор мощности Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |