Как стать автором
Обновить

Трансформатор тока для детектирования включений нагрузки в сети 220В

Время на прочтение8 мин
Количество просмотров26K
Сердечник и вторичная обмотка самодельного трансформатора тока
Сердечник и вторичная обмотка самодельного трансформатора тока

Недавно у меня возникла необходимость определять на микроконтроллере моменты включения/выключения погружного насоса с поплавковым выключателем, запитанного от сети 220В, т.е. по сути определять наличие потребляемого тока в цепи питания насоса. Когда речь идет об измерениях в сети 220В, то в первую очередь стоит подумать о том, как обеспечить качественную гальваническую развязку, т.е. отсутствие электрического контакта между высоковольтными и низковольтными цепями.

Пожалуй самым простым и быстрым решением было бы взять готовый модуль на эффекте Холла (например на микросхеме ACS712). Однако мне такой вариант не подошёл по двум причинам. Во-первых, он требует питания 5В, а у меня всё было запитано от 3.3В. Во-вторых, он включается в разрыв измеряемой цепи, а мне было очень важно не нарушить работу насоса даже в случае ошибки проектирования или выхода из строя датчика.

Как ни странно, нагуглить готовое решение без специальных модулей для такой казалось бы простой задачи не удалось, поэтому здесь хочу поделиться опытом расчета и изготовления простейших измерительных трансформаторов тока.

Принцип работы трансформатора тока

Пожалуй каждый, кто когда-нибудь работал с аналоговой электроникой, сталкивался наводками от сети 220В. Казалось бы, если от этих наводок так сложно избавиться, то может быть и определить включение нагрузки должно быть очень легко? Однако всё оказалось не совсем так просто.

Действительно, простейший измерительный трансформатор тока можно сделать из мотка обычного двухжильного силового кабеля - по одной из жил запустить измеряемый ток, а с другой снимать полезный сигнал. Попробуем прикинуть (хотя бы по порядку величины), какое напряжение образуется на концах "сигнальной" жилы, если через "силовую" пропустить ток к целевой нагрузке? Может этого будет уже достаточно для решения поставленной задачи?

Моток кабеля в такой конфигурации по сути представляет собой трансформатор с воздушным сердечником. Ток, проходящий через витки силовой жилы, формирует переменное магнитное поле. Это поле создаёт электродвижущую силу ЭДС индукции в каждом витке сигнальной жилы. Величина ЭДС пропорциональна скорости изменения магнитного потока проходящего через окружённую витком поверхность:

\mathcal{E} = - \frac{d\Phi_B}{dt}

Если предположить, что витки в мотке кабеля уложены достаточно плотно, а ток в измерительной жиле равен нулю, то магнитный поток через все витки будет одинаковым, и его можно будет посчитать как произведение индуктивности одного витка L, числа витков N и тока в силовой жиле I. ЭДС во всех измерительных витках будет одинакова и суммарное напряжение на концах сигнальной жилы будет равно произведению числа витков на ЭДС в одном витке:

U=-N\frac{d\Phi_B}{dt}=-N\frac{d}{dt}(LNI)=-N^2L\frac{dI}{dt}

В бытовой сети переменного тока I=I_m\sin2\pi{}ft, где f - частота, равная 50 Гц, а I_m=I\sqrt{2}- амплитудное значение силы тока. Значение I_mможно определить исходя из мощности нагрузки P и действующего значения напряжения U, равного 230 В. В итоге для производной тока по времени получаем такую формулу:

\frac{dI}{dt}=\frac{d}{dt}(I_m\sin2\pi{}ft)=2\pi\sqrt{2}fI\cos2\pi{}ft=\frac{2\pi\sqrt{2}fP}{U}\cos2\pi{}ft

Например, для нагрузки мощностью 1 кВт, подключённой к обычной бытовой сети с напряжением 230 В, вычисленная по этой формуле амплитуда производной тока по времени получится чуть меньше 2000 ампер в секунду.

Индуктивность одного витка посчитаем исходя из радиуса нашего мотка r и радиуса проволоки, из которой сделана жила кабеля a:

L=\mu_0r(\ln\frac{8r}{a}-1.75)

Здесь \mu_0=4\pi\cdot10^{-7}\;\mathrm{Гн/м}- магнитная постоянная. Для мотка кабеля диаметром 10 см, имеющего жилы диаметром 2 мм, индуктивность витка получается около 0.25 мкГн. Если такой моток сделать из кабеля длиной 10 метров, то получится около 30 витков. В итоге для нашей нагрузки в 1 кВт напряжение на разомкнутой сигнальной жиле получится таким:

U\approx30^2\cdot0.25\cdot10^{-6}\;\mathrm{Гн}\cdot2000\;\mathrm{А/с}=0.45\;\mathrm{В}

Значение получается вполне детектируемое, но что произойдёт в момент включения или выключения нагрузки, когда ток может изменяться в десятки или даже сотни раз быстрее, чем при нормальной работе? В этом случае вместо 450 мВ на концах сигнальной жилы может быть скачок напряжения в несколько десятков или даже сотню вольт, который вполне может повредить вход микроконтроллера.

