Нейросетевое прогнозирование электропотребления предприятия АПК 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Нейросетевое прогнозирование электропотребления предприятия АПК



 

Задача прогнозирования потребления электроэнергии всегда была важна для правильного расчета ее приобретения и расходования[1]. Правилами функционирования розничных рынков установлена обязанность потребителей по точному планированию объемов потребления электроэнергии. Особенность сельскохозяйственных предприятий как потребителей электроэнергии - потребление последующего года может быть не похоже на потребление электроэнергии предыдущего года. Потребление электроэнергии зависит от множества факторов: производственных, социальных, климатических и других. Рассмотрим пример построения нейронной сети для прогнозировая энергопотребления сельскохозяйственного предприятия на год вперед.

В качестве исходной информации для прогнозирования используется ретроспективная информация за 3-5 лет. Это информация используется для обучения сети. Предлагается нейросетевая программа в основе которой лежит пакет Neural Network Toolbox Matlab.

Модель для прогнозирования.

Для прогнозирования разработана модель «Prognoz-SP» на основе искусственных нейронных сетей, что позволяет:

- поэтапно накоплять исходные данные;

- быстро получать результаты прогнозирования;

- уточнять результаты по мере получения новых данных.

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

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

1. Произвести обучение нейронной сети:

- подать на вход данные для обучения, а на выход- целевой вектор;

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

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

Примем сеть, состоящую из одного входного и одного выходного слоя. Входной слой реализует связь с входными данными, выходной – с выходными. Входные данные представляют собой матрицу: .

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

Структурная схема нейронной сети представлена на рисунке 6.29.

Входной вектор данных P имеет следующие составляющие: месяц - M, среднемесячная температура - Tm, среднемесячное атмосферное давление - Ad, среднемесячная влажность воздуха - W, скорость ветра - Sv, количество дней в месяце- Mkd, рабочие дни - Mrd, рабочие часы за месяц - Mrch, производственные параметры- Pp1-Рр7. Выходной вектор Rm - расход электроэнергии по месяцам.

Во входном слое каждый элемент вектора входа соединен со всеми входами нейрона матрицей весов W. Каждый нейрон включает суммирующий элемент, который складывает полученное произведение весового коэффициента и элемента вектора входа со смещением Bn1. При этом формируется выход nn:

Результирующая сумма будет равна (уравнение нейронов входного слоя):

Результирующая сумма nn является аргументом функции активации f1. Выходом функции активации и всего входного слоя является значение an.

Активационной функцией входного слоя нейронной сети является функция гиперболического тангенса.

Уравнения входного слоя нейронной сети с использованием алгоритма функции активации гиперболического тангенса примет следующий вид:

Выходные элементы а1, а2, а3 …аn входного слоя нейронной сети являются входным для выходного слоя. Каждый из этих элементов также соединён с выходным нейроном через матрицу весов LW, который содержит суммирующий компонент, складывающий полученное произведение весового коэффициента и элемента вектора входа со смещением B2. При этом формируется выход nr.

 

Рисунок 6.30. Структурная схема модели «Prognoz-SP» нейронной сети

 

Уравнение нейрона выходного слоя будет выглядеть:

С применением во входном слое функции активации гиперболического тангенса:

 

Выход nr, пройдя через линейную функцию активации, является выходом нейронной сети Rm - расходом электроэнергии.

Сеть состоит из двух слоёв – входного и выходного. Причём выход a{1} входного слоя является входом a{1} для выходного слоя. На рисунке 6.30. представлена структура входного слоя нейронной сети.

Рисунок 6.30- Моделирование входного слоя нейронной сети.

 

 

Данный блок содержит: IW{1;1} – коэффициенты весов входного слоя; b{1} – коэффициенты смещения; netsum - суммирующий элемент, который складывает полученное произведение коэффициента веса и элемента вектора входа со смещением; tansig – функция активации нейронной сети. Развёрнутая схема блока моделирования весовых коэффициентов представлена на рисунке 6.31.

 

 

Рисунок 6.31- Структура блока моделирования весовых коэффициентов входного слоя.

 

 

Данный блок содержит: IW{2;1} – коэффициенты весов выходного слоя; b{2} – коэффициенты смещения; netsum – суммирующий элемент, который складывает полученное произведение коэффициента веса и элемента вектора входа со смещением; purelin – функция активации нейронной сети.

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

 

Она имеет вид, представленный в таблице 6.2. На рисунке 6.32 представлена структура выходного слоя нейронной сети.

Моделирование электропотребления предприятия

1. Обучение модели в программе «Prognoz-SP-Обучение».

Для того, чтобы воспользоваться предложенной моделью, необходимо произвести обучение нейронной сети. Для обучения нейронной сети воспользуемся квазиньютоновым алгоритмом LM Левенберга – Маркварда [ ]. Этот алгоритм относится к методам Ньютона, которые относятся к способам быстрой оптимизации обучения.

 

 

Рисунок 6.32- Моделирование выходного слоя нейронной сети.

 

Таблица 6.2- Общее представление базы данных

Название(код) предприятия Дата съёма информации (год, месяц, день) Х1 Х2 Х3 Хn
    z11 z21 z31 z1n
    z12 z22 z32 z2n
    z13 z23 z33 z3n
zmn

 

Обучающий алгоритм в данном случае включает в себя:

1. Входных нейронов первого слоя- по числу входов вектора входных параметров Р.

2. Выходной нейрон- один- прогноз электропотребления Rm.

3. Функции активации 'tansig', 'purelin';

