Você está na página 1de 23

3

Universidade Federal do Maranho


Centro de Cincias Exatas e Tecnologia
Departamento de Engenharia Eltrica
Laboratrio de Circuitos Eltricos
Professor: Anselmo Barbosa










7 Experimento
ANLISE EM REGIME PERMANENTE SENOIDAL DE CIRCUITOS
ELTRICOS VIA MTODO FASORIAL USANDO O MATLAB














So Lus - MA
Junho de 2012
4

Universidade Federal do Maranho
Centro de Cincias Exatas e Tecnologia
Departamento de Engenharia Eltrica
Laboratrio de Circuitos Eltricos
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
Fbio Jlio Silva de Sousa EE09133-81
Joabe Pereira EE8124-76




Experimento apresentado
com o objetivo de obteno
parcial da 6 nota na
disciplina Lab. Circuitos
Eltricos, no curso de
Engenharia Eltrica, na
Universidade Federal do
Maranho.

Prof. Anselmo Barbosa


So Lus - MA
Julho de 2012
5


1. Introduo Terica
1.1 Anlise de Regime Permanente Senoidal
1.1.1 Nmeros Complexos
Um nmero complexo pode ser expresso na forma retangular:

ou polar

Onde || o mdulo de A e o ngulo de fase .
Algumas operaes importantes com nmeros complexos:

1.1.2 Fasores e Equaes Diferenciais Ordinrias
1.1.2.1 Representao de uma senide por um fasor
Uma funo do tempo definida como possui amplitude

,
frequncia angular e fase . A soma algbrica desta funo com outras de
mesma freqncia, ou suas derivadas, resultar em uma nova funo de
mesma freqncia angular. Assim, de se esperar que, uma vez determinada
a freqncia da funo, ela possa ser tratada algebricamente em funo da sua
amplitude e fase. Isto significa que, uma vez determinado , funo
6

pode ser representada por um nmero complexo
(observar que

|| ). Da mesma maneira, a partir deste nmero complexo


e da freqncia angular , possvel reconstruir a funo original.
1.1.3 Anlise de regime permanente senoidal
Para regime permanente senoidal, analisado por fasores, valem as
mesmas regras de anlise utilizadas circuitos resistivos, pois as leis de
Kirchhoff continuam sendo aplicadas.
Assim sendo so vlidas as mesmas consideraes sobre linearidade e
invarincia com o tempo, o que inclui os teoremas de superposio, Thvenin e
Norton bem como associaes de componentes e simplificaes e, obviamente,
os mtodos de anlise por correntes de malha e tenses de n.
1.1.4 Superposio em regime permanente
Para os casos de circuitos excitados com fontes senoidais, sejam elas
de freqncias iguais ou diferentes, podemos utilizar o princpio da
superposio para obter a resposta da varivel de rede desejada. A justificativa
aqui igual a estudada anteriormente porm se as senides possurem
freqncias diferentes no podemos somar diretamente os fasores, pois a
soma de duas ou mais senides de freqncias distintas no uma senide.
1.1.5 Impedncia e Admitncia
Em regime permanente,
e ento podemos reescrever as
relaes entre corrente e tenso para o resistor, o capacitor e o indutor.
Para o resistor v=Ri
Substituindo os fasores na equao acima temos

A relao tambm indica que, como R um nmero real, o ngulo de fase
entre a tenso e a corrente nula.
Para o capacitor i=C


Substituindo os fasores na equao acima temos

7

Observe que as relaes se tornaram semelhantes s relaes do
resistor. O conceito generalizado de resistncia no plano complexo chamado
de impedncia e o anlogo da condutncia chamado de admitncia. A parte
imaginria de uma impedncia se chama reatncia e a parte imaginria de uma
admitncia se chama susceptncia. Sendo assim, em regime permanente
senoidal o capacitor tem um comportamento de reatncia capacitiva
normalmente representado por

