Análise em Regime Permanente Senoidal

29
3 Universidade Federal do Maranhão Centro de Ciências Exatas e Tecnologia Departamento de Engenharia Elétrica Laboratório de Circuitos Elétricos Professor: Anselmo Barbosa 7º Experimento ANÁLISE EM REGIME PERMANENTE SENOIDAL DE CIRCUITOS ELÉTRICOS VIA MÉTODO FASORIAL USANDO O MATLAB

Transcript of Análise em Regime Permanente Senoidal

Page 1: Análise em Regime Permanente Senoidal

3

Universidade Federal do Maranhão

Centro de Ciências Exatas e Tecnologia

Departamento de Engenharia Elétrica

Laboratório de Circuitos Elétricos

Professor: Anselmo Barbosa

7º Experimento

ANÁLISE EM REGIME PERMANENTE SENOIDAL DE CIRCUITOS

ELÉTRICOS VIA MÉTODO FASORIAL USANDO O MATLAB

São Luís - MA

Junho de 2012

Page 2: Análise em Regime Permanente Senoidal

4

Universidade Federal do Maranhão

Centro de Ciências Exatas e Tecnologia

Departamento de Engenharia Elétrica

Laboratório de Circuitos Elétricos

Professor: Anselmo Barbosa

Wagner Nascimento Soares Neves EE07150-74

Amanda Barros de Aguiar Serra EE11301-52

Alexandre Adriel Vieira EE07139-74

Marcelo Paiva Cavalcanti EE09215-82

Fábio Júlio Silva de Sousa EE09133-81

Joabe Pereira EE8124-76

Experimento apresentado com o objetivo de obtenção parcial da 6ª nota na disciplina Lab. Circuitos Elétricos, no curso de Engenharia Elétrica, na Universidade Federal do Maranhão.

Prof. Anselmo Barbosa

São Luís - MA

Julho de 2012

Page 3: Análise em Regime Permanente Senoidal

5

1. Introdução Teórica

1.1 Análise de Regime Permanente Senoidal

1.1.1 Números Complexos

Um número complexo pode ser expresso na forma retangular:

ou polar

Onde |A| é o módulo de A e é o ângulo de fase .

Algumas operações importantes com números complexos:

1.1.2 Fasores e Equações Diferenciais Ordinárias

1.1.2.1 Representação de uma senóide por um fasor

Uma função do tempo definida como possui amplitude Am, frequência angular ω e fase . A soma algébrica desta função com outras de mesma freqüência, ou suas derivadas, resultará em uma nova função de mesma freqüência angular. Assim, é de se esperar que, uma vez determinada a freqüência da função, ela possa ser tratada algebricamente em função da sua amplitude e fase. Isto significa que, uma vez determinado ω, função

Page 4: Análise em Regime Permanente Senoidal

6

pode ser representada por um número complexo

(observar que Am=|A| ). Da mesma maneira, a partir deste número complexo e

da freqüência angular ω, é possível reconstruir a função original.

1.1.3 Análise de regime permanente senoidal

Para regime permanente senoidal, analisado por fasores, valem as mesmas regras de análise utilizadas circuitos resistivos, pois as leis de Kirchhoff continuam sendo aplicadas.

Assim sendo são válidas as mesmas considerações sobre linearidade e invariância com o tempo, o que inclui os teoremas de superposição, Thèvenin e Norton bem como associações de componentes e simplificações e, obviamente, os métodos de análise por correntes de malha e tensões de nó.

1.1.4 Superposição em regime permanente

Para os casos de circuitos excitados com fontes senoidais, sejam elas de freqüências iguais ou diferentes, podemos utilizar o princípio da superposição para obter a resposta da variável de rede desejada. A justificativa aqui é igual a estudada anteriormente porém se as senóides possuírem freqüências diferentes não podemos somar diretamente os fasores, pois a soma de duas ou mais senóides de freqüências distintas não é uma senóide.

1.1.5 Impedância e Admitância

Em regime permanente,

e então podemos reescrever as relações entre corrente e tensão para o resistor, o capacitor e o indutor.

Para o resistor v=R⋅iSubstituindo os fasores na equação acima temos

A relação também indica que, como R é um número real, o ângulo de fase entre a tensão e a corrente é nula.

Para o capacitor i=Cdvdt

Substituindo os fasores na equação acima temos

