ORIENTAÇÃO A OBJETOS APLICADA NA SOLUÇÃO DO FLUXO DE POTÊNCIA PARA SISTEMAS DE DISTRIBUIÇÃO DE E E



Documentos relacionados
UML - Unified Modeling Language

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Modelagemde Software Orientadaa Objetos com UML

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

O que é a UML? Introdução a UML. Objetivos da Modelagem. Modelos. A UML não é. Princípios da Modelagem. O que é um modelo?

Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre César M de Oliveira

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Organização e Arquitetura de Computadores I

Persistência e Banco de Dados em Jogos Digitais

Orientação a Objetos

UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

Engenharia de Software I: Análise e Projeto de Software Usando UML

Introdução ao Modelos de Duas Camadas Cliente Servidor

build UNIP Sistemas de Informação Análise Essencial de Sistemas 3 Prof.Marcelo Nogueira A produção de Software é uma atividade build and fix.

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC

Engenharia de Requisitos Estudo de Caso

Noções de. Microsoft SQL Server. Microsoft SQL Server

Engenharia de Software

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Introdução a computação móvel. Middlewares para Rede de Sensores sem Fio. Uma avaliação na ótica de Adaptação ao Contexto

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Histórico da Orientação a Objetos Ciclo de vida de Desenvolvimento de SW

Padrões de projeto 1

2 Diagrama de Caso de Uso

Fluxo de Potência em sistemas de distribuição

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO (Bacharelado)

Sumário. Uma visão mais clara da UML

Sistemas Distribuídos

ISO/IEC 12207: Gerência de Configuração

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

CÁLCULO DO CURTO CIRCUITO PELO MÉTODO KVA

Projeto de controle e Automação de Antena

REVISÃO ENGENHARIA DO SOFTWARE. Isac Aguiar isacaguiar.com.br

Sistemas de Informação I

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

Engenharia de Requisitos

IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET

4 Um Exemplo de Implementação

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

Banco de Dados. Introdução. João Eduardo Ferreira Osvaldo Kotaro Takai. DCC-IME-USP

MRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior

ESTUDO DE CASO: LeCS: Ensino a Distância

Conceitos de Banco de Dados

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

SISTEMAS DE INFORMAÇÃO GERENCIAIS

Guia de utilização da notação BPMN

IW10. Rev.: 02. Especificações Técnicas

Arquitetura dos Sistemas de Informação Distribuídos

Roteamento e Comutação

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

O Processo de Desenvolvimento de Software

Documento de Projeto de Sistema

Diagrama de Caso de Uso e Diagrama de Sequência

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

Análise e Projeto Orientados por Objetos

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o.

Unisant Anna Gestão Empresarial com ERP 2014 Modelagem de Sistemas - UML e MER

OANAFAS é um programa computacional

Material de Apoio. Sistema de Informação Gerencial (SIG)

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Engenharia de Software III

Processo de Desenvolvimento de Software. Engenharia de Software.

Memórias Prof. Galvez Gonçalves

SISTEMA DE GESTÃO DE PESSOAS SEBRAE/TO UNIDADE: GESTÃO ESTRATÉGICA PROCESSO: TECNOLOGIA DA INFORMAÇÃO

Fase 1: Engenharia de Produto

O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

REPRESENTAÇÃO FASORIAL DE SINAIS SENOIDAIS

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no

3. Fase de Planejamento dos Ciclos de Construção do Software

MÓDULO 11 ELEMENTOS QUE FAZEM PARTE DO PROJETO DO SISTEMA

Disciplina de Banco de Dados Introdução

DAS Inteligência Artificial Aplicada à Controle de Processos e Automação Industrial

Feature-Driven Development

DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA

GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios

Introdução a Java. Hélder Nunes

CASE Orientada a Objetos com Múltiplas Visões e Implementação Automática de Sistemas - MVCASE

REPRESENTAÇÃO DE REQUISITOS VARIÁVEIS COM UML, SEGUINDO O MÉTODO ICONIX

PLANEJAMENTO DA MANUFATURA

Arquitetura de Banco de Dados

2 Engenharia de Software

APOO Análise e Projeto Orientado a Objetos. Requisitos

Concepção e Elaboração

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Transcrição:

ORIENTAÇÃO A OBJETOS APLICADA NA SOLUÇÃO DO FLUXO DE POTÊNCIA PARA SISTEMAS DE DISTRIBUIÇÃO DE E E JHONI E. SCHULZ, CARLOS R.M. DA ROCHA Centro de Engenharias e Ciências Exatas, Universidade Estadual do Oeste do Paraná, Foz do Iguaçu-PR Parque Tecnológico Itaipu - PTI, Av. Tancredo Neves, 6731, CEP 85856-970, Foz do Iguaçu-PR E-mails: jhonieldor@gmail.com, c.rocha@ieee.org Abstract In this paper is shown the method of modeling and object-oriented programming applied to the solution of the power flow based on backward forward sweep to simulate and analyze networks of electric power distribution systems. This work is piece of a larger study focused on modeling and development of a web-based intelligent system for analysis and planning of electric power distribution systems. Here are presented the development of the power flow solution using the Java programming language by combining the frameworks of Java Enterprise Edition (JEE) platform, and PostgreSQL database module technology. Keywords Power System Analysis Computer, Power Distribution Lines, Object-Oriented, Computational Intelligence. Resumo Neste artigo é apresentado o método de modelagem e programação orientada a objetos aplicado na solução do fluxo de potência baseado no backward forward sweep para simular e analisar redes de sistemas de distribuição de energia elétrica. Esse trabalho é parte de uma pesquisa mais ampla centrada na modelagem e no desenvolvimento de um sistema inteligente web para análise e planejamento dos sistemas de distribuição de energia elétrica. Aqui são apresentados o desenvolvimento do módulo de solução do fluxo de potência utilizando a linguagem de programação Java com a combinação dos frameworks da plataforma Java Enterprise Edition (JEE), e a tecnologia de banco de dados PostgreSQL. Palavras-chave Análise Computacional de Sistemas de Potência, Linhas de Distribuição, Orientação a Objetos, Inteligência Computacional. 1 Introdução No planejamento dos sistemas elétricos de potência, por meio de análises e estudos de cenários em regime permanente, o fluxo de potência é empregado como uma ferramenta para simular o estado dos sistemas de transmissão e distribuição de energia elétrica. Com essa análise é possível obter informações que possibilitem a verificação sobre níveis de tensões e injeções de correntes nos nós, as perdas elétricas e a verificação da capacidade relacionada com os limites de carregamento através da análise da corrente e da potência que passam pelos trechos em redes de alta, média e baixa tensão, e a partir disso é possível executar processos de otimização tanto na expansão, quanto na reconfiguração dessas redes. O cálculo do fluxo de potência é realizado por meio de métodos computacionais com capacidade para resolver sistemas de equações e inequações algébricas correspondentes às leis de Kirchhoff, onde a modelagem do sistema é estática e utilizada em situações nas quais as variações com o tempo são suficientemente lentas, podendo assim ser desprezados os efeitos transitórios (Monticelli, 1983). Aplicando os métodos consolidados para resolver o fluxo de potência em sistemas de transmissão nos sistemas de distribuição, nota-se a diferença entre os parâmetros da resistência e reatância de linhas longas de transmissão e as linhas de distribuição, além da forma que esses dois segmentos operam, uma vez que os sistemas de transmissão são compostos por interligações em malhas enquanto que, considerando as redes aéreas, os sistemas de distribuição normalmente são unidirecionais pelo fato de que as topologias de suas redes são compostas em formato radial. Essas diferenças acabam causando alguns problemas de convergência em métodos consolidados para sistemas de transmissão como Newton Raphson, Gauss Seidel e Desacoplado Rápido quando aplicados na solução do fluxo de potência para análise dos sistemas de distribuição (Shirmohammadi et al,1988). Em conta disso, o backward forward sweep se consolidou como um método simples e eficiente na solução do fluxo de potência em sistemas de distribuição. Este método é orientado pelas leis de Kirchhoff e se resume basicamente pelo processamento das informações da rede através de uma matriz de incidência, executando uma varredura iniciada pela soma das correntes injetadas a partir dos nós terminais até a subestação da rede, e onde na sequência, são calculadas as quedas de tensões partindo dos nós mais próximos da subestação até os nós terminais, seguindo esse procedimento até que se atinge a convergência. Mas, mesmo neste método são necessários algoritmos de indexação dos nós e das linhas para resolver as equações, com o cuidado de relacionar as informações corretas conforme os dados da topologia da rede, como as ramificações entre os nós e seus dados de demanda. 1911

