повышение точности краткосрочного

advertisement
1
Федеральное государственное бюджетное образовательное
учреждение высшего профессионального образования
Южно-Российский государственный политехнический университет
(НПИ) имени М.И Платова
На правах рукописи
Аль Зихери Баласим Мохаммед
ПОВЫШЕНИЕ ТОЧНОСТИ КРАТКОСРОЧНОГО
ПРОГНОЗИРОВАНИЯ ЭЛЕКТРИЧЕСКОЙ НАГРУЗКИ
ПОТРЕБИТЕЛЕЙ РЕГИОНА С УЧЕТОМ МЕТЕОФАКТОРОВ
НА ОСНОВЕ МЕТОДА ОПОРНЫХ ВЕКТОРОВ
Специальность 05.14.02 – «Электрические станции и электроэнергетические
системы»
Диссертация на соискание ученой степени
кандидата технических наук
Научный руководитель –
доктор технических наук,
профессор Надтока И.И.
Новочеркасск – 2015
2
СОДЕРЖАНИЕ
СПИСОК СОКРАЩЕНИЙ И ОБОЗНАЧЕНИЙ ………………………………6
ВВЕДЕНИЕ ……………………………………………………………7
1.ОБЗОР.И.АНАЛИЗ.СОВРЕМЕННЫХ.МЕТОДОВ.И
МАТЕМАТИЧЕСКИХ.МОДЕЛЕЙ.ПРОГНОЗИРОВАНИЯ
ЭЛЕКТРОПОТРЕБЛЕНИЯ…………………………………………………......15
1.1 Классификация методов краткосрочного прогнозирования нагрузки..15
1.2 Статистические методы прогнозирования………………………………16
1.2.1 Методы регрессии……………………………………………………….16
1.2.2 Методы временных рядов………………………………………………17
1.2.3 Метод фильтра Калмана…………………………………………………18
1.2.4 Методы, основанные на вейвлет-преобразованиях временных рядов.18
1.3 Методы искусственного интеллекта………………………………………19
1.3.1 Методы, основанные на моделях нейронных сетей……………………19
1.3.2 Методы, основанные на нечеткой логике……………………………..22
1.3.3 Метод информационный проходки…………………………………...23
1.3.4 Метод опорных векторов ……………………………………………… 24
1.4 Эволюционные алгоритмы………………………………………………..24
1.5 Требования к краткосрочному прогнозированию электропотребления.26
1.6 Основные проблемы краткосрочного прогнозирования электропотребления…………………………………………………………………………….. 27
1.6.1 Точность гипотезы отношений вход- выход…………………………27
1.6.2 Прогнозирование аномальных дней…………………………………28
1.6.3 Неточные данные прогноза погоды ………………………………….29
1.6.4 Возможность меньшего обобщения, вызванная чрезмерной
аппроксимацией………………………………………………………………….29
1.7 Обзор современных источников по проблеме краткосрочного
прогнозирования электропотребления………………… ……………………...30
1.7.1 Модели нейронных сетей……………………………………………..30
3
1.7.2 Модели нейро-нечетких сетей ……………………………………...33
1.7.3 Модели вейвлет-преобразований………………………………….…34
1.7.4 Регрессионные модели…………………………………………….….35
1.8 Выводы…………………………………………………………………..35
2. АНАЛИЗ ВРЕМЕННЫХ РЯДОВ ЭЛЕКТРОПОТРЕБЛЕНИЯ И
ОПРЕДЕЛЯЮЩИХ ЕГО ФАКТОРОВ………………………………………...37
2.1. Характеристики графиков электрической нагрузки энергосистемы….37
2.2 Временные ряды электропотребления и влияющих факторов…….. …...38
2.3 Сезонные и метеорологические факторы, влияющие на
электропотребление …………………………………………………………….43
2.4 Температура и освещенность: анализ их влияния на электропотребление в
операционной зоне Ростовского регионального диспетчерского
управления……………………………………………………………………….47
2.5 Случайные возмущения……………………………………………………52
2.6 Выводы ………………………………………………………………………53
3. РАЗРАБОТКА МОДЕЛЕЙ КРАТКОСРОЧНОГО ПРОГНОЗИРОВАНИЯ
ЭЛЕКТРОПОТРЕБЛЕНИЯ
НА
ОСНОВЕ
НЕЙРОННЫХ
СЕТЕЙ
И
ЭВОЛЮЦИОННЫХ АЛГОРИТМОВ …………………………………………54
3.1 Кроткосрочное прогнозирование нагрузки с помощью искусственных
нейронных сетей…………………………………………………………………54
3.2 Краткосрочное прогнозирование нагрузки с использованием
искусственных нейронных сетей и алгоритма роя частиц …………………...57
3.2.1 Анализ и предварительная обработка данных…………………………59
3.2.2 Количество слоев, нейронов и передаточных функций………………60
3.2.3 Обучение выстроенных нейронных сетей…………………………61
3.2.4 Архитектура ИНС для Ростовского РДУ………………………………62
3.2.5 Выбор входных переменных…………………………………………63
3.2.6 Построение структуры нейронной сети……………………………….65
3.2.7 Выборка данных для обучения, тестирования и валидации…………65
4
3.2.8 Результаты моделирования………………………………………………70
3.3 Обучение ИНС на основе самоорганизации ………………………………72
3.3.1 Массив данных для исследования………………………………………..73
3.3.2 Кластеризация с помощью самоорганизующихся карт ……….……….74
3.3.3 Обучение самоорганизующихся карт …………………………..…...77
3.3.4 Результаты кластеризации и прогнозирование………………………...77
3.3.5 Предварительная обработка данных…………………………………….78
3.3.6 Количество слоев, нейронов и передаточных функций……………….79
3.3.7 Алгоритм обучения сети………………………………………………….79
3.3.8 Критерии эффективности…………………………………………………80
3.3.9 Результаты моделирования………………………………………………..80
3.4 Выводы……………………………………………………………………….82
4. МОДЕЛИ ПРОГНОЗИРОВАНИЯ ЭЛЕКТРОПОТРЕБЛЕНИЯ НА
ОСНОВЕ НЕЙРОНЕЧЕТКОЙ СЕТИ И МЕТОДА ОПОРНЫХ ВЕКТОРОВ.84
4.1 Прогнозирование электропотребления с помощью адаптивной нейронечеткой сети ……………………………………………………………………84
4.1.1 Общая характеристика нейро-нечеткой модели………………………...85
4.1.2 Применение нейро-нечеткой модели в задачах краткосрочного
прогнозирования нагрузки ……….......................................................………..86
4.1.3 Архитектура нейро-нечеткой модели……….. ……….………………….86
4.1.4 Гибридный алгоритм для обучения сети………………………………...90
4.1.5 Результаты моделирования……………………………………………….91
4.2 Прогнозирование электропотребления с помощью метода
опорных
векторов …………………………………………………………………………94
4.2.1 Результаты моделирования………………………………………………98
4.3 Прогнозирование электропотребления на основе метода опорных
векторов и алгоритма роя частиц…………………………………………….101
4.3.1 Шаги и процессы прогнозирования нагрузки………………………….102
4.3.2 Набор параметров анализа………………………………………………106
4.3.3 Результаты моделирования………………………………………………106
5
4.4 Выводы……………………………………………………………………...111
ЗАКЛЮЧЕНИЕ………………………………………………………………...112
СПИСОК ЛИТЕРАТУРЫ……………………...……………………………...115
ПРИЛОЖЕНИЕ 1: Листинг программы реализации нейронной сети……...132
ПРИЛОЖЕНИЕ 2: Листинг программы реализации нейронной сети с рой
частиц…………………………………………………………………………...134
ПРИЛОЖЕНИЕ 3: Листинг программы реализации самоорганизующихся
карт ……………………………………………………………………………...138
ПРИЛОЖЕНИЕ 4: Листинг программы реализации нейро -нечеткой …….142
ПРИЛОЖЕНИЕ 5: Листинг программы реализации опорных векторов.......154
ПРИЛОЖЕНИЕ.6: Листинг программы реализации опорных векторов и
алгоритма роя частиц ……………………………………………………..….169
ПРИЛОЖЕНИЕ 7: Дипломы по результатам участия.в.конференциях........178
ПРИЛОЖЕНИЕ 8: Сведения о внедренниях …..…………………………….180
6
Список сокращений и обозначений
ЭЭС
- электроэнергетическая система
РДУ
- региональное диспетчерское управление
ЭП
- электропотребление
ИНС
- искусственная нейронная сеть
STLF
- краткосрочное прогнозирование нагрузки (Short-Term Load
………… Forecasting)
СГЭН
- суточный график электрической нагрузки
ARMA
- авторегрессия, скользящее среднее (Autoregressive Moving
………….. Average)
ARIMA
- авторегрессия, интегрированое скользящее среднее
…………..(Autoregressive Integrated Moving Average)
ARIMAX - авторегрессия, интегрированое скользящее среднее, внешние
переменные ( Autoregressive Integrated Moving Average, external
…………...variables)
ГА
- генетический алгоритм
РЧ
- рой частиц
SVM
- метод опорных векторов (Support Vector Machine)
ANFIS
- адаптивная нейронечеткая система (Adaptive Neuro-Fuzzy
…………..Inference System)
MAPE
- средняя абсолютная ошибка в процентах (Mean Absolute
…………..Percentage Error)
ВП
- вейвлет-преобразование
СУЭ
- система управления энергоснабжением
SOM
- самоорганизующуюся карта ( Self Organizing Map)
ОР
- обратного распространения
'
7
ВВЕДЕНИЕ
Актуальность темы диссертации и степень ее разработанности.
Прогнозирование составляет неотъемлемую часть любой сферы деятельности человека. И энергетика не является исключением. Для повышения эффективности и устойчивости процесса автоматизированного управления
электроэнергетическими системами (ЭЭС) система управления должна
содержать в себе подсистему прогнозирования временных рядов [1], в
частности,
прогнозирования
потребления
электроэнергии.
Прогнозы
потребления составляют основную исходную информацию для принятия
решений в процессе планирования оптимальных режимов работы и развития
ЭЭС. При этом наиболее высокие требования предъявляются к точности
краткосрочных (сутки-неделя-месяц) и оперативных (в пределах текущих
суток) прогнозов, поскольку именно они определяют управление текущим
режимом работы ЭЭС. В качестве основных задач, решаемых на основе
полученных
прогнозов
электропотребления
(ЭП),
можно
выделить
следующие: 1) планирование развития генерирующих мощностей и
электрических сетей ЭЭС; 2) планирование тарифов; 3) планирование
загрузки электростанций на следующие сутки, выработки энергии и
мощности, потребности в топливе;
4) планирование ремонтов основного оборудования электрических станций
и сетей. Требованию высокой точности прогноза
электропотребления
противостоит
временных
сложное
нестационарное
поведение
рядов,
описывающих потребление. Большое количество факторов, влияющих на
уровень потребления как систематического, так и случайного характера,
непрерывное изменение требований энергорынка, а также развитие самих
ЭЭС
делают
задачу
повышения
точности
прогнозирования
электропотребления еще более сложной. Следовательно, эта задача требует
решения в условиях неопределенности.
8
Прогнозирование ЭП при помощи таких современных технологий,
как искусственные нейронные сети ИНС [2, 3], нечеткая логика [4],
опорных векторов [5] и т.д. и их композиции составляет один из наиболее
активно развивающихся предметов исследований в энергетике. Прежде
всего, это связано с тем, что данные структуры являются универсальными
аппроксиматорами и способны моделировать сложные нелинейные
зависимости, что гарантирует возможность успешного прогнозирования.
Комбинирование и модификации интеллектуальных вычислительных
технологий дают широкие возможности для эффективного решения задачи
повышения
точности
краткосрочных
и
оперативных
прогнозов
электропотребления.
Вопросами разработки прогнозирующих систем ЭП с середины
прошлого века занимаются во многих странах Европы Азии и Северной
Америки, а также в ведущих вузах России, осуществляющих подготовку
специалистов для энергетической отрасли: НИУ МЭИ, СамГТУ, СПбГПУ,
ЮРГПУ(НПИ) и др.
Решению различных вопросов моделирования и прогнозирования
процессов
электропотребления
электроэнергетических
системах
в
системах
посвящены
электроснабжения
работы
российских
и
и
зарубежных авторов: Васильева И.Е., Гамма А.З., Гордеева В.И., Гросса Дж.,
Гурского С.К.,. Доброжанова В.И, Жежеленко И.В., Каялова Г.М., Кудрина
Б.И., Курбацкого В.Г., Куренного Э.Г., Лещинской Т.Б., Макоклюева Б.И.,
Надтоки И.И., Осовского А.С., Седова А.В, Степанова В.П., Goliana F.D.,
Bunn D.W., Farmer E.D., Ackerman G.B., Gupta P.C., Baker A.B., Chen M.S.,
Fan J.Y. Yang H.T., Huang C.M. и др.
На настоящий момент существуют целой ряд прогнозных моделей и
программных комплексов отечественных и зарубежнных разработчиков,
которые позволяют выполнять прогнозирование электропотребления с
9
требуемой для пользователей точностью, но в ряде случаев, в частности,
при диспетчерском управлении в энергосистемах результаты по точности
краткосрочного и оперативного прогнозирования не всегда удовлетворяют
возрастающим требованиям. Поэтому задача повышения точности
прогнозирования электропотребления остается актуальной.
Целью работы
является повышение точности краткосрочного
прогнозирования электропотребления на территориях операционных зон
региональных диспетчерских управлений с учетом освещенности.
Для достижения поставленной цели в данной работе ставятся и
решаются следующие задачи:
• Классификация
и
анализ
современных
математических
подходов
к
прогнозированию электропотребления и выявление наиболее перспективных
направлений улучшения качества и надежности прогнозов;
• Исследование влияния температуры воздуха и естественной освещенности на
величину ЭП;
• Выполнение сравнительного анализа следующих методов и прогнозных
моделей:
-
нейросетевая модель (ИНС) с использованием эволюционных алгоритмов;
- нейро - нечеткая модель (ANFIS);
- регресионная модель на основе метода опорных векторов (SVM);
- регресионная модель на основе метода метода опорных векторов с
использованием роя частиц.
• Построение системы прогнозирования электропотребления в среде Matlab по
результатам исследований;
•
Исследование системы прогнозирования на реальных данных по ЭП, а
также сравнительная оценка качества прогнозирования предложенных
моделей.
• Тестирование моделей прогнозирования на временных рядах освещенности,
температуры воздуха и фактических данных электропотреблении.
10
• Разработка
программы
краткосрочного
прогнозирования
электропотребления для регионального диспетчерского управления.
Методология и методы исследования. При решении поставленных
задач использовались методы теории нестационарных случайных процессов,
методы нейронных сетей, адаптивных
опорных
векторов
самоорганизующихся
с
нейро- нечетких сетей и метод
использованием
карт.
алгоритмов
Экспериментальные
роя
частиц
исследования
и
и
тестирование модели проводилось с помощью программы «Прогноз ЭТО
PSO SVM», реализованной в программном комплексе MATLAB.
Научная новизна работы заключается в следующем:
1..Разработана
модель
для
краткосрочного
прогнозирования
электропотребления на территориях операционных зон региональных
диспетчерских управлений, основанная на методе опорных векторов и
алгоритме роя частиц, отличающаяся тем, что в ней в качестве одного из
влияющих факторов учитываются значения естественной освещенности, что
позволяет повысить точность моделирования и прогнозирования.
2. Впервые реализован алгоритм роя частиц, для оптимизации
параметров регрессионной модели опорных векторов, в который в качестве
влиящих факторов учитываются одновременно температура воздуха и
освещенность.
3. Показано на основе исследования двух наиболее эффективных и
перспективных прогнозных моделей (нейро-нечеткой сети и метода опорных
векторов),
что
регрессионная
модель
опорных
векторов
обладает
наилучшими аппроксимирующими свойствами в пространстве переменных:
мощность энергосистемы, температура воздуха и естественная освещенность.
Теоретическая значимость результатов диссертационной работы
заключается в разработанной модели на основе метода опорных векторов с
использованием алгоритма роя частиц для оптимизации параметров модели.
Метод
позволяет
повысить
точность
установления
нелинейных
11
зависимостей между потреблением электроэнергии, температурой воздуха и
естественной освещенностью.
Практическая
значимость
Разработанная
модель
может
быть
использована для прогнозирования электропотребления в региональных
диспетчерских управлениях - филиалах ОАО «Системный оператор единой
энергетической
системы»,
территориальных
компаниях,
оптовых
генерирующих
энергосбытовых
генерирующих
компаниях,
компаниях,
а
компаниях
региональных
также
в
и
сетевых
диспетчерских
управлениях отдельных предприятий, которые являются членами оптового
или розничного рынков электроэнергии и мощности. Разработана в среде
MatLab
программа
электропотребления
для
для
ЭВМ
краткосрочного
Ростовского
регионального
прогнозирования
диспетчерского
управления на основе метода опорных векторов.
Внедрение результатов. Полученные результаты работы:
- включены в отчет о научно-исследовательской работе, выполненной
ООО НПП «ВНИКО» по заказу филиала ОАО «СО ЕЭС» Московское РДУ в
2011-2013 гг.;
- использованы в учебном процессе ЮРГПУ(НПИ) при проведении
лекционных, практических и семинарских занятий при подготовке магистров
по направлению «Электроэнергетика и электротехника».
Основные положения, выносимые на защиту:
1. Прогнозная модель электропотребления на основе метода опорных
векторов с использованием алгоритма роя частиц с учетом температуры
воздуха и освещенности для филиала ОАО "СО ЕЭС" Региональное
диспетчерское
управление
энергосистемами
Ростовской
области
и
республики Калмыкии (Ростовское РДУ).
2. Использование алгоритма роя частиц для оптимизации параметров
регрессионной модели опорных векторов при учете факторов температуры
воздуха и освещности, влияющих на электропотребление.
3. Результаты сравнительного анализа трёх типов моделей: ИНС, ANFIS,
12
SVM при оптимизации их параметров методами самооргнизующихся карт и
роя
частиц
с
позиции
точности
краткосрочного
прогнозирования
электропотребления в различных зонах суточного графика и типах дней с
учетом температуры воздуха и освещенности.
Достоверность полученных результатов. Достоверность научных
положений
и
результатов,
сформулированных
в
диссертации,
подтверждается корректным использованием методов математического
моделирования и прогнозирования временных рядов, статистического и
регрессионного анализа, искусственных нейронных сетей, теории опорных
векторов,
методов
эволюционного
моделирования
и
результатами
компьютерного моделирования. Модель апробирована с использованием
фактических данных ЭП и метеорологических данных за период с 2009 г. по
2012 г. Ростовского РДУ, полученных с помощью сертифцированных средств
телемеханики и АСКУЭ оперативного измерительного коммлекса.
Апробация работы. Основные положения диссертационной работы
докладывались, обсуждались и получили положительную оценку на ХХХIV,
XXXV и XXXVI сессиях всероссийского научного семинара Академии наук
Российской Федерации «Кибернетика электрических систем» (ЮРГПУ
(НПИ), г. Новочеркасск) в 2012, 2013 и 2014 годах.
Результаты
представлялись
на
XI
и
ХII
международных
научно-
практических конференциях «Современные энергетические системы и
комплексы и управление ими» (ЮРГПУ(НПИ), г. Новочеркасск) в 2013 и
2014 годах; на XIV международной научно-практической конференции
«Компьютерные
технологии
в
науке
производстве,
социальных
и
экономических процессах» (ЮРГПУ (НПИ), г. Новочеркасск) в 2014 г.; на
XIII международной
научно-практической
конференции
«Методы
и
алгоритмы прикладной математики в технике, медицине и экономике»
(ЮРГПУ (НПИ), г. Новочеркасск) в 2013 г.; на региональной научнопрактической конференции студентов, аспирантов и молодых ученых вузов
Ростовской области «Студенческая научная весна-2012» (ЮРГПУ(НПИ), г.
13
Новочеркасск).
Результаты
работы
докладывались
на
IV-й
и
V-й
международных конференциях «Электроэнергетика глазами молодёжи» в
ЮРГПУ(НПИ), г. Новочеркасск, 14-18 октября 2013г. и в Томском
политехническом университете, г. Томск, 10-14 ноября 2014г. Доклад по
теме работы участвовал в конкурсе и получил диплом победителя в
молодежной программе «Инвестируя в будущее» ежегодной выставки и
конференции Russia Power: г. Москва 4 - 6 марта 2014г.
Публикации.
Основные
результаты
диссертационной
работы
опубликованы в 11 печатных работах, в том числе 2 в изданиях,
рекомендуемых ВАК, 2 - в тезисах докладов, 7 докладов на международных
и межрегиональных научных конференциях. Подана заявка на официальную
регистрацию программы «Прогноз ЭТО PSO SVM».
Структура и объем работы. Диссертационная работа состоит из
введения,
четырех
глав,
заключения,
списка
литературы
из
146
наименований отечественных и зарубежных авторов, 8 приложений,
представленных на 50 страницах. Основная часть работы изложена на 131
страницах машинописного текста, включая 5 таблиц и 37 иллюстраций.
В первой главе
систем
представлен исследование и обзор современных
краткосрочного
прогнозирования
электропотребления.
Сформулированы основные требования, предъявляемые в настоящее время
к системам краткосрочного прогнозирования электрической нагрузки.
Рассмотрено современное состояние, развитие и перспективы дальнейшего
совершенствования прогнозирующих моделей электропотребления. Дан
обзор основных отечественных и зарубежных публикаций, посвященных
проблемам
построения
и
совершенствования
систем
краткосрочного
прогнозирования электрической нагрузки. Показано, что проблемами
моделирования и прогнозирования
электропотребления
занимались со
второй половины прошлого века специалисты в разных странах с развитой
электроэнергетикой. По результатам обзора литературных источников
обоснован
выбор
следующих
типов
моделей
для
решения
задачи
14
краткосрочного прогнозировании ЭП в операционной зоне РДУ: нейронная
сеть, нейро-нечеткая сеть, регрессионная модель опорных векторов с
использованием алгоритма роя частиц.
Во второй главе проводится комплексный анализ факторов,
влияющих на ЭП на территории операционной зоны Ростовского РДУ.
Анализ выполнен на архивных данных временных рядов ЭП, температуры
воздуха и естественной освещенности. На различных временных интервалах
исследованы взаимосвязи между ЭП и такими влияющими факторами как
температура, освещенность и сезон года.
В.третьей.главе описана разработанная модель прогнозирования
электропотребления на территории операционной зоны РДУ. В основу
модели положен математический аппарат искусственных нейронных сетей.
Показаны основные параметры и структура нейронной сети, а также описан
метод, при помощи которого найдены оптимальные (с точки зрения
минимизации ошибки) параметры сети. И также описана разработанная
модель прогнозирования электропотребления на территории операционной
зоны РДУ на основе модели искусственных нейронных сетей с помощью
алгоритма роя частиц, а также с помощью самоорганизующихся карт.
В
четвертой
главе
разработана
система
краткосрочного
прогнозирования электропотребления на территории операционной зоны
Ростовского РДУ с использованием нейро-нечеткого и опорных векторов с
помощью роя честиц с учетом температуры воздуха и естественной
освещености. И произведена апробация модели и тестовые прогнозы ЭП,
выполнены расчеты относительной ошибки прогнозирования при различной
входной информации.
В заключении приводятся основные выводы и результаты работы.
В приложениях представлены листинги основных модулей программы;
копии актов о внедрении результатов работы и дипломы по результатам
участия в конференциях
15
1. ОБЗОР И АНАЛИЗ СОВРЕМЕННЫХ МЕТОДОВ И
МАТЕМАТИЧЕСКИХ МОДЕЛЕЙ ПРОГНОЗИРОВАНИЯ
ЭЛЕКТРОПОТРЕБЛЕНИЯ
1.1 Классификация методов краткосрочного прогнозирования
нагрузки
С точки зрения сроков, прогнозирование нагрузки подразделяется на
четыре категории :
• долгосрочное прогнозирование с заблаговременностью более одного года;
• среднесрочное прогнозирование с заблаговременностью от одного месяца
до одного года;
• краткосрочное прогнозирование нагрузки с заблаговременностью от одних
суток до нескольких недель;
•оперативное прогнозирование - от одного до трех часов и до конца текущих
суток.
Различные категории прогнозирования служат для различных целей. В
данной работе рассмотрены методы краткосрочного
прогнозирования
нагрузки.
Научно-исследовательские методы краткосрочного прогнозирования
нагрузки можно разделить на две основных категории: статистические
методы и методы искусственного интеллекта [6]. В статистических методах
полученные уравнения
показывают соотношение между нагрузкой и
влияющими на нее факторами, в то время как методы искусственного
интеллекта пытаются подражать образу мышления людей, чтобы получить
знания из прошлого опыта и прогнозировать будущие нагрузки .
Краткая характеристика некоторых основных методов краткосрочного
прогнозирования нагрузки приводится ниже.
16
1.2 Статистические методы прогнозирования
Обычно статистические методы могут достаточно точно предсказать
суточный график нагрузки в обычные дни, но им не хватает способности
анализировать нагрузку в праздничные или другие дни, в связи с отсутствием
гибкости их структуры. Статистические методы включают множественную
линейную и нелинейную регрессию [7], стохастические временные ряды [8],
общее экспоненциальное сглаживание [9], методы пространства состояния
[10] и др.
1.2.1 Методы регрессии
Регрессионный
используемых
анализ
статистических
является
методов.
одним
из
Методы
наиболее
широко
регрессии
обычно
используются для моделирования взаимосвязей электропотребления с
другими факторами, такими как погодные факторы (температура, влажность,
скорость и направление ветра и др.), тип дня и класс потребителей. В [11]
представлено несколько моделей регрессии для прогнозирования нагрузки
следующего дня. Эти модели включают детерминированные факторы,
например, праздничние дни, а также стохастические воздействия, такие как
экзогенные факторы, например, метрологические. В [12 - 15] описываются
другие приложения линейных регрессионных моделей, применяемых для
прогнозирования нагрузки. Эти
методы основаны на экспериментальных
данных нагрузки в прошлом, чтобы установить математическую модель для
прогнозирования будущей нагрузки [16]. Ограничением в применении
линейных регрессионных моделей является то, что между погодными
переменными и нагрузкой существуют нелинейные зависимости. Алгоритм
линейной регрессии для динамического процесса
с нелинейными
связями с метеофакторами не может справиться с задачей точного прогноза.
17
1.2.2 Методы временных рядов
Методы временных рядов основаны на предположении, что данные
имеют некоторую внутреннюю структуру, например, автокорреляции,
тенденции или сезонные изменения. Методы временных рядов позволяют
обнаруживать и исследовать такую внутреннюю структуру и использовались
в течение многих десятилетий в таких областях, как экономика, цифровая
обработка сигналов, а также при прогнозировании электрической нагрузки
[17]. В частности, модели ARMA (авторегрессия скользящее среднее),
ARIMA (авторегрессия интегрированое скользящее среднее) и ARIMAX
(авторегрессия
интегрированое
скользящее
среднее
с
внешними
переменными ) являются наиболее часто используемыми классическими
методами временных рядов. Модели ARMA обычно используются для
стационарных процессов в то время как ARIMA является продолжением
ARMA для нестационарных процессов. ARMA и ARIMA используют время и
нагрузку в качестве единственных входных параметров. Поскольку нагрузка,
как правило, зависит от погоды и времени суток, т.е. от внешних факторов,
то модель ARIMAX является наиболее естественным инструментом для
прогнозирования электрической нагрузки среди классических моделей
временных рядов. Fan и McDonald в [18] а также Cho и др. в [19] описали
реализацию моделей ARIMAX для прогнозирования электрической нагрузки.
Yang и др. в [20] использовали эволюционный алгоритм для идентификации
параметров ARMAX модели от одного дня до одной недели для
прогнозирования почасовой нагрузки. Yang и Huang в [21] предложили
использовать среднее значение скользящей авторегрессии в сочетании с
нечеткой логикой в течение одного дня для прогнозирования стоимости
почасовой электрической нагрузки.
18
1.2.3 Методы, основанные на фильтре Калмана
Фильтр
Калмана
широко
используется
в
инженерных
и
эконометрических приложениях: от радаров и систем технического зрения до
оценок параметров макроэкономических моделей [22]. Совместно с линейноквадратичным
регулятором фильтр
Калмана
позволяет
решить
задачу линейно-квадратичного гауссовского управления. В большинстве
приложений
размерность
вектора
состояния
объекта
превосходит
размерность вектора данных наблюдения. Алгоритм работает в два этапа. На
первом этапе, прогнозирования фильтр Калмана экстраполирует значения
переменных состояния, а также их неопределенности. На втором этапе, по
данным измерения (полученного с некоторой погрешностью), результат
экстраполяции
уточняется.
фильтр
Калмана
обладает
некоторой
погрешностью, на него может оказывать влияние большое количество
внешних и внутренних воздействий, что приводит к тому, что информация с
него оказывается зашумленной. Чем сильнее зашумлены данные тем сложнее
обрабатывать такую информацию.
1.2.4 Методы, основанные на вейвлет-преобразованиях временных
рядов
Модели
STLF, основанные на методе вейвлет-преобразования
временных рядов электропотребления и метеофакторов [23] используются
для повышения производительности традиционных ИНС. Как правило,
строятся трехуровневые вейвлет модели; при построении суммирующих
узлов используются эволюционные вычислительные алгоритмы [23]. В
основном, первый слой вейвлет узлов разлагает входные сигналы в
различные масштабы сигналов, для которых различные весовые значения
подаются
на
второй
слой
весовых
узлов.
Наконец,
третий
слой
суммирующих узлов сочетает в себе взвешенные масштабы сигналов
19
выходного слоя. В [24] метод вейвлет-преобразований временных рядов был
предложен для прогнозирования электропотребления в Кубанском РДУ.
В [25] для повышения эффективности предложенных прогнозных
моделей на основе вейвлет использовался эволюционный алгоритм, были
применены
данные фактической
нагрузки и погодные данные для
энергосистемы Тайваня [26]. Статистический корреляционный анализ между
фактической нагрузкой и погодными переменными использовался в качестве
эталона для определения входных переменных сетей. Для сравнения в [26]
был принят существующий метод
ИНС для STLF с использованием
алгоритма обучения обратной связи. Сравнение покаяло, что основанные на
вейвлетах ИНС могут давать более точные результаты прогнозирования и
более высокую скорость обучения.
1.3 Методы искусственного интеллекта
Применение методов искусственного интеллекта имеeт большие
преимущества. Это основной алгоритм нейронной сети [27], нечеткая
система вывода [28], генетические алгоритмы, рой частиц [29], теория хаоса
[30], и др.. Перечисленные выше методы прогнозирования и экспертные
системы относятся к методам искусственного интеллекта.
1.3.1 Методы, основанные на моделях нейронных сетей
Впервые предположили метод искусственной нейронной сети для STLF
в
1991 году, Park D.C. и др., которые разработали нейронную сеть для
моделирования и прогнозирования нагрузки [27, 31, 32]. Нейронные сети, по
существу это нелинейные функции , которые имеют способность выполнения
аппроксимации
нелинейных зависимостей [33]. Выходы искусственной
нейронной сети являются линейными или нелинейными математическими
функциями ее входов. Входы могут быть выходами других сетевых
20
элементов.
Преимуществом
интеллектуальная
технологии
обработка,
которая
нейронных
может
сетей
является
имитировать
работу
человеческого мозга. Недостатком является то, что процесс обучения
является относительно медленным, и это не гарантирует сходимости между
фактическими
и
прогнозными
данными.
Кроме
этого,
определение
оптимального набора входных переменных и размеры скрытых слоев следует
исследовать на практике.
При применении нейронной сети для целей прогнозирования,
необходимо решить следующие задачи:
выбрать архитектуру нейронной
сети; определить количество и соединение
слоев и элементов; принять
решение по использованию двунаправленной или однонаправленной связи и
цифрового формата [31]. Самой популярной архитектурой искусственной
нейронной сети для прогнозирования электрической нагрузки является
архитектура
обратного
распространения
непрерывно
оцениваемые функции и обучение с учителем. Фактические
[34].
Эта
сеть
использует
числовые данные весов, присваиваемые входам элементов определяются
путем сопоставления архивных данных (например, время и погода) с
заданными выходами (например, прогнозные данные нагрузки) во время
обучения. Искусственные нейронные сети с неконтролируемым обучением
не требуют предварительной оперативной подготовки.
Губский
С.О.
в
[35]
разработал
модели
краткосрочного
прогнозирования потребления электроэнергии с использованием ИНС для
Ростовского РДУ и в качестве факторов влияющих на нагрузку использовал
температуру воздуха и освещенность.
Гофман и др. [36] разработали
прогнозирования
модель ИНС для краткосрочного
электропотрбления для Самарской энегосистемы .
Входные переменные включают исторические данные почасовой нагрузки,
метеофакторов и дня недели. Papalexopoulos и др. в [37] также разработали и
внедрили многоуровневую прямолинейную
трехслойную
ИНС для
краткосрочного прогнозирования нагрузки. В этой модели используются три
21
типа переменных в качестве входных данных
нейронной сети: входы
связанные с временем года, входы связанные с погодой и с историческими
нагрузками. Khotanzad и др. [38] описали модель ИНС для прогнозирования
нагрузки, которая основана на нескольких стратегиях, которые отражают
различные тенденции данных. В основе прогнозной модели используется
многослойный
персептрон,
обучаемый
по
алгоритму
обратного
распространения ошибки. Эта прогнозная модель может учитывать влияние
температуры и относительной влажности на нагрузку, а также содержит
функцию, которая может прогнозировать
относительную
влажность,
необходимые
почасовую температуру и
для
работы
системы.
Совершенствование указанной системы было описано в [39], эта модель
включает в себя две функции: одна прогнозирует базовую нагрузку, а другая
изменение нагрузки.
Chen и др. в [40] также разработали трехслойную прямолинейную
модель нейронной сети, в которой при обучении также использовался
алгоритм обратного распространения. Их ИНС также рассматривает цену на
электроэнергию в качестве одной из основных характеристик загрузки
энергосистемы.
Многие
искусственные
нейронные
опубликованные
сети
в
исследования
сочетании
с
другими
используют
методами
прогнозирования, такими как временные ряды [41] и нечеткая логика.
Недавно былa разработана и опубликована рекуррентная нейронная сеть [42],
которая была применена для STLF и были получены положительные
результаты. Искусственная нейронная сеть не нуждается в человеческом
опыта и направлена на создание связей между входным набором данных и
наблюдаемыми выходами. Это является достоинством при работе с
нелинейными зависимостями между нагрузкой и влияющими на неё
факторами, но существует недостаток заключающийся в избыточной
аппроксимации и длительности обучения. В [43] Курбацкий предложил
практику
использования
новых
информационных
технологий
для
22
прогнозирования
и
анализа
отдельных
характеристик
сетевых
энергопредприятий.
1.3.2 Методы, основанные на нечеткой логике
Нечеткая логика является обобщением обычной булевой логики,
используемой для цифрового проектирования цепей. Вход по булевой логике
приобретает значение "верно" или "неверно". По нечеткой логике вход
связан
с
определенными
качественными
диапазонами.
Например,
температура дня может быть "низкой", "средней" или "высокой". Нечеткая
логика позволяет логически вывести выходы из нечетких входов. В этом
смысле нечеткая логика является одним из нескольких методов для
отображения входа к выходу. С такими правилами условий система нечеткой
логики
может
быть
очень
эффективной
при
использовании
для
прогнозирования. Конечно во многих ситуациях необходим точный (четкий)
выход. В этом случае после логической обработки нечетких входов может
быть использована "дефаззификация"
для получения таких точных
результатов. В [44, 45, 42, 46] авторы описывают применение нечеткой
логики
для
решения
задач
прогнозирования.
прогнозирования только имитируют
Нечеткие
методы
рассуждения и суждения экспертов,
они не предназначены для определения точной математической модели [47].
Теория нечеткой логики
подходит для описания широкого класса
неопределенностой, и в то же время, она имеет мощную способность
нелинейного отображения, которое может
количества данных. Системы нечеткого
быть извлечено из большого
вывода являются продолжением
экспертных систем. На их основе создаются оптимальные структуры
упрощенного нечеткого вывода, которые минимизируют ошибки модели и
количество функций принадлежности, для того чтобы понять нелинейное
поведение кратковременных нагрузок. Однако системы нечеткого вывода
нуждаются в опыте экспертов для генерации нечетких правил.
23
Прогнозирование с использованием экспертных систем позволяет
использовать правила, которые часто имеют эвристический характер, но при
этом повышается точность прогнозирования. Экспертные системы [48]
включают правила и процедуры, используемые экспертами в области
прогнозирования. Hsu и др. в [49]
основе
знаний
для
предложили экспертную систему на
краткосрочного
прогнозирования
нагрузки
для
энергосистемы Тайваня. Для обучения использованы знания операторов и
почасовое наблюдение за нагрузкой системы и параметрами погоды в
течение последних пяти лет. Rahman и Hazim [50] также разработали методы
прогнозиравания для различих предприятий на основе метода экспертной
системы.
1.3.3 Метод информационный проходки
Информационная проходка представляет собой процесс, который
исследует информационные данные в большой базе данных, чтобы
обнаружить правила, знания и т.д. [51, 52]. Mori и др. в [53] предложили
метод информационнай проходки для обнаружения правила при STLF.
Метод основан на использовании гибридной модели,
включающей
регрессию и искусственную нейронную сеть. В соответствии с данным
методом диапазон изменения нагрузки разделяется на несколько классов и
определяется к какому классу принадлежит прогнозируемая нагрузка в
соответсвии с правилами классификации. Затем многослойный персептрон
используется для обучения каждого класса. В работе делается акцент на
определении
нелинейной зависимости между входными и выходными
переменными в модели прогнозирования.
24
1.3.4 Метод опорных векторов
Vapnik V.N. и др. в 1995 году, предположил новый тип алгоритмов
машинного обучения - метод опорных векторов SVM [54]. Метод опорных
векторов построен на основе структурного принципа минимизации риска
(SRM) и теории размерности. Способность обобщения метода SVM делают
его более эффективным по устойчивости модели, чем у искусственных
нейронных сетей и нечеткой логики. Время сходимости алгоритма регрессии
SVM при краткосрочном прогнозировании меньше чем у искусственных
нейронных сетей, алгоритм имеет более высокую точность прогнозирования,
меньшее количество регулируемых параметров и более просто определяется
структура модели. Для этого не нужно слишком много предварительной
информации и данных, что имеет значительные преимущества. Прикладные
исследования
в
области
прогнозирования
электрической
нагрузки
показывают перспективность и широкое применение SVM. Методы,
основанные на теории опорных векторных машин применялись для
краткосрочного прогнозирования нагрузки Ростовского РДУ и показали
хорошие результаты [55].
1.4 Эволюционные алгоритмы
К эволюционным алгоритмам относятся такие как генетический
алгоритм (ГА) [56 - 61], рой частиц (РЧ) [62, 63], искусственная иммунная
система (ИИС) [64], оптимизация колонии муравьев (ACO) [65]. Эти
алгоритмы
были
использованы
для
обучения
нейронных
сетей
в
приложениях краткосрочного прогнозирования нагрузки.
Генетический алгоритм является рандомизированным, итерационным и
эволюционным методом поиска для установления механизма естественного
отбора и популяционной генетики.
Методы, основаные на генетическом
алгоритме
глобальной
имеют
способность
оптимизации.
Общий
25
генетический алгоритм используется для оптимизации весов ИНС, с целью
преодоления
попадания
в
локальные
минимумы
погрешности,
для
улучшения точности прогнозов [66].
Методы ГА получили широкое применение в двух основных областях оптимизация и обучении машин. Если говорить об обучении машин, ГА
успешно используется для обучения нейронных сетей [66]. Несмотря на то,
что методы ГА помогают решать проблемы оптимизации, в случае, если
задача состоит из большого числа локальных оптимумов, решение ГА будет
лишь приближено к глобальному оптимуму. Помимо этого, для поиска
решения требуется длительный период обучения. А в случае, когда
количество
параметров
растет,
проблема
оптимизации
приобретает
комплексный характер.
Для устранения этих недостатков предлагается архитектура нейронной
сети на основе РЧ для целей краткосрочного прогнозирования нагрузки [67].
РЧ - это новый эвристичный метод, основанный на принципах роевого
интеллекта, формируемого посредством взаимодействия и соперничества
между частицами роя, который был разработан в качестве инструмента для
инженерной оптимизации [67]. Алгоритм РЧ
может использоваться для
решения тех же задач, что и ГА, но не имеет основных недостатков ГА [67].
По сравнению с ГА все частицы роя быстрее сходятся к наилучшему
решению.
Успешное использование методов РЧ для решения нескольких задач
оптимизации, таких как минимизация функции [68] и построение структуры
нейронной сети с прямой связью [69], продемонстрировало возможности
данного алгоритма. Алгоритм РЧ характеризуется высоким потенциалом для
поиска самого оптимального результата. Однако, так как алгоритм РЧ
содержит несколько параметров, корректируемых путем эмпирического
подхода, если эти параметры заданы некорректно, поиск будет протекать
очень медленно в приближении к глобальному оптимуму. РЧ - это алгоритм
поиска
наилучшего
решения
путем
моделирования
движения
и
26
взаимодействия птиц в стае [70]. Алгоритм работает, произвольно помещая
стаю птиц в пространство поиска, при этом каждая птица именуется
«частица». Эти «частицы» движутся с определенной скоростью и,
взаимодействуя друг с другом, выбирая наилучшее положение. При каждой
итерации частица может изменять вектор своей скорости на основе
движущей силы и стремления этой частицы и соседних частиц занять более
выгодное положение; по этим параметрам вычисляется новое положение, к
которому летит «частица» [70].
1.5 Требования к краткосрочному прогнозированию
электропотребления
Почти во всех системах энергетического менеджмента в современных
центрах управления
есть
модули краткосрочного прогнозирования
нагрузки. Хорошая система STLF должна выполнять требования точности,
высокой
скорости,
автоматического
обнаружения
неверных
данных,
благоприятствующиего интерфейса, автоматического доступа к данным и
автоматической генерации результатов прогнозирования [71].
Самое важное требование к процессу STLF – это его точность. Как уже
говорилось ранее, хорошая точность является основой экономичного
диспетчерского управления, надежности системы и отвечает требованиям
электроэнергетического рынка. Основная цель большинства работ по STLF и
также этой работы - сделать результат прогнозирования как можно более
точным [71].
Скорость прогнозирования является основным требованием программы
прогнозирования. От программ со слишком долгим временем обучения
следует отказаться, и необходимо использовать новые методы сокращения
времени обучения.
В современных энергетических системах измерительные приборы,
расположенные на различных уровнях энергосистемы, передают полученные
27
данные в центр управления по линиям связи. В связи со спорадически
возникающими ошибками измерений или сообщений данные о нагрузках
иногда прибывают в диспетчерский центр недостоверные, но они все равно
записываются в архивуюю базу данных. Ранее системы STLF полагались на
операторов энергосистемы для определения плохих данных и избавления от
них. Новый тренд заключается в том, что система сама делает это вместо
операторов, чтобы уменьшить их рабочую нагрузку и увеличить скорость
обнаружения.
Различные
энергосистемы
имеют
различные
свойства
нагрузки
потребителей и могут быть расположены в разных климатических зонах.
Поэтому эффективно работающее программное приложение STLF подходит
только для той области или предприятиея, для которой оно было
разработано.
Математические
обладающее свойствами
модели
и
програмное
обеспечение,
универсальности, до настоящего временны не
реализованы.
1.6 Основные проблемы краткосрочного прогнозирования
электропотребления
Существует
несколько
основных
проблем
в
краткосрочном
прогнозировании нагрузки. В данном разделе эти проблемы представлены
отдельно.
1.6.1 Точность гипотезы отношений вход- выход
Большинство методов STLF предполагает функцию регрессии или
сетевую структуру, подобную ИНС для представления отношений между
входными и выходными переменными. Одной из основных трудностей
является определить, что взять в качестве прогнозной модели, форму
регрессии или сетевой структуры, потому что это требует детального
28
предварительного знания проблемы. Если форма регрессии или структура
сети были неправильно определены, то результат прогнозирования будет
неудовлетворительным. Например, когда сама задача является квадратичной,
результат
прогнозирования
будет
очень
плохим,
если
в
модели
предполагается линейные отношения вход-выход.
Другая подобная проблема заключается в выборе параметров: не только
вид функции регрессии (или сетевой структуры ), но и набор параметров
должны быть оптимально выбраны для получения качественного прогноза.
Слишком много или слишком мало входных переменных ухудшат точность
прогноза.
Следует
принять
решение,
какие
переменные
являются
влияющими на нагрузку, а какие имеют малое влияние на неё. От
переменных, которые не влияют на поведение нагрузки следует отказаться.
Инструменты распознавания режимов и кластеризации, были введены для
STLF в [72]. Они делят данные на несколько кластеров. Каждый кластер
имеет уникальную функцию или структуру сети для представления
отношения вход-выход. Этот метод, как правило, имеет лучшие результаты
прогнозирования, потому что более точно отражает свойство системы. Но
по-прежнему
требуются
предварительные
знания,
чтобы
выполнить
кластеризацию и определить форму регрессии (или структуру сети) для
каждого кластера.
1.6.2 Прогнозирование аномальных дней
Нагрузку в аномальные дни также нелегко точно прогнозировать, в
связи с отличающимся поведением нагрузки по сравнению нагрузкой в
обычные дни в течение года, а также в связи с отсутствием достаточого
набора примеров данных [73]. В эти дни входит праздничные дни, ряд
выходных дней, дни, которые предшествуют праздникам и после их, дни с
экстремальными погодными условиями или с внезапным изменением погоды
и другие особые дни. Хотя число примеров особых дней может быть
29
значительно повышено за счет включения дней, которые находятся далеко от
целевого дня. Например, могут использоваться архивые данные за
последние 5 лет, а не за 1-2 последних года, однако рост нагрузки на
протяжении многих лет может привести к несхожести двух выборочных
дней. Из экспериментальных данных в [74] было установлено, что дни с
внезапным изменением погоды крайне сложно прогнозировать. Такого рода
дни имеют свойства двух видов: свойства из предыдущих ближайших дней и
свойства предыдущих подобных дней. Совмещение этих двух свойств
является сложной задачей.
1.6.3 Неточные данные прогноза погоды
Изменение погоды является ключевым фактором, влияющим на
результат прогнозирования, который используется во многих моделях. Хотя
методики прогнозирования погоды, как и прогнозирование нагрузки, были
улучшены в последние несколько десятилетий, прогноз
по-прежнему не
достаточно точный. Неточные данные о погоде, используемые в STLF могут
привести к большой ошибке прогноза.
1.6.4 Возможность меньшего обобщения, вызванная чрезмерной
аппроксимацией
Чрезмерная
аппроксимация является технической задачей, которая
должна быть решена при прогнозирования нагрузки. Прогнозирование
нагрузки заключается
в основном "в обучении и прогнозировании", что
связано с двумя наборами данных: данные обучения и данные тестирования.
Если при обучении ошибка прогноза
является низкой, а ошибка при
тестировании
что
высокая,
то
говорят,
имеет
место
чрезмерня
аппроксимация. Чрезмерная аппроксимация является одним из недостатков
30
нейронных сетей. Модель ИНС может показывать отличную эффективность
при обучении, но иметь намного худшие результаты при прогнозе данных.
1.7 Обзор современных источников по проблеме краткосрочного
прогнозирования электропотребления
Анализ
работ
российских
и
зарубежных
специалистов
по
краткосрочному прогнозированию электрических нагрузок регионов и
крупных
промышленных
комплексов
показывает,
что
характерной
тенденцией в настоящее время является объединение нескольких методов
прогнозирования. Ниже представлен краткий обзор некоторых работ
Российских и зарубежных авторов за последние 5 лет.
1.7.1 Модели нейронных сетей
Староверов Б.А. в [75], Предлагает новую методику построения моделей
автоматизированного оперативного прогнозирования электропотребления,
основанную на гибридной нейронной сети и ансамбля искусственных
нейронных сетей.
Алексеева
И.Ю.
в
разработала
[76]
модели
краткосрочного
прогнозирования потребления электроэнергии с использованием ИНС для
повышения
точности
планирования
оптимального
режима
электроэнергетической системы (на примере ЭЭС Самарской области) и
повышения достоверности при решении технических и экономических задач.
Губский
С.О.
в
[35]
разработал
модель
краткосрочного
прогнозирования потребления электроэнергии с использованием ИНС для
Ростовского РДУ и в качестве факторов влияющих на нагрузку использовал
температуру воздуха и освещенность.
Ayca Kumluca Topalli в [77]
предложил метод нейронной сети для
прогнозирования электрической нагрузки в Турции на один день вперед.
31
Этот метод использует гибридное обучение, которое объединяет off-line
обучение с обучением в реальном масштабе времени on-line. Этот метод
разработан, чтобы использовать имеющиеся данные для адаптации весов в
соответствии
с
изменяющимися
образом, решение обеспечивается
для
условиями.
Таким
всех типов нагрузки,
в
том
числе рабочих дней, выходных и нерегулярных праздничных дней.
Шумилова Г.П. и др. [78] разработали структуру ИНС для ЭЭС. Сеть
представляет из себя трехслойный перцептрон, во входном слое которого
находится 15 нейронов (соответствует количеству энергоузлов), в скрытом –
20 и выходном – 1. На входы нейронов скрытого и выходного слоев подано
смещение. Входными переменными являются значения узловых нагрузок в
определенный час суток. В выходном слое – суммарная нагрузка по
энергосистеме в этот же час. Количество нейронов в скрытом слое
определено по условию минимальной погрешности прогноза.
H. Shayeghi в [79] описывает процесс разрабатки трехслойной
нейронной сети прямой подачи для краткосрочного прогнозирования
нагрузки и затем представляет РЧ для оптимизации структуры при
проектирования сети. Алгоритм РЧ используется для оптимизации структуры
сложной нейронной сети и определение весов при прогнозирования
электрической нагрузки. Использование алгоритма РЧ при проектировании
и обучении ИНС позволяет оптимизировать архитектуру ИНС и её
параметры.
для
краткосрочного
прогнозирования нагрузки. Данные группируются в
соответствии с
различиями
Предлагаемый
в
их
метод
применяется
характеристиках.
показывают, что метод
Экспериментальные
результаты
РЧ может увеличить скорость обучения сети и
улучшить точность прогнозирования по сравнению с обычным методом
обратного распространения. Кроме того, он обеспечивает большую степень
точности во многих случаях и дает более низкий процент ошибки
краткосрочного прогнозирования.
32
Song Yufei в статье [80] предлагает новый подход, основанный на
сочетании
оптимизации
роя
частиц
с
кластерным
анализом
для
краткосрочного прогнозирования нагрузки. Автор использует алгоритм РЧ
для создания модели прогнозирования на каждый день в 24 точках. Для
кластеризации использована нейронная сеть Эльмана. Этот метод имеет
достаточную способность обработки нелинейных задач искусственных
нейронных сетей и интеллектуальный эволюционный метод вычисления.
Результаты моделирования ежедневной и еженедельной нагрузки для
реального прогнозирования энергосистемы показали, что предложенная
модель
прогнозирования
может
эффективно
повысить
точность
краткосрочного прогнозирования нагрузки.
David J. Montana в [81] показал, что многослойные нейронные сети
прямой подачи обладают рядом свойств, которые делают их особенно
подходящими для сложных задач классификации. Тем не менее, их
применение к некоторым проблемам реального мира было затруднено из-за
отсутствия алгоритма обучения, который надежно находит почти глобально
оптимальный набор весов в относительно короткие сроки. Автор использовал
ГА для обучения ИНС. Генетические алгоритмы представляют собой класс
интеллектуальных оптимизационных процедур, которые являются хорошими
для изучения большого и сложного пространства и способом поиска
значении, близких к глобальному оптимуму. Таким образом, они хорошо
подходят к решению проблеми обучения ИНС. В этой статье описывается
множество экспериментов, выполненных на экспериментальных данных. Эти
эксперименты иллюстрируют улучшение качества моделей с использованием
генетического
распространения.
алгоритма
совместно
с
алгоритмом
обратного
33
1.7.2 Модели нейро-нечетких сетей
Сердюкова Г.Н. и др. в [82] выбрали нечеткую нейронную сеть для
прогнозирования электрических нагрузок, в которой реализован алгоритм
Сугено. Созданы отдельные нечеткие нейронные сети для рабочих и
выходных дней. Тип и количество функций принадлежности выбраны на
основании минимальной ошибки обучения. По результатам сравнения
фактических значений электрических нагрузок и значений выхода нечетких
нейронных сетей определялись ошибки прогнозирования.
И.Ю. Петрова в [83] рассмотрела два вида обучающих выборок для
нейро-нечеткой сети типа Сугено. Сформулирована проблема отбора
входных параметров сети. Рассмотрены алгоритмы отбора входных
параметров методом последовательного поиска вперед, модифицированным
методом последовательного поиска вперед. Предложено модифицировать
алгоритм последовательного поиска вперед, что позволило снизить ошибку
прогноза. Приведены результаты тестирования алгоритмов на двух видах
обучающих выборок.
Бугаец В.А. в [84] предложил модель краткосрочного прогнозирования
электропотребления трех энергорайонов с использованием нейро-нечеткой
сети на территории операционной зоны Кубанского РДУ с учетом
температуры
окружающего
воздуха
и
естественной
освещенности.
Приведены результаты прогнозирования электропотребления и анализ
погрешностей для энергорайонов и всей территории операционной зоны.
Rustum Mamlook в [85] предложил методологию использования
нечеткого логического вывода
для уменьшения объемов обучающих
выборок почасовых данных в моделях ИНС и, соответственно, уменьшения
ошибки прогнозирования и времени обработки. Таким образом, учитывается
влияние
различных условных параметров
время, исторические
данные, и случайные
при прогнозировании нагрузки
(например, погода,
возмущения)
в условиях нечетких правил. Результаты
34
тестирования показали, что краткосрочнoe прогнозировние с использованием
нечеткой логики при моделировании и прогнозировании электропотребления
с учётом влияющих факторов в моделях ИНС имеет большую точность.
Toly Chen в [86] предложил совместный нейро-нечеткий подход. В
предлагаемом
сети обратного
подходе эксперты строят
распространения
свои
собственные
нечеткие
с различных точек зрения, чтобы
предсказать краткосрочную нагрузку в стране. Для построения совокупности
прогноза краткосрочной нагрузки применяются нечеткие пересечения.
Ronaldo
R.B.
de
Aquino
в
[87]
разработали
гибридные
интеллектуальные системы для прогнозирования почасовой нагрузки в
период до 7 дней вперед, используя комбинацию искусственной нейронной
сети и адаптивной нейро-нечеткой системы. Почасовой прогноз нагрузки
был выполнен в два этапа: на первом этапе две ИНС используются для
прогнозирования общей нагрузки (трендовой составляющей), когда одна из
сетей прогнозирует рабочие дни (с понедельника по пятницу), а другая
прогнозы на субботы, воскресенья и праздничные дни.
На втором этапе
для получения почасовой нагрузки используется
ANFIS.
Yun Lu в [88] предложил использование метода радиальных базисных
функций в нейронных сетях и алгоритмов нечетких рассуждений. В связи с
тем,
что
некоторые
воздействия
на
регулярную
составляющую
электрической нагрузки являются неопределенными, радиальные базисные
нейронные сети в сочетании с нечеткой логикой используются для поиска
универсального закона изменения нагрузки.
1.7.3 Модели вейвлет-преобразования
Бугаец В.А в [23] предложил метод вейвлет-преобразования для
краткосрочного прогнозирования на основе данных Кубанского РДУ с
учётом освещености.
35
Turgay Partal в [89] предложил новый метод, заключающийся в
объединении дискретного вейвлет-преобразования и нейро-нечеткой сети.
Наблюдаемые ежедневно временные ряды осадков разлагаются с помощью
дискретного
вейвлет-преобразования,
а
затем
соответствующие
ортогональные составляющие используются в качестве входов в нейронечеткой модели для прогнозирования.
1.7.4 Регрессионные модели
Валь П.В в [90] использовал метод ARIMA (Autoregressive integrated
moving average) в качестве метода прогнозирования электропотребления.
Анализ качеста прогнозирования модели ARIMA был произведен на примере
горнообогатетильного комбината ООО (Сорский ГОК). Для анализа были
использованы 2448 почасовых значений электропотребления за период с 22
октября 2008 г. по 31 января 2009 г.
Hongzhan
Niel
в
[91]
воспользовался
преимуществами метода
авторегрессии скользящего среднего ARMA для прогнозирования линейной
части нагрузки, а метод SVM применил для прогнозирования нелинейной
части нагрузки.
1.8 Выводы
1.
Совершенствование
методов
краткосрочного
прогнозирования
электропотребления с учетом влияющих на него факторов развивается в
направления создания комбинированных моделей, использующих такие
методы и модели как нейронные сети, нечеткую логику, вейвлетпреобразования и методы опорных векторных машин.
2. Одной из нерешенных проблем краткосрочного прогнозирования
является
прогнозирование
так
и
называемых
нерегулярных
дней
36
(новогодние праздники, 8 марта, 9 мая, 12 июня), которые могут не совпадать
с выходными днями недельного цикла.
3. Значительная доля прогнозных моделей, опубликованных в работах
по
прогнозированию
электропотребления
с
учетом
метеофакторов,
учитывает лишь один влияющий фактор - температуру воздуха. Известны
разработки, прогнозные модели, позволяющие учитывать облачность,
скорость ветра, солнечную радиацию и влажность. Работы, в которых в
качестве второго фактора используются инструментальные данные по
освещености, ведутся лишь в России, и при выполнении анализа влияющих
на ЭП метеорологических факторов установлено, что наиболее значимым для
различных моделей является температура воздуха
37
2 АНАЛИЗ ВРЕМЕННЫХ РЯДОВ ЭЛЕКТРОПОТРЕБЛЕНИЯ И
ОПРЕДЕЛЯЮЩИХ ЕГО ФАКТОРОВ
2.1. Характеристики графиков электрической нагрузки энергосистемы
В общем виде суммарная нагрузка всех потребителей энергосистемы
в момент времени
где
- это сумма нагрузок всех её
потребителей:
нагрузка -го потребителя.
Целью STLF является прогнозирование нагрузки в момент времени
. Знание
характеристик суточных
проектировать
адекватные
графиков
модели
системы помогает
прогнозирования,
эффективно
работающие в различных ситуациях. Различные факторы, влияющие на
изменение нагрузки энергосистемы, можно разделить на следующие
основные
категории:
метеорологические;
сезонные
(цикличность);
экономические; случайные возмущения. Последствия воздействия всех этих
факторов на суточние графики
рассмотрены в данном разделе.
Перед тем, как перейти к изучению временных рядов потребляемой
мощности, которые в данной работе представлены суточными графиками
электрической нагрузки (СГЭН)
характеристики
(рисунок
, необходимо рассмотреть их форму и
2.1).
Обычно
такие
графики
имеют
два
выраженных пика - утренний и вечерний. Между пиками находится зона
относительно уменьшенной нагрузки. Самые низкие значения нагрузки
достигаются в течение от 2-го по 6-й ночных часов. В СГЭН
выделяют
базовую, ограниченную минимальной ночной нагрузкой, и переменную
части.
В
переменной
части
–
полупиковую
составляющую
между
минимальной дневной и ночной нагрузками и пиковую составляющую,
между минимальной дневной и максимальной нагрузками [92].
38
Мощность,МВт
3000
Вечерний пик
2800
Переменная
часть
Утренний пик
2600
2400
,
2200
Pcp
2000
Pmax
Базовая часть
Pmin
1800
1600
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Час суток
Рисунок 2.1. Суточный график электрической нагрузки на территории
операционной зоны Ростовского РДУ за 27 февраля 2011 г. (рабочий день).
Реализации СГЭН, полученные по показаниям систем телемеханики,
представляются дискретными моделями реального процесса - моделями
квантования по времени [93].
2.2 Временные ряды электропотребления
и влияющих факторов
Непосредственно прогнозирование ЭП является важнейшей задачей
для таких энергосистем или субъектов оптового рынка электроэнергии
(ОРЭМ),
у
которых
отсутствует
возможность
влиять
на
нагрузку
потребителей – это, например, региональные диспетчерские управления.
Кроме того точное прогнозирование энергопотребления обеспечивает
оптимальное с экономической точки зрения распределение нагрузок между
станциями, а следовательно приводит и к увеличению надежности работы
всей энергосистемы.
Для осуществления прогнозирования временных рядов потребляемой
мощности изучена их природа. Изучение выполнено путем анализа:
- компонент ряда;
39
- причин возникновения той или иной формы ряда;
- способов изменения электропотребления;
- взаимосвязей различных влияющих факторов друг с другом.
Временной ряд состоит из нескольких компонент: тренд, сезонная
компонента и случайная компонента. Оценка тренда может осуществляться
параметрическим и непараметрическим методами [94]. Параметрический
метод заключается в подборе гладкой функции, которая описывала бы
тенденцию ряда: нелинейный тренд, который выделен на (рисунки 2.2, 2.3,
2.4, 2.5). Непараметрический метод используется, когда нельзя подобрать
гладкую функцию и заключается в сглаживании временных рядов, например,
методом скользящей средней. Непараметрические методы не применяется
при
прогнозировании
Мощность,
электропотребления[95].
, МВт
2400
2200
2000
1800
1600
1400
1200
y = - 4 E - 11 x 5 + 1 E - 07 x 4 - 0.0001 x 3 + 0.0471 x 2 - 7.4302 x + 2006.3
R 2 = 0.1768
1000
0
100
200
300
400
Номер часа
500
600
700
800
Рисунок 2.2 – График потребляемой мощности на территории операционой зоны Ростовского
РДУ в течение августа 2011 г.
40
Мощность,
, МВт
2900
2700
2500
2300
2100
1900
1700
5
4
3
2
y = 1E -10 x - 2 E -07 x + 0.0001 x - 0.0233 x + 0.7805 x + 2286.1
2
R = 0.2019
1500
0
100
200
300
Номер часа
400
500
600
700
Рисунок 2.3 – График потребляемой мощности на территории операционной зоны
Ростовского РДУ в течение февраля 2011 г.
Мощность,
, МВт
2600
2400
2200
2000
1800
1600
1400
y = 7E-11x 5 - 1E -07x 4 + 9E -05x 3 - 0.0289x 2 + 3.9093x + 1825.7
R2 = 0.3315
1200
0
100
200
300
400
Номер часа
500
600
700
Рисунок 2.4 – График потребляемой мощности на территории операционной зоны
Ростовского РДУ в течение апреля 2011 г.
41
Мощность,
, МВт
2900
2700
2500
2300
2100
1900
1700
y = - 2E -10x 5 + 3E -07x 4 - 0.0002x 3 + 0.0624x 2 - 5.5393x + 2133.8
R2 = 0.1575
1500
0
100
200
300
400
500
600
700
Номер часа
Рисунок 2.5 – График потребляемой мощности на территории операционной зоны
Ростовского РДУ в течение ноября 2011 г.
Если временной ряд ЭП имеет строго периодический или близкий к
нему характер с продолжительностью один год, то составляющие этого ряда
называют сезонными колебаниями (рисунок 2.6). Кривая, которая на рисунке
2.6 иллюстрирует сезонные колебания среднесуточной мощности
,
получена средствами программы «Microsoft Excel» путем аппроксимации
основного
ряда
суточного
электропотребления.
Оценку
сезонной
компоненты и факторов, её обуславливающих, можно осуществить методом
сезонных кривых [96].
Среднесуточная
Мощность Pci, МВт
42
2700
2600
2500
2400
2300
2200
2100
2000
1900
1800
1700
1600
1500
1400
1300
1200
1100
1000
0
200
400
600
номер суток, i
800
1000
1200
Рисунок 2.6 - Сезонные колебания ряда электропотребления на территории операционной
зоны Ростовского РДУ в период с 2009 г. 2011 г.
ЭП представляет собой сложный стохастический процесс и для того,
чтобы понять его природу, следует установить влияющие на этот процесс
факторы. В работе были выделены и рассматривались наиболее
существенные факторы, которые влияют на процесс ЭП:
- сезонность изменений энергопотребления;
- продолжительность светового дня;
- естественная освещенность;
- температура воздуха;
- принадлежность суток к определенному типу дня;
- принадлежность суток к определенному дню недели;
- влажность;
- давление;
- скорость ветра.
Температура окружающей среды. Температура – это фактор, который в
наибольшей степени влияет на электропотребление. Это связано с тем, что
максимальная производительность человека достигается только тогда, когда
соблюдены комфортные для него условия. Наиболее комфортный для
человека диапазон температур от 18 0С до 25 0С (в помещениях специального
43
назначения температура может выпадать из этого интервала.) [97].
Взаимосвязи электропотребления и температуры воздуха для различных
потребителей посвящены работы [98].
Принадлежность суток к определенным дням недели. Уровень ЭП
зависит от особенностей чередования выходных и будних дней, иначе
говоря, от типа дня. Предпраздничные, праздничные и послепраздничные
дни также имеют свои особенности в потреблении электроэнергии. Решение
вопроса об изменении ЭП в зависимости от типа дня представлено в [99].
Освещенность.
Ранее
значения
освещенности
определяли
по
двум
составляющим: облачность и угол наклона солнечных лучей к горизонту. В
настоящее время естественную освещенность определяют при помощи
люксметров или датчиков освещенности в составе станций контроля
освещенности [100].
Отмечена высокая интенсивность изменения освещенности в течение
года, особенно весной и осенью. Её величина может меняться до нескольких
раз в день. В отличие от действия изменения температуры, изменение
освещенности вызывает изменение ЭП уже в течение одного часа:
происходит единовременное включение/отключение осветительной нагрузки.
Следовательно, при одной и той же температуре, но при разной
освещенности значение ЭП может быть различным. Зависимость ЭП от
освещенности в течение года имеет сложный нелинейный характер, поэтому
при выборе временного интервала исследования вышеуказанной взаимосвязи
надо подходить очень избирательно [101, 102].
2.3 Сезонные и метеорологические факторы,
влияющие на электропотребление
Из наблюдений суточных кривых нагрузки
видно, что существуют
определенные закономерности изменения нагрузки в различные часы суток.
На рис . 2.7 показаны типичные кривые нагрузки в летние дни по данным
44
Ростовского регионального диспетчерского управления за одну неделю (с
понедельника по воскресенье) в июне 2009 года, с интервалом дискретизации
1 час , то есть имеется всего 24 точки мощности
в течение одних суток
t = 1, 2, …, 24.
1900
1800
1700
1600
P(t),МВт
1500
1400
понедельник
вторник
среда
1300
1200
четверг
пятница
1100
суббота
воскресные
1000
1
2 3 4
5 6 7
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
t, час суток
Рис. 2.7. Профили суточных графиков часовой нагрузки Ростовского
регионального диспетчерского управления за одну неделю в июне 2009 года.
На самом деле эти изменения нагрузки со временем отражают
цикличность ежедневного образа жизни: рабочее время, время отдыха. Есть
также некоторые другие правила изменения нагрузки во времени. В
выходные дни или праздники нагрузка ниже чем в будние дни, в связи с
уменьшением нагрузки промышленных предприятий.
В начале и конце учебного года также наблюдается существенное
изменение нагрузок. Кроме суточной цикличности наблюдается цикличность
в течение недели и годовая повторяемость графика
используя
и
учитывая
прогнозирования нагрузки.
эти
свойства
можно
улучшить
. Правильно
результаты
45
Погодные факторы включают температуру, влажность, осадки, скорость
ветра, облачность, освещенность и т.д. Изменение погоды приводит к
изменению чувства комфорта потребителя
использованию
некоторых
и, в свою очередь, к
дополнительных
приборов,
таких
как
обогреватели, водонагреватели, кондиционеры и освещение. К погодно
чувствительным
нагрузкам
также
относятся
электроприемники
сельскохозяйственного орошения. В районах, где летом и зимой имеется
большая метеорологическая разница, модели нагрузки могут отличаться для
разных сезонов. Обычно дневная температура является наиболее важной
погодной переменной с точки зрения её воздействия на нагрузку, и поэтому
она чаще всего выбирается в качестве независимой переменной при
краткосрочном прогнозирования нагрузки. Температура в предыдущие дни
также влияет на профиль нагрузки. Например, высокая температура в
течение нескольких дней может привести к накоплению тепла и, в свою
очередь, к новому пику роста потребительского спроса. Влажность также
является важным фактором, поскольку она влияет на комфортность жизни
человека.
Люди
чувствуют
себя
более
некомфортно
при
35°С
и
относительной влажности 70%, чем при 37°С и относительной влажности
50%.
Наибольший интерес для энергосистем представляют наблюдения за
температурой, освещенностью, облачностью, влажностью воздуха,
продолжительностью светового дня, данными о ветровых характеристиках и
др. [103]. В рамках данной работы влияние влажности и давления на ЭП не
рассматривалось, а данные факторы не учитывались при прогнозировании
потребляемой мощности.
При построении математических моделей электропотребления были
попытки учесть в качестве влияющих факторов атмосферную видимость, тип
и количество осадков [104].
46
Наблюдения за большинством характеристик в настоящее время
осуществляются инструментально (температура, влажность и пр.), за
некоторыми явлениями погоды – визуально (облачность).
По результатам наблюдений за ЭП и освещенностью на территории
операционной зоны Ростовского РДУ были установлены станции контроля
освещенности в следующих городах:
- в г. Таганроге (Юго-Западный промышленный узел и населенная
территория Ростовской области);
- в г. Цимлянске (Северо-Восточный промышленный узел и населенный
район Ростовской области) [105].
- в г. Ростов На Дону.
- в г. Элиста.
- в г. Вёшенская.
Рисунок 2.8 - Места установки станций контроля освещенности на территории операционной
зоны Ростовского РДУ
47
Накопление статистических данных имело своей целью установление
взаимосвязей
ЭП
с
освещенностью
и
использование
полученных
зависимостей для прогнозирования суточных часовых графиков ЭП. Кроме
этого, наличие устройств для формирования собственных архивов значений
температуры и освещенности позволяет РДУ быть полностью независимыми
от внешних поставщиков информации. Последнее обеспечило надежное
функционирование при осуществлении краткосрочного и оперативного
прогнозирования ЭП.
2.4 Температура и освещенность: анализ их влияния на
электропотребление в операционной зоне Ростовского регионального
диспетчерского управления
Исследования
температуры.
Как
показано
в
[106,107],
между
потреблением электроэнергии и температурой воздуха имеется существенная
взаимосвязь. На рисунке 2.9 представлены ряд суточных значений ЭП (левая
ось ординат) и ряд суточных значений температур (правая ось ординат) в
течение года.
Среднесуточная Мощность,Pc, МВт
2800
y = -8E-09x5 + 8E-06x4 - 0.0027x3 + 0.3546x2 - 11.846x + 1788.5
R² = 0.6894
40
30
2200
20
1900
10
1600
0
1300
y = 7E-12x5 - 5E-08x4 + 3E-05x3 - 0.0044x2 + 0.0585x + 18.297
R² = 0.8594
1000
1
31
61
мощность
91
температура,
2500
-10
-20
121 151 181 211 241 271 301 331 361
номер суток
температура
Рисунок 2.9 – Среднесуточное электропотребление и среднесуточная температура воздуха с
01.09.2010 г. по 31.08.2011 г. на территории операционной зоны Ростовского РДУ
48
Зависимость ЭП от температуры изображена на рисунке 2.10. Точки
этой зависимости характеризуют период с 1 сентября 2010 г. по 31 августа
2011 г. на территории Ростовского РДУ. Они аппроксимированы линейной
зависимостью и полиномом 5-ой степени:
(2.1)
(2.2)
Рассчитаны коэффициенты детерминации, которые имеют достаточно
высокое значение для полинома R2=0.8465, и меньше значение R2=0.6801 для
линейной зависимости, что указывает на наличие нелинейной взаимосвязи
между ЭП и температурой.
Среднесуточная мощность,Pс (Ѳ),
3000
2500
2000
1500
1000
-10
0
10
20
Температура,Ѳ,
30
40
Рисунок 2.10 - Зависимость суточного электропотребления от среднесуточной температуры с
01.09.2010 г. по 31.08.2011 г. на территории операционной зоны Ростовского РДУ
Влияние температуры воздуха на электропотребление имеет более
определенный характер, чем облачность и освещенность. Зависимости ЭП от
освещенности имеют существенно более неопределенный характер. На
рисунке (2.11, 2.12) представлены примеры полученных зависимостей
49
суточного ЭП от суточной интегральной освещенности для операционной
зоны Ростовского РДУ в течение 2010, 2011 года.
Коэффиценты детерминации для линейной, так и для нелинейной
моделей свидетельствуют о слабых корреляционных связях. Разделение
годовой выборки на сезоны года (рис. 2.13, 2.14, 2.15, 2.16) приводит к
повышению коэффициентов детерминации линейной и нелинейной моделей,
причем, как это видно из рисунка, существенно увеличение коэффициента
для нелинейной модели.
Среднесуточная мощность,
Pc(Ec), МВт
2600
y = -2E-24x 6 + 2E-19x 5 - 1E-14x 4 + 2E-10x 3 - 3E-07x 2 - 0.0174x + 2056.4
R2 = 0.3894
2400
2200
2000
1800
1600
1400
y = -0.0093x + 2052.1
R2 = 0.3542
1200
1000
0
10000
20000
30000
40000
50000
Среднесуточная освещенность, Ec, ЛЮКС
Рис. 2.11 Зависимость среднесуточной мощности от среднесуточной освещенности на
территории операционной зоны Ростовского РДУ в течение 2010 года
60000
50
y = -3E-24x 6 + 5E-19x 5 - 3E-14x 4 + 1E-09x 3 - 1E-05x 2 + 0.0789x + 1963.1
R2 = 0.3578
Среднесуточная
мощность, Pc(Ec), МВт
2600
2400
2200
2000
1800
1600
1400
y = -0.0077x + 2101.9
R2 = 0.3185
1200
1000
0
10000
20000
30000
40000
50000
60000
Среднесуточная освещенность, Ec, ЛЮКС
Рис. 2.12 Зависимость среднесуточной мощности от среднесуточной освещенности на
территории операционной зоны Ростовского РДУ в течение 2011года
2200
Среднесуточная
мощность, Pc(Ec), МВт
2000
y = -2E-19x 5 + 3E-14x 4 - 2E-09x 3 + 6E-05x 2 - 0.8871x + 6419.7
R2 = 0.0786
1800
1600
1400
1200
1000
15000
y = 0.0026x + 1567.5
R2 = 0.0282
20000
25000
30000
35000
40000
45000
50000
Среднесуточная освещенность, Ec, ЛЮКС
55000
Рис. 2.13 Зависимость среднесуточной мощности от среднесуточной освещенности на
территории операционной зоны Ростовского РДУ в течение лета 2011 года
60000
51
y = -2E-23x 6 + 3E-18x 5 - 2E-13x 4 + 4E-09x 3 - 4E-05x 2 + 0.1579x + 1927.2
R2 = 0.5226
2600
Среднесуточная
мощность, Pc(Ec), МВт
2400
2200
2000
1800
1600
1400
y = -0.0143x + 2153.5
R2 = 0.4475
1200
1000
0
4500
9000
13500
18000 22500
27000 31500
36000 40500
45000 49500
Среднесуточная освещенность, Ec, ЛЮКС
Рис. 2.14 Зависимость среднесуточной мощности от среднесуточной освещенности на
территории операционной зоны Ростовского РДУ в течение осени 2011 года
y = 3E-26x 6 + 2E-20x 5 - 3E-15x 4 + 1E-10x 3 - 1E-06x 2 - 0.0039x + 2093.6
R2 = 0.2801
2600
Среднесуточная мощность,
Pc(Ec), МВт
2400
2200
2000
1800
1600
1400
y = -0.0091x + 2144.4
R2 = 0.2337
1200
1000
0
10000
20000
30000
40000
50000
Среднесуточная освещенность, Ec, ЛЮКС
Рис. 2.15 Зависимость среднесуточной мощности от среднесуточной освещенности на
территории операционной зоны Ростовского РДУ в течение весны 2011 года
60000
52
y = -8E-19x 5 + 7E-14x 4 - 2E-09x 3 + 2E-05x 2 - 0.0806x + 2251.3
R2 = 0.2813
Среднесуточная мощность,
Pc(Ec), МВт
2700
2500
2300
2100
1900
1700
y = 0.0074x + 2146.3
R2 = 0.2203
1500
0
5000
10000
15000
20000
25000
Среднесуточная освещенность, Ec, ЛЮКС
30000
35000
Рис. 2.16 Зависимость среднесуточной мощности от среднесуточной освещенности на
территории операционной зоны Ростовского РДУ в течение зимы 2011 года
Характер
распределения
точек
суточного
электропотребления
в
зависимости от освещенности показывает, что электропотребление имеет
значительный разброс точек относительно кривых линейной и нелинейной
регресии.
2.5 Случайные возмущения
Современная энергосистема состоит из многочисленных потребителей
электроэнергии. Хотя невозможно предсказать, как каждый отдельный
пользователь потребляет энергию, суммарная нагрузка большого числа малых
потребителей отвечает статистическим закономерностям что, в свою очередь,
приводит к повторяемости формы кривой нагрузки. Но запуски и завершения
работы больших потребителей нагрузок, таких как сталелитейные заводы,
электродные заводы, всегда приводит к импульсам в кривой нагрузки
.
Это случайные возмущения, так как для диспетчеров время запуска и
завершения работы этих
потребителей
вполне случайное, то есть нет
очевидного правила когда и как они получают энергию от сети. Когда данные
53
о такой нагрузке используются в обучении моделей при прогнозировании
нагрузки,
случайные импульсные составляющие нагрузки добавляют
сложности в процесс прогнозирования нагрузки. Существуют также события,
которые известны заранее, но влияние которых на нагрузку не совсем
определено. Такие события являются еще одним источником случайного
возмущения. Типичное специальное событие, например, матч чемпионата
мира по футболу в ночное время, который, как знают диспетчеры, вызовет
увеличение использования телевидения, но невозможно дать точную оценку
прироста мощности. Примерами
других типичных событий являются
забастовки и управление правительством спроса вследствие прогнозируемого
дефицита электроэнергии.
2.6 Выводы
В данном разделе изучен ряд факторов, влияющих на ЭП. В его состав
входят температура окружающей среды, естественная освещенность. В
результате получены ниже следующие выводы.
1.
Установлено,
что
при
нелинейной
аппроксимации
зависимости
среднесуточной температурой от суточного ЭП коэффициент детерминации
выше.
2. Связи между электропотреблением, температурой воздуха и естественной
освещенностью
имеют
нелинейный
характер,
что
указывает
на
необходимость использования таких математических методов и моделей
прогнозирования
электропотребления,
которые
позволяют
учитывать
нелинейный характер взаимосвязей электропотребления с влияющими на
него факторами.
3. Связь между электропотреблением и освещенностью зависит от времени
года (сезона), что видно по различным коэффициентам детерминации для
разных сезоннов.
54
3. РАЗРАБОТКА МОДЕЛЕЙ КРАТКОСРОЧНОГО
ПРОГНОЗИРОВАНИЯ ЭЛЕКТРОПОТРЕБЛЕНИЯ НА ОСНОВЕ
НЕЙРОННЫХ СЕТЕЙ И ЭВОЛЮЦИОННЫХ АЛГОРИТМОВ
3.1 Краткосрочное прогнозирование нагрузки с помощью
искусственных нейронных сетей
Многослойный персептрон ИНС
сегодня является одной из самых
широко распространенных моделей нейронной сети благодаря своей
способности отражать сложные нелинейные отношения между входными и
выходными параметрами[67, 108, 34]. Сеть состоит из нескольких слоев
нейронов и весовых коэффициентов, отражающих связи между ними.
Передача информации осуществляется на основе прямого распространения.
Представленная на рис. 3.1 модель состоит из одного входного слоя, одного
скрытого слоя и одного выходного слоя, так как именно ИНС
такого типа
позволяет решать практически любые задачи с нелинейными отношениями.
W12
W23
3
1
X
2
Y
Рис. 3.1. Нейронная сеть многослойного персептрона
На рисунке 3.1: «Х» - входной вектор; «W12 » - вектор весов между входным
и скрытым слоями; «W23» - вектор весов между скрытым и выходным слоями
55
; «Y» - выходной вектор (конечный результат). Количество нейронов
скрытого слоя и функция активации являются параметрами, с помощью
которых осуществляется подстройка сети и минимизируется погрешность
моделирования.
Обучение ИНС
проводится для аппроксимации нелинейной функции
к прогнозируемой нагрузке (нагрузке на один час или на один день вперед) и
входным переменным.
На первоначальном этапе была исследовался модель ИНС для
прогнозирования электрической нагрузки на один день вперед, которая
имела следующие параметры [108] :
• количество слоев - 3 (входной слой, скрытый слой, выходной слой);
• количество нейронов в скрытом слое - 24;
• количество нейронов в выходном слое - 24;
• функция активации скрытого слоя - а) тангенциальная, б) прямолинейная;
• алгоритм обучения - обратное распространение;
• скорость обучения (α) - 0.3;
• коэффициент импульса - 0.3;
• количество входных переменных: 24 значения графика фактической
мощности
в предыдущие сутки; 24 значения графика фактической
температуры
в предыдущие сутки; 24 значения графика фактической
освещенности
в предыдущие сутки; 24 значения прогнозного суточного
графика температуры
освещенности
; 24 значения прогнозного суточного графика
;
• Количество выходных переменных:
графики
24 точки прогнозного суточного
;
• количество наборов данных в каждой эпохе - 20;
• количество эпох обучения - 5000;
Результаты прогнозирования для тангенциальной и прямолинейной функций
активации приведены на рисунке 3.2.
56
фактическая мощность
2600
прогнозная мощность
2500
Мощность, МВт
2400
2300
2200
2100
2000
1900
1800
1700
1
3
5
7
9
11
13
Время, час
15
17
19
21
23
(а) тангенциальная функция активации (погрешность 8.2016 %)
фактическая мощность
прогнозная мощность
2600
Мощность, МВт
2500
2400
2300
2200
2100
2000
1900
1800
1
2
3
4
5
6
7
8
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Время, час
(б) прямолинейная функция активации (погрешность 5.1029 %)
Рис. 3.2. примеры прогнозирования суточного графики с помощью ИНС
а) тангенциальная функция активации; б) прямолинейная функция активации
57
Видно из результатов, что средняя погрешность в процентах для варианта
архитектуры
с
24
скрытыми
нейронами
с
функциями
активации
"тангенциальная" и "прямолинейная" составила соответственно 8.2016% и
5.1029 %.
Изменения функций активации и количества нейронов не
оказывали существенного влияния на точность прогнозирования нагрузки.
Минимальная средняя погрешность составила 5.1029 % для сети из 24
скрытых нейронов с функцией активации "прямолинейная".
3.2 Краткосрочное прогнозирование нагрузки с использованием
искусственных нейронных сетей и алгоритма роя частиц
Для решения задачи краткосрочного прогнозирования нагрузки выбран
подход, основанный на использовании
искусственной нейронной сети
(ИНС). Прогнозы нейронной сети довольно точны для будних дней, субботы
и воскресенья; но прогнозы для праздничных дней требуют пересмотра и
модификации. Следует отметить, что оптимизация архитектуры нейронной
сети, включая выбор количества входных переменных и слоев сети,
количества нейронов в скрытом слое, с целью повышения точности
прогнозирования обретает все большую важность и актуальность. В
настоящее время нет единого достоверного метода определения количества
нейронов скрытого слоя. Обычно количество нейронов определяется
методом проб и ошибок. Для получения оптимальной по структуре и
размерам нейронной сети и связующих весовых коэффициентов с целью
прогнозирования электрической нагрузки на один день вперед может
использоватьтся оптимизация методом роя частиц (РЧ) [67].
В этом исследовании предлагается подход к моделированию больщих
нейронных сетей с использованием алгоритма
РЧ для краткосрочного
прогнозирования нагрузки.
Было проведено сравнение эффективности предлагаемого метода и
результатов прогнозирования, полученных с помощью традиционой модели
58
нейронной сети на основе обратного распространения (рис. 3.1). В настоящее
время существует множество алгоритмов для обучения нейронных сетей с
прямой связью - алгоритм обратного распространения ОР [95], генетический
алгоритм (ГА) [109], метод роя частиц (РЧ) [110], [111], [112].
Для обучения нейронных сетей с прямой связью наиболее часто
используется алгоритм ОР, который является градиентным методом.
Несмотря на то, что алгоритм ОР помогает решить ряд практических
проблем, он может легко попасть в ловушку локальных минимумов, и в итоге
обратное распространение приведет к ошибке при поиске глобального
оптимального решения. Во-вторых, скорость сходимости алгоритма ОР
слишком мала, даже если в результате обучения может быть достигнута
желаемая ошибка. Важной проблемой, на которую следует обратить
внимание, является высокая зависимость сходимости алгоритма ОР от
выбранных первичных значений весовых коэффициентов сети, а так же от
параметров алгоритма - скорости обучения и импульса. С целью повышения
производительности исходного алгоритма ОР исследователи уделили
пристальное внимание двум факторам: (1) выбор наилучшей целовой
функции; (2) выбор динамической скорости обучения и импульса. Однако
внесенные улучшения не помогли устранить недостатки алгоритма ОР,
связанные с попаданием в ловушку локальных оптимумов. При усложнении
структуры нейронных сетей с прямой связью, ее скорость сходимости еще
больше замедляется [112]. Благодаря своей эвристичности и стохастичности
они с меньшей вероятностью попадают в ловушку локальных минимумов
[113].
Большинство
эволюционных
методов
используют
следующую
процедуру:
1. Случайное генерирование исходной выборки.
2. Расчет значения качества для каждого объекта. Оно напрямую зависит от
расстояния до оптимума.
3. Воспроизведение выборки на основе значений качества.
59
4. Если требования удовлетворены, остановка. Если нет, возврат к пункту 2.
В работе [109] для целей краткосрочного прогнозирования нагрузки
была предложена методика ГА, основанная на методе ИНС. ГА более
уместными для поиска глобального решения проблемы. Помимо этого, эти
методы
используют
простые
скалярные
критерии
для
измерения
эффективности, для которых не требуется производная информация, поэтому
они являются универсальными методами оптимизации для решения задач
поиска.
В работе [110] РЧ используется для получения оптимальной
нейронной сети и весовых коэффициентов с целью прогнозирования
электрической нагрузки на один день вперед. Данный метод предложен для
оптимизации синтеза таким образом, чтобы был гарантирован глобальный
оптимум, и была значительно улучшена скорость сходимости алгоритмов.
Согласно критериям производительности алгоритм оптимизации методом РЧ
используется для глобальной оптимизации архитектуры крупных нейронных
сетей.
3.2.1 Анализ и предварительная обработка данных
В данном исследовании использованы данные почасовой нагрузки,
предоставленные филиалом ОАО "СО ЕЭС" Региональное диспетчерское
управление энергосистемами Ростовской области и республики Калмыкии
(Ростовское РДУ) за период с 1 июня 2009г. по 26 января 2012г.
Выполнение действий по предварительной обработке входных параметров
сети и целевых показателей помогает повысить эффективность обучения
сети. Как правило, рекомендуется масштабирование входных параметров с
целью приведения их в пределы определенного диапазона. А использование
прямолинейной функции для скрытых слоев помогает улучшить результаты
прогнозирования [108]. При высокой размерности входного вектора,
компоненты вектора могут характеризоваться высокой степенью корреляции.
60
В таких случаях необходимо уменьшить размерность входных векторов. В
данной работе применена стандартная нормализация, т.е. приведение к
диапазону [-1, 1].
3.2.2 Количество слоев, нейронов и передаточных функций
В зависимости от характера задачи к различным слоям сети могут быть
применены различные передаточные функции. Использование сигмоидных и
тангенс-гиперболических
передаточных
функций
в
скрытых
слоях
стабилизирует выходные значения нейронов в пределах диапазонов [-1, 1].
Таким образом, процесс обучения защищается от сбоев, которые могут быть
вызваны высокой разрозненностью значений.
Была выстроена трехслойная сеть с одним скрытым слоем. Выходной
слой содержит 24 нейрона, чтобы обеспечить возможность прогнозирования
на 24 часа вперед. Помимо этого, в скрытом слое была использована
прямолинейная функция, которая показала лучшее результаты [108].
Количество нейронов в скрытом слое определяет способность сети к
обучению, и определение их количества является ключевым при построении
оптимальной структуры сети. Если их слишком мало, сеть будет не способна
выявлять сложные отношения между входными и выходными значениями, и
могут возникнуть трудности при сходимости в ходе обучения. Если их
слишком много, процесс обучения будет длиться дольше, и может пагубно
повлиять на способности ИНС. Количество варьируется в зависимости от
цели и размера обучающей выборки, а также от количества входных
переменных. Размер скрытого слоя и число нейронов в его составе
подбираются произвольно или методом проб и ошибок. В этом исследовании
для определения оптимального количества нейронов скрытого слоя
предлагается
оптимизация
методом
роя
предлагаемого метода показана на рис. 3.3.
частиц
[110].
Блок-схема
61
начало
генерация начального числа
нейронов в скрытом слое(nh)
nh=nh+1
Обучение ИНС с помошью РЧ
оценки параметров ИНС на
тестовой выборке
расчет и сохранение
nh < m
Нет
да
nh=nh
конец
Рис. 3.3 Блок-схема алгоритма определения количества нейронов скрытого
слоя
3.2.3 Обучение выстроенных нейронных сетей
Обучение нейронной сети - это процесс определения параметров сети
(весовых коэффициентов) для достижения заданной цели на основе
имеющихся
примеров,
которые
формируют
обучающую
выборку.
Использование ИНС для решения задачи STLF может быть двух видов в
зависимости
от
выбранной
стратегии
контролируемого
или
62
неконтролируемого обучения. Контролируемое обучение основано на
прямом сравнении входных и выходных параметров. Оно направлено на
минимизацию средней квадратичной погрешности между фактическими и
целевыми выходными значениями, суммированными по всем имеющимся
данным. Неконтролируемое обучение основывается исключительно на
корреляциях между входными параметрами. В процессе обучения нет
никакой информации о «правильности результата».
В данной работе используются ИНС с контролируемым обучением.
3.2.4 Архитектура ИНС для Ростовского РДУ
При построении архитектуры нейронной сети для прогнозирования
нагрузки возникает ряд непростых задач. Одной из таких задач является
выбор входных переменных и такой структуры сети, которая обеспечит
приемлемые точность прогнозирования и время обучения сети. Например,
сеть со слишком большим количеством скрытых нейронов запомнит
обучающие данные вместо связывающих их общих отношений, и при вводе
новых данных ее эффективность будет низкой. Обучающая выборка и
эффективный и надежный алгоритм обучения также имеют очень большое
значение. В настоящее время нет единой систематической методологии по
оптимальному построению и обучению искусственной нейронной сети.
Поэтому приходится действовать методом проб и ошибок. Данная работа
обобщает результаты экспериментов по построению оптимальной структуры
приложения по прогнозированию нагрузки на основе нейронной сети.
Предложен систематический подход к решению этих проблем. Он применен
для построения программного обеспечения, прогнозирующего нагрузку для
Ростовского РДУ на основе исторических данных [108].
Разработка
искусственной
нейронной
сети
для
прогнозирования нагрузки выполняется в 5 шагов [108]:
1. Выбор входных переменных.
краткосрочного
63
2. Построение структуры нейронной сети.
3.
Определение объемов выборок данных для обучения, тестирования и
валидации.
4. Обучение построенной нейронной сети.
5. Валидация построенной нейронной сети.
3.2.5 Выбор входных переменных
Одним
из
ключевых
факторов
при
разработке
оптимальной
архитектуры ИНС является выбор релевантных входных переменных из
числа факторов, влияющих на нагрузку. Эти факторы могут варьироваться
для разных РДУ в зависимости от характеристик нагрузки. Однако, есть
несколько
факторов,
которые
используются
повсеместно.
Для
краткосрочного прогнозирования нагрузки входные переменные можно
разделить на сведения о времени, электрической нагрузке и погоде.
Информация о времени может включать время года, день недели и время дня.
Информация о нагрузке может включать сведения о предыдущей нагрузке.
Информация о погоде может включать значения температур прошлого и
будущего периодов, облачность, освещенность скорость и направление
ветра, влажность и осадки[114,115, 116]. Нагрузка постоянно меняется от
часа к часу, от дня к дню. С другой стороны, нагрузка в каждый конкретный
час может зависеть не только от нагрузки в предыдущий час, но также от
нагрузки в тот же час в предыдущий день и от нагрузки в тот же час и в тот
же день на предыдущей неделе.
До сих пор не было никаких общих
инструкций по выбору входных параметров при построении архитектуры
ИНС для решения задачи STLF. Тем не менее, наиболее важными входными
параметрами являются данные об исторической нагрузке и температуре, что
отмечается
в
работах
[114,
117,
118],
а
также
подтверждается
исследованиями, выполненными автором настоящей работы для Ростовского
РДУ [67, 108].
64
Для зон с умеренным климатом этих данных и других соответствующих
данных (напр., о времени) будет достаточно для построения оптимальной
модели прогнозирования кратковременной нагрузки. Однако для зон с
экстремальными погодными условиями, с повышенной влажностью или с
активной
грозовой
деятельностью
дополнительные погодные факторы.
прогноз
должен
учитывать
Предложенная в данной работе
архитектура ИНС основана на данных о предыдущих нагрузках, времени
года, дне, температуре в предыдущий день, прогнозе температуры,
освещенности предыдущего дня и прогноза освещенности. Блок-схема
предложенной для Ростовского РДУ архитектуры ИНС приведена на Рис. 3.4.
Количество нейронов входного и выходного слоев определяется на основе
количества входных и выходных переменных. Узлы входного слоя
используются для распределения входных сигналов к нейронам скрытого
слоя и не являются фактическими нейронами. В общей сложности входной
слой содержит 120 нейронов. Структура показана на рис.3.4 представлена в
двух вариантах модели : а) для рабочих суток; б)для выходных дней.
Вход
120
входной
слой
0
0
0
0
.0
.
.
.
.
.
0
0
0
0
весна
весна
лето
лето
осень
зима
Осень
ь
скрытый слой
зима
0
0
0
0
.0
..
..
.
.
.
0
0
0
0
Прогноз
нагрузки 24
выходной
слой
Скрытый слой
Рис. 3.4 Блок-схема предложенной архитектуры ИНС
65
В [37] для Ростовского РДУ была предложена ИНС, содержащая 148 входов.
В предлагаемой новой модели количество входных переменных ИНС 120.
3.2.6 Построение структуры нейронной сети
Для построения многослойной сети с прямой связью необходимо
определить количество скрытых слоев, тип связи между слоями, количество
нейронов в каждом слое и функцию активации нейронов.
В данной работе выборона полносвязная сеть с одним скрытым слоем,
выходной и скрытый слои имеют прямолинейную функцию активации с
целью устранения дополнительных ошибок при экстремальных прогнозах по
причине насыщения функции активации [108].
Количество нейронов в скрытом слое влияет на способность сети к
обучению, и определение их количества является ключевым при построении
оптимальной структуры сети.
Количество варьируется в зависимости от цели и размера обучающей
выборки, а также от количества входных переменных. Размер скрытого слоя
и число нейронов в его составе подбираются произвольно или методом проб
и ошибок.
3.2.7 Выборка данных для обучения, тестирования и валидации
Сбор обучающих данных очень важен для достижения целевой
эффективности
ИНС
при
решении
задачи
STLF.
для
высокой
производительности сети обучающие данные должны быть репрезентативны
и нормализованы.
После преобразования входные и выходные данные нейронной сети
принимают значения в интервале [-1, 1]. Таким образом может быть
увеличена скорость сходимости обучения, и исключено переполнение
66
расчетов. Нормализация данных может быть рассчитана с помощью
следующих формул:
X iN, j 
где
max( xi )  min( xi )
)
2
max( xi )  min( xi )
(
)
2
xi  (
xi , j
-
это
(3.1)
,
фактические
почасовые
температура/нагрузка
и
нормализованные значения -го дня и -го часа, соответственно; X iN, j
это нормализованные значения
нейронной
сети.
-го дня и
-го часа входных данных
max( xi ) , min( xi ) обозначает
максимальную
температуру/нагрузку и минимальную температуру/нагрузку
-го дня,
соответственно. Выходные значения обучения нормализуются таким же
образом. Данные делятся на четыре группы, которые соответствуют четырем
сезонам. Данные по каждому сезону затем снова делятся на две группы в
зависимости от кластера времени суток.
Данные по каждому кластеру
делятся на три части - выборку для обучения, тестирования и валидации.
Выборки для тестирования и валидации не используются для обучения; их
целью является анализ ошибок, допущенных ИНС после обучения [109].
Преимуществами РЧ считается легкость в использовании и тот факт,
что не требуется знать точного градиента. Данный алгоритм может
использоваться для решения множества различных задач оптимизации;
например, для обучения нейронной сети и минимизации функции. Основные
определения метода РЧ:
1) Каждая частица i обладает следующими характеристиками: текущее
положение
в пространстве поиска
pi
, текущая скорость vi
и
индивидуальное оптимальное положение в пространстве поиска p o .
2) Индивидуальное оптимальное положение p o - это такое положение в
пространстве поиска, при котором погрешность частицы i минимальна в
67
соответствии с параметрами целевой функции ƒ в ходе решения задачи
минимизации.