Page 5: Análise em Regime Permanente Senoidal

7

Observe que as relações se tornaram semelhantes às relações do resistor. O conceito generalizado de resistência no plano complexo é chamado de impedância e o análogo da condutância é chamado de admitância. A parte imaginária de uma impedância se chama reatância e a parte imaginária de uma admitância se chama susceptância. Sendo assim, em regime permanente senoidal o capacitor tem um comportamento de reatância capacitiva normalmente representado por XC.

Observe que a reatância do capacitor é um número complexo então os fasores de tensão e corrente não terão o mesmo ângulo, ou seja, não estarão em fase. Observe também que a corrente sempre estará adiantada em relação a tensão de um ângulo de 90°.

Para o indutor v=Ldidt

Substituindo os fasores na equação acima temos

Observe novamente que a relação de regime permanente senoidal entre a corrente e a tensão no indutor também são semelhantes às encontradas no resistor. Assim o indutor também apresenta uma reatância indutiva normalmente representada por X L. Observe também que a reatância indutiva também é um número complexo e a fase entre tensão e corrente será de 90°, porém neste caso a corrente no indutor está atrasada com relação a tensão.

2. Descrição das Implementações

2.1 Algoritmo conceitual: Função ‘’build_nodal_ext’’

i) Ler os dados de entrada passados pela função nodal.m.

ii) Definir o vetor w com dimensão N volt, onde N volté o número de fontes de tensão;

ii) Aloca memória para a matriz A e para o vetor b, onde A possui dimensão ( Nnode+N volt¿× ( Nnode+N volt¿ e b tem dimensão ( Nnode+N volt¿ ×1.

iii) Repete os passos (iv)-(vii) para j = 1,..., Nb; onde Nb é o número de ramos

iv) Se o ramo j é do tipo 1 (resistor) então

Se o nó inicial (k) e o final (l) do ramo j não são de referência então

Page 6: Análise em Regime Permanente Senoidal

8

Akk←Akk+(1/rj) ,onde r j é a resistência do ramo j;

A¿← A¿+(1/rj)

Akl← Akl−(1 /rj)

Alk← Alk−(1/rj)

Se não se o nó inicial (k) é de referência então

A¿← A¿+(1/rj)

Se não se o nó final (l) é de referência então

Akk←Akk+(1/rj)

v) Se o ramo j é do tipo 2 (Capacitor) então

Se o nó inicial (k) e final (l) do ramo j não são de referência então

Akk←Akk+( j ω0C) ,onde j ω0C é a impedância do ramo j;

A¿← A¿+( jω0C )

Akl← Akl−( j ω0C)

Alk← Alk−( j ω0C)

Se não se o nó inicial (k) é de referência então

A¿← A¿+( jω0C )

Se não se o nó final (l) é de referência então

Akk←Akk+( j ω0C)

vi) Se o ramo j é do tipo 3 (Indutor) então

Se o nó inicial (k) e final (l) do ramo j não são de referência então

Akk←Akk+(1/ j ω0C) ,onde 1/ j ω0C é a impedância do ramo j;

A¿← A¿+(1/ jω0C )

Akl← Akl−(1 / j ω0C)

Alk← Alk−(1/ j ω0C)

Se não se o nó inicial (k) é de referência então

Page 7: Análise em Regime Permanente Senoidal

9

A¿← A¿+(1/ jω0C )

Se não se o nó final (l) é de referência então

Akk←Akk+(1/ j ω0C)

vii) Se o ramo j é do tipo 4 (fonte de corrente) então

Se o nó inicial (k) e final (l) do ramo j não são de referência então

bk←bk−I 0 /∅ ; onde I 0/∅ é valor fasorial da fonte de corrente associada com o ramo j.

b l←bl+ I 0/∅ ;

Se não se o nó inicial (k) é de referência então

b l←bl+ I 0/∅ ;

Se não se o nó final (l) é de referência então

bk←bk−I 0/∅ ;

viii) Repetir os passos de (ix) à (xi) para i = 1, ..., N volt

ix) Identifica-se o ramo associado com a i-ésima fonte usando o vetor w, ou seja:

j w i

x) Identificam-se os nós inicial (k) e final (l) associados com o ramo j;

xi) Defini-se o índice usado para acessar as partições Av , Ai ebv, isto é,

p Nnode+1

