Мои поделки: Диммер для электронагревателя. Методика: Регулировка в процентах мощности выделяемой на активной нагрузке (математическая модель)

Диммер мощностиДля заказчика был разработан «Диммер мощности» для управления электронагревателями.

Электронагреватели — довольно мощные ТЭНы, участвующие в заводском техпроцессе.

Исполнение Диммера — модульное, с возможностью подключения внешних (щитовых) кнопок. С возможностью разнесения в пространстве низковольтных цепей (блока управления) и силового оптосимистора (высоковольтной части)…


Диммер для электронагревателя [февраль 2016]

Фотографии макета: смотри здесь…

Небольшая видео демонстрация работы устройства: смотри здесь…

Поскольку эта работа была выполнена под заказ, то я не могу выложить разводку платы и прошивку микроконтроллера в открытый доступ. Но кое-чем я хочу с вами поделиться, а именно, математическим приёмом, который я реализовал в этом устройстве: Регулировка кнопочками по процентам мощности выделяемой на активной нагрузке (электронагревателе).

 

Схема устройства классическая, с некоторыми усовершенствованиями:

Схема принципиальная модуля Dimmer_PIC16F628(Примечание: картинки кликабельны и ведут на полноразмерное изображение!)

Схемотехника, здесь, максимально простая и надёжная: понижающий трансформатор, датчик «Zero Cross Detect» на оптопаре, линейный стабилизатор питания «7805», микроконтроллер PIC16F628, пара управляющих кнопочек, семисегментный LED-индикатор (с динамической индикацией), оптосимистор «MOC3023» допускающий фазовую модуляцию (схема подключения по даташиту)…

 

Модуль Диммера имеет два внешних разъёма, которые обеспечивают быстрое подключение/замены данного модуля в электротехническом щитке: низковольтный DSUB-9 (ввод питания с понижающего трансформатора, подключение внешних панельных кнопок и др.) и высоковольтный «разъёмный клеммник» (подключение внешнего силового симистора к управляющему оптосимистору, распаянному на модуле).

Для полноты картины, и ясности относительно режимов работы устройства, привожу схемы подключения модуля Диммера к внешним элементам:
Схема подключения модуля Dimmer_PIC16F628

Методика: Регулировка в процентах мощности выделяемой на активной нагрузке (математическая модель)

Зачем это нужно? И как оно работает? Рассказано в видео-мастерклассе…

Математическая модель (MathCAD):

Скачать архив с файлами математической модели (MathCAD, PDF, C)…

 

Как это использовать в программном коде прошивки? Очень просто:

// Крутая реализация: Табличная функция, реализующая пересчёт "доли мощности" (итеграл площади под синусоидой) в "сдвиг начальной фазы"
// Примечание: исходный код таблицы PhaseShiftingTable[] находится в файле "PhaseShiftingTable.h" в архиве с математической моделью.
uint16_t PhaseShift = PhaseShiftingTable[PowerPercent-1] -ZCD_CORRECTION;
    
// Значение переменной PhaseShift затем используется для перегрузки Таймера в обработчике прерывания, обслуживающем датчик "ZeroCrossDetect".
// Установить выдержку Таймера1, равную фазовому сдвигу от начала полупериода синусоиды сетевого напряжения:
TMR1H = PhaseShift >> 8;
TMR1L = PhaseShift;

 

Замечу, что в коде выше упоминается некая константа «ZCD_CORRECTION» — это реализация компенсации ширины импульса с «датчика перехода через ноль (ZeroCrossDetect)»…

// Эмпирически (по осциллограме) определённая ширина полуимпульса с ZCD-датчика (в мкс), вносится как коррекция к времени сдвига фаз, для отсчёта от фактического момента перехода синусоиды через ноль.
// Тесты: 
//   По осциллограмме ZCD-импульса: половина ZCD-импульса = 320-340 мкс; 
//   По осциллограмме "синусоиды", коммутируемой на Нагрузку: экспериментально, при 400мкс ещё не режет начало синусоиды, при 500мкс уже чуть режет начало синусоиды... 
//   Но всё равно, не могу точно откалибровать мощность по приборам: либо нагрузка меняет сопротивление от нагрева (меньше накал - больше потребление мощности)? либо в сети совсем не синусоида?
//   Пришёл к методу "Как выровнять горизонтальное смещение так, чтобы 50% регулировки приходилось на середину полупериода синусоиды?": устанавливаю цифру 50%, и смотрю осциллографом как режется синусоида на нагрузке - фронт должен проходить посередине. Иначе, подстраиваю смещение...
#define ZCD_CORRECTION_US   280
#define ZCD_CORRECTION      ((_XTAL_FREQ)/4/1000000*(ZCD_CORRECTION_US))

 

Комментарии закрыты.