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

Часть 1
Часть 2
Часть 3

Измерение действующего значения переменного напряжения или тока


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

Бюджетный вариант измерения TrueRMS
Метод измерения действующего значения напряжения с применением МК
Кратко и чётко все формулы расписаны
Расчет среднего и среднеквадратичного значений тока/напряжения

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

Вот пример того, что бывает на входе ИБП и на выходе (взято отсюда):

image

Алгоритм расчёта действующего напряжения в моём случае какой-либо уникальностью не обладает. С частотой в 1121 Гц (для оцифровки напряжения с частотой как 50, так и 60 Гц) вызывается прерывание по таймеру, запускается АЦП и выполняются измерения по трём каналам (входное напряжение, выходное напряжение, выходной ток). После накопления 90 измерений выполняется их обсчёт и вычисляются действующие значения.

Сумма квадратов величин вычисляется прямо в прерывании, а в основном цикле программы уже при использовании арифметики с плавающей точкой вычисляются усреднённые (ещё по 20 точкам) действующие значения.

Все операции выполняются на 8-битном микроконтроллере PIC18F26K22. Кто-то может сразу задать вопрос: почему не STM32, мол он мощнее, дешевле и т.п. Отвечу сразу. STM32 контроллер хороший, но у нас как-то не прижился, хотя и использовался в некоторых проектах.
Большинство наших задач не требуют громадных вычислительных ресурсов, поэтому 8-битников тут более, чем достаточно. Кроме того, для PIC18 имеется громадное число наработок и собственное сервисное ПО, а это очень важно, т.к. значительно ускоряет новые разработки, позволяя не отвлекаться на изучение неизвестной периферии. А это всегда отнимает больше всего времени.
Также у PIC18 много своих плюсов. Это и встроенный калиброванный генератор, минимальная внешняя обвязка, диапазон напряжений питания от 2,5 до 5В, хорошая встроенная периферия, мощные выходы с током до 25 мА и т.п. Работает МК на частоте до 64 МГц.

Измерение выходного тока


Измерение тока, потребляемого нагрузкой, осуществляется интегральным датчиком ACS712ELCTR-30A-T (на 30А) фирмы Allegro. Датчик выдаёт аналоговый сигнал, пропорциональный протекающему току с учётом знака. Если ток положительный, то сигнал будет более 2 В, если отрицательный – то менее 2 В. Выдаваемый датчиком сигнал оцифровывается МК и используется для контроля нагрузки. Сейчас фирма-производитель указывает на сайте и в тех. документации, что эти датчики нежелательно применять в новых разработках, и вместо них советует более современную модель из серии ACS723. Но пока что купить модели ACS712 в России у поставщиков намного проще, да и дешевле.

Датчик крайне удобен тем, что позволяет осуществить прямое подключение к АЦП МК, при этом требует всего одного источника питания 5В, а также обеспечивает гальваническую развязку (по сути датчик является бесконтактным, работающим на эффекте Холла). Последний пункт важен, т.к. измерение тока крайне желательно проводить в фазном проводе, чтобы вся нейтраль ИБП была так называемой «сквозной», т.е. по сути представляющей собой один единый проводник. Данный же датчик можно легко использовать в разрыве любого проводника, что упрощает всю схему измерения.

Однако, с этим датчиком связан один интересный момент. По документации он может выдерживать один импульс тока в 100А продолжительностью в 100 мс. Далее могут произойти необратимые разрушения микросхемы. Естественно, в ИБП во входной цепи устанавливается автоматический выключатель. Но время его срабатывания как раз соизмеримо с длительностью данного импульса. Вот пример время-токовой характеристики автомата типа С:

Чтобы иметь некоторый запас прочности в случае короткого замыкания на печатной плате ИБП был изготовлен дополнительный шунт согласно рекомендациям самой фирмы-производителя датчика (ссылка).

Суть тут довольно проста. Сопротивление внутреннего шунта датчика ACS712 составляет 1,2 мОм. Предлагается на печатной плате в виде проводника нужной формы сделать второй такой же шунт, таким образом увеличив предельное значение тока в два раза (до 200А), что позволит сработать автоматическому выключателю намного быстрее.

