Está en la página 1de 6

29/08/19 08:16 AM D:\Proyecto sietmas\Punto1.

m 1 of 6

clear all
clc
%% Newton Raphson Analisis de flujo de cargas sistema Diseñado de 20 barras

%&%%&%%&%%&% Primer Punto %&%%&%%&%%&%

%% Y Barra
% |De Barra |A la Barra| R pu | X pu | B/2 pu |X' tap pu |
% |De la Barra |A la Barra| R pu | X pu | B/2 pu
clear all
clc
Lineas =[1 2 0.00969 0.029585 0.0528;
1 5 0.05403 0.22304 0.0246;
2 3 0.04699 0.19797 0.0219;
2 4 0.05811 0.17632 0.0187;
2 5 0.05695 0.17388 0.0170;
3 4 0.06701 0.17103 0.0173;
4 5 0.01335 0.04211 0.0064;
6 10 0.17703 0.39097 0
6 11 0.12291 0.25581 0;
6 12 0.06615 0.13027 0;
7 8 0 0.17615 0;
7 9 0 0.11001 0;
9 10 0.03181 0.08450 0;
9 13 0.12711 0.27038 0;
11 12 0.22092 0.19988 0;
12 13 0.17093 0.34802 0;];
% BarraI BarraF Xtap t
Ttap = [4 7 0.20912 0.9780;
4 9 0.55618 0.969;
5 6 0.25202 0.9320;];

Ib= Lineas(:,1);
Fb= Lineas(:,2);
r = Lineas(:,3);
x = Lineas(:,4);
b = Lineas(:,5);
z = r + i*x;
y = 1./z;
b = i*b;
nbl = max(max(Ib),max(Fb));
nbt = max(max(Ttap(:,1)),max(Ttap(:,2)));
nb = max(nbl,nbt);
nl = length(Ib);
Y = zeros(nb,nb);

for paso = 1:nl


Y(Ib(paso),Fb(paso)) = Y(Ib(paso),Fb(paso)) - y(paso);
Y(Fb(paso),Ib(paso)) = Y(Ib(paso),Fb(paso));
end
% CICLO DE BARRAS
for m = 1:nb
for n = 1:nl
if Ib(n) == m
Y(m,m) = Y(m,m) + y(n) + b(n);
elseif Fb(n) == m
Y(m,m) = Y(m,m) + y(n) + b(n);
end
end
end
%tap 1
tI = Ttap(1,1);
tF = Ttap(1,2);
ztap = 1i.*Ttap(1,3);
ytap = 1/ztap;
tap = Ttap(1,4);
Y(tI,tI) = Y(tI,tI) + ytap;
Y(tI,tF) = Y(tI,tF) - tap*ytap;
Y(tF,tI) = Y(tF,tI) - tap*ytap;
Y(tF,tF) = Y(tF,tF) + tap.^2*ytap;
%tap 2
tI = Ttap(2,1);
tF = Ttap(2,2);
ztap2 = 1i.*Ttap(2,3);
ytap2 = 1/ztap2;
tap2 = Ttap(2,4);
Y(tI,tI) = Y(tI,tI) + ytap2;
Y(tI,tF) = Y(tI,tF) - tap2*ytap2;
Y(tF,tI) = Y(tF,tI) - tap2*ytap2;
Y(tF,tF) = Y(tF,tF) + tap2.^2*ytap2;
%tap 3
tI = Ttap(3,1);
29/08/19 08:16 AM D:\Proyecto sietmas\Punto1.m 2 of 6

tF = Ttap(3,2);
ztap3 = 1i.*Ttap(3,3);
ytap3 = 1/ztap3;
tap3 = Ttap(3,4);
Y(tI,tI) = Y(tI,tI) + ytap3;
Y(tI,tF) = Y(tI,tF) - tap3*ytap3;
Y(tF,tI) = Y(tF,tI) - tap3*ytap3;
Y(tF,tF) = Y(tF,tF) + tap3.^2*ytap3;
% Matrix Zbarra
% Z=inv(Y);
%% Datos de las barras
% Tipo de Barra
% 1 - Slack
% 2 - PV
% 3 - PQ
% tipo | Barra | Pg[MW] | Qg[MVAr] | Pc[MW] | Qc[MVAr] | V pu | Delta | Qmin | Qmax |
Datos=[1 1 0 0 0 0 1.05 0 0 0;
2 2 40 0 30.38 17.78 1.045 0 -40 50;
3 2 0 0 131.88 26.6 1.01 0 0 40;
4 3 0 0 66.92 10 1 0 0 0;
5 3 0 0 10.64 2.24 1 0 0 0;
6 2 0 0 15.68 10.5 1.05 0 -6 24;
7 3 0 0 0 0 1 0 0 0;
8 2 0 0 0 0 1.05 0 -6 24;
9 3 0 0 41.3 23.24 1 0 0 0 ;
10 3 0 0 12.6 8.12 1 0 0 0;
11 3 0 0 8.54 2.24 1 0 0 0;
12 3 0 0 18.9 8.12 1 0 0 0;
13 3 0 0 20.86 7 1 0 0 0;];
%% Datos del sistema en pu Sistema en por uniddad
% Base sistema [MVA]
Ba = 100;
% Tipo de Barra
type = Datos(:,2);
% Numero de Barra
bus = Datos(:,1);
% Pg pu
Pg = Datos(:,3)/Ba;
% Qg pu
Qg = Datos(:,4)/Ba;
% Pc pu
Pc = Datos(:,5)/Ba;
% Qc pu
Qc = Datos(:,6)/Ba;
% Voltaje especificado en las barras
V = Datos(:,7);
% Angulo delta de las barras
del = Datos(:,8);
% Limite minimo de reactiva
Qmin = Datos(:,9)/Ba;
% Limite maximo de reactiva
Qmax = Datos(:,10)/Ba;
%% Sistemas de Ecuaciones
% Pi = Pgi - Pci
P = Pg - Pc;
% Qi = QGi - Qci
Q = Qg - Qc;
% P especificada
Psp = P;
% Q especificada
Qsp = Q;
% Matrx de conductacias
G = real(Y);
% Matrix de Suceptancias
B = imag(Y);
%% Identificacion de tipo de barras
% PV ----------------------(Tomando como pv la barra Slack)
pv = find(type == 2 | type == 1);
% PQ ---(Tomando como PQ la barra PQV, para un valor determinado del tap t)
pq = find(type == 3);
% Numero de barras PV
npv = length(pv);
% Numeros de barras PQ
npq = length(pq);
%% Jacobiano Metodo Newton Raphson
nbus =nb;
Tol = 100;
Iter = 0;
%while (Tol > 0.1*10e-3) % Valor de toleracia
while (Tol >=0.00001) % Valor de toleracia
% disp('Numero de iteraciones')
% disp(Iter)
P = zeros(nbus,1);
29/08/19 08:16 AM D:\Proyecto sietmas\Punto1.m 3 of 6

