Software development for solar hybrid inverter management and monitoring

Cover Page

Cite item

Full Text

Abstract

This article discusses the development of software for the diesel generator limitation controller as part of a hybrid solar power plant system. контроллера ограничения работы дизель-генератора

In the course of the work, a block diagram of the system was proposed, and the controller software was described in detail.

The aim of this work is to reduce the operating time of a fuel generator by limiting its operating time depending on the battery charge level and time of day.

Full Text

Введение

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

Проблема надежного и качественного электроснабжения такого рода регионов остается актуальной в социальном, техническом и экономическом аспектах. Электрообеспечение таких потребителей может быть осуществлено за счет централизованного электроснабжения либо путем создания децентрализованных зон [1-4].

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

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

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

Одним из таких эффективных вариантов решения этой проблемы может быть использование энергоисточников на базе возобновляемых источников энергии (ВИЭ), к числу которых относятся ветер, малые реки, биомасса, геотермальная энергия, солнце [5-8].

Система гибридной солнечной электростанции

В ХМАО перспективным альтернативным источником электроэнергии является солнце. Гибридная солнечная электростанция – это оптимальное решение для владельцев больших частных домов, дачных коттеджей, гостиничных комплексов или даже целых поселений. От обычных автономных систем их отличает наличие дополнительных аккумуляторов. Гибридные солнечные электростанции (СЭС) не только генерируют электроэнергию, но и позволяют хранить ее в аккумуляторах до следующего использования установки.

Такой вариант обеспечения электроэнергией особенно актуален для отдаленных уголков страны или труднодоступных мест, куда трудно или финансово невыгодно проводить традиционные сети. В свою очередь гибридная солнечная электростанция представляет собой комбинированный комплект из солнечных панелей и аккумуляторов, а сама система подключена к топливному генератору (Рис. 1) [8].

 

Рисунок 1. Система гибридной солнечной электростанции на базе топливного генератора

 

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

Система гибридной СЭС работает по следующему принципу: вся преобразованная солнечными батареями (СБ) солнечная энергия подается в систему электроснабжения для питания нагрузок переменного тока через сетевой инвертор. Основными функциями обратимого инвертора (способен потоки энергии направлять в обоих направлениях) являются заряд аккумуляторных батарей (АКБ) от дизель- или газопоршневого генератора и производство электроэнергии для нагрузки, преобразованной от АКБ в случае нехватки или отсутствия солнечной энергии.

В случае, когда получаемой от СБ солнечной энергии слишком много для питания нагрузок, её избыток идёт также на заряд АКБ и при полном их заряде может питать дополнительные нагрузки [10].

Для настройки ограничения работы дизель-генератора необходимо настроить контроллер, который будет автоматически переключать работу генератора при нужном количестве вырабатываемой энергии от солнечной батареи. В применяемых гибридных инверторах Sila Pro [11] относительно слабо продуман процесс заряда: в случае разряда АКБ ниже порогового и отсутствия энергии от солнечной батареи запускается дизель-генератор, который будет работать до тех пор, пока АКБ не будет полностью заряжен. При этом если запуск ДГ произошел рано утром, и вскоре появилась энергия от солнца, то инвертор все равно продолжает работу ДГ. В результате получается, что работа ДГ становится избыточной.

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

Реализация системы

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

Контроллер получает данные от гибридного инвертора по интерфейсу RS-232 (собственный протокол), от аккумуляторной батареи по интерфейсу RS-485 по протоколу ModBus Master. Для передачи данных на компьютер используется интерфейс RS-485 с протоколом ModBus Slave. Указанные интерфейсы реализуются периферийными модулями UART.

Данные о дате и времени считываются из отдельной микросхемы часов реального времени DS3231 по интерфейсу I2C.

Информация о статусе заряда АКБ от дизель-генератора считывается с «сухого контакта».

Для управления дизель-генератором используется перекидное реле.

 

Рисунок 2. Структурная схема системы гибридной СЭС

 

Структура программы

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

Параметры UART для гибридного инвертора и контроллера аккумуляторной батареи взяты из документации. В обоих случаях формат посылки 8N1 – 8 бит данных, без бита паритета и 1 стоп-бит. Скорость передачи данных для инвертора 2400 бит/сек, для АКБ – 9600. Для обмена данными с компьютером выбрана скорость 115200 бит/сек., формат посылки также 8N1. На плате 1 порт RS-232 аппаратно закреплен за UART1 и 3 одинаковых RS-485 закреплены соответственно за UART2 – UART4.

