Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Fluxo de Potência: Modelagem computacional através dos métodos de Gauss e Gauss-Seidel, Manuais, Projetos, Pesquisas de Engenharia Elétrica

Este relatório descreve o procedimento utilizado para a modelagem de um programa para solução de problemas de fluxo de carga utilizando os métodos de Gauss e Gauss-Seidel através da interface do software Octave.

Tipologia: Manuais, Projetos, Pesquisas

2019

Compartilhado em 14/11/2019

n1Bispo
n1Bispo 🇧🇷

5

(1)

1 documento

1 / 19

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO
TOCANTINS - IFTO
CAMPUS PALMAS
Silas Bispo de Sousa
FLUXO DE POTÊNCIA
Modelagem computacional através dos métodos de Gauss e Gauss-Seidel
Palmas - TO
2019
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13

Pré-visualização parcial do texto

Baixe Fluxo de Potência: Modelagem computacional através dos métodos de Gauss e Gauss-Seidel e outras Manuais, Projetos, Pesquisas em PDF para Engenharia Elétrica, somente na Docsity!

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO

TOCANTINS - IFTO

CAMPUS PALMAS

Silas Bispo de Sousa FLUXO DE POTÊNCIA Modelagem computacional através dos métodos de Gauss e Gauss-Seidel Palmas - TO 2019

Silas Bispo de Sousa FLUXO DE POTÊNCIA Modelagem computacional através dos métodos de Gauss e Gauss-Seidel Trabalho submetido à disciplina de Sinais e Sistemas, 7 º período, do curso de Engenharia Elétrica do Instituto Federal do Tocantins, como requisito parcial para aprovação. Prof. Dr. Augusto Cesar dos Santos C. F. Vieira. Palmas - TO 2019

Resumo Este relatório descreve o procedimento utilizado para a modelagem de um programa para solução de problemas de fluxo de carga utilizando os métodos de Gauss e Gauss-Seidel através da interface do software Octave. 1 INTRODUÇÃO Com o desenvolvimento crescente do setor elétrico e o aumento de sua complexidade junto à ânsia por inovações e aperfeiçoamentos das tecnologias ligadas às atividades de operação e planejamento dos sistemas de energia elétrica (MANZONI, 2005, p. 1), torna-se mais do que necessário o estudo de técnicas que possam otimizar tais processos. No cenário atual, novas tecnologias computacionais estão permitindo o desenvolvimento exponencial dessas técnicas através do aproveitamento da grande capacidade e velocidade com que os computadores atuais efetuam rotinas de cálculos complexos. Desta maneira, é de grande importância que o profissional ligado a área de análise de sistemas elétricos se habituem com o desenvolvimento dessas tecnologias. Dentre os diversos campos de estudo na análise de sistema de potência, está o estudo de fluxo de potência, ou fluxo de carga, que leva em consideração o sistema elétrico em regime permanente e simétrico. Tal estudo permite analisar as características de funcionamento global do sistema. “O objetivo é determinar as tensões e potências em todos os barramentos de um sistema elétrico” (ALMEIDA, 20 17, p. 111 ). Na modelagem de sistemas do mundo real, os problemas não são lineares e, devido às suas complexidades, suas soluções são obtidas através de métodos numéricos como o de Gauss ou Newton-Raphson. A aplicação desses métodos, permite que a solução seja obtida através de uma rotina de cálculos iterativos simples utilizando valores de iterações anteriores que se repetem até que o erro entre os valores obtidos entre as iterações seja menor que um erro previamente especificado. Dentre os diversos métodos disponíveis, embora não seja o mais utilizado devido ao consumo de tempo, o método de Gauss é um dos mais didáticos e simples. Através dele é possível entender de maneira simples como os métodos interativos funcionam. Ainda, de maneira semelhante, existe o método de Gauss-Seidel, que explora a simplicidade do método de Gauss, mas tem uma convergência mais rápida. Neste relatório, são apresentadas duas modelagens para a solução de fluxo de carga, onde, um algoritmo é baseado no método de Gauss e o outro no de Gauss-Seidel. Os dois programas foram escritos utilizando o software Octave como interface e serão apresentados juntamente aos seus códigos-fonte. Ao final, os dois métodos serão comparados utilizando, ainda, os resultados obtidos através do software power world.

2 MÉTODOS