4. Количество шагов обучения- 1000;

5. Ошибка обучения- 1e-1.

Для обучения модели используются данные, полученные в результате исследования электропотребления предприятия в соответствии с таблицей 6.2. В режиме обучения данные по каждому предприятию поступают на вход модели «Prognoz-SP-Обучение». В результате обучения получаем матрицу весовых коэффициентов входного слоя IW, матрицу весовых коэффициентов выходного слоя LW, матрицу коэффициентов смещения входного слоя В1 и коэффициент смещения выходного слоя В2. Процесс получения весовых коэффициентов нейронной сети иллюстрируется графиком на рисунке 6.33, где показано уменьшение ошибки по мере обучения. Заданная нейронная сеть на данных, используемых для обучения, прогнозирует электропотребление с ошибкой 10-1.

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

 

 

Рисунок 6.33- Ошибка прогнозирования при обучении сети

 

 

 

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

 

 

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

Тект программы «Prognoz-SP- Обучение» приводится ниже.

 

Программа «Prognoz-SP- Обучение» обучения прогнозированию.

%задаём параметры из базы

line = 48;

v = 1:line; b = 1;

Tp = base1(v,b); %%тип потребителя

v = 1:line; b = 2;

M = base1(v,b);%месяц

v = 1:line; b = 3;

Tm = base1(v,b);%среднемесячная температура

v = 1:line; b = 4;

Ad = base1(v,b);%среднемесячное атмосферное давление

v = 1:line; b = 5;

W = base1(v,b);%среднемесячная влажность воздуха

v = 1:line; b = 6;

Sv = base1(v,b);%скорость ветра

v = 1:line; b = 7;

Mkd = base1(v,b);%количество дней в месяце

v = 1:line; b = 8;

Mrd = base1(v,b);%рабочие дни

v = 1:line; b = 9;

Mrch = base1(v,b);%рабочие часы за месяц

v = 1:line; b = 10;

Zp = base1(v,b);%затраты

v = 1:line; b = 11:201;

Pp1 = base1(v,b);%производственный параметр №1 …N10

v = 1:line; b = 21;

Rel = base1(v,b);%расход электроэнергии

%% Представляем входной вектор

p=[Tp M Tm Ad W Sv Mkd Mrd Mrch Zp Pp1 Pp2 Pp3 Pp4 Pp5 Pp6 Pp7 Pp8 Pp9 Pp10]';

% Задаём выходной вектор

t=[Rel]';

%% масштабирование данных входного и целевого векторов к интервалу (0 1)

[pn,meanp,stdp,tn,meant,stdt]=prestd(p,t)

%% Создание и обучение сети

disp ('---------------------------обучение сети-------------------------------')

net1 = newff(minmax(pn),[15 1],{'tansig' 'purelin'},'trainlm');

net1.trainParam.epochs = 1000;

net1.trainParam.show = 5;

net1.trainParam.goal=1e-1;

net1 = train(net1,pn,tn);% обучение сети

m=sim(net1,pn);%моделирование сети

disp (' данные выходного вектора после обучения сети ')

a=poststd(m,meant,stdt)

% % disp('матрица весов входа IW1:')

% % IW1=net1.IW{1}% массив ячеек, включающий матрицу весов входа

% % disp('матрица весовыхкоэффициентов выхода IL1:')

% % IL1=net1.LW{1}% массив ячеек, включающий матрицу весов выхода

% % disp('матрица смещений B1:')

% % B1=net1.B{1}% массив ячеек, включающий матрицу смещений

save net1.mat

Прогнозирование на нейросетевой модели электропотребления

Полученные матрицы весов и смещений используются для составления прогноза. Для этого необходимо на вход модели подавать предполагаемые параметры Х1, Х2,…, Хn для того предприятия и на тот период времени, для которого составляется прогноз. На рисунке 6.35 представлены графики реального и прогнозного месячного потреблений электроэнергии.

Ошибка прогнозирования составляет 5-20% по разным месяцам. На ошибку прогнозирования огромное влияние оказывает достоверность данных. Уменьшение ошибки можно добиться оптимизацией структуры и алгоритма обучения нейронной сети, более четким структуированием производственного процесса по параметрам электропотребления, а также оптимизацией структуры входных параметров модели.

Текс программы «Prognoz-SP- Прогноз» приведен ниже.

Программа «Prognoz-SP- Прогноз».

clear,clc

disp('*****программа прогнозирования*****')

load net1;

%Задание нового входного вектора для прогнозирования

%Транспонируем матрицу

p2=[3 3 -1.7 746 79 1.5 31 20 0 0 117.5 0 0 0 0 0 0 0 0 0]';

pn=trastd(p2,meanp,stdp);

an1 = sim(net1,pn);

disp('Прогноз расхода электроэнергии составляет:')

Y=poststd(an1,meant,stdt)

disp('кВт')

 

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

 

 

Рисунок 6.35- Графики реального и прогнозного месячного потреблений электроэнергии

 

 

Контрольные вопросы к главе 6

1. Перечислите основные подпрограммы среды программирования Matlab.

2.В чем сущность программы Simulink среды программирования Matlab?

3. Какой язык программирования использует среда Matlab?

4. Какие методы моделирования поддерживает среда программирования Matlab?

5. Перечислите блоки библиотек моделирования электротехнических блоков и систем SimPowerSystems.

6. Перечислите блоки библиотеки Simulink.



Поделиться:


Последнее изменение этой страницы: 2017-02-06; просмотров: 391; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.141.31.209 (0.041 с.)