Так как порты микроконтроллера универсальные и имеют несколько функций, кроме настройки самого модуля UART, необходимо настроить порты на соответствующую альтернативную функцию. За это отвечают регистры GPIOA->AFR. Номер функции выбираем по документации (рисунок 3).

 

Рисунок 3. Пример таблицы выбора альтернативных функций портов ввода-вывода

 

Для настройки UART1 на PA.9, PA.10 необходимо для этих линий подключить альтернативную функцию AF1. Для UART2 с портами PA.2, PA.3 номер функции аналогичен.

Для отправки через периферийный модуль UART достаточно убедиться, что буфер передатчика пуст (флаг USART_ISR_TC в регистре USARTn->ISR, где n – номер UARTa), затем записать данные в регистр USARTn->TDR. Для передачи данных по интерфейсу RS-232 этого достаточно. Так как интерфейс RS-485 полудуплексный, то необходимо дополнительно переключать режим работы аппаратного трансивера (линия W/R). По умолчанию трансивер работает на прием (W/R = 0), и при отправке данных его необходимо переключить на передачу (W/R = 1), а после окончания сеанса передачи вернуть в режим приема. Для проверки окончания используется флаг USART_ISR_TC регистра USARTn->ISR. Для более наглядного управления линией W/R используются дефайны вида:

#define WR_on_3()               GPIOB->BSRR = GPIO_BSRR_BS_12; // Установить бит 12

#define WR_off_3()              GPIOB->BSRR = GPIO_BSRR_BR_12; // Сбросить бит 12

Прием данных осуществляется по прерыванию. Для UARTa 1 и 2 используются отдельные обработчики прерываний для всех событий, для 3-го и 4-го – совместный. Это связано с аппаратными особенностями микроконтроллера. Внутри обработчика определение произошедшего события происходит путем проверки флагов регистра статуса. Полученный байт находится в регистре USARTn->RDR.

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

Разные поля структуры используются в различных функциях системы. По стандарту ModBus окончание посылки фиксируется по таймауту 3,5 символа. В микроконтроллерах STM32F07х у UARTa есть поддержка данного протокола, которая заключается в вызове прерывания по таймауту, но она доступна только для UART1 и UART2 (рисунок 4).

 

Рисунок 4. Функциональные возможности USART в микроконтроллерах

 

Для формирования таймаутов используются функции системного таймера. После каждого принятого байта поле структуры таймаута обнуляется uart4.rxtimer = 0, а в обработчике прерывания системного таймера инкрементируется и проверяется с опорным значением (uart4.delay). Если время вышло и в буфере есть данные, то устанавливается флаг окончания приема uart4.rxgap.

После окончания передачи в зависимости от используемого порта RS-485 вызывается функция modbus_master или modbus_slave.

В случае с modbus_master принятая посылка просто копируется в адресное пространство ModBus’а.

При вызове функции modbus_slave сначала произойдет проверка на соответствие адреса, далее по всему буферу без двух последних байт (принятая контрольная сумма) считается контрольная сумма CRC16, и если она совпадает, то происходит дальнейшая обработка пакета, в которой извлекается номер функции и передается управление ей. В работе поддерживаются две функции чтения 3 (Read Holding Registers) и 4 (Read Input Registers). По принципу своей работы они очень похожи, и предполагается, что они обращаются к разным областям данных. В данном контроллере нет разделения между ними, поэтому чтение данных по этим функциям вернет одинаковый результат, а также две функции записи 6 (Preset Single Register) и 16 (Preset Multiple Register). Остальные функции не поддерживаются, и при их запросе будет сформирован пакет ошибки «функция не поддерживается».

Каждая вызываемая функция производит соответствующие действия и формирует ответный пакет, затем запускается цикл его отправки. Функция USART2_SendData внутри себя содержит команду переключения режима трансивера RS-485 WR_on(), а по окончании передачи вызовется команда WR_off().

Запрос данных от инвертора осуществляется по таймеру 3. Каждые 5 секунд поочередно вызываются функции get_sila() и get_sila_bat(), в которых отправляются строки в UART1-массивы

uint8_t com_green[] =    {0x51, 0x50, 0x49, 0x47, 0x53, 0x0D};

uint8_t com_bat[] = {0x51, 0x43, 0x48, 0x47, 0x53, 0x0D}