Antes de partir para a solução do sistema, é necessário conhecer alguns dados chave como as impedâncias das linhas de transmissão e características dos nós. Os sistemas elétricos de potência são, geralmente, apresentados num diagrama unifilar com diversas barras (nós). Tais barras são onde acontecem ligações importantes no mundo real (Geradores, transformadores, motores etc.). Essas barras são classificadas em três tipos baseado nas informações que, inicialmente, se conhece delas, sendo esses (ALMEIDA, 2017, p. 111):

  • Barras de Carga (PQ): são conhecidas as potências ativa (P) e reativa (Q), mas o módulo da tensão (V) e seu ângulo (θ) são desconhecidos;
  • Barras de Geração (PV): a potências ativa (P) e o módulo da tensão (V) são conhecidos, mas a potência reativa (Q) e o ângulo da tensão (θ) são desconhecidos;
  • Barra de referência (V θ ): o módulo da tensão (V) e ângulo da tensão (θ) são conhecidos, mas as potências ativa (P) e reativa (Q) são desconhecidas. Também denominada barra “oscilante”, “flutuante” ou “ swing ”. Existe apenas uma barra de referência num sistema podendo haver várias barras de carga ou de geração. Em barras de geração, as potências são consideradas positivas para efeito de cálculos, essas barras “injetam” potência no sistema. Em barras de cargas, as potências são consideradas negativas, as barras “consomem” potência do sistema. Barras intermediárias onde não estão conectadas geradores ou cargas no mundo real, são consideradas barras PQ com P=0 e Q=0. O sistema a ser analisado é dado abaixo na Figura 1: Nesse sistema, pode-se observar que a barra 1 é Vθ, a barra 2 é PQ e a barra 3 é PV. A Tabela 1 apresenta um resumo dos dados de barra:

Uma vez que o erro calculado seja menor do que o erro máximo especificado, interrompe-se as iterações e o sistema está resolvido. Baseando-se nessas considerações, o programa abaixo foi escrito para resolver o sistema apresentado através do método de Gauss usando como entrada as tabelas 1 e 2. A interface utilizada foi o software Octave. O programa foi dividido em duas partes: a primeira faz a leitura de dados através de tabelas em arquivo de texto (.txt) e produz a matriz admitância (Ybus), e a segunda parte soluciona o sistema através do método de Gauss considerando um erro máximo de 10-^5. 2.1.1 Primeria Parte: Coleta de dados

  1. clear
  2. clc
  3. FAZER LEITURA DE DADOS
  4. dadosbar = load("dados_barra.txt","r"); % Leitura dos dados de barra
  5. dadoslin = load("dados_linha.txt","r"); % Leitura dos dados de linha
  6. bar = max(dadosbar(:,1)); % Define o número de barras
  7. clc
  8. Sbase = 100; % Potência Base
  9. ORGANIZANDO OS DADOS DE BARRA
  10. 1 Definir dimensões dos parâmetros inicias

  11. Num(bar,1) = 0; % Matriz para salvar número das barras
  12. bartipo(bar,1) = 0; % Matriz para tipo das barras
  13. V(bar,1) = 0; % Matriz para módulos das tensões
  14. theta(bar,1) = 0; % Matriz para ângulo das tensões
  15. Pc(bar,1) = 0; % Matriz para potências ativas de carga
  16. Qc(bar,1) = 0; % Matriz para potências reativas de carga
  17. Pg(bar,1) = 0; % Matriz para potências ativas geradas
  18. Qg(bar,1) = 0; % Matriz para potências reativas geradas
  19. Qi(bar,1) = 0; % Matriz para potências reativas injetadas
  20. 2 Atribuir valores aos parâmetros iniciais

  21. Num = dadosbar(:,1); % Preenche matriz de números
  22. % Através da Matriz N, é possível preencher as matrizes na ordem independentemente da ordem da entrada dos dados
  23. %ajustando-se a posição na matriz ao valor de N na posição. Deste modo, os valores de entrada não precisam estar
  24. %em ordem.
  25. %Laço para preencher a matriz bartipo
  26. for (m = 1:bar)
  27. bartipo(Num(m,1),1) = dadosbar(m,2);
  28. m++;
  29. endfor
  30. %Laço para preencher a matriz V
  31. for (m = 1:bar)
  32. V(Num(m,1),1) = dadosbar(m,3);
  33. m++;
  34. endfor
  35. %Laço para preencher a matriz theta
  36. for (m = 1:bar)
  37. theta(Num(m,1),1) = dadosbar(m,4);
  38. m++;
  39. endfor
  40. %Laço para preencher a matriz Pc
  41. for (m = 1:bar)
  42. Pc(Num(m,1),1) = dadosbar(m,5);
  43. m++;
  1. endfor
  2. Pc = Pc/Sbase; %converter para PU
  3. %Laço para preencher a matriz Qc
  4. for (m = 1:bar)
  5. Qc(Num(m,1),1) = dadosbar(m,6);
  6. m++;
  7. endfor
  8. Qc = Qc/Sbase; %converter para PU
  9. %Laço para preencher a matriz Pg
  10. for (m = 1:bar)
  11. Pg(Num(m,1),1) = dadosbar(m,7);
  12. m++;
  13. endfor
  14. Pg = Pg/Sbase; %converter para PU
  15. %Laço para preencher a matriz Qg
  16. for (m = 1:bar)
  17. Qg(Num(m,1),1) = dadosbar(m,8);
  18. m++;
  19. endfor
  20. Qg = Qg/Sbase; %converter para PU
  21. %Laço para preencher a matriz Qi
  22. for (m = 1:bar)
  23. Qi(Num(m,1),1) = dadosbar(m,9);
  24. m++;
  25. endfor
  26. Qi = Qi/Sbase; %converter para PU
  27. 3 Calcular valores adicionais

  28. %Calcular tensões complexas
  29. for (m = 1:bar)
  30. V(m,1) = V(m,1)cos(theta(m,1)(pi/180)) + (V(m,1)sin(theta(m,1)(pi/180)))*j;
  31. endfor
  32. %Determinar Matriz Potencia Aparente
  33. S(bar,1) = 0;
  34. for (m = 1:bar)
  35. S(m,1) = (-Pc(m,1) + Pg(m,1)) + (-Qc(m,1) + Qg(m,1) + Qi(m,1))*j;
  36. endfor
  37. ORGANIZANDO OS DADOS DE LINHA
  38. 1 Definir dimensões dos parâmetros inicias

  39. barI(bar,1) = 0; % Matriz para barra inicial
  40. barF(bar,1) = 0; % Matriz para barra final
  41. R(bar,1) = 0; % Matriz para resistência das linhas
  42. X(bar,1) = 0; % Matriz para reatância das linhas
  43. B(bar,1) = 0; % Matriz para susceptância das linhas
  44. Tap(bar,1) = 0; % Matriz para tap dos transformadores
  45. 2 Atribuir valores aos parâmetros iniciais

  46. %Laço para preencher a matriz barI
  47. for (m = 1:bar)
  48. barI(m,1) = dadoslin(m,1);
  49. m++;
  50. endfor
  51. %Laço para preencher a matriz barF
  52. for (m = 1:bar)
  53. barF(m,1) = dadoslin(m,2);
  54. if (barF(m,1) == 0)
  55. barF(m,1) = barI(m,1);
  56. endif
  57. m++;
  58. endfor
  59. %Laço para preencher matriz R
  60. for (m = 1:bar)
  61. R(m,1) = dadoslin(m,3);
  62. m++;
  63. endfor

