Você está na página 1de 3

clear all

clc

Barra_No = [1 2 3];
Barra_ini = [1 1 2];
Barra_fin = [2 3 3];
R = [0.1 0.2 0.1];
X = [1 2 1];
Ysh = [0.01 0.02 0.01];
nb=length(Barra_No); %N�mero de Barras do sistema
nl=length(Barra_ini); %N�mero de linhas do sistema
G=zeros(nb,nb);
B=zeros(nb,nb);
tol = 1e-4;

for a = 1:nb % a e b percorrem o vetor numero de barras


for b = 1:nb
if a==b
for d = 1:nl
if Barra_No(a) == Barra_ini(d)
G(a,a) = G(a,a) + (R(d)/(R(d)^2+X(d)^2));
B(a,a) = B(a,a) - X(d)/(R(d)^2+X(d)^2) + Ysh(d);
elseif Barra_No(a) == Barra_fin(d)
G(a,a) = G(a,a) + (R(d)/(R(d)^2+X(d)^2));
B(a,a) = B(a,a) - X(d)/(R(d)^2+X(d)^2) + Ysh(d);
end
end
elseif a < b
for c = 1:nl
if Barra_No(a) == Barra_ini(c) && Barra_No(b) == Barra_fin(c)
G(a,b) = (-R(c)/(R(c)^2+X(c)^2));
B(a,b) = X(c)/(R(c)^2+X(c)^2);
G(b,a) = G(a,b);
B(b,a) = B(a,b);
elseif Barra_No(b) == Barra_ini(c) && Barra_No(a) == Barra_fin(c)
G(a,b) = (-R(c)/(R(c)^2+X(c)^2));
B(a,b) = X(c)/(R(c)^2+X(c)^2);
G(b,a) = G(a,b);
B(b,a) = B(a,b);
end
end
end
end
end

Yn=Y;
L=zeros(size(Y,1),size(Y,1));
U=zeros(size(Y,1),size(Y,1));

for a = 1:size(Y,1)
for b = a:size(Y,1)%neste processo ele preenche a matriz L e U
L(b,a) = Yn(b,a);
U(a,b) = Yn(a,b)/Yn(a,a);
end
%Neste processo ele ira preencher a Matriz Yn
for b = a:size(Y,1)%ele preenche primeiro as colunas e depois vai mudando as
linhas
if b == a
Yn(b,:) = Yn(b,:) / Yn(b,b);%preenche matriz diagonal
else
Yn(b,:) = Yn(b,:) + Yn(a,:) * (-Yn(b,a));%preenche quando linha
diferente da coluna
end
end
end

for c = 1:size(L,1)
col = zeros(size(Y,1),1); %variavel col de zeros, quantidade de linha = Y e 1
coluna.
%col = size(Y,1);
col(c) = 1; %posi��o 1 da coluna
x(:,c) = linsolve(L,col); %calcula inversa
end

for d = 1:size(Y,1) %Y,1 numero de linhas da matriz


%col = zeros(size(Y,1),1);
col = x(:,d);
z(:,d) = linsolve(U,col); %calcula inversa
end

Você também pode gostar