Автоматизация малой СЭС

в 15:16, , рубрики: automation, smart home

Хочу поделиться своим опытом по созданию солнечной электростанции из относительно доступных компонентов. Сам я проживаю на теплом острове Кипр, где солнца мягко говоря с избытком настолько, что приходится серьёзные деньги сливать на электричество для кондиционеров (под 30 евроцентов за 1 кВт*ч!).

На текущем этапе у меня установлены следующие компоненты:

  1. Солнечные панели 370Вт в количестве 4 шт, попарно-параллельно. И ещё 4 ламинированные панели по 50Вт, которые подключены попарно через DC-DC преобразователи до 72В.

  2. Гибридный инвертор MUST PV1800-5048VHM, мощностью до 5500ВА или около 5кВт.

  3. Самосборная батарея из 16 ячеек CTS LiFePo4 100A*h. В корпусе из старого чемодана, кое-как облицованного углеродно-кевларовым композитом для прочности.

  4. Умнейшая плата защиты и балансировки JKBMS PB2A16S-20P.

  5. Мини-компьютер Asus TinkerBoard rev 1.2 для сбора данных с инвертора и BMS

  6. Мини-компьютер Raspberry Pi 3 для сервера Home Assistant.

  7. Два умных китайских счетчика, в качестве программируемых дифф-автоматов. Молниезащита, автоматы, провода.

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

Программные решения

Изначально никакая автоматизация особенно и не планировалась, думал собрать, начать экономить деньги и получать опыт. Соответственно в первую очередь я собрал систему инвертор-батареи, наладил получение данных из BMS через RS485. Далее начал подключать панели ещё не смонтированные на крышу, и в последнюю очередь сеть с дорогим электричеством и потребителей. На каком-то этапе выяснилось что прошивка инвертора ведет себя странно: при любых настройках она доводит заряд батарей до 100%, после чего просто обваливает генерацию на входе с солнечных панелей до нуля. А должна по идее начать питать нагрузку, постепенно снижая расход энергии из розетки. Начал искать поддержку производителя, что оказалось не быстрым процессом. Но параллельно выяснил, что инвертор можно через приложение SmartESS отключать от сети, переводя в режим Off-Grid, после чего устройство покорно вешало нагрузку на солнечную генерацию, избытки отправляя на заряд батареи. Из-за чего родилось решение скриптового характера, которое мониторит ток генерации, уровень заряда батареи, и принимает решение утром выводить систему в автономный режим, а в районе полуночи опять подключать к общему питанию.

Характер нагрузки у меня сейчас порядка 600-700Вт (два компьютера, мониторы, сетевое оборудование). Соответственно даже полный заряд батареи предполагает не слишком долгую автономность, при среднем токе разряда 13А. Генерация в лучшие моменты дня достигает 1200Вт, что при работе инвертора в обычном режиме приводит к быстрой зарядке батареи током до 26А. Соглашаться на такой режим оказалось вовсе не выгодно, ведь после заряда батареи, оставалась-бы избыточная мощность до 500Вт на несколько часов. Режим приоритета нагрузки (01=SBU, 05=LBU), в котором солнечная энергия на заряд уходит исключительно от избытка у меня так и не заработал, вероятно дело в кривизне прошивки инвертора. Поэтому цикл принудительного ввода-вывода системы в оффлайн режим на сейчас остается самым эффективным.

Так работает циклический режим

Так работает циклический режим

В итоге для решения проблемы недорогого инвертора с посредственной поддержкой, пришлось изучить протоколы инвертора, характер его дружбы с BMS через CAN-шину, написать комплект скриптов и уже как бонус организовать базовую интеграцию с Home Assistant (для JKBMS есть варианты вроде mpp-solar, которые у меня не заработали). Кроме того статус батареи, накопленная генерация, события переключения инвертора передаются через бота в Telegram, вместе с другими сообщениями моей инфраструктуры. Все это добро я разместил в репозиторий: https://github.com/alpet83/Solar-Station.