Чтобы решить проблему с зависимостью ЭДС индукции от частоты сигнала, в трансформаторах тока используется совсем другой режим работы - вместо того, чтобы разомкнуть вторичную обмотку и измерять на ней напряжение, она замыкается накоротко и измеряется проходящий через неё ток.

Как только в сигнальной жиле появляется ток, он создаёт своё собственное магнитное поле, направленное противоположно исходному. В идеальном случае ток в сигнальной жиле мгновенно вырастет настолько, что полностью компенсирует магнитный поток силовой жилы. Для рассмотренного выше случая с одинаковым числом витков силы тока в двух жилах окажутся равны, а ЭДС индукции в сигнальной жиле будет стремиться к нулю. При разном числе витков отношение токов в силовой и сигнальной обмотках будет определяться отношением числа витков: N_1I_1=N_2I_2, а суммарный магнитный поток и ЭДС индукции также будут стремиться к нулю.

Конструкция трансформатора тока

В реальном мире у сигнальной жилы есть ненулевое пассивное сопротивление и для создания в ней тока необходимо ненулевое значение ЭДС индукции, а значит магнитный поток силовой обмотки должен быть скомпенсирован не полностью. Чтобы ток в сигнальной обмотке был максимально близок к идеальному, нужно максимизировать отношение напряжения разомкнутой обмотки к реальному падению напряжения, необходимому для создания этого тока. Этого можно добиться разными способами:

  • снижением целевого падения напряжения на сигнальной обмотке

  • увеличением числа витков силовой обмотки

  • увеличением числа витков сигнальной обмотки

  • увеличением индуктивности каждого витка

Минимизировать напряжение на сигнальной обмотке можно за счёт более чувствительной схемы измерения тока. В самом простом случае ток преобразуется в напряжение на шунтирующем резисторе и падение напряжения определяется диапазоном детектируемых токов и характеристиками аналогового входа микроконтроллера.

Существенно увеличить число витков в силовой обмотке сложно, т.к. через неё подключается нагрузка, а значит у неё должно быть и сечение достаточно большое, и изоляция надёжная. А вот в сигнальной обмотке число витков можно увеличить весьма значительно, причём поскольку ток в сигнальной обмотке обратно пропорционален числу витков в ней, сечение провода также можно существенно уменьшить. Именно поэтому в токовых трансформаторах в сигнальной обмотке обычно значительно больше витков, чем в силовой.

Индуктивность каждого витка можно очень сильно увеличить с помощью ферромагнитного магнитопровода. Обычная электротехническая сталь увеличивает магнитную индукцию в несколько тысяч раз, а также концентрирует магнитное поле внутри магнитопровода, обеспечивая полноту прохождения магнитного потока через витки сигнальной обмотки. Например один виток на ферритовом кольце R36x23x15 PC40 имеет индуктивность около 3 мкГн, что в 12 раз больше, чем те 0.25 мкГн, которые у нас получились для витка в мотке кабеля намного больших размеров.

Наличие магнитопровода в конструкции трансформатора приводит и к некоторым ограничениям:

  • Напряжённость поля внутри сердечника ограничена эффектом магнитного насыщения, т.е. чем больше измеряемый ток - тем больше должно быть сечение сердечника, чтобы распределить магнитное поле по большей площади.

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

  • При перемагничивании сердечника выделяется тепло, что ограничивает произведение частоты изменения тока на величину магнитного поля.

Все эти ограничения однако больше влияют на конструкцию силовых трансформаторов, а для измерительного трансформатора достаточно легко можно обеспечить очень большой запас по каждому из этих ограничений.

От теории к практике

Токовый трансформатор SCT-013
Токовый трансформатор SCT-013

Трансформаторы тока повсеместно используются для измерений в сети 220В. Можно купить готовый трансформатор и через простенькую аналоговую схему подключить его к микроконтроллеру, но возможность и желание ждать заказа есть не всегда, так что мы будем делать самодельный из подручных материалов - в надежде, что это получится и быстрее, и дешевле, и интереснее. Важно сказать, что у меня не было задачи сильно оптимизировать конструкцию - нужно было сделать быстро, просто и понятно, чтобы работало и не ломалось.

Чтобы получить достаточный запас по ЭДС индукции, но сохранить при этом небольшие габариты, я использовал в качестве магнитопровода ферритовое кольцо R36x23x15 PC40 (такое можно купить в ряде магазинов радиодеталей меньше чем за 100 рублей). Первичную обмотку я сделал обычным силовым проводом, просто пропустив его несколько раз через кольцо. А сигнальную обмотку намотал тонким монтажным проводом с сечением 30AWG - таким просто удобнее сделать нужное число витков. Плотность и аккуратность намотки в данном случае были не важны, т.к. достаточно было всего лишь обнаружить включение нагрузки, а не измерять потребляемый ток.

Чтобы оценить запас по ЭДС индукции, я посчитал ожидаемое напряжение на разомкнутой сигнальной обмотке при работающей нагрузке. Для этого сначала вычислил индуктивность одного витка провода на магнитопроводе:

L=\frac{\mu_0\mu{}h}{2\pi}\ln\frac{R}{r}

Здесь \mu - магнитная проницаемость материала (2300 для феррита PC40), R - внешний радиус ферритового кольца, r - внутренний радиус, h - высота. Получилось значение около 3 мкГн.

Дальше я взял паспортную мощность погружного насоса, включения которого нужно было детектировать (320 Вт), и посчитал амплитуду напряжения на разомкнутой обмотке в зависимости от числа витков в первичной и вторичной обмотках:

|U|=N_1N_2L\frac{2\pi\sqrt{2}fP}{U}\approx{}N_1N_2\cdot2\;\mathrm{мВ}
Самодельный трансформатор тока, подключённый в цепь с тестовой нагрузкой
Самодельный трансформатор тока, подключённый в цепь с тестовой нагрузкой

Поиграв с числом витков, я решил сделать 6 витков первичной обмотки и 130 витков вторичной. Так получился запас ЭДС около 1.5 В и амплитуда тока в короткозамкнутой сигнальной обмотке чуть меньше 100 мА, что при использовании резистора на 5 Ом соответствует падению напряжения около 0.5 В. Больше витков силового кабеля было бы сложнее впихнуть в просвет кольца, да и ток в сигнальной обмотке не хотелось делать слишком большим (т.к. она сделана из довольно тонкого провода). При меньшем числе витков первичной обмотки для получения хорошего запаса по ЭДС пришлось бы сильно увеличить число витков во вторичной обмотке - а значит гораздо больше возиться с намоткой и получить для детектирования в несколько раз меньший ток.

Схема подключения к микроконтроллеру

На выходе трансформатора тока, шунтированного резистором, получается переменное напряжение, которое нужно как-то детектировать с помощью микроконтроллера. Сначала я собирался использовать для этого диодный выпрямитель, однако это оказалось не очень удачной идеей. Дело в том, что на открытом диоде присутствует довольно значительный перепад напряжения, особенно если это не диод Шоттки. Кроме того, детектировать переменный сигнал известной частоты проще в плане соотношения сигнал/шум.

В итоге я решил просто подать напряжение на шунтирующем резисторе (собранном из двух параллельно включённых резисторов R3 и R4 номиналом по 10 Ом) через токоограничивающий резистор R5 на АЦП-вход микроконтроллера A0. А чтобы выставить уровень напряжения при отсутствии тока в обмотке, сделал простой резистивный делитель R1/R2 со стабилизирующим конденсатором C1.

Схема подключения трансформатора тока к микроконтроллеру
Схема подключения трансформатора тока к микроконтроллеру

Таким образом, при выключенной нагрузке на входе микроконтроллера будет напряжение, равное половине напряжения питания. А при включённой - колебания частотой 50 Гц вокруг половины напряжения питания с амплитудой, пропорциональной мощности нагрузки.

Резистор R5 не будет влиять на измерения, т.к. при нормальной работе ток через него пренебрежимо мал. Но если по каким-то причинам на выходе трансформатора возникнет скачок напряжения, превышающий половину напряжения питания, в микроконтроллере откроется защитный диод D1 или D2, соединяющий вход с одной из линий питания. В этом случае через резистор R5 потечёт ток, и напряжение будет падать на этом резисторе, а не на диоде. Таким образом, резистор R5 защищает вход микроконтроллера от скачков напряжения.

Код для микроконтроллера

Поскольку в моём случае достаточно было детектировать сам факт включения нагрузки, код получился очень простым:

int measureCurrent(){
    int i;
    const int cnt = 10;
    int minv = 1025;
    int maxv = -1;
    for(i = 0; i < cnt; i++) {
      int value = analogRead(A0);
      if (value > maxv) {
        maxv = value;
      }
      if (value < minv) {
        minv = value;
      }
      delay(2);
    }
    return maxv - minv;
}

В течение одного периода колебаний измеряется максимальное и минимальное значение на АЦП и величина тока определяется по разности между ними. При включённном насосе функция возвращает значение более 200 отсчётов, а при выключенном - меньше 10.

График значений функции measureCurrent() в зависимости от времени
График значений функции measureCurrent() в зависимости от времени

Заключение

В итоге получилась довольно простая, надёжная и дешёвая система детектирования включений погружного насоса. Она непрерывно работает уже 7 месяцев и пока не потребовала каких-либо вмешательств.

Сделать свой собственный трансформатор тока оказалось совсем несложно и достаточно интересно. Я постарался максимально подробно изложить здесь полученный при этом опыт. Надеюсь, эта статья позволит кому-нибудь быстрее разобраться в принципах работы трансформатора тока и реализовать свои собственные проекты с использованием этого элемента.

UPD: В комментариях подсказали очень дешёвый вариант готового трансформатора тока - ZMCT103C, судя по характеристикам его вполне можно было бы использовать для решения моей задачи.

Теги:
Хабы:
Всего голосов 37: ↑37 и ↓0+37
Комментарии41

Публикации

Истории

Ближайшие события

7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань