Upload
arthur-henrique
View
70
Download
12
Embed Size (px)
Citation preview
Grupo de Engenharia de Sistemas - GESIs Instituto de Sistemas Elétricos e Energia – ISEE
Universidade Federal de Itajubá
ESTUDO DE CASO
DESPACHO ECONÔMICO E UNIT COMMITMENT
Operação e Supervisão de Sistemas Elétricos – EP 405
Orientador:
Prof. Dr. José Wanderley Marangon Lima
Mestrando em Eng. Elétrica Arthur Henrique Perini de Medeiros Mat. 23546
Itajubá, 29 de novembro de 2011
Conteúdo
1 OBJETIVO ......................................................................................................................................... 3
2 INTRODUÇÃO .................................................................................................................................. 3
3 DESENVOLVIMENTO ........................................................................................................................ 4
3.1 Estados de Operação das UG’s ................................................................................................. 5
3.2 Programa Matlab ..................................................................................................................... 6
3.3 ToolBox Otimização ................................................................................................................. 7
4 RESULTADOS: .................................................................................................................................. 7
5 CONCLUSÕES ................................................................................................................................... 8
6 REFERÊNCIAS ................................................................................................................................... 9
7 ANEXOS ........................................................................................................................................... 9
7.1 Anexo 1 - Rotina ....................................................................................................................... 9
7.2 Anexo 2 – Resultado da Execução da Rotina ........................................................................... 12
Índice de Ilustrações
Figura 1 - Curva diária de carga ................................................................................................................ 5
Figura 2 - Patamares de carga .................................................................................................................. 6
Figura 3 - Grafico resultante da execução do programa ......................................................................... 12
3
1 OBJETIVO
Deseja-se suprir a demanda representada pela curva diária de carga através de uma usina
que dispões de três unidades geradoras conforme os custos de energia e limites operacionais
estão descritos a seguir. Diante disto é necessário realizar a otimização dos custos operacionais
para as diversas possibilidades operativas e indicar qual a estratégia a ser utilizada para suprir a
demanda ao longo do dia
2 INTRODUÇÃO
O Despacho econômico também conhecido como atendimento econômico da demanda
visa determinar a potência de saída de cada unidade geradora de forma a minimizar o custo total
de atendimento de um sistema. Com a variação da carga ao longo do tempo, surge um novo
problema, pois, permite-se o desligamento de determinadas unidades geradoras durante um
período pré-estabelecido. (Sasaki et. al., 2004, citado por Silva Junior et. al., 2006).
Desta forma, as seleções das unidades geradoras representam um problema diferente do
despacho econômico, que é resolvido também através de técnicas de otimização e designado
“Unit Commitment”. (Narayana, 2004, citado por Silva Junior et. al., 2006).
A solução do problema de otimização faz-se necessária com o uso de ferramentas
computacionais devido à complexidade das funções quadráticas envolvidas. A tendência no uso
destas ferramentas é comprovada na medida em que se tem um maior número de variáveis na
otimização, ou seja, um elevado número de unidades geradoras que fazem parte de um sistema
elétrico de potência típico.
Existem diversos softwares que executam cálculos matemáticos que são utilizados para a
solução ótima da minimização das funções custo para este tipo de problema. Um deles
comumente utilizado é o MATLAB, no qual apresenta uma gama de ferramentas para
otimização, também chamadas ToolBox. A ToolBox para otimização consiste em funções
matemáticas pré programadas que recebem os parâmetros do problema como entrada e resulta na
saída otimizada. Neste trabalho o software MATLAB será utilizado.
Sabe-se que é possível a programação desta ferramenta em linguagens como C, C++,
Pascal, Java, Delphi e outras. Com isto pode-se personalizar a solução do problema com as
características desejáveis.
4
3 DESENVOLVIMENTO Abaixo se tem as informações do sistema térmico de geração:
UG1
Limite operacional Mínimo = 150 MW Limite operacional Máximo = 600 MW Heat-rate H = 510,0+7,2P1+0,00142P1² MBtu/h Custo do Combustível: F1 = 1,1R/MBtu UG2
Limite operacional Mínimo = 100 MW Limite operacional Máximo = 400 MW Heat-rate H = 310,0+7,85P2+0,00194P2² MBtu/h Custo do Combustível: F1 = 1,0R/MBtu UG3
Limite operacional Mínimo = 50 MW Limite operacional Máximo = 200 MW Heat-rate H = 78,0+7,97P3+0,00482P3² MBtu/h Custo do Combustível: F1 = 1,2R/MBtu
A carga é representada pela curva diária, onde será divida em patamares de 600, 1000 e 1200
MW, Para cada patamar é necessário otimizar quantas e quais unidades geradoras entrarão em
operação visando o menor custo possível.
5
Figura 1 - Curva diária de carga
3.1 Estados de Operação das UG’s
A tabela 1 abaixo, representa as opções referente aos 8 estados possíveis das unidades
geradoras. Estas opções serão resultados de saída do programa. Indicando ao operador qual
opção utilizar para cada patamar de carga. Com isto, basta o operador monitorar a demanda.
Trabalho fácil pois está já é pré-estabelecida na curva típica diária da região. É necessário utilizar
outra curva de carga nos casos em que ter-se-ão dias atípicos de demanda, como feriados
prolongados, eventos esportivos de grande importância entre outros.
Tabela 1 Estados operativos das unidades geradoras e capacidade total de geração
OPÇÃO UG1 UG2 UG3 MAX MIN
1 0 0 0 0 0
2 0 0 1 200 50
3 0 1 0 400 100
4 0 1 1 600 150
5 1 0 0 600 150
6 1 0 1 800 200
7 1 1 0 100 250
8 1 1 1 1200 300
6
O resultado do programa proposta irá relatar quais as unidades serão responsáveis por
cada patamar de carga. A figura 2 abaixo ilustra o relatado onde as UG’s 1,2 e 3 são utilizadas. A
comprovação de que estas é a opção é a economicamente mais viável só será alcançada após a
otimização.
Figura 2 - Patamares de carga
3.2 Programa Matlab
Elaborou-se uma rotina com o auxílio do software MATLAB , utilizando das expressões da toolboox de otimização. O Programa tem as seguintes etapas:
1. Plotagem do gráfico de patamares de carga. 2. Laço para modificação de 3 patamares de carga: 600, 1000, 1200 MW. 3. Laço para modificação de 8 estados das 3 unidades geradoras: ON, OFF; 4. Detecção dos estados possíveis para o atual patamar de carga. 5. Otimização 6. Detecção do menor valor no vetor de custo total para cada patamar de carga. 7. Indicação da opção de geração que contém o menor valor do custo total.
7
3.3 ToolBox Otimização
Para a solução do problema o software necessita de dados de entrada em formato matricial e assim a seguinte função é chamada no programa: [Pn] = quadprog(H,F,[],[],A,loadc,mini,maxi) Onde: Pn – vetor das potências de cada UG; H – matriz simétrica – coeficientes quadraticos F – vetor – coeficientes lineares; A – matriz de restrições sob forma de equações (P1 + P2 + P3) Loadc - vetor resultado das restrições sob forma de equações (= MW) Mini – vetor das restrições de potência superior; Maxi – vetor das restrições de potência inferior; [] – nesta posição é referida as restrições sob forma de inequações. Não foram consideradas neste momento. Sob forma matricial segue a equação 1 na qual as equações de custo das UG’s devem ser
convertidas antes de serem utilizadas no matlab:
min��
�× P × H × P + F (Eq. 1)
4 RESULTADOS:
A tabela 2 abaixo, são os resultados da saída do programa concentrados sob forma de tabela para o melhor entendimento.
Tabela 2 - Resultados para cargas de 600 1000 e 1200 MW
PATAMAR DE CARGA 600 MW
OPÇÃO UG1 UG2 UG3 MAX MIN P1 P2 P3 F1 F2 F3 CUSTO TOTAL
1 0 0 0 0 0 INFEASIBLE
2 0 0 1 200 50 INFEASIBLE
3 0 1 0 400 100 INFEASIBLE
4 0 1 1 600 150 0 400 200 0 3760,4 2237,8 5998,2
5 1 0 0 600 150 600 0 0 5875,3 0 0 5875,3
6 1 0 1 800 200 550 0 50 5389,5 0 586,26 5975,8
7 1 1 0 100 250 322,39 277,61 0 3276,7 2638,8 0 5915,4
8 1 1 1 1200 300 294,69 255,31 50 3030,6 2440,6 586,26 6057,5
8
PATAMAR DE CARGA 1000 MW
OPÇÃO UG1 UG2 UG3 MAX MIN P1 P2 P3 F1 F2 F3 CUSTO TOTAL
1 0 0 0 0 0 INFEASIBLE
2 0 0 1 200 50 INFEASIBLE
3 0 1 0 400 100 INFEASIBLE
4 0 1 1 600 150 INFEASIBLE
5 1 0 0 600 150 INFEASIBLE
6 1 0 1 800 200 INFEASIBLE
7 1 1 0 1000 250 600 400 0 5875,3 3760,4 0 9635,7
8 1 1 1 1200 300 550 400 50 5389,5 3760,4 586,26 9736,2
PATAMAR DE CARGA 1200 MW
OPÇÃO UG1 UG2 UG3 MAX MIN P1 P2 P3 F1 F2 F3 CUSTO TOTAL
1 0 0 0 0 0 INFEASIBLE
2 0 0 1 200 50 INFEASIBLE
3 0 1 0 400 100 INFEASIBLE
4 0 1 1 600 150 INFEASIBLE
5 1 0 0 600 150 INFEASIBLE
6 1 0 1 800 200 INFEASIBLE
7 1 1 0 1000 250 INFEASIBLE
8 1 1 1 1200 300 600 400 200 5875,3 3760,4 2237,8 11873
5 CONCLUSÕES
O problema apresentado representa uma usina termoelétrica como única fonte supridora
de energia para a carga. Contudo este trabalho pode ser aplicado a diversos tipos de geração
como hidráulica, nuclear, e eólica, não se limitando a somente um tipo, bem como a uma matriz
energética mista.
O método adotado realiza modificações nas matrizes bases nas quais a toolbox quadprog
do matlab efetua as otimizações. Diante disto houve alguns erros de convergência quando se tem
o caso de elementos nulos na matriz H, que ocorreram esporadicamente não sendo para todos os
9
casos. Isto foi corrigido substituindo na matriz de estados alguns elementos nulos por números
da ordem de grandeza de 1e-4. É proposta para futuros trabalhos analisar outras alternativas que
possam sanar estes erros, apesar de que a alteração realizada contribui para a solução destes.
Uma interface amigável também pode ser considerada uma melhoria para futuros estudos
fazendo-se por completo o automatismo da interpretação dos resultados.
6 REFERÊNCIAS
SILVA JUNIOR, Ivo Chaves da et al. DETERMINAÇÃO DA OPERAÇÃO DE UNIDADES TÉRMICAS PARA O ESTUDO DE UNIT COMMITMENT ATRAVÉS DE UMA ANÁLISE DE SENSIBILIDADE. Revista Controle & Automação, Rio de Janeiro, v. 17, n. 3, p.300-311, 14 ago. 2006. Mensal. Disponível em: <http://www.scielo.br/pdf/ca/v17n3/a05v17n3.pdf>. Acesso em: 28 nov. 2009.
A.J.Wood, B.F. Wollenberg, “Power Generation, Operation, and Control”, Wiley,1996
7 ANEXOS
7.1 Anexo 1 - Rotina %% ROTINA REALIZA 8 ITERAÇÕES PARA CADA UM DOS 3 PATAMARES DE CARGA. % BASEADO NA TABELA LOGICAS DE ESTADOS. ON = 1, OFF = 0. clc; clear; format short g warning off; %% inicializações mat = [0 0 0; 0 0 1; 0 1 0; 0.000001 1 1; 1 0 0; 1 0 1; 1 1 0.000001; 1 1 1]; % tabela de estados das unidades. As aproximações são para corrigir erros de convergência 0 = 0.00001 maxgen = []; mingen = []; inicust = [561 310 93.6]; aux=[]; i = [0]; A = [0]; %% patamares de carga - é realizada as otmizações para 3 patamares carga = [600 1000 1200 1200 1000];
10
%% plotagem do grafico obs: gastou grande tempo para compilação. h1= 0:0.01:8; h2= 8:0.01:12; h3= 12:0.01:16; h4 = 16:0.01:22; h5= 22:0.01:24; plot(h1,carga(1),'k.',h2,carga(2),'k.',h3,carga(3),'k.',h4,carga(4),'k.',h5,carga(5),'k.',8,600:0.1:1000,'k.',12,1000:0.1:1200,'k.',22,1000:0.1:1200,'k.',24,600:0.1:1000,'k.') grid on; xlabel('Time of Day'); ylabel('LOAD MW'); %% início do programa for j=1:3 %% iteração dos diferentes patamares de carga %% inicialização de variaveis loadc = carga(j) Ctotal = [0]; minicust = 1000000; %% iteração dos oitos tipos de possibilidades dos estados das UGS. Os %% estados estão na tabela. for (i=1:8) inicust = [561 310 93.6]; A = [1 1 1]; maxi = [600; 400; 200]; mini = [150; 100; 50]; maxgen(i,1) = mat(i,:)*maxi; mingen(i,1) = mat(i,:)*mini; if (maxgen(i) >= loadc), %% condição para executar a otmização se a geração máxima for maior ou igual a carga H = 2.*[0.001562 0 0; 0 0.00194 0; 0 0 0.005784]; aux = diag(H).*mat(i,:)'; %% utilização da matriz de estados das Ugs para altarear as variáveis da otimação. H(1,1) = aux(1,1); H(2,2) = aux(2,1); H(3,3) = aux(3,1); F = [7.92; 7.85; 9.564]; F = F.*mat(i,:)';
11
maxi = (maxi'.*mat(i,:))'; %% altera os limites de acordo com a matriz de estados mini = (mini'.*mat(i,:))'; A = A.*mat(i,:); [Pn] = quadprog(H,F,[],[],A,loadc,mini,maxi) %%otimização inicust = inicust.*mat(i,:); Fn = (diag(H)./2).*(Pn.^2) + Pn.*F + inicust'; %% Calculo da função custo para cada nivel de carga Ctotal(i,1) = sum(Fn); %% Custo total para cada nível de carga if (Ctotal(i) > 0) && (Ctotal(i) < minicust), %% lógica para encontrar o menor custo entre os diferentes estados minicust = Ctotal(i); opcao =i end else RES = 'INFEASIBLE'; display(RES) end end minicust %menor custo opcao %opção de start up que contem o menor custo. end
12
7.2 Anexo 2 – Resultado da Execução da Rotina
A curva foi deslocada para facilitar a programação de 0 a 24 horas no programa. Entretanto representa a mesma do problema proposto.
Figura 3 - Grafico resultante da execução do programa
loadc =
600
RES =
INFEASIBLE
RES =
INFEASIBLE
RES =
INFEASIBLE
Optimization terminated.
13
Pn =
0.0006
400
200
Fn =
0.000561
3760.4
2237.8
Ctotal =
0
0
0
5998.2
opcao =
4
Optimization terminated.
Pn =
600
0
0
Fn =
5875.3
0
0
Ctotal =
0
0
0
5998.2
5875.3
opcao =
5
Optimization terminated.
Pn =
550
0
50
Fn =
5389.5
0
586.26
Ctotal =
0
0
14
0
5998.2
5875.3
5975.8
Optimization terminated.
Pn =
322.39
277.61
5e-005
Fn =
3276.7
2638.8
9.36e-005
Ctotal =
0
0
0
5998.2
5875.3
5975.8
5915.4
Optimization terminated.
Pn =
294.69
255.31
50
Fn =
3030.6
2440.6
586.26
Ctotal =
0
0
0
5998.2
5875.3
5975.8
5915.4
6057.5
minicust =
5875.3
opcao =
5
loadc =
1000
RES =
15
INFEASIBLE
RES =
INFEASIBLE
RES =
INFEASIBLE
RES =
INFEASIBLE
RES =
INFEASIBLE
RES =
INFEASIBLE
Optimization terminated.
Pn =
600
400
0.0002
Fn =
5875.3
3760.4
9.3602e-005
Ctotal =
0
0
0
0
0
0
9635.7
opcao =
7
Optimization terminated.
Pn =
550
400
50
Fn =
5389.5
3760.4
586.26
16
Ctotal =
0
0
0
0
0
0
9635.7
9736.2
minicust =
9635.7
opcao =
7
loadc =
1200
RES =
INFEASIBLE
RES =
INFEASIBLE
RES =
INFEASIBLE
RES =
INFEASIBLE
RES =
INFEASIBLE
RES =
INFEASIBLE
RES =
INFEASIBLE
Exiting: the constraints are
overly stringent;
initial feasible point found
violates constraints
by more than eps.
Pn =
600
400
200
Fn =
17
5875.3
3760.4
2237.8
Ctotal =
0
0
0
0
0
0
0
11873
opcao =
8
minicust =
11873
opcao =
8
>>