Por outro lado, sabe-se que a orientação a objetos é tida como uma metodologia que oferece uma maior flexibilidade no desenvolvimento de soluções inteligentes e robustas em diversas áreas de domínio. Aplicando essa metodologia na solução do fluxo de potência baseado no backward forward sweep, o problema de indexação dos nós e das linhas é eliminado, bem como a necessidade de compor e processar a matriz de incidência e a matriz de impedâncias em sistemas trifásicos. Neste contexto, baseando-se no backward forward sweep, foi desenvolvida uma solução computacional por meio de modelagem e programação orientada a objetos no intuito de se obter um módulo capaz de solucionar o fluxo de potência em qualquer topologia dos sistemas de distribuição operados de forma radial, com uma interface gráfica em ambiente web, e um banco de dados para armazenar as informações e os resultados dos sistemas simulados. Essa modelagem foi obtida por meio de notação UML, e para o desenvolvimento da solução foi utilizada a linguagem de programação Java com os frameworks da plataforma Java Enterprise Edition, sendo eles, o Java Server Faces(JSF) para interação dos objetos com a interface gráfica a qual foi elaborada com uso do plugin Primefaces, o EJB3 para injeção de dependências e automatização das transações de banco de dados, e o JPA para aplicação do mapeamento objeto relacional e persistência com o banco de dados, que por sua vez, foi implementado com o PostgeSQL. A proposta deste trabalho é apresentar como a orientação a objetos foi aplicada para solucionar o fluxo de potência adequando-a ao backward forward sweep, e quais são os benefícios que tornam esse paradigma viável na aplicação das soluções dos problemas relacionados aos sistemas elétricos de potência. 2 Orientação a Objetos Com o objetivo de tratar os problemas de alta complexidade e aumentar a produtividade no desenvolvimento de software, de tal maneira que, objetos representassem componentes de um sistema modularmente decomposto ou unidades modulares da representação do conhecimento, a orientação a objetos surgiu baseada na lógica de frames, que foi criada para alcançar um método de modelagem próxima da inteligência humana, possibilitando assim, a aplicação dos conceitos de representação do conhecimento. A partir daí, os conceitos de orientação a objetos foram evoluindo com os avanços de arquiteturas de computadores incluindo o aumento da capacidade dos sistemas e do suporte ao hardware, dos conceitos de sistemas operacionais, das linguagens de programação como Simula, Smaltalk, CLU e Ada, e das metodologias de programação, introduzindo técnicas de modularização e encapsulamento de informações, resultando em contribuições significantes para a melhoria em modelos de banco de dados, pesquisas em inteligência artificial, além de estudos na filosofia e ciência cognitiva (Booch,1994). A orientação a objetos pode ser definida como um método de modelar e construir sistemas baseados em entidades reais abstraindo seus problemas de algum lugar no mundo real. Essas entidades podem ser definidas como objetos, onde cada objeto sendo único em um espaço de memória computacional possui características e comportamentos diferentes. Assim, estes objetos quando instanciados, mesmo que suas informações sejam protegidas dos demais objetos para evitar que o comportamento de um interfira na integridade de outro, existe a colaboração entre eles, o que aumenta a confiabilidade e flexibilidade no tratamento de problemas complexos de forma produtiva, enquanto que no paradigma de programação estruturado, adaptar o código às mudanças dos requisitos de software era sempre um procedimento custoso em conta da dependência entre as partes implementadas (Sodhi e Sodhi, 1996). Para obter um modelo que permite imitar os conceitos do mundo real com a orientação a objetos é necessário que se classifique as entidades normalmente agrupadas por um conjunto de informações que possuem algo em comum, compondo dessa forma uma estrutura hierárquica entre classes e seus atributos. Isso permite expressar os problemas em determinadas áreas de domínio, agrupando os atributos em objetos que são relacionados e difundidos às regras de produção, criando então um processo de raciocínio de um sistema baseado em conhecimento, ou um sistema especialista. Em torno disso, linguagens como CLIPS e PROLOG permitem elaborar e desenvolver modelos para tratamento de regras que representam uma base de conhecimento (Rezende et al, 2005). De acordo com Russel e Norvig (2004), a organização de objetos por meio de classificação é vital para a representação do conhecimento em meios computacionais, possibilitando criar mecanismos de percepção e dedução, com a finalidade de realizar prognósticos baseado nas informações e no comportamento desses objetos. Do ponto de vista de análise, o que se busca com a orientação a objetos, é obter o domínio de determinado problema com base na descrição e modelagem dos objetos identificados por meio de notação UML (Unified Modelling Language), enquanto que, durante o projeto se dá ênfase na definição desses objetos e na forma como estes colaboram para satisfazer os requisitos. Assim, o que se espera no desenvolvimento utilizando orientação a objetos é a habilidade de atribuir responsabilidades aos objetos identificados, e instanciados em soluções computacionais (Larman, 2007). Porém, para a análise e o desenvolvimento de um projeto orientado a objetos é necessário saber quando aplicar os conceitos de herança, encapsulamento e polimorfismo. Além disso, é importante ter o domínio sobre a notação UML, pois esta, é utilizada como uma ferramenta de modelagem para elabo- 1912