Q = zeros(nbus,1);
% calculo de P y Q
for i = 1:nbus
for k = 1:nbus
P(i) = P(i) + V(i)*abs(Y(i,k))*V(k)*cos(del(i)-del(k)-angle(Y(i,k)));
Q(i) = Q(i) + V(i)*abs(Y(i,k))*V(k)*sin(del(i)-del(k)-angle(Y(i,k)));
end
end
% Verificndo los limites de Reactiva
% if Iter <= 7 && Iter > 2 % Mirando unicamente siete iteraciones
% for n = 2:nbus
% if type(n) == 2
% QG = Q(n)+Qc(n);
% if QG < Qmin(n)
% V(n) = V(n) + 0.01;
% elseif QG > Qmax(n)
% V(n) = V(n) - 0.01;
% end
% end
% end
% end
% Calculo de la correcion de las variables
dPa = Psp-P;
dQa = Qsp-Q;
k = 1;
dQ = zeros(npq,1);
for i = 1:nbus
if type(i) == 3
dQ(k,1) = dQa(i);
k = k+1;
end
end
dP = dPa(2:nbus);
A = [dP; dQ]; % Vector de Errores
% Jacobiano
% H - Derivadas de las potecias inyectadas al sistema variables - angulos
H = zeros(nbus-1,nbus-1);
for i = 1:(nbus-1)
m = i+1;
for k = 1:(nbus-1)
n = k+1;
if n == m
for n = 1:nbus
H(i,k) = H(i,k) - (V(m)*abs(Y(m,n))*V(n)*sin(del(m)-del(n)-angle(Y(m,n))));
end
H(i,k) = H(i,k) - V(m)^2*B(m,m);
else
H(i,k) = V(m)*abs(Y(m,n))*V(n)*sin(del(m)-del(n)-angle(Y(m,n)));
end
end
end
% disp('H')
% disp(H)
% N - Derivada de las potecias inyectadas al sistema con tensiones
N = zeros(nbus-1,npq);
for i = 1:(nbus-1)
m = i+1;
for k = 1:npq
n = pq(k);
if n == m
for n = 1:nbus
N(i,k) = N(i,k) + V(m)*abs(Y(m,n))*V(n)*cos(del(m)-del(n)-angle(Y(m,n)));
end
N(i,k) = N(i,k) + V(m)^2*G(m,m);
else
N(i,k) = V(m)*abs(Y(m,n))*V(n)*cos(del(m)-del(n)-angle(Y(m,n)));
end
end
end
% disp('N')
% disp(N)
% J - Derivadas de las potecias reactivas inyectadas al sistema variables - angulos
M = zeros(npq,nbus-1);
for i = 1:npq
m = pq(i);
for k = 1:(nbus-1)
n = k+1;
if n == m
for n = 1:nbus
M(i,k) = M(i,k) + V(m)*abs(Y(m,n))*V(n)*cos(del(m)-del(n)-angle(Y(m,n)));
end
M(i,k) = M(i,k) - V(m)^2*G(m,m);
else
29/08/19 08:16 AM D:\Proyecto sietmas\Punto1.m 4 of 6

M(i,k) = -(V(m)*abs(Y(m,n))*V(n)*cos(del(m)-del(n)-angle(Y(m,n))));
end
end
end
% disp('J')
% disp(J)
% L - Derivadas de las potecias reactivas inyectadas al sistema variables - tensiones
L = zeros(npq,npq);
for i = 1:npq
m = pq(i);
for k = 1:npq
n = pq(k);
if n == m
for n = 1:nbus
L(i,k) = L(i,k) + V(m)*abs(Y(m,n))*V(n)*sin(del(m)-del(n)-angle(Y(m,n)));
end
L(i,k) = L(i,k) - V(m)^2*B(m,m);
else
L(i,k) = V(m)*abs(Y(m,n))*V(n)*sin(del(m)-del(n)-angle(Y(m,n)));
end
end
end
% disp('L')
% disp(L)
% Matrix JACOBIANO
JAC = [H N; M L];
% Vector de Correccion
X = inv(JAC)*A;
% Correcion de las variables de estado
dTh = X(1:nbus-1);
dV = X(nbus:end);

del(2:nbus) = dTh + del(2:nbus); % Angulo en las tensiones de las barras


k = 1;
for i = 2:nbus
if type(i) == 3
V(i) = dV(k) + V(i); % magnitud de las tensiones de barra
k = k+1;
end
end

% disp('Vector de Errores en pu')


% disp(M)
Iter = Iter + 1;
Tol = max(abs(A)); % evaluacion de la toleracia

end
disp('Numero de iteraciones')
disp(Iter)
Del = 180/pi*del;
%% Tensiones y angulo de tensiones en las barras
disp(' Newton Raphson Analisis de flujos de carga');
disp(' # Barra | V pu | Angulo en Grados ');
for m = 1:nb
disp('_________');
fprintf('%3g', m); fprintf(' %8.4f', V(m)); fprintf(' %8.4f', Del(m));
fprintf('\n');
end
disp('_________')
%%
% Funcion de conversion de polar a rectangular
Vm=V.*cos(del) + j*V.*sin(del);
% Corrientes inyectadas a las barras
I1 = Y*Vm;
Im = abs(I1);
Ia = angle(I1)*180/pi;
%% Corrientes Inyectadas a las BARRAS
disp(' Corrientes Inyectadas a las BARRAS');
disp(' # Barra | I pu | Angulo en Grados ');
for m = 1:nb
if Ia(m) >= 90
Ia(m) = Ia(m)-180;
elseif Ia(m) <= -90
Ia(m) = Ia(m)+180;
else
Ia(m)=Ia(m);
end
disp('_________');
fprintf('%3g', m); fprintf(' %8.4f', Im(m)); fprintf(' %8.4f', Ia(m));
fprintf('\n');
end
disp('_________');
29/08/19 08:16 AM D:\Proyecto sietmas\Punto1.m 5 of 6

%% Flujos en las barras y en las lineas


% Matrices iniciales
Iij = zeros(nb,nb);
Sij = zeros(nb,nb);
Si = zeros(nb,1);
% Flujos de corrientes por las lineas
disp('FLUJO DE CORRIENTES POR LAS LINEAS')
disp(' # Barras | IL pu | Angulo en Grados ');
for m = 1:nl
p = Ib(m); q = Fb(m);
Iij(p,q) =-(Vm(p) - Vm(q))*Y(p,q); % Y(m,n) = -y(m,n)=1/Z %
Iij(q,p) = -Iij(p,q);
Iijm = abs(-(Vm(p) - Vm(q))*Y(p,q));
Iija = angle(-(Vm(p) - Vm(q))*Y(p,q))*180/pi;

if Iija >= 90
Iija = Iija-180;
elseif Iija <= -90
Iija = Iija+180;
else
Iija=Iija;
end
IijL= [Iijm,Iija];
disp('___________');
fprintf('%3g', p,q); fprintf(' %8.4f', IijL);
fprintf('\n');

end
disp('_________');
%% Flujo de potencias en las lineas
for m = 1:nb
for n = 1:nb
if m ~= n
Sij(m,n) = Vm(m)*conj(Iij(m,n))*Ba;
end
end
end
Sij = sparse(Sij);
disp('-----Flujo de potencias por las Lineas--------')
Pij = real(Sij);
disp('Flujo de Potencia Activa por las lineas')
disp('| # Barras | Potencia Activa |');
disp(Pij);
disp('Flujo de Potencia Reactiva por las lineas')
Qij = imag(Sij);
disp('| # Barras | Potencia Reactiva |');
disp(Qij)
%Perdidas en las lineas
Lij = zeros(nl,1);
disp('Perdidas de Potencias en las lineas Activa - Reactiva')
disp('| # Barras | PpL | PqL |');
for m = 1:nl
p = Ib(m); q = Fb(m);
Lij(m) = Sij(p,q) + Sij(q,p);
Lpij =real(Lij); Lqij =imag(Lij);
disp('___________');
fprintf(' %3g', p , q); fprintf(' %8.4f', Lpij(m)); fprintf(' %8.4f', Lqij(m));
fprintf('\n');
end
disp('___________');
%potencia inyectada en las barras
disp('POTENCIA INYECTADAS EN LAS BARRAS Y GENERADAS EN LAS BARRAS')
disp(' | # Barra | Pinyectada | Qinyectada | Pgenerada | Qgenerada |');
for i = 1:nb
for k = 1:nb
Si(i) = Si(i) + conj(Vm(i))* Vm(k)*Y(i,k);
end
Pi = real(Si)*Ba;
Qi = -imag(Si)*Ba;
Pg = Pi+Pc*Ba;
Qg = Qi+Qc*Ba;

disp('_______________________');
fprintf(' %3g', i); fprintf(' %8.4f', Pi(i)); fprintf(' %8.4f', Qi(i));fprintf(' %8.4f', Pg(i)) ;fprintf
(' %8.4f', Qg(i));
fprintf('\n');

disp('_______________________');

end
disp(' ');
disp(' ');
disp(' ');
29/08/19 08:16 AM D:\Proyecto sietmas\Punto1.m 6 of 6

disp(' ');
disp(' ');
disp(' ');
disp(' ');
disp(' ');
disp(' ');
disp(' ');
disp(' ');
disp(' ');
disp(' ');
disp(' ');
disp(' ');
P_TOTAL_GENERADA = sum(Pg)
disp(' ');
Q_TOTAL_GENERADA = sum(Qg)
disp(' ');
FP = cos(atan(Q_TOTAL_GENERADA/P_TOTAL_GENERADA))
PERDIDAS_POTENCIA_ACTIVA_LINEAS = sum(Lpij)
disp(' ');
PERDIDAS_POTENCIA_REACTIVA_LINEAS = sum(Lqij)

También podría gustarte