• Nenhum resultado encontrado

As cargas de pressão foram registradas com o auxílio de dataloggers durante períodos de uma semana em cada setor. Foram utilizados 8 medidores de carga de pressão em cada setor. Os medidores foram configurados para registro dos dados em intervalos de 15 minutos. Idealmente, os medidores de carga de pressão deveriam ser instalados diretamente em pontos da rede de água para que não houvesse influência do consumo de água dos ramais prediais. Entretanto, isso não foi possível, devido à falta de pontos de controle nos setores em estudo.

Os medidores foram instalados nos ramais prediais. As campanhas de campo para o setor Iguatemi ZA foram efetuadas de 18 a 25 de março, no Iguatemi ZB, de 18 a 25 de fevereiro, no Martinez, de 25 de fevereiro a 4 de março, e no Eliana de 4 a 11 de março de 2013. A Figura 28 mostra os medidores em dois pontos de monitoramento.

Figura 28 – Sensores de pressão instalados nos ramais residenciais.

A Figura 29 ilustra um exemplo dos valores das cargas obtidas em determinado instante. Como a frequência de amostragem utilizada foi de 15 minutos, foram obtidos 5 valores por hora.

Para o cálculo da carga horária, notou-se que os valores menos enviesados para a calibração seriam os valores máximos de carga de pressão obtidos durante a hora de interesse, pois existem valores que são prejudicados durante o consumo que podem diminuir o valor médio da leitura. Através da Figura 29, nota-se a perceptível diferença entre os valores mínimos e máximos obtidos em determinadas horas devido ao consumo residencial. Embora os valores das medianas e médias apresentem valores próximos aos valores máximos, estes valores ainda são influenciados pelos valores de mínimos em diversos instantes.

Figura 29 – Exemplo de cargas de pressão obtidas para um nó

Um dos medidores apresentou problemas no setor Iguatemi ZA e o ponto foi descartado. O mesmo problema ocorreu no setor Iguatemi ZB. Os dados foram coletados corretamente nos setores Eliana e Martinez. Entretanto, no setor Martinez, verificou-se que um dos pontos medidos não fazia parte do sistema por erro cadastral e este ponto também foi descartado para efeito de calibração.

3.3.1 Correção dos dados de Campo

Além do problema da inexistência de pontos de controle diretamente na rede, outras dificuldades também foram encontradas nos locais determinados pelo software de amostragem. Em diversas ocasiões não foi possível instalar os sensores nos locais desejados por diversos motivos, e.g. ausência de moradores nas residências, indisponibilizade de torneiras, residências inexistentes, etc.

Nestes casos, o procedimento adotado foi o de localizar a residência mais próxima possível do nó desejado. Através das coordenadas dos setores, criou-se um mapa com os setores de estudo para verificar a diferença nos dados das cargas de pressões entre os nós desejados e nós mais próximos monitorados (Figuras 30-33).

Figura 30 – Representação planialtimétrica do setor Iguatemi ZA

Figura 32 – Representação planialtimétrica do setor Eliana

Martinez

Além da correção das cotas, outra interferência sistêmica foi inserida nos dados de carga de pressão. Os medidores foram conectados a registros posicionadas em diferentes alturas. Portanto, foi necessário subtrair os valores para redução da incerteza nos dados (Figura 34).

Figura 34 – Exemplos de correções nos valores dos dados As Tabelas 10-13 listam as correções nos dados obtidos em campo.

Tabela 10 – Correções consideradas no setor Iguatemi ZA Nó amostrado Nó mais próximo Observações Correção cota (m)

n334 n264 0

n101 ok Localizado em cima da pia -

somar +-1,2m 1,2

n398 ok 0

n110 n109 No interior da pia (+- 1m) 0

N15 n48 0

N181 n265 não obteve leitura -1.78

N276 ok 0,51

Tabela 11 – Correções consideradas no setor Iguatemi ZB Nó amostrado Nó mais próximo Observação Correção cota (m)

n631 Ok Sensor com erro de medição 0,23

n610 n404 1,48 n35f Ok 0,34 n14a n587 -0.71 n224 n226 0 n75 n57d fixado a 1m de altura 3,31 n189 n192 fixado a 1m de altura -1.85 n154 n37h 0,92