Os caracteres e símbolos escritos após ‘#’ e ‘%’ são comentários e não são lidos na execução do programa. A linha 1 utiliza o comando clear para limpar a área de trabalho do Octave e a linha 2 limpa a janela de comando através do comando clc. As linhas 4 e 5 limpam a memória do programa e coletam os dados das tabelas nos arquivos “dados_barra.txt” e dados_linha.txt” conforme a Tabela 1 e a Tabela 2, respectivamente. Esses valores são guardados nas matrizes ‘dadosbar’ e ‘dadoslin’. A linha 6 cria uma variável chamada ‘bar’ para salvar o número de barras do sistema. Esse comando vai levar em consideração o maior número da coluna onde estão o número das barras na tabela de dados de barra. Por exemplo, se o maior número for o da barra nº 18, então a variável bar recebe o número 1 8. A linha 8 define a potência base como 10 0 MVA. As linhas 11-19 criam as matrizes de dados de dimensão nx1 onde n é o número de barras. Cada uma dessas matrizes receberá os valores de uma das colunas da tabela de dados de barra. Na linha 21 a matriz ‘Num’ é preenchida com a coluna onde estão os números das barras na ordem da tabela de dados de barra. Os valores dos números das barras serão usados para organizar o preenchimento das outras matrizes em ordem crescente. Nas linhas 26- 69 , laços for são utilizados para preencher as matrizes de dados. O laço permite que todas as linhas da matriz ‘dadosbar’ da coluna referente ao dado preenchido, de acordo com a Tabela 1, sejam lidos e preenchidos na ordem crescente relacionando ao número da barra salvo na mesma linha da matriz ‘Num’. Desta maneira, mesmo que os dados da barra 2 estejam salvos na linha 3 da matriz de entrada, seus dados serão colocados na linha 2 das matrizes de dados pois sua posição nessas matrizes será o número do valor da matriz ‘Num’ na mesma posição. As linhas 45, 51, 57, 63 e 69 converte os valores de potência da entrada para p.u. utilizando o valor da potência base. As linhas 72 - 79 utiliza laços for para converter os valores dos módulos da tensão e da potência aparente para valores complexos utilizando a relação de números complexos. A tensão é convertida a partir do módulo e ângulo dados na tabela de entrada. A potência aparente é calculada utilizando a soma dos valores das potências ativas e reativas dadas na entrada, considerando potências geradas como positivas e potências de carga como negativas. As linhas 82 - 87 cria matrizes de dados de linha de maneira semelhante a feita com os dados de barra. Da mesma maneira, as linhas 90 - 121 preenchem as matrizes com os dados de linha de maneira semelhante às matrizes com os dados de barra. Há uma matriz para cada coluna e um laço for é utilizado para executar uma rotina que leia todas as linhas. A partir da linha 12 2 , a montagem da matriz admitância (Ybus) é feita.