Se os nós k e l não são de referência então

(Defini-se elementos da partição A I para a fonte ‘i’)

Akp 1

Alp -1

(Defini-se elementos da partição AV para a fonte ‘i’)

Apk 1

Page 8: Análise em Regime Permanente Senoidal

10

Apl -1

(Defini-se elementos da partição bV para a fonte ‘i’)

b p V 0/∅ , onde V 0/∅ é a tensão especificada para a fonte ‘i’

Se o nó k é o de referência então

(Defini-se elementos da partição A I para a fonte ‘i’)

Alp -1

(Defini-se elementos da partição AV para a fonte ‘i’)

Apl -1

(Defini-se elementos da partição bV para a fonte ‘i’)

b p V 0/∅ , onde V 0/∅ é a tensão especificada para a fonte ‘i’

Se o nó l é o de referência então

(Defini-se elementos da partição A I para a fonte ‘i’)

Akp 1

(Defini-se elementos da partição AV para a fonte ‘i’)

Apk 1

(Defini-se elementos da partição bV para a fonte ‘i’)

b p V 0/∅ , onde V 0/∅ é a tensão especificada para a fonte ‘i’

3. Questões

1) Calcule manualmente os fasores associados com as tensões nodais no circuito da Figura 1.

Page 9: Análise em Regime Permanente Senoidal

11

Figura 9.

Sugestão:Utilize o MATLAB para realizar operações com números complexos. Este procedimento tem como objetivo familiarizar o estudante com operações envolvendo números complexos no ambiente do MATLAB. Consequentemente, a implementação do programa de análise nodal fasorial será mais rápida.

Resposta:

ANÁLISE PARA O NÓ 1

−10+v1

−10 j+v1−v210

=0

(0,1+0,1 j ) v1−0,1v2=10

ANÁLISE PARA O NÓ 2

v2−v110

+v25

+v25 j

=0

−0,1v1+(0,3−0,2 j ) v2=0

SISTEMA DE EQUAÇÕES NA FORMA MATRICIAL

Page 10: Análise em Regime Permanente Senoidal

12

Ou

2) Calcule manualmente os fasores associados com as tensões nodais no circuito da Figura 2.Sugestão: Utilize o MATLAB para realizar operações com números complexos.

Figura 10.

Resposta:

ANÁLISE PARA O NÓ 1

v1=10V

ANÁLISE PARA O NÓ 2

Page 11: Análise em Regime Permanente Senoidal

13

ANÁLISE PARA O NÓ 3

SISTEMA DE EQUAÇÕES NA FORMA MATRICIAL

Ou

3) Implementar um programa computacional, denominado nodal_fasor.m, para estimar tensões nodais de circuitos elétricos operando em regime permanente senoidal. Este programa deve ser escrito usando a linguagem de programação do software MATLAB. A implementação do programa nodal_phasor.m deve ser baseada na versão #2 do programa nodal.m, isto é: versão que modela fontes de corrente e de tensão na análise nodal. Adicionalmente, o programa deve permitir que o usuário especifique a frequência de operação do sistema em rad/seg.Sugestões:i) Utilize o comando “input” do MATLAB para obter a frequência de operação através do teclado.ii) Não é necessário incluir as funções de cálculo de perdas e potência absorvida na versão fasorial do programa nodal.

Page 12: Análise em Regime Permanente Senoidal

14

Resposta:

O código do programa em MATLAB é mostrado no anexo I desse relatório.

4) Utilize o programa nodal_phasor para estimar as tensões nodais para o circuito da Figura 9. Compare os resultados com aqueles obtidos na questão 1. Apresente o arquivo de entrada com os dados do circuito cadastrados no formato do programa nodal_phasor.

Resposta:

TABELA ICOMPARAÇÃO ENTRE OS RESULTADOS DOS CÁLCULOS MANUAIS E

COMPUTACIONAIS.

Manualmente ComputacionalmenteErro

Absoluto

v1 (V)58,8235 -64,7059j

87,4475∠−47,7263 °

58,8235 -64,7059j

87,4475∠−47,7263 ° 0

v2 (V)23,5294 –

5,8824j24,2536

∠−14,0362°23,5294 –

5,8824j24,2536

∠−14,0362° 0

Até a quarta casa decimal os valores computacionais e manuais são idênticos.