соответственно.

Ответ приходит в текстовом виде. Например, для команды com_bat[] в текстовом виде:

(20.1 54.0 25.0 54.0џt.

и шестнадцатиричном виде

28 32 30 2e 31 20 35 34 2e 30 20 32 35 2e 30 20 35 34 2e 30 d1 9f 74 2e 0d

Пример ответа на команду com_green[] выглядит следующим образом в виде текста:

(000.0 000000 00.0 0000.3 230.9 00000 50.0 000.0 002 379.8 379.8 047.6 ---.- 047 00000 00033 ----- 005.1 ---.- ---.- 038.0 D---110001Ãâ.

и шестнадцатиричном виде:

28 30 30 30 2e 30 20 30 30 30 30 30 30 20 30 30 2e 30 20 30 30 30 30 2e 33 20 32 33 30 2e 39 20 30 30 30 30 30 20 35 30 2e 30 20 30 30 30 2e 30 20 30 30 32 20 33 37 39 2e 38 20 33 37 39 2e 38 20 30 34 37 2e 36 20 2d 2d 2d 2e 2d 20 30 34 37 20 30 30 30 30 30 20 30 30 30 33 33 20 2d 2d 2d 2d 2d 20 30 30 35 2e 31 20 2d 2d 2d 2e 2d 20 2d 2d 2d 2e 2d 20 30 33 38 2e 30 20 44 2d 2d 2d 31 31 30 30 30 31 c3 83 c3 a2 2e 0D

По приходу каждого байта вызывается прерывание, и все данные записываются в массив buf[]. Затем вызывается функция, и передается в нее буфер parser(buf).

Ответ инвертора всегда начинается с символа разделителя «(» (0x28) и заканчивается возвратом каретки (CR, 0x0D). Данные передаются в виде текста (ASCII символов), разделитель между параметрами «пробел» (0x20), числа могут целыми или дробными (тип данных для каждого параметра фиксирован).

В цикле побайтно выбираются данные, если байт лежит в диапазоне от 0x30-0x39 (цифры 0-9), то выполняется операция

num = num * 10 + (Data - 0x30)            

до тех пор, пока не закончится число (придет символ «пробел» (0x20)) или не считается символ «.» (0x2E). В последнем случае устанавливается флаг дробной части и операция (4.1) повторяется только с дополнительным инкрементом счетчиков повторов cnt_fract. Таким образом, если число дробное, то оно преобразуется в целое с сохранением степени 10 для последующего восстановления. Таким образом, осуществляется отказ от работы с числами с плавающей запятой, что особенно проблематично при последующей передаче по протоколу ModBus, так как размер данных в протоколе всегда 2 байта, а традиционный тип «float» имеет минимальный размер 4 байта (числа с половинной точности «float16» не рассматриваются).

Все преобразованные числа записываются в массив fbuf[], отображаются сразу в адресное пространство ModBus в соответствии с картой параметров

fbuf = &uart2.reg[base_sila].

Если при обработке массива встречается символ CR «0x0D», то происходит принудительный выход из цикла.

Алгоритм управления

Основная задача контроллера – ограничивать работу дизель-генератора с целью сокращения потребления дизельного топлива и, как следствие, снижение себестоимости выработки электроэнергии.

Основной алгоритм основан на мониторинге процента заряда аккумуляторной батареи (SOC) и зарядного тока (uart2.reg[charge_bat]). Если инвертор пытается включить дизель-генератор, то на порту PA.12 будет логический «0», то контроллер сравнивает процент заряда и зарядный ток аккумуляторной батареи с опорными значениями и разрешает или запрещает работу дизель-генератора.

Опорные значения SOC_ref_max и SOC_ref_min хранятся во внутренней flash-памяти микроконтроллера и могут изменяться по запросу оператора с управляющего компьютера.

Заключение

Результатом работы стало создание приложения для мониторинга солнечного гибридного инвертора, которое помогает снизить затраты на топливо для питания дизель-генератора, производить единый мониторинг всех компонентов системы: гибридных инверторов, контроллеров АКБ и учет собственных дополнительных параметров.

×

About the authors

Evgeniy A. Godovnikov

Yugra State University

Author for correspondence.
Email: judchin@rambler.ru

Candidate of Physical and Mathematical Sciences, Associate Professor of the Institute of Digital Economy

Russian Federation

Mikhail G. Korotkov

Yugra State University

Email: mkorotkov@rambler.ru

Candidate of Physical and Mathematical Sciences, Associate Professor of the Institute of Digital Economy

Russian Federation

Vitaliy M. Tatyankin

Yugra State University

Email: bambar@bk.ru

Candidate of Technical Sciences, Leading Research Fellow of the Institute of Digital Economy

Russian Federation

References

  1. Определение ожидаемых накопленных затрат на протяжении жизненного цикла регионально обособленного электротехнического комплекса / Р. Н. Хамитов, В. Л. Вязигин, В. З. Ковалев, О. В. Архипова. – Текст : непосредственный // Современные наукоемкие технологии. – 2018. – № 11-2. – С. 232–236.
  2. Ковалев, В. З. Энергетические аспекты регионально обособленного электротехнического комплекса / О. В. Ковалев, О. В. Архипова. – Текст : непосредственный // Вестник Югорского государственного университета. – 2015. – № 2 (37). – С. 217–218.
  3. Модель регионально обособленного электротехнического комплекса с учетом графиков электрической нагрузки потребителей / Р. Н. Хамитов, В. З. Ковалев, О. В. Архипова, С. С. Есин. – Текст : непосредственный // Международный журнал прикладных и фундаментальных исследований. – 2018. – № 12-2. – С. 200–204
  4. Вопросы управления в малой распределенной генерации / В. З. Ковалев, С. Е. Ковалева, А. Г. Щербаков, О. В. Архипова. – Текст : непосредственный // Культура, наука, образование: проблемы и перспективы : сборник трудов участников III Всероссийской научно-практической конференции / Нижневартовский государственный университет. – Нижневартовск, 2014. – С. 60–62.
  5. Об Энергетической стратегии России на период до 2030 года : распоряжение Правительства Российской Федерации от 13.11.2009 № 1715-р. – Текст : электронный // Законы Российской Федерации. – URL: https://fzakon-ru.turbopages.org/s/fzakon.ru/rasporyazheniya-pravitelstva/rasporyazhenie-pravitelstva-rf-ot-13.11.2009-n-1715-r/ (дата обращения: 05.10.2020).
  6. Архипова, О. В. Принципы оптимизации электроснабжения населенных пунктов крайнего севера на базе ветродизельных комплексов / О. В. Архипова. – Текст : непосредственный // Вестник Югорского государственного университета. – 2015. – № 2 (37). – С. 204–206.
  7. Kovalev, V. Z. Structural optimization technology for fleet of wind-diesel power plants / V. Z. Kovalev, O. V. Arkhipova // Petroleum Engineering : scientific and technical journal. – 2014. – Vol. 12, № 4. – P. 119–124.
  8. Ковалев, В. З. Математическое моделирование электротехнических комплексов нефтегазодобычи в задачах энергосбережения : монография / В. З. Ковалев, Г. В. Мальгин, О. В. Архипова. – Ханты-Мансийск, 2008. – 222 c. – ISBN 978-5-89846-800-2. – Текст : непосредственный.
  9. Архипова, О. В. Методика моделирования регионально обособленного электротехнического комплекса / О. В. Архипова, В. З. Ковалев, Р. Н. Хамитов. – Текст : непосредственный // Известия Томского политехнического университета. Инжиниринг георесурсов. – 2019. – Т. 330, № 1. – С. 173–180.
  10. Ковалев, В. З. Спектральный анализ ретроспективных данных выработки электрической энергии солнечными электростанциями / В. З. Ковалев, Р. Н. Хамитов, Д. А. Тюньков. – Текст : непосредственный // Научные труды КубГТУ. – 2019 – № 3. – С. 844–852.
  11. Солнечный инвертор SILA PRO (MH-серия). – Текст : электронный // SILA. – URL: https://sila-ups.ru/ups3 (дата обращения: 25.08.2020).

Supplementary files

Supplementary Files
Action
1. JATS XML
2. Figure 1. System of a hybrid solar power plant based on a fuel generator

Download (33KB)
3. Figure 2. Block diagram of the hybrid SPP system

Download (73KB)
4. Figure 3. Example of a selection table for alternative I / O port functions

Download (169KB)
5. Figure 4. Functionality of USART in microcontrollers

Download (154KB)

Copyright (c) 2020 Godovnikov E.A., Korotkov M.G., Tatyankin V.M.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

This website uses cookies

You consent to our cookies if you continue to use our website.

About Cookies