Анализ и прогнозирование производительности солнечной энергетики с использованием статистических тестов и машинного обучения

Оглавление

  1. "Введение"
  2. "Данные"
  3. Исследовательский анализ данных (EDA)
  4. Моделирование

5. Вывод"

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

1. Введение

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

Используя данные о двух солнечных электростанциях, я решу эти проблемы, сначала сведя их к двум вопросам:

1 . Можно ли выявить неоптимально работающие солнечные модули?

2. Можно ли спрогнозировать двухдневную солнечную энергию?

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

На рис. 1 представлен общий вид процесса выработки электроэнергии от модуля солнечных батарей до энергосистемы. Солнечная энергия преобразуется непосредственно в электричество за счет фотоэффекта. Когда такие материалы, как кремний (наиболее распространенный полупроводниковый материал, используемый в солнечных панелях), подвергаются воздействию света, фотоны (субатомные частицы электромагнитной энергии) поглощаются и высвобождают свободные электроны, которые создают постоянный ток. (ОКРУГ КОЛУМБИЯ). С помощью инвертора постоянный ток преобразуется в переменный ток (AC) и подается в энергосистему, откуда он может распределяться по домам.

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

Не мудрствуя лукаво, перейдем к анализу.

2. Данные

Необработанные данные состоят из двух файлов с разделителями-запятыми (CSV) для каждой солнечной электростанции. Один файл показывает выработку электроэнергии, а другой файл показывает записанные измерения с датчика, расположенного на солнечной электростанции. Оба набора данных для каждой солнечной электростанции объединены в один кадр данных.

Данные для Солнечной электростанции 1 (SP1) и Солнечной электростанции 2 (SP2) собирались каждые 15 минут для каждого модуля и находились в диапазоне от 15 мая 2020 г. до 18 июня 2020 г. . Оба набора данных, SP1 и SP2, содержат одни и те же переменные.

  • Дата/время -15-минутные интервалы
  • Температура окружающей среды –температура воздуха, окружающего модули.
  • Температура модуля-температура модулей
  • Облучение –высокоэнергетическое излучение модулей.
  • Мощность постоянного тока (кВт)-постоянный ток
  • Мощность переменного тока (кВт)– переменный ток
  • Дневная выработка — ежедневная сумма произведенной энергии.
  • Общая мощность – совокупная мощность инвертора.
  • Идентификатор завода – уникальный идентификатор солнечной станции.
  • Идентификатор модуля – уникальный идентификатор для каждого модуля.

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

Исходные данные можно найти здесь.

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

Для анализа и прогнозирования используются два отдельных фрейма данных. Единственная разница заключается в том, что кадр данных, используемый для прогнозов, передискретизируется в часовые интервалы, а кадр данных, используемый для анализа, содержит 15-минутные интервалы.

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

Прежде чем перейти к анализу данных, сделаем несколько предположений о солнечных электростанциях, в том числе:

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

3. Исследовательский анализ данных (EDA)

Для тех из вас, кто плохо знаком с наукой о данных, EDA — это важный шаг в понимании ваших данных посредством визуализации графика и выполнения статистических тестов. Код для этого раздела не включен, однако код для всех визуализаций можно найти на моей странице Github, ссылка на которую находится внизу поста.

Во-первых, построив график постоянного и переменного тока для SP1 и SP2, можно наблюдать производительность каждой солнечной электростанции.

Установка 1 показывает мощность постоянного тока на порядок выше, чем установка 2. Исходя из предположения, что данные, собранные для SP1, верны, а инструменты, используемые для записи данных, исправны, это приводит к исследованию эффективности инвертора в SP1.

Путем суммирования мощности переменного и постоянного тока по ежедневной частоте для каждого модуля на рис. 3 показана эффективность инвертора для всех модулей в пакете SP1. По данным Энергосберегающего треста, КПД солнечного инвертора должен находиться в пределах 93-96%. Поскольку эффективность всех модулей колеблется от 9,76 % до 9,79 %, операторы солнечных электростанций могут дополнительно изучить производительность инвертора и выяснить, требуется ли его замена.

Из-за того, что в пакете SP1 обнаружены проблемы с инвертором, дальнейший анализ выполняется только для пакета SP2.

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