3) Глобальное оптимальное положение обозначается p g . Это положение pi
с минимальной погрешностью всех частиц.
Формулы, приведенные ниже, основаны на предположении о том, что рой
состоит из отдельных частиц. Таким образом, i
1,…, s, где s количество
частиц.
 p (t ), если f ( p i (t ))  f ( p i (t  1))
p i (t  1)   i
 p i (t  1), если f ( p i (t ))  f ( p i (t  1))
,
(3.2)
При каждой итерации положение каждой частицы роя изменяется в
соответствии с (3.4).
Каждая частица определяется ее собственной скоростью полета
положением в пространстве поиска. Предположим, что d - размерность в
пространстве поиска; m - количество частиц, образующих популяцию.
Текущее положение i-й частицы в
d -мерном
пространстве поиска
определяется d -мерным вектором pi  ( pi1 , pi 2 ,..., pid ), i  1,2,..., m . Скорость
полета i-й частицы в d -мерном пространстве поиска, обозначается как
vi  (vi1 , vi 2 ,..., vid ) , оптимальное положение i-й частицы в процессе поиска
выражается как pо  ( pо1 , pо 2 ,..., pod ) , глобальное оптимальное положение
всей популяции будем обозначать как p g  ( p g1 , p g 2 ,..., p gd ) .
Для обновления скорости частицы и ее положения используется
следующие соотношения:
vid  wvid  c1r1 ( pоd  pid )  c2 r2 ( pgd  pid ) ,
pi (t  1)  pi (t )  vid (t  1) ,
(3.3)
(3.4)
где, w - весовой коэффициент инерции; c1 и c 2 - две неотрицательных
константы, называющиеся ускорениями; r1 и r2 случайные числа в диапазоне
[0, l]. Коэффициенты ускорения c1 и c 2 регулируют дальность перемещения
68
частицы за одну итерацию. Обычно значения коэффициентов принимаются
равными 2, хотя, как было доказано, при c1 ≠ c 2 сеть демонстрирует высокую
эффективность [119]. Весовой коэффициент инерции ω в формуле (3.3)
используется для регулирования сходимости РЧ. Низкие значения ω
приводят к ускорению сходимости, близкой к условно оптимальной, а
слишком высокие значения могут препятствовать сходимости. Как правило,
значение весового коэффициента инерции ω задается на основе формулы:
   max 
 max   min
iter max
(3.5)
iter ,
где itermax - максимальное число итераций, а
iter
- текущий порядковый
номер итерации. Система РЧ объединяет два элемента: социальный и
познавательный. Эти элементы представлены в формуле коррекции скорости
(3.3).
Второй
член
формулы
коррекции
скорости
ассоциируется
с
познавательным элементом, так как учитывает только собственный опыт
частицы. Третий член формулы коррекции скорости отражает социальные
взаимодействия между частицами.
Это
означает,
что
частицы
пренебрегают
собственным
опытом
и
корректируют свое поведение с учетом представлений соседних частиц об
успешном
положении
использования алгоритма
[112].
Подробная
блок-схема
процесса
РЧ для обучения и тестирования ИНС
предложенной архитектуры приведена на рис. (3.5).
Качество i -й частицы выражено посредством средней квадратичной ошибки
выходного результата нейронной сети:
f ( xi ) 
1
N
N
[
K 1
1 O
{Tkl  Pkl ( xi )}2 ],
O l 1
( 3.6)
где ƒ - это значение целевой функции, Tkl - целевой результат; Pkl прогнозируемый результат на основе wi , N - количество обучающих
выборок и О - количество нейронов выходного слоя. Уравнение (3.6)
выполняет роль целевой функции для определения параметров модели РЧ.
69
Начало
Случайная
генерация
популяции частиц с
переменными весом
и скоростью каждой
частицы
Оценка начальной
популяции и
инициализация
наилучших
производительности
и соседства
Обновить скорости
частиц, используя
лучший личный
рекорд и лучший
рекорд соседства,
используя уравнение
(3.3)
Получить позиции
частиц, используя
уравнение (3.4)
Определение
параметров нового
роя
да
Номер итерации
i≤N
нет
Получение
оптимальных
весовых значений
и скорости
Конец
Рис. 3.5. Блок-схема процесса выработки оптимальных параметров ИНС для
обучения
70
3.2.8 Результаты моделирования
Средой моделирования является MALAB2011a. Исходные данные
взяты из статистических показателей по Ростовской области за период с
2009 – 2012 г. , выходные данные представляют данные нагрузки на день
прогнозирования. Результаты прогнозирования и фактическая нагрузка на
одни
сутки
в
разные
сезоны
года
и
данные
по
погрешностям
прогнозирования в виде средней абсолютной ошибки (MAPE) в процентах
показаны на рис. 3.6.
Мощность, МВт
фактическая мощность
прогнозная мощность
2000
1900
1800
1700
1600
1500
1400
1300
1200
1
3
5
7
9
11
13
15
17
19
21
23
Время, час
а) Пример прогнозирования на 31.08.2011(MAPE = 2.24%)
71
фактическая мощность
прогнозная мощность
Мощность, МВт
2900
2800
2700
2600
2500
2400
2300
2200
2100
2000
1
3
5
7
9
11
Время,час
13
15
17
19
21
23
б) Пример прогнозирования на 26.01.2012 (MAPE= 2.95%)
фактическая мощность
Мощность, МВт
2000
1900
1800
1700
1600
1500
1400
1300
1200
1
3
5
7
9
11 13
Время, час
15
17
19
21
23
в) Пример прогнозирования на 31.05.2011(MAPE = 2.782%)
72
Мощность, МВт
фактическая мощность
прогнозная мощность
2600
2500
2400
2300
2200
2100
2000
1900
1800
1
3
5
7
9
11
13
15
17
19
21
23
Время, час
г) Пример прогнозирования на 30.11.2011(MAPE = 2.673%)
Рис. 3.6 Фактические и прогнозные графики нагрузки в различные сезоны
года
3.3 Обучение ИНС на основе самоорганизации
В работах, посвященных прогнозированию нагрузки, предлагаются
различные
способы
кластеризации
данных.
Однако,
большая
часть
предложенных методов не имеет достаточного обоснования и носит
интуитивный характер. Huang и др. разбили год на четыре кластера по
сезонам года [120]. Iizaka и др. разделили дни года на весенние и летние
[121], т.е. на два кластера В данной работе предлагается
метод
самоорганизующейся карты (SOM) для разбивки ежедневных нагрузок в
течение года (входные данные) на кластеры по определенным признакам их
сходства. Для каждого кластера данных была разработана своя модель ИНС
для прогнозирования почасовой нагрузки. Для оценки эффективности
предложенных
результатами,
моделей
полученные
полученными
на
основе
результаты
сравнивались
некластеризованных
Выявлено, что предложенная гибридная модель более эффективна.
с
данных.
73
3.3.1 Массив данных для исследования
В данном исследовании использованы данные почасовой нагрузки,
предоставленные Ростовским региональным диспетчерским управлением.
Как видно на рис. 3.9, 3.10, 3.11, нагрузка изменяется по-разному в разное
время ото дня ко дню.
Мощность, МВт
мощность (КвТ)
2600
2400
2200
mm (КвТ)
2000
1800
1600
1400
1200
1
51
101
151
сутки
201
251
301
351
Рис. 3.7. Среднесуточная нагрузка за период от 01.06.2009г. до 31.05.2010г.
Мощность, МВт
2600
2400
2200
2000
1800
1600
1400
1
51
101
151
сутки
201
251
301
351
Рис. 3.8. Среднесуточная нагрузка за период от 01.06.2010г. до 31.05.2011г.
74
Мощность, МВт
2600
2400
2200
2000
1800
1600
1400
1200
1
51
101
151
сутки
201
251
301
351
Рис. 3.9. Среднесуточная нагрузка за период от 1.6.2011г. до 26.1.2012г.
Вышеприведенные рисунки показывают распределение нагрузки по
дням в течение трех лет периода исследования.
Как видно из рисунков, нагрузка изменяется по-разному в разные
периоды от года к году. В начале весны (которая длится с марта по май)
наблюдается снижение нагрузки, но потребление электроэнергии возрастает
по мере похолодания и приближения зимы. Таким образом, разбивка дней
года на группы в зависимости от значений нагрузки способствует
повышению точности прогнозирования.
3.3.2 Кластеризация с помощью самоорганизующихся карт
Группировка данных в большинстве исследований, посвященных
прогнозированию
краткосрочной
нагрузки,
выполнялась
интуитивно,
исторические данные были привязаны только к календарным датам [122128]. По факту, нагрузки для каждого временного интервала даже в течение
одного и того же дня недели от недели к неделе не совпадают из-за
праздников, особых дней, и пр. Именно поэтому было принято решение
75
использовать
самоорганизующуюся
карту
(SOM)
для
кластеризации
исторических данных с целью повышения точности прогнозирования [129].
Кластеризация заключается в разбиении данных на ряд кластеров Qi , i  1,...., C .
Кластеризация считается оптимальной, если при разбиении удается добиться
минимальных расстояний внутри кластера и максимальных - между
кластерами [130]. SOM обычно состоит из двухмерной (2D) сетки ячеек.
Каждая ячейка представлена вектором-прототипом mi  [mi1 ,....., mid ] , в котором
d
- это значение размерности входного вектора. Отношения соседства
соединяют каждую ячейку с близлежащими ячейками. Число элементов
карты, может быть от нескольких десятков до нескольких тысяч, является
показателем точности SOM и ее способности к обобщению. В процессе
обучения SOM производит эластичное свертывание сети на «облако»,
сформированное из входных данных. Затем, точки, расположенные рядом во
входном
пространстве
данных,
попадают
в
соседние
ячейки
на
самоорганизующейся карте. Следовательно, SOM может рассматриваться как
проецирование входного пространства в двумерное пространство карты с
сохранением
топологии.
самоорганизующейся
карты.
На
рисунке
Обучение
3.12
приведен
самоорганизующейся
пример
карты
происходит итерационно. Сначала на каждом шаге обучения из массива
входных данных x произвольно выбирается эталонный вектор. Затем
вычисляются расстояния между векторами и векторы-прототипы. Ячейка
наибольшего совпадения, здесь обозначенная как b - это ячейка карты с
прототипом, наиболее близким к x :
x  mb  min i  x  mi
,
(3.7)
76
Рис. 3.10. Структура самоорганизующейся карты на основе ИНС
Векторы-прототипы
затем
обновляются.
Ячейка
наибольшего
совпадения и ее топологические соседи перемещаются ближе к входному
вектору во входном пространстве.
В данном исследовании значение размерности входного вектора d
принимается равным 72, т.е. вектор состоит из 72 входных элементов,
почасовой нагрузки, почасовой температуры, почасовой освещенности.
Количество ячеек карты i варьируется в зависимости от количества
кластеров. Единого правила по определению количества кластеров не
существует. Однако, Vesanto и Alhoniemi предложили диапазон от 2
кластеров до
Алгоритм
N , где N - это количество образцов в выборке данных [131].
использованный
SOM,
в
данной
работе,
минимизирует
следующую функцию ошибки:
2
C
E    hb x  mk ,
(3.8)
K 1 xQk
где
C
-
количество ячеек карты; hb - ядро окрестности, которое
центрируется в ячейке b , которая является ячейкой наибольшего совпадения
вектора x , и вычисляется для ячейки k .
По причине большой разницы между значениями входных переменных
входные данные должны быть нормализованы. В данном исследовании была
применена стандартная нормализация [-1, 1].
77
3.3.3 Обучение самоорганизующихся карт
SOM была обучена с помощью алгоритма пошагового обучения в
произвольном порядке. Все векторы обучения (или последовательности) для
каждой эпохи предъявляются один раз в произвольном порядке, а значения
сети, весовых коэффициентов и смещений обновляются по результатам
каждого индивидуального предъявления. Обучение прекращается при
выполнении любого из перечисленных ниже условий:
 Достижение максимального количества итераций (эпох).
 Минимизация производительности в соответствии с целью.
 Превышение лимита времени.
