Escolar Documentos
Profissional Documentos
Cultura Documentos
clc
if caso==2
Znova=Zb;
tam = size(Zbus,1);
Znova=[Zbus Zbus(:,k);
Zbus(k,:) Zb+Zbus(k,k)]
end
if caso==3
% Znova=Zb;
% Znova=[Zbus Zbus(:,k);
% Zbus(k,:) Zb+Zbus(k,k)];
% tam = size(Znova,1);
% for a = 1:tam
% for b = 1:tam
% Znova1(b,a) = (Znova(b,a) - ((Znova(b,k)*Znova(a,a))/
(Zb+Zbus(k,k))));
% end
% end
% Znova1(:,k)=[];
% Znova1(k,:)=[];
% Znova1
A = Zbus;
B = Zbus(:,k);
C = Zbus(k,:);
D = Zbus(k,k) + Zb;
Znova = A - ((B*C)/D)
end
if caso==4
%Znova=Zb;
%Znova=[Zbus Zbus(:,k)-Zbus(:,j);
%Zbus(k,:)-Zbus(j,:) Zb+Zbus(k,k)];
%tam = size(Znova,1);
%Znova(:,k)=[];
%Znova(k,:)=[];
%Znova1
Zth = Zbus(k,k) + Zbus(j,j) - (2*Zbus(k,j));
A = Zbus;
B = Zbus(:,k) - Zbus(:,j);
C = Zbus(k,:) - Zbus(j,:);
D = Zth +Zb;
Znova = A - ((B*C)/D)
end
%%%%%%%%%%%%%%%%%
clear all
clc
load STEE5b1.mat
nb=length(Barra_No);%Numero de barras do sistema
nl=length(Barra_ini);%Numero de linhas do sistemna
G=zeros(nb,nb); %tamanho da matriz
B=zeros(nb,nb); %tamanho da matriz
tol = 1e-3;
V = zeros(1,nb);
Th = zeros(1,nb);
P = zeros(1,nb);
Q = zeros(1,nb);
H = zeros(nb,nb);
N = zeros(nb,nb);
M = zeros(nb,nb);
L = zeros(nb,nb);
%Precisamos de dois subindices para criar as matrizes [G] e [B]
%este c�digo vai preencher as posi��es das matrizes
%vai preencher linha por linha
for a = 1:nb %linha
for b = 1:nb %coluna
if a == b %elementos da diagonal principal
for c=1:nl
if Barra_No(a) == Barra_ini(c)
G(a,a) = (R(c) / (R(c)^2 + X(c)^2)) + G(a,a);
B(a,a) = (-X(c) / (R(c)^2 + X(c)^2)) + B(a,a) + Ysh(c);
elseif Barra_No(a) == Barra_fin(c)
G(a,a) = (-R(c) / (R(c)^2 + X(c)^2)) + G(a,a);
B(a,a) = (X(c) / (R(c)^2 + X(c)^2)) + B(a,a) + Ysh(c);
end
end
elseif a < b %elementos diferentes da diagonal, preencher o triangulo
superior da matriz
for c=1:nl %barra ini
if Barra_ini(c) == Barra_No(a) & Barra_fin(c) == Barra_No (b)
G(a,b) = -R(c) / (R(c)^2 + X(c)^2);
G(b,a) = G(a,b);
B(a,b) = X(c) / (R(c)^2 + X(c)^2);
B(b,a) = B(a,b);
elseif Barra_ini(c) == Barra_No(b) & Barra_fin(c) == Barra_No (a)
G(a,b) = -R(c) / (R(c)^2 + X(c)^2);
G(b,a) = G(a,b);
B(a,b) = X(c) / (R(c)^2 + X(c)^2);
B(b,a) = B(a,b);
end
end
end
end
end
G
B
for a=1:nb
P(a)=0;
Q(a)=0;
for b=1:nb
P(a) = P(a) + V(a)*V(b)*(G(a,b)*cos(Th(a)-Th(b)) + B(a,b)*sin(Th(a)-
Th(b)));
Q(a) = Q(a) + V(a)*V(b)*(G(a,b)*sin(Th(a)-Th(b)) - B(a,b)*cos(Th(a)-
Th(b)));
end
end
DP = zeros(1,nb);
DQ = zeros(1,nb);
for a=1:nb
if TB(a) == 0
DP(a) = (PG_esp(a) - PD_esp(a)) - P(a);
DQ(a) = (QG_esp(a) - QD_esp(a)) - Q(a);
elseif TB(a) == 2
DP(a) = (PG_esp(a) - PD_esp(a)) - P(a);
end
end
%calculo do jacobiano
if max(abs([DP DQ]))<=tol %maximo valor absoluto
band=1;
else
for a=1:nb
for b=1:nb
if a==b
H(a,b) = -Q(a) - (V(a)^2*B(a,a));
N(a,b) = (P(a)+G(a,a)*V(a)^2)/V(a);
M(a,b) = -G(a,a)*V(a)^2 + P(a);
L(a,b) = (Q(a) - B(a,b)*V(a)^2)/V(a);
else
H(a,b) = V(a)*V(b)*(G(a,b)*sin(Th(a)-Th(b))-B(b,a)*cos(Th(a)-Th(b)));
N(a,b) = V(a)*(G(a,b)*cos(Th(a)-Th(b))+B(a,b)*sin(Th(a)-Th(b)));
M(a,b) = -V(a)*V(b)*(G(a,b)*cos(Th(a)-Th(b))+B(a,b)*sin(Th(a)-Th(b)));
L(a,b) = -V(a)*((G(a,b) * sin(Th(a)-Th(b))-(B(a,b)*cos(Th(a)-Th(b)))));
end
end
end
J = [H N; M L];
%colocar valores altos para a barra slack para retirar o efeito da barra
%sem ter que diminuir o tamanho da matriz. ex.: J(1,1) = 1*10^15, J(6,6)
%tbm
for a = 1:nb
if TB(a) == 1
J(a,a)=1e10;
J(a+nb,a+nb)=1e10;
elseif TB(a) ==2
J(a+nb,a+nb)=1e10;
end
end
%Dx = inv(J)*[DP':DQ'] %DQ' transposta
DP1(:,1) = DP(1,:);
DQ1(:,1) = DQ(1,:);
AS = [DP1;DQ1];
Dx = inv(J)*[AS]
for a =1:nb
Th(a) = Th(a) + Dx(a);
if TB(a) == 0
V(a) = V(a) + Dx(nb+a);
end
end
end
end
for a=1:nb
if TB(a) == 1
PG_esp(a)=0; %%Zerar para n�o acrescentar potencia na itera��o
QG_esp(a)=0;
for b=1:nb
PG_esp(a) = PG_esp(a) + V(a)*V(b)*(G(a,b)*cos(Th(a)-Th(b)) +
B(a,b)*sin(Th(a)-Th(b)));
QG_esp(a) = QG_esp(a) + V(a)*V(b)*(G(a,b)*sin(Th(a)-Th(b)) -
B(a,b)*cos(Th(a)-Th(b)));
end
PG_esp(a) = PG_esp(a) + PD_esp(a);
QG_esp(a) = QG_esp(a) + QD_esp(a);
elseif TB(a) == 2
QG_esp(a)=0;
for b=1:nb
QG_esp(a) = QG_esp(a) + V(a)*V(b)*(G(a,b)*sin(Th(a)-Th(b)) -
B(a,b)*cos(Th(a)-Th(b)));
end
QG_esp(a) = QG_esp(a) + QD_esp(a);
end
end