ARDUINO Smart UPS на Ардуино

abratchik

✩✩✩✩✩✩✩
7 Июн 2021
9
5
Всем привет. У меня есть незавершенный проект по разработке референсного Smart UPS на Ардуино. Идея в следующем. Промышленные бесперебойники известных брендов довольно дорогие. Вместе с тем есть дешевые нонеймы, которые неизвестно как работают, и часто заявленных параметров не обеспечивают. К тому же, нонеймы зачастую не умеют предоставлять информацию о своем состоянии компьютеру, либо требуют для своей работы установки специальных драйверов. Также у них могут быть проблемы с совместимостью для Linux.

Возникла мысль разработать свой собственный smart UPS на базе Ардуино, который бы общался с компьютером через USB порт. Требования - имитировать работу умного бесперебойника, чтобы он сообщал компьютеру об уровне заряда аккумулятора, пропадении и появлении электричества в сети, не требовал установки драйверов и поддерживал Plug&Play. В результате родился проект HID-Compliant UPS with Arduino , где реализована первая часть данной идеи, а именно контроллер на базе Arduino Micro, который умеет имитировать работу бесперебойника любой степени продвинутости, совместим с Windows, macOS и Linux, и драйверов не требует.

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

Если есть желание развить данный проект, буду рад сотрудничеству.
 
Изменено:

VitaliyE86

✩✩✩✩✩✩✩
14 Июн 2021
1
0
Интересно, если он поддерживает NUT , то можно разработать UPS 12в/5в для роутера на ОС OpenWrt
 
Изменено:

abratchik

✩✩✩✩✩✩✩
7 Июн 2021
9
5
@VitaliyE86, пока не поддерживает, так как в NUT есть ограничение, которое как раз пытаемся устранить. Думаю, поправим, так как интерес со стороны команды NUT есть. Пока можно собрать NUT отсюда, с этой веткой все должно работать.
 

bort707

★★★★★★✩
21 Сен 2020
3,062
912
@abratchik, интересный проект... но от этой сотни строчек до самостоятельного смарт-UPS еще очень далекий путь...
 

rGlory

★✩✩✩✩✩✩
11 Май 2021
200
20
Интересный проект, а в чем нужна помощь? Я не электронщик, программист, хотя некоторый опыт в электронике есть, на уровне любителя.
 

abratchik

✩✩✩✩✩✩✩
7 Июн 2021
9
5
@rGlory, нужно разработать силовую часть. Есть мысль ее сделать также на Arduino, используя вот эти схемы - там как раз уже есть почти вся необходимая схемотехника. В них Ардуино просто используется для генерации ШИМ для силовых ключей, чтобы в итоге получалась синусоида на выходе при работе от батареи. Для превращения этого в UPS (например в line interactive), нужно чтобы этот же Ардуино умел:
  1. автоматически переключать нагрузку на инвертор в случае пропадения сети, и обеспечивать обратное переключение
  2. управлять зарядом батареи
  3. измерять основные параметры - ток зарядки/разрядки и напряжение батарей, ток и напряжение в нагрузке, ток и напряжение от сети
  4. Включать и выключать нагрузку
  5. Отправлять и получать команды через серийный порт, через который будет осуществляться взаимодействие с USB UPS контроллером. Желательно, чтобы поддерживался какой нибудь стандатный serial UPS протокол - например SEC (еще тут про него написано). В этом случае к UPS можно будет прикрутить RS-232 порт через оптопары, и управлять через него, минуя USB.