.
Observe que a reatncia do capacitor um nmero complexo ento os
fasores de tenso e corrente no tero o mesmo ngulo, ou seja, no estaro
em fase. Observe tambm que a corrente sempre estar adiantada em relao
a tenso de um ngulo de 90.
Para o indutor v=L


Substituindo os fasores na equao acima temos

Observe novamente que a relao de regime permanente senoidal entre
a corrente e a tenso no indutor tambm so semelhantes s encontradas no
resistor. Assim o indutor tambm apresenta uma reatncia indutiva
normalmente representada por

. Observe tambm que a reatncia indutiva


tambm um nmero complexo e a fase entre tenso e corrente ser de 90,
porm neste caso a corrente no indutor est atrasada com relao a tenso.
2. Descrio das Implementaes
2.1 Algoritmo conceitual: Funo build_nodal_ext
i) Ler os dados de entrada passados pela funo nodal.m.
ii) Definir o vetor w com dimenso

, onde

o nmero de fontes de
tenso;
ii) Aloca memria para a matriz A e para o vetor b, onde A possui dimenso
(

e b tem dimenso (

1.
iii) Repete os passos (iv)-(vii) para j = 1,..., Nb; onde Nb o nmero de ramos
iv) Se o ramo j do tipo 1 (resistor) ento
Se o n inicial (k) e o final (l) do ramo j no so de referncia ento

onde

a resistncia do ramo j;


Se no se o n inicial (k) de referncia ento


Se no se o n final (l) de referncia ento


v) Se o ramo j do tipo 2 (Capacitor) ento
Se o n inicial (k) e final (l) do ramo j no so de referncia ento

onde

a impedncia do ramo j;


Se no se o n inicial (k) de referncia ento


Se no se o n final (l) de referncia ento



vi) Se o ramo j do tipo 3 (Indutor) ento
Se o n inicial (k) e final (l) do ramo j no so de referncia ento

onde

a impedncia do ramo j;


Se no se o n inicial (k) de referncia ento


Se no se o n final (l) de referncia ento


9


vii) Se o ramo j do tipo 4 (fonte de corrente) ento
Se o n inicial (k) e final (l) do ramo j no so de referncia ento

/; onde

/ valor fasorial da fonte de corrente associada


com o ramo j.

/;
Se no se o n inicial (k) de referncia ento

/;
Se no se o n final (l) de referncia ento

/;

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


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


x) Identificam-se os ns inicial (k) e final (l) associados com o ramo j;
xi) Defini-se o ndice usado para acessar as parties

, isto ,
p


Se os ns k e l no so de referncia ento
(Defini-se elementos da partio

para a fonte i)

-1
(Defini-se elementos da partio

para a fonte i)

-1
(Defini-se elementos da partio

para a fonte i)

/, onde

/ a tenso especificada para a fonte i


10


Se o n k o de referncia ento
(Defini-se elementos da partio

para a fonte i)

-1
(Defini-se elementos da partio

para a fonte i)

-1
(Defini-se elementos da partio

para a fonte i)

/, onde

/ a tenso especificada para a fonte i



Se o n l o de referncia ento
(Defini-se elementos da partio

para a fonte i)

1
(Defini-se elementos da partio

para a fonte i)

1
(Defini-se elementos da partio

para a fonte i)

/, onde

/ a tenso especificada para a fonte i



3. Questes
1) Calcule manualmente os fasores associados com as tenses nodais no
circuito da Figura 1.

Figura 9.



11


Sugesto:
Utilize o MATLAB para realizar operaes com nmeros complexos. Este
procedimento tem como objetivo familiarizar o estudante com operaes
envolvendo nmeros complexos no ambiente do MATLAB. Consequentemente,
a implementao do programa de anlise nodal fasorial ser mais rpida.

Resposta:

10 6
3
20
1
10
1000 100 10
1000 5 10 5
C
L
j
Z j
Z j j

= = O

= = O


ANLISE PARA O N 1




ANLISE PARA O N 2