TABELA IIARQUIVO DE ENTRADA PARA O CIRCUITO DA FIGURA 9.

Antigo NovoNó

inicialNó

finalNó

inicialNó

finalTipo Dimensão

Ângulode Fase

1 0 1 0 2 0,00010000 0,000001 2 1 2 1 10,0000000 0,000002 0 2 0 1 5,00000000 0,000002 0 2 0 3 0,00500000 0,000000 1 0 1 4 10,0000000 0,00000

5) Utilize o programa nodal_phasor para estimar as tensões nodais para o circuito da Figura 10. Compare os resultados com aqueles obtidos na questão 2. Apresente o arquivo de entrada com os dados do circuito cadastrados no formato do programa nodal_phasor.

Resposta:

Page 13: Análise em Regime Permanente Senoidal

15

TABELA IIICOMPARAÇÃO ENTRE OS RESULTADOS DOS CÁLCULOS MANUAIS E

COMPUTACIONAIS.

Manualmente ComputacionalmenteErro

Absoluto

v1 (V) 10,000010,0000∠0 ° 10,0000

10,0000∠0 ° 0

v2 (V)3,4615 – 2,6923j

4,3853∠−37,8750 °

3,4615 – 2,6923j

4,3853∠−37,8750 ° 0

v3 (V)-0,3846 – 1,9231j

1,9612∠−101,3099 °

-0,3846 – 1,9231j

1,9612∠−101,3099 ° 0

i 01 (A)-0,0007 – 0,0003i

0,0007∠−157,6199 °

-0,0007 – 0,0003i

0,0007∠−157,6199 ° 0

Até a quarta casa decimal os valores computacionais e manuais são idênticos.

TABELA IVARQUIVO DE ENTRADA PARA O CIRCUITO DA FIGURA 10.

Antigo NovoNó

inicialNófinal

Nóinicial

Nófinal

Tipo DimensãoÂngulode Fase

1 2 1 2 1 10000,0000 0,00002 0 2 0 2 0,00000100 0,00002 3 2 3 1 10000,0000 0,00003 0 3 0 2 0,00000200 0,00001 0 1 0 5 10,0000000 0,0000

6) Utilize o programa nodal_phasor para estimar as tensões nodais para o circuito da Figura 11. Apresente o arquivo de entrada com os dados do circuito cadastrados no formato do programa nodal_phasor. A partir dos resultados gerados pelo programa nodal calcule a corrente i(t).

Page 14: Análise em Regime Permanente Senoidal

16

Figura 11.Resposta:

TABELA VARQUIVO DE ENTRADA PARA O CIRCUITO DA FIGURA 11.

Antigo NovoNó

inicialNófinal

Nóinicial

Nófinal

Tipo DimensãoÂngulode Fase

1 2 1 2 2 0,01000000 0,000001 3 1 3 1 15,0000000 0,000002 0 2 0 3 4,00000000 0,000002 0 2 0 1 20,0000000 0,000003 4 3 4 3 2,00000000 0,000003 4 3 4 2 0,00800000 0,000004 5 4 5 1 40,0000000 0,000005 0 5 0 3 8,00000000 0,000000 1 0 1 4 0,02000000 30,0000

I=v5−v440

=0,1414∠39,3236−0,2000∠−5,676440

=¿

I=3,5355×10−3∠129,3323 ° A

i(t)=3,5355cos(5 t+129,3323°)mA

Page 15: Análise em Regime Permanente Senoidal

17

7) Utilize o programa nodal_phasor para estimar as tensões nodais para o circuito da Figura 12. Apresente o arquivo de entrada com os dados do circuito cadastrados no formato do programa nodal_phasor. A partir dos resultados gerados pelo programa nodal calcule a impedância equivalente vista a partir dos terminais da fonte de tensão. Demonstre que esta impedância equivalente

é igual àquela obtida através de cálculos manuais usando combinações série/paralelo.

Figura 12.Resposta:

TABELA VIARQUIVO DE ENTRADA PARA O CIRCUITO DA FIGURA 11.

Antigo NovoNó

inicialNó

finalNó

inicialNó

finalTipo Dimensão

Ângulode Fase

12 1 2 3

3,00000000

0,0000

1 4 1 3 1 20,000000 0,0000

Page 16: Análise em Regime Permanente Senoidal

18

0 2