Поскольку инвертор для SP2 работает должным образом, углубившись в данные, мы попытаемся выявить и исследовать любые отклонения.

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

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

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

На рис. 5 красная линия показывает среднюю температуру. Налицо явный переломный момент и признаки стабилизации мощности постоянного тока. Мощность постоянного тока выходит на плато при ~52°C. Чтобы выявить неоптимальную работу солнечных модулей, удалены все строки, в которых температура модуля превышает 52 °C.

На рис. 6 ниже показано питание постоянным током для каждого модуля в пакете обновления 2 (SP2) в зависимости от времени суток. Мощность постоянного тока распределяется, как и ожидалось, с большей выработкой электроэнергии в полдень. Тем не менее, есть признаки низкой выработки электроэнергии в периоды пиковой производительности. Трудно указать причину этого, поскольку погодные условия в тот день могли быть плохими, или SP2 мог подходить к концу своего обычного цикла очистки.

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

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

Поскольку распределение различных модулей мощности постоянного тока в одно и то же время в течение 15-минутного интервала является нормальным, проверка гипотезы может определить, какие модули работают хуже. Подсчитывается количество раз, когда модуль выходит за пределы доверительного интервала 99,9 % с p-значением ‹ 0,001.

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

Четкий вывод можно сделать из рисунка 7, на котором показано, чтомодуль Quc1TzYxW2pYoWX работает неоптимально примерно в 850 раз. Эта информация может быть передана операционным менеджерам SP2 для расследования причины.

4. Моделирование

В этом разделе мы рассмотрим три различных алгоритма временных рядов: SARIMA, XGBoost и CNN-LSTM, а также их настройку для прогнозирования двухдневной мощности постоянного тока для SP2.

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

Подробнее об этом методе и о том, как его можно использовать в модели долговременной кратковременной памяти (LSTM), можно узнать в посте ниже.



Перед моделированием всегда стоит изучить данные более подробно. На рис. 8 показана тепловая карта корреляции всех функций в наборе данных SP2. На тепловой карте показана зависимая переменная, мощность постоянного тока, демонстрирующая сильную корреляцию с температурой модуля, облучением и температурой окружающей среды. Эти особенности, вероятно, могут играть важную роль в прогнозировании.

Коэффициент корреляции Пирсона, равный 1, показан на тепловой карте ниже. Чтобы предотвратить проблемы с утечкой данных, AC Power удаляется из фрейма данных, поскольку модель не может получить доступ к этой информации до того, как будут записаны какие-либо другие переменные.

Для моделей SARIMA и XGBoost использовалась «многопроцессорность» библиотеки Python, чтобы использовать несколько процессоров для поиска оптимальных гиперпараметров посредством поиска по сетке.

САРИМА

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

Алгоритм SARIMA требует, чтобы данные были стационарными. Существует несколько способов тестирования, если данные являются стационарными, например, статистические тесты (расширенный тест Дикки-Фуллера), сводная статистика (сравнение среднего/дисперсии отдельных частей данных), и визуальный анализ данных. Перед моделированием важно протестировать несколько тестов.

Расширенный тест Дики-Фуллера (ADF) — это тест на единичный корень, используемый для определения стационарности временного ряда. По сути, это тест статистической значимости с нулевой и альтернативной гипотезой, и вывод делается на основе полученного значения p.

Нулевая гипотеза.Данные временного ряда нестационарны.

Альтернативная гипотеза. Данные временного ряда являются стационарными.

В нашем случае, если значение p ≤ 0,05, мы можем отклонить нулевую гипотезу и подтвердить, что данные не имеют единичного корня.

В тесте ADF значение p равно 0,000553, что составляет ‹ 0,05. Исходя из этой статистики, данные можно считать стационарными. Однако на рисунке 2 видны явные признаки сезонности (для того чтобы данные временных рядов считались стационарными, не должно быть признаков сезонности и тренда), что приводит к нестационарности данных. Отсюда важность запуска нескольких тестов.

