Как я делал линейно-интерактивный ИБП (Часть 2)

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

    Часть 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 сек), то мы её просто обесточиваем. От жёсткого КЗ в режиме работы от сети защищает автоматический выключатель. А вот в режиме работы о инвертора защита организована электронная, но с использованием других датчиков. Об этом пойдёт речь чуть позже при рассмотрении работы самого инвертора.
    Share post

    Comments 39

      0
      Для многих нагрузок (маломощные бп без PFC) актуально не действующее а амплитудное значение напряжения.
        0
        Самому контролеру ИБП необходимо знать действующее значение входного и обязательно выходного напряжения при работе от инвертора, потому что в этом случае форма сигнала далеко не синусоидальная. А ИБП должен держать на выходе 230В независимо от тока потребления нагрузки.
          0
          Вот для выходного это как раз не факт. Допустим вы регулируете значение действующего напряжения при помощи ШИМ: Можно сделать меандр, при этом амплитудное и действующее будут равны. Тогда на выходе входного выпрямителя простенького импульсного БП будут те же 220В (а не 315В как при синусоидальном напряжении с действующим значением 220В), что эквивалентно питанию синусоидальным напряжением с действующим значением 156В.
          Мораль — всё зависит от нагрузки вашего ИБП. Если это опять же простой импульсный БП — то можно всё упростить и мерять амплитудные значения. Если лампа накаливания (или нагреватель) — то надо держать действующее значение. Если ИБП с корректором коэффициента мощности (PFC) — то уже надо смотреть. Возможно надо контролировать и амплитудное и действующее значения напряжения. Если коллекторный двигатель или трансформатор — то подозреваю, что вообще среднее (могу ошибиться).
            0
            ИБП не может знать, на какую нагпузку он будет работать. Поэтому измерять надо только действующее значение. Собственно именно оно и подразумевается, когда мы говорим про 230В на выходе.
            Если измерять выходное напряжение при работе от инвертора 100-рублёвым китайским мультиметром, но он покажет чёрти что. Если мультиметром с режимом trueRMS, то будут правильные значения. По сути это можно взять за эталон.
              0
              ИБП — нет. А пользователь — да. По этому дорогие ИБП просто делают чистый синус, чтобы вообще исключить подобные проблемы. А про измерение выходного напряжения ещё раз повторяю — проблема не в измерении мультиметром китайским дешёвым или китайским крутым ;-). Проблема в нагрузке. Если нагрузка — диодный мост с конденсатором (большинство маломощных импульсных БП), то важно в основном амплитудное значение. На действующее такой нагрузке практически наплевать. Просто можете посмотреть мультиметром напряжение на входном конденсаторе такого БП, подключенного к вашему ИБП при разных значениях напряжения на аккумуляторе и одинаковом действующем.
              Или даже при переключении с сети на акакумулятор.
                0
                Вопрос в качестве ступенчатой аппроксимации синуса. Можно подобрать такое значение соотношения длительности импульса к периоду, что соотношение амплитудного и действующего значений напряжения будут как для чистого синуса. Но тогда ШИМ делать нельзя :-). По этому в дешёвых ИБП ШИМ нет и никто не меряет действующее значение напряжения на выходе. Это просто лишняя трата денег. Можно обойтись простым амплитудным детектором и не париться.
                  0
                  Вы много ИБП разобрали, чтобы утверждать, что «никто не делает»?
                  Я разобрал пять ИБП различных фирм. Часть решений как раз позаимствовал из их схемотехнике. Во всех разобранных ИБП были узлы на ОУ аналогичных тем, что я описывал ранее. Даже китайцы не экономят на этом. У них экономия в других узлах, но об этом отдельный разговор будет.
                    0
                    Я как-то мерял напряжение на конденсаторе БП, подключенного к ИБП. Оно практически повторяет напряжение на аккумуляторе ИБП с поправкой на коэффициент трансформации.
                    Входные цепи ни о чём не говорят. Зачем ставить после ОУ амплитудный детектор, когда его можно не ставить а делать всё уже с оцифрованным сигналом. Так проще и дешевле. Весь вопрос в алгоритме обработки оцифрованного сигнала. Вы точно уверены в том, что они вычисляют только действующее значение? Как минимум надо ещё контролировать и амплитудное.
                    Надо не заимствовать. Надо думать: что, зачем и почему так сделано.
                      0
                      Вот такие всплески появляются на выходе ИБП при питании некоторых типов нагрузки с небольшим потреблением и конденсаторами на входе:



                      И это ещё не самое страшное. Так что измерять нужно конкретно действующее напряжение на выходе. Всё остальное будет неверным. Если уж есть прям такая необходимость узнать амплитудное значение, то вычислить его при оцифровке совершенно не проблема.
                        0
                        А не меряли при этом напряжение на конденсаторе в нагрузке? Ну или просто амплитудное значение напряжения.
                          0
                          навскидку — при отношении длительности импульса к полупериоду как 1:3 (как на осциллограмме) даже без выбросов амплитудное значение будет чуть более 400В. В хороших БП входные конденсаторы расчитаны на 450В и им наверно будет пофиг. А если на входе стоит конденсатор на 350В? И блок питания маломощный и конденсатор фильтра малой ёмкости и легко зарядится до пикового значения?
                            0
                            Так чудес не бывает. Мы же не синусоидальный сигнал делаем! Это ИБП среднего класса. Поэтому при малой нагрузке, ясное дело, амплитудное значение высокое будет. Осциллограмма это как раз подтверждает. Просто у каждой вещи есть свои применения.
                            Да и с конденсаторами не всё так просто. Вот берём классику от Epcos — B32023.
                            При номинальном напряжении в 305В они допускают напряжение в 480В. А эти конденсаторы стоят в большом количестве источников питания.

                              0
                              Эммм… а при таком подходе вообще зачем стабилизация напряжения?
                              Тем более вы привели ссылку на конденсаторы фильтра подавления помех. А там ещё есть электролит. плюс диодный мост прюс схема преобразователя
                                0
                                Слушайте, я уже нить разговора потерял, если честно. Начали с действующего значения. Я 10 раз объяснил, что проще МК его вычислить и проблем не знать. Теперь перешли к необходимости стабилизации напряжения. Вы чего узнать конкретно хотите?
                                  0
                                  Я хочу сказать, что контроль действующего напряжения в таком простеньком ИБП нафиг не нужен от слова совсем, и даже вреден (приводит к повышенным до критического уровня перенапряжениям для определённых БП). Ибо для многих нагрузок актуально амплитудное значение.
                                    0
                                    1. В нормальном ИБП ВСЕГДА надо измерять действующее значение. Только оно имеет смысл в общем случае. Частности не рассматриваем, т.к. ИБП у нас общего применения.

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

                                    Вот на счёт измерения амплитудного значения на различных нагрузках вопрос интересный. Пока такие измерения я проводил только на нагрузках, близких к номинальной. Обязательно сниму осциллограммы и попозже выложу.
                                      0
                                      Лучше не осциллограммы даже а напряжение на входном электролите маломощного бп типа бп роутера или зарядки для телефона.
                                      P.S. Чего-то я задумался — а не глянуть ли мне, что творится на выходе моего домашенго ИБП. А то там кроме сервака ещё питание свича. Серваку скорее всего пофиг. Там seasonic с активным PFC. А вот свичу наверно нет.
                                        0
                                        «Нехреновые у Вас запросы — сказала база данных и зависла!» :-) Шутка!
                                        Попробуем. Как сниму, так сразу выложу. Тут вообще интересных моментов много ещё. Например, испытывали ИБП на импульсной нагрузке. Там форма сигнала вообще страшная получается. Часто срабатывает токовая защита. Приходится компромисс искать между скоростью срабатывания и отсеиванием ложных срабатываний.
                                0
                                Я недавно монитор ремонтировал. Там была цепь защиты от перенапряжения. Включалась при 350В на выходе фильтра (250 действующего). Учитывая то, что в сети 240В то иногда монитор просто выключался, что бесило. Пришлось порог повыше отодвинуть.
                            0
                            Вы точно уверены в том, что они вычисляют только действующее значение?


                            Почти все разобранные ИБП имели ЖК-индикаторы, где выводили значения входного и выходного напряжения. Эти значения с точностью до нескольких вольт совпадали с показателями мультиметра с режимом trueRMS.
                              0
                              Если правильно подобрать скважность и не трогать её и отфильтровать выбросы — то и обычный тестер, который меряет амплитудное значение, тоже будет давать показания, с точностью до нескольких вольт совпадающие с действующим значением.
                                0
                                А зачем эти все манипуляции, если намного проще сразу действующее значение вычислять и всё? Я же описал в статье, что ничего сложного в этом нет!
                                  0
                                  Я не о манипуляциях. Посмотрите на своей же осциллограмме амплитудное значение выходного напряжения и подумайте, до скольки зарядится конденсатор на входе маломощного БП при ваших 220В действующего.
                                  Например в БП роутера DLink стоит конденсатор на 400В.
                                    0
                                    Я уже по этому поводу ответил Вам выше: habr.com/post/422023/?reply_to=19064847#comment_19064859

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

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


                                          0
                                          Смотрите — на осциллограмме здесь соотношение импульса и полупериода 1:2. А это уже как раз практически оптимум. Когда при ступенчатой аппроксимации синусоиды соотношение амплитудного и действующего напряжений такое же как и для синуса. В данном случае амплитудное будет порядка 320В (при действующем 220В), что просто отлично.
                                            0
                                            В большинстве ИБП данного класса стоит трансформатор на 50Гц (тяжёлый, и как правило греющийся, ибо китайцам на потери в железе наплевать а экономить надо). И ключи, коммутируемые с частотой 50гц (никакого формирования синуса при помощи ШИМ естественно нет, хотя реализовать это в принципе не так трудно — единственное изменение — это драйвера ключей придётся поставить, ибо частота коммутации станет выше, да фильтр ВЧ). Амплитудное значение напряжения в таком подходе не стабилизируется никак. Но оно и не надо — ибо напряжение на выходе свинцовой АКБ достаточно стабильно. Типа стабилизация действующего значения — чисто маркетинговая чушь (правда легко и дёшево реализуемая в нынешних условиях). Лучше бы эти силы были бы направлены как раз на чистый синус на выходе.
                                              0
                                              Трансформатор обычно имеет мощность в три раза меньше номинальной. Это даёт возможность питать нагрузку при номинальном токе в течение 5-7 минут при перегреве до 100C. То есть тут всё как раз чётко и дело не в китайцах, потому что экономия вполне оправдана. За 5-7 минут полностью тратится заряд аккумуляторов, дальше всё обесточивается.
                                              Чистый синус в большинстве случаев не нужен, т.к. современные импульсные блоки питания уже на входе имеют диодный выпрямитель и могут питаться хоть постоянным напряжением.
                                              Поэтому обычные ИБП так популярны. Они позволяют за небольшие деньги решить проблему резервирования питания для большинства офисной техники.
                                                0
                                                Дело не в мощности и не в запасе. Дело в магнитных потерях в сердечнике. Большинство времени ИБП работает как стабилизатор напряжения и тупо жрёт 5Вт и более просто на нагрев железа (трансформатор то подключен к сети)
                                                Чистый синус в большинстве случаев не нужен, т.к. современные импульсные блоки питания уже на входе имеют диодный выпрямитель и могут питаться хоть постоянным напряжением.

                                                И зачем тогда так упираться с действующим значением если амплитудное вы всё равно стабилизировать простыми методами не сможете? Именно это я до вас донести и хочу ;-)
                                                  0
                                                  Нагрев сердечника в режиме автотрансформатора вообще незначительный, поэтому такие ИБП могут без проблем работать в режиме 24/7.

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

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

                                                      2. Непонятно о каких 60C идёт речь. При работе от сети большинство ИБП, да и наш тоже, имеют перегрев в 10-20C, не больше. При работе от аккумулятора перегрев большой у всех, но время работы здесь небольшое: 5-7 минут.
                                                        0
                                                        60 градусов — температура сердечника трансформатора внутри корпуса ИБП марки DNS при работе от сети. При напряжении сети 222-+2В.
                                                      0
                                                      Вот например схема старого ИБП: electro-tech.narod.ru/schematics/power/ups/ntt_ups-800.gif

                                                      Везде меряется амплитуда и всё нормально работает. Просто сейчас всё можно сделать на микроконтроллере и этой рассыпухи не надо.
                                                        0
                                                        Потому что сейчас на МК всё делается быстрее, проще и дешевле. Можно без удорожания измерять действующее значения и не заморачиваться :-)
                                                          0
                                                          Да на здоровье. Только это не нужно. Смотрю я на этот DNSовский ИБП и понимаю: лучше бы он просто меньше грелся (аккумулятор там рядом — и тепло ему совсем не полезно) и нормально коннектился с CUPS. А вот это всё на экранчике — нафиг не нужно. Надо найти старый фирменный ИБП, поменять в нём аккумулятор, а это выкинуть или подарить врагу. Хотя таки да — напряжение на экранчике совпадает с напряжением на измерителе мощности (который по уму должен мерять действующее значение).
                                                            0
                                                            К сожалению про остальное забывают, увлёкшись свистелками и прочим. Сейчас посмотрел, сколько потребляет ДНСовский 600ВА ИБП сам по себе с полностью заряженной батареей от сети: 8Вт! Куда ему столько?
                      0
                      ИБП с выходом «чистый синус» относятся к другому классу. Не надо в кучу всё смешивать.
                      И для пользователя и для нагрузки важно действующее значение. Именно его необходимо обеспечить на выходе, так как обеспечение этого напряжения является одной из основных функций ИБП.

                      Only users with full accounts can post comments. Log in, please.