Tabela 12 – Correções consideradas no setor Eliana

Nó amostrado Nó mais próximo Obs Correção cota (m)

n113 n32 1,52 n37 n11e 0,88 n60 ok -1.16 n2n ok 1,99 N155 n141 0,34 N92 n93 -0.3 N103 n8 0,75 N89 n85 0

Tabela 13 – Correções consideradas no setor Martinez

Nó amostrado Nó mais próximo Obs Correção cota (m)

n255 n296 0,9

n102 ok 2,01

n5h n405 0

n95 n83h 0

N531 n523 Protegido em uma caixa 0,5

N203 ok 0,46

N56 n45 0

3.4 Definição das arquiteturas das RNAs

Conforme mencionado na revisão, as redes neurais tradicionais possuem como limitação a necessidade de ajustes iniciais para a determinação das configurações ideais para cada problema em particular. Visando resolver esta limitação, novos modelos têm sido propostos para tornar as redes neurais auto-ajustáveis. Neste trabalho, duas redes neurais desse tipo foram implementadas e testadas: a DAN2 (Dynamic Artificial Neural Network), proposta por Ghiassi et al. (2005) e a AMGA (Adaptive Merging and Growing Algorithm), proposta por Islam et al. (2009). Ambas as redes foram desenvolvidas no programa Matlab, versão institucional fornecida pela USP. A rede neural DAN2 foi implementada utilizando a linguagem script do Matlab. A rede AMGA foi implementada seguindo as instruções de mesclagem e adição de neurônios, modificando a rede neural já existente na toolkit de redes neurais distribuída com o Matlab.

Conforme foi dito na revisão, os sistemas de calibração clássicos procuram identificar valores ótimos para as variáveis de decisão que visam a aproximar os dados de vazões e cargas de pressões obtidas em campo, com aqueles obtidos via simulações. No presente trabalho, as variáveis de decisão adotadas são coeficientes de rugosidades, parâmetros de vazamentos e coeficientes de perdas de carga localizadas.

Antes de serem utilizadas para a finalidade de calibração, inicialmente as redes neurais foram avaliadas quanto à sua capacidade de prever demandas de água, pois o teste poderia ser realizado facilmente. A análise completa dos resultados obtidos pelas RNAs foram publicados em Odan et. al 2012. Os testes com as redes neurais construtivas para fins de calibração somente seriam possíveis posteriormente com a aquisição dos dados de campo. Os detalhes da arquitetura das RNA para calibração, incluindo dados de entradas (medidas de campo ou simulações) e dados de saída (variáveis de decisão) são apresentados na Seção 3.5.

3.4.1 ADAPTIVE MERGING AND GROWING ALGORITHM (AMGA)

Islam et al. (2009) desenvolveram um algoritmo para construir RNAs denominado

Adaptive Merging and Growing Algorithm (AMGA). O algoritmo usa mecanismos de união e

adição de neurônios da camada intermediária, baseando-se no progresso e na habilidade de aprendizado dos neurônios dessa camada. A mescla é realizada entre neurônios com repostas correlacionadas entre si, enquanto que a adição divide o neurônio em dois, de modo a reaproveitar o treinamento anterior e reduzir o treinamento necessário após a modificação. Este algoritmo pode ser aplicado a diversos tipos de RNAs, sendo que neste trabalho será aplicado a RNA feedforward com algoritmo de treinamento Backpropagation, com o termo momentum, o qual confere maior velocidade ao treinamento sem prejudicar a estabilidade do mesmo. Tal termo é uma fração da alteração de peso anterior e é adicionado ao ajuste de pesos da equação descrita por Beale e Jackson (1990)

n ij n ij n ij w w w 1  (19)

em que wij é o peso sináptico entre o nó i e j, Δwij é a variação do peso e o índice n e n+1

correspondem número da iteração durante o treinamento. A variação do peso é dada pela regra delta generalizada, dada a seguir pela Equação 20:

n i n j n ij x w   1 (20)

em que η é a taxa de aprendizagem no intervalo [0,1], nj é o gradiente local de erro para o

