Академический Документы
Профессиональный Документы
Культура Документы
Bauru
2017
4
Bauru
2017
5
FOLHA DE APROVAÇÃO
_______________________________________
Prof. Dr. Leonardo Nepomuceno (Orientador)
Faculdade de Engenharia de Bauru/DEE/UNESP
_______________________________________
Prof. Dr. André Cristóvão Pio Martins
Faculdade de Engenharia de Bauru/DEE/UNESP
_______________________________________
Profª Drª. Edilaine Martins Soler
Faculdade de Ciências de Bauru/DM/UNESP
___________________________________________
Coordenador do Conselho de Curso de Graduação em
Engenharia Elétrica
7
RESUMO
Este trabalho propõe um modelo de Autoprogramação (AP) para ser utilizado pelos
agentes geradores em um mercado Pool levando em consideração o horizonte de programação de
curtíssimo prazo (a cada hora do dia). Com o propósito de complementar a formação acadêmica,
o trabalho consiste em uma integração de assuntos técnicos e conhecimentos de mercado. O
modelo é formulado como um problema de programação linear inteira-mista (PLIM), e tem como
objetivo a maximização dos lucros de uma companhia do tipo price-maker sujeito ao atendimento
das principais restrições associadas à operação de suas unidades. Uma companhia é dita do tipo
price maker quando esta possui poder de mercado, isto é, quando esta tem a capacidade de alterar
os preços de mercados por meio de suas ofertas aos leilões de energia.
ABSTRACT
This work proposes a self-scheduling model to be used by generating agents in a Pool market
taking into consideration a real-time pool (hourly). With the purpose of complementing the
academic formation, the work consists in an integration of technical subjects and market
knowledge. The model is formulated as an integer-mixed linear programming problem, and aims
to maximize the profits of a price-maker company subject to the main constraints associated with
the operation of its units. A company is said to be a price maker when it has market power, that
is, when it can change market prices through its offers to power auctions.
SUMÁRIO
1 INTRODUÇÃO 11
4.1 RESERVATÓRIO 21
5 OTIMIZAÇÃO LINEAR 28
6 DESCRIÇÃO DO MODELO 37
10
7 RESULTADOS E DISCUSSÕES 45
8 CONCLUSÃO 52
REFERÊNCIAS 53
1 INTRODUÇÃO
uma segunda etapa, as ofertas no leilão de energia que devem fazer com que sua geração se
aproxime da geração ótima, obtida pelo modelo de AP.
O capítulo 2 apresenta os tipos de mercados de energia de uma forma geral. A abordagem
dessa classificação é feita amplamentede forma ampla, dividindo o mercado entre regulado e não
regulado com níveis diferentes de autonomia. Os tipos de mercado são provenientes da evolução
do setor elétrico sob a perspectiva mundial e a evolução das tecnologias das diversas fontes de
energia existentes. Constituem em uma parte importante deste trabalho para entender a
contextualização do problema de otimização estudado (BARROSO et. al, 2005).publicado na
revista IEEE em 2005, intitulado de “Classification of Electricity Market Models Worldw
Tendo delimitado os tipos de mercado existentes, é apresentada no capítulo 3, a aplicação
dos conceitos de mercado no ao setor elétrico brasileiro. É importante ressaltar que com o
entendimento do capítulo 2 é possível identificar o grau de liberdade e autonomia dos agentes de
mercado no Brasil. Além disso, apresenta-se um breve histórico e resumo do cenário atual do
ponto de vista regulatório, tendo como base as informações da disponíveis em (ABRADEE ,
2017(Associação Brasileira de Distribuidores de Energia Elétrica) e do em (MME, 2017)
(Ministério de Minas e Energia).
A fim de viabilizar o entendimento técnicoa compreensão do modelo matemático
investigado, o capítulo 4 discorre sobre as restrições técnicas de sistemas de geração
hidrelétricos. Esse capítulo fornece uma visão sistêmica e noção de grandezas das variáveis
envolvidas e é está baseado na dissertação de mestrado submetida em 1999, pelo então mestre
Marcelo Augusto Cicogna na Universidade Estadual de Campinas (CICOGNA, 1999).
Uma vez que o problema será tratadoé formulado como como um problema de
programação linear inteira mista linear, o capítulo 5 se dedica a expor os conceitos básicos e as
metodologias de solução de problemas de otimização linear inteira mistalinear, os quais que são
utilizados pelos pelos pacotes computacionais para a obtenção dos resultadosatuais. O capítulo se
inicia apresentando os conceitos básicos de programação linear, e a partir de fatores mais
realistas, os conceitos de programação linear inteira mista são introduzidos, bem como os
métodos de solução branch and bound e branch and cut. O capítulo é fundamentado pelo livro
didático intitulado de “Pesquisa Operacional” Arenales, Armentano, Morabito e Yanasse,
professores renomados de universidades conceituadas do país(ARENALES et al., 2007).
13
(a) Leilão Bilateralbilateral: intersecção das curvas de demanda e oferta agregadas (esquerda); (b)
Leilão Unilateralunilateral: intersecção da curva de geração agregada e a demanda prevista
(esquerda). FONTE: adaptada pela autora de (BARROSO et al., 2005, p. 2).
4.1 RESERVATÓRIO
(a) Esquema de uma usina hidrelétrica (esquerda); (b) Classificação dos volumes de um
reservatório. FONTE: (CICOGNA, 1999, p. 21-22).
z op : cota mínima operativa, na qual ocorre a adução à casa de máquinas. Abaixo desta
cota se encontra o volume morto [m];
z nop e z nop : cota máxima e mínima normal operativa. Entre essas cotas, está
armazenado o volume útil x útil [m];
z maximorum : a cota maximorum é a cota que ultrapassada sinaliza o estado de colapso do
reservatório. O espaço entre z nop e z maximorum é o volume de segurança que é
utilizado no controle de cheias [m].
Para determinação das cotas de um reservatório, é necessário, em fase de projeto, realizar
um estudo probabilístico de Cheias cheias de Projetoprojeto. As usinas são classificadas em dois
tipos: usinas de acumulação, que possuem reservatório, no qual é possível armazenar energia em
forma de água e as usinas de compensação, onde não é possível armazenar água. Através do
controle de vertimento e turbinagem, as usinas de acumulação são responsáveis pelo controle de
vazão dos rios (CICOGNA, 1999).
As usinas dispõem de medições de vazões naturais desde 1931 para algumas bacias
hidrográficas. A maioria das bacias possuem esses dados de vazões históricas apenas
considerando a vazão natural e com periodicidade mensal, algumas específicas possuem vazões
incrementais e naturais diárias. Estes dados são importantes para determinação da programação
de produção (ONS, 2017).
A altura de queda bruta e altura de queda líquida são representadas através da diferença
entre as cotas de montante e jusante, e aplicando-se um fator de perda, respectivamente. Este
fator de perda é atribuído, principalmente, às perdas devido ao atrito entre a água e os dutos de
canalização. A representação da perda de carga é feita através de três maneiras no setor elétrico
brasileiro, a saber: uma porcentagem, uma constante ou uma função da turbinagem da usina
(CICOGNA, 1999).
m
ρ= → dm=ρ . dv
v (3)
dv
q= → dv=q . dt
dt (4)
27
d e p =ρ . q . dt . g . h (5)
d e e=ηmed . ρ .q . dt . g . h (6)
med med MW
Agrupando g , ρ e η , tem-se k =0,00981∙ η [ ], que é a
(m ³/ s)∙ m
produtibilidade específica de uma unidade geradora, cuja função é não linear, uma vez que o
rendimento do processo de conversão de energia potencial em energia elétrica é função da vazão
turbinada e da altura de queda líquida. Porém, para fins de simplificação adota-se um rendimento
med
médio η , uma vez que a região de operação considerando um determinado intervalo de
tempo não varia muito.
28
5 OTIMIZAÇÃO LINEAR
Descrição do problema:
A forma padrão de um problema de otimização linear é dada em (8)::
T
Minimizar f ( x )=c x
Ax=b
x ≥0 (9 )
Em que:
Vetor de variáveis: x T =( x 1 , x 2 , … , x n )
T
Vetor de custos: c =(c 1 , c 2 , … , c n)
[ ]
a11 a 12 … a1 n
a21 a 22 … a2 n
Matriz dos coeficientes: A=
⋮ ⋮ ⋮ ⋮
am 1 am 2 … a mn
T
Vetor dos recursos ou termos independentes: b =(b1 , b2 ,… , b n)
Vetor cujos elementos são todos iguais a zero: 0T =( 0,0, … , 0)
∑ a j x j=b
j=1
Onde:
[]
a1 j
a j= a2 j : j-ésima coluna da matriz A , que são os coeficientes que multiplicam xj .
⋮
amj
Solução do problema:
Sejam as seguintes definições a seguir:
Solução Factível: a solução x é dita factível quando satisfaz o conjunto de restrições e
as condições de não negatividade;
Região Factível: é o conjunto de todas as soluções factíveis;
30
Solução Ótima: é a solução factível que fornece o valor mínimo para problema na forma
padrão da função objetivo f ( x ) .
Todo problema de otimização linear pode ser representado na forma padrão. Um
problema de Max f (x ) pode ser representado por Min−f (x) .
Em situações reais, as restrições nem sempre são limitadas a recursos absolutos, mas sim
por limites mínimos e máximos, por exemplo. Neste caso, as restrições representariam
inequações e não equações como na forma padrão.
Para isso, adota-se uma variável não negativa que represente a quantidade que falta para
que a desigualdade chegue a uma igualdade. Esta variável recebe o nome de variável de folga ou
de excesso.
No caso de uma inequação com o sinal “maior e igual”, a variável de folga é subtraída
dao lado esquerdo da equação. E para inequação com o sinal “menor e igual”, a variável de
excesso é acrescentada ao lado esquerdo.
Por fim, se o problema apresentar variáveis irrestritas de sinal, denominadas de variáveis
livres, para atender à forma padrão da não negatividade das variáveis, pode-se representar a
variável livre a partir de duas variáveis:
−¿ ≥ 0
¿
+¿ ≥ 0, x i
−¿ , x ¿i
+¿−x ¿i
x i=x ¿i (11)
Ax=b↔ B x B + N x N =b (12)
31
Onde:
B m ×m : Representa uma matriz básica que contém m colunas (índices básicos)
provenientes da matriz A . Esta matriz possui inversa;
N m ×(n−m) : Representa a matriz não-básica, cujos elementos são as colunas restantes (
n−m ) da matriz A ;
x B : Vetor de vVariáveis básicas;
−1 −1
x B=B b−B N x N (13)
{
−1
^x = ^x B=B b
^x N =0 (14)
tem-se uma solução básica factível. Se ^x B=B−1 b>0 , ou se todas as variáveis básicas são
positivas, a solução básica factível é dita não degenerada.
Uma vez que a partição básica é feita considerando as n−m variáveis, pode-se dizer
n n!
que as partições possíveis de serem obtidas são limitadas a Cm = .
m! ( n−m ) !
subconjunto K dos vértices da região factível S limitado a partições básicas. Com isso,
n!
pode-se notar que K <C nm= .
m! ( n−m ) !
Sendo assim, é testada a condição de otimalidade, e caso a solução não seja ótima,
verifica-se qual é o próximo ponto a ser testado através da estratégia simplex.
Para o teste da condição de otimalidade, considere a partição básica aplicada à função
objetivo:
f ( x )=cT x=[ c TB c TN ]
[ ]
xB
xN
=c TB x B + cTN x N
(15)
Onde:
T
Coeficientes das variáveis básicas na função objetivo: c B ;
T
Coeficientes das variáveis não-básicas na função objetivo: c N .
B
−1 T
T −1 T −1 T
(¿¿−1b−B N x N )+c x N =c B B b−c B B N x N + c N x N
N
T
f ( x )=c B ¿ (16)
T T T T
f ( x )=f ( ^x ) −λ N x N + c N x N =f ( x^ ) +(c
⏟ N −λ N ) x N
.
(18)
33
c^ N =c N −λT aN .
j j j (19)
xN =
{
x N =ε ≥0, ( variável com custo relativo negativo )
k
x B =^x B − y i ε≥ 0, i=1, … ,m
i i (24)
yi
ε , faz-se:
x^ B ^x B
ε^ =
yl
l
=mínimo
{ yi
i
, tal que y i >0
} (25)
{
−1
^x = ^x B=B b
^x N =0
T
c^ N =c N −λ aN , j=1, 2, … , n−m
j j j
−1
y=B a N k
yl
=mínimo
yi {
, tal que y i >0
i
}
Passo 6: Atualizar nova partição básica trocando a l -ésima coluna de B pela k -ésima
coluna de N
Um problema de Programação Linear Inteira Mista (PLIM) envolve variáveis que podem
assumir valores inteiros e valores reais. A formulação padrão segue abaixo:
x ϵ R¿ (26)
36
n
Onde +¿ representa o espaço de vetores com n componentes reais não-negativas e
R¿
6 DESCRIÇÃO DO MODELO
Nomenclatura
Constantes:
39
max
o bt ,s : Porção do step s da curva cota preço para a hora t [MWh] ;
o q min
t , s : É a soma dos blocos de energia do step 1 até o step s−1 para a hora t
Variáveis:
40
Formulação do problema:
Função objetivo
41
[ ]
T nt
A primeira parcela da função objetivo expressa a receita total através da curva cota preço
e é calculada a cada step passo s . Uma vez que a função λt ( qt ) representa uma função
stepem degrau, é possível fazer-se uso de variáveis real, bt ,s , e binária, ut ,s , da forma como
é ilustrada ilustrado na Figura 7:
Desta forma, o somatório dos blocos de energia dos step passos 1 até o step s−1 para a
hora t é adicionado à variável bt ,s , e assim, consequentemente, se obtém a receita total.
Restrições
(28) determina que a cota do produtor é o somatório da potência gerada por todas as
unidades geradoras de determinada plantausina. Além disso, a cota do produtor é obtida através
da curva de demanda residual conforme (29). demonstra, e a As equações (30) e (31), por sua
vez, são restrições da forma de construção da curva de demanda residual. Os valores deadotados
min max
para qt , s , bt ,s e λt ,s nos testes computacionais são apresentados no Apêndice A e são
provenientes de CABANA (2016).
max
pt , a ≤ Pa z t , a , ∀ a=1, … , A , t=1, … , T (32)
pt , a ≥ Pmin
a z t ,a , ∀ a=1, … , A ,t=1, … , T . (33)
Os limites de potência, caso a unidade geradora esteja ligada, são determinados pelas
restrições das equações 32 e 33. Os dados de Pmax
a e Pmin
a utilizados nos testes
computacionais são provenientes do programa HydroData XP versão 1.2.0, projetado e
desenvolvido por Marcelo Augusto Cicogna, HydroByte Software Ltda. ME. As considerações
aplicadas são apresentadas no capítulo 7.
43
df t ,a=tbt ,a + v t t , a , ∀ a ϵ A , ∀ t ∈T (34)
DF min max
a ≤ df t ,a ≤ DF a , ∀ a ϵ A , ∀ t ∈T (35)
min max
VT a ≤ vt t ,a ≤VT a , ∀ a ϵ A , ∀ t ∈T (36)
A restrição da equação 34 define a defluência total de uma planta como a soma da água
turbinada e da água vertida. A defluência e o vertimento possuem limites inferiores e superiores e
min max min max
são descritos pelas equações 35 e 36. Os dados de DF a , DF a , VT a e VT a
utilizados nos testes computacionais são provenientes do programa HydroData XP e as
considerações aplicadas são apresentadas no capítulo 7.
4. Volume do Reservatório
Os limites nos volumes dos reservatórios são dados conforme (37):
min max
V a ≤ v t ,a ≤V a , ∀ a ϵ A , ∀ t ϵ T . (37)
Ondeem que:
ρ t , a=
{ ∑
ω ∈Ωa
uω [ t−D ωa ] , se t−Dωa ≥ 1
0, caso contrário ,
0
(39)
v 1, a=V +0,0036 [ ψ 1,a −df 1,a ] , ∀ a ϵ A
a (40)
A restrição dada em (38) representa o balanço de água entre dois períodos consecutivos e
o atraso da água é levado em consideração em (39). (40) representa38 o balanço hídrico para o
primeiro período do horizonte de programação. Os dados de ψ t , a , Dωa , uω , 0
Va
adotados nos testes computacionais são provenientes do programa HydroData XP e as
considerações aplicadas são apresentadas no capítulo 7.
pt , a=PT Ga tb t , a H 0a , ∀ a ϵ A , ∀ t ∈T (44)
9. Meta de Produção
A restrição dada por (45) estabelece uma meta de produção para cada unidade geradora:
0
v 24,a ≥ MP ∙V a , ∀ a ϵ A , ∀ t ∈ T (45)
z t , a ∈ { 0,1 } , ∀ a ϵ A , ∀ t ∈T (46)
ut ,s , bt ,s ∈ [ 0, 1 ] , ∀ s ϵ n t , ∀ t ∈ T (47)
ht ,a , tbt ,a , v t ,a , d f t ,a , v t t ,a , p t , a , q t , hu t , a , h d t ,a ≥0 (48)
47
7 RESULTADOS E DISCUSSÕES
Para resolução do modelo, foi utilizado o solver CPLEX no ambiente IBM ILOG CPLEX
Optimization Studio versão 12.6. Todos os testes foram realizados em um computador com o
sistema operacional de 64 bits Windows 8.1, Processador Intel ® Core™ i5-4200U CPU @
1.60GHz 2.30GHz, 4,00 GB de memória instalada (RAM).
Os dados utilizados foram baseados na cascata série localizada na Bacia do Tietê das
usinas Barra Bonita, Bariri, Ibitinga, Promissão e Nova Avanhandava. O diagrama esquemático
das usinas hidrelétricas do SIN pode ser encontrado em ONS, 2016.
A primeira premissa adotada foi a fixação da variável altura de queda líquida na restrição
de função de produção hidráulica dada em (44) como forma de simplificar a não linearidade da
função. Esta suposição levou a utilização do modelo a uma situação mais restritiva de operação,
estabelecendo volumes mínimos e máximos operativos.
Por outro lado, a restrição dada em (43), que define a altura de queda líquida como
diferença entre as cotas de montante e de jusante a um valor constante de perda, é tida como
variável e, logo, fez-se necessária a verificação do desvio entre os valores adotados em (44) e os
valores obtidos em (43).
Com os volumes máximos e mínimos estabelecidos pela fixação da altura de queda
líquida, adotou-se os valores de volume inicial aleatoriamente dentro deste intervalo e para todos
os outros dados referentes às usinas, tomou-se como base os valores provenientes do programa
HydroData XP.
A meta de produção foi estabelecida como porcentagem do volume inicial que resta ao
final do dia e para os valores mais significativos foram coletados os dados resultantes do modelo
para análise e discussão.
A tabela a seguir mostra que a média das alturas de queda líquida variáveis no tempo para
as metas de produção adotadas, apresentam desvios baixos em relação às alturas de queda líquida
adotadas inicialmente na função de produção hidráulica. Portanto, é possível concluir que a
premissa adotada é suficientese mostra boa, na prática. Além disso, através da variável de vazão
turbinada na função de produção hidráulica há a influência da altura de queda líquida variável
através da defluência e volume do reservatório como pode ser observado nas equações que
48
definem o balanço nodal e a equação que estabelece a relação entre as variáveis de defluência,
turbinagem e vertimento (equações 38-40 e 34, respectivamente).
Média das Alturas de Queda Líquida Alturas de Queda Líquida Adotadas na Desvio (%)
Variáveis no Tempo (m) Função de Produção Hidráulica (m)
21,43 23,96 12%
22,74 23,33 3%
22,63 23,44 4%
25,49 26,81 5%
30,62 32,76 7%
FONTE: Elaborada pela autora.
A altura de queda líquida variável ao longo do dia está condizente com as restrições
relativas a ela, uma vez que com uma coordenação de médio prazo maior (meta de produção
igual a 99,8%), a cota de montante se mantém alta, e com a defluência baixa, a cota de jusante se
mantém baixa. Portanto, a diferença entre elas, a altura de queda líquida, se mantém alta.
Por outro lado, para uma coordenação de médio prazo mais flexível (meta de produção
igual a 98%), a produção é maior, fazendo com que a cota de montante diminua com o uso da
água e a cota de jusante aumente com o aumento da defluência. Dessa forma, a altura de queda
líquida diminui o que pode ser visto na Figura 8, que representa a variação da altura de queda
líquida ao longo do dia para a usina 2 nas três diferentes coordenações de médio prazo.
Figura 8 – Variação da Altura de Queda Líquida (m) ao Longo do Dia (h) da Usina 2
49
FONTE: Elaborada pela autora. Azul: MP = 0,98; Vermelho: MP = 0,994; Verde: MP = 0,998
A partir de uma configuração das condições físicas e operativas das usinas, pode-se obter
os resultados de receita diária obtidos pelo modelo proposto em função de diferentes
coordenações de médio prazo (primeira e segunda colunas da Ttabela 2). Destes dados, foram
calculados os respectivos preços da energia média diária.
Uma vez que o modelo é baseado na curva de demanda residual, ou em outras palavras,
na lei de oferta e demanda, o comportamento teórico (esperado) é que, quanto menor for a oferta,
menor será a receita. Esta relação pode ser observada nas Ffiguras 9 e 10.
50
Foram feitas verificações dos dados da curva de demanda residual e observou-se que pela
capacidade de produção das usinas, a quantidade a ser ofertada é limitada a 1200 MWh por hora,
o que leva a um preço de aproximadamente de 24,00 $/MWh conforme pode ser ilustrado
especificamente na hora 8 na Ffigura 11.
Outra verificação importante foi a média dos preços dados pela curva de demanda
residual por hora do dia. O que é esperado é que o preço seja maior nos horários de pico e menor
nos horários de vale, o que pode ser observado na Ffigura 12, onde claramente há um aumento
dos preços entre 7 e 11 da manhã e 8 e 11 da noite.
52
FONTE: Elaborada pela autora. Azul: MP = 0,98; Vermelho: MP = 0,994; Verde: MP = 0,998
Conforme já mencionado, a determinação dos valores fixos das alturas de queda líquida,
resultou em um intervalo específico de volumes máximos e mínimos que diferem dos volumes
físicos do reservatório. Esta faixa de operação pode variar ao longo do dia contanto que ao final
do dia seja respeitado o limite determinado pela meta de produção. A limitação do volume final é
feita em relação ao volume inicial, ou seja, antes da hora 1. A Figura 14 demonstra a variação do
volume ao longo do dia para a usina 3.
FONTE: Elaborada pela autora. Azul: MP = 0,98; Vermelho: MP = 0,994; Verde: MP = 0,998
Tendo em vista todas as condições verificadas conforme descrito acima, pode-se afirmar
que o modelo funciona de forma satisfatória levando em consideração não só a influência da
companhia geradora no mercado de energia, mas como também as restrições hidráulicas. Além
disso, vale ressaltar que o resultado deste trabalho abre oportunidades de desenvolvimento de um
modelo ainda mais abrangente com o aumento das faixas operativas e técnicas mais sofisticadas
de linearização das funções não lineares envolvidas.
55
8 CONCLUSÃO
O trabalho consistiu não apenas no modelo resultante, mas como também todo o contexto
envolvido. A aplicação do objeto de estudo mostrou-se igualmente importante ao estudo da
técnica de solução do problema modelado bem como também do funcionamento de uma usina
hidrelétrica.
O modelo foi satisfatório atendendo às condições de operação específicas aqui
consideradas e abre possibilidades de estudos em diferentes áreas, de modo a levar ao
aperfeiçoamento do modelo tanto no âmbito técnico quanto no econômico.
Do ponto de vista técnico, técnicas de linearização da função de produção hidráulica
podem levar a uma abertura da faixa operativa e a aplicabilidade em outras situações mais
realistas. Além disso, neste trabalho, as metas de produção foram estabelecidas de forma mais
simplificada e podem ser substituídas pela função de custo futuro, que é representada por modelo
específico.
Por outro lado, do ponto de vista econômico, os resultados ótimos do modelo podem levar
a análises de viabilidade econômica da inserção de um ambiente pool de curtíssimo prazo na
conjuntura brasileira através do estudo da correlação entre o planejamento da operação e o
planejamento da expansão.
56
REFERÊNCIAS
A seguir são apresentadas em forma de tabela o conjunto de dados utilizados nos testes
computacionais. As usinas fictícias de 1 a 5 são baseadas nas usinas de Barra Bonita, Bariri,
Ibitinga, Promissão e Nova Avanhandava localizadas no Estado de São Paulo na Bacia do Tietê.
V max 3
V min 3
V 0a (h m 3 ) 3
USINA a (h m ) a (hm ) PTGa (MW /mψ³/a (m
s/m) /s) PC a (m)
m
USINA CMb(h m )
*
3 Cma
( m/h m3 )
*
*
3
CJb ( m /s )
Cja( )
m3
s
*
Montante ω
D a (h)
1 0 0 0 0 0 0 0 0 0 0 0 0
2 100 100 100 100 100 100 100 100 100 100 100 100
3 200 200 200 200 200 200 200 200 200 200 200 200
4 320 320 320 320 320 320 320 320 320 320 320 320
5 340 340 340 340 340 340 340 340 340 340 340 340
6 360 360 360 360 360 360 360 360 360 360 360 360
7 495 495 495 495 495 495 495 495 495 495 495 495
8 520 520 520 520 520 520 520 520 520 520 520 520
9 550 550 550 550 550 550 550 550 550 550 550 550
10 587 587 587 587 587 587 587 587 587 587 587 587
11 622 622 622 622 622 622 622 622 622 622 622 622
12 667 667 667 667 667 667 667 667 667 667 667 667
13 715 715 715 715 715 715 715 715 715 715 715 715
14 815 815 815 815 815 815 815 815 815 815 815 815
15 950 950 950 950 950 950 950 950 950 950 950 950
16 1070 1070 1070 1070 1070 1070 1070 1070 1070 1070 1070 1070
17 1170 1170 1170 1170 1170 1170 1170 1170 1170 1170 1170 1170
18 1270 1270 1270 1270 1270 1270 1270 1270 1270 1270 1270 1270
19 1370 1370 1370 1270 1370 1370 1370 1370 1370 1370 1370 1370
20 1490 1490 1490 1270 1270 1490 1490 1490 1490 1490 1490 1490
21 1610 1610 1490 1270 1270 1490 1610 1610 1610 1610 1610 1610
22 1730 1730 1490 1270 1270 1490 1730 1730 1730 1730 1730 1730
23 1850 1730 1490 1270 1270 1490 1850 1850 1850 1850 1850 1850
24 1970 1730 1490 1270 1270 1490 1850 1970 1970 1970 1970 1970
25 1970 1730 1490 1270 1270 1490 1850 2095 2095 2095 2095 2095
26 1970 1730 1490 1270 1270 1490 1850 2095 2095 2095 2095 2095
27 1970 1730 1490 1270 1270 1490 1850 2095 2095 2095 2095 2095
28 1970 1730 1490 1270 1270 1490 1850 2095 2095 2095 2095 2095
FONTE: Elaborado pela autora e adaptado de Hydrodata.
step T13 T14 T15 T16 T17 T18 T19 T20 T21 T22 T23 T24
1 0 0 0 0 0 0 0 0 0 0 0 0
2 100 100 100 100 100 100 100 100 100 100 100 100
3 200 200 200 200 200 200 200 200 200 200 200 200
4 320 320 320 320 320 320 320 320 320 320 320 320
5 340 340 340 340 340 340 340 340 340 340 340 340
6 360 360 360 360 360 360 360 360 360 360 360 360
7 495 495 495 495 495 495 495 495 495 495 495 495
8 520 520 520 520 520 520 520 520 520 520 520 520
9 550 550 550 550 550 550 550 550 550 550 550 550
10 587 587 587 587 587 587 587 587 587 587 587 587
11 622 622 622 622 622 622 622 622 622 622 622 622
12 667 667 667 667 667 667 667 667 667 667 667 667
13 715 715 715 715 715 715 715 715 715 715 715 715
14 815 815 815 815 815 815 815 815 815 815 815 815
15 950 950 950 950 950 950 950 950 950 950 950 950
16 1070 1070 1070 1070 1070 1070 1070 1070 1070 1070 1070 1070
17 1170 1170 1170 1170 1170 1170 1170 1170 1170 1170 1170 1170
18 1270 1270 1270 1270 1270 1270 1270 1270 1270 1270 1270 1270
19 1370 1370 1370 1370 1370 1370 1370 1370 1370 1370 1370 1370
20 1490 1490 1490 1490 1490 1490 1490 1490 1490 1490 1490 1490
21 1610 1610 1610 1610 1610 1610 1610 1610 1610 1610 1610 1610
22 1730 1730 1730 1730 1730 1730 1730 1730 1730 1730 1730 1730
23 1850 1850 1850 1850 1850 1850 1850 1850 1850 1850 1850 1850
24 1970 1970 1970 1970 1970 1970 1970 1970 1970 1970 1970 1970
25 2095 2095 2095 2095 2095 2095 2095 2095 2095 2095 1970 1970
26 2095 2095 2095 2095 2095 2095 2095 2095 2095 2095 1970 1970
27 2095 2095 2095 2095 2095 2095 2095 2095 2095 2095 1970 1970
28 2095 2095 2095 2095 2095 2095 2095 2095 2095 2095 1970 1970
FONTE: Elaborado pela autora e adaptado de CABANA (2016).
1 100 100 100 100 100 100 100 100 100 100 100 100
2 100 100 100 100 100 100 100 100 100 100 100 100
3 120 120 120 120 120 120 120 120 120 120 120 120
4 20 20 20 20 20 20 20 20 20 20 20 20
5 20 20 20 20 20 20 20 20 20 20 20 20
61
6 135 135 135 135 135 135 135 135 135 135 135 135
7 25 25 25 25 25 25 25 25 25 25 25 25
8 30 30 30 30 30 30 30 30 30 30 30 30
9 37 37 37 37 37 37 37 37 37 37 37 37
10 35 35 35 35 35 35 35 35 35 35 35 35
11 45 45 45 45 45 45 45 45 45 45 45 45
12 48 48 48 48 48 48 48 48 48 48 48 48
13 100 100 100 100 100 100 100 100 100 100 100 100
14 135 135 135 135 135 135 135 135 135 135 135 135
15 120 120 120 120 120 120 120 120 120 120 120 120
16 100 100 100 100 100 100 100 100 100 100 100 100
17 100 100 100 100 100 100 100 100 100 100 100 100
18 100 100 100 0 0 100 100 100 100 100 100 100
19 120 120 120 0 0 120 120 120 120 120 120 120
20 120 120 0 0 0 0 120 120 120 120 120 120
21 120 120 0 0 0 0 120 120 120 120 120 120
22 120 0 0 0 0 0 120 120 120 120 120 120
23 120 0 0 0 0 0 0 120 120 120 120 120
24 0 0 0 0 0 0 0 125 125 125 125 125
25 0 0 0 0 0 0 0 0 0 0 0 0
26 0 0 0 0 0 0 0 0 0 0 0 0
27 0 0 0 0 0 0 0 0 0 0 0 0
28 0 0 0 0 0 0 0 0 0 0 0 0
FONTE: Elaborado pela autora e adaptado de CABANA (2016).
step T13 T14 T15 T16 T17 T18 T19 T20 T21 T22 T23 T24
1 100 100 100 100 100 100 100 100 100 100 100 100
2 100 100 100 100 100 100 100 100 100 100 100 100
3 120 120 120 120 120 120 120 120 120 120 120 120
4 20 20 20 20 20 20 20 20 20 20 20 20
5 20 20 20 20 20 20 20 20 20 20 20 20
6 135 135 135 135 135 135 135 135 135 135 135 135
7 25 25 25 25 25 25 25 25 25 25 25 25
8 30 30 30 30 30 30 30 30 30 30 30 30
9 37 37 37 37 37 37 37 37 37 37 37 37
10 35 35 35 35 35 35 35 35 35 35 35 35
11 45 45 45 45 45 45 45 45 45 45 45 45
12 48 48 48 48 48 48 48 48 48 48 48 48
62
13 100 100 100 100 100 100 100 100 100 100 100 100
14 135 135 135 135 135 135 135 135 135 135 135 135
15 120 120 120 120 120 120 120 120 120 120 120 120
16 100 100 100 100 100 100 100 100 100 100 100 100
17 100 100 100 100 100 100 100 100 100 100 100 100
18 100 100 100 100 100 100 100 100 100 100 100 100
19 120 120 120 120 120 120 120 120 120 120 120 120
20 120 120 120 120 120 120 120 120 120 120 120 120
21 120 120 120 120 120 120 120 120 120 120 120 120
22 120 120 120 120 120 120 120 120 120 120 120 120
23 120 120 120 120 120 120 120 120 120 120 120 120
24 125 125 125 125 125 125 125 125 125 125 0 0
25 0 0 0 0 0 0 0 0 0 0 0 0
26 0 0 0 0 0 0 0 0 0 0 0 0
27 0 0 0 0 0 0 0 0 0 0 0 0
28 0 0 0 0 0 0 0 0 0 0 0 0
FONTE: Elaborado pela autora e adaptado de CABANA (2016).
20 21,92 21,69 21,33 21,18 21,18 21,33 21,8 22 22 22,5 22,83 22,83
21 21,8 21,5 21,33 21,18 21,18 21,33 21,69 21,92 22 22 22 22,54
22 21,69 21,5 21,33 21,18 21,18 21,33 21,57 21,8 21,92 21,92 21,92 21,92
23 21,63 21,5 21,33 21,18 21,18 21,33 21,57 21,8 21,8 21,9 21,9 21,92
24 21,63 21,5 21,33 21,18 21,18 21,33 21,57 21,77 21,8 21,8 21,8 21,8
25 21,63 21,5 21,33 21,18 21,18 21,33 21,57 21,77 21,8 21,8 21,8 21,8
26 21,63 21,5 21,33 21,18 21,18 21,33 21,57 21,77 21,8 21,8 21,8 21,8
27 21,63 21,5 21,33 21,18 21,18 21,33 21,57 21,77 21,8 21,8 21,8 21,8
28 21,63 21,5 21,33 21,18 21,18 21,33 21,57 21,77 21,8 21,8 21,8 21,8
FONTE: Elaborado pela autora e adaptado de CABANA (2016).
step T13 T14 T15 T16 T17 T18 T19 T20 T21 T22 T23 T24
1 25 25 25 25 25 26 26,2 27 27 27 26 25
2 25 25 25 25 25 26 26,2 27 27 27 26 25
3 25 25 25 25 25 26 26,2 27 27 27 26 25
4 25 25 25 25 25 26 26,2 27 27 27 26 25
5 25 25 25 25 25 26 26,2 27 27 27 26 25
6 25 25 25 25 25 26 26,2 27 27 27 26 25
7 25 25 25 25 25 26 26,2 27 27 27 26 25
8 25 25 25 25 25 26 26,2 27 27 27 26 25
9 25 25 25 25 25 26 26,2 27 27 27 26 25
10 25 25 25 25 25 26 26,2 27 27 27 26 25
11 25 25 25 25 25 26 26,2 27 27 27 26 25
12 25 25 24,32 25 25 26 26,2 27 27 26,37 26 25
13 24,29 24,29 24,29 25 24,29 24,29 24,29 27 27 25,8 24,29 25
14 24,14 24,14 24,14 24,29 24,14 24,14 24,24 25,8 26,37 25,8 24,14 24,29
15 24,12 24,12 24,12 24,24 24,12 24,12 24,12 25,8 25,8 24,29 24,12 24,14
16 23,94 23,94 23,8 24,14 23,94 23,98 23,98 25,8 24,5 24,24 23,98 24,12
17 22,7 22,7 23 24,12 22,7 23,4 23,9 24,29 24,29 24,14 23,4 23,98
18 22,7 22,7 23 23,8 22,7 23,4 23,9 24,14 24,14 24,12 23,4 23,11
19 22,7 22,7 22 22 22,7 23,4 23,9 24,12 24,12 23,5 22,5 22
20 22 22 22 22 22 22,5 22,83 23,98 23,98 23,5 22 22
21 22 22 21,92 21,92 22 22 22,54 23,5 22,54 22 21,92 21,92
22 21,92 21,92 21,9 21,9 21,92 21,92 21,92 22 22,2 21,92 21,8 21,8
23 21,8 21,8 21,8 21,8 21,8 21,9 21,92 21,92 22 21,9 21,69 21,69
24 21,77 21,77 21,77 21,77 21,77 21,8 21,8 21,9 21,92 21,8 21,69 21,69
25 21,77 21,77 21,77 21,77 21,77 21,8 21,8 21,9 21,92 21,8 21,69 21,69
26 21,77 21,77 21,77 21,77 21,77 21,8 21,8 21,9 21,92 21,8 21,69 21,69
64
27 21,77 21,77 21,77 21,77 21,77 21,8 21,8 21,9 21,92 21,8 21,69 21,69
28 21,77 21,77 21,77 21,77 21,77 21,8 21,8 21,9 21,92 21,8 21,69 21,69
FONTE: Elaborado pela autora e adaptado de CABANA (2016).
65
Para reprodução do modelo basta copiar o código abaixo e colar em um arquivo .mod no
software BM ILOG CPLEX Optimization Studio. Os dados da curva de demanda residual
apresentados no Apêndice A devem ser inseridos em um arquivo .dat e os demais dados são
declarados no próprio código conforme descrito abaixo.
/*********************************************
* OPL 12.6.0.0 Model
* Author: Claudia Inafuko
* Creation Date: 10/12/2016 at 10:46:54
*********************************************/
// CONJUNTOS
// DADOS DE ENTRADA
tuple montante {
int USINA;
{int} USINAMONTANTE;
{int} DELAY;
}
montante CASCATA[UH] = [<1,{},{48}>, <2,{1},{3}>, <3,{2},{8}>, <4,{3},{14}>,
<5,{4},{6}>]; // Definição da configuração da cascata
tuple dados {
int USINA; // [ ] ID da usina hidrelétrica
float ALTQ0; // [m] Altura de Queda Líquida Inicial tida como constante
para função de produção e determinação de PMAX e VOLINI
float PMAX; // [MW] Potência Máxima da usina UH determinada pela curva
Potência Máxima x Altura de Queda Líquida
float PMIN; // [MW] Potência Mìnima da usina UH determinada pela colina
Rendimento x Potência x Altura de Queda Líquida
float DEFMAX; // [m³/s] Defluência Máxima da usina UH (adotar
engolimento efetivo*2,5)
float DEFMIN; // [m³/s] Defluência Mínima da usina UH
float VERTMIN; // [m³/s] Vertimento Mínimo da usina UH (Vertimento
Máximo não é limitado pois a Defluência Máxima já limita por baixo) restrições
> formulário
float VOLMAX; // [hm³] Volume Máximo de reservatório da usina UH
determinado como o Volume Máximo Operativo
66
dados DADOSUH[UH] =
[<1, 23.96, 140.0, 2.0, 2000.0, 76.0, 76.0, 3135.5, 1778.7, 2400.0, 0.008633,
84.0, 439.23, 0.00395, 426.13, 0.0025, 0.25>,
<2, 23.33, 144.0, 1.0, 771.0, 103.0, 0.0, 544.2, 512.7, 530.0, 0.008437, 25.0,
418.05, 0.01729, 403.41, 0.0018, 0.21>,
<3, 23.44, 131.2, 1.0, 702.0, 128.0, 0.0, 983.2, 953.6, 970.4, 0.008829, 53.0,
395.62, 0.00851, 380.59, 0.0010, 0.16>,
<4, 26.81, 264.0, 10.0, 1293.0, 160.0, 0.0, 7407.0, 6290.2, 6800.7, 0.008829,
7.0, 369.24, 0.00199, 356.00, 0.0013, 0.21>,
<5, 32.76, 347.5, 5.0, 1431.0, 153.0, 0.0, 2738.5, 2529.5, 2618.6, 0.008829,
0.0, 344.01, 0.00510, 325.75, 0.0007, 0.31>]; // dados das usinas
float QMIN[S][T] = ...; // [MWh] Soma dos blocos de energia de S até S-1 na
hora T
float BMAX[S][T] = ...; // [MWh] Porção máxima do step S
float LAMB[S][T] = ...; // [$/MWh] preço da cota[T] no step S
// VARIÁVEIS
dvar float+ b[S][T]; // [MWh] Bloco de energia do step S para obter cota[T]
dvar boolean u[S][T]; // Variável binária 1 se step S é o último pra atingir a
cota[T]
dvar float+ cota[T]; // [MWh] Cota na hora T
dvar float+ pot[UH][T]; // [MW] Potência gerada na usina UH na hora T
dvar float+ def[UH][T]; // [m³/s] Defluência da usina UH na hora T
dvar float+ turb[UH][T]; // [m³/s] Turbinagem da usina UH na hora T
dvar float+ vert[UH][T]; // [m³/s] Vertimento da usina UH na hora T
dvar float+ vol[UH][T]; // [hm³] Volume da usina UH na hora T
dvar boolean zstatuson[UH][T]; // Variável binária 1 se unidade a estiver
ligada na hora T
dvar float+ altliq[UH][T]; // [m] Altura de queda líquida da usina UH na hora
UH
dvar float+ hu[UH][T]; // [m] Cota de montante da usina UH na hora T
dvar float+ hd[UH][T]; // [m] Cota de jusante da usina UH na hora T
67
// FUNÇÃO OBJETIVO
maximize
sum(s in S, t in T)(LAMB[s][t] * (b[s][t] + u[s][t] * QMIN[s][t]));
subject to {
forall(s in S, t in T)
cstr_04:
b[s][t] <= u[s][t] * BMAX[s][t];
// Potência Máxima
forall(uh in UH, t in T)
cstr_06:
pot[uh][t] <= DADOSUH[uh].PMAX * zstatuson[uh][t];
// Potência Mínima
forall(uh in UH, t in T)
cstr_07:
pot[uh][t] >= DADOSUH[uh].PMIN * zstatuson[uh][t];
// Limites de defluência
68
forall(uh in UH, t in T)
cstr_09:
def[uh][t] >= DADOSUH[uh].DEFMIN;
forall(uh in UH, t in T)
cstr_10:
def[uh][t] <= DADOSUH[uh].DEFMAX;
// Limites de vertimento
forall(uh in UH, t in T)
csrt_11:
vert[uh][t] >= DADOSUH[uh].VERTMIN;
forall(uh in UH, t in T)
cstr_13:
vol[uh][t] <= DADOSUH[uh].VOLMAX;
forall(uh in UH, t in T: t == 1)
cstr_15:
vol[uh][t] == DADOSUH[uh].VOL0 + K1 * (DADOSUH[uh].FLUXOENT - def[uh][t]);
cstr_18:
altliq[uh][t] == hu[uh][t] - hd[uh][t] - DADOSUH[uh].HP;
forall(uh in UH, t in T)
cstr_19:
pot[uh][t] == DADOSUH[uh].EFFTG * turb[uh][t] * DADOSUH[uh].ALTQ0;