Чтобы смоделировать зависимую переменную с помощью SARIMA, временной ряд должен быть стационарным. Рисунок 9 (1-й и 3-й графики) показывает явные признаки сезонности для питания постоянного тока. Взятие первой разности [t-(t-1)] удаляет компонент сезонности, который можно увидеть на рис. 10, так как он похож на нормальное распределение. Теперь данные стационарны и подходят для алгоритма SARIMA.

Гиперпараметры для SARIMA включают p(порядок авторегрессии), d(разностный порядок), q(скользящее среднее), P(порядок сезонной авторегрессии), D(сезонная разница порядок), Q(порядок сезонной скользящей средней), m(шаги времени для сезонного периода),тренд(детерминированный тренд). Более подробную информацию о гиперпараметрах и прогнозировании SARIMA можно найти здесь.

На рис. 11 показаны графики автокорреляции (ACF), частичной автокорреляции (PACF) и сезонной ACF/PACF. График ACF показывает корреляцию между временным рядом и его задержанной версией. PACF показывает прямую корреляцию между временным рядом и его запаздывающей версией. Заштрихованная синяя область представляет собой доверительный интервал. SACF и SPACF можно рассчитать, взяв сезонную разницу (m) из исходных данных, в данном случае 24, поскольку существует явный сезонный эффект 24 часов, как показано на графике ACF. .

Интуитивно можно вывести начальную точку для гиперпараметров из графиков ACF и PACF. Например, ACF и PACF показывают постепенное снижение, что означает порядок авторегрессии (p) и порядок скользящего среднего (q). ) больше 0. p и Pможно определить, наблюдая PCF и SPCF графики, соответственно, и подсчет количества задержек, которые являются статистически значимыми, до того, как значение запаздывания станет незначимым. Точно так же q и Q можно найти на графиках ACF и SACF.

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

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

Посредством оптимизации гиперпараметров с использованием поиска по сетке оптимальные гиперпараметры выбираются на основе наименьшей среднеквадратичной ошибки (MSE), которая включает p = 2, d = 0, q = 4, P = 2, D = 1, Q = 6, m = 24, тенденция = 'n' (нет тенденции).

На рисунке 12 показаны прогнозируемые значения модели SARIMA по сравнению с зарегистрированной мощностью постоянного тока для SP2 за 2 дня.

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

XGBoost

XGBoost (eXtreme Gradient Boosting) – это алгоритм дерева решений, повышающий градиент. Он использует ансамблевый подход, при котором добавляются новые модели дерева решений для изменения существующих оценок дерева решений. В отличие от SARIMA, XGBoost — это многомерный алгоритм машинного обучения, что означает, что модель может использовать несколько функций для повышения производительности модели.

Были предприняты шаги по проектированию признаков для повышения точности модели. Были созданы 3 дополнительные функции, в том числе запаздывающая версия питания переменного и постоянного тока, S1_AC_POWER и S1_DC_POWER соответственно. и общую эффективность EFF путем деления мощности переменного тока на мощность постоянного тока. AC_POWER и MODULE_TEMPERATURE были исключены из данных. На рис. 14 показан уровень важности по приросту (средний прирост разбиений, в которых используется функция) и весу (количество раз, когда функция появляется в дереве).

Гиперпараметры, использованные для моделирования, были определены путем поиска в сетке и привели к следующим результатам: скорость обучения = 0,01, количество оценщиков = 1200, подвыборка = 0,8, colsample по дереву = 1, colsample по уровню = 1, минимальный дочерний вес = 20 и максимальная глубина = 10.

Как уже упоминалось ранее, используется подход проверки вперед, а MinMaxScaler используется для масштабирования обучающих данных от 0 до 1 (я настоятельно рекомендую поэкспериментировать с другими масштабаторами, такими как log- преобразование и стандартное масштабирование в зависимости от распределения ваших данных). Данные преобразуются в набор данных для контролируемого обучения путем сдвига всех независимых переменных на точку назад.

На рис. 15 показаны прогнозируемые значения модели XGBoost по сравнению с зарегистрированной мощностью постоянного тока для SP2 за 2 дня.

CNN-LSTM