Primeiramente, criamos uma matriz de impedâncias, onde seus valores são preenchidos conforme os números das barras, onde, a linha é o número da barra de origem e a coluna é o número da barra destino. Essa matriz é chamada de ‘Zprim’. Após a criação da matriz de impedâncias, uma matriz contendo os valores inversos dos elementos dessa matriz é criada. Essa matriz se chama ‘Yprim’. Finalmente, a matriz ‘Ybus’ é criada a partir de ‘Yprim’ onde os elementos de ‘Ybus’ fora da diagonal principal recebem os valores dos elementos de ‘Yprim’ negativos e os elementos da diagonal principal de ‘Ybus’ recebem a soma de todos os elementos da linha relacionada da matriz ‘Yprim’. As linhas 125 - 1 31 criam a matriz ‘Zprim’ utilizando dois laços for, um para as linhas e outro, dentro para as colunas. Para cada ciclo do laço das linhas, o laço da coluna vai varrer os valores das colunas da tabela de dados de linha. Os valores serão a soma das resistências somadas as reatâncias e suas posições serão associadas à barra de origem na linha e à barra de destino na coluna. Um laço if garante que os valores de posições simétricas sejam preenchidos considerando um valor de linha diferente de um valor de coluna. As linhas 133- 143 criam a matriz ‘Yprim’ simplesmente preenchendo com o elemento na mesma posição da matriz ‘Zprim’ invertido através da função inv. Para isso é utilizado um laço for dentro de um laço if para impedir que haja divisão por zero. Se o valor na matriz ‘Zprim’ for zero, então o elemento na mesma posição da matriz ‘Yprim’ recebe zero. As linhas 147 - 162 criam a matriz ‘Ybus’ utilizando dois laços for, o primeiro para a linha e o segundo, dentro, para a coluna. Dentro dos laços for, um laço if vai atribuir a soma dos valores da linha da matriz ‘Yprim’ relacionada se o valor da linha for igual ao valor da coluna ou o valor negativo do elemento da matriz ‘Yprim’ relacionado se forem diferentes. Para efetuar a soma, um laço for auxiliado da função += foi utilizado. As linhas 164 e 165 informam o sucesso da coleta de dados, caso o programa tenha sido executado corretamente. 2.1.2 Segunda parte: aplicando o método de Gauss

  1. printf ('\t\t## MÉTODO DE GAUSS ##\n\n');
  2. Determiar erro mínimo

  3. erromin = 1e-10;
  4. Fórmula de Gauss

  5. u = 0;
  6. e = 0;
  7. erro = 1;
  8. while (erro > erromin)
  9. u++;
  10. Vn(bar,1) = 0;
  1. printf("\n [P] [Q]\n", u);
  2. disp([P Q])
  3. printf("\n\nNúmero de interações: %d\n", u);
  4. printf("erro: %d\n", erro); A linha 3 determina o erro máximo admissível para se interromper as iterações. A linha 5 cria uma variável ‘u’ para contar o número de iterações e as linhas 6 e 7 criam as variáveis ‘e’ e ‘erro’ que guardaram os erros calculados antes de serem comparados. A linha 8 dá início à função while que decidirá quando interromper as iterações. A condição é que o erro calculado seja menor que o erro estabelecido. Para que o programa entre no laço o valor do erro calculado é admitido como sendo igual a 1 inicialmente. Na linha 9, a variável ‘u’ recebe um incremento indicando a primeira iteração. As linhas 11 - 31 são utilizadas para calcular os valores das tensões a cada iteração. Para essa tarefa, utiliza-se primeiramente um laço for (linha 11 ) que vai repetir o processo para cada barra p. dentro desse laço, primeiramente encontra-se um condicional if (linha 13), o qual impedirá que o cálculo seja feito se a barra for do tipo 1 (barra Vθ). Na linha 14, uma variável ‘soma’ com valor inicial zero é criada para salvar o valor da soma que será calculada conforme a Equação 1. Para isso, na linha 15 um laço for será utilizado para “varrer” os valores na matriz ‘Ybus’ e ‘V’ que possuam o índice q a cada ciclo. Esses valores são somados aos anteriores a cada novo ciclo até que se satisfaça a condição do laço for. Então, o valos ‘soma’ é utilizado na fórmula utilizada na linha 21 em conformidade com a Equação 1 atribuindo a mesma posição relacinada da matriz ‘Vn’. A linha 22 determina que se a condição do condicional if (linha 13 ) não for satisfeito, então a linha 23 é executada, ou seja, se a barra for do tipo 1, o valor de ‘Vn’ na posição atual será o mesmo da iteração anterior. As linhas 26 - 29 , através do condicional if, faz com que se a barra for do tipo 3 (PV), o valor atual seja recalculado para que o módulo de tensão especificado anteriormente seja mantido e se mantenha apenas o ângulo calculado. Para isso, cria-se uma variável ‘phi’ para guardar o valor do ângulo através da função arg e, assim, o valor da tensão para essa barra é recalculada utilizando a relação de números complexos utilizando o valor do módulo da tensão especificado e o ângulo calculado na iteração atual. Na linha 32 a variável ‘e’ recebe a matriz diferença entre a matriz V (possuindo os valores da iteração anterior) e a matriz Vn (possuído os valores da iteração atual). Na linha 33, a variável ‘erro’ recebe o maior elemento da matriz ‘e’. O laço for nas linhas 36 - 48, atualiza o valor da potência aparente das barras tipo 3 (PV), calculando-se a corrente na barra com os valores de tensão atuais. Calcula-se o módulo da potência aparente e o ângulo a partir do valor da potência ativa da barra. Então, se calcula o valor complexo da potência aparente utilizando o módulo e o novo ângulo calculados. O laço while termina na linha 49 e compara o valor da variável erro, calculada na iteração atual, com o valor do erro estabelecido no inicio do programa. Se ‘erro’ for menor, o laço termina.

O laço for nas linhas 64-68 atualiza os valores das matrizes ‘P’ e ‘Q’ a partir dos valores finais da matriz ‘S’, onde, ‘P’ é a parte real de ‘S’ e ‘Q’ é a parte imaginária de ‘S’. As linhas 69 - 75 exibem o resultado.