3 2 4 20,0050000

00,0000

35 4 5 1

25,0000000

0,0000

46 3 6 3

4,00000000

0,0000

57 5 7 2

0,00400000

0,0000

60 6 0 2

0,00200000

0,0000

60 6 0 1

20,0000000

0,0000

70 7 0 1

15,0000000

0,0000

10 1 0 5

24,0000000

45,0000

Para se calcular a impedância equivalente vista a partir dos terminais da fonte de tensão, o procedimento adotar foi substituir a fonte de tensão do circuito no arquivo de entrada do programa nodal_phasor.m, por uma fonte de corrente de 1cos(20t) A. Com essa modificação o programa realiza automaticamente o cálculo da impedância, pois ao realizar a substituição o circuito equivalente identificado pelo programa nodal_phasor.m será como ilustrado pela figura 13.

Figura 13: Ilustração para a questão 7.

Dessa forma, o recurso que o programa nodal_phasor.m nos disponibiliza é calcular a tensão no nó #1, que de forma indireta é numericamente igual a impedância equivalente que desejamos, pois:

V 1−0=ZTH×I=ZTH×1∠0 °

V 1=ZTH

Assim o valor encontrado para ZTH a partir do programa nodal_phasor.m foi:

V1

ZTH 1cos(20t) A

Page 17: Análise em Regime Permanente Senoidal

19

ZTH=19,9523+25,8651 j Ωou

ZTH=32,6664∠52,3535 °Ω

CÁLCULO MANUAL DA IMPEDÂNCIA EQUIVALENTE

Z2mF=−1 j

20×2×10−3=−25 jΩ

Z4H=20×4 j=80 jΩ

Z3 H=20×3 j=60 j Ω

Z5mF=−1 j

20×5×10−3=−10 jΩ

Z4mF=−1 j

20×4×10−3=−12,5 j Ω

CÁLCULO DAS ASSOCIAÇÕES DE IMPEDÂNCIAS

Z16=20+Z 4H=20+80 j Ω

Z60=Z2mF×20

Z2mF+20=12,1951−9,7561 jΩ

Z10=Z3H+Z5mF+25+Z4mF+15

Z10=60 j−10 j+25−12,5 j+15

Z10=40+37,5 jΩ

Zeq=Z10×(Z16+Z60)Z10+Z16+Z60

=(40+37,5 j)×(20+80 j+12,1951−9,7561 j)(40+37,5 j )+(20+80 j+12,1951−9,7561 j)

Zeq=19,9523+25,8651 jΩOu

Zeq=32,6664∠52,3534 j °Ω

TABELA VIICOMPARAÇÃO ENTRE OS RESULTADOS DOS CÁLCULOS MANUAIS E

COMPUTACIONAIS.

Page 18: Análise em Regime Permanente Senoidal

20

Manualmente ComputacionalmenteErro

Absoluto

ZTH (Ω) 19.9523+25.8651 j 32,6664∠52,3534 °

19.9523+25.8651 j 32,6664∠52,3535 ° 0

Até a quarta casa decimal os valores computacionais e manuais são idênticos.

Page 19: Análise em Regime Permanente Senoidal

21

3. REFERÊNCIAS BIBLIOGRÁFICAS

[1] Alexander, C. & Sadiku M. (2008) Fundamentos de Circuitos Elétricos. 3th ed. São Paulo, McGraw-Hill.

[2] Fragnito, H. L., (2010) Circuitos de Corrente Alternada. [Internet]. Available from: <http://www.ifi.unicamp.br/~hugo/apostilas/livro.pdf> [Accessed 17 june 2011].

[3] Leão, R. P. S., (2009) Circuitos Básicos em Corrente Alternada. [Internet] Available from: < http://www.dee.ufc.br/~rleao/Circuitos/CircII_4.pdf > [Accessed 17 june 2011].

[4] MATLAB version 7.10.0.499 Natick, Massachusetts: The MathWorks Inc., 2010.

Page 20: Análise em Regime Permanente Senoidal

22

ANEXO I – SCRIPTS E FUNÇÕES DO MATLAB USADAS NESTA IMPLEMENTAÇÃO.

SCRIPTS

NODAL_PHASOR.M

