Uma ferramenta computacional para comercialização de
Transcrição
Uma ferramenta computacional para comercialização de
Uma ferramenta computacional para comercialização de energia do agente autoprodutor Fabrício Yutaka Kuwabata Takigawa(2); Fábio Matheus Mantelli(3); Thiago Cantusio Muraro(3) Resumo Expandido (1) Trabalho executado com recursos do Edital Universal de Pesquisa nº 12/2013/PROPPI Professor; Instituto Federal de Educação Ciência e Tecnologia de Santa Catarina – IFSC; Florianópolis, SC; [email protected]; (3) Estudante; IFSC. (2) RESUMO: Uma das responsabilidades do agente autoprodutor consiste em garantir o atendimento total de sua carga, seja por geração própria e/ou mediante a contratação com um ou mais fornecedores. No cenário nacional, o agente autoprodutor pode firmar contratos bilaterais de compra com concessionárias de distribuição (mercado cativo), geradores e comercializadores (mercado livre). Em relação à venda de energia, os contratos podem ser celebrados com consumidores livres e comercializadores. No entanto, a compra e venda de energia no mercado de curto prazo estão relacionados com as diferenças entre geração, contratação e consumo do agente. O trabalho vigente tem a finalidade de amparar a contratação de energia para o agente autoprodutor por meio do desenvolvimento de uma ferramenta computacional que contenha as estratégias de contratação desse agente. Palavra Chave: Comercialização de energia, Agente autoprodutor, Portfólio de contratos, Programação Linear. 1. COMERCIALIZAÇÃO DE ENERGIA ELÉTRICA Atualmente no Brasil [1-2], há dois ambientes de contratação no mercado de energia elétrica, o Ambiente de Contratação Livre (ACL), onde ocorrem livres negociações entre vendedores e compradores de energia elétrica e o Ambiente de Contratação Regulada (ACR), onde a aquisição de energia elétrica é realizada pelas empresas distribuidoras de energia para atender às necessidades de seus consumidores cativos. No cenário nacional, um agente autoprodutor pode adquirir energia por meio de geração autoproduzida, contratos bilaterais, contratos com a distribuidora e com o mercado de curto prazo. Em relação às opções de venda, o agente tem a possibilidade de comercializar energia por meio de contratos bilaterais e pelo mercado de curto prazo. A Figura 1 ilustra as possíveis formas de comercialização do agente autoprodutor. O agente deve estar ciente dos fatores que podem influenciar na criação de portfólios de contratos e na tomada de decisão, tais como: necessidade de cobertura contratual, possíveis penalidades relacionadas à insuficiência de lastro contratual, diversificação contratual existente no 4º Seminário de Pesquisa, Extensão e Inovação do IFSC ACR e no ACL, possíveis exposições aos diferentes preços entre os submercados (Norte, Nordeste e Sudeste/Centro-Oeste e Sul), entre outros. Esses fatores intrincam a tomada de decisão do agente, podendo expor o mesmo a elevados riscos contratuais de, por exemplo, não produzir o suficiente para vender ou estar sujeito a pagar valores elevados de energia no mercado de curto prazo para atender seus contratos de venda de energia. Figura 1 - Compra e venda de energia pelo agente autoprodutor. ISSN 2357-836X Neste sentido, o presente trabalho tem como objetivo principal o desenvolvimento de uma ferramenta computacional baseada no Gurobi Optimizer [3] e no Visual Studio C++ para auxiliar a tomada de decisão do agente autoprodutor. A ferramenta desenvolvida está baseada no problema de otimização apresentado em [4]. 2. GUROBI OPTIMIZER E VISUAL STUDIO C++ O Gurobi Optimizer é uma ferramenta computacional consolidada pela indústria devido ao seu desempenho em programação linear, quadrática e inteira mista. Por utilizar o paradigma computacional de análise, projeto e programação orientado a objetos, traz consigo a facilidade de comunicação com plataformas de desenvolvimento de softwares e linguagens como C++ [5], Java, Matlab, entre outros. Para a execução do Gurobi Optimizer há duas possibilidades: desenvolver um arquivo lp-format (formato nativo para ler e escrever modelos de programa linear) ou efetuar a comunicação – por meio de orientação a objetos – entre o Gurobi Optimizer e uma plataforma de desenvolvimento e execução de sistemas e aplicações. Por meio da Figura 2 é possível visualizar a tela do Gurobi Optimizer em shell onde são realizados os comandos para resolver um problema de otimização desenvolvido em arquivo lp-format. gurobi56.lib – arquivo responsável pela comunicação com as bibliotecas do Gurobi Optimizer e o Visual Studio 2010 – e do arquivo de cabeçalho gurobic++.h. Com isso, é possível instanciar as classes do Gurobi Optimizer para serem utilizadas como objetos na formulação do problema de otimização linear em linguagem C++. 3. IMPLEMENTAÇÃO DO PROBLEMA DE OTIMIZAÇÃO Após efetuar a comunicação entre o Visual Studio 2010 e o Gurobi Optimizer inicia-se a etapa do desenvolvimento computacional. Inicialmente, são criados dois construtores: GRBEnv() e GRBModel(). O construtor GRBEnv() é denominado como ambiente Gurobi, pois define onde será resolvido o modelo de otimização (ambiente local ou servidor de computação). No presente estudo, optou-se pelo ambiente local. O construtor GRBEnv() é responsável pela criação do objeto env que possui os atributos e os métodos necessários ao processo de otimização pelo Gurobi Optimizer. Os limites inferiores (lower bound) e superiores (upper bound) das variáveis do problema de otimização são incorporados às variáveis por meio do método addVar() durante a definição do objeto GRBVar vetor[] – vetor que contêm todas as variáveis do problema de otimização. Em seguida, define-se a função objetivo que busca maximizar o retorno financeiro do agente produtor. Na Figura 3 é possível visualizar o código computacional responsável pela determinação da função objetivo. Figura 2 – Gurobi Interactive Shell (win32). Neste trabalho, optou-se pela elaboração de um aplicativo em linguagem C++ (compilador Visual Studio 2010 para aplicações Windows) efetuando a comunicação diretamente com o Gurobi Optimizer por meio do paradigma computacional orientado a objetos. A comunicação entre o Visual Studio 2010 e o Gurobi Optimizer é realizada por meio do arquivo 4º Seminário de Pesquisa, Extensão e Inovação do IFSC Figura 3 – Função objetivo do problema de otimização. O método setObjetive() do objeto model, aloca o objeto linear obj (GRBLinExpr) que contém a função objetivo a ser maximizada. As restrições do problema de otimização são inseridas por meio dos objetos GRBLinExpr demanda, GRBLinExpr venda e GRBLinExpr geracao – objetos utilizados para a alocação das restrições de demanda, venda e geração, respectivamente. ISSN 2357-836X Por meio da Figura 4, tem-se o código computacional responsável pela lógica da restrição de atendimento à demanda. Figura 5 – Restrições de venda e geração. Figura 4 – Restrição de atendimento à demanda. As variáveis de compra de energia por contrato bilateral (CCB) e pela distribuidora (CMC) possuem restrições de continuidade [4]. Desta forma, as mesmas estão contidas no laço for interno, pois estas são computadas desde o primeiro ao último estágio do processo de otimização. A restrição de demanda é inserida ao problema de otimização por meio do método addConstr() que recebe o objeto demanda e o vetor b_dem[] que advém do arquivo externo b_dem.txt. As restrições de venda e geração são introduzidas ao problema de otimização por meio de dois métodos addConstr(), que recebem os objetos venda e geracao e o vetor dos termos constantes de suas respectivas restrições – os termos constantes, assim como no método da restrição de demanda, são inseridos por meio de arquivos externos alocado nos vetores b_ver[] e b_ger[]. A Figura 5 ilustra a inserção das restrições de venda e geração ao problema de otimização. Após a inserção da função objetivo e das restrições de demanda, de venda e de geração, o método optimize() do objeto model (objeto que contém o problema de otimização linear), transmite-o ao Gurobi Optimizer e este retorna o valor ótimo da função objetivo e das variáveis do problema de otimização. 4. ANÁLISE DA FERRAMENTA COMPUTACIONAL A Figura 6 ilustra as formas de comercialização do agente autoprodutor, para o cenário de caso proposto. Pode-se observar que são consideradas uma usina geradora e duas fábricas, dispostas em dois submercados distintos. Figura 6 - Formas de comercialização de energia do agente autoprodutor para o problema proposto. O horizonte de estudo é de um ano, discretizado em 12 meses, resultando em um problema de otimização com 144 variáveis e 48 restrições1. Os dados de demanda, geração e preços estão dispostos na Tabela 1. 1 Ressalta-se novamente que as restrições de limites inferiores e superiores das variáveis já são inseridas na definição das variáveis do problema. 4º Seminário de Pesquisa, Extensão e Inovação do IFSC ISSN 2357-836X Tabela 1- Demandas, geração e preços dos contratos em cada submercado, M=122. Na Figura 7 pode-se observar o resultado da ferramenta computacional desenvolvida com a otimização do problema linear com 48 linhas (restrições) e 144 colunas (variáveis). Figura 8 - Montantes de energia comercializados. 5. CONCLUSÕES Figura 7 – Tela de saída da ferramenta desenvolvida. Para a solução do problema, o Gurobi Optimizer efetuou 27 iterações em 0,01 segundos. O custo total nesse horizonte é de R$ 293.390,00. Como resultado da solução do problema de otimização, obtém-se a contratação ilustrada na Figura 8. Pode-se observar que o agente atende a demanda de suas fábricas por meio da geração autoproduzida, contratos no mercado cativo (170 MW no primeiro estágio para a fábrica 1 e 10MW no sétimo estágio para a fábrica 2) e compras no mercado de curto prazo para suprir as demandas. Ressalta-se que caso esse cenário se concretizasse, o agente poderia ter um resquício contratual de 10MW relacionado à compra bilateral (caso a vigência fosse maior que seis meses). Neste trabalho foi apresentada a ferramenta computacional desenvolvida para amparar as estratégias de comercialização de energia do agente autoprodutor. Salienta-se que essa ferramenta pode contribuir para que o agente evite exposições em demasia e/ou possíveis penalidades. Ressalta-se ainda que a ferramenta computacional desenvolvida propicia a possibilidade ao agente de efetuar diversas simulações adicionais. REFERÊNCIAS [1] NERY, E. Mercados e Regulação de Energia Elétrica, Editora Interciência, 2012. [2] TOLMASQUIM, M. O Novo Modelo do Setor Brasileiro. Edição 1, Ed. Synergia, 2011. [3] GUROBI v. 5.5. Disponível em http://www.gurobi.com. Acesso 10 outubro de 2013. [4] TAKIGAWA, F. Y. K.; LAGRANHA, J. F.; RITA, L. K.; FERNANDES, R. C.;MOROZOWSKI, M. F.; FINARDI, E. C.; CARVALHO, L. C. X. Estratégias de contratação de um agente de mercado. XV Encontro Regional Ibero Americano – XV ERIAC, 2013. [5] BACKES, A. Linguagem C ampliada e descomplicada. Elsevier. Rio de Janeiro, 2013. 2 A venda de energia no mercado de curto prazo só é possível no submercado onde a usina está alocada. 4º Seminário de Pesquisa, Extensão e Inovação do IFSC ISSN 2357-836X
Documentos relacionados
Uma ferramenta computacional para comercialização de
em demasia e/ou possíveis penalidades. Ressalta-se ainda que a ferramenta computacional desenvolvida propicia a possibilidade ao agente de efetuar diversas simulações adicionais.
Leia mais