CNN-LSTM(длительная кратковременная память сверточной нейронной сети) – это гибридная модель двух моделей нейронных сетей. CNN — это нейронная сеть с прямой связью, которая показала хорошую производительность при обработке изображений и обработке естественного языка. Его также можно эффективно применять для прогнозирования данных временных рядов. LSTM — это модель нейронной сети последовательность к последовательности, предназначенная для решения давней проблемы взрыва/исчезновения градиента с использованием системы внутренней памяти, которая позволяет ей накапливать состояние по входной последовательности. Более подробную информацию об этих моделях можно найти здесь и здесь.

В этом случае CNN-LSTM используется в качестве архитектуры кодер-декодер. Поскольку CNN не поддерживает ввод последовательности напрямую, одномерная CNN считывает ввод последовательности и автоматически изучает важные функции. Затем они могут быть интерпретированы LSTM. Как и в модели XGBoost, используются и масштабируются те же данные с помощью MinMaxScaler от scikitlearn, но в диапазоне от -1 до 1. Для CNN-LSTM данные необходимо преобразовать в требуемую структуру: [выборки, подпоследовательности, временные интервалы, признаки], чтобы их можно было передать в качестве входных данных для модели.

Поскольку мы хотим повторно использовать одну и ту же модель CNN для каждой подпоследовательности, обертка TimeDistributed используется для применения всей модели один раз к каждой входной подпоследовательности. Сводка модели по различным используемым слоям в окончательной модели можно увидеть на рисунке 16 ниже.

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

Кривая обучения — отличный диагностический инструмент, используемый в глубоком обучении, который показывает производительность модели после каждой эпохи. На рисунке 17 ниже показано, как модель может учиться на данных, и показано, как данные проверки сходятся с данными обучения. Это признак хорошей подготовки модели.

На рисунке 18 показаны прогнозируемые значения модели CNN-LSTM по сравнению с зарегистрированной мощностью постоянного тока для SP2 за 2 дня.

Из-за стохастического характера CNN-LSTM модель запускается 10 раз, и среднее значение MSE записывается как окончательное значение для оценки производительности модели. Рисунок 19 показан диапазон значений MSE, зарегистрированных для всех прогонов модели.

Результаты

Перед моделированием вычисляется модель постоянства, чтобы обеспечить максимальное значение MSE и оценить производительность других моделей. Результаты модели постоянства рассчитываются путем вычисления MSE мощности постоянного тока и запаздывающей версии 1 периода того же временного ряда. В таблице 3 представлены MSE для каждой модели (средняя MSE для CNN-LSTM). ) и время работы в минутах для каждой модели.

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

5. Вывод

Подводя итог, SP1 и SP2 были проанализированы для выявления областей с низкой производительностью. SP1 показал низкую производительность из-за низкой эффективности инвертора. Дальнейшее изучение SP2 выявило признаки неоптимальной работы солнечных модулей. Использование проверки гипотезы для подсчета количества случаев, когда каждый модуль статистически значимо отставал от других модулей в то же время, вызвало обеспокоенность по поводу модуля 'Quc1TzYxW2pYoWX',который показал примерно 850 единиц низкой производительности.

Прогнозирование будущего производства солнечной энергии привело к повторной выборке SP2 на часовые интервалы и разбиению данных на 48 периодов (2 дня) для тестирования данных, а оставшиеся — для обучения трех моделей. Эти модели включали SARIMA, XGBoost и CNN-LSTM. SARIMA показала самую низкую производительность, а XGBOOST показал лучший результат с MSE 16,9 и временем выполнения 1,43 минуты. Из всех трех моделей рекомендуется XGBoost для развертывания в рабочей среде.

Спасибо за прочтение и приятного обучения.

Ссылка на данные

Каннал, А. (2020, август). Данные о производстве солнечной энергии. Лицензия: файлы данных © Первоначальные авторы, получено 25 сентября 2020 г. с https://www.kaggle.com/datasets/anikannal/solar-power-generation-data

Чтобы получить доступ к коду, используемому в этом посте, посетите мою страницу GitHub. Ссылку можно найти здесь.

Связаться

Linkedin: https://www.linkedin.com/in/amit-bharadwa123/

Заинтересованы в запуске собственного проекта по науке о данных? Перейдите по ссылке ниже, чтобы помочь вам в вашем путешествии.