neurônio j.

Esta RNA será denominada RNA MOM-BP. Os passos utilizados pela AMGA são descritos a seguir:

1. Criar uma RNA de três camadas, com número de neurônios nas camadas de entrada e saída determinado pelo problema a ser modelado. O número de neurônios na camada intermediária é gerado aleatoriamente, assim como a matriz de pesos iniciais;

2. Inicializar o contador de ciclos i 0,i1,2,,M, para cada neurônio da

camada intermediária hi, sendo M o número de neurônios da camadas

intermediária. Este contador é utilizado para contabilizar o número de ciclos em que o neurônio foi treinado;

3. Treinar parcialmente a RNA para um número fixo de ciclos , especificado pelo usuário;

4. Incrementar a contagem de ciclos, expresso pela Equação 21, para i = 1, 2, ..., N:

 

ii(21)

Sendo N o número de neurônios na camada intermediária. Inicialmente N e M sãoiguais;

5. Calcular o erro do conjunto de validação pela Equação 22, denominado Erro Quadrático Percentual Médio (Prechelt, 1994). Se o critério de parada é satisfeito, parar o treinamento, senão continuar:

 

 



     V v K i i i v Z v Y KV o o E 1 1 2 min max 100 (22)

Em que omax e omin são, respectivamente, os valores máximos e mínimos para os

quais a saída da RNA foi padronizada; V é o número de exemplos do conjunto de validação; K é o número de neurônios da camada de saída; Yi(v) e Zi(v) são,

respectivamente, a saída produzida pela RNA e a saída desejada, do i-ésimo neurônio de saída para o v-ésimo exemplo do conjunto de validação;

6. Remover o rótulo (“label”) dos neurônios intermediários e calcular a

significância ηi de cada neurônio intermediário hi usando a fórmula empírica da

Equação 23 3 i i i    (23)

Em que σi é o desvio padrão da saída de cada neurônio hi, para os exemplos do

conjunto de treino, e μi é contador de ciclos;

7. Rotular os neurônios hi como significativos (S) caso a significância de um ou

mais desses neurônios seja maior que um mínimo definido pelo usuário. Notar que no máximo metade dos neurônios serão rotulados;

8. Calcular a correlação entre os neurônios rotulados S e os neurônios não rotulados, referente à saída produzida por tais neurônios intermediários para o conjunto de treino;

9. Realizar a mescla entre os neurônios rotulados e seu par mais correlacionado (ha

e hb) e calcular a média entre o contador de ciclos de ambos os neurônios (no

original, o contador é zerado). Os pesos dos neurônios modificados são dados pelas Equações 24 e 25: p i w w w ai bi mi , 1,2, , 2     (24) q i w w wjmjajb, 1,2,, (25)

em que p e q são os números de neurônios nas camadas de entrada e saída, respectivamente. Os pesos wai e wbi são os i-ésimos pesos dos neurônios ha e hb,

respectivamente, enquanto wmi é o i-ésimo peso da camada de entrada e wmj é o j-

ésimo peso da camada de saída;

10. Retreinar a RNA modificada até que se obtenha erro menor ou igual ao da RNA

anterior. Caso essa nova RNA consiga produzir um erro menor ou igual a RNA anterior, então prosseguir para o passo 11, caso contrário ir para o passo 12; 11. Atualizar o contador de ciclos conforme Equação 21;

12. Verificar o critério de adição de neurônio, conforme Equação 26. Se o critério for satisfeito, continuar, senão, retornar ao passo 3:

  

tE t

, t ,2,3...

E (26)

13. Adicione um neurônio intermediário à RNA, que consiste em dividir um neurônio existente em dois, sendo que o contador de ciclos para cada um desses neurônios será μ/2. Os pesos dos neurônios divididos são dados pelas Equações 27-28:

w

w1  1 (27)

w

w2  (28)

em que w é o vetor de pesos pai, e w1 e w2 são os vetores pesos filhos. O

coeficiente α é um valor fixo ou aleatório, que deve ser pequeno.