SISTEMA DE EQUAES NA FORMA MATRICIAL

1
2
(0,1 0,1 ) 0,1 10
0,1 (0, 3 0, 2 ) 0
v j
v j
+ ( ( (
=
( ( (








1
2
58,8235 -64,7059j V
23,5294 - 5,8824j V
v
v
( (
=
( (


Ou
1
2
87, 4475 47, 7263
24, 2536 14, 0362
v V
v V
Z ( (
=
( (
Z



2) Calcule manualmente os fasores associados com as tenses nodais no
circuito da Figura 2.
Sugesto:
1
1
2
(0,1 0,1 ) 0,1 10
0,1 (0, 3 0, 2 ) 0
v j
v j

+ ( ( (
=
( ( (


12

Utilize o MATLAB para realizar operaes com nmeros complexos.

Figura 10.

Resposta:

20 6
30 6
1
10000
100 1 10
1
5000
100 2 10
C
C
j
Z j
j
Z j

= = O

= = O



ANLISE PARA O N 1



ANLISE PARA O N 2

2 3 2 2
10
0
10000 10000 10000
v v v v
i

+ + =


4 4 4 3 4
2 3
(2 10 1 10 ) 1 10 10 10 j v v

+ =

2 3
(2 ) 10 j v v + =



ANLISE PARA O N 3

3 2 3
0
10000 5000
v v v
j

+ =


4 4 4 4
2 3
1 10 (1 10 2 10 ) 0 10 v j v

+ + =
2 3
(1 2 ) 0 v j v + + =


SISTEMA DE EQUAES NA FORMA MATRICIAL

13

2
3
(2 1 ) 1 10
1 (1 2 ) 0
v j
v j
+ ( ( (
=
( ( (
+



1
2
3
(2 1 ) 1 10
1 (1 2 ) 0
v j
v j

+ ( ( (
=
( ( (
+



1
2
3
10, 0000
3,4615 - 2,6923j V
-0,3846 - 1,9231j V
v V
v
v
( (
( (
=
( (
( (




Ou

1
2
3
10, 0000 0, 0000
4, 3853 37, 8750
1, 9612 101, 3099
v V
v V
v V
Z ( (
( (
Z =
( (
( (
Z



3) Implementar um programa computacional, denominado nodal_fasor.m, para
estimar tenses nodais de circuitos eltricos operando em regime permanente
senoidal. Este programa deve ser escrito usando a linguagem de programao
do software MATLAB. A implementao do programa nodal_phasor.m deve ser
baseada na verso #2 do programa nodal.m, isto : verso que modela fontes
de corrente e de tenso na anlise nodal.
Adicionalmente, o programa deve permitir que o usurio especifique a
frequncia de operao do sistema em rad/seg.
Sugestes:
i) Utilize o comando input do MATLAB para obter a frequncia de operao
atravs do teclado.
ii) No necessrio incluir as funes de clculo de perdas e potncia
absorvida na verso fasorial do programa nodal.

Resposta:

O cdigo do programa em MATLAB mostrado no anexo I desse
relatrio.

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

Resposta:

TABELA I
COMPARAO ENTRE OS RESULTADOS DOS CLCULOS MANUAIS E
COMPUTACIONAIS.
14


Manualmente Computacionalmente
Erro
Absoluto
v
1
(V)
58,8235 -
64,7059j


58,8235 -
64,7059j


0
v
2
(V)
23,5294
5,8824j


23,5294
5,8824j


0


At a quarta casa decimal os valores computacionais e manuais so
idnticos.




TABELA II
ARQUIVO DE ENTRADA PARA O CIRCUITO DA FIGURA 9.

Antigo Novo
N
inicial
N
final
N
inicial
N
final
Tipo Dimenso
ngulo
de Fase
1 0 1 0 2 0,00010000 0,00000
1 2 1 2 1 10,0000000 0,00000
2 0 2 0 1 5,00000000 0,00000
2 0 2 0 3 0,00500000 0,00000
0 1 0 1 4 10,0000000 0,00000


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

Resposta:

TABELA III
COMPARAO ENTRE OS RESULTADOS DOS CLCULOS MANUAIS E
COMPUTACIONAIS.

Manualmente Computacionalmente
Erro
Absoluto
v
1
(V) 10,0000


10,0000


0
v
2
(V)
3,4615
2,6923j


3,4615
2,6923j


0
v
3
(V)
-0,3846
1,9231j


-0,3846
1,9231j


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


-0,0007
0,0003i


0
15


At a quarta casa decimal os valores computacionais e manuais so idnticos.

TABELA IV
ARQUIVO DE ENTRADA PARA O CIRCUITO DA FIGURA 10.

Antigo Novo
N
inicial
N
final
N
inicial
N
final
Tipo Dimenso
ngulo
de Fase
1 2 1 2 1 10000,0000 0,0000
2 0 2 0 2 0,00000100 0,0000
2 3 2 3 1 10000,0000 0,0000
3 0 3 0 2 0,00000200 0,0000
1 0 1 0 5 10,0000000 0,0000
6) Utilize o programa nodal_phasor para estimar as tenses 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).


Figura 11.
Resposta:
1
2
3
4
5
0,2781 - 0,0235j V
0,2791 -4,8213 V
0,0235 + 0,2781j V
0,2791 85,1787 V
0,2445 + 0,0176j V
0,2452 4,1060 V
0,1990 - 0,0198j V
0,2000 -5,6764
0,1094 + 0,0896j V
v
v
v
v
v
(
( Z
(
(
Z
(
(
(
( = =
Z
(
(
Z (
(
(
(


V
0,1414 39,3236 V
(
(
(
(
(
(
(
Z



TABELA V
ARQUIVO DE ENTRADA PARA O CIRCUITO DA FIGURA 11.








16


Antigo Novo
N
inicial
N
final
N
inicial
N
final
Tipo Dimenso
ngulo
de Fase
1 2 1 2 2 0,01000000 0,00000
1 3 1 3 1 15,0000000 0,00000
2 0 2 0 3 4,00000000 0,00000
2 0 2 0 1 20,0000000 0,00000
3 4 3 4 3 2,00000000 0,00000
3 4 3 4 2 0,00800000 0,00000
4 5 4 5 1 40,0000000 0,00000
5 0 5 0 3 8,00000000 0,00000
0 1 0 1 4 0,02000000 30,0000





7) Utilize o programa nodal_phasor para estimar as tenses 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 impedncia equivalente vista a partir
dos terminais da fonte de tenso. Demonstre que esta impedncia equivalente
igual quela obtida atravs de clculos manuais usando combinaes
srie/paralelo.

Figura 12.
Resposta:

17

1
2
3
4
5
6
7
01
16,9706 +16,9706j V
17,8173 - 9,2791j V
11,1473 +19,1335j V
17,6762 - 4,9042j V
6,7388 - 5,2570j V
2,4957 - 4,1595j V
6,5624 + 0,2117j V
-0,7287 + 0,0940j V
v
v
v
v
v
v
v
i
(
(
(
(
(
(
=
(
(
(
(
(
(

24,0000 45,0000 V
20,0888 -27,5101 V
22,1439 59,7746 V
18,3439 -15,5064 V
8,5468 -37,9580 V
4,8507 -59,0362 V
6,5658 1,8476 V
0,7347 172,6466 V
Z ( (
( (
Z
( (
( ( Z
( (
Z
( (
=
( (
Z
( (
Z
( (
( (
Z
( (
Z ( (




TABELA VI
ARQUIVO DE ENTRADA PARA O CIRCUITO DA FIGURA 11.

Antigo Novo
N
inicial
N
final
N
inicial
N
final
Tipo Dimenso
ngulo
de Fase
1 2 1 2 3 3,00000000 0,0000
1 4 1 3 1 20,0000000 0,0000
2 3 2 4 2 0,00500000 0,0000
3 5 4 5 1 25,0000000 0,0000
4 6 3 6 3 4,00000000 0,0000
5 7 5 7 2 0,00400000 0,0000
6 0 6 0 2 0,00200000 0,0000
6 0 6 0 1 20,0000000 0,0000
7 0 7 0 1 15,0000000 0,0000
1 0 1 0 5 24,0000000 45,0000

Para se calcular a impedncia equivalente vista a partir dos terminais da
fonte de tenso, o procedimento adotar foi substituir a fonte de tenso do
circuito no arquivo de entrada do programa nodal_phasor.m, por uma fonte de
corrente de 1cos(20t) A. Com essa modificao o programa realiza
automaticamente o clculo da impedncia, pois ao realizar a substituio o
circuito equivalente identificado pelo programa nodal_phasor.m ser como
ilustrado pela figura 13.


Figura 13: Ilustrao para a questo 7.
1cos(20t) A Z
TH
V
1

18



Dessa forma, o recurso que o programa nodal_phasor.m nos
disponibiliza calcular a tenso no n #1, que de forma indireta
numericamente igual a impedncia equivalente que desejamos, pois:



Assim o valor encontrado para

a partir do programa nodal_phasor.m


foi:


ou




CLCULO MANUAL DA IMPEDNCIA EQUIVALENTE




CLCULO DAS ASSOCIAES DE IMPEDNCIAS




19


Ou



TABELA VII
COMPARAO ENTRE OS RESULTADOS DOS CLCULOS MANUAIS E
COMPUTACIONAIS.

Manualmente Computacionalmente
Erro
Absoluto







0


At a quarta casa decimal os valores computacionais e manuais so
idnticos.
















20

3. REFERNCIAS BIBLIOGRFICAS

[1] Alexander, C. & Sadiku M. (2008) Fundamentos de Circuitos Eltricos. 3th
ed. So 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] Leo, R. P. S., (2009) Circuitos Bsicos 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.










21

ANEXO I SCRIPTS E FUNES DO MATLAB USADAS NESTA
IMPLEMENTAO.

- SCRIPTS

NODAL_PHASOR.M

%Remoo de Variveis e Funes da Memria
clear all;

%Limpa a janela de comandos
clc;

complex=i;
%Entra com o nome do arquivo de dados
name_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_fil
e,... ...'%d %d %d %f %f');
num_bran=length(ni_bran);

ni_antigo=ni_bran;
nf_antigo=nf_bran;

freq_oper=input('Digite a frequncia de operao do sistema: ');

%Definio de uma numerao seqencial para os nmeros dos ns
nex_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
end
end

%Impresso dos dados de ramos (com numerao seqencial dos ns)
num_res=length(find(type_bran==1));
num_src=length(find(type_bran==2));
22


%Abre o arquivo de saida. Descartar o contedo existente, se
houver.

fid=fopen('output.dat','w');

fprintf(fid,'Nmero de ns: %d\r\n',num_node);
fprintf(fid,'Nmero de ramos: %d\r\n',num_bran);
fprintf(fid,'Nmero de Resistores: %d\r\n',num_res);
fprintf(fid,'Nmero 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 DIMENSO ...
...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. Tenso ';
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_br
an(... ...ibran),angulo_fase(ibran));
end

%Fecha o arquivo de sada
fclose(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);

23

% Fecha o arquivo de sada
fclose(fid);


- FUNES

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 IMPLEMENTAO
for 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;
end
end

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
24

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));
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 IMPLEMENTAO

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);
end
end




25

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.

fid=fopen('output.dat','a');

%SALVA MATRIZ CONDUTNCIA NODAL
fprintf(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 INDEPENDENTES
fprintf(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 SOLUO\r\n\r\n');
%Mnimos Quadrados
S=lsqlin(A,b);

fprintf(fid,'-----X------------X--------------\r\n');
fprintf(fid,' NF DIMENSO 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

Você também pode gostar