Нюанс взаимодействия с инвертором по RS485: используется протокол Modbus при скорости 19200, соответственно требуется отдельный модем. Если к инвертору подключен т.н. Wi-Fi plugin, необходимый для загрузки данных в приложение SmartESS, эта шина уже задействуется, и на ней будут время от времени данные доступные для перехвата. Работе моих скриптов эпизодические конфликты особо не мешают, сделал просто повторные запросы данных и множественные попытки записи регистров.

Программные возможности JKBMS меня восхищают, после ограничений ранее использованных Daly, HiBMS, TopBMS, и даже AntBMS. До идеала устройству не хватает разве что программируемого выхода для кулера, и высокоточного датчика тока (например с 24 битным ADC) с усреднением и запоминанием локальных экстремумов. Калибровать ток кстати на этой плате нужно обязательно, и по возможности когда он большой. От него в том числе зависит параметр SoC, который впрочем при малом токе заряда/разряда будет все равно сфальсифицирован.

Баги

Одну из первых задержек с запуском батареи мне обеспечила кривизна приложения JKBMS для Android, которая наотрез отказывалась признавать пароль настроек по умолчанию. Я измучил продавца, получив за недели наверное с десяток кодов производителя для сброса, все без результата. В итоге даже меня связали с инженером компании в WeChat, который тоже ничем помочь не смог. А оказалось этой проблеме много месяцев, просто приложение в Google Play кривое, надо установить предыдущую версию из apk файла. Китайская техподдержка (c)

Одним из первых способов провокации инвертор на разряд батареи для меня было выключение зарядных MOS ключей на BMS, программное управление которой я освоил заметно раньше. И несколько напугало меня поведение инвертора, когда я наконец подключил BMS к нему дополнительно через CAN-шину. Он немедленно начал разряжать батарею (в тот момент уже почти разряженную) предельным током под 110А. С нагрузкой всего 500Вт. Прекратив это безобразие, я стал рассуждать что это было. Оказалось несанкционированное включение режима "продажи в сеть" или Grid-tie. В модели Off-Grid, которая согласно прайсу и инструкции совершенно такого поддерживать не могла. Оказалось китайцы ограничились изменениями в меню инвертора, а на аппаратному уровне функцию внедряют во всю линейку 48-вольтовых инверторов. А в приложении SmartESS можно эти параметры включать, но инвертор их будет игнорировать похоже до тех пор, пока не будет подключена BMS с запретом на зарядку через CAN-шину. Подумываю использовать эту бесплатную баго-фичу, чтобы через розетку компенсировать ещё и потребление кондиционеров, но надо обеспечить безопасность (в т.ч. от штрафов со стороны энергокомпании, которая такое требует согласовывать).

Фотографии

Батарея в чемодане

Батарея в чемодане
Панели во время тестирования

Панели во время тестирования
Установленные панели в пределах квадрата 3.4х3.4

Установленные панели в пределах квадрата 3.4х3.4
Инвертор с коробом подачи холодного воздуха

Инвертор с коробом подачи холодного воздуха

Планы на будущее

В самое ближайшее время я постараюсь кратно увеличить мощность генерации. Порядка 6 панелей вполне могут быть установлены на крышу здания в ряд, там как раз скос глядит прямо на юг. Автоматизацию думаю дополнять реакций на датчики задымления, возможно даже получиться ИК-датчик перегрева панелей установить. Веду переговоры за покупку натрий-ионных батарей, ценники на которые выглядят сейчас привлекательными (~$80 за ячейку на 210А*ч, не считая доставки) вопреки не слишком массовому производству. Чтобы полностью выйти на автономность даже с маленькой нагрузкой, емкость нужна существенно больше, учитывая облачные дни осенью-зимой.

P.S.: Это моя первая статья на Хабре, хочу в комментариях обмениваться опытом по вопросу эксплуатации подобных СЭС.

Автор: alpet_m

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js