17
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

Despacho

Embed Size (px)

Citation preview

Page 1: Despacho

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

Page 2: Despacho

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

Page 3: Despacho

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.

Page 4: Despacho

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.

Page 5: Despacho

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

Page 6: Despacho

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.

Page 7: Despacho

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

Page 8: Despacho

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

Page 9: Despacho

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];

Page 10: Despacho

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,:)';

Page 11: Despacho

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

Page 12: Despacho

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.

Page 13: Despacho

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

Page 14: Despacho

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 =

Page 15: Despacho

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

Page 16: Despacho

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 =

Page 17: Despacho

17

5875.3

3760.4

2237.8

Ctotal =

0

0

0

0

0

0

0

11873

opcao =

8

minicust =

11873

opcao =

8

>>