O treinamento é finalizado quando o erro do conjunto de validação (Equação 22) aumenta um determinado número de vezes consecutivas, que neste trabalho foi adotado como 3. Ao fim do treinamento, a arquitetura efetivamente usada é a que apresentou o menor erro do conjunto de validação.

3.4.2 Rede Neural Dinâmica (DAN2)

O outro modelo escolhido foi o DAN2 (Dynamic Architecture for Artificial Neural

Networks), proposto por Ghiassi et al. (2005). Também foi escolhido por produzir resultados

superiores às redes neurais convencionais em termos de velocidade de treinamento e fidelidade dos resultados. Além disso, suas camadas intermediárias são determinadas dinamicamente em tempo de execução ao invés de empiricamente tornando seu uso simplificado.

A idéia geral do modelo baseia-se no princípio de aprendizagem e acumulação de conhecimento em cada camada, propagando e ajustando o conhecimento para a próxima camada, e repetindo as etapas até que o desempenho desejado seja atingido. Segundo os próprios autores, a rede DAN2 classifica-se como um modelo puramente feed-forward. A arquitetura DAN2 é composta por uma camada de entrada, uma ou mais camadas ocultas e uma camada de saída (Figura 35).

Figura 35 – Arquitetura do modelo DAN2 (Ghiassi et al. (2005)).

A camada de entrada é responsável por receber os padrões de treinamento. Uma vez que os nós de entrada são identificados, todas as observações são usadas simultaneamente para treinar a rede.

A próxima decisão de modelagem é a escolha do número de camadas ocultas e nós ocultos. Neste modelo, diferente das redes neurais clássicas, o número de camadas ocultas não é fixado a priori. Eles são gerados sequenciamente e dinamicamente até que o nível de precisão da resposta seja atingido. O modelo possui um número fixo de nós ocultos em cada camada.

Cada nó possui uma função específica para o treinamento da rede. Em cada camada oculta, a rede é treinada usando todas as observações em um conjunto de treinamento simultaneamente, de modo a minimizar os erros. O primeiro nó é uma constante de valor igual a 1, chamado de nó C. O segundo nó consiste em uma função que encapsula o elemento de conhecimento acumulado atual e é chamado de CAKE, do inglês (Current accumulated

knowledge element). A função CAKE é calculada na camada inicial de modo diferente das

camadas subsequentes. Na camada inicial é representada pela Equação 28:

 

   m j j ij i a b x X F 1 0 0 0 (28)

E nas camadas ocultas é representada pela Equação 29:

 

i k k k

 

i k

k i

k

k i

k X a b F X c d

sendo: ak, bk, ck, dk e μk pesos de ajuste lineares do modelo DAN2; Fk(Xi ) é o valor da função

CAKE na camada k (k-ésima iteração) para o conjunto de treinamento Xi; Fk-1(Xi )é o valor da

função CAKE na camada anterior; Gk(Xi) e Hk(Xi) são as funções de transferência

trigonométricas, descritas a seguir.

O terceiro e quarto nós representam o componente não linear resídual atual do processo, capturado através de uma função de transferência usando um somatório ponderado e normalizado das variáveis de entrada. Esses nós são chamados de CURNOLE (Current

residual nonlinear element). As funções Gk(Xi) e Hk(Xi) são expressas por Gk  cos

ki

e

k i

k

H  sin   . O produto ki define um ângulo entre o registro observado Xi e um vetor

de referência R, definido como 1.

O ângulo e as funções trigonométricas correspondentes são utilizados para a combinação e transferência e, assim, são usados para medir a distância generalizada entre cada observação Xi e o vetor de referência R. O ângulo αi pode ser calculado através das

Equações 30 e 31:

R Xi

N parai n i cos 1,..., 1    (30)

i i N i X R X R X R     (31)

De modo simplificado, o algoritmo de treinamento é composto pelas seguintes etapas: Seja uma matriz de entrada X = {Xi; i = 1, 2, ..., n} com n registros independentes de

m atributos, sendo Xi = {xij; j = 1, 2, ..., m}. Define-se também um vetor de referência R =

{rj; j = 1, 2, ..., m} como um vetor de valores constantes.