rar diagramas que compõem a estrutura hierárquica das classes que definem as características dos objetos identificados no processo de análise. Isso significa que para fazer bom uso dos recursos que a orientação a objetos propicia, é necessário entender o problema a ser resolvido, e então modelar os conceitos desse problema usando técnicas de classificação e aí partir para a programação orientada a objetos. 2.1 Aplicações em Sistemas Elétricos de Potência Especificamente na área de sistemas elétricos de potência, já foram realizados trabalhos como a modelagem e desenvolvimento de um sistema computacional apresentado por Manzoni (2005), que implementado em C++ mostrou-se capaz de analisar as redes de alta tensão, permitindo simular cenários através do fluxo de potência e estabilidade de tensão. Por sua vez (Neyer et al, 1990), desenvolveram um protótipo para calcular o fluxo de potência baseado no método completo de Newton Raphson a fim de defender a ideia de que a orientação a objetos seria ideal para atender os requisitos de um EMS (Energy Managment System) o qual na época era mantido em linguagens de alto nível da primeira geração. Utilizando a linguagem de programação Objective C atingiram resultados em um tempo computacional mais lento que o tempo obtido no fluxo de potência implementado em Fortran, e diante disso afirmaram que essa questão dependia da linguagem de programação e do quanto os recursos do paradigma orientado a objetos eram utilizados, por fim, evidenciaram que fazendo uso de classes elevou-se o nível conceitual na programação. Já, Tomoioagã et al (2011), optaram por aplicar a orientação a objetos ao método backward forward sweep na solução do fluxo de potência com objetivo de analisar a propagação assimétrica e a distorção de harmônicos em sistemas de distribuição trifásicos com cargas desbalanceadas. Na China, Luo et al (2009) desenvolveram um sistema de informação georreferenciado (GIS) para suporte na tomada de decisões no planejamento da expansão em redes de distribuição utilizando a tecnologia de banco de dados Oracle para armazenamento de dados integrado ao servidor de dados espaciais ARC SDE e ao Activex Data Object para a comunicação e a leitura desses dados, incrementando uma camada para efetuar a análise da demanda no planejamento, que de forma automatizada realizava o planejamento através de algoritmos baseados em vários cenários proporcionando subsistemas para analisar a expansão em redes de distribuição separadas por regiões e distritos, com mecanismos de consulta em planejamentos relacionados. Esse projeto foi realizado mediante a uma separação em camadas visando os aspectos de segurança na aplicação de uma arquitetura orientada a objetos. Neste trabalho, a proposta é apresentar a orientação a objetos aplicada ao backward forward sweep, e será descrita em detalhes a seguir. 3 Método Backward Forward Sweep O backward forward sweep é um método iterativo e utiliza um esquema de varredura segmentando a rede em camadas que agrupam os nós mais próximos da subestação até os mais afastados, conectados pelas linhas de distribuição, compondo dessa forma uma estrutura de dados em formato de árvore para então iniciar as varreduras que verificam o cumprimento das leis de Kirchhoff. Para ilustrar, será considerado como exemplo um sistema de distribuição de 23 nós. Figura 1. Topologia de um sistema de distribuição de 23 nós - Adaptado de Lavorato, Rider, Garcia e Romero (2010). Como pode ser visto no sistema apresentado na Figura 1, sua topologia é composta em formato radial. Para dar início ao método, é necessário identificar pelas ramificações quais são os nós mais próximos e mais afastados da subestação, e é assim que se forma a árvore com a divisão das camadas, conforme mostra a Figura 2. Figura 2. Composição do sistema em camadas Levando em conta que foram especificados os dados de entrada, como potência ativa e reativa em cada nó, a tensão base do sistema, além da resistência e reatância por km de cada linha, e considerando o modelo de linha curta, inicia-se o método estabelecendo a tensão em 1,0 pu e o ângulo em 0 graus para todos os nós, calculando então a injeção de corrente inicial em todos os nós, conforme a equação apresentada na Figura 3. 1913

Figura 3. Calculo da injeção de corrente Ao final desse procedimento é verificado pelo critério de convergência se os resultados apresentados na iteração estão coerentes com os dados do sistema. O critério de convergência pode ser adotado, como por exemplo, fazendo a comparação entre a potência aparente especificada e a potência aparente recalculada na iteração dada pela relação entre a tensão e a injeção de corrente de cada nó, assim obtém-se a maior das diferenças e verifica-se se esta é menor ou igual que um valor de tolerância aceitável. Outra forma de se adotar o critério de convergência, é utilizar os valores de tensão calculados em pu na iteração, comparando-os com as tensões em pu calculadas na iteração anterior, assim se a maior das diferenças obtidas por esse critério for menor ou igual que uma tolerância especificada, a convergência é atingida. Esses dois critérios seguem detalhados nas Figuras 6 e 7. A partir daí torna-se possível o início da etapa backward, que é a soma dessas correntes partindo dos nós terminais do sistema até a subestação. Para demonstrar essa etapa, usou-se como exemplo um pequeno sistema de 6 nós, ilustrado na Figura 4. Figura 6. Critério das Diferenças de Potências Figura 4. Soma das Correntes (Backward) Com isso, obtém-se os fasores de correntes que passam pelos trechos ao longo das camadas do sistema, o que permite calcular as quedas de tensões, tão logo obter a atualização das tensões na iteração. Assim, a diferença das tensões entre os nós de origem e destino nas ramificações de cada camada do sistema deve ser igual à queda de tensão dada pela relação entre a corrente e a impedância da linha. Então para cumprir a 2ª lei de Kirchhoff, é executada a etapa forward, ilustrada na Figura 5. Figura 7. Critério das Diferenças de Tensões em Pu Por fim, o backward forward sweep, segue representado pelo fluxograma apresentado na Figura 8. Figura 5. Calculo das Tensões (Forward) Figura 8. Fluxograma backward forward sweep A abordagem utilizada nesse método torna perceptível a classificação dos objetos e como eles se relacionam para proceder no cálculo fluxo de potência. Na sequência isso será mostrado em mais detalhes. 1914

4 Orientação a Objetos aplicada na Solução do Bacward Forward Sweep Antes de falar em resolver o fluxo de potência, é importante lembrar que as grandezas das informações analisadas como as correntes que passam pelas linhas, as correntes injetadas nos nós do sistema bem como suas tensões, são compostas por números complexos, na forma polar e cartesiana. Por exemplo, no momento em que se dispara uma operação de soma nos atributos de um objeto, deve ser extraído o real e o imaginário de sua grandeza, e assim calculado de forma correspondente, como por exemplo, no processo da soma das correntes conforme mostra a Figura 9. Figura 9. Soma de Números Complexos Para extrair a magnitude e o ângulo em radianos, deve ser realizada a equação descrita na Figura 10. Figura 10. Extração da Magnitude e Ângulo Sabendo que boa parte dos atributos são compostos por números complexos, basta analisar os conceitos descritos na seção anterior para identificar os objetos e classificá-los. Nota-se que, inicialmente, para se obter a análise do fluxo de potência, os objetos são classificados como nós, linhas e camadas, conforme ilustrado na Figura 11. Figura 12. Diagrama de Classes Por meio dessa modelagem, torna-se possível se desprender da indexação dos nós e linhas, pois como pode ser visto na Figura 12, a associação entre as classes Linha e Nodo torna suas enumerações independentes da topologia, ou seja, caso em tempo de execução a enumeração de um nó seja alterada, ele permanece vinculado à uma linha como origem ou destino da mesma, bem como a enumeração das linhas que permanecem vinculadas a uma camada. Isso facilita a mudança da topologia dos sistemas simulados em tempo de execução, além de oferecer a flexibilidade na adaptação dessa solução à uma modelagem mais ampla, como a apresentada por Selvan e Swarup(2006). Para completar essa modelagem, basta incluir os atributos e métodos correspondentes aos nós na classe Nodo onde se agrupa os dados de demanda, da potência ativa, potência reativa e corrente injetada, e às linhas na classe Linha, que por sua vez é responsável por armazenar as informações de corrente, resistência, reatância, impedância, perda ativa, perda reativa e o fluxo de potência, lembrando que, quando se trata de números complexos, ainda existe a necessidade de extrair as magnitudes e seus respectivos ângulos bem como as partes reais e imaginárias, o que de fato fica a critério de modelagem e implementação. 4.1 Implementação do Modelo Orientado a Objetos em Java aplicando Mapeamento Objeto/Relacional Baseando-se na modelagem inicial, ilustrada na Figura 13, as classes Nodo, Linha, e Camada foram implementadas em Java e tiveram suas estruturas refletidas nas tabelas do banco de dados através do mapeamento objeto-relacional(o/r). Figura 11. Classificação dos Objetos Isso demonstra que na modelagem inicial foram identificadas as classes Nodo, Linha e Camada. Percebe-se então que, essas classes se associam da seguinte forma: a classe Linha depende da classe Nodo, uma vez que cada linha do sistema está relacionada a um nó de origem e um nó de destino; e agrega-se à classe Camada, pois as camadas são compostas por um conjunto de linhas. Então em um diagrama de classes UML, temos inicialmente, o esquema ilustrado na Figura 12. Figura 13. Mapeamento O/R Como pode ser visto na Figura 13, o mapeamento O/R proporciona a possibilidade de refletir as ações da aplicação no modelo Orientado a Objetos para o modelo relacional do banco de dados, onde as informações são armazenadas, e ao recuperá-las, 1915

através das heurísticas baseadas em regras, determina-se o que fazer com elas. Para a solução do fluxo de potência foi possível recuperar as informações dos nós, linhas e camadas e mapeá-las para as coleções dos objetos. Dessa forma, a topologia do sistema se resume à coleção de objetos da classe Camada, pois a mesma possui uma coleção de objetos da classe Linha, que por sua vez faz o vínculo entre os nós de origem e destino. Na Figura 14, segue a ilustração da aplicação dos frameworks utilizados na implementação do mapeamento objeto relacional que permite processar as informações armazenadas no banco de dados para calcular o fluxo de potência. Na etapa forward, demonstrada na Figura 16, pode-se notar que a varredura se inverte, pois parte da subestação para as extremidades do sistema calculando as quedas de tensão de cada linha, e atualizando as tensões em cada nó. Figura 16. Implementação da etapa forward Lembrando que, nos exemplos ilustrados, as operações de soma e subtração de fasores foram abreviadas, pois na prática é necessário fazer o tratamento de operações de números complexos conforme ilustrado anteriormente. Figura 14. Implementação do Mapeamento O/R A implementação do cálculo do fluxo de potência baseado no backward forward sweep, resume-se em duas partes, apresentadas nas figuras 15 e 16. Na etapa backward, ilustrada na Figura 15, encontrou-se uma alternativa que simplificou a soma das correntes partindo das extremidades do sistema para a subestação. Nessa alternativa, incrementou-se um atributo auxiliar na classe Nodo para armazenar o somatório das correntes. No início de cada iteração, esse atributo auxiliar recebe a injeção de corrente, e depois segue somando seu próprio valor com as correntes auxiliares a jusante de cada linha percorrida. Ao final, esse somatório é atribuído ao valor de corrente de cada linha. 4.1 Simulador do Fluxo de Potência Através das etapas de desenvolvimento demonstradas, foi possível obter um protótipo inicial de um simulador do fluxo de potência em regime permanente, capaz de simular redes de distribuição em qualquer topologia radial no modelo monofásico, permitindo a elaboração de sistemas testes com entrada de dados por meio de uma interface amigável. Na Figura 17, é apresentado o início de uma simulação após acessar o sistema por meio de login e senha. Figura 17. Dados iniciais de uma simulação Após a inclusão de um novo sistema para ser simulado, é gerado o número de nós automaticamente com seus valores de demandas inicializados em zero e a tensão no valor da tensão base especificada para o sistema podendo, a partir disso, cada nó ser selecionado em uma tabela para a atualização de seus dados, conforme a Figura 18. Figura 15. Implementação da etapa backward Figura 18. Manipulação de dados de um nó selecionado 1916

Ao informar a potência aparente e o fator de potência, a potência ativa e reativa são recalculadas, do contrário, a potência aparente e o fator de potência são recalculados, e tanto de uma forma como de outra a corrente injetada do nó é atualizada. Além disso, a partir do nó selecionado é possível adicionar uma linha no sistema, selecionando um nó de destino relacionado em uma tabela, e assim devem ser informados os dados da linha, assim como mostra a Figura 19. 4.1 Simulações Realizadas em Sistemas Radiais Um dos primeiros processos de validação dessa parte desenvolvida, foi a montagem de um sistema de 23 nós que já havia sido simulado e validado em GAMS (Brooke, Kendrik e Meeraus, 1997). Maiores informações sobre estes resultados podem ser obtidas em Rocha et al (2012). Nesse sistema, a tensão base foi atribuída em 35,535kV, o fator de potência em 0,9, enquanto que a potência aparente foi especificada em 320kVA do nó 4 ao nó 23, e 640kVA no nó 3, e 0kVA no nó 2. A topologia desse sistema montado pode ser vista na Figura 23. Figura 19. Adição de Linha A cada vez que esse processo é repetido, o sistema, de forma automatizada, verifica se a linha adicionada deve ser incluída em uma camada existente do sistema, ou deve ser realizada a adição automática de uma camada para então adicionar a linha, e assim, a topologia do sistema é desenhada na página web em formato de árvore, e as camadas são compostas em uma tabela abaixo, assim como pode ser visto na Figura 20. Figura 22. Topologia do Sistema de 23 nós Executando o fluxo de potência, foram obtidos os resultados correspondentes às perdas ativas e reativas, e o tempo de execução em segundos, ambos apresentados na Figura 23. Figura 23. Resultados da Simulação do Sistema de 23 nós Figura 20. Topologia Montada Desse modo, a estrutura de dados é composta, permitindo proceder aos cálculos da soma das correntes e das quedas de tensões de forma simples. Além disso, ainda é possível visualizar, verificar e editar os dados das linhas a montante, e a jusante de um nó selecionado, como mostra a Figura 21. Além disso, esse sistema apresentou uma variação nas quedas de tensões relativamente baixa, onde a tensão mais baixa obtida foi a do nó 3 com 35.317kV num ângulo de -0.00104 radianos. Outra simulação realizada foi baseada em um sistema de 10 nós, conforme apresentado por Grainger e Lee (1982), e com a alocação dos bancos de capacitores conforme descrito por Grainger e Lee (1981). Ao rodar o fluxo de potência neste sistema, foram obtidos os resultados inerentes às perdas ativas e reativas, e o tempo de execução, conforme ilustrado na Figura 24. Figura 24. Resultados do Sistema de 10 nós com a alocação dos bancos de capacitores Figura 21. Ramificações de um Nó selecionado Neste mesmo sistema, foi possível comparar os perfis de tensões entre rodar o fluxo de potência com a alocação dos bancos de capacitores, e sem os bancos de capacitores. Essa comparação segue ilustrada no gráfico apresentado na Figura 25. 1917