%Remoção de Variáveis e Funções da Memóriaclear all; %Limpa a janela de comandosclc; complex=i;%Entra com o nome do arquivo de dadosname_file = input('entre com o nome do arquivo de dados: ','s'); %Leitura dos dados de entrada dos ramos[ni_bran,nf_bran,type_bran,size_bran,angulo_fase]=textread(name_file,... ...'%d %d %d %f %f');num_bran=length(ni_bran); ni_antigo=ni_bran;nf_antigo=nf_bran; freq_oper=input('Digite a frequência de operação do sistema: '); %Definição de uma numeração seqüencial para os números dos nósnex_node=[];num_node=0;for ibran=1:num_bran kbran=ni_bran(ibran); lbran=nf_bran(ibran); if kbran > 0 kseq=find(nex_node==kbran); if length(kseq) == 0 num_node=num_node+1; nex_node(num_node)=kbran; ni_bran(ibran)=num_node; else ni_bran(ibran)=kseq; end end if lbran > 0 lseq=find(nex_node==lbran); if length(lseq) == 0 num_node=num_node+1; nex_node(num_node)=lbran; nf_bran(ibran)=num_node; else nf_bran(ibran)=lseq; end endend %Impressão dos dados de ramos (com numeração seqüencial dos nós)num_res=length(find(type_bran==1));num_src=length(find(type_bran==2));

Page 21: Análise em Regime Permanente Senoidal

23

%Abre o arquivo de saida. Descartar o conteúdo existente, se houver. fid=fopen('output.dat','w'); fprintf(fid,'Número de nós: %d\r\n',num_node);fprintf(fid,'Número de ramos: %d\r\n',num_bran);fprintf(fid,'Número de Resistores: %d\r\n',num_res);fprintf(fid,'Número de Fontes de Corrente: %d\r\n\n',num_src);fprintf(fid,'-----------X---------X--------------------------------- ... ...----\r\n');fprintf(fid,' ANTIGO NOVO\r\n');fprintf(fid,'------X----X----X----X-------------X------------X------- ... ...---\r\n');fprintf(fid,' NI NF NI NF TIPO DIMENSÃO ... ...FASE\r\n');fprintf(fid,'------X----X----X----X-------------X------------X------- ... ...---\r\n');for ibran=1:num_bran kbran_antigo=ni_antigo(ibran); lbran_antigo=nf_antigo(ibran); kbran=ni_bran(ibran); lbran=nf_bran(ibran); switch type_bran(ibran); case 1 name_bran=' Resistor '; case 2 name_bran=' Capacitor '; case 3 name_bran=' Indutor '; case 4 name_bran=' F. Corrente'; case 5 name_bran=' F. Tensão '; otherwise fprintf('Ramo #%d com tipo indefinido!!!!!\r\n',ibran); fprintf('Parando...'); return; end fprintf(fid,'%4d %4d %4d %4d %8s %10.4f %10.4f\r\n',kbran_antigo,lbran_antigo,kbran,lbran,name_bran,size_bran(... ...ibran),angulo_fase(ibran));end %Fecha o arquivo de saídafclose(fid); [A,b,num_volt,W] = build_nodal(num_node,num_bran,type_bran,ni_bran,nf_bran,size_bran,... ...complex,freq_oper,angulo_fase); salva_Matnodal(num_node,num_volt,A); salva_vetor_indp(num_node,num_volt,fid,b); [S] = vetor_solucao(fid,A,b,num_node,num_volt); % Fecha o arquivo de saídafclose(fid);

Page 22: Análise em Regime Permanente Senoidal

24

FUNÇÕES

BUILD_NODAL.M