Сначала сеть выявляет нейрона-победителя, затем с каждым шагом
обучения весовые коэффициенты нейрона-победителя, а также близлежащих
нейронов
перемещаются
ближе
ко
входному
вектору.
Весовые
коэффициенты нейрона-победителя изменяются пропорционально половине
скорости обучения.
Далее измеряются скорость обучения и мера соседства, чтобы
определить какие нейроны из ближайшего окружения нейрона-победителя
изменились в течение двух фаз обучения [131]. В данном исследовании
обучение сети состояло из 5000 эпох.
3.3.4 Результаты кластеризации и прогнозирование
Данные были разделены на четыре кластера с высокой степенью
корреляции внутри каждого кластера, в остальном их характеристики схожи.
В следующем разделе продемонстрировано, что использование кластеризованных данных существенно повышает точность прогнозирования.
По
завершении
кластеризации
данных
можно
приступать
к
прогнозированию электрической нагрузки на следующий день с помощью
78
нейронных сетей с прямой связью. Нейронные сети с прямой связью, будучи
популярным инструментом для общей нелинейной аппроксимации, не всегда
могут быть эффективны для прогнозирования нагрузки из-за большого
разнообразия входных данных. Поэтому для ИНС были использованы
кластеризованные входные данные (полученные с помощью
SOM).
Соответственно для четырех кластеров данных были построены четыре ИНС,
как показано на рисунке 3.11.
Исходные данные
Образец классификатор
ИНС 2
ИНС 1
ИНС 3
ИНС 4
прогнозирование
Результат
Рис. 3.11 Модель нейронной сети, основанная на кластеризации SOM
3.3.5 Предварительная обработка данных
Выполнение
действий
по
предварительной
обработке
входных
параметров сети и целевых показателей помогает повысить эффективность
обучения сети. Как правило, рекомендуется масштабирование входных
параметров и целей для их приведения в пределы определенного диапазона.
В случаях высокой размерности входного вектора, компоненты вектора
могут характеризоваться высокой степенью корреляции. В таких случаях
необходимо уменьшить размерность входных векторов. Для этих целей
эффективно используется метод главных компонент [93]. Использование
79
метода главных компонент позволяет: а) ортогонализировать компоненты
входного вектора, чтобы они не коррелировали;
б) упорядочить
ортогональные компоненты (фактически, главные компоненты) ставя вперед
компоненты
с
наибольшей
вариацией;
в)
исключить
компоненты,
оказывающие наименьшее влияние на вариацию выборки данных.
3.3.6 Количество слоев, нейронов и передаточных функций
В зависимости от характера задачи к различным слоям сети могут быть
применены различные передаточные функции. Использование сигмоидных
передаточных функций в скрытых слоях стабилизирует выходные значения
нейронов в пределах диапазонов [ -1, 1], таким образом защищая процесс
обучения от сбоев, которые могут быть вызваны высокой разрозненностью
значений.
В этом исследовании была построена двухслойная сеть с одним
скрытым слоем. Для определения оптимального количества нейронов
скрытого слоя, был рассмотрен диапазон от 1 до 50 нейронов.Выходной слой
содержит 24 нейрона, чтобы обеспечить возможность прогнозирования на 24
часа вперед.
Помимо этого, в скрытом слое была использована
логистическая сигмоидная передаточная функция.
3.3.7 Алгоритм обучения сети
Обучение осуществляется путем упорядоченного изменения весовых
коэффициентов с помощью соответствующего метода, обычно именуемого
алгоритм обучения (или формула обучения). При предъявлении входных
данных
сети
формула
обучения
пытается
скорректировать
весовые
коэффициенты таким образом, чтобы было получено желаемое выходное
значение. В данном исследовании для обучения ИНС используется метод
градиентного спуска с обратным распространением.
80
3.3.8 Критерии эффективности
В качестве критериев выступают примерные оценочные значения
погрешности прогнозирования - оценивается разница между выходными
значениями искусственной нейронной сети и известными целевыми
значениями всех алгоритмов обучения. Наилучшей моделью считается та,
оценочная погрешность которой имеет минимальное значение. В литературе
используются различные критерии эффективности. В данной работе для
оценки обучающих и тестовых выборок используется средняя абсолютная
погрешность в процентах (MAPE).
(3.9)
где Pi,kпрогн, Pi,kфакт – прогнозное и фактическое значения мощности для i-го
часа k-х прогнозируемых суток; N – количество дней для тестирования.
3.3.9 Результаты моделирования
Как упоминалось ранее, прогнозирование нагрузки сети на один день
вперед осуществлялось путем построения четырех нейронных сетей с прямой
связью, входными параметрами которых стали четыре кластера данных.
Для
оценки
эффективности
кластеризации
с помощью
SOM
была
разработана еще одна нейронная сеть с прямой связью, которая для
прогнозирования нагрузки использовала некластеризованные данные. Общие
результаты, полученные на основе этой модели ИНС (использующей
некластеризованные данные) представлены в таблице 3.1. Как видно из
таблицы 3.1, при использовании нейронной сети с прямой связью на основе
некластеризованных данных средняя абсолютная погрешность в процентах
(MAPE) равна (2.0643), в то время как с кластеризованными данными она
снижается до (1.9568).
81
Таблица 3.1 Эффективность предложенной гибридной модели
MAPE %
ИНС с SOM
ИНС
4.1568
5.1029
фактическая мощность
2000
прогнозная мощность
1900
Мощность, МВт
1800
1700
1600
1500
1400
1300
1
3
5
7
9
11
13
Время, час
15
17
19
21
23
Рис.3.12 Пример прогнозирования ИНС с кластеризацией с помощью SOM
(MAPE =4.1568%)
82
Рис. 3.13 Пример прогнозирования ИНС без кластеризации
(MAPE = 5.1029 %)
3.4 Выводы
1. Как видно из результатов, выбор функции активации и количество
неронов в нейронной сети имеют очень важное значение. В данной работе
показано, что прямолинейная функции в структуре нейронной сети больше
подходит к данным операционой зон Ростовского РДУ, чем тангенциальная.
2. Показано, что эмпирический выбор количества нейронов в скрытом
слое дает большую погрешность, чем выбор их с использованием алгоритма
роя частиц.
3. Кластеризация и обработка данных с использованием метода
самоорганизующейся карты
в нейронной сети позволяет уменьшить
погрешность прогнозирования.
4. Фиксированная кластеризация по четырем сезонам года имеет
недостаток, связанный с увелечением
погрешности моделирования и
прогнозирования в начале и конце сезонов. Более точные результаты могут
83
быть получены если перейти от фиксированных по времени интервалам к "
скользящему интервалу", зона которого определяется радиусом обучающей
окрестности (
, где
предыдущих суток;
- номер текущих суток ;
номер
- номер граничных суток из прошлого года.
5. Некоторые прогнозные модели, показывающие положительные
результаты
при
неудовлетворительные
апостериорном
для
практики
прогнозировании,
результаты
при
дают
реальном
прогнозирования при наличии погрешностей в прогнозах метеофакторов.
84
4. МОДЕЛИ ПРОГНОЗИРОВАНИЯ ЭЛЕКТРОПОТРЕБЛЕНИЯ НА
ОСНОВЕ НЕЙРОНЕЧЕТКОЙ СЕТИ И МЕТОДА ОПОРНЫХ
ВЕКТОРОВ
4.1 Прогнозирование электропотребления с помощью адаптивной нейронечеткой сети
Основными недостатками математических моделей STLF, основанных
на нейронных сетях, является отсутствие у них способности точно
моделировать погодные параметры, влияющие на нагрузку, недостаточная
надежность.для представления нагрузки в выходные и праздничные дни, а
также.довольно.емкие.вычисления.[132].
В отличие от них, интеллектуальные методы, такие как адаптивная
система нейро- нечеткого вывода ( ANFIS ), которая использует правила
нечетой логики «если, то», могут моделировать качественные аспекты
человеческого знания и процесс рассуждения без применения точного
количественного
анализа.
вычислительную
мощность
ANFIS
сочетает
нейронных
в
сетей
себе
низкоуровневую
с
высокоуровневой
мотивировочной способностью системы нечеткого логического вывода.
Таким образом, применение ANFIS в STLF устраняет вышеупомянутые
недостатки.
В данной главе изложены результаты разработки и тестирования
ANFIS - ориентированной модели краткосрочного прогнозирования нагрузки
для Ростовского регионального диспетчерского управления с учетом
температуры
воздуха
и
освещенности
в
качестве
основных
метеорологических параметров, влияющих на нагрузку. Модель испытана с
данными по нагрузке, полученными в Ростовском РДУ.
85
4.1.1 Общая характеристика нейро-нечеткой модели
Нейро-нечеткая система представляет собой комбинацию, состоящую
из нейронной сети и алгоритмов нечеткой логики, в которой нейронные сети
или алгоритмы нейронной сети используются для определения параметров
нечеткой системы. Это означает, что главной целью нейро-нечеткого
подхода является создание или улучшение нечеткой системы автоматически
с помощью нейросетевых методов. Важным свойством этого подхода
является то, что система должна быть всегда интерпретирована с точки
зрения правил нечеткой логики «если-то», так как она основана на нечеткой
системе отражающей расплывчатые знания. Идея нейро-нечеткой системы
заключается в нахождении параметров нечеткой системы с
помощью
методов обучения, полученных из нейронной сети. Распространенный способ
применения алгоритма нейросетевого обучения к нечеткой системе
представляет ее в
виде архитектуры, подобной
нейронной сети. Тогда
алгоритм обучения, такой как обратное распространение, используется для
обучения системы. Однако алгоритмы обучения нейронной
сети, как
правило, являются градиентними методами. Они не могут применяться
непосредственно к нечеткой системе, так как функции , используемые для
реализации
процесса
логического
вывода,
как
правило,
не
дифференцируемы.
Современные нейро-нечеткие системы часто представлены в виде
многослойной нейронной сети с прямой подачей. Нейро-нечеткая система
является системой нечеткой логики, которая обучается с помощью
обучающего алгоритма (как правило) , построенного с помощью нейронной
сети.
Эвристическая
процедура
обучения
работает
на
локальной
информации, и вызывает только локальные изменения в базовой нечеткой
системе. Процесс обучения не является ориентированным на получение
знания, а управляется данными. Кроме того, нейронную систему нечеткой
86
логики всегда можно интерпретировать как систему нечетких правил.
Процесс обучения нейронно-нечеткой системы принимает во внимание
семантические свойства базовой нечеткой системы. Это приводит к
ограничению возможных изменений параметров системы. Он также
аппроксимирует неизвестную функцию n-размерности, которая частично
задана обучающими данными. Правила нечеткой логики, закодированные в
системе,
представляют
рассматриваться
как
собой
неопределенные
нечеткие
прототипы
образы,
и
могут
обучающих.данных.
Как правило, нейро-нечеткую систему не следует рассматривать как
своего рода нечеткую экспертную систему, и это не имеет ничего общего с
нечеткой логикой в узком смысле. Её можно рассматривать как специальный
вид нейронной сети с прямой подачей.
4.1.2 Применение нейро-нечеткой модели в задачах краткосрочного
прогнозирования нагрузки
Моделирование на основе нейро-нечетких сетей является методом
применения
различных
исследователями
нейронных
обучающих
сетей
приемов,
применительно
разработанных
к
нечеткому
моделированию или системам нечеткого вывода [133].
Наиболее часто использующимися функциями принадлежности
являются функция Гаусса и колоколообразная функция. Одна эпоха обучения
обеспечивает
количество
итераций,
достаточное
для
высокой
прогностической точности.
4.1.3 Архитектура нейро-нечеткой модели
ANFIS представляет собой нейронную сеть прямого распространения
сигнала
для поиска нечетких правил, позволяющих найти решение
конкретной задачи. Используя определенный набор входов-выходов, ANFIS
87
создает систему нечеткого вывода, для которой параметры функций
принадлежности
корректируются
только
алгоритмом
обратного
распространения или алгоритмом обратного распространения в сочетании с
методом наименьших квадратов.
Таким образом системы нечетких
рассуждений могут обучаться на основе моделируемых данных. Наиболее
часто в задачах STLF используется нечеткая модель первого порядка ТакагиСугено [134] с двумя входами и одним выходом и с двумя функциями
принадлежности для каждого входа, как показано на рисунке 4.1 (а).
Эквивалентная архитектура ANFIS системы нечеткого вывода первого
порядка Такаги-Сугено приведена на рисунке 4.1 (б). Система состоит из
пяти слоев.
а)
A1
B1
W1
A2
B2
W2
x
X
y
Y
f 
w1
w2
f1 
f2
w1  w2
w1  w2
 w1 f1  w2 f 2
88
б)
Слой 1
А1
Слой 2
Слой 3
Слой 4
х
Слой 5
А2
А3
y
А4
Рис. 4.1 Нечеткое правило Сугено «Если – то» и механизм нечеткой логики y
а); эквивалентная архитектура ANFIS - б)
Взаимосвязи внутри системы в виде входов-выходов каждого слоя
могут быть описаны следующим образом:
Слой 1: Каждый узел этого слоя является адаптивным узлом, выход узла
определяется по формуле
  Ai ( x) при i  1,2
O1,i  
 Bi  2 ( y ) при i  3,4
,
(4.1)
где x (или y) – вход узла; Ai и Bi  2 нечеткие множества,
связанные с этим узлом, характеризующиеся формой функции принадлежности в этом узле;  A (x) ,  B ( y) - функции принадлежностей нечетких
i
i 2
множеств Ai , Bi  2 . В качестве функции принадлежности может быть
любая
подходящая
функция,
являющаяся
непрерывной
и
кусочно-
дифференцируемой, как например, функция Гаусса. При использовании
89
функции Гаусса в качестве функции принадлежности вычисления Ai будут
выглядеть следующим образом:
(4.2)
 A ( x)  exp  0.5( x  ci ) / i 2 ,
где {  i , ci } – это набор параметров. Параметры этого слоя относятся к
i
параметрам предпосылок.
Слой 2: Каждый узел этого слоя является фиксированным узлом,
перемножающим входные сигналы и выходной сигнал. Например,
O2,i  wi   Ai ( x)   Bi ( y),
i  1,2
(4.3)
Выходное значение каждого узла представляет собой вес некоторого
правила.
Слой 3: Каждый узел этого слоя является циклическим узлом. Каждый
i-ый узел данного слоя определяет отношение веса i-го правила к сумме
весов всех правил.
O3,i  w 
wi
,
w1  w2
i  1,2 .
(4.4)
Выходные сигналы 3-го слоя называются нормализованными весами.
Слой 4: Узел i четвертого слоя рассчитывает вклад одного нечеткого iго правила в выход сети со следующей функцией узла:
O4,i  wi f i  wi ( pi x  qi y  ri ) ,

где w - это выходной сигнал слоя 3, а { pi , qi , ri
(4.5)
} - набор параметров.
Параметры этого слоя относятся к параметрам вывода.
Слой 5: Единственный узел данного слоя является фиксированным
узлом, в котором вычисляется полное выходное значение адаптивной сети
как сумма всех входных сигналов:
O5,i   wi f i 
i
w
i
i
f
 wi f
i
,
(4.6)
90
4.1.4 Гибридный алгоритм для обучения сети
В качестве алгоритма обучения ANFIS в работе принят гибридный
алгоритм, совмещающий метод градиентного спуска и метод наименьших
квадратов [135-137].
Для простоты в работе принята адаптивная сеть, которая имеет только
один выход следующего вида:

Output  F ( I , S ) ,
(4.7)

где I - набор входных переменных, а S – набор параметров. Предположим,
что существует некая функция H, при этом сложная функция H  F является
линейной в некоторых элементах S, тогда эти элементы могут быть
определены с помощью метода наименьших квадратов.
Если набор параметров S может быть разбит на два набора
S  S1  S 2 ,
(4.8)
где  представляет прямую сумму; S1 - набор параметров предпосылок, а
S 2 - набор параметров вывода. При линейности H  F в элементах S 2 ,
применяя H к формуле (4.7), мы получим распространение сигнала двух
видов для гибридной процедуры обучения ANFIS:

H (output )  H  F ( I , S ) .
(4.9)
На примере архитектуры ANFIS, представленной на рисунке 4.1, видно,
что значения параметров предпосылок фиксированы, а полное выходное
значение может быть выражено в виде линейной комбинации параметров
вывода. На языке символов, выходное значение, показанное на рисунке 4.1,
f может быть представлено в виде выражения
f 
w1
w2
f1 
f 2  w1 f1  w2 f 2
w1  w2
w1  w2
 ( w1 x) p1  ( w1 y ) q1  ( w1 ) r1  ( w2 x) p2  ( w2 y )q2  ( w2 ) r2
(4.10)
91
которое линейно в параметрах вывода ( p1 , q1 , r1 , p2 , q2 , r2 ). В результате набор
общих параметров S может быть разбит на два набора параметров S1 и S 2 .
Таким образом, гибридный алгоритм обучения может быть использован
для эффективного поиска оптимальных параметров ANFIS.
При прямом распространении сеть передает входные сигналы в прямом
направлении до слоя 4, в котором параметры вывода идентифицируются с
помощью метода наименьших квадратов. При обратном распространении
сигнал
ошибки
передается
в
обратном
направлении
и
параметры
предпосылок обновляются с помощью метода градиентного спуска.
Распространение сигналов двух видов в ходе гибридного обучения в кратком
виде представлено в таблице 4.1.
Таблица 4.1 Распространение сигналов двух видов в ходе процедуры
обучения ANFIS
Параметры
Прямое распространение Обратное
распространение
Параметры предпосылок
Фиксированы
Параметры вывода
Оценка
по
методу Фиксированы
наименьших квадратов
Сигналы
Выходные значения узлов
Градиентный спуск
Сигналы ошибки
4.1.5 Результаты моделирования
Средой моделирования является MALAB2011a. Исходные данные взяты
из статистических показателей по Ростовской РДУ за период с 2009 – 2012
г.,
выходные
данные
представлают
данные
нагрузки
на
день
прогнозирования. Прогнозная и фактическая нагрузки на один день в разное
время года показаны на рис. 4.2 а, б, в, г. Там же приведены результаты
расчетов погрешности за эти же сутки. Для оценки этого метода
92
используется средняя абсолютная ошибка в процентах MAPE (см. (3.9) в
разделе 3.3.9).
Мощность, МВт
2000
фактическая мощность
прогнозная мощность
1900
1800
1700
1600
1500
1400
1300
1200
1
3
5
7
9
11
13
15
17
19
21
23
Время, час
а) Пример прогнозирования на 31.08.2011 (MAPE = 1.830 %)
Мощность, МВт
2900
фактическая мощность
прогнозная мощность
2800
2700
2600
2500
2400
2300
2200
2100
2000
1
3
5
7
9
11 13
Время, час
15
17
19
21
23
б) Пример прогнозирования на 26.01.2012 (MAPE= 2.361%)
93
фактическая мощность
Мощность, МВт
прогнозная мощность
2000
1900
1800
1700
1600
1500
1400
1300
1
3
5
7
9
11
13
15
17
19
21
23
25
Время, час
в) Пример прогнозирования на 31.05.2011 ( MAPE = 2.489%)
фактическая мощность
прогнозная мощность
2600
2500
Мощность, МВт
2400
2300
2200
2100
2000
1900
1800
1
3
5
7
9
11
13
Время, час
15
17
19
21
23
г) Пример прогнозирования на 30.11.2011(MAPE =2.216%)
Рис. 4.2 – Фактические и прогнозные графики нагрузки в различные сезоны
года
94
4.2 Прогнозирование электропотребления с помощью метода опорных
векторов
Теория опорных векторных машин (SVM) представляет собой набор
методов
классификации
и регрессии, которая была разработана
В. Н.
Вапником в 1995 г. [71] и используется как для классификации данных, так и
для построения регрессионных нелинейных моделей [138, 139, 140, 141].
Модификация метода опорных
векторов с использованием метода
наименьших квадратов была впервые предложена J. Suykens [142] и др. и
является расширением стандартного метода SVM. Ниже кратко изложены
основные положения метода LS-SVM, который в данной работе адаптирован
к условиям и исходным данным Ростовского РДУ [70] . По структуре
принципе минимизации, задача оптимизации LS-SVM может быть выражена
как:
min
1

2
2
1 l
 С  ei2 ,
2 i 1
(4.12)
при условии:  T  ( xi )  b  ei  yi , i  1,, l ,
где еi  R ошибки вектора выхода y i ;  - вектор весов зазоров между
кластерами (вектор коэффициентов разделения кластеров); С - параметр
регуляризации, который влияет на ошибки;  (x) - нелинейное отображение
входного пространства исходных данных параметров в пространство
признаков более высокой размерности.
Для решения формулы (4.12) используется метод лагранжа, т.е. формула
(4.12) преобразована в:
min L( , b, e,  ) 
1

2
2
l
1 l
 С  ei2   i ( T  ( xi )  b  ei  yi )
2 i 1
i 1
(4.13)
где   R - множители Лагранжа;  ≥ 0; yi  R - значение
прогнозируемого вектора общее число точек известных данных.
95
Нелинейное выраженииe для
модели прогнозирования будет иметь
следующий вид:
l
yi 1    i K ( xi , x)  b,
i  1,, l ,
(4.14)
i 1
В формуле (4.14), значения вектора коэффициентов b рассчитываются
по формуле:
l
b  yi   i K ( x j , xi )
,
 j  (0, C ) .
(4.15)
i 1
K ( xi , x j ) - функция ядра, которая
входного
пространства
выполняет нелинейное отображение
исходных
данных
(электропотребления,
метеофакторы и др.) в пространство высокой признаков размерности.
В качестве функции ядра часто используются следующие: линейные,
полиномиальные, радиально-базисные функции (RBF), сигмоидные функции
и
Фурье-функции.
Радиально-базисные
функции
имеют
следующие
преимущества: а) сравнительно простой вид, даже для нескольких входных
переменных; б) радиальная симметрия;
в) гладкость, т.е. существуют
производные любого порядка.
В данной работе в качестве функции ядра в регрессионной модели
SVM используются радиально-базисная функция следующего вида:
K ( x, xi )  exp(  x  xi /  2 ) ,
2
(4.16)
где: x , - m-мерный входной вектор;  - стандартизированный параметр,
определяющий разброс функции вокруг центральной точки; xi - m-мерный
вектор координат центра рассеяния;
x  xi
-
норма вектора x  xi ,
определяет расстояние между x и xi . Коэффициент разброса (ширины) ядра
 отражает степень корреляции между обучающей
