• Nenhum resultado encontrado

6. MODELAGEM ORIENTADA A OBJETOS

6.2. Implementação do Modelo ARP

6.2.1. Diagrama de Classes

A seguir, a Figura 6.1 apresenta o Diagrama de Classes do modelo estocástico implementado, onde estão presentes todas as classes desenvolvidas para a modelagem do processo estocástico de energias afluentes, conforme apresentado no Capítulo 3.

FIGURA 6.1 – DIAGRAMA DE CLASSES – MODELO ARP

As classes C_SparseMatrix [33] e C_Cholesky [34] foram utilizadas, respectivamente, para resolução de sistemas lineares e para o cálculo da decomposição de Cholesky. As demais classes, implementadas no presente trabalho, são descritas a seguir, detalhando seus respectivos atributos e métodos.

6.2.2. Classe C_Generator

A classe C_Generator, apresentada na Figura 6.2, é a classe principal do sistema e tem como função coordenar o processo de geração de séries sintéticas.

FIGURA 6.2 – CLASSE C_GENERATOR

simulado, no presente estudo foram considerados quatro subsistemas: Sul, Sudeste, Nordeste e Norte.

O período sazonal considerado para a definição do modelo ARP é representado por period, considerado nesse estudo igual a 12, para representação de um processo estocástico mensal.

As matrizes series, de dimensão [systemDimension x seriesDimension], e

syntheticSeries, de dimensão [systemDimension x seriesSyntDimension],

representam, respectivamente, as séries históricas de entrada e as séries sintéticas de saída.

Os procedimentos implementados para essa classe são detalhados a seguir: • setAllSeriesDimension(int S_Dimension, int Sys_Dimension):

dimensiona a matriz do histórico de energias afluentes.

• setAllSerie(int A_SysPos, int A_SerPos, double A_Value): carrega os dados da matriz do histórico de energias afluentes para todos os REEs simulados.

• setAllSyntheticSerie(int A_SysPos, int A_SerPos, double A_Value): dimensiona a matriz das séries sintéticas de energias afluentes.

• setPeriod(int A_Period): define o tamanho do período sazonal.

• calculate(): é o procedimento principal da classe. Quando executado coordena todo o processo necessário para a geração das séries sintéticas, criando objetos e executando os procedimentos necessários. • getSystemDimension() e getSeriesDimension(): obtém as dimensões do

sistema simulado. 6.2.3. Classe C_MPAR

A classe C_MPAR, apresentada na Figura 6.3, é responsável pela modelagem da dependência espacial entre as séries sintéticas de energias afluentes.

FIGURA 6.3 – CLASSE C_MPAR

O atributo loadMatrix é uma matriz tri-dimensional (Figura 6.4), de dimensões [systemDimension x systemDimension x period] e armazena as matrizes de correlação espacial para cada período sazonal.

FIGURA 6.4 – REPRESENTAÇÃO ESQUEMÁTICA DA MATRIZ LOADMATRIX

Os procedimentos implementados para essa classe são detalhados a seguir: • calculate(): é o procedimento principal da classe. Coordena todo o

processo necessário para a modelagem da dependência espacial do sistema.

• getLoadMatrixParameters(int A_SysDimLin, int A_SysDimCol, int

A_month): obtém as matrizes de correlação espacial entre os REEs

simulados.

implementados em todas as classes de modo a manter a modularidade do código, permitindo que as classes implementadas possam ser utilizadas em outras aplicações.

6.2.4. Classe C_FACP

Essa classe é responsável pelo cálculo da função de autocorrelação parcial e dos parâmetros auto-regressívos do modelo ARP. A classe C_FACP é apresentada na Figura 6.5, a seguir:

FIGURA 6.5 – CLASSE C_FACP

O atributo lag define o número de intervalos de dependência temporal analisados; orderVector armazena as ordens dos modelos auto-regressivos calculados e autoregressiveParameters os parâmetros auto-regressivos do modelo estocástico, para cada período sazonal considerado. A variável

errorDesvPad armazena os desvios-padrão dos resíduos das regressões

lineares de cada período sazonal.

Os procedimentos implementados para essa classe são detalhados a seguir: • calculate(): Coordena todo o processo necessário para o cálculo dos

parâmetros auto-regressivos.

• getAutoregressiveParameters(int A_Month, int A_i): obtém os valores de autocorrelação calculados para o período sazonal A_Month e lag int A_i.

• getErrorDesvPad(int A_Month): retorna os desvios-padrão dos resíduos das regressões lineares de cada período sazonal A_Month.

• getInfLin(int A_i) e getSupLin(int A_i): obtêm, respectivamente os limites inferiores e superiores para a definição das ordens do modelo ARP. • getOrderVector(int A_Month): obtém a ordem do modelo auto-regressivo

para cada período sazonal A_Month. 6.2.5. Classe C_FAC

A classe C_FAC, apresentada na Figura 6.6, calcula a função de autocorrelação periódica, que mede a dependência temporal entre os períodos subseqüentes das séries de energias afluentes.

FIGURA 6.6 – CLASSE C_FAC

Os atributos autocorr e covariance, definidos para a classe C_FAC, representam, respectivamente as funções de autocorrelação e autocavariância para a série histórica de energia afluente analisada.

Os procedimentos implementados para essa classe são detalhados a seguir: • calculate(): é o procedimento principal da classe. Quando executado

coordena todo o processo necessário para o cálculo da função de autorrelação.

• getAutocorr(int A_Period, int A_Lag): obtém os valores das autocorrelações para o período A_Period e lag A_lag.

6.2.6. Classe C_DistTransf

A classe C_DistTransf calcula as transformações de variáveis utilizadas no processo de simulação. Essa classe, apresentada na Figura 6.7, é chamada duas vezes durante o processo, na primeira, transforma a série original para a obtenção de uma distribuição aproximadamente normal e, na segunda, aplica uma transformação inversa na série sintética gerada.

FIGURA 6.7 – CLASSE C_DISTTRANSF

O vetor inSerie armazena os dados das séries a serem transformadas e o vetor

outSerie os dados das séries transformadas. Os procedimentos implementados

para essa classe são detalhados a seguir:

• convertLogNormToNorm(): transforma a série original, com distribuição aproximadamente LogNormal para uma série com distribuição aproximadamente Normal.

• convertNormToLogNorm(): transforma a série sintética transformada, com distribuição aproximadamente Normal para uma série com distribuição aproximadamente LogNormal.

• setInSerie(int A_Position, double A_Value): carrega a série para a qual se quer aplicar a transformação de variáveis.

• getOutSerie(int A_Position): obtém a série transformada. 6.2.7. Classe C_BasicStatistics

A Classe C_BasicStatistics, apresentada na Figura 6.8, é responsável pelo cálculo dos momentos estatísticos básicos, necessários ao processo de simulação.

FIGURA 6.8 – CLASSE C_BASICSTATISTICS

Os vetores average, stdDeviation e skew armazenam, respectivamente, as médias, os desvios-padrão e os coeficientes de assimetria sazonais.

Os procedimentos implementados para essa classe são detalhados a seguir: • calculate(): realiza todos os cálculos necessários para obtenção dos

valores das estatísticas básicas do processo.

• getAverage(int A_Position): obtém os valores das médias sazonais. • getStdDeviation(int A_Position): obtém os valores dos desvios-padrão

sazonais.

• getSkew(int A_Position): obtém os valores dos coeficientes de assimetria sazonais.

6.3. Base Computacional Utilizada na Simulação do Problema de

Documentos relacionados