Общая идея такая - ардуино в силовой части отвечает за низкоуровневую логику и управление силовыми цепями, а USB контроллер отвечает за более высокоуровневые функции (например, подсчет циклов заряда, рассчет времени разряда в зависимости от типа батареи, текущего тока нагрузки, работу с USB, LED UI и тд, а общение между ними происходит через serial port. Насколько мне известно, некоторые промышленные UPS примерно так и устороены, просто они используют специализированные контроллеры вместо Arduino.
 
Изменено:

Геннадий П

★★★★★★✩
14 Апр 2021
1,969
632
44
Ардуина в качестве процессора ИБП - слишком не надежно, особенно если китайский клон.
Да и смысл делать чистую синусоиду на выходе, разве что только для управления нагрузкой типа двигателей или блоков питания на трасформаторе.
 

abratchik

✩✩✩✩✩✩✩
7 Июн 2021
9
5
@Геннадий П, почему не надежно? Синус не обязателен конечно, но для универсальности можно, тем более что все это можно будет менять перепрошивкой скетча.
 

bort707

★★★★★★✩
21 Сен 2020
3,062
912
@abratchik, ну вы сначала сгенерите трехфазную или двухфазную синусоиду ардуиной, а потом видно будет.
Ардуина, вообще-то, не особо для этого хороша, лучше взять стм32
 
  • Лойс +1
Реакции: RamonSantiago

Геннадий П

★★★★★★✩
14 Апр 2021
1,969
632
44
@abratchik, В импульсных преобразователях универсальности не бывает. Либо заточено под использование ШИМ с генерацией синусоиды, либо аппроксимированная синусоида (почти меандр).
 

abratchik

✩✩✩✩✩✩✩
7 Июн 2021
9
5
@bort707, а в чем проблема? Она успешно генерится через ШИМ, уже пробовал. Использовал Arduino Micro и прошивки из этой статьи. Там правда используется главный цикл ардуино для генерации, так делать не совсем правильно - лучше через таймеры, как вот тут советуют, а циклы использовать для медленной логики.
 
Изменено:

rGlory

★✩✩✩✩✩✩
11 Май 2021
200
20
Она успешно генерится через ШИМ, уже пробовал.
У меня недавно сдохло пару батарей на моих UPS и я решил их переделать под литиевые батареи. В процессе переделки у меня возник вопрос, почему во многих UPS используется БЖТ (большой железный трансформатор), а не импульсный, поменьше? В итоге спросил у железячников, ответ такой - нарисованная таким образом синусоида не работает нормально с индуктивной нагрузкой (насколько помню и с емкостной тоже). А ежели вам нужно только импульсники питать, там рисовать синусоиду смысла вообще нет, их вообще постоянкой питать можно. В общем вывод был такой, генерировать выходное напряжение через ШИМ по входе - не эффективно. Эффективнее например сделать инвертор на выходе - постоянку в 300В переводить в синусоиду например.
 

abratchik

✩✩✩✩✩✩✩
7 Июн 2021
9
5
@rGlory, я думаю, причина в том, что реальная нагрузка расссчитана на сетевое напряжение и частоту 50-60 герц. Размеры трансформатора связаны с частотой и требуемой мощностью - поэтому на 50/60 только БЖТ. Насчет нарисованной синусоиды я не очень понял, что имеется ввиду. И почему вдруг ШИМ не эффективно? По сути энергия сперва ключами закачивается в сердечник, а оттуда уже раздаётся в нагрузку со вторичной обмотки. В ключах практически ничего не теряется, заодно обеспечивается гальваническая развязка от сети. Что тут плохого?
 

rGlory

★✩✩✩✩✩✩
11 Май 2021
200
20
Насчет нарисованной синусоиды я не очень понял, что имеется ввиду.
Идея была значительно снизить габариты трансформатора засчет увеличения частоты - рисовать синусоиду с выхода импульсного трансформатора. Наверно я не в тему влез, здесь тоже подразумевается БЖТ.
 

Геннадий П

★★★★★★✩
14 Апр 2021
1,969
632
44
причина в том, что реальная нагрузка расссчитана на сетевое напряжение и частоту 50-60 герц.
Импульсным блокам питания (которыми оборудованы подавляющее большинство современной техники) особо пофигу на частоту, главное чтобы диоды во входящем мосте успевали срабатывать. Так же пофигу на форму сигнала, нет смысла изображать ШИМом синусоиду. Как уже сказали выше, им хоть постоянку подавай.
 

abratchik

✩✩✩✩✩✩✩
7 Июн 2021
9
5
@Геннадий П, в теории да, можно увеличить частоту на выходе, и это позволит уменьшить габариты трансформатора. Но в большинстве импульсников на входе ещё обычно ВЧ фильтры стоят, поскольку расчёт на НЧ, а высокочастотная составляющая считается помехой. Ну и мосты на входе тоже рассчитаны на НЧ, как правило. На ВЧ они превратятся в конденсаторы. Вообщем, для референсного источника все же надежнее иметь синусоиду
 

Геннадий П

★★★★★★✩
14 Апр 2021
1,969
632
44
@abratchik, Видел ИБП от IPPON или Powercom на импульсных трансформаторах. Жаль осциллографа не было под рукой посмотреть как там сигнал на выходе.
 

abratchik

✩✩✩✩✩✩✩
7 Июн 2021
9
5
@Геннадий П, Я не спорю, можно повысить частоту, но line interactive UPS так не сделаешь, поскольку в сети частота 50/60 - при переключении могут начаться всякие переходные процессы, которые нагрузка может не пережить. Придётся делать двойное преобразование, где инвертор будет постоянно включён - тогда можно частоту на выходе поднять. Но у двойного преобразования тоже свои недостатки
 
Изменено:

MaxLab code

✩✩✩✩✩✩✩
28 Июл 2022
1
0
Как раз то, что ищу. Есть какие-либо продвижения по этой теме?
 

rtty

✩✩✩✩✩✩✩
19 Ноя 2020
3
1
свой смарт это довольно сложно, и это очень нишево. Есть ли смысл?
Ну, если для души итп, то да, конечно!
А если надо просто решить вопрос с питанием -
что такого покупной упс не может, что надо городить свой с 0? Да еще смарт?
В самом деле, куда такое можно/нужно ставить?

в ответственные места я бы поставил покупной, можно бу, но да, смарт.
и на сервера, даже в сохо итп... а уж всякие "котлы, которым нужен синус..."
или если надо много и долго = большие батареи, токи... тоже сомнительно.
всякая спец-техника вроде сигналок, пожарок итп скудов имеет уже свое все.
И там на 7АЧ батарее полно вариантов простых бесперебойников.
Остается ниша самоделок итп полоумных домов, роутеров, насов?


А никто не подскажет проект на ту же тему, но попроще?
Например, не Smart UPS а Back UPS ?
а для массовой доработки бестолковых дешевых упсов без сигнализации -
Обеспечить такую сигнализацию проще на порядок, и для целевого сегмента (просто компы) - достаточно.
Софт, который такую сигнализацию (DUMB) понимает, это не только NUT - странно, что никто не сказал про apcupsd.
Вполне рабочая штука. На вин, на Лин... про мак не знаю, но такой некошерный колхоз к маку? сектанты не одобрят )

