Redes neural

Disponível somente no TrabalhosFeitos
  • Páginas : 7 (1562 palavras )
  • Download(s) : 0
  • Publicado : 16 de março de 2013
Ler documento completo
Amostra do texto
REDES NEURAIS
CONTROLE DE UMA HIDROELÉTRICA

1. OBJETIVO
Construir uma rede neural para o controle da produção de uma usina hidroelétrica.
A produção da hidroelétrica é adicionada a rede elétrica quando a voltagem normalizada produzida for aproximadamente à mesma que a voltagem normalizada da rede elétrica e a fase dessas ondas também devem ser iguais.
Para normalizar as tensõeselétricas é utilizada a seguinte formula:

V=Vl-minmax- min

Fig. 1 – Tensões normalizadas

2. Diagrama da rede neural
Abaixo é mostrado o diagrama com os nós da rede, neste diagrama inicialmente são utilizadas quatro entradas para a rede, produção e os valores de suas respectivas fases. Os nós marcados em cinza são conhecidos como Thresholding.

Fig. 2 – Rede neural

3. Desenvolvimentoda rede
Para o desenvolvimento da rede foi utilizado orientação a objetos e linguagem de programação C#, com a criação das seguintes classes:
* Classe Arquivo: Utilizada para o gerenciamento dos arquivos da rede, este se encontram na mesma pasta que o sistema.
* Classe Sigmoid: Utilizada para realizar os cálculos com função sigmoid
* Classe Propagation: Possui métodos para percorrer etreinar a rede.

Fig. 3 – Classes da rede

4.1. Base de treinamento
Para o treinamento da rede é utilizado um arquivo de texto com os dados separados por ponto e vírgula.
O primeiro valor é à entrada da rede, o segundo é a produção da hidroelétrica, o terceiro é a fase da rede e o quarto é a fase da produção da hidroelétrica. O quinto e ultimo valor representa o resultado desejado e éutilizado para o treinamento da rede neural.
A diferença aceita entre a voltagem normalizada da rede e da produção é de 0,03.
Abaixo estão os valores contidos no arquivo de treinamento.

E1;E2;E3;E4;T
0,21;0,23;1;1;1
0,81;0,81;1;1;1
0,42;0,41;1;1;1
0,45;0,47;1;1;1
0,59;0,57;1;1;1
0,32;0,33;1;1;1
0,64;0,63;1;1;1
0,42;0,43;0;0;1
0,55;0,53;0;0;1
0,72;0,72;0;0;1
0,96;0,94;0;0;10,74;0,75;0;0;1
0,46;0,48;0;0;1
0,32;0,31;0;0;1
0,75;0,70;1;1;0
0,63;0,68;0;0;0
0,58;0,54;1;1;0
0,90;1;1;1;0
1;0,85;0;0;0
1,00;0,41;1;1;0
0,21;0,95;1;1;0
0,62;0,62;1;0;0
0,72;0,31;1;0;0
0,13;0,14;0;1;0
0,57;0,58;1;0;0
0,59;0,57;1;0;0
0,59;0,99;1;0;0
0,32;0,96;0;1;0
0,88;0,89;1;0;0
0,88;0,85;1;0;0
0,68;0,67;0;1;0

4. Classe arquivo
using System;
using System.Collections.Generic;using System.Linq;
using System.Text;
using System.IO;

namespace HidroeletricaBackPropag
{
class Arquivo
{
public static List<double> E1 = new List<double>();
public static List<double> E2 = new List<double>();
public static List<double> E3 = new List<double>();
public static List<double> E4 = newList<double>();
public static List<double> t = new List<double>();
public static List<double> w1 = new List<double>();
public static List<double> w2 = new List<double>();

public static void lerArquivo(string pathValue, string pathW1, string pathW2)
{
int i = 0;
string line = "";StreamReader sr = new StreamReader(pathValue);
while (!(line == null))
{
i++;
line = sr.ReadLine();
if (!(line == null))
{
string[] lineArray = line.Split(';');
E1.Add(Convert.ToDouble(lineArray[0]));
E2.Add(Convert.ToDouble(lineArray[1]));E3.Add(Convert.ToDouble(lineArray[2]));
E4.Add(Convert.ToDouble(lineArray[3]));
t.Add(Convert.ToDouble(lineArray[4]));
}
}

sr.Close();
sr = new StreamReader(pathW1);
i = 0;
line = "";

while (line != null)
{...
tracking img