Размеры такого токового шунта на печатной плате показаны ниже:



Вот так это выглядит вживую:



Хочу отметить, что данный датчик предназначен только для измерения тока потребления нагрузки, чтобы оценить нагруженность ИБП и автоматически отключать его при превышении заданного предела. Например, ИБП на 600 Вт может выдавать максимум 3А. В случае, если нагрузка начнёт потреблять 4А или больше в течение некоторого времени (например, около 2 сек), то мы её просто обесточиваем. От жёсткого КЗ в режиме работы от сети защищает автоматический выключатель. А вот в режиме работы о инвертора защита организована электронная, но с использованием других датчиков. Об этом пойдёт речь чуть позже при рассмотрении работы самого инвертора.

Комментарии (39)


  1. zerg59
    02.09.2018 15:11

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


    1. FDA847 Автор
      02.09.2018 15:44

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


      1. zerg59
        03.09.2018 11:41

        Вот для выходного это как раз не факт. Допустим вы регулируете значение действующего напряжения при помощи ШИМ: Можно сделать меандр, при этом амплитудное и действующее будут равны. Тогда на выходе входного выпрямителя простенького импульсного БП будут те же 220В (а не 315В как при синусоидальном напряжении с действующим значением 220В), что эквивалентно питанию синусоидальным напряжением с действующим значением 156В.
        Мораль — всё зависит от нагрузки вашего ИБП. Если это опять же простой импульсный БП — то можно всё упростить и мерять амплитудные значения. Если лампа накаливания (или нагреватель) — то надо держать действующее значение. Если ИБП с корректором коэффициента мощности (PFC) — то уже надо смотреть. Возможно надо контролировать и амплитудное и действующее значения напряжения. Если коллекторный двигатель или трансформатор — то подозреваю, что вообще среднее (могу ошибиться).


        1. FDA847 Автор
          03.09.2018 11:52

          ИБП не может знать, на какую нагпузку он будет работать. Поэтому измерять надо только действующее значение. Собственно именно оно и подразумевается, когда мы говорим про 230В на выходе.
          Если измерять выходное напряжение при работе от инвертора 100-рублёвым китайским мультиметром, но он покажет чёрти что. Если мультиметром с режимом trueRMS, то будут правильные значения. По сути это можно взять за эталон.


          1. zerg59
            03.09.2018 12:07

            ИБП — нет. А пользователь — да. По этому дорогие ИБП просто делают чистый синус, чтобы вообще исключить подобные проблемы. А про измерение выходного напряжения ещё раз повторяю — проблема не в измерении мультиметром китайским дешёвым или китайским крутым ;-). Проблема в нагрузке. Если нагрузка — диодный мост с конденсатором (большинство маломощных импульсных БП), то важно в основном амплитудное значение. На действующее такой нагрузке практически наплевать. Просто можете посмотреть мультиметром напряжение на входном конденсаторе такого БП, подключенного к вашему ИБП при разных значениях напряжения на аккумуляторе и одинаковом действующем.
            Или даже при переключении с сети на акакумулятор.


          1. zerg59
            03.09.2018 12:16

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


            1. FDA847 Автор
              03.09.2018 12:24

              Вы много ИБП разобрали, чтобы утверждать, что «никто не делает»?
              Я разобрал пять ИБП различных фирм. Часть решений как раз позаимствовал из их схемотехнике. Во всех разобранных ИБП были узлы на ОУ аналогичных тем, что я описывал ранее. Даже китайцы не экономят на этом. У них экономия в других узлах, но об этом отдельный разговор будет.


              1. zerg59
                03.09.2018 12:45

                Я как-то мерял напряжение на конденсаторе БП, подключенного к ИБП. Оно практически повторяет напряжение на аккумуляторе ИБП с поправкой на коэффициент трансформации.
                Входные цепи ни о чём не говорят. Зачем ставить после ОУ амплитудный детектор, когда его можно не ставить а делать всё уже с оцифрованным сигналом. Так проще и дешевле. Весь вопрос в алгоритме обработки оцифрованного сигнала. Вы точно уверены в том, что они вычисляют только действующее значение? Как минимум надо ещё контролировать и амплитудное.
                Надо не заимствовать. Надо думать: что, зачем и почему так сделано.


                1. FDA847 Автор
                  03.09.2018 13:24

                  Вот такие всплески появляются на выходе ИБП при питании некоторых типов нагрузки с небольшим потреблением и конденсаторами на входе:



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


                  1. zerg59
                    03.09.2018 13:54

                    А не меряли при этом напряжение на конденсаторе в нагрузке? Ну или просто амплитудное значение напряжения.


                  1. zerg59
                    03.09.2018 14:09

                    навскидку — при отношении длительности импульса к полупериоду как 1:3 (как на осциллограмме) даже без выбросов амплитудное значение будет чуть более 400В. В хороших БП входные конденсаторы расчитаны на 450В и им наверно будет пофиг. А если на входе стоит конденсатор на 350В? И блок питания маломощный и конденсатор фильтра малой ёмкости и легко зарядится до пикового значения?


                    1. FDA847 Автор
                      03.09.2018 14:23

                      Так чудес не бывает. Мы же не синусоидальный сигнал делаем! Это ИБП среднего класса. Поэтому при малой нагрузке, ясное дело, амплитудное значение высокое будет. Осциллограмма это как раз подтверждает. Просто у каждой вещи есть свои применения.
                      Да и с конденсаторами не всё так просто. Вот берём классику от Epcos — B32023.
                      При номинальном напряжении в 305В они допускают напряжение в 480В. А эти конденсаторы стоят в большом количестве источников питания.


                      1. zerg59
                        03.09.2018 14:25

                        Эммм… а при таком подходе вообще зачем стабилизация напряжения?
                        Тем более вы привели ссылку на конденсаторы фильтра подавления помех. А там ещё есть электролит. плюс диодный мост прюс схема преобразователя


                        1. FDA847 Автор
                          03.09.2018 14:29

                          Слушайте, я уже нить разговора потерял, если честно. Начали с действующего значения. Я 10 раз объяснил, что проще МК его вычислить и проблем не знать. Теперь перешли к необходимости стабилизации напряжения. Вы чего узнать конкретно хотите?


                          1. zerg59
                            03.09.2018 14:36

                            Я хочу сказать, что контроль действующего напряжения в таком простеньком ИБП нафиг не нужен от слова совсем, и даже вреден (приводит к повышенным до критического уровня перенапряжениям для определённых БП). Ибо для многих нагрузок актуально амплитудное значение.


                            1. FDA847 Автор
                              03.09.2018 14:45

                              1. В нормальном ИБП ВСЕГДА надо измерять действующее значение. Только оно имеет смысл в общем случае. Частности не рассматриваем, т.к. ИБП у нас общего применения.

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

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


                              1. zerg59
                                03.09.2018 14:53

                                Лучше не осциллограммы даже а напряжение на входном электролите маломощного бп типа бп роутера или зарядки для телефона.
                                P.S. Чего-то я задумался — а не глянуть ли мне, что творится на выходе моего домашенго ИБП. А то там кроме сервака ещё питание свича. Серваку скорее всего пофиг. Там seasonic с активным PFC. А вот свичу наверно нет.


                                1. FDA847 Автор
                                  03.09.2018 14:59

                                  «Нехреновые у Вас запросы — сказала база данных и зависла!» :-) Шутка!
                                  Попробуем. Как сниму, так сразу выложу. Тут вообще интересных моментов много ещё. Например, испытывали ИБП на импульсной нагрузке. Там форма сигнала вообще страшная получается. Часто срабатывает токовая защита. Приходится компромисс искать между скоростью срабатывания и отсеиванием ложных срабатываний.


                      1. zerg59
                        03.09.2018 14:35

                        Я недавно монитор ремонтировал. Там была цепь защиты от перенапряжения. Включалась при 350В на выходе фильтра (250 действующего). Учитывая то, что в сети 240В то иногда монитор просто выключался, что бесило. Пришлось порог повыше отодвинуть.


                1. FDA847 Автор
                  03.09.2018 13:25

                  Вы точно уверены в том, что они вычисляют только действующее значение?


                  Почти все разобранные ИБП имели ЖК-индикаторы, где выводили значения входного и выходного напряжения. Эти значения с точностью до нескольких вольт совпадали с показателями мультиметра с режимом trueRMS.


                  1. zerg59
                    03.09.2018 14:12

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


                    1. FDA847 Автор
                      03.09.2018 14:15

                      А зачем эти все манипуляции, если намного проще сразу действующее значение вычислять и всё? Я же описал в статье, что ничего сложного в этом нет!


                      1. zerg59
                        03.09.2018 14:20

                        Я не о манипуляциях. Посмотрите на своей же осциллограмме амплитудное значение выходного напряжения и подумайте, до скольки зарядится конденсатор на входе маломощного БП при ваших 220В действующего.
                        Например в БП роутера DLink стоит конденсатор на 400В.


                        1. FDA847 Автор
                          03.09.2018 14:26

                          Я уже по этому поводу ответил Вам выше: habr.com/post/422023/?reply_to=19064847#comment_19064859

                          Всякой вещи своё применение. Для организации бесперебойного питания обычных офисных компьютеров или телекоммуникационного оборудования никто не будет использовать дорогие ИБП с выходом «чистый синус». А вот дял дорогого сервера или медицинского оборудования можно и онлайник поставить.


                          1. zerg59
                            03.09.2018 14:45

                            вот конкретно ваш ИБП (для которго приведена осциллограмма) скорее всего убъёт бп какого-нибудь роутера (не сразу). Хотя на экране будут красивые 220В на выходе. А по факту амплитудное значение будет такое же, как и для синуса с действующим значением 290В


                            1. FDA847 Автор
                              03.09.2018 14:49

                              1. Так работает большинство ИБП данного типа, массового выхода из строя аппаратуры вроде выявлено не было.

                              2. Я уже писал, что ради интереса сниму осциллограммы выходного напряжения при нагрузке в 50 Вт. Пока у меня под рукой есть осциллограммы для нагрузки в 150 Вт:



                              1. zerg59
                                03.09.2018 15:01

                                Смотрите — на осциллограмме здесь соотношение импульса и полупериода 1:2. А это уже как раз практически оптимум. Когда при ступенчатой аппроксимации синусоиды соотношение амплитудного и действующего напряжений такое же как и для синуса. В данном случае амплитудное будет порядка 320В (при действующем 220В), что просто отлично.


                              1. zerg59
                                03.09.2018 15:14

                                В большинстве ИБП данного класса стоит трансформатор на 50Гц (тяжёлый, и как правило греющийся, ибо китайцам на потери в железе наплевать а экономить надо). И ключи, коммутируемые с частотой 50гц (никакого формирования синуса при помощи ШИМ естественно нет, хотя реализовать это в принципе не так трудно — единственное изменение — это драйвера ключей придётся поставить, ибо частота коммутации станет выше, да фильтр ВЧ). Амплитудное значение напряжения в таком подходе не стабилизируется никак. Но оно и не надо — ибо напряжение на выходе свинцовой АКБ достаточно стабильно. Типа стабилизация действующего значения — чисто маркетинговая чушь (правда легко и дёшево реализуемая в нынешних условиях). Лучше бы эти силы были бы направлены как раз на чистый синус на выходе.


                                1. FDA847 Автор
                                  03.09.2018 15:21

                                  Трансформатор обычно имеет мощность в три раза меньше номинальной. Это даёт возможность питать нагрузку при номинальном токе в течение 5-7 минут при перегреве до 100C. То есть тут всё как раз чётко и дело не в китайцах, потому что экономия вполне оправдана. За 5-7 минут полностью тратится заряд аккумуляторов, дальше всё обесточивается.
                                  Чистый синус в большинстве случаев не нужен, т.к. современные импульсные блоки питания уже на входе имеют диодный выпрямитель и могут питаться хоть постоянным напряжением.
                                  Поэтому обычные ИБП так популярны. Они позволяют за небольшие деньги решить проблему резервирования питания для большинства офисной техники.


                                  1. zerg59
                                    03.09.2018 15:27

                                    Дело не в мощности и не в запасе. Дело в магнитных потерях в сердечнике. Большинство времени ИБП работает как стабилизатор напряжения и тупо жрёт 5Вт и более просто на нагрев железа (трансформатор то подключен к сети)

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

                                    И зачем тогда так упираться с действующим значением если амплитудное вы всё равно стабилизировать простыми методами не сможете? Именно это я до вас донести и хочу ;-)


                                    1. FDA847 Автор
                                      03.09.2018 15:33

                                      Нагрев сердечника в режиме автотрансформатора вообще незначительный, поэтому такие ИБП могут без проблем работать в режиме 24/7.

                                      Амплитудное стабилизировать не требуется. Хотя это может быть актуально для каких-то микронагрузок, но это уже крайние случаи. Я уже обещал снять осциллограммы для нагрузки в 50 Вт. Как они будут, тогда и обсудим.

                                      А вот действующее значение очень важно, чтобы при питании нагрузки в районе номинальной не было проблем.


                                      1. zerg59
                                        03.09.2018 15:39

                                        Если у вас нагрузкой является устройство с выпрямителем на входе — то ему глубоко наплевать на действующее значение. У меня есть старый ИБП на 1500ВА — там скважность тупо задавалась подстроечным резистором и микроконтроллер только управлял релюшками да включал инвертор. Ну ещё общался по RS232.
                                        Выпрямитель с конденсатором на выходе — это амплитудный детектор. Т.е. напряжение на выходе зависит в основном от амплитуды. Можете поиграться со скважностью в вашем БП.
                                        Насчёт незначительного нагрева. 60 градусов — это незначительный? APC сейчас глянул — там 35 — вроде нормально. А вот DNS — это просто огонь! ;-)


                                        1. FDA847 Автор
                                          03.09.2018 15:43

                                          1. ИБП должен выдавать напряжение 230В. Чтобы это можно было проконтролировать, здесь должно быть действующее значение. Всё остальное — фигня. Выдача этого номинального действующего напряжения при работе от аккумулятора — основная функция ИБП.

                                          2. Непонятно о каких 60C идёт речь. При работе от сети большинство ИБП, да и наш тоже, имеют перегрев в 10-20C, не больше. При работе от аккумулятора перегрев большой у всех, но время работы здесь небольшое: 5-7 минут.


                                          1. zerg59
                                            03.09.2018 15:52

                                            60 градусов — температура сердечника трансформатора внутри корпуса ИБП марки DNS при работе от сети. При напряжении сети 222-+2В.


                                      1. zerg59
                                        03.09.2018 15:47

                                        Вот например схема старого ИБП: electro-tech.narod.ru/schematics/power/ups/ntt_ups-800.gif

                                        Везде меряется амплитуда и всё нормально работает. Просто сейчас всё можно сделать на микроконтроллере и этой рассыпухи не надо.


                                        1. FDA847 Автор
                                          03.09.2018 15:50

                                          Потому что сейчас на МК всё делается быстрее, проще и дешевле. Можно без удорожания измерять действующее значения и не заморачиваться :-)


                                          1. zerg59
                                            03.09.2018 16:00

                                            Да на здоровье. Только это не нужно. Смотрю я на этот DNSовский ИБП и понимаю: лучше бы он просто меньше грелся (аккумулятор там рядом — и тепло ему совсем не полезно) и нормально коннектился с CUPS. А вот это всё на экранчике — нафиг не нужно. Надо найти старый фирменный ИБП, поменять в нём аккумулятор, а это выкинуть или подарить врагу. Хотя таки да — напряжение на экранчике совпадает с напряжением на измерителе мощности (который по уму должен мерять действующее значение).


                                          1. zerg59
                                            03.09.2018 17:27

                                            К сожалению про остальное забывают, увлёкшись свистелками и прочим. Сейчас посмотрел, сколько потребляет ДНСовский 600ВА ИБП сам по себе с полностью заряженной батареей от сети: 8Вт! Куда ему столько?


  1. FDA847 Автор
    03.09.2018 12:15

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