думается, можно в исправный тупой упс просто добавить нано,
и экстремально немного обвязки - делитель или готовый датчик напряжения,
преобразователь питания и фильтр от переходных процессов в упсе.
(еще надо защитить батарею от разряда нашим колхозом - отправить его по лоубатт
в глубокую спячку с проверкой раз в 10 минут?)
Мониторим напряжение прямо на батарее, 3 порога - онлайн, онбатт, лоубатт.
И свистим про эти 3 статуса в виртуальный ком по усб. Кто хочет делает RS232...
берем питание с батареи, ее же и мерим. 2 провода припаять - все подключение.
Море практически дармовых б/у тупых упсов, да и новые тупые тоже недороги.
За такую цену я предпочитаю б/у смарты
 

poty

★★★★★★✩
19 Фев 2020
3,230
940
@rtty, много толковых мыслей, несколько сумбурное изложение, правда.
Тупой маломощный УПС легко построить с помощью широко распространённых интегральных усилителей низкой частоты + генератор на входе (интегральный, на рассыпухе или прямо с МП) + трансформатор на выходе. Логика - простейшая.
Если нужно что-то помощнее, то есть драйверы моторов, можно, собрав кучу аккумуляторов + ШИМ на драйвер + простейший фильтр.
Но для DIY это довольно опасная штука. Нужно точно знать, что делаешь, иначе до к.з., пожара и т.п. недалеко. Я уже не говорю про соблюдение мер электробезопасности (надёжное заземление корпуса и всех металлических частей, до которых можно докоснуться, наличие предохранителей и т.п. - ПУЭ в помощь).
 

rtty

✩✩✩✩✩✩✩
19 Ноя 2020
3
1
@rtty,
Но для DIY это довольно опасная штука.
Ну я это и имею ввиду - безопасность. Чтобы можно было без присмотра оставить не обливаться потом от каждой смс...

Кастомное городить имеет смысл только в очень редких случаях, когда
покупное за разумные деньги не покрывает экзотическую потребность.
Ну или когда полно всего есть, и проще сделать, чем купить.
Но НИОКР, прототип итп, и отладка - штучного изделия... дорого.
Не штучного? Мелкой серии? А зачем такое?
Или у вас там не полоумный дом, а полоумный квартал и таких экзотиков одинаковых горку
надо самому наделать - и потом самому эксплуатировать, саппортить, пока смерть не разлучит вас? )

про свой вопрос - я вижу очень простую и весьма универсальную доделку - из тупого в бек-упс, это как бы отдельная ниша -
в которой любой бросовый бесперебойник легко и дешево дополняется портом с 3 сигналами. Почти любым DIY-шником.
доделки минимальные, в родные силовые цепи - не лезем, безопасность не ухудшаем,
а "сигналы вроде гаситесь там, скоро отключат" - получаем.
И софт готовый есть несколько вариантов, по крайней мере 2 точно
 
Изменено:

rtty

✩✩✩✩✩✩✩
19 Ноя 2020
3
1
@rGlory, . Насколько мне известно, некоторые промышленные UPS примерно так и устороены, просто они используют специализированные контроллеры вместо Arduino.
как упсо-строителю вам может понравится получить к упсу сеть, посмотрите этот проект:


https://github.com/zbx-sadman/Zabbuino/wiki/Zabbuino-User-Cases-in-Russian
// "Сетевая карта" для APC SmartUPS

 
  • Лойс +1
Реакции: FMKstudio