Щелкаем реле правильно: коммутация мощных нагрузок

Управление мощными нагрузками — достаточно популярная тема среди людей, так или иначе касающихся автоматизации дома, причём в общем-​то независимо от платформы: будь то 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 и посмотреть, как меняется потребляемый мотором ток, получится вот такая картинка:

Стартовый ток превышает рабочий более чем в четыре раза. За первые пять периодов — то время, на которое симистор опережает реле в нашей схеме — ток падает примерно вдвое, что также существенно смягчает требования к реле и продлевает его жизнь.

Да, схема сложнее и дороже, чем обычное реле или обычный симистор. Но часто она того стоит.