выборкой входного
пространства и вектором пространства признаков. При малых значениях 
ослабляются опорные векторы и усложняется процедура обучения и
обобщающая способность не может быть гарантирована. При больших 
96
опорный вектор оказывает слишком сильное воздействие на регрессионную
модель
и
в
результате
трудно
добиться
достаточной
точности
аппроксимации и прогнозирования.
В данной работе для
краткосрочного прогнозирования нагрузки
применения модификация метода SVM испльзующая алгоритм наименьших
квадратов, т. е. метод LS-SVM.
Пусть обучающее множество задано как:
S  ( x1 , y1 ), ( x2 , y 2 )........., ( xn , y n ) R d ,
где d - число измерений выбранных входных переменных.
Выбираются положительные числа

и C , и соответствующая
функция ядра K ( x, x ' ) .
Далее решается задача оптимизации по методу множителей Лагранжа
(формула (4.13)). Оптимальным решением будет вектор коэффициентов:
  (1 , ,...,  l , )T .
Выбор параметров
C и  в методе LS-SVM основывается на
результатах опыта. В данной работе параметры функции ядра и параметры
регуляризации для Ростовского РДУ выбирались из диапазона
[0.1,150] ,  =
C =
[0.1,10], и наилучшие результаты получены при C =
30,  = 2, соответственно.
В
данной
работе
указанный
метод
применяется
к
задаче
прогнозирования суточных часовых графиков электропотребления с учетом
температуры воздуха и естественной освещенности для Ростовского РДУ
[70].
Входные данные содержат историческиe данные нагрузки
,
средняя освещенность, значение типа дня, максимальная температура,
минимальная температура и
средняя температура за день. Выход
представляет значение нагрузки в день прогнозирования.
97
Выборка исходных за год по Ростовскому РДУ разбивается четыре
выборки по сезонам года: весна, лето, осень , зима. Данные за 2009-2011
годы рассматривались как обучающая выборка.
Вследствие различия величин исходных данных они нормализуются.
Нормализация данных нагрузки выполняется по выражению:
p ' ij   pij  p j min /  p j max  p j min  , i  1,2,, n , j  1, 2,, m ,
где pij - фактическая нагрузка мВт ;
(4.17)
p j max , p j min , минимальная, максимальная
'
нагрузка ; p ij -нормализованная нагрузка.
Нормализация типа дня (рабочий день и выходной), с понедельника по
пятницу принимается как 1, суббота и воскресенье принимается как 0.
Нормализация температурных данных выполняется по выражению:
 ' ij  ij   j min /  j max   j min  , i  1,2,, n , j  1, 2,, m ,
(4.18)
где  ij фактическая температура,  j min ,  j max , минимальная, максимальная
температура ;  'ij - нормализованная температура.
Нормализация данных освещенности выполняется по выражению:
E ' ij  Eij  E j min / E j max  E j min , i  1,2,, n , j  1,2,, m
(4.19)
где Eij фактическая освещенность; E j min , E j max - минимальная, максимальная
освещенность; E ' ij нормированная освещенность.
где
- среднее значения суточной освещенности;
освещености.
- часовые значения
98
120000.00
максимальное значение=95408.38
освещенность
100000.00
80000.00
60000.00
среднее значение=29311.82
40000.00
20000.00
минимальное значение=0
0.00
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
час
Рис. 4.3. Суточный график освещенности в г. Ростове - на- Дону за
24.08.2009
максимальное значение=33246.04
35000.00
среднесуточная освещенность
30000.00
25000.00
20000.00
15000.00
10000.00
5000.00
минимальное значение=1673.94
0.00
1
11
21
31
41
51
номер дня
61
71
81
91
Рис. 4.4. Среднее значения суточной освещенности в г. Ростове - на- Дону
для лета 2011 г.
4.2.1 Результаты моделирования
Для
моделирования
электропотребления
с
учетом
влияющих
метеофакторов использовались MALAB2011a. Исходные данные взяты из
статистических показателей по Ростовской РДУ за период с 2009 – 2012 г.,
99
выходные данные представлают данные нагрузки на день прогнозирования.
Прогнозная и фактическая нагрузки на один день в разное время года
показаны на рис. 4.5а,б,в,г . В таблице 4.2 приведены результаты расчетов
погрешности MAPE за эти же сутки. Для оценки этого метода используется
средняя абсолютная ошибка в процентах (MAPE).
Мощность, МВт
фактическая мощность
2000
прогнозная мощность
1900
1800
1700
1600
1500
1400
1300
1200
1
3
5
7
9
11
13
Время, час
15
17
19
21
23
а) Пример прогнозирования на 31.08.2011( MAPE = 1.414%)
Мощность, МВт
фактическая мощность
2900
прогнозная мощность
2800
2700
2600
2500
2400
2300
2200
2100
2000
1
3
5
7
9
11
13
Время, час
15
17
19
21
б) Пример прогнозирования на 26.01.2012 (MAPE= 1.579%)
23
100
Мощность, МВт
фактическая мощность
2600
прогнозная мощность
2500
2400
2300
2200
2100
2000
1900
1800
1
3
5
7
9
11
13
Время, час
15
17
19
21
23
в) Пример прогнозирования на 30.11.2011 (MAPE = 1.609%)
Мощность, МВт
2000
Фактическая мощность
прогнозная мощность
1900
1800
1700
1600
1500
1400
1300
1
3
5
7
9
11 13
Время, час
15
17
19
21
23
г) Пример прогнозирования на 31.05.2011 (MAPE = 2.257%)
Рис. 4.5 – Фактические и прогнозные графики нагрузки в различные сезоны
года [143]
101
Таблица 4.2. Погрешности прогнозирования суточных графиков нагрузки по
модели LS-SVM для Ростовского РДУ в разные сезоны года при C = 30 , 
=2
Время года
Лето
Зима
Осень
Весна
Погрешность
1.414
1.579
1.609
2.257
(MAPE) %
Среднее значение погрешности (MAPE) 1.714%
4.3 Прогнозирование электропотребления на основе метода опорных
векторов и алгоритма роя частиц
Алгоритма
оптимизации
роя
частиц
основан
на
процедуре
инициализации группы частиц и последующем поиске оптимального
решения методом итераций [143-146]. Выбор начальной группы частиц
случаен. Частицы должны быть расположены на всем пространстве решений,
чтобы повысить вероятность определения глобального оптимума. Чем
больше число частиц, тем вероятнее найти глобальное оптимальное решение,
но при этом увеличивается время поиска.
Положение
частицы
i-й
относительно
глобального
оптимума
определяет величина соответствия частицы (fitness в работах [130] и других
публикациях на английском языке)
fi 
n

j 1
yj  y ,
(4.20)
По текущему значению соответствия i-й частицы f i и среднему
значению
соответствия
популяции
f ,
можно
определить
разброс
соответствий популяции:
 2f 
m
(
i 1
fi  f
fm
)2 ,
(4.21)
102
где, m - это число частиц, f m - нормирующее значение соответствия f,
которое используется для ограничения величины  2f . Для получения
значения f m используется следующая формула:

при f i  f m  1
max f i  f m ,
fm  

в остальных .случаях
 1,
(4.22)
2
Разброс соответствий  f отражает степень агрегации частиц в
2
популяции. Чем меньше  f , тем больше степень агрегации частиц, и
2
наоборот, чем больше  f , тем меньше степень агрегации частиц в
популяции. При увеличении числа итераций, соответствие популяции
2
становится все ближе к оптимальному решению, а  f будет все меньше.
2
При  f < β, где β - заданное пороговое значение, популяция попадает в
область, близкую к оптимальному положению.
Вторым параметром, который используется для контроля приближения
в процессе поиска к глобальному оптимальному положению, является
среднее расстояние D(t), которое характеризует степень разброса частиц друг
относительно друга:
1 m
D(t ) 

mL i 1
n
( p
d 1
id
 pd ) 2 ,
(4.23)
где, L- длина пространства поиска; n- размерность пространства решений;
p d - представляет собой среднее значение d -мерной координаты положения
всех частиц. При выполнении поиска задается пороговое значение 
для
D(t) и контролируется соотношение D(t) <  .
4.3.1 Шаги и процессы прогнозирования нагрузки
Специфический
заключается в
процесс
оптимизации
алгоритма
роя
частиц
следующем: eсли допустить равномерное распределение
103
начальной
популяции,
то
Блок-схема
процесса
оптимизации
и
прогнозирования будет иметь вид, представленный на рис. 4.6. Блок-схема
алгоритма оптимизация параметров C и  по методу роя частиц показaна на
рис. 4.7.
Начало
Ввод данных
P(t), ϴ(t), E(t)
Обработка данных,
выбор диапазона
параметров
Сиσ
Поиск С
по алгоритму PSO
Прогноз по модели
SVM
да
Условие
погрешности
выполнено?
нет
Получение
оптимальных
значений параметров
опорных векторов
(С,σ)
Прогноз по SVM
Конец
Рис. 4.6. Блок-схема процессов оптимизации и прогнозирования
104
Начало
1
Установка
параметров PSO
нет
Текущее число
итераций ≤Тmax
да
2
Инициализация
популяции частиц
2
Расчет значений
соответствия каждой
частицы fi.
Установка pib, pig
Определение
параметров С и σ
в модели SVM
Конец
Расчет D(t) и σf2
нет
D(t)<σf2
да
Обновление
скорости частиц и
нового положения
популяции
Расчет значения
соответствия каждой
частицы в новой
поуляции
Сравнение и
обновление
оптимального
положения и
оптимальной
скорости каждой
частицы
1
Рис. 4.7 Блок-схема алгоритма оптимизации параметров C и  в прогнозной
модели LS-SVM
105
Представленный на рис. 4.7 алгоритм можно описать следующим
образом:
(1) В соответствии с ранее описанным методом для инициализации роя
частиц установим, что численность популяции - m , начальное значение
инерции весa - wmax , конечное значениеe инерции веса - wmin , ускорение
констант c1 и c 2 , максимальная итерация Tmax .
(2) Для сравнения, в соответствии с текущей позицией каждой частицы
рассчитывается адаптационное значение f ( xi ) , текущая позиция i-й частицы
устанавливается в оптимальном расположении pibest , лучшее положение из
всех частиц устанавливается на оптимальное значение g best .
(3) Вычислим среднее расстояние популяции D(t) , и соответствия дисперсии
 2 , если D(t) >  и  2   (  и  пороговые величины заданная заранее),
обратимся к (4), в противном случае переходим к шагу (5).
(4) Повторно инициализируется рой частиц в соответствии с описанным
выше методом.
(5) В соответствии с формулами (3.3) и (3.4) обновляется скорость и
положение каждой частицы, генерируются новые популяции X(t).
(6) Рассчитывается значение соответствия на новом месте каждой частицы
X (t), соответственно, для сравнения, если его новое положение лучше, то
оно заменяется, в противном случае значения остаются неизменными.
(7) Проверяется, соответствуют ли условия конца оптимизации (до Tmax ), если
они соответствуют, то заканчивается оптимизация и получается
оптимальное решение, а в противном случае возвращается к шагу (2) .
2
Пороговые значения для D(t) и  f :   0.001 и   0.01 .
106
4.3.2 Набор параметров анализа
Установления диапазона применения параметров:
 ∈ [0.1,10]. Число частиц
количество частиц, тем
m выбираем равным
c∈
[0.1,150] ,
20. Чем больше
шире распространение и диапазон поиска в
пространстве, и, следовательно, легче найти глобальное оптимальное
решение, но при этом
время работы увеличится. Максимальное число
итераций Tmax выбираем равным 100. Фактор инерции веса w выбран из
диапазона [0.4,0.9]. Константы ускорения c1 и c 2 представляют собой веса
стохастических ускорений, которые толкают частицы в сторону pibest и g best .
Параметры pibest
и
g best - определяют статистическую позицию частиц.
Параметры опорных векторов (SVM) модели, которые используются для
краткосрочного прогнозирования нагрузки, оптимизированы с помощью
метода роя частиц
(РЧ). Малые значение c1 и c 2
позволяют частицам
смещаться далеко от оптимальной области (экстремумов). С другой стороны,
большие значения c1 и c 2 приводят к слишком резким движением частиц в
направлением оптимальной области (экстремумов). В этой работе, c1 и c 2
принимаются 2.0, в соответствии рекомендуемыми значениями в работе
[119].
4.3.3 Результаты моделирования
Для
моделирования
электропотребления
с
учетом
влияющих
метеофакторов использовались MALAB2011a. Исходные данные взяты из
статистических показателей по Ростовскому РДУ за период с 2009 – 2012 г.,
выходные данные представляют данные нагрузки на день прогнозирования.
Результаты прогнозирования и фактическая нагрузка на одни сутки в разные
107
сезоны года
показаны на рис. 4.8. В таблице 4.3 приведены данные по
погрешностям прогнозирования в виде средней абсолютной ошибки (MAPE)
в процентах.
Мощность, МВт
2000
фактическая мощность
прогнозная мощность
1900
1800
1700
1600
1500
1400
1300
1200
1
3
5
7
9
11 13
Время, час
15
17
19
21
23
а) Пример прогнозирования на 31.08.2011(MAPE =1.3167%)
Мощность, МВт
2900
фактическая мощность
прогнозная мощность
2800
2700
2600
2500
2400
2300
2200
2100
2000
1
3
5
7
9
11 13 15
Время, час
17
19
21
23
б) Пример прогнозирования на 26.01.2012 (MAPE= 1.061%)
108
Мощность, МВт
2600
фактическая мощность
прогнозная мощность
2500
2400
2300
2200
2100
2000
1900
1800
1
3
5
7
9
11 13 15
Время, час
17
19
21
23
в) Пример прогнозирования на 30.11.2011(MAPE =0.982 %)
Мощность, МВт
фактическая мощность
прогнозная мощность
2000
1900
1800
1700
1600
1500
1400
1300
1
3
5
7
9
11
13
15
17
19
21
23
Время, час
г) Пример прогнозирования на 31.05.2011 (MAPE =2.115 %)
Рис. 4.8 – Фактические и прогнозные графики нагрузки в различные сезоны
года для Ростовского РДУ.
109
Таблица 4.3. Погрешности прогнозирования суточных графиков нагрузки по
модели РЧ-LS-SVM для разных сезонов года
РЧ-LS-SVM
Время года
лето
зима
осень
весна
C
150
79.190
38.845
53.511