function [A,b,num_volt,W] = build_nodal(num_node,num_bran,type_bran,ni_bran,nf_bran,size_bran,... ...complex,freq_oper,angulo_fase) %NOVA IMPLEMENTAÇÃOfor ibran=1:num_bran if type_bran(ibran)==2 size_bran(ibran)=(-1/(freq_oper*size_bran(ibran)))*complex; end if type_bran(ibran)==3 size_bran(ibran)=(freq_oper*size_bran(ibran))*complex; end if type_bran(ibran)==4 angulo_fase(ibran)=angulo_fase(ibran)*pi/180; size_bran(ibran)=size_bran(ibran)*(cos(angulo_fase(ibran))+sin(... ...angulo_fase(ibran))*complex); end if type_bran(ibran)==5 angulo_fase(ibran)=angulo_fase(ibran)*pi/180; size_bran(ibran)=size_bran(ibran)*(cos(angulo_fase(ibran))+sin(... ...angulo_fase(ibran))*complex); end end num_volt=0;W=0;for ibran=1:num_bran if type_bran(ibran)==5 num_volt=num_volt+1; W(num_volt)=ibran; endend A=zeros(num_node+num_volt,num_node+num_volt);b=zeros(num_node+num_volt,1); for ibran=1:num_bran if (type_bran(ibran)==1||type_bran(ibran)==2||type_bran(ibran)==3) ni=ni_bran(ibran); nf=nf_bran(ibran); if (ni_bran(ibran)~=0 && nf_bran(ibran)~=0) A(ni,ni)=A(ni,ni)+(1/size_bran(ibran)); A(nf,nf)=A(nf,nf)+(1/size_bran(ibran)); A(ni,nf)=A(ni,nf)-(1/size_bran(ibran)); A(nf,ni)=A(nf,ni)-(1/size_bran(ibran)); end if ni_bran(ibran)==0 A(nf,nf)=A(nf,nf)+(1/size_bran(ibran)); end if nf_bran(ibran)==0 A(ni,ni)=A(ni,ni)+(1/size_bran(ibran));

Page 23: Análise em Regime Permanente Senoidal

25

end end if type_bran(ibran)==4 ni=ni_bran(ibran); nf=nf_bran(ibran); if (ni_bran(ibran)~=0 && nf_bran(ibran)~=0) b(ni)=b(ni)-size_bran(ibran); b(nf)=b(nf)+size_bran(ibran); end if ni_bran(ibran)==0 b(nf)=b(nf)+size_bran(ibran); end if nf_bran(ibran)==0 b(ni)=b(ni)-size_bran(ibran); end end end %NOVA IMPLEMENTAÇÃO for i=1:num_volt j=W(i); ni=ni_bran(j); nf=nf_bran(j); p=num_node+i; if (ni~=0 && nf~=0) A(ni,p)=1; A(nf,p)=-1; A(p,ni)=1; A(p,nf)=-1; b(p)=size_bran(j); end if ni==0 A(nf,p)=-1; A(p,nf)=-1; b(p)=size_bran(j); end if nf==0 A(ni,p)=1; A(p,ni)=1; b(p)=size_bran(j); endend

SALVA_MATNODAL.M function [] = salva_Matnodal(num_node,num_volt,A)%Abrir ou criar novos arquivos para a escrita. %Acrescenta dados ao final do arquivo.

Page 24: Análise em Regime Permanente Senoidal

26

fid=fopen('output.dat','a'); %SALVA MATRIZ CONDUTÂNCIA NODALfprintf(fid,'\r\nMATRIZ "A" DOS COEFICIENTES\r\n\r\n'); for ibran=1:(num_node+num_volt) fprintf(fid,'|'); for jbran=1:(num_node+num_volt) fprintf(fid,'%10.4f +%10.4fi',real(A(ibran,jbran)),imag(A(ibran,jbran))); end fprintf(fid,' |\r\n');end

SALVA_VETOR_INDP.M function [] = salva_vetor_indp(num_node,num_volt,fid,b)%SALVA VETOR DE TERMOS INDEPENDENTESfprintf(fid,'\r\nVETOR DE TERMOS INDEPENDENTES\r\n\r\n'); for ibran=1:(num_node+num_volt) fprintf(fid,'|'); fprintf(fid, '%10.4f +%10.4fi',real(b(ibran)),imag(b(ibran))); fprintf(fid,' |\r\n');end

VETOR_SOLUCAO.M

function [S] = vetor_solucao(fid,A,b,num_node,num_volt)fprintf(fid,'\r\nVETOR SOLUÇÃO\r\n\r\n');%Mínimos QuadradosS=lsqlin(A,b); fprintf(fid,'-----X------------X--------------\r\n');fprintf(fid,' NF DIMENSÃO FASE\r\n');fprintf(fid,'-----X------------X--------------\r\n');for ibran=1:(num_node+num_volt)% fprintf(fid, '|%10.4f|\r\n',S(ibran));ang_fase_solucao=(180/pi)*angle(S(ibran));fprintf(fid,'%4d %10.4f %10.4f\r\n',ibran,abs(S(ibran)),ang_fase_solucao);end