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

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