Figura 25.Comparação nos Perfis de Tensões no Sistema de 10 nós 5 Conclusão Através desse trabalho foi possível explorar na teoria e na prática, os recursos que a orientação a objetos oferece para solucionar os problemas do mundo real, resultando no simulador apresentado neste artigo, que foi tomado como o ponto de partida no projeto de desenvolvimento de um sistema inteligente baseado na orientação a objetos para análise automatizada de redes aéreas de distribuição de energia elétrica em ambiente web. Desse modo, módulos que integram a solução do fluxo de potência com a presença da geração distribuída em sistemas no modelo trifásico com cargas desbalanceadas estão em processo de testes, análise e desenvolvimento. Embora esse simulador ainda exija que os dados dos sistemas sejam informados manualmente através da interface gráfica, futuros módulos de integração com banco de dados que armazenam dados de sistemas reais poderão ser desenvolvidos utilizando os recursos de webservices. Além disso, o Java se mostrou uma ferramenta poderosa na programação orientada a objetos, permitindo agregar heurísticas de automatização nas simulações de forma ágil e flexível. Agradecimentos Este trabalho tem o apoio financeiro da Fundação PTI através do processo 901040/2013. Referências Bibliográficas Booch, G. (1994). Object-Oriented Analysis And Design With Applications. Addison-Wesley, Santa Clara - California. Brooke, A., Kendrik, D. e Meeraus, A. (1997). GAMS Sistema Geral de Modelagem Algébrica. Edgar Blücher, Rio de Janeiro - RJ. Grainger, J.J., Lee, S.H. (1981). Optimum Size and Location of Shunt Capacitors for Reduction of Losses on Distribution Feeders. IEEE Transactions on Power Apparatus and Systems, Vol. PAS-100, No. 5, pp. 1105-1118. Grainger, J.J., Lee, S.H. (1982). Capacity Release By Shunt Capacitor Placement on Distribution Feeders: A new Voltage-Dependent Model. IEEE Transactions on Power Apparatus and Systems, Vol. PAS-101, No. 5, pp. 42-43. Larman, C. (2007). Utilizando UML e Padrões. Bookman, Porto Alegre - RS. Lavorato, M., Rider, M.J., Garcia, A.V. e Romero, R. (2010). A Constructive Heuristic Algorithm for Distribution System Planning. IEE Transactions on Power Systems, Vol.25, No.3; pp. 1734-1742. Luo, F.,Wang, C., Xiao, J., Ge, S., Yu, B., Wang, J., Li, Y., Wang, S. (2009). A Practical GIS-Based Decicion-making Support System for Urban Distribution Network Expansion Planning. Sustainable Power Generation and Supply, 2009. SUPERGEN '09. International Conference on, ISBN - 978-1-4244-4934-7, Nanging China. Manzoni, A. (2005). Desenvolvimento de um Sistema Computacional Orientado a Objetos para Sistemas Elétricos de Potência: Aplicação a Simulação Rápida e Análise da Estabilidade de Tensão. COPPE/UFRJ, Rio de Janeiro - RJ. Monticelli, A. (1983). Fluxo de Carga em Redes de Energia Elétrica. Edgar Blucher, Rio de Janeiro - RJ. Neyer, A.F., Wu, F.F., Imhof, K.(1990). Objectoriented programming for flexible software: example of a load flow. IEEE Transactions on Power Systems, Vol. 5, No. 3, pp. 689-696. Rezende, S.O., Evsukoff, A.G., Garcia, A.C.B., Carvalho, A.C.P.L.F.,Braga, A.P., Monard, M.C., Ebecken, N.F.F., Morandin, O., Almeida, P.E.M., Ludemir, T.B. (2005). Sistemas Inteligentes Fundamentos e Aplicações. Editora Manole, Barueri SP. Rocha, C.R.M., Contreras, J., Lotero, R.C., Muñoz, J.I. (2012). Algoritmo Heurístico Construtivo Enumerativo Aplicado ao Planejamento da Expansão de Sistemas de Distribuição de Energia Elétrica. Anais do XIX Congresso Brasileiro de Automática, CBA 2012, Campina Grande PB. Russel, S., Norvig, P. (2004). Inteligência Artificial. Elsevier Editora Ltda, Rio de Janeiro - RJ. Selvan, M.P. and Swarup, K.S. (2006). Modeling and analysis of unbalanced distribution system using object-oriented methodology. Electric Power Systems Research, Volume 76, Issue 11, July 2006, Pages 968-979, ISSN 0378-7796 Shirmohammadi, D., Hong, H. W., Semlyen, A., Luo, G. X.(1988). A Compesation-Based Power Flow For Weakly Meshed Distribution And Transmission Networks. IEEE Transactions on Power Systems, Vol. 3, No. 2, pp. 753-762. Sodhi, J. and Sodhi, P. (1996). Object-Oriented Methods for Software Development. McGraw- Hill, New York - NY. Tomoiaga, B., Chindris, M., Sudria-Andreu, A., Sumper, A. (2011) Object oriented backward/forward algorithm for unbalanced and harmonic polluted distribution systems. International Conference on Electrical Power Quality and Utilisation (EPQU), 2011 11th, vol., no., pp.1-6. 1918