1. Ajustar os coeficientes da camada linear inicial através da Equação 28, para os valores da matriz X, utilizando-se a regressão linear;

2. Caso o ajuste seja satisfatório, ou seja, a precisão esteja dentro do limite estipulado, o algoritmo pode ser finalizado. Caso contrário, inicia-se o ajuste não linear, adicionando-se camadas ocultas iterativamente, expressas pela Equação 29, até que as condições das Equações 32 e 33 sejam satisfeitas;

3. De posse da rede neural treinada, aplicar o modelo para os dados que se deseje prever.

O ajuste não linear utiliza a técnica da projeção vetorial, projetando-se cada registro de observação em um vetor de referência para a normalização dos dados. A normalização consiste na determinação dos ângulos entre cada registro i e o vetor de referência. Tais ângulos são ajustados durante o treinamento e atualizados a cada iteração. Ghiassi et al. (2005) sugerem diversos métodos para busca dos melhores parâmetros de ajuste para o componente não linear. Neste trabalho, utilizou-se o algoritmo de Levenberg-Marquardt e todos os pesos foram ajustados simultaneamente em cada camada.

Para definir o critério de parada na fase de treinamento/validação, Ghiassi et al. (2005) recomendam a verificação de duas condições (Equações 32 e 33). A condição do primeiro erro (∗) visa evitar a falta de treinamento, verificáveis através da variação da diferença entre a soma do quadrado médio da previsão atual (SSEk) e a anterior (SSEk-1). A

segunda avaliação (∗) é utilizada para evitar o treinamento excessivo, interrompendo o algoritmo, caso o erro quadrado médio do conjunto de treinamento (MSET) se distancie do

erro quadrado médio do conjunto de validação (MSEv). Os limites de  e 1*  foram 2*

determinados experimentalmente.

*

1 1

1 / 

  SSEkSSEk SSEk  (32)

* 2

2 / 

  MSETMSEV MSET(33)

Modelos de previsão

Para o processo de previsão, foram usados dados de consumo do setor Iguatemi, da cidade de Araraquara, SP. A série é composta por 6985 registros horários de consumo em litros por segundo. O processo pode ser dividido em 3 etapas: (i) treinamento da rede neural; (ii) validação e (iii) previsão.

O treinamento da rede neural consiste em treinar o modelo através do fornecimento dos padrões de entrada. Para o treinamento, foram utilizados 60% dos registros. A validação é um processo paralelo ao treinamento. Consiste na avaliação do treinamento com o uso de dados distintos dos usados no treinamento para verificar o bom ajuste do modelo. A validação impede que haja perda da generalidade pelo excesso de treinamento. Para a validação foram utilizados 20% dos dados. Por fim, a previsão propriamente dita foi feita e comparada com os 20% restantes dos dados.

A escolha do modelo de previsão baseou-se nos estudos de Odan e Reis (2012), em que o melhor modelo de previsão, para a próxima hora utilizou como dados de entrada o consumo defasado de 0, 1, 2 e 168 horas.

Critério de Avaliação

Para avaliar o desempenho dos modelos de previsão, utilizaram-se dois critérios, o Erro Absoluto Médio (do inglês Mean Absolute Error – MAE) e a Raiz do Erro Quadrático Médio (Root Mean Square Error – RMSE), expressos respectivamente pelas Equações 34 e 35:

   N i i i y y N MAE 1 ˆ 1 (34)

   N i i i y y N RMSE 1 2 ˆ 1 (35)

em que yi e yˆ são respectivamente os valores previstos e observados, e N é o número i

de dados avaliados.

Avaliação da previsão

Os modelos de previsão para a próxima hora foram avaliados para cinco treinamentos, que são apresentados na Tabela 14 e 15 e nas Figuras 36–38.

Na Figura 36 pode-se observar a evolução do erro em função do número de neurônios na camada intermediária para a rede neural AMGA. Para os cinco treinamentos, obteve-se uma média de 24 neurônios, que variou de 12 a 36. Para esse treinamento, o critério de parada foi atingido com 28 neurônios, sendo que o melhor resultado foi obtido com 22 neurônios. Cada treinamento foi realizado em menos de 40 minutos, por um computador Core 2 Duo (T6400) de 2.0 GHz, com 3 GB de memória RAM.