2. 2 Método de Gauss-Seidel O método de Gauss-Seidel é muito semelhante ao método de Gauss. A ideia nesse método é utilizar os valores das barras já calculados para calcular os valores das barras a calcular a cada iteração. Isso agiliza o processo de convergência. A equação para este método é apresentada abaixo: (Equação 3) A equação é, praticamente, a mesma que no método de Gauss. A diferença é que a soma foi dividida em duas partes. A primeira soma considera os valores da iteração atual, valores das barras já calculados. A segunda considera os valores da iteração anterior, as barras que ainda não foram calculados. Isso acontece a cada iteração. Assim, quando se calcular a tensão na barra 3, utiliza-se os valores da iteração atual das barras 1 e 2 e os valores anteriores para as barras 3 ou posteriores. A modelagem feita para o método de Gauss-Seidel foi a mesma anterior com a adição desse detalhe na linhas de soma. Assim, não é necessário a apresentação da primeira parte que contem apenas a coleta dos dados. E, na segunda parte, apenas as modificações serão comentadadas. 2.2.1 Segunda parte: aplicando as modificações de Gauss-Seidel 1. printf ('\t\t## MÉTODO DE GAUSS-SEIDEL ##\n\n'); 2. # Determiar erro mínimo 3. erromin = 1e-10; 4. # Método Gauss-Seidel 5. u = 0; 6. h = 0; 7. e = 0; 8. erro = 1; 9. Vn(bar,1) = 0; 10. while (erro > erromin) 11. u++; 12. for (k = 1:bar)

  1. p++;
  2. endfor
  3. % Atualizar matrizes P e Q
  4. for (m = 1:bar)
  5. P(m,1) = real(S(m,1));
  6. Q(m,1) = imag(S(m,1));
  7. m++;
  8. endfor
  9. printf("\nTolerância: %d\n", erromin);
  10. printf("\n [V] [ang]\n", u);
  11. disp([abs(V) arg(V)*180/pi])
  12. printf("\n [P] [Q]\n", u);
  13. disp([P Q])
  14. printf("\n\nNúmero de interações: %d\n", u);
  15. printf("erro: %d\n", erro); A diferença da sintax anterior está na criação de uma variável ‘h’ que receberá o número da barra anterior à que se está calculando e na adição dos laços para a ‘soma 1 ’ nas linhas 17 - 26 e para a ‘soma2’ nas linhas 27 - 35. O primeiro laço começa com uma condicional que determina que só deve ser calculado a ‘soma 1 ’ se ‘h’ for maior que zero. Isso quer dizer que a ‘soma 1 ’ só deve ser calculada a partir da barra 2, a cada iteração. Cumprida a condição, faz-se a soma através de um laço for semelhante aos utilizados no método anterior, porém apenas da barra 1 até a barra com o mesmo número da variável ‘h’ da matriz com os novos valores de tensão. Logo, apenas as barras anteriores as barras atuais serão utilizadas no cálculo da ‘soma 1 ’. A variável ‘soma 2 ’, então, será calculada considerando os valores da barra atual (h+1) e os valores das próximas barras. Terminadas as somas, seus valores são utilizados na atribuição da linha 36 e o programa segue exatamente igual à modelagem pelo método de Gauss. 3 RESULTADOS E DISCUSSÕES Para o sistema apresentado, o resultados das duas modelagens são:

Figura 2: Resultados para o método de Gauss. Figura 3 : Resultados para o método de Gauss-Seidel. Observando-se os resultados obtidos através dos dois métodos, nota-se a grande diferença quanto ao número de iterações. Enquanto que no método de Gauss-Seidel só foram necessárias cinco iterações, no método de Gauss foram necessárias 3 4 iterações (7 vezes mais iterações!), atestando- se, dessa maneira, que o método de Gauss é muito mais lento. Ainda assim, os dois métodos convergiram para os mesmos valores com erros substancialmente pequenos, ainda que no método de Gauss-Seidel o erro foi 10 vezes menor, na ordem de 10-^7.

REFERÊNCIAS BIBLIOGRÁFICAS

FLUXO DE POTÊNCIA. In: ALMEIDA, Alvaro A. W. NOTAS DE AULA EM SISTEMAS ELÉTRICOS DE POTÊNCIA. Paraná: UTFPR, 2017. cap. 7, p. 111-136. MANZONI, Alessandro. Desenvolvimento de dm Sistema Computacional Orientado a Objetos para Sistemas Elétricos de Potência: Aplicação a Simulação Rápida e Análise da Estabilidade de Tensão. Orientador: Djalma M. Falcão. 2005. 190 p. Tese (Doutorado) - Curso de Pós-Graduação em Engenharia Elétrica, UFRJ, Rio de Janeiro, 2005. Disponível em: http://pee.ufrj.br/teses/textocompleto/2005033151.pdf. Acesso em: 31 out. 2019.