Щелкаем реле правильно: коммутация мощных нагрузок
Привет, Geektimes!
Управление мощными нагрузками — достаточно популярная тема среди людей, так или иначе касающихся автоматизации дома, причём в общем-то независимо от платформы: будь то Arduino, Rapsberry Pi, Unwired One или иная платформа, включать-выключать ей какой-нибудь обогреватель, котёл или канальный вентилятор рано или поздно приходится.
Традиционная дилемма здесь — чем, собственно, коммутировать. Как убедились многие на своём печальном опыте, китайские реле не обладают должной надёжностью — при коммутации мощной индуктивной нагрузки контакты сильно искрят, и в один прекрасный момент могут попросту залипнуть. Приходится ставить два реле — второе для подстраховки на размыкание.
Вместо реле можно поставить симистор или твердотельное реле (по сути, тот же тиристор или полевик со схемой управления логическим сигналом и опторазвязкой в одном корпусе), но у них другой минус — они греются. Соответственно, нужен радиатор, что увеличивает габариты конструкции.
Я же хочу рассказать про простую и довольно очевидную, но при этом редко встречающуюся схему, умеющую вот такое:
- Гальваническая развязка входа и нагрузки
- Коммутация индуктивных нагрузок без выбросов тока и напряжения
- Отсутствие значимого тепловыделения даже на максимальной мощности
Но сначала — чуть-чуть иллюстраций. Во всех случаях использовались реле TTI серий TRJ и TRIL, а в качестве нагрузки — пылесос мощностью 650 Вт.
Классическая схема — подключаем пылесос через обычное реле. Потом подключаем к пылесосу осциллограф (Осторожно! Либо осциллограф, либо пылесос —, а лучше оба — должны быть гальванически развязаны от земли! Пальцами и яйцами в солонку не лазить! С 220 В не шутят!) и смотрим.
Включаем:
Пришлось почти на максимум сетевого напряжения (пытаться привязать электромагнитное реле к переходу через ноль — задача гиблая: оно слишком медленное). В обе стороны бабахнуло коротким выбросом с почти вертикальными фронтами, во все стороны полетели помехи. Ожидаемо.
Выключаем:
Резкое пропадание напряжения на индуктивной нагрузке не сулит ничего хорошего — ввысь полетел выброс. Кроме того, видите вот эти помехи на синусоиде за миллисекунды до собственно отключения? Это искрение начавших размыкаться контактов реле, из-за которого они однажды и прикипят.
Итак, «голым» реле коммутировать индуктивную нагрузку плохо. Что сделаем? Попробуем добавить снаббер — RC-цепочку из резистора 120 Ом и конденсатора 0,15 мкФ.
Включаем:
Лучше, но не сильно. Выброс сбавил в высоте, но в целом сохранился.
Выключаем:
Та же картина. Мусор остался, более того, осталось искрение контактов реле, хоть и сильно уменьшившееся.
Вывод: со снаббером лучше, чем без снаббера, но глобально проблемы он не решает. Тем не менее, если вы желаете коммутировать индуктивные нагрузки обычным реле — ставьте снаббер. Номиналы надо подбирать по конкретной нагрузке, но 1-Вт резистор на 100–120 Ом и конденсатор на 0,1 мкФ выглядят разумным вариантом для данного случая.
Литература по теме: Agilent — Application Note 1399, «Maximizing the Life Span of Your Relays». При работе реле на худший тип нагрузки — мотор, который, помимо индуктивности, при старте имеет ещё и очень низкое сопротивление — добрые авторы рекомендуют уменьшить паспортный ресурс реле в пять раз.
А теперь сделаем ход конём — объединим симистор, симисторный драйвер с детектированием нуля и реле в одну схему.
'
Что есть на этой схеме? Слева — вход. При подаче на него »1» конденсатор C2 практически мгновенно заряжается через R1 и нижнюю половину D1; оптореле VO1 включается, дожидается ближайшего перехода через ноль (MOC3063 — со встроенной схемой детектора нуля) и включает симистор D4. Нагрузка запускается.
Конденсатор C1 заряжается через цепочку из R1 и R2, на что уходит примерно t=RC ~ 100 мс. Это несколько периодов сетевого напряжения, то есть, за это время симистор успеет включиться гарантированно. Далее открывается Q1 — и включается реле K1 (а также светодиод D2, светящий приятным изумрудным светом). Контакты реле шунтируют симистор, поэтому далее — до самого выключения — он в работе участия не принимает. И не греется.
Выключение — в обратном порядке. Как только на входе появляется »0», C1 быстро разряжается через верхнее плечо D1 и R1, реле выключается. А вот симистор остаётся включённым примерно 100 мс, так как C2 разряжается через 100-килоомный R3. Более того, так как симистор удерживается в открытом состоянии током, то даже после отключения VO1 он останется открытым, пока ток нагрузки не упадёт в очередном полупериоде ниже тока удержания симистора.
Включение:
Выключение:
Красиво, не правда ли? Причём при использовании современных симисторов, устойчивых к быстрым изменениям тока и напряжения (такие модели есть у всех основных производителей — NXP, ST, Onsemi, etc., наименования начинаются с «BTA»), снаббер не нужен вообще, ни в каком виде.
Более того, если вспомнить умных людей из Agilent и посмотреть, как меняется потребляемый мотором ток, получится вот такая картинка:
Стартовый ток превышает рабочий более чем в четыре раза. За первые пять периодов — то время, на которое симистор опережает реле в нашей схеме — ток падает примерно вдвое, что также существенно смягчает требования к реле и продлевает его жизнь.
Да, схема сложнее и дороже, чем обычное реле или обычный симистор. Но часто она того стоит.