Devido à rapidez do algoritmo de aprendizagem do modelo DAN2, executou-se o treinamento da rede neural sem critério de parada para determinação dos valores dos erros. Todo o treinamento foi feito em 5,4 segundos em um computador com processador i7 2.2 GHz, 8 GB de memória RAM. A Tabela 14 lista os valores dos erros encontrados para cada camada até a iteração 5. Observa-se que não há melhora significativa para ε1 (Equação 32)

após a iteração 2. Os valores de ε2 (Equação 33) permanecem relativamente constantes nas

cinco iterações, embora observe-se que existe uma pequena diminuição no erro. Através da verificação do MAE e RMSE, observa-se que os modelos apresentam bons resultados logo na primeira iteração, sendo desnecessário prosseguir com o treinamento.

Figura 36 – Evolução do erro para a rede neural AMGA

Tabela 14 – Evolução do Erro em função do número de camadas k para a rede neural DAN2 k ε1 ε2 MAEk (Treino) MAEk (Validação) RMSEk (Treino) RMSEk (validação) 1 1.0000096 1.9388577 3.38 3.48 0.08 0.13 2 0.0000585 1.9383737 3.39 3.49 0.08 0.13 3 0.0000970 1.9377212 3.39 3.50 0.08 0.13 4 0.0001350 1.9372125 3.40 3.50 0.08 0.13 5 0.0001726 1.9368575 3.40 3.51 0.08 0.13

A Tabela 15 mostra o erro encontrado na previsão final dos dados para ambas as RNAs. A previsão resultou em valores semelhantes aos encontrados no treinamento, embora, ao contrário do esperado, tenha apresentado erros menores do que com os dados utilizados no treinamento. Observa-se que a rede AMGA produziu melhores resultados que a DAN2.

0.16 0.17 0.18 0.19 0.2 0.21 0.22 0 4 8 12 16 20 24 28 Camadas E rr o Q ua drá ti c o pe rc e nt ua l

Tabela 15 – Erro para a previsão das RNAs

Modelo MAE RMSE

AMGA 2.34 3.61

DAN2 3.24 3.62

A Figura 37 ilustra o resultado da previsão de demanda de toda a série de dados. Na Figura 38 apresenta-se um trecho de simulação escolhido arbitrariamente para melhor visualização da previsão, correspondente a sete dias de dados. Verifica-se que ambos os modelos apresentam comportamento similar. O modelo AMGA aproxima-se bem da demanda nos horários de menor consumo, enquanto que a DAN2 tende a superestimá-la. A previsão do modelo DAN2 aproxima-se melhor dos picos de consumo que o modelo AMGA, o qual tende a subestimar tais picos.

Figura 38 – Detalhe da previsão utilizando período de 7 dias

Depois de testadas, concluiu-se que as redes neurais AMGA e DAN2 foram implementadas corretamente e que funcionaram adequadamente para a tarefa de previsão de demandas, sendo que o modelo AMGA apresentou o melhor desempenho devido à sua maior capacidade de generalização, que se baseia em estratégias adaptativas, as quais, em tese, podem ser adaptadas a qualquer tipo de rede neural.

Finalmente, após finalizada esta etapa, partiu-se para a criação dos padrões de treinamento com a finalidade de calibração. A seção seguinte explica como as redes neurais artificiais foram concebidas para o processo de calibração.

3.5 Criação dos padrões de treinamento

Para que as redes neurais artificiais sejam capazes de adquirir conhecimento (“aprender”) do comportamento dos modelos de redes abastecimento de água, é necessário que lhes seja fornecido um conjunto de treinamento. O conjunto de treinamento consiste de exemplos contendo diversas entradas com valores variados e as respostas correspondentes produzidas pelo modelo de rede de abastecimento. Assim, um conjunto de exemplos com

uma ampla variação nos valores amostrais produz uma gama maior de resultados, melhorando a qualidade do aprendizado.

Ao contrário de um modelo caixa-preta (e.g. redes neurais), o modelo de simulação

Documentos relacionados