5.196
10
5.488
1.314
MAPE%
1.3167
1.061
0.982
2.115
Среднее значение погрешности (MAPE) 1.368 %
110
Таблица 4.4. Значения ошибки прогнозирования электропотребления для
операционной зоны Росстовского РДУ.
дата
01/11/2011
02/11/2011
03/11/2011
04/11/2011
05/11/2011
06/11/2011
07/11/2011
08/11/2011
09/11/2011
10/11/2011
11/11/2011
12/11/2011
13/11/2011
14/11/2011
15/11/2011
16/11/2011
17/11/2011
18/11/2011
19/11/2011
20/11/2011
21/11/2011
22/11/2011
23/11/2011
24/11/2011
25/11/2011
26/11/2011
27/11/2011
28/11/2011
29/11/2011
30/11/2011
Ошибка прогнозирования, MAPE
ANFIS
SVM
3.21
2.48
2.86
3.46
3.48
4.77
4.41
3.23
3.70
3.19
3.45
3.79
3.31
4.03
2.71
2.18
3.52
2.21
3.97
3.27
2.05
2.96
3.37
2.57
3.55
4.06
4.51
3.51
3.20
3.07
2.75
1.54
2.32
3.05
2.50
3.8
3.08
3.11
3.5
2.78
3.01
2.50
2.41
3.22
2.31
1.82
3.29
2.04
2.02
1.29
1.69
2.47
1.54
1.81
2.87
3.07
2.11
3.18
2.15
1.61
SVM-РЧ
2.52
1.50
1.87
2.14
1.62
2.51
2.53
2.71
2.79
1.79
1.99
1.60
1.52
2.53
1.58
1.37
2.39
1.73
1.78
1.25
1.56
2.24
1.42
1.13
1.94
1.84
1.86
2.53
1.80
0.98
111
4.4 Выводы
1. Показано что нейро-нечеткие модели имеют преимущества перед
нейросетевыми моделями, особенно это проявляется при учете в прогнозной
модели, кроме температуры воздуха, данных по освещености.
2.
Выполненые
в
главе
исследованиия
влияния
настраиваемых
параметров нейросетевей , нейронечеткой моделей и регрессионной модели
опорных векторов на точность прогнозирования показали, что эмпирический
подход к их выбору может приводить к значительным погрешностям
прогнозирования. Использование эволюционных алгоритмов позволяет
осуществлять адаптацию параметров к изменяющимся факторам, влияющам
на электропотребление
3. Результаты исследований данной главы показали, что использование
алгоритма рая честиц для оптимизации параметров регрессионной модели
опорных векторов повышает точность моделирования и краткосрочного
прогнозирования.
4. Результаты исследований данной главы показали что, разработанная и
испытанная
прогнозная
модель
на
основе
опорных
векторов
с
использованием алгоритма роя честиц для оптимизации параметров модели
обладает наилучшими аппроксимирующих свойствами в пространстве
факторов
5.
,
Модель
SVM-
РЧ
обеспечивает
наилучшие
результаты
прогнозирования в часы утренего и вечернего максимумов, а также в
выходные и нерегулярные праздничные дни.
112
ЗАКЛЮЧЕНИЕ
В диссертационной работе выполнен комплекс исследований по
повышению точности краткосрочного прогнозирования электропотребления
для территорий операционных зон региональных диспетчерских управлений
с учетом температуры воздуха и естественной освещенности.
Основные результаты работы заключаются в нижеследующем.
1..Разработана
модель
для
краткосрочного
прогнозирования
электропотребления на территориях операционных зон региональных
диспетчерских управлений, основанная на методе опорных векторов и
алгоритме роя частиц, отличающаяся тем, что в ней в качестве одного из
влияющих факторов учитываются значения естественной освещенности, что
позволяет повысить точность моделирования и прогнозирования.
2. Исследования моделей нейронной сети, нейро-нечеткой сети и
регрессионной
наилучшими
модели на основе опорных
аппроксимирующими
свойствами
векторов показали, что
при
решении
задачи
краткосрочного прогнозирования электропотребления с учетом температуры
воздуха и естественной освещенности для филиалов ОАО «СО ЕЭС» региональных диспетчерских управлений обладает регрессионная модель на
основе теории опорных векторов.
3.
Совершенствование
методов
краткосрочного
прогнозирования
электропотребления с учетом влияющих на него факторов развивается в
направления создания комбинированных моделей, использующих такие
методы и модели как нейронные сети, нечеткие алгоритмы и методы
опорных векторных машин с использованием эволюционных алгоритмов для
оптимизации параметров моделей.
4. Значительная доля прогнозных моделей, опубликованных в работах
по
прогнозированию
электропотребления
с
учетом
метеофакторов,
учитывает лишь один влияющий фактор - температуру воздуха. Известны
разработки прогнозных моделей позволяющие учитывать облачность,
113
скорость ветра, солнечную радиацию и влажность. Работы, в которых в
качестве второго фактора используется инструментальные данные
по
освещености, ведутся лишь в России.
5. Регрессионная модель SVM-РЧ дает наилучшие результаты при
прогнозировании утренних и вечерних максимумов, а также имеет
минимальную погрешность при прогнозировании суточных графиков
выходных и нерегулярных дней по сравнению с моделями ИНС и ANFIS.
6. Исследованные в работе, прогнозные модели, показывающие
положительные результаты при апостериорном прогнозировании дают
неудовлетворительные
прогнозирования
метеофакторов.
для
особенно
Для
практики
при
устранения
наличии
результаты
при
погрешностей
указаных
недостатков
в
реальном
прогнозах
необходима
дополнительная адаптация разрабатываемых моделей к реальным условиям
прогнозирования.
7. Взаимосвязи между электропотреблением, температурой воздуха и
естественной освещенностью имеют нелинейный характер, что указывает на
необходимость использования таких математических методов, которые
позволяют построить прогнозные моделей, учитываемые нелинейный
характер зависимостей электропотребления от влияющих на него факторов.
8. В работе показано, что выбор функции активации и количества
нейронов в нейронной сети имеют существенное значение для точности
прогнозирования. Для моделирования электрической нагрузки потребителей
операционной зоны Ростовского РДУ наилучшие результаты получены при
прямолинейной функции активации.
9. Показано, что использование эволюционного алгоритма роя частиц
при выборе количества нейронов в скрытом слое, а также кластеризация
данных с помощью метода самоорганизующихся карт перед вводом их в
нейронную сеть снижают погрешность моделирования и прогнозирования.
10. Кластеризация исходных данных по четырем сезонам года повышает
точность прогнозирования, но имеет недостаток, связанный с увеличением
114
погрешности моделирования и прогнозирования электропотребления в
начале и конце сезонов. Более точные результаты могут быть получены, если
перейти от фиксированных по времени интервалов обучающей выборки к
"скользящему
интервалу",
ширина
которого
определяется
радиусом
обучающей окрестности.
11. Разработанные ранее для Ростовского РДУ нейросетевые модели
Демуры А.В. и Губского С.О. дают погрешности в диапазоне [3.04 % 4.78 % ], а предложенные в работе модели имеют следующие погрешности:
ANFIS - [ 2.21% - 4.21 %]; SVM - [ 1.29%- 3.22% ] и SVM-РЧ - [0.98%2.51%].
12. Разработана программа краткосрочного прогнозирования
электропотребления для региональных диспетчерских управлений «Прогноз
ЭТО PSO SVM», на которую подана заявка на официальную регистрацию.
13. Результаты данной работы предлагается использовать
при
модернизации программного обеспечения в Ростовском РДУ и могут быть
рекомендованы к применению для других филиалов ОАО «СО ЕЭС» региональных диспетчерских управлений, с соответствующей адаптацией
прогнозных моделей.
К перспективам дальнейшей разработки темы можно отнести следующие
направления:
- поиск методов сокращения времени обучения и прогнозирования
электропотребления;
-
использование
метода
SVM-РЧ
для
оперативного
прогноза
электропотребления;
-
исследование
прогнозной
модели
"скользящего интервала" обучающей выборки.
SVM-РЧ
с
использованием
115
СПИСОК ЛИТЕРАТУРЫ
1. Гурский С.К. Адаптивное прогнозирование временных рядов в
электроэнергетике /С.К. Гурский // Минск: Наука и техника, 1983. - 271 с.
2.
Медянцев
Д.В.
Нейросетевая
система
прогнозирования
энергопотребления/ Д.В. Медянцев, А.В. Фирсов, Н.В. Замятин // Научная
сессия МИФИ -2003. Сборник научных трудов. - М., 2003. С.1-4: Всероссийская
научно-техническая конференция «Нейроинформатика-2003». - С. 221-226.
3. Курбацкий
В.Г.
Прогнозирование
электрической
нагрузки
с
использованием искусственных нейронных сетей / В.Г. Курбацкий, Н. В.
Томин // Электрика. -2006. - № 7. – С. 26 -32.
4. Рутковская Д. Нейронные сети, генетические алгоритмы и нечеткие
системы / Д. Рутковская, М. Пилиньский // М.: Горячая линия - Телеком,
2004, 452 с.
5. Bo-Juen Chen. Load Forecasting Using Support Vector Machines/ BoJuen Chen, W. Chang Ming // A Study on EUNITE Competition 2001, National
Taiwan University, Department of Computer Science and Information Engineering
,National Taiwan University, 2001, pp. 20 – 26.
6. Gross G. Short-term load forecasting / G. Gross, F. D. Galiana // Proceedings of the IEEE, 1987,75(12),- pp. 1558 – 1571.
7. Papalexopoulos A.D. A Regression Based Approach to Short Term Load
Forecasting / A.D. Papalexopoulos, T.C. Hesterberg // IEEE Transactions on Power Systems, 1990, 5(1), pp. 40 – 45.
8. Amjady N. Short-term hourly load forecasting using time-series modeling with peak load estimation capability / N. Amjady// IEEE Transactions on
Power Systems, 2001, 16(3), pp. 498 – 505.
9. Christianse W. Short term load forecasting using general exponential
smoothing / W. Christianse // IEEE Transactions on PAS, 1971, pp. 900 – 910.
116
10. Villalba S.A. Hybrid demand model for load estimation and shortterm load forecasting in distribution electrical systems/ S.A. Villalba, C.A. Bel //
IEEE Transactions on Power Delivery, 2000, 15(2), pp.764 – 769.
11. Engle R.F. Modeling peak electricity demand / R.F. Engle, C. Mustafa, J.
Rice // Journal of forecasting, 1992, 11, pp. 241 – 251.
12. Hyde O. An adaptable automated procedure for short-term electricity
load forecasting / O. Hyde, P.F. Hodnett // IEEE Transactions on Power Systems,
1997,12, pp. 84 – 93.
13. Ruzic S. Weather sensitive method for short-term load forecasting in
electric power utility of Serbia / S. Ruzic, A. Vuckovic, N. Nikolic // IEEE
Transactions on Power Systems, 2003, 18, pp.1581 – 1586.
14. Haida T. Regression based peak load forecasting using a transformation technique / T. Haida, S. Muto // IEEE Transactions on Power Systems,
1994, 9, pp.1788 – 1794.
15. Chen M.S. Nonparametric regression based short-term load forecasting /
M.S. Chen, P. Van // IEEE Transactions on Power Systems, 1998, 13, pp.725 –
730.
16. Alex D. Regression-Based approach to short-term system load forecasting
/ D. Alex, Papalexopoulos // IEEE Trans on Power Systems, 1990, pp.1535-1547.
17. Martin T. The times series approach to short term load forecasting / T.
Martin // IEEE Trans. On Power Systems, 1987, 2 (3). pp. 785 – 791.
18. Fan J.Y. A real-time implementation of short – term load forecasting for
distribution power systems / J.Y. Fan, J.D. McDonald // IEEE Transactions on
Power Systems, 1994, 9, pp. 988 – 994.
19. Cho M.Y. Customer short-term load forecasting by using ARIMA transfer
function model / M.Y. Cho, J.C. Hwang, C.S. Chen // Proceedings of the International Conference on Energy Management and Power Delivery, EMPD, 1995,
1, pp. 317 – 322.
117
20. Yang H.T. Identification of ARMAX model for short-term load forecasting: An evolutionary programming approach / H.T. Yang, C.M. Huang, C.L.
Huang / IEEE Transactions on Power Systems,1996, 11, pp. 403 – 408.
21. Yang H.T. A new short-term load forecasting approach using selforganizing fuzzy ARMAX models/ H.T.Yang, C.M. Huang // IEEE Transactions
on Power Systems, 1998, 13, pp. 217 – 225.
22. Irisarri G.B. Online load forecasting for energy control center application /
G.B. Irisarri, S.T. Widergren, P.D. Yehsakul / IEEE Transactions of PAS, 1982,
Vol. 101, № 1, pp. 71 - 78.
23. Bashir Z. Short term load forecasting by using wavelet neural networks /
Z. Bashir, M.E. El-Hawary // Electrical and Computer Engineering, 2000 Canadian Conference.vol.- pp. 163 - 166.
24.Надтока И.И. Вейвлет- преобразования временных рядов при
краткосрочном прогнозировании электропотребления с учётом освещенности
/ И.И. Надтока, В.А. Бугаец // Современные энергетические комплексы и
систем и управление ими: материалы XI международной науч.-практ.
конф.,г.Новочеркасск, 24 июня 2013г./ Юж. рос. гос. политехн. ун-т (НПИ)
им. М.И. Платова. – Новочеркасск: ЮРГПУ (НПИ), 2013.- С. 41-45.
25. Fogel D.B. An introduction to simulated evolutionary optimization / D.B.
Fogel // IEEE trans. Neural Nrlw., 1994, 5, (I), pp. 3-14.
26. Huang C.M. Evolving wavelet- based networks for short-term load forecasting, Generation, Transmission and Distribution / C.M. Huang, H.T. Yang //
IEE Proceedings- Volume: 148, Issue: 3, 2001, pp. 222 – 228.
27. El-Sharkawi. Electric the load forecasting using an artificial neural network / El-Sharkawi, D.C. Park // IEEE Transaction on Power Systems, 1991,6 (2)
pp. 442-449.
28. Zhao Y. Short-term load forecast based on neural network and fuzzy theory/ Y.Tang, Y. Zhang // High Voltage Engineering, 2006, 32 (5)- pp. 107-110.
118
29. Azzam-ul-Asar. Short Term Load Forecasting Using Particle Swarm
Optimization Based ANN Approach / Azzam-ul-Asar, ul Hassnain
// Interna-
tional Joint Conference on Neural Networks, 2007, pp. 1476 – 1481.
30. Cheng W. H. Short-term load with multi-step prediction method based on
chaos theory/ W.H. Cheng, W. Chen // 2007, vol.19 - pp. 76-79.
31. Peng M. Advancement in the application of neural networks for short-term
load forecasting / M. Peng, N.F. Hubele, G.G. Karady // IEEE Transactions on
Power Systems, 1992,vol. 7, pp. 250 – 257.
32. Desouky A.A. Hybrid adaptive techniques for electric-load forecast using ANN and ARIMA / A.A. Desouky, M.M. Elkateb // IEE Proceedings of
Generation, Transmission and Distribution, 2000,vol.4- pp. 213 - 217.
33. Колмогоров А. Н. Представление непрерывных функций многих
переменных суперпозицией функций одной переменной и сложением. ДАН,
1958- С. 953–956.
34. Осовский С. Нейронные сети для обработки информации, Изд-во:
Финансы и статистика, 2002, 344 с.
35.Губский
С.О.
учет
освещенности
при
краткосрочном
прогнозировании электропотребления для региональных диспетчерских
управлений / С.О. Губский // Автореферат, диссертации на соискание ученой
степени кандидата технических наук, Новочеркасск – 2012, 23с.
36. Гофман А.В. Повышение точности краткосрочного и оперативного
прогнозирования
электропотребления
энергосистемы
с
применением
искусственной нейронной сети / А.В. Гофман, А.С. Ведерников, Е.С.
Ведерникова // электрические станции, 2012, No.7, С. 36-41.
37. Papalexopoulos A.D. An implementation of a neural network based
load forecasting model for the EMS/ A.D. Papalexopoulos, S. Hao, T.M. Peng
// IEEE Transactions on Power Systems, 1994, vol. 9, pp. 1956 –1962.
38. Khotanzad A. ANNSTLF - A neural-network-based electric load forecasting system. IEEE Transactions on Neural Networks, vol. 8 1997- pp. 835 –
846.
119
39. Khotanzad A. ANNSTLF – Artificial neural network short-term load
forecaster - Generation three / A. Khotanzad, R.A. Rohani, D. Maratukulam //
IEEE Transactions on Neural Networks, 1998, vol.13, pp. 1413– 1422.
40. Chen C.S. The application of artificial neural networks to substation load
forecasting Electric Power Systems Research / C.S. Chen, Y.M. Tzeng,
J.C. Hwang // 1996- Vol. 38, Issue 2, pp. 153-160.
41. Chow T.W. Nonlinear autoregressive integrated neural network model
for short-term load forecasting / T.W. Chow, C.T. Leung // IEE Proceedings, Generation, Transmission and Distribution, 1996,vol.143, pp. 500 – 506.
42. Skarman S.E. Short-term electrical load forecasting using a fuzzy
ARTMAP neural network / S.E. Skarman, M. Georgiopoulous // Proceedings of
the SPIE, 1998, pp. 181 - 191.
43. Курбацкий В.Г. Практика использования новых информационных
технологий для прогнозирования
и анализа отдельных характеристик
сетевых энергопредприятий. Информационная техника и технологии в
энергетике / В.Г. Курбацкий, Н.В. Томин // Братский государственный
университет, г.Братск - 2004, С. 85-91.
44. Kiartzis S.J. A Fuzzy expert system for peak load forecasting. Application to the Greek power system / S.J. Kiartzis, A.G. Bakirtzis// 10th Mediterranean Electrotechnical Conference, 2000, vol. 3, pp. 1097 –1100.
45. Miranda V. Fuzzy inference in spatial load forecasting, Power Engineering Winter Meeting / V.Miranda, C. Monteiro // IEEE, 2000, vol. 2, pp. 1063 –
1068.
46. Kim K.H. Short-term load forecasting for special days in anomalous
load conditions using neural networks and fuzzy inference method / K.H.
Kim, H.A. Youn, Y.C. Kang // IEEE Transactions on Power Systems, 2000, vol.
15, pp. 559 – 565.
47. Thai N. Short-Term Load Forecasting Based on Adaptive Neuro-Fuzzy
Inference System / N. Thai, L. Yuan // Journal of computers, vol. 6, 2011- pp.
2267-2271.
120
48. Hwan K.J. A short-term load forecasting expert system / K.J. Hwan,
G.W. Kim // Proceedings of The Fifth Russian-Korean International Symposium
on Science and Technology, 2001, pp. 112 – 116.
49. Ho K.L. Short-term load forecasting of Taiwan power system using a
knowledge based expert system / K.L. Ho, Y.Y. Hsu, C.F Chen// IEEE Transactions on Power Systems, 1990, vol. 5, pp. 1214 – 1221.
50. Rahman S. Load forecasting for multiple sites: development of an
expert system-based technique/ S. Rahman, O. Hazim // Electric Power Systems
Research, 1996, vol. 39, pp. 161 – 169.
51. Hastie T. The elements of statistical learning: data mining, inference
and prediction/ R. Tibshirani, J. Friedman // Springer, New York, 2001, Second
Edition, 763 p.
52. Han J. Data Mining: Concepts and Techniques, San Francisco, California / J. Han, M. Kamber // Elsevier Inc. All rights reserved 2001, 703.
53. Mori H. Optimal regression tree based rule discovery for short-term load
forecasting/ H. Mori, N.Kosemura // Proceedings of the IEEE Power Engineering
Society Transmission and Distribution Conference, 2001,vol. 1, pp. 421 – 426.
54. Vapnik V.N. Support-Vector Networks, Machine Learning,20,1995.
http://www.springerlink.com/content/k238jx04hm87j80g/.
55. Надтока И.И. Краткосрочное прогнозирование электропотребления с
помощью метода наименьших квадратов опорных векторов (LS-SVM) /
И.И.Надтока, Б.М. Аль Зихери // Современные проблемы науки и
образования [Электронный ресурс].- 2013, № 6. Режим доступа:
http://www.science-education.ru/113-11213.
56. Heng E.T. Short term load forecasting using genetic algorithm and
neural networks/ E.T. Heng , D. Srinivasan // International Conference on power
delivery, March 1998 Vol. 2, pp. 576 - 581
57. Worawit T. Substation short term load forecasting using neural network with genetic algorithm / T. Worawit, C. Wanchai // IEEE Conference on
Computers, Communications, 2002, pp. 1787 - 1790.
121
58. Chao M. H. Time series approach to short term load forecasting
through evolutionary programming structures / M. H. Chao, Y. Hong // Proceedings International Conference on; Energy Management and Power Delivery;
1995, vol.2, pp. 583 - 588.
59. Erkmen I. Short term load forecasting using genetically optimized
neural network cascaded with a modified Kohonen clustering process / I.
Erkmen, A. Ozdogan // Proceedings IEEE International Symposium on; 1997,
pp. 107 – 112.
60. Yan Y. BP-GA mixed algorithms for short-term load forecasting / Y. Yan,
Z. Gang, L. Ding // International Conferences on; 2001, Vol. 4, pp. 334 - 339 .
61. Limin H. Short-term load forecasting based on the method of genetic
programming/ H. Limin, F. Xinqiao, X. Yunfang, Y. Jinliang // International
Conference on Mechatronics and Automation, 2007, pp. 839 – 843.
62. Wei S. Short Term Load Forecasting Based on BP Neural Network
Trained by PSO/ S. Wei, Z. Ying // International Conference on Machine Learning and Cybernetics, 2007 , Vol. 5, 2007, pp. 2863 – 2868.
63. Bashir Z.A. Short-Term Load Forecasting Using Artificial Neural
Network Based on Particle Swarm Optimization Algorithm / Z.A. Bashir, M.E.
El-Hawary // Canadian Conference on Electrical and Computer Engineering,
2007, pp. 272 – 275.
64. You Y. Short-term load forecasting using artificial immune network /
Y. You , W. Sheng // International Conference on Power System Technology
Vol. 4, 2002, pp. 2322 - 2325.
65. Chengqun Y. Hybrid Neural Network Model for Short Term Load
Forecasting / Y. Chengqun, K.Lifeng, S.Wei // Proceedings of the Third International Conference on Natural Computation – Vol. 01, 2007- pp. 408-412.
66. Juang C.F. A hybrid of genetic al gorithm and particle swarm optimization
for recurrent network design/ C.F. Juang // IEEE Trans. on systems, Man and Cybernetics-Part B: Cybernetics, vol. 34, No.2, 2004, pp. 997-1006.
122
67. Надтока И.И. Краткосрочное прогнозирование нагрузки на основе
нейронной сети с использованием метода роя частиц / И.И. Надтока, Б.М.
Аль зихери // Современные энергетические системы и комплексы и
управление ими: материалы XI международной научно – практической конф.
г.новочеркасск / Юж-Рос. Техн. ун-т (НПИ) - Новочеркасск 2013, С. 34–38.
68. Shayeghi H. Multi-stage fuzzy load frequency control using PSO/ H.
Shayeghi, A. Jalili // Energy Conversion and Management, vol. 49, 2008, pp.
2570–2580.
69. Zhang C. Particle swarm optimization for evolving artifical network / C.
Zhang, H. Shao // Proc. of IEEE Int. Conf. on Systems., Man and Cybernetics ,
vol. 4, 2000, pp. 2487-2490.
70. Mendes R. Particle swarms for feed forward neural network training / R.
Mendes, P. Cortez, J. Neves // Proc. Int. Joint Conf. on Neural Networks , vol. 2,
2002, pp. 1895-1899.
71. Методика контроля точности прогноза потребления: Распоряжение
руководителя оперативного штаба по совершенствованию конкурентного
балансирующего рынка ОАО «Системный оператор единой энергетической
системы» от 14 апреля 2011 № 132.
72. Erkmen I. Short Term Load Forecasting Using Genetically Optimized Neural Network Cascaded With a Modified Kohonen Clustering Process/ I.
Erkmen, A. Oezdogan // Proceedings of the 12th IEEE International Symposium
on Intelligent Control, 1997, 1, pp. 107 – 112.
73.Тимченко
нерегулярных
В.Ф.
дней/
Прогнозирование
В.Ф.
режимов
Тимченко,
А.М.
электропотребления
Меламед,
А.М.
Скрипко//Электрические станции. -1987. № 5.-С. 52-57.
74. Akbar E. Holidays short-term load forecasting using fuzzy improved similar day method / E. Akbar, M. Amir // International Transactions on Electrical
Energy Systems, 2013,Vol. 23, Issue 8, pp. 1254–1271.
123
75. Староверов Б.А. Комплексное применение нейронных сетей для
автоматизации
прогнозирования
электропотребления
на региональном
уровне, Вестник ИГЭУ, Вып. 4 2009 – С. 1-4.
76. Алексеева И. Ю. Краткосрочное краткосрочное прогнозирование
электропотребления в электроэнергетических системах с использованием
искусственных нейронных сетей, диссертации Иваново – 2014.
77. Ayca K.T. Intelligent short-term load forecasting in Turkey. Electrical
Power and Energy Systems 28, 2006, pp. 437–447.
78. Шумилова Г.П. Краткосрочное прогнозиро- вание электрических
нагрузок с использованием искусственных нейронных сетей / Г.П.
Шумилова, Н.Э. Готман, Т.Б. Старцева // Электричество, 1999. – № 10. – C. 612.
79. Shayeghi H. STLF Based on Optimized Neural Network Using PSO. International Journal of Electrical and Computer Engineering , 2009, pp. 4:10.
80. Song Y. Power system short-term load forecasting based on PSO clustering analysis and Elman neural network. Conf. on simulation , modelling and optimization, 2005, pp. 268-273.
81. David J. Training Feedforward Neural Networks Using Genetic Algorithms. Mouiton St. Cambridge, MA 02138, pp. 762- 767.
82.
Сердюкова
Г.Н.
Прогнозирование
электропотребления
с
использованием нейро-нечетких сетей / Г.Н. Сердюкова, А.А.Загайнова,
Ю.Ю.Хмеленко // Харьковский политехнический институт, г. Харьков, С.
229-233.
83. Петрова И.Ю. Прогнозирование электропотребления с помощью
нейро-нечеткой системы anfis. Алгоритм отбора входных переменных/ И.Ю.
Петрова, А.А. Глебов // Электронное научное издание(наука и образование),
2014. С. 12-15.
84..Надтока
И.И.
Модель
прогнозирования
электропотребления
энергорайонов на территории операционных зон РДУ с учетом влияния
метеофакторов на основе нейронечеткой сети и вейвлет-разложения / И.И.
124
Надтока, В.А. Бугаец // Электроэнергетика глазами молодежи:
науч. тр.
IVмеждунар. науч.-техн. конф., Юж.-Рос. гос. политехн. ун-т (НПИ) имени
М.И. Платова. – Новочеркасск: Лик, 2013. - С. 183-186.
85. Rustum M.
A fuzzy inference model for short-term load forecast-
ing//Energy Policy, 2009, vol. 37 - pp.1239–1248.
86. Chen T. A collaborative fuzzy-neural approach for long-term load forecasting in Taiwan // Journal homepage: www.elsevier.com, 2011- pp. 476- 484.
87. Ronaldo R.B. Combined Artificial Neural Network and adaptive NeuroFuzzy Inference System for Improving a Short-Term Electric Load Forecasting//
Springer-Verlag Berlin Heidelberg 2007, pp. 779–788.
88. Yun Lu. A Short-Term Load Forecasting Method Based on RBF Neural
Network and Fuzzy Reasoning // Springer -Verlag Berlin Heidelberg, 2009, Vol. 2,
pp. 1131–1139.
89. Turgay P. Wavelet and neuro-fuzzy conjunction model for precipitation
forecasting //Journal of Hydrology, 2007, pp.199– 212.
90. Валь П.В. Прогнозирование электропотребления с использованием
авторегрессионного метода / П.В. Валь, А.С. Торопов // XVI Международная
научно-практическая конференция (современная техника и технологии), 2009
- С. 23-24.
91. Hongzhan NI. Hybrid of ARIMA and SVMs for Short-Term Load Forecasting // International Conference on Future Energy, Environment, and Materials,
2012- pp. 1455-1460.
92.
Гуртовцев
Выравнивание
А.Л.
графика
/
Электрическая
А.Л.
Гуртовцев,
нагрузка
Е.П.
энергосистемы.
Забелло//
Новости
Электротехники. – 2008. - №5 (53). – С. 18-23.
93. Седов А.В. Системы контроля, распознавания и прогнозирования
электропотребления: модели, методы, алгоритмы и средства / А.В. Седов,
И.И. Надтока.- Ростов-н/Д: Из-во Ростов.ун-та, 2002.– 320 с.
94. Растригин Л.А. Введение в идентификацию объектов управления/
Л.А. Растригин, Н.Е. Маджаров. - М.: Энергия, 1977. - 216 с.
125
95.
Лукашин
Ю.П.
Адаптивные
методы
краткосрочного
прогнозирования временных рядов / Ю.П. Лукашин. - М.:Финансы и
статистика, 2003. – 415с.
96.
Макоклюев
Б.И.
Моделирование
электрических
нагрузок
электроэнергетических систем / Б.И. Макоклюев, В.Н. Костиков //
Электричество.– 1994.- № 10. – С. 13-16.
97. Гигиенические требования к микроклимату производственных
помещений.
Санитарные
правила
и
нормы
СанПиН
2.2.4.548-96
[Электронный ресурс]/ Российская газета. – Москва: Постановлением
Госкомсанэпиднадзора России от 1 октября 1996 г. № 21 . – Режим доступа:
http://www.rg.ru/2010/07/15/sanpin548-dok.html/.
–
Российская
газета.
Документы.
98. Шнейдер А.М. Суточное прогнозирование нагрузки ЭЭС с учетом
прогнозов температуры/ А.М. Шнейдер, Т.А. Такерева, Д.А. Шиффман//
Сравнительные
модели
прогнозирования
электрической
нагрузки
энергосистем», пер. с англ. - М.: Энергоатомиздат, 1987. – С. 74-91.
99. Технологии анализа данных [Электронный ресурс]/ BaseGroupLabs –
2011. – Режим доступа: http://www.basegroup.ru/deductor/description/
100. Надтока И.И. Система контроля естественной освещенности для
прогнозирования электропотребления/ И.И. Надтока, А.В. Демура, Д.В.
Безъязычный, В.В. Горбачев// Изв. вузов. Электромеханика. - 2008. – Спец.
вып. - С. 166 - 167.
101. Надтока И.И. Анализ зависимостей электропотребления от
температуры воздуха и освещенности в операционной зоне Ростовского РДУ/
И.И. Надтока, С.О. Губский// Изв. вузов. Электромеханика. - 2009. – Спец.
вып. - С. 105-107.
102. Надтока И.И. Анализ зависимостей электропотребления от
метеофакторов в операционной зоне Кубанского РДУ/ И.И. Надтока, С.О.
Губский// Изв. вузов. Электромеханика. - 2010. – Спец. вып. - С. 106-108.
126
103. Galiana F. D. Identification of stochastic electric load models from physical data // F. D. Galiana, E. Handschin, A.Fiechter/ IEEE Trans., Ac-19. - 1974. №6. - pp. 887-893.
104. Бейкер А.Б. Прогнозирование нагрузки с упреждением от 3-4 до 2436 ч. для управления генерацией в большой объединенной энергосистеме//
Сравнительные
модели
прогнозирования
электрической
нагрузки
энергосистем : пер. с англ. - М.: Энергоатомиздат, 1987. – С. 50-59.
105. Отчет о научно-исследовательской работе к договору № 225/605 от
25.02.2009 г.: Создание математических прогнозных моделей, алгоритмов и
программного
обеспечения
прогнозирования
электропотребления
для
региональных и объединенных диспетчерских управлений РФ (на примере
ОДУ Юга), на основе математической прогнозной модели, отработанной в
Ростовской области и Республике Калмыкия: отчет о НИР в 2 т. Т. 1/ И.И.
Надтока [и др.]. – Новочеркасск.: ООО НПП «ВНИКО», 2010. – 136 с.
106. Макоклюев Б.И. Влияние колебаний метеорологических факторов
на энергопотребление энергообъединений/ Б.И. Макоклюев, В.С. Павликов,
А.И. Владимиров, Г.И. Фефелова// Энергетик. - 2003. - №6. – С. 14-19.
107. Томбасова А.А. Оценка зависимости режима электропотребления
от влияния различных факторов [Электронный ресурс]// Сибирский
федеральный университет. - 2010. – Режим доступа - http://conf.sfukras.ru/sites/ mn2011/thesis/s4/s4_157.pdf
108.
Надтока
краткосрочного
Надтока,
И.И.
Байесовская
прогнозирования
Б.М. Аль Зихери
нейросетевая
модель
электропотребления региона
/
для
И.И.
// Студенческая научная весна // материалы
региональной научно-практической конференции студентов, аспирантов и
молодых ученых вызов Ростовской области/ Юж.-Рос. гос. техн. ун-т.Новочеркасска: ЮРГПУ (НПИ), 2012.- С.136-138.
109. Liao C. Application of a fuzzy neural network combined with a chaos
genetic algorithm and simulated annealing to short-term load forecasting / C. Liao,
127
T.P. Tsao // IEEE Trans. on Evolutionary. Computation, vol. 10, No. 3, 2006, pp.
330-340.
110. Asar A. Short-term load forecasting using particle swarm optimization
based ANN approach / A. Asar, A. Khan // Proc. of IEEE Int. Joint Conf. on Neural Networks, Orlando, Florida, USA, 2007, pp. 6-12.
111. Bashir Z. A. Short-term load forecasting using artificial neural network
based on particle swarm optimization algorithm/ Z. A. Bashir, M. E. El-Hawary //
Proc. of IEEE Electrical and Computer Engineering Canadian Conf., 2007, pp.
272-275.
112. Zhang J.R. A hybrid particle swarm optimization-back propagation algorithm for feed-forward neural network training / J.R. Zhang, M. R. Lyu // Applied Mathematics and Computation, vol. 185, 2007, pp. 1026-1037.
113. Ling S. H. A novel genetic-algorithm-based neural network for shortterm load forecasting / S. H. Ling, F. H. Leung, H. K. Lam, P.K. Tam // IEEE
Trans. on Industrial Electronics, vol. 50, No. 4, 2003, pp. 793-799.
114. Rothe J. P. Short term load forecasting using multi parameter regression
/ J. P. Rothe , A. K. Wadhwani// International Journal of Computer Science and Information Security,Vol. 6, No. 2, 2009, pp. 303-306.
115. Sunil Kumar J. Load forecasting of adama university by implementing
fuzzy logic controller / J. Sunil Kumar, P. Arun Kumar. // International Journal of
Advanced Research in Electrical,Electronics and Instrumentation Engineering,
Vol. 2, 2013- pp. 6352-6362.
116. Ismail Z. Forecasting peak load electricity demand using statistics and
rule based approach / Z. Ismail, A. Yahya // American Journal of Applied Sciences
Vol. 6, 2009 - pp. 1618-1625.
117. Губский
С.О.
Анализ
влияния
метеофакторов
на
электропотребление в зоне действия Кубанского РДУ // Студенческая
научная
весна-2011:
материалы
региональной
научно-практической
конференции студентов, аспирантов и молодых ученых вызов Ростовской
128
области/ Юж.-Рос. гос. техн. ун-т.- Новочеркасска: ЮРГТУ (НПИ), 2011.-С.
312-314.
118. Надтока И.И. Прогнозирование электропотребления с учетом
температуры воздуха и естественной освещенности для региональных
диспетчерских управлений / И.И. Надтока, А.В. Демура, С.О. Губский, А.Я.
Ваколюк, В.В. Горбачев// Вестник СамГТУ.-2012, No. 1(33) – С.163 – 168.
119. Kennedy J. The Behavior of Particles// Proceedings of the 7th International conference on evolutionary programming, 1998- pp. 581-589.
120. Huang H.G. A new artificial intelligent peak power load forecaster based
on non-fixed neural networks / H.G. Huang, R.C. Hwang, J.G. Hsieh // Electrical
Power Energy System 2002; 24- pp. 245–250.
121- Iizaka T. A novel daily peak load forecasting method using analyzable
structured neural network/ T. Iizaka, T. Matsui, Y. Fukuyama //IEEE T&D
Asia,Yokohama 2002, pp. 1–6.
122. Amjady N. Short-term hourly load forecasting using time-series modeling
with peak load estimation capability. IEEE Trans Power Syst 2001;16(4)- pp. 798–
805.
123. Zivanovic R. Local regression based short-term load forecasting // Intell
Robotic Syst 2001; 31- pp. 115–127.
124. Hsu C.C. Regional load forecasting in Taiwan – applica-tions of artificial
neural networks / C.C. Hsu, C.Y. Chen // Energy Convers Manage 2003;44- pp.
1941–1949.
125. Khotanzad A. ANNSTLF –artificial neural network short-term load forecaster – generation three/ A. Khotanzad, R. Afkhami, D. Maratukulam // IEEE
Trans Power Syst 1998;13(4)- pp. 1413–1422.
126. Murto P. Neural network models for short-term load forecasting / P. Murto
// Thesis, Helsinki University of Technology, Department of Engineer-ing Physics
and Mathematics; 1998, pp. 1302-1308.
129
127. Saini L.M. Artificial neural network based peak load forecasting using
Levenberg–Marquardt and quasi-Newton methods / L.M. Saini, M.K. Soni // IEE
Proc-Gener Transm Distrib 2002, pp. 578- 584.
128. Nadtoka I.I. Short term load forecasting by using MLPNN trained by self
organizing method / I.I. Nadtoka, B.M. Al-Zihery // Международная научнопрактическая конференция, Методы и алгоритмы прикладной математики в
технике, медицине и экономике: материалы XIII международной науч.-практ.
конф., г.Новочеркасск, 12 марта 2013 / Юж.-Рос. гос. политехн. ун-т. (НПИ)
имени М.И. Платова- Новочеркасск: 2013- с.61-66.
129. Oja M. Bibliography of self-organizing map (SOM) / M. Oja, S. Kaski,
T. Kohonen // papers: 1998–2001 Addendum. Neural Comput Surveys 2002, vol.
3, pp. 150–156.
130. Carpinteiro A.S. A hierarchical neural model in short-term load forecasting / A.S. Carpinteiro., Da Silva Alves // IEEE 2000 - pp. 120–124.
131. Vesanto J. Clustering of the self-organizing map/ J. Vesanto, E.
Alhoniemi // IEEE Trans Neural Networks 2000, vol. 11(3) - pp. 586–600.
132. Fay D. Establishing a Solution Strategy for Electrical Demand Forecasting in Ireland / D. Fay, J.V. Ringwood, M. Condona -: Ireland, 2000, pp.1-24.
133. Brown M. Neuro-Fuzzy Adaptive Modelling and Control / M. Brown, C.
Harris // Prentice-Hall, Upper Saddle River, New Jersey, Book, 1994, 250 p.
134. Novák I. V. Mathematical Principles of Fuzzy Logic, Kluwer Academic
Publishers ,USA, 1999, 249 p.
135. Jang J.S.R. Neuro-Fuzzy and Soft Computing / J.S.R. Jang, C.T. Sun, E.
Mizutani // Computational Approach to Learning and Machine Intelligence. Prentice-Hall, Eaglewood cliffs, NJ, 1997, pp. 503–534.
136. Jang J.S.R. Rule extraction using generalized neural networks/ J.S.R.
Jang // Proceedings of the IFSA World Congress 1991, vol. 4, pp. 82–86.
137. Надтока И.И. Краткосрочное прогнозирование электропотребления
на основе адаптивной нейро- нечеткой сети/ И.И. Надтока, Б.М. Аль зихери
//Современные энергетические системы и комплексы и управление ими,
130
Материалы 12-ой международной научно – практической конференции,
Новочеркасск, 2014, С.49 – 55.
138. Alex J. S. A Tutorial on Support Vector Regression / J. S. Alex, S.
Bernhard // Statistics and Computing, Kluwer Academic Pub., vol. 14, 2004, pp.
199–222.
139. Christopner J.C. A Tutorial on Support Vector Machines for Pattern
Recognition//Journal of Data Mining and Knowledge Discovery, vol. 2, Springer,
Netherlands, 1998, pp. 1- 43.
140. Stefan R. Support Vector Machines and Learning About Time / R.
Stefan, M. Katharina // Proc. of IEEE ICASSP - 03, Hong Kong, 2003,vol. 4, pp.
864-867.
141. Надтока И.И. Краткосрочное прогнозирование электропотребления
с помощью метода наименьших квадратов опорных векторов/ И.И. Надтока,
Б.М. Аль Зихери // Электроэнергетика глазами молодежи: научные труды
международной научно-технической конференции: сборник статей / Юж.Рос. гос. политехн. ун-т. (НПИ) имени М.И. Платова- Новочеркасск: 2013С.190-194.
142.
Suykens
J.
Least
Squares
Support
Vector
Machines,
http://www.esat.kuleuven.ac.be/sista/members/suykens.html, 2002, 84 p.
143. Надтока И.И. Краткосрочное прогнозирование электропотребления
региона с учетом метеофакторов на основе метода опорных векторов и
алгоритма роя частиц/ И.И. Надтока, Б.М. Аль Зихери // Изв. вузов.
Электромеханика. 2014 - № 3.- С. 44-48.
144. Надтока И.И. Краткосрочное прогнозирование нагрузки с учетом
метеофакторов на основе теории опорных векторов и алгоритма роя частиц /
И.И. Надтока, Б.М. Аль Зихери // Компьютерные технологии в науке
производстве, социальных и экономических процессах: материалы XIV
международной науч.-практ. конф., г. Новочеркасск, 12 декабря 2014 г. /
Юж.-Рос. гос. политехн. ун-т. (НПИ) имени М.И. Платова- Новочеркасск:
2014- С.93-98.
131
145. Xiang L.I. A new Support vector machines optimized by PSO and its application / L.I. Xiang, Y. Shang-dong // North China Electric power University ,
2006, Vol.13. No.5, pp. 568- 572.
146. Shayeghi H. Short-term load forecasting Based on Optimized Neural
Network using PSO/ H. Shayeghi, H.A.Shayanfar, G. Azimi // International Journal of Electrical and Computer Engineering 2009, Vol.3 pp. 874-884.
132
Приложение 1
Листинг программы реализации нейронной сети
close all
clc
p= insumer; % INPUTS
t= targsumer; % OUTPUTS
[Pw,ps1] = mapstd(p);
[ptrans,ps2] = processpca(Pw,0.02);
[Tw,ts] = mapstd(t);
% [mX,nX]=size(p);
[mY,nY]=size(t);
nTest=275;
mX=75;
Xn1=ptrans(:,1:(nTest-mX));
Xn2=ptrans(:,(nTest-mX+1):nTest);
Yn1=Tw(:,1:(nTest-mX));
Yn2=Tw(:,(nTest-mX+1):nTest);
Y1=t(:,1:(nTest-mX));
Y2=t(:,(nTest-mX+1):nTest);
% [pn,minp,maxp,tn,mint,maxt] = premnmx(p,t);
% % [ptrans,transMat] = prepca(pn,0.02);
% % [ptransn,minptrans,maxptrans]=premnmx(ptrans);%new
net = newp(Xn1,Yn1,'purelin');
net.trainFcn = 'traingd';
net.trainParam.IPF='removeconstantrows';
net.trainParam.OPF='removeconstantrows';
net.trainParam.PF = 'mae';
net.performParam.goal = 0.00001;
net.performParam.ratio = 0.005;
net.trainParam.epochs=5000;
net.trainParam.cm = 0.3;
net.trainParam.lr = 0.3;
init(net)
net = train(net,Xn1,Yn1);
Ybn1 = sim(net,Xn1);
atrain = mapstd('reverse',Ybn1,ts);
Ybn2 = sim(net,Xn2);
atest = mapstd('reverse',Ybn2,ts);
disp('fitting Error is:');
r=0;
for n=1:24 ;
r=r+((abs(Y1(n,200)-atrain(n,200)))/Y1(n,200));
end
133
avretrain=(r/24)*100;
% Err_Bp1=sqrt(sumsqr(Y1'-Yb1)/(size(Yn1,2)));
disp( avretrain);
disp('testing Error is:');
r=0;
for n=1:24 ;
r=r+((abs(Y2(n,75)-atest(n,75)))/Y2(n,75));
end
avretest=(r/24)*100;
% Err_Bp2=sqrt(sumsqr(Y2'-Yb2)/(size(Yn2,2)));
disp(avretest);
figure(1);
plot(Y1(:,200),'');
hold on;
plot(atrain(:,200),'r');
legend('actual','forcast');
title('load training');
xlabel('hour');
ylabel('load');
figure(2);
plot(Y2(:,75),'');
hold on;
plot(atest(:,75),'r');
legend('actual','forcast');
title('load testing');
xlabel('hour');
ylabel('load');
134
Приложение 2
Листинг программы реализации нейронной сети с рой частиц
% Clear screen and memory
% clc
% clear
%Load data
% load dataOTH input output
%Define number of neurons
inputnum=4;
hiddennum=8;
outputnum=1;
%total number of neurons
numsum=inputnum*hiddennum+hiddennum+hiddennum*outputnum+outputnu
m;
input=itrain1;
output=otrain;
%Define data for train and test
input_train=itrain1(1:4,1:6528);
% input_test=itrain1(1:2,6001:6600);
output_train=otrain(1,1:6528);
% output_test=otrain(1,6001:6600);
%Data normolization
[inputn,inputps]=mapminmax(input_train);
[outputn,outputps]=mapminmax(output_train);
%Construct the network
net=newff(inputn,outputn,hiddennum);
% Parameters for speed update
c1 = 1.49445;
c2 = 1.49445;
maxgen=30;
sizepop=20;
% Number of Iteration
%Pop size
% Define individual and speed limits
Vmax=1;
Vmin=-1;
popmax=5;
popmin=-5;
for i=1:sizepop
pop(i,:)=5*rands(1,numsum);
V(i,:)=rands(1,numsum);
fitness(i)=fun(pop(i,:),inputnum,hiddennum,outputnum,inputn,outputn
);
135
end
% Search the initial extreme value
[bestfitness bestindex]=min(fitness);
zbest=pop(bestindex,:);
%Group EV position
gbest=pop;
%Individual EV position
fitnessgbest=fitness;
%Individual fitness
fitnesszbest=bestfitness;
%Group fitness
%% Iterations
for i=1:maxgen
i;
for j=1:sizepop
%Speed update
V(j,:) = V(j,:) + c1*rand*(gbest(j,:) - pop(j,:)) +
c2*rand*(zbest - pop(j,:));
V(j,find(V(j,:)>Vmax))=Vmax;
V(j,find(V(j,:)<Vmin))=Vmin;
%Particle update
pop(j,:)=pop(j,:)+0.2*V(j,:);
pop(j,find(pop(j,:)>popmax))=popmax;
pop(j,find(pop(j,:)<popmin))=popmin;
pos=unidrnd(numsum);
if rand>0.95
pop(j,pos)=5*rands(1,1);
end
%Fitness of new particles
fitness(j)=fun(pop(j,:),inputnum,hiddennum,outputnum,inputn,outputn
);
end
%Updates for individual and group extreme values
for j=1:sizepop
%Update for group extreme value
if fitness(j) < fitnessgbest(j)
gbest(j,:) = pop(j,:);
fitnessgbest(j) = fitness(j);
end
%Update for individual extreme value
if fitness(j) < fitnesszbest
zbest = pop(j,:);
fitnesszbest = fitness(j);
end
end
136
yy(i)=fitnesszbest;
end
%%
figure(1)
plot(yy)
title('The Best Individual Fitness','fontsize',12)
xlabel('Number of
Iteration','fontsize',12);ylabel('Fitness','fontsize',12);
x=zbest;
%%
% %
w1=x(1:inputnum*hiddennum);
B1=x(inputnum*hiddennum+1:inputnum*hiddennum+hiddennum);
w2=x(inputnum*hiddennum+hiddennum+1:inputnum*hiddennum+hiddennum
+hiddennum*outputnum);
B2=x(inputnum*hiddennum+hiddennum+hiddennum*outputnum+1:inputnum
*hiddennum+hiddennum+hiddennum*outputnum+outputnum);
net.iw{1,1}=reshape(w1,hiddennum,inputnum);
net.lw{2,1}=reshape(w2,outputnum,hiddennum);
net.b{1}=reshape(B1,hiddennum,1);
net.b{2}=reshape(B2,outputnum,1);
net.trainParam.epochs=500;
net.trainParam.lr=0.9;
net.trainParam.goal=0.001;
net.trainParam.max_fail=6;
net.trainParam.min_grad=1e-15;
net.trainParam.showWindow=1;
net.trainFcn='trainlm';
%
[net,per2]=train(net,inputn,outputn);
an1=sim(net,inputn);
train_simu=mapminmax('reverse',an1,outputps);
%%
%
% inputn_test=mapminmax('apply',input_test,inputps);
% an=sim(net,inputn_test);
% test_simu=mapminmax('reverse',an,outputps);
% error=test_simu-output_test;
% variance=error./output_test;
% mseindepth=mse(error(1,:));
% avgerrorindepth=mean(error(1,:));
% mseinra1=mse(error(2,:));
% avgerrorinra1=mean(error(2,:));
%% Plot prediction result
% figure(1)
% plot(test_simu(1,:),'og')
% hold on
137
% plot(output_test(1,:),'-*');
% legend('Predicted output','Experimental output')
% title('BP Network Prediction','fontsize',12)
% ylabel('Depth(um)','fontsize',12)
% xlabel('Test Samples','fontsize',12);
% r=0;
% for m=1:24 ;
%
r=r+((abs(otrain(1,6000+m)test_simu(1,m)))/otrain(1,6000+m));
% end
%
MAPEts=(r/24)*100;
r2=0;
for m=1:24 ;
r2=r2+((abs(otrain(1,6504+m)train_simu(1,m+6504)))/otrain(1,6504+m));
end
MAPEtr=(r2/24)*100;
% figure(2)
% actualWithPredicted1(1,:)= otrain(1,6577:6600);
% actualWithPredicted1(2,:)= test_simu(1,1:24);
% plot(1:24,actualWithPredicted1);
% graph = ['Mean Absolute Error =',num2str(MAPEts)];
% title(graph);
% legend('Actual','Forecasted');
figure(3)
actualWithPredicted2(1,:)= otrain(1,6505:6528);
actualWithPredicted2(2,:)= train_simu(1,6505:6528);
plot(1:24,actualWithPredicted2);
graph = ['Mean Absolute Error =',num2str(MAPEtr)];
title(graph);
legend('Actual','Forecasted');
138
Приложение 3
Листинг программы реализации самоорганизующихся карт
mmin = min(insumer(:));
mmax = max(insumer(:));
datasumer= (insumer-mmin) ./ (mmax-mmin);
net = selforgmap([2 2]);
view(net)
net.trainParam.epochs = 5000;
[net,tr] = train(net,insumer);
nntraintool
y = net(insumer);
cluster_index = vec2ind(y);
% optimization cluresting by minimum distance
distances = dist(insumer',net.IW{1}');
plotsom(net.iw{1,1},net.layers{1}.distances);
hold off
function out1 = selforgmap(varargin)
%SELFORGMAP Self-organizing map.
%
% For an introduction use the Neural Clustering Tool <a
href="matlab: doc nctool">nctool</a>.
% Click <a href="matlab:nctool">here</a> to launch it.
%
% Self-organizing maps learn to cluster data based on similarity,
% topology, with a preference (but no guarantee) of assigning
the same
% number of instances to each class.
%
% <a href="matlab:doc
selforgmap">selforgmap</a>(dimensions,coverSteps,initNeighbor,to
pologyFcn,distanceFcn)
% takes a row vector defining the size of an N-dimensional neuron layer,
% the number of training steps for initial covering of the input space,
% the initial neighborhood size, and topology and distance
functions,
% and returns a self-organizing map.
%
% The input size is set to 0. This size will automatically be
configured
% to match particular data by <a href="matlab:doc
train">train</a>. Or the you can manually configure
% inputs and outputs with <a href="matlab:doc configure">configure</a>.
%
% Defaults are used if <a href="matlab:doc
selforgmap">selforgmap</a> is called with fewer arguments.
139
% The default arguments are ([8 8],100,3,'<a href="matlab:doc
hextop">hextop</a>',<a href="matlab:doc
linkdist">linkdist</a>').
%
% Here a network is used to map a simple set of data.
%
%
x = <a href="matlab:doc
simplecluster_dataset">simplecluster_dataset</a>;
%
net = <a href="matlab:doc selforgmap">selforgmap</a>([8
8]);
%
net = <a href="matlab:doc train">train</a>(net,x);
%
<a href="matlab:doc view">view</a>(net)
%
y = net(x);
%
classes = <a href="matlab:doc vec2ind">vec2ind</a>(y);
%
% See also LVQNET, COMPETLAYER, SELFORGMAP, NCTOOL.
% Mark Beale, 11-31-97
% Copyright 1992-2010 The MathWorks, Inc.
% $Revision: 1.1.10.4 $ $Date: 2010/10/08 17:11:46 $
%% =======================================================
% BOILERPLATE_START
% This code is the same for all Network Functions.
persistent INFO;
if isempty(INFO), INFO = get_info; end
if (nargin > 0) && ischar(varargin{1})
code = varargin{1};
switch code
case 'info',
out1 = INFO;
case 'check_param'
err = check_param(varargin{2});
if ~isempty(err), nnerr.throw('Args',err); end
out1 = err;
case 'create'
if nargin < 2, nnerr.throw('Not enough arguments.'); end
param = varargin{2};
err = nntest.param(INFO.parameters,param);
if ~isempty(err), nnerr.throw('Args',err); end
out1 = create_network(param);
out1.name = INFO.name;
otherwise,
% Quick info field access
try
out1 = eval(['INFO.' code]);
catch %#ok<CTCH>
nnerr.throw(['Unrecognized argument: ''' code ''''])
end
end
else
[param,err] = INFO.parameterStructure(varargin);
140
if ~isempty(err), nnerr.throw('Args',err,'Parameters'); end
net = create_network(param);
net.name = INFO.name;
out1 = init(net);
end
end
function v = fcnversion
v = 7;
end
% BOILERPLATE_END
%% =======================================================
function info = get_info
info = nnfcnNetwork(mfilename,'Self-Organizing
Map',fcnversion, ...
[ ...
nnetParamInfo('dimensions','Dimensions','nntype.strict_pos_int_r
ow',[8 8],...
'Dimensions of the neural layer.'), ...
nnetParamInfo('coverSteps','Covering
Steps','nntype.pos_int_scalar',100,...
'Number of steps for neighborhood to shrink to 1.'), ...
nnetParamInfo('initNeighbor','Initial
Neighborhood','nntype.pos_int_scalar',3,...
'Initial neighborhood size.'), ...
nnetParamInfo('topologyFcn','Topology
Function','nntype.topology_fcn','hextop',...
'Pattern of neuron positions in the layer.'), ...
nnetParamInfo('distanceFcn','Distance
Function','nntype.distance_fcn','linkdist',...
'Function to measure distances between neurons.') ...
]);
end
function err = check_param(param)
err = '';
end
function net = create_network(param)
% Architecture
net = network(1,1,0,1,0,1);
% Simulation
net.layers{1}.dimensions = param.dimensions;
net.layers{1}.topologyFcn = param.topologyFcn;
net.layers{1}.distanceFcn = param.distanceFcn;
net.inputWeights{1,1}.weightFcn = 'negdist';
net.layers{1}.transferFcn = 'compet';
141
% Learning
net.inputWeights{1,1}.learnFcn = 'learnsomb';
net.inputWeights{1,1}.learnParam.init_neighborhood =
param.initNeighbor;
net.inputWeights{1,1}.learnParam.steps = param.coverSteps;
% Adaption
net.adaptFcn = 'adaptwb';
% Training
net.trainFcn = 'trainbu';
net.trainParam.epochs = max(200,param.coverSteps * 2);
% Initialization
net.initFcn = 'initlay';
net.layers{1}.initFcn = 'initwb';
net.inputWeights{1,1}.initFcn = 'initsompc';
% Plots
net.plotFcns = ...
{'plotsomtop','plotsomnc','plotsomnd','plotsomplanes','plotsomhi
ts','plotsompos'};
end
142
Приложение 4
Листинг программы реализации нейро-нечеткой
P(1:4,:)=itrain1(1:4,1:4392);
T(1,:)=otrain(1,1:4392);
[P1,minp,maxp,T1,mint,maxt] = premnmx(P,T);
itest(1:4,:)=P1(1:4,4369:4392);
itrain(1:4,:)=P1(1:4,1:4392);
utrain(1,:)=T1(1,1:4392);
% itest(1:2,:)=itrain(1:2,169:336);
trnData = [itrain' utrain'];
% for i=2:10
numMFs =3;
mfType = 'gaussmf';
epoch_n = 200;
in_fis = genfis1(trnData,numMFs,mfType);
out_fis = anfis(trnData,in_fis, epoch_n);
y1 = evalfis(itest,out_fis);
y =postmnmx(y1,mint,maxt);
% end
% xlswrite('resualt.xls',y, 'trimf');
y=y';
r=0;
for m=1:24 ;
r=r+((abs(otrain(1,4368+m)-y(1,m)))/otrain(1,4368+m));
end
MAPE=(r/24)*100;
figure(1)
actualWithPredicted(1,:)= otrain(1,4369:4392);
actualWithPredicted(2,:)= y(1,1:24);
plot(1:24,actualWithPredicted);
graph = ['Mean Absolute Error =',num2str(MAPE)];
title(graph);
legend('Actual','Forecasted');
function fis = genfis1(data, numMFs, inmftype, outmftype)
%GENFIS1 Generates an initial Sugeno-type FIS for ANFIS training
using a grid
%
partition.
%
%
FIS = GENFIS1(DATA) generates a single-output Sugeno-type
fuzzy inference
%
system (FIS) using a grid partition on the data (no clustering). FIS is
%
used to provide initial conditions for ANFIS training. DATA
is a matrix with
%
N+1 columns where the first N columns contain data for each
FIS input, and
%
the last column contains the output data. By default,
GENFIS1 uses two
%
'gbellmf' type membership functions for each input. Each
rule generated by
143
%
GENFIS1 has one output membership function, which is of type
'linear' by
%
default.
%
%
FIS = GENFIS1(DATA, NUMMFS, INPUTMF, OUTPUTMF) explicitly
specifies:
%
* NUMMFS
number of membership functions per input. A
scalar value,
%
specifies the same number for all inputs and a
vector value
%
specifies the number for each input individually.
%
* INPUTMF type of membership function for each input. A
single string
%
specifies the same type for all inputs, a
string array
%
specifies the type for each input individually.
%
* OUTPUTMF output membership function type, either
'linear' or 'constant'
%
%
Example
%
data = [rand(10,1) 10*rand(10,1)-5 rand(10,1)];
%
fis = genfis1(data,[3 7],char('pimf','trimf'));
%
[x,mf] = plotmf(fis,'input',1);
%
subplot(2,1,1), plot(x,mf);
%
xlabel('input 1 (pimf)');
%
[x,mf] = plotmf(fis,'input',2);
%
subplot(2,1,2), plot(x,mf);
%
xlabel('input 2 (trimf)');
%
%
See also GENFIS2, ANFIS.
%
%
%
Roger Jang, 8-7-94, Kelly Liu 7-30-96, N. Hickey 04-16-01
Copyright 1994-2006 The MathWorks, Inc.
$Revision: 1.32.2.3 $ $Date: 2006/09/30 00:18:45 $
% Change this to have different default values
default_mf_n = 2;
default_mf_type = 'gbellmf';
default_output_type = 'linear';
if nargin <= 3,
outmftype = default_output_type;
end
if nargin <= 2,
inmftype = default_mf_type;
end
if nargin <= 1,
numMFs = default_mf_n;
end
% get dimension info
data_n = size(data, 1);
144
in_n = size(data, 2) - 1;
% error checking
if length(numMFs)==1,
numMFs=numMFs*ones(1, in_n);
end
% Check arguments defining system inputs
if length(numMFs) ~= in_n | (size(inmftype, 1) ~=1 &
size(inmftype, 1) ~= in_n),
error('Wrong size(s) of argument(s) defining system input(s)!');
end
% Check argument defining system output
if size(outmftype,1) ~= 1
error('Argument data entered may only have one output!');
end
if (strcmp(outmftype,'linear') | strcmp(outmftype,'constant'))
~= 1
error('Output membership function type must be either linear
or constant!');
end
if size(inmftype, 1) ==1 & in_n>1
for i=2:in_n
inmftype(i,:)=inmftype(1,:);
end
end
rule_n = prod(numMFs);
fis.name = 'anfis';
fis.type = 'sugeno';
fis.andMethod = 'prod';
fis.orMethod = 'max';
fis.defuzzMethod = 'wtaver';
fis.impMethod = 'prod';
fis.aggMethod = 'max';
range = [min(data,[],1)' max(data,[],1)'];
in_mf_param = genparam(data, numMFs, inmftype);
k=1;
for i = 1:in_n,
fis.input(i).name = ['input' num2str(i)];
fis.input(i).range=range(i,:);
for j=1:numMFs(i)
MFType = deblank(inmftype(i, :));
fis.input(i).mf(j).name = ['in' num2str(i) 'mf' num2str(j)];
fis.input(i).mf(j).type = MFType;
if strcmp(MFType,'gaussmf') | strcmp(MFType,'sigmf') ...
| strcmp(MFType,'smf'),
fis.input(i).mf(j).params= in_mf_param(k,1:2);
145
elseif strcmp(MFType,'trimf') | strcmp(MFType,'gbellmf'),
fis.input(i).mf(j).params= in_mf_param(k,1:3);
else
fis.input(i).mf(j).params= in_mf_param(k,1:4);
end
k=k+1;
end
end
fis.output(1).name='output';
fis.output(1).range=range(end,:);
for i = 1:rule_n,
fis.output(1).mf(i).name=['out1mf', num2str(i)];
fis.output(1).mf(i).type=outmftype;
if strcmp(outmftype, 'linear')
fis.output(1).mf(i).params=zeros(1, in_n+1);
else
fis.output(1).mf(i).params=[0];
end
end
rule_list = zeros(rule_n, length(numMFs));
for i = 0:rule_n-1,
tmp = i;
for j = length(numMFs):-1:1,
rule_list(i+1, j) = rem(tmp, numMFs(j))+1;
tmp = fix(tmp/numMFs(j));
end
end
rule_list = [rule_list (1:rule_n)' ones(rule_n, 1) ones(rule_n,
1)];
fis.rule=[];
fis=setfis(fis, 'rulelist', rule_list);
if length(fis.rule)> 250
wmsg = sprintf('genfis1 has created a large rulebase in the
FIS. \nMATLAB may run out of memory if this FIS is tuned using
ANFIS.\n');
warning(wmsg);
end
function [t_fismat, t_error, stepsize, c_fismat, c_error] = anfis(trn_data, in_fismat, t_opt,
d_opt, chk_data, method)
%ANFIS
Adaptive Neuro-Fuzzy training of Sugeno-type FIS.
%
%
ANFIS uses a hybrid learning algorithm to identify the membership function
%
parameters of single-output, Sugeno type fuzzy inference
systems (FIS). A
%
combination of least-squares and backpropagation gradient
descent methods
146
%
are used for training FIS membership function parameters to
model a given
%
set of input/output data.
%
%
[FIS,ERROR] = ANFIS(TRNDATA) tunes the FIS parameters using
the
%
input/output training data stored in TRNDATA. For an FIS
with N inputs,
%
TRNDATA is a matrix with N+1 columns where the first N columns contain data
%
for each FIS input and the last column contains the output
data. ERROR is
%
the array of root mean square training errors (difference
between the FIS
%
output and the training data output) at each epoch. ANFIS
uses GENFIS1 to
%
create a default FIS that is used as the starting point for
ANFIS training.
%
%
[FIS,ERROR] = ANFIS(TRNDATA,INITFIS) uses the FIS structure,
INITFIS as the
%
starting point for ANFIS training.
%
%
[FIS,ERROR,STEPSIZE] =
ANFIS(TRNDATA,INITFIS,TRNOPT,DISPOPT,[],OPTMETHOD)
%
uses the vector TRNOPT to specify training options:
%
TRNOPT(1): training epoch number
(default: 10)
%
TRNOPT(2): training error goal
(default: 0)
%
TRNOPT(3): initial step size
(default: 0.01)
%
TRNOPT(4): step size decrease rate
(default: 0.9)
%
TRNOPT(5): step size increase rate
(default: 1.1)
%
The training process stops whenever the designated epoch
number is reached
%
or the training error goal is achieved. STEPSIZE is an array
of step sizes.
%
The step size is increased or decreased by multiplying it by
the step size
%
increase or decrease rate as specified in the training options. Entering NaN
%
for any option will select the default value.
%
%
Use the DISPOPT vector to specify display options during
training. Select 1
%
to display, or 0 to hide information:
%
DISPOPT(1): general ANFIS information
(default: 1)
%
DISPOPT(2): error
(default: 1)
147
%
DISPOPT(3): step size at each parameter update
(default: 1)
%
DISPOPT(4): final results
(default: 1)
%
%
OPTMETHOD selects the optimization method used in training.
Select 1 to use
%
the default hybrid method, which combines least squares estimation with
%
backpropagation. Select 0 to use the backpropagation method.
%
%
[FIS,ERROR,STEPSIZE,CHKFIS,CHKERROR] = ...
%
ANFIS(TRNDATA,INITFIS,TRNOPT,DISPOPT,CHKDATA) uses the
checking (validation)
%
data CHKDATA to prevent overfitting of the training data
set. CHKDATA has
%
the same format as TRNDATA. Overfitting can be detected when
the checking
%
error (difference between the output from CHKFIS and the
checking data
%
output) starts increasing while the training error is still
decreasing.
%
CHKFIS is the snapshot FIS taken when the checking data error reaches a
%
minimum. CHKERROR is the array of the root mean squared,
checking data
%
errors at each epoch.
%
%
Example
%
x = (0:0.1:10)';
%
y = sin(2*x)./exp(x/5);
%
epoch_n = 20;
%
in_fis = genfis1([x y],5,'gbellmf');
%
out_fis = anfis([x y],in_fis,epoch_n);
%
plot(x,y,x,evalfis(x,out_fis));
%
legend('Training Data','ANFIS Output');
%
%
See also GENFIS1, ANFISEDIT.
%
01
%
%
Roger Jang, 9-12-94.
Kelly Liu, 10-10-97, N. Hickey 04-16-
Copyright 1994-2005 The MathWorks, Inc.
$Revision: 1.31.2.5 $ $Date: 2007/11/09 20:08:33 $
%
References
%
Jang, J.-S. R., Fuzzy Modeling Using Generalized Neural Networks and
%
Kalman Filter Algorithm, Proc. of the Ninth National Conf.
on Artificial
%
Intelligence (AAAI-91), pp. 762-767, July 1991.
%
Jang, J.-S. R., ANFIS: Adaptive-Network-based Fuzzy Inference Systems,
148
%
IEEE Transactions on Systems, Man, and Cybernetics, Vol. 23,
No. 3, pp.
%
665-685, May 1993.
error(nargchk(1,6,nargin))
error(nargchk(0,5,nargout))
% Change the following to set default train options.
default_t_opt = [10;
% training epoch number
0; % training error goal
0.01;
% initial step size
0.9;
% step size decrease rate
1.1;
% step size increase rate
1]; % add a bias to handle zero firing error
% Change the following to set default display options.
default_d_opt = [1; % display ANFIS information
1; % display error measure
1; % display step size
1]; % display final result
% Change the following to set default MF type and numbers
default_mf_type = 'gbellmf';
% default MF type
default_outmf_type='linear';
default_mf_number = 2;
if nargin <= 5,
method = 1;
end
if nargin <= 4,
chk_data = [];
end
if nargin <= 3,
d_opt = default_d_opt;
end
if nargin <= 2,
t_opt = default_t_opt;
end
if nargin <= 1,
in_fismat = default_mf_number;
end
% If fismat, d_opt or t_opt are nan's or []'s, replace them with
default settings
if isempty(in_fismat)
in_fismat = default_mf_number;
elseif ~isstruct(in_fismat) & length(in_fismat) == 1 &
isnan(in_fismat),
in_fismat = default_mf_number;
end
if isempty(t_opt),
t_opt = default_t_opt;
elseif length(t_opt) == 1 & isnan(t_opt),
t_opt = default_t_opt;
end
149
if isempty(d_opt),
d_opt = default_d_opt;
elseif length(d_opt) == 1 & isnan(d_opt),
d_opt = default_d_opt;
end
if isempty(method)
method = 1;
elseif length(method) == 1 & isnan(method),
method = 1;
elseif method>1 |method<0
method =1;
end
% If d_opt or t_opt is not fully specified, pad it with default
values.
if length(t_opt) < 6,
tmp = default_t_opt;
tmp(1:length(t_opt)) = t_opt;
t_opt = tmp;
end
if length(d_opt) < 5,
tmp = default_d_opt;
tmp(1:length(d_opt)) = d_opt;
d_opt = tmp;
end
% If entries of d_opt or t_opt are nan's, replace them with default settings
nan_index = find(isnan(d_opt)==1);
d_opt(nan_index) = default_d_opt(nan_index);
nan_index = find(isnan(t_opt)==1);
t_opt(nan_index) = default_t_opt(nan_index);
% Generate FIS matrix if necessary
% in_fismat is a single number or a vector
if class(in_fismat) ~= 'struct',
in_fismat = genfis1(trn_data, in_fismat, default_mf_type);
end
if t_opt(end)==1 % adding bias if user has specified
in_fismat.bias = 0;
end
% More input/output argument checking
if nargin <= 4 & nargout > 3,
error('Too many output arguments!');
end
if length(t_opt) ~= 6,
error('Wrong length of t_opt!');
end
if length(d_opt) ~= 4,
error('Wrong length of d_opt!');
end
150
max_iRange = max([trn_data;chk_data],[],1);
min_iRange = min([trn_data;chk_data],[],1);
%Set input and output ranges to match training & checking data
for iInput = 1:length(in_fismat.input)
in_fismat.input(iInput).range = [min_iRange(1,iInput), ...
max_iRange(1,iInput)];
end
for iOutput = 1:length(in_fismat.output)
in_fismat.output(iOutput).range =
[min_iRange(1,iInput+iOutput), ...
max_iRange(1,iInput+iOutput)];
end
%Make sure input MF's cover complete range
for iInput = 1:length(in_fismat.input)
[oLow,oHigh,MFBounds] =
localFindMFOrder(in_fismat.input(iInput).mf);
%First ensure range limits are covered
if all(isfinite(MFBounds(:,1))) & ...
in_fismat.input(iInput).mf(oLow(1)).params(1) >
min_iRange(1,iInput)
%Lower limit
in_fismat.input(iInput).mf(oLow(1)).params(1) = (1sign(min_iRange(1,iInput))*0.1)...
*min_iRange(1,iInput)-eps;
end
if all(isfinite(MFBounds(:,2))) & ...
in_fismat.input(iInput).mf(oHigh(end)).params(end) <
max_iRange(1,iInput)
%Upper limit
in_fismat.input(iInput).mf(oHigh(end)).params(end) =
(1+sign(min_iRange(1,iInput))*0.1)...
*max_iRange(1,iInput)+eps;
end
%Now ensure that whole data range is covered
if ~any(all(~isfinite(MFBounds),2))
%Don't have any set with +- inf bounds
for iMF = 1:numel(oLow)-1
%Loop through sets and assign corner points to overlap
if in_fismat.input(iInput).mf(oLow(iMF)).params(end) <
...
in_fismat.input(iInput).mf(oLow(iMF+1)).params(1)
in_fismat.input(iInput).mf(oLow(iMF)).params(end) =
(1+sign(min_iRange(1,iInput))*0.01)...
*in_fismat.input(iInput).mf(oLow(iMF+1)).params(1) + eps;
end
end
end
end
% Start the real thing!
151
if nargout == 0,
anfismex(trn_data, in_fismat, t_opt, d_opt, chk_data, method);
return
elseif nargout == 1,
[t_fismat] = ...
anfismex(trn_data, in_fismat, t_opt, d_opt, chk_data,
method);
elseif nargout == 2,
[t_fismat, t_error] = ...
anfismex(trn_data, in_fismat, t_opt, d_opt, chk_data,
method);
elseif nargout == 3,
[t_fismat, t_error, stepsize] = ...
anfismex(trn_data, in_fismat, t_opt, d_opt, chk_data,
method);
elseif nargout == 4,
[t_fismat, t_error, stepsize, c_fismat] = ...
anfismex(trn_data, in_fismat, t_opt, d_opt, chk_data,
method);
elseif nargout == 5,
[t_fismat, t_error, stepsize, c_fismat, c_error] = ...
anfismex(trn_data, in_fismat, t_opt, d_opt, chk_data,
method);
end
if isfield(t_fismat, 'bias')
t_fismat = rmfield(t_fismat, 'bias');
end
if nargout>3 && isfield(c_fismat, 'bias')
c_fismat = rmfield(c_fismat,'bias');
end
%---------------------------------------------------------function [orderLow,orderHigh,MFBounds] = localFindMFOrder(MF)
%Function to find the order in which the mf's cover the range
%orderLow is the order of the lower mf 'corners'
%orderHigh is the order of the higher mf 'corners'
MFBounds = zeros(numel(MF),2);
for iMF = 1:numel(MF)
switch lower(MF(iMF).type)
case {'trimf','trapmf','pimf'}
MFBounds(iMF,:) = [MF(iMF).params(1),
MF(iMF).params(end)];
case 'smf'
MFBounds(iMF,:) = [MF(iMF).params(1), inf];
case 'zmf'
MFBounds(iMF,:) = [-inf, MF(iMF).params(end)];
otherwise
MFBounds(iMF,:) = [-inf, inf];
end
end
[junk,orderLow] = sort(MFBounds(:,1),1,'ascend');
152
if nargout >= 2
[junk,orderHigh] = sort(MFBounds(:,2),1,'ascend');
end
function [output,IRR,ORR,ARR] = evalfis(input, fis, numofpoints);
% EVALFIS
Perform fuzzy inference calculations.
%
%
Y = EVALFIS(U,FIS) simulates the Fuzzy Inference System FIS
for the
%
input data U and returns the output data Y. For a system
with N
%
input variables and L output variables,
%
* U is a M-by-N matrix, each row being a particular input
vector
%
* Y is M-by-L matrix, each row being a particular output
vector.
%
%
Y = EVALFIS(U,FIS,NPts) further specifies number of sample
points
%
on which to evaluate the membership functions over the input
or output
%
range. If this argument is not used, the default value is
101 points.
%
%
[Y,IRR,ORR,ARR] = EVALFIS(U,FIS) also returns the following
range
%
variables when U is a row vector (only one set of inputs is
applied):
%
* IRR: the result of evaluating the input values through
the membership
%
functions. This is a matrix of size Nr-by-N, where Nr
is the number
%
of rules, and N is the number of input variables.
%
* ORR: the result of evaluating the output values through
the membership
%
functions. This is a matrix of size NPts-by-Nr*L. The
first Nr
%
columns of this matrix correspond to the first output,
the next Nr
%
columns correspond to the second output, and so forth.
%
* ARR: the NPts-by-L matrix of the aggregate values sampled at NPts
%
along the output range for each output.
%
%
Example:
%
fis = readfis('tipper');
%
out = evalfis([2 1; 4 9],fis)
%
This generates the response
%
out =
%
7.0169
%
19.6810
%
%
See also READFIS, RULEVIEW, GENSURF.
153
ni = nargin;
if ni<2
disp('Need at least two inputs');
output=[];
IRR=[];
ORR=[];
ARR=[];
return
end
% Check inputs
if ~isfis(fis)
error('The second argument must be a FIS structure.')
elseif strcmpi(fis.type,'sugeno') &
~strcmpi(fis.impMethod,'prod')
warning('Fuzzy:evalfis:ImplicationMethod','Implication method
should be "prod" for Sugeno systems.')
end
[M,N] = size(input);
Nin = length(fis.input);
if M==1 & N==1,
input = input(:,ones(1,Nin));
elseif M==Nin & N~=Nin,
input = input.';
elseif N~=Nin
error(sprintf('%s\n%s',...
'The first argument should have as many columns as input
variables and',...
'as many rows as independent sets of input values.'))
end
% Check the fis for empty values
checkfis(fis);
% Issue warning if inputs out of range
inRange = getfis(fis,'inRange');
InputMin = min(input,[],1);
InputMax = max(input,[],1);
if any(InputMin(:)<inRange(:,1)) | any(InputMax(:)>inRange(:,2))
warning('Fuzzy:evalfis:InputOutOfRange','Some input values
are outside of the specified input range.')
end
% Compute output
if ni==2
numofpoints = 101;
end
[output,IRR,ORR,ARR] = evalfismex(input, fis, numofpoints);
154
Приложение 5
Листинг программы реализации опорных векторов
clc;
% clear all
C = 30;
theta = 2;%C: Regularization Parameter of least squares support
vector machine, theta: Gaussian radial basis of kernel function
parameters,Two need to optimize the selection debugging
NumOfPre = 1;%prediction the the number of days in this prediction the last seven days of the quarter
Time = 24;
Data = xlsread('spring.xls');%This command to read data from the
excel spreadsheet, read tables data into the Data array ,Omitted
tables the first line of the first column of text section to enter the name of the form that you want to prediction
[M N] = size(Data);% calculate reads data rows and columns, M
rows and N columns
for i = 1:4
maxData = max(Data(:,i));
minData = min(Data(:,i));
Data1(:,i) = (Data(:,i) - minData)/(maxDataminData);%Normalization processing temperature and lighting
end
% for i = 4:5
Data1(:,5) = Data(:,5);
% end
% for i = 6:N
%
Data1(:,i) = log10(Data(:,i)) ;%Different methods of pretreatment can be used of the number of processing temperature
and the load of the load can not rigidly stick
% end
maxData1 = max(Data(:,6:29));
minData1 = min(Data(:,6:29));
maxData = max(maxData1);
minData = min(minData1);
for i = 6:N
Data1(:,i) = (Data(:,i) - minData)/(maxDataminData);%Normalization processing temperature and lighting
end
Dim = M - 2 - NumOfPre;%Number of training samples
Input = zeros(M-2,12,Time);%Allocated in advance of handling of
the input vector space
y = zeros(Dim,Time);
for i = 3:M
for j = 1:Time
% Selected day before temperature, the load of day befor ,the
load of two days before , the temperature of the the same day as
the input feature
155
x = [Data1(i-1,1:5), Data1(i-1,j+5), Data1(i2,j+5),Data1(i,1:5)];
%
x = [Data1(i-1,1:5),Data1(i-1,j+5),Data1(i2,1:5),Data1(i-2,j+5),Data1(i,1:5)];%if add the temprature of
two days before
%
x = [Data1(i-1,1:48),Data1(i-1,j+48),Data1(i2,j+48),Data1(i,1:48)];%if take the hourly temprature and hourly
light
Input(i-2,:,j) = x;
y(i-2,j) = Data1(i,j+5);
end
end
%%%%%all above steps of program for prepering data for
regressoin which can
%%%%%be used these steps for another program
Dist = zeros(Dim,Dim,Time);%Pre-assigned distance space
for i=1:Time
for j=1:Dim
for k=1:Dim
Dist(j,k,i) = (Input(j,:,i) - Input(k,:,i))*(Input(j,:,i) - Input(k,:,i))';
end
end
end
Dist1 = exp(-Dist/(2*theta));%RBF
for i=1:Time
H = Dist1(:,:,i) + eye(Dim)/C;%H - matrices least squares
support vector
f = -y(1:Dim,i);
Aeq = ones(Dim,1)';
beq = 0;
option.MaxIter=1000;
[a,fval]=quadprog(H,f,[],[],Aeq,beq,[],[],[],option);
b = 0;
for j = 1:Dim
b(j) = y(j,i) - a(j)/C - a'* Dist1(:,j,i);%Requirements
of each input feature corresponding b
end
b = sum(b)/Dim; %Average b ,Eliminate errors
for j = Dim + 1:M-2
for k = 1:Dim
K(k) = exp(-(Input(j,:,i) - Input(k,:,i))*(Input(j,:,i) - Input(k,:,i))'/(2*theta));%prediction input characteristics and
training characteristics of RBF Distance
end
Pre(j-Dim,i) = sum(a'*K') + b; %Solving the predictive
value
end
end
Len = M - (Dim + 3) + 1;%prediction the number of days taken in
the lastquarter Len days
156
% Pre = 10.^Pre; %inverse log in order to convert numrical to
orginal
Pre=(Pre*(maxData-minData))+ minData;
for i = 1:Len
figure
plot(1:Time,Data(i+Dim+2,6:N),'r',1:Time,Pre(i,:),'*');%Drawn of each day predicted value and the real value
hold on
%
scatter(1:Time,Data(i+Dim+2,6:N),'o')
%
scatter(1:Time,Pre(i,:),'^')
legend ('actual output', 'forecast output', 12)
% axis([0 25 0 100])%range of coordinates
hold off
end
Acu = (Pre - Data(Dim+3:M,6:N))./Data(Dim+3:M,6:N);%Relative error
save Acu.mat Acu
s=0;
for i=1:Time
s=abs(Acu(1,i))+s;
end
acu=s/Time;
save acu.mat acu;
Result=[C,theta,acu];
disp(Result);
function [X,fval,exitflag,output,lambda] =
quadprog(H,f,A,B,Aeq,Beq,lb,ub,X0,options,varargin)
%QUADPROG Quadratic programming.
%
X = QUADPROG(H,f,A,b) attempts to solve the quadratic programming
%
problem:
%
%
min 0.5*x'*H*x + f'*x
subject to: A*x <= b
%
x
%
%
X = QUADPROG(H,f,A,b,Aeq,beq) solves the problem above while
%
additionally satisfying the equality constraints Aeq*x =
beq.
%
%
X = QUADPROG(H,f,A,b,Aeq,beq,LB,UB) defines a set of lower
and upper
%
bounds on the design variables, X, so that the solution is
in the
%
range LB <= X <= UB. Use empty matrices for LB and UB if no
bounds
%
exist. Set LB(i) = -Inf if X(i) is unbounded below; set
UB(i) = Inf if
%
X(i) is unbounded above.
%
%
X = QUADPROG(H,f,A,b,Aeq,beq,LB,UB,X0) sets the starting
point to X0.
%
157
%
X = QUADPROG(H,f,A,b,Aeq,beq,LB,UB,X0,OPTIONS) minimizes
with the
%
default optimization parameters replaced by values in the
structure
%
OPTIONS, an argument created with the OPTIMSET function. See
OPTIMSET
%
for details. Used options are Display, Diagnostics, TolX,
TolFun,
%
HessMult, LargeScale, MaxIter, PrecondBandWidth, TypicalX,
TolPCG, and
%
MaxPCGIter. Currently, only 'final' and 'off' are valid values for the
%
parameter Display ('iter' is not available).
%
%
X = QUADPROG(PROBLEM) finds the minimum for PROBLEM. PROBLEM
is a
%
structure with matrix 'H' in PROBLEM.H, the vector 'f' in
PROBLEM.f,
%
the linear inequality constraints in PROBLEM.Aineq and
PROBLEM.bineq,
%
the linear equality constraints in PROBLEM.Aeq and
PROBLEM.beq, the
%
lower bounds in PROBLEM.lb, the upper bounds in PROBLEM.ub,
the start
%
point in PROBLEM.x0, the options structure in
PROBLEM.options, and
%
solver name 'quadprog' in PROBLEM.solver. Use this syntax to
solve at
%
the command line a problem exported from OPTIMTOOL. The
structure
%
PROBLEM must have all the fields.
%
%
[X,FVAL] = QUADPROG(H,f,A,b) returns the value of the objective
%
function at X: FVAL = 0.5*X'*H*X + f'*X.
%
%
[X,FVAL,EXITFLAG] = QUADPROG(H,f,A,b) returns an EXITFLAG
that
%
describes the exit condition of QUADPROG. Possible values of
EXITFLAG
%
and the corresponding exit conditions are
%
%
All algorithms:
%
1 First order optimality conditions satisfied.
%
0 Maximum number of iterations exceeded.
%
-2 No feasible point found.
%
-3 Problem is unbounded.
%
Interior-point-convex only:
%
-6 Non-convex problem detected.
%
Trust-region-reflective only:
%
3 Change in objective function too small.
%
-4 Current search direction is not a descent direction; no
further
158
%
progress can be made.
%
Active-set only:
%
4 Local minimizer found.
%
-7 Magnitude of search direction became too small; no further
%
progress can be made. The problem is ill-posed or badly
%
conditioned.
%
%
[X,FVAL,EXITFLAG,OUTPUT] = QUADPROG(H,f,A,b) returns a
structure
%
OUTPUT with the number of iterations taken in
OUTPUT.iterations,
%
maximum of constraint violations in OUTPUT.constrviolation,
the
%
type of algorithm used in OUTPUT.algorithm, the number of
conjugate
%
gradient iterations (if used) in OUTPUT.cgiterations, a
measure of
%
first order optimality (large-scale algorithm only) in
%
OUTPUT.firstorderopt, and the exit message in
OUTPUT.message.
%
%
[X,FVAL,EXITFLAG,OUTPUT,LAMBDA] = QUADPROG(H,f,A,b) returns
the set of
%
Lagrangian multipliers LAMBDA, at the solution:
LAMBDA.ineqlin for the
%
linear inequalities A, LAMBDA.eqlin for the linear equalities Aeq,
%
LAMBDA.lower for LB, and LAMBDA.upper for UB.
%
%
See also LINPROG, LSQLIN.
%
%
Copyright 1990-2010 The MathWorks, Inc.
$Revision: 1.1.6.14 $ $Date: 2010/11/01 19:41:32 $
defaultopt = struct( ...
'Algorithm','trust-region-reflective', ...
'Diagnostics','off', ...
'Display','final', ...
'HessMult',[], ...
'LargeScale','on', ...
'MaxIter',[], ...
'MaxPCGIter','max(1,floor(numberOfVariables/2))', ...
'PrecondBandWidth',0, ...
'TolCon',1e-8, ...
'TolFun',[], ...
'TolPCG',0.1, ...
'TolX',100*eps, ...
'TypicalX','ones(numberOfVariables,1)' ...
);
% If just 'defaults' passed in, return the default options in X
159
if nargin == 1 && nargout <= 1 && isequal(H,'defaults')
X = defaultopt;
return
end
if nargin < 10
options = [];
if nargin < 9
X0 = [];
if nargin < 8
ub = [];
if nargin < 7
lb = [];
if nargin < 6
Beq = [];
if nargin < 5
Aeq = [];
if nargin < 4
B = [];
if nargin < 3
A = [];
end
end
end
end
end
end
end
end
% Detect problem structure input
if nargin == 1
if isa(H,'struct')
[H,f,A,B,Aeq,Beq,lb,ub,X0,options] =
separateOptimStruct(H);
else % Single input and non-structure.
error(message('optim:quadprog:InputArg'));
end
end
if nargin == 0
error(message('optim:quadprog:NotEnoughInputs'))
end
% Check for non-double inputs
% SUPERIORFLOAT errors when superior input is neither single nor
double;
% We use try-catch to override SUPERIORFLOAT's error message
when input
% data type is integer.
try
dataType = superiorfloat(H,f,A,B,Aeq,Beq,lb,ub,X0);
catch ME
160
if strcmp(ME.identifier,'MATLAB:datatypes:superiorfloat')
dataType = 'notDouble';
end
end
if ~strcmp(dataType,'double')
error(message('optim:quadprog:NonDoubleInput'))
end
% Set up constant strings
activeSet = 'active-set';
trustRegReflect = 'trust-region-reflective';
interiorPointConvex = 'interior-point-convex';
if nargout > 4
computeLambda = true;
else
computeLambda = false;
end
if nargout > 3
computeConstrViolation
computeFirstOrderOpt =
else
computeConstrViolation
computeFirstOrderOpt =
end
= true;
true;
= false;
false;
% Options setup
largescale =
isequal(optimget(options,'LargeScale',defaultopt,'fast'),'on');
Algorithm = optimget(options,'Algorithm',defaultopt,'fast');
diagnostics =
isequal(optimget(options,'Diagnostics',defaultopt,'fast'),'on');
display = optimget(options,'Display',defaultopt,'fast');
detailedExitMsg = ~isempty(strfind(display,'detailed'));
switch display
case {'off', 'none'}
verbosity = 0;
case {'iter','iter-detailed'}
verbosity = 2;
case {'final','final-detailed'}
verbosity = 1;
case 'testing'
verbosity = 3;
otherwise
verbosity = 1;
end
% Determine algorithm user chose via options. (We need this now
to set
161
% OUTPUT.algorithm in case of early termination due to inconsistent
% bounds.) This algorithm choice may be modified later when we
check the
% problem type.
algChoiceOptsConflict = false;
if strcmpi(Algorithm,'active-set')
output.algorithm = activeSet;
elseif strcmpi(Algorithm,'interior-point-convex')
output.algorithm = interiorPointConvex;
elseif strcmpi(Algorithm,'trust-region-reflective')
if largescale
output.algorithm = trustRegReflect;
else
% Conflicting options Algorithm='trust-regionreflective' and
% LargeScale='off'. Choose active-set algorithm.
algChoiceOptsConflict = true; % Warn later, not in case
of early termination
output.algorithm = activeSet;
end
else
error(message('optim:quadprog:InvalidAlgorithm'));
end
mtxmpy = optimget(options,'HessMult',defaultopt,'fast');
% Check for name clash
functionNameClashCheck('HessMult',mtxmpy,'hessMult_optimInternal
','optim:quadprog:HessMultNameClash');
if isempty(mtxmpy)
% Internal Hessian-multiply function
mtxmpy = @hessMult_optimInternal;
usrSuppliedHessMult = false;
else
usrSuppliedHessMult = true;
end
% Set the constraints up: defaults and check size
[nineqcstr,numberOfVariablesineq] = size(A);
[neqcstr,numberOfVariableseq] = size(Aeq);
if isa(H,'double') && ~usrSuppliedHessMult
% H must be square and have the correct size
nColsH = size(H,2);
if nColsH ~= size(H,1)
error(message('optim:quadprog:NonSquareHessian'));
end
else % HessMult in effect, so H can be anything
nColsH = 0;
end
% Check the number of variables. The check must account for any
combination of these cases:
% * User provides HessMult
162
% * The problem is linear (H = zeros, or H = [])
% * The objective has no linear component (f = [])
% * There are no linear constraints (A,Aeq = [])
% * There are no, or partially specified, bounds
% * There is no X0
numberOfVariables = ...
max([length(f),nColsH,numberOfVariablesineq,numberOfVariableseq]
);
if numberOfVariables == 0
% If none of the problem quantities indicate the number of
variables,
% check X0, even though some algorithms do not use it.
if isempty(X0)
error(message('optim:quadprog:EmptyProblem'));
else
% With all other data empty, use the X0 input to determine
% the number of variables.
numberOfVariables = length(X0);
end
end
ncstr = nineqcstr + neqcstr;
if isempty(f)
f = zeros(numberOfVariables,1);
else
% Make sure that the number of rows/columns in H matches the
length of
% f under the following conditions:
% * The Hessian is passed in explicitly (no HessMult)
% * There is a non-empty Hessian
if ~usrSuppliedHessMult && ~isempty(H)
if length(f) ~= nColsH
error(message('optim:quadprog:MismatchObjCoefSize'));
end
end
end
if isempty(A)
A = zeros(0,numberOfVariables);
end
if isempty(B)
B = zeros(0,1);
end
if isempty(Aeq)
Aeq = zeros(0,numberOfVariables);
end
if isempty(Beq)
Beq = zeros(0,1);
end
163
% Expect vectors
f = f(:);
B = B(:);
Beq = Beq(:);
if ~isequal(length(B),nineqcstr)
error(message('optim:quadprog:InvalidSizesOfAAndB'))
elseif ~isequal(length(Beq),neqcstr)
error(message('optim:quadprog:InvalidSizesOfAeqAndBeq'))
elseif ~isequal(length(f),numberOfVariablesineq) && ~isempty(A)
error(message('optim:quadprog:InvalidSizesOfAAndF'))
elseif ~isequal(length(f),numberOfVariableseq) && ~isempty(Aeq)
error(message('optim:quadprog:InvalidSizesOfAeqAndf'))
end
[X0,lb,ub,msg] = checkbounds(X0,lb,ub,numberOfVariables);
if ~isempty(msg)
exitflag = -2;
X=X0; fval = []; lambda = [];
output.iterations = 0;
output.constrviolation = [];
output.algorithm = ''; % Not known at this stage
output.firstorderopt = [];
output.cgiterations = [];
output.message = msg;
if verbosity > 0
disp(msg)
end
return
end
% Check that all data is real
if ~(isreal(H) && isreal(A) && isreal(Aeq) && isreal(f) && ...
isreal(B) && isreal(Beq) && isreal(lb) && isreal(ub) &&
isreal(X0))
error(message('optim:quadprog:ComplexData'))
end
caller = 'quadprog';
% Check out H and make sure it isn't empty or all zeros
if isa(H,'double') && ~usrSuppliedHessMult
if norm(H,'inf')==0 || isempty(H)
% Really a lp problem
warning(message('optim:quadprog:NullHessian'))
[X,fval,exitflag,output,lambda]=linprog(f,A,B,Aeq,Beq,lb,ub,X0,o
ptions);
return
else
% Make sure it is symmetric
if norm(H-H',inf) > eps
if verbosity > -1
164
warning(message('optim:quadprog:HessianNotSym'))
end
H = (H+H')*0.5;
end
end
end
% Determine which algorithm and make sure problem matches.
hasIneqs = (nineqcstr > 0); % Does the problem have any inequalities?
hasEqsAndBnds = (neqcstr > 0) && (any(isfinite(ub)) ||
any(isfinite(lb))); % Does the problem have both equalities and
bounds?
hasMoreEqsThanVars = (neqcstr > numberOfVariables); % Does the
problem have more equalities than variables?
hasNoConstrs = (neqcstr == 0) && (nineqcstr == 0) && ...
all(eq(ub, inf)) && all(eq(lb, -inf)); % Does the problem
not have equalities, bounds, or inequalities?
if (hasIneqs || hasEqsAndBnds || hasMoreEqsThanVars ||
hasNoConstrs) && ...
strcmpi(output.algorithm,trustRegReflect) ||
strcmpi(output.algorithm,activeSet)
% (has linear inequalites OR both equalities and bounds OR
has no constraints OR
% has more equalities than variables) then call active-set
code
if algChoiceOptsConflict
% Active-set algorithm chosen as a result of conflicting
options
warning('optim:quadprog:QPAlgLargeScaleConflict', ...
['Options LargeScale = ''off'' and Algorithm =
''trust-region-reflective'' conflict. ' ...
'Ignoring Algorithm and running active-set algorithm.
To run trust-region-reflective, set ' ...
'LargeScale = ''on''. To run active-set without this
warning, set Algorithm = ''active-set''.']);
end
if strcmpi(output.algorithm,trustRegReflect)
warning('optim:quadprog:SwitchToMedScale', ...
['Trust-region-reflective algorithm does not solve
this type of problem, ' ...
'using active-set algorithm. You could also try the
interior-point-convex ' ...
'algorithm: set the Algorithm option to ''interiorpoint-convex'' ', ...
'and rerun. For more help, see %s in the documentation.'], ...
addLink('Choosing the
Algorithm','choose_algorithm'))
end
165
output.algorithm = activeSet;
Algorithm = 'active-set';
if issparse(H) || issparse(A) || issparse(Aeq) % Passed in
sparse matrices
warning(message('optim:quadprog:ConvertingToFull'))
end
H = full(H); A = full(A); Aeq = full(Aeq);
else
% Using trust-region-reflective or interior-point-convex algorithms
if ~usrSuppliedHessMult
H = sparse(H);
end
A = sparse(A); Aeq = sparse(Aeq);
end
if ~isa(H,'double') || usrSuppliedHessMult && ...
~strcmpi(output.algorithm,trustRegReflect)
error(message('optim:quadprog:NoHessMult', Algorithm))
end
if diagnostics
% Do diagnostics on information so far
gradflag = []; hessflag = []; line_search=[];
constflag = 0; gradconstflag = 0; non_eq=0;non_ineq=0;
lin_eq=size(Aeq,1); lin_ineq=size(A,1);
XOUT=ones(numberOfVariables,1);
funfcn{1} = [];ff=[]; GRAD=[];HESS=[];
confcn{1}=[];c=[];ceq=[];cGRAD=[];ceqGRAD=[];
msg = diagnose('quadprog',output,gradflag,hessflag,constflag,gradconstflag
,...
line_search,options,defaultopt,XOUT,non_eq,...
non_ineq,lin_eq,lin_ineq,lb,ub,funfcn,confcn,ff,GRAD,HESS,c,ceq,
cGRAD,ceqGRAD);
end
% Trust-region-reflective
if strcmpi(output.algorithm,trustRegReflect)
% Call sqpmin when just bounds or just equalities
[X,fval,output,exitflag,lambda] =
sqpmin(f,H,mtxmpy,X0,Aeq,Beq,lb,ub,verbosity, ...
options,defaultopt,computeLambda,computeConstrViolation,varargin{:
});
if exitflag == -10 % Problem not handled by sqpmin at this
time: dependent rows
warning(message('optim:quadprog:SwitchToMedScale'))
output.algorithm = activeSet;
if ~isa(H,'double') || usrSuppliedHessMult
error('optim:quadprog:NoHessMult', ...
166
'H must be specified explicitly for active-set
algorithm: cannot use HessMult option.')
end
H = full(H); A = full(A); Aeq = full(Aeq);
end
end
% Call active-set algorithm
if strcmpi(output.algorithm,activeSet)
if isempty(X0)
X0 = zeros(numberOfVariables,1);
end
% Set default value of MaxIter for qpsub
defaultopt.MaxIter = 200;
% Create options structure for qpsub
qpoptions.MaxIter =
optimget(options,'MaxIter',defaultopt,'fast');
% A fixed constraint tolerance (eps) is used for constraint
% satisfaction; no need to specify any value
qpoptions.TolCon = [];
[X,lambdaqp,exitflag,output,~,~,msg]= ...
qpsub(H,f,[Aeq;A],[Beq;B],lb,ub,X0,neqcstr,...
verbosity,caller,ncstr,numberOfVariables,qpoptions);
output.algorithm = activeSet; % have to reset since call to
qpsub obliterates
end
if strcmpi(output.algorithm,interiorPointConvex)
defaultopt.MaxIter = 200;
defaultopt.TolFun = 1e-8;
% If the output structure is requested, we must reconstruct
the
% Lagrange multipliers in the postsolve. Therefore, set
computeLambda
% to true if the output structure is requested.
flags.computeLambda = computeFirstOrderOpt;
flags.detailedExitMsg = detailedExitMsg;
flags.verbosity = verbosity;
[X,fval,exitflag,output,lambda] =
ipqpcommon(H,f,A,B,Aeq,Beq,lb,ub,X0, ...
flags,options,defaultopt,varargin{:});
% Presolve may have removed variables and constraints from
the problem.
% Postsolve will re-insert the primal and dual solutions after the main
% algorithm has run. Therefore, constraint violation and
first-order
% optimality must be re-computed.
%
167
% If no initial point was provided by the user and the
presolve has
% declared the problem infeasible or unbounded, X will be
empty. The
% lambda structure will also be empty, so do not compute
constraint
% violation or first-order optimality if lambda is missing.
% Compute constraint violation if the output structure is
requested
if computeFirstOrderOpt && ~isempty(lambda)
output.constrviolation = norm([Aeq*X-Beq; max([A*X - B;X
- ub;lb - X],0)],Inf);
end
end
% Compute fval and first-order optimality if the active-set algorithm was
% run, or if the interior-point-convex algorithm was run (not
stopped in presolve)
if (strcmpi(output.algorithm,interiorPointConvex) &&
~isempty(lambda)) || ...
strcmpi(output.algorithm,activeSet)
% Compute objective function value
fval = 0.5*X'*(H*X)+f'*X;
% Compute lambda and exit message for active-set algorithm
if strcmpi(output.algorithm,activeSet)
if computeLambda || computeFirstOrderOpt
llb = length(lb);
lub = length(ub);
lambda.lower = zeros(llb,1);
lambda.upper = zeros(lub,1);
arglb = ~isinf(lb); lenarglb = nnz(arglb);
argub = ~isinf(ub); lenargub = nnz(argub);
lambda.eqlin = lambdaqp(1:neqcstr,1);
lambda.ineqlin =
lambdaqp(neqcstr+1:neqcstr+nineqcstr,1);
lambda.lower(arglb) =
lambdaqp(neqcstr+nineqcstr+1:neqcstr+nineqcstr+lenarglb);
lambda.upper(argub) =
lambdaqp(neqcstr+nineqcstr+lenarglb+1: ...
neqcstr+nineqcstr+lenarglb+lenargub);
end
if exitflag == 1
normalTerminationMsg = sprintf('Optimization terminated.');
if verbosity > 0
disp(normalTerminationMsg)
end
if isempty(msg)
output.message = normalTerminationMsg;
else
168
% append normal termination msg to current output
msg
output.message =
sprintf('%s\n%s',msg,normalTerminationMsg);
end
else
output.message = msg;
end
end
% Compute first order optimality if needed
if computeFirstOrderOpt && ~isempty(lambda)
output.firstorderopt =
computeKKTErrorForQPLP(H,f,A,B,Aeq,Beq,lb,ub,lambda,X);
else
output.firstorderopt = [];
end
output.cgiterations = [];
end
169
Приложение 6
Листинг программы реализации опорных векторов и алгоритма роя частиц
ParticleScope=[0.1,150;
0.1,10];
ParticleSize=2;
SwarmSize=20;
LoopCount=10;
opt=zeros(LoopCount,3);
MeanAdapt=zeros(1,LoopCount);
OnLine=zeros(1,LoopCount);
OffLine=zeros(1,LoopCount);
%Control Display Two-dimensional particle dimension to find the
optimal process
% DrawObjGraphic(ParticleSize,ParticleScope,AdaptFunc(XX,YY));
[ParSwarm,OptSwarm]=InitSwarm(SwarmSize,ParticleSize,ParticleSco
pe);
%Call to start the update algorithm
for k=1:LoopCount
%Displays the number of iterations:
disp('---------------------------------------------------------')
TempStr=sprintf('The first% k iterations',k);
disp(TempStr);
disp('---------------------------------------------------------')
% In the test function on the graph Draw the location of the initialization group
%if 2==ParticleSize
% for ParSwarmRow=1:SwarmSize
%
stem3(ParSwarm(ParSwarmRow,1),ParSwarm(ParSwarmRow,2),ParSwarm(P
arSwarmRow,5),'r.','markersize',8);
%end
%end
% Pause to capture
% disp ('start iteration, press any key:')
%pause
% Call iteration algorithm
[ParSwarm,OptSwarm]=BaseStepPso(ParSwarm,OptSwarm,ParticleScope,
0.9,0.4,LoopCount,k);
% if 2==ParticleSize
% for ParSwarmRow=1:SwarmSize
%
stem3(ParSwarm(ParSwarmRow,1),ParSwarm(ParSwarmRow,2),ParSwarm(P
arSwarmRow,5),'r.','markersize',8);
% end
170
%end
t=OptSwarm(SwarmSize+1,1);
u=OptSwarm(SwarmSize+1,2);
YResult=AdaptFunc(t,u);
str=sprintf('%g iteration optimal objective function value%g',k,YResult);
disp(str);
% Record every step of the average fitness
MeanAdapt(1,k)=mean(ParSwarm(:,2*ParticleSize+1));
end
%for the end of loop marker
% Record the minimum and maximum average fitness
MinMaxMeanAdapt=[min(MeanAdapt),max(MeanAdapt)];
%Calculated offline and online performance
for k=1:LoopCount
OnLine(1,k)=sum(MeanAdapt(1,1:k))/k;
OffLine(1,k)=max(MeanAdapt(1,1:k));
end
for k=1:LoopCount
OffLine(1,k)=sum(OffLine(1,1:k))/k;
end
% Draw offline performance and Online performance curve
figure
hold on
title('The offline performance graph');
xlabel('iterations');
ylabel('Offline performance');
grid on
plot(OffLine);
figure
hold on
title('Online performance graph ')
xlabel('iterations');
ylabel('online performance');
grid on
plot(OnLine);
% Record of the iterations to get the optimal results
aa=OptSwarm(SwarmSize+1,1);
bb=OptSwarm(SwarmSize+1,2);
cc=AdaptFunc1(aa,bb);
Result=[aa,bb,cc];
disp(Result);
function [ParSwarm,OptSwarm]=InitSwarm(SwarmSize,ParticleSize,ParticleScope)
% Function Description: Initialization of particle
swarm,Defining the position and speed of the particle swarm in
the specified range
171
%[ParSwarm,OptSwarm,BadSwarm]=InitSwarm(SwarmSize,ParticleSize,P
articleScope,AdaptFunc)
% Input parameters: Swarm Size: population size
% Input parameters: Particle Size: the dimension of a particle
% Input parameters: Particle Scope: the scope of each dimension
of a particle in the operation;
% Particle Scope format: 3-dimensional particle Particle Scope
format: [x1Min,x1Max ;x2Min,x2Max;x3Min,x3Max]
% Input parameters: the Adapt funC: fitness function
% Output:ParSwarm initialized particle swarm
% Output:OptSwarm Particle Swarm current optimal solution and
the global optimal solution
%how to
use[ParSwarm,OptSwarm,BadSwarm]=InitSwarm(SwarmSize,ParticleSize
,ParticleScope,AdaptFunc);
%Fault-tolerant control
if nargin~=3
error('Wrong number of arguments input')
end
if nargout<2
error('Too few number of output parameters,later the operation
can not be guaranteed');
end
[row,colum]=size(ParticleSize);
if row>1||colum>1
error('Input particle dimension error is a 1 rows and 1 column
data');
end
[row,colum]=size(ParticleScope);
if row~=ParticleSize||colum~=2
error('Input particle dimension range error');
end
%Initialize the particle swarm matrix
%Initialize the particle swarm matrix, all set to a random number [0-1]
%rand('state',0);
ParSwarm=rand(SwarmSize,2*ParticleSize+1);
%The position of particle swarm,Speed ??range adjustment
for k=1:ParticleSize
ParSwarm(:,k)=ParSwarm(:,k)*(ParticleScope(k,2)ParticleScope(k,1))+ParticleScope(k,1);
% Adjust the speed, the range of speed and position
ParSwarm(:,ParticleSize+k)=ParSwarm(:,ParticleSize+k)*(ParticleS
cope(k,2)-ParticleScope(k,1))+ParticleScope(k,1);
end
% Calculate the fitness function value of each particle
for k=1:SwarmSize
C=ParSwarm(k,1);
172
theta=ParSwarm(k,2);
ParSwarm(k,2*ParticleSize+1)=AdaptFunc(C,theta);
end
% Initialize the particle swarm optimal solution matrix
OptSwarm=zeros(SwarmSize+1,ParticleSize);% Particle swarm optimal solution matrix are all set to zero
[minValue,row]=min(ParSwarm(:,2*ParticleSize+1));% Find the minimum value of the fitness function solution in the matrix position (number of rows)
OptSwarm=ParSwarm(1:SwarmSize,1:ParticleSize);
OptSwarm(SwarmSize+1,:)=ParSwarm(row,1:ParticleSize);
function [Acu]=AdaptFunc(XX,YY)
NumOfPre =1;
Time = 24;
Data = xlsread('spring.xls');
[M N] = size(Data);
for i = 1:4
maxData = max(Data(:,i));
minData = min(Data(:,i));
Data1(:,i) = (Data(:,i) - minData)/(maxData-minData);
end
% for i = 4:5
Data1(:,5) = Data(:,5);
% end
maxData1 = max(Data(:,6:29));
minData1 = min(Data(:,6:29));
maxData = max(maxData1);
minData = min(minData1);
for i = 6:N
Data1(:,i) = (Data(:,i) - minData)/(maxDataminData);%Normalization processing temperature and lighting
end
Dim = M - 2 – NumOfPre;
Input = zeros(M-2,12,Time);
y = zeros(Dim,Time);
for i = 3:M
for j = 1:Time
x = [Data1(i-1,1:5), Data1(i-1,j+5), Data1(i2,j+5),Data1(i,1:5)];
Input(i-2,:,j) = x;
y(i-2,j) = Data1(i,j+5);
end
end
Dist = zeros(Dim,Dim,Time);
for i=1:Time
for j=1:Dim
for k=1:Dim
Dist(j,k,i) = (Input(j,:,i) - Input(k,:,i))*(Input(j,:,i) - Input(k,:,i))';
end
end
end
Dist1=exp(-Dist/(2*YY));%RBF
173
for i=1:Time
H = Dist1(:,:,i) + eye(Dim)/XX;
f = -y(1:Dim,i);
Aeq = ones(Dim,1)';
beq = 0;
option.MaxIter=1000;
[a,fval]=quadprog(H,f,[],[],Aeq,beq,[],[],[],option);
b = 0;
for j = 1:Dim
b(j) = y(j,i) - a(j)/XX - a'* Dist1(:,j,i);
end
b = sum(b)/Dim;
for j = Dim + 1:M-2
for k = 1:Dim
K(k) = exp(-(Input(j,:,i) - Input(k,:,i))*(Input(j,:,i) - Input(k,:,i))'/(2*YY));
end
Pre(j-Dim,i) = sum(a'*K') + b;
end
end
Len = M - (Dim + 3) + 1;
Pre = (Pre*(maxData-minData))+minData;
%for i = 1:Len
%
figure
%
plot(1:Time,Data(i+Dim+2,6:N),'-ro',1:Time,Pre(i,:),'k^');%»?????»??µ??¤???µ?????µ?µ
%
hold on
%
%
axis([0 25 0 100])%??±?·¶?§
%
hold off
%end
acu = (Pre - Data(Dim+3:M,6:N))./Data(Dim+3:M,6:N);
s=0;
for i=1:Time
s=abs(acu(1,i))+s;
end
Acu=s/Time;
save acu.mat acu
% Following function BaseStepPso Single-step update function of
the position, velocity version of theto Standard global particle
swarm algorithm
function
[ParSwarm,OptSwarm]=BaseStepPso(ParSwarm,OptSwarm,ParticleScope,MaxW,MinW,
LoopC,CurCount)
%Functional Description:Global version:Single-step update the
position of the basic particle swarm optimization And Speed
??algorithm%
%[ParSwarm,OptSwarm]=BaseStepPso(ParSwarm,OptSwarm,AdaptFunc,Par
ticleScope,MaxW,MinW,LoopCount,CurCount)
% Input parameters: OptSwarm:Matrix containing the individual
particle swarm optimal solution and the global optimal solution
174
% Input parameters: ParSwarm: PSO matrix containing particle's
position, speed and current objective function value
% Input parameters: ParticleScope: a particle in the range of
operation in each dimension;
% Input parameters: AdaptFunc: fitness function
% Input parameters: LoopC: the total number of iterations
% Input parameters: CurCount: current iterations
%[ParSwarm,OptSwarm]=BaseStepPso(ParSwarm,OptSwarm,AdaptFunc,Par
ticleScope,MaxW,MinW,LoopC,CurCount)
%Abnormal:First, to ensure that the files in the search path of
Matlab, and then view the message.
% Add 2 * unifrnd-(0,1). The * SubTract1 (row, :) in unifrnd
(0,1) random number, so performance has been greatly improved
% Reference based on the MATLAB particle swarm optimization algorithm to design
% Fault-tolerant control
if nargin~=7
error('Wrong number of arguments input')
end
if nargout~=2
error('Output number is too small, can not guarantee the loop
iteration')
end
%Start single-step update operation
%*********************************************
%*****Change the following code, you can change the inertia factor variation*****
%-------------------------------------------------------------------%Linear decreasing strategy
w=MaxW-CurCount*(MaxW-MinW)/LoopC;
%-------------------------------------------------------------------%w Constant strategy
%w=0.7;
%w Non-linear decreasing to decreasing concave function
%w=(MaxW-MinW)*(CurCount/LoopC)^2+(MinWMaxW)*(2*CurCount/LoopC)+MaxW;
%-------------------------------------------------------------------%w Non-linear decreasing to decreasing concave function
%w=MinW*(MaxW/MinW)^(1/(1+10*CurCount/LoopC));
%*****Change the above code, you can change the inertia factor
variation*****
%Obtain particle swarm population size and a particle dimension
information
[ParRow,ParCol]=size(ParSwarm);
%Dimensions of the particles obtained
ParCol=(ParCol-1)/2;
SubTract1=OptSwarm(1:ParRow,:)-ParSwarm(:,1:ParCol);
%*****Changing the code below,You can change c1, c2 variation*****
c1=2;
175
c2=2;
%-------------------------------------------------------------------%con=1;
%c1=4-exp(-con*abs(mean(ParSwarm(:,2*ParCol+1))AdaptFunc(OptSwarm(ParRow+1,:))));
%c2=4-c1;
%--------------------------------------------------------------------%*****Changing the code above,Can change c1, c2 variation *****
%*********************************************
for row=1:1:ParRow
SubTract2=OptSwarm(ParRow+1,:)-ParSwarm(row,1:ParCol);
TempV=w.*ParSwarm(row,ParCol+1:2*ParCol)+2*unifrnd(0,1).*SubTrac
t1(row,:)+2*unifrnd(0,1).*SubTract2;
%Speed limit code
for h=1:ParCol
if TempV(:,h)>ParticleScope(h,2)
TempV(:,h)=ParticleScope(h,2);
end
if TempV(:,h)<-ParticleScope(h,2)
TempV(:,h)=-ParticleScope(h,2)+1e-10;
% Add 1e-10 to prevent the fitness function be zero
end
end
%Update speed
ParSwarm(row,ParCol+1:2*ParCol)=TempV;
%***** Change the following code, you can change the constraint
factor variation*****
%-------------------------------------------------------------------%a=1;
%-------------------------------------------------------------------a=0.729;
%*****Change the above code, you can change a constraint factor
variation ******
%Limit the range of positions
TempPos=ParSwarm(row,1:ParCol)+a*TempV;
for h=1:ParCol
if TempPos(:,h)>ParticleScope(h,2)
TempPos(:,h)=ParticleScope(h,2);
end
if TempPos(:,h)<=ParticleScope(h,1)
TempPos(:,h)=ParticleScope(h,1)+1e-10;
end
end
% Update location
ParSwarm(row,1:ParCol)=TempPos;
%Calculated for each particle of the new fitness value
a=ParSwarm(row,1);
b=ParSwarm(row,2);
176
ParSwarm(row,5)=AdaptFunc(a,b);
c=OptSwarm(row,1);
d=OptSwarm(row,2);
if ParSwarm(row,2*ParCol+1)<AdaptFunc(c,d)
OptSwarm(row,1:ParCol)=ParSwarm(row,1:ParCol);
end
end
%for ?nd of the loop
%Find the minimum value of the fitness function solution in the
matrix position (number of rows),For changes in the global optimum
[minValue,row]=min(ParSwarm(:,2*ParCol+1));
if AdaptFunc(a,b)<AdaptFunc(c,d)
OptSwarm(ParRow+1,:)=ParSwarm(row,1:ParCol);
end
function [Acu]=AdaptFunc1(XX,YY)
NumOfPre =1;
Time = 24;
Data = xlsread('spring.xls');
[M N] = size(Data);
for i = 1:4
maxData = max(Data(:,i));
minData = min(Data(:,i));
Data1(:,i) = (Data(:,i) - minData)/(maxData-minData);
end
% for i = 4:5
Data1(:,5) = Data(:,5);
% end
% for i = 6:N
%
Data1(:,i) = log10(Data(:,i)) ;
% end
maxData1 = max(Data(:,6:29));
minData1 = min(Data(:,6:29));
maxData = max(maxData1);
minData = min(minData1);
for i = 6:N
Data1(:,i) = (Data(:,i) - minData)/(maxDataminData);%Normalization processing temperature and lighting
end
Dim = M - 2 - NumOfPre;%
Input = zeros(M-2,12,Time);
y = zeros(Dim,Time);
for i = 3:M
for j = 1:Time
x = [Data1(i-1,1:5), Data1(i-1,j+5), Data1(i2,j+5),Data1(i,1:5)];
Input(i-2,:,j) = x;
y(i-2,j) = Data1(i,j+5);
end
end
177
Dist = zeros(Dim,Dim,Time);
for i=1:Time
for j=1:Dim
for k=1:Dim
Dist(j,k,i) = (Input(j,:,i) - Input(k,:,i))*(Input(j,:,i) - Input(k,:,i))';
end
end
end
Dist1=exp(-Dist/(2*YY));%RBF
for i=1:Time
H = Dist1(:,:,i) + eye(Dim)/XX;
f = -y(1:Dim,i);
Aeq = ones(Dim,1)';
beq = 0;
option.MaxIter=1000;
[a,fval]=quadprog(H,f,[],[],Aeq,beq,[],[],[],option);
b = 0;
for j = 1:Dim
b(j) = y(j,i) - a(j)/XX - a'* Dist1(:,j,i);
end
b = sum(b)/Dim;
for j = Dim + 1:M-2
178
Приложение 7
179
Приложение 7
180
Приложение 8
181
Приложение 8
Download