2. Pág.
SUMÁRIO
2
• Apresentação pessoal e Experiência
• O ambiente regulatório do Setor Elétrico
• Sistema Interligado Nacional
• O Planejamento do Setor Elétrico
• O uso do Matlab para o Planejamento
• Boas práticas para desenvolvimento em Matlab
3. Pág.
Apresentação Pessoal e
Experiência
3
• Graduação em Engenharia Elétrica (UFJF – 2007)
• Mestrado em Engenharia Elétrica com ênfase em métodos de apoio a decisão
(PUC-Rio – 2015)
• Usuário de Matlab desde 2003 (versão 5.3)
• Inicialmente como estudante (desde Cálculo até Projeto de Sistemas de
Controle e a própria Dissertação de Mestrado)
• Como profissional, no projeto e definição de parâmetros energéticos de
usinas hidrelétricas, validação dos modelos oficiais do setor elétrico,
simulações da operação do SIN e desenvolvimento de modelos para o
planejamento.
• Na EPE desde 2008, exercendo as funções de Analista de Pesquisa Energética e
atualmente de Consultor Técnico
•
5. Pág.
Sistema Interligado Nacional
5
Grande extensão territorial
Sistema significativamente interligado (extensos troncos de transmissão)
Hidrotérmico com predominância hidrelétrica (UHE)
Aproximadamente 150 UHE, sendo cerca de 70 com capacidade de regularização
mensal
Regimes hidrológicos distintos
Pouca similaridade como restante do mundo (Canadá, Noruega, Nova Zelândia)
6. Pág.
Sistema Interligado Nacional
6
Despacho Centralizado
Preço é formado a partir do despacho
Cadeia de modelos complexos: Newave, Decomp e Dessem (Futuro)
Simulações extensas com no mínimo cinco anos de horizonte
Processo de licitação de novas obras também envolve simulações
Planejamento da Expansão envolve simulações ainda mais complexas (mínimo de
15 anos de horizonte)
7. Pág.
Planejamento do Setor
7
Plano Decenal de Expansão de Energia: Publicado anualmente
Plano Nacional de Energia: última publicação em 2006, com horizonte 2030
A elaboração do PDE envolve simulações estocásticas, para avaliar o
comportamento do sistema ao longo do horizonte do estudo e indicar os
empreendimentos mais adequados a serem introduzidos na matriz
O planejamento é indicativo, mas provê diversos subsídios para o
desenvolvimento da política energética como: inserções de outras fontes
renováveis, atendimento a demanda de ponta, influência das grandes usinas na
bacia amazônica e sua forte sazonalidade, entre outros.
8. Pág.
Planejamento do Setor
8
O objetivo do Planejamento do Setor é a minimização da aplicação de recursos no
futuro tanto na implantação de novas obras quanto na operação do parque futuro
Em síntese resolve-se o um problema de otimização
Min CI + CO
s.a.
Atendimento a Demanda em todos os períodos
Só é possível gerar com uma fonte se nela houver investimento em períodos
anteriores
Restrições de política energética
Restrições de tempo de construção (viabilidade técnica e socioambiental
9. Pág.
Planejamento do Setor
9
A literatura apresenta algumas abordagens interessantes para resolver o problema
Gorenstein et al (1993)
Progr. Inteira, Decomposição de Benders, Multi-estágios
Porto (1994)
Incorpora PDDE no subproblema de operação
Machado Junior (2000):
Simplificação das Incertezas
Cenários Médio e Crítico (apenas restrição)
Simplificação da operação
Energias das hidrelétricas em cada cenário
10. Pág.
Uso do Matlab no Planejamento
10
Entre 2013-2014, a partir da Metodologia de Porto (1994) tive como objetivo
introduzir a aversão a risco no modelo e Planejamento, via medida de risco CV@R
(Conditional Value at Risk)
O desenvolvimento era bastante extenso, envolvendo um algoritmo complexo
(PDDE – Programação Dinâmica Dual Estocástica), sendo chamado iterativamente
diversas vezes via Decomposição de Benders para as variáveis de investimento
(inteiras).
Desafio: Implementar e validar em um mês (férias )
Solução: Matlab!!!!
11. Pág.
Uso do Matlab no Planejamento
11
Entre 2013-2014, a partir da Metodologia de Porto (1994) tive como objetivo
introduzir a aversão a risco no modelo e Planejamento, via medida de risco CV@R
(Conditional Value at Risk)
O desenvolvimento era bastante extenso, envolvendo um algoritmo complexo
(PDDE – Programação Dinâmica Dual Estocástica), sendo chamado iterativamente
diversas vezes via Decomposição de Benders para as variáveis de investimento
(inteiras).
Desafio: Implementar e validar em um mês (férias )
Solução: Matlab!!!!
12. Pág.
Uso do Matlab no Planejamento
12
Entre 2013-2014, a partir da Metodologia de Porto (1994) tive como objetivo
introduzir a aversão a risco no modelo e Planejamento, via medida de risco CV@R
(Conditional Value at Risk)
O desenvolvimento era bastante extenso, envolvendo um algoritmo complexo
(PDDE – Programação Dinâmica Dual Estocástica), sendo chamado iterativamente
diversas vezes via Decomposição de Benders para as variáveis de investimento
(inteiras).
Desafio: Implementar e validar em um mês (férias )
Solução: Matlab!!!!
13. Pág.
Uso do Matlab no Planejamento
13
Plataforma de Desenvolvimento Matlab 2010
Rápido desenvolvimento
Boa performance para protótipos
Permite computação paralela (cluster)
Solver de Programação Linear CPLEX 12.2
Pacote de solução comercial
Boa performance inclusive para modelos comerciais
Orientação a Objetos
Maior nível de abstração
Rápido desenvolvimento
Facilidade de inserir novos componentes
Códigos Eficazes
Maior custo computacional
15. Pág.
Boas Práticas para
Desenvolvimento em Matlab
15
Modelo de Expansão: 22 classes
Classes de Representação
do Sistema
Classes do Algoritmo de Solução
Uma classe faz a une os dois
Conjuntos (TProb)
16. Pág.
Boas Práticas para
Desenvolvimento em Matlab
16
Orientação a objetos
Use e abuse deste recurso
Matlab é semelhante ao Java, porém mais amigável, com maior nível de
abstração e de mais fácil depuração
Herança
Atributos
Construtor
Métodos
17. Pág.
Boas Práticas para
Desenvolvimento em Matlab
17
Dicas
Herdar as classes pai à classe Handle (passagem de objetos por referência)
Funções de Manipulação de Matrizes
Matriz Identidade: eye()
Matriz zero e unitária: zeros(), ones()
Concatenação de matrizes: operadores “,” e “;”
Repetição de matrizes: repmat()
Eliminação de dimensões unitárias: squeeze()
Pacote de Otimização – Optmization Toolbox
Otimização não-linear: fmincon() ou fminbnd()
Otimização linear: linprog()
Mínimos Quadrados: lsqlin()