Anda di halaman 1dari 4

Contents

Flujos de CD
Ybus
Datos del sistema
Conteo de variables
Inicio de NR
Cálculo de P
Sub­matriz H
Solucion de voltajes
Actualización de los voltajes
Cálculo del error
Presentación de resultados

Flujos de CD

clear  all
clc

Ybus
Se introducen los datos de las líneas  | From | To | R | X | B/2 | X' | | Bus | Bus | pu | pu | pu | TAP (a) |

line =  [1      2       0       0.05917         0       1
         1      5       0       0.22304         0       1
         2      3       0       0.19797         0       1
         2      4       0       0.17632         0       1
         2      5       0       0.17388         0       1
         3      4       0       0.17103         0       1
         4      5       0       0.04211         0       1
         4      7       0       0.20912         0       1
         4      9       0       0.55618         0       1
         5      6       0       0.25202         0       1
         6     11       0       0.19890         0       1
         6     12       0       0.25581         0       1
         6     13       0       0.13027         0       1
         7      8       0       0.17615         0       1
         7      9       0       0.11001         0       1
         9     10       0       0.08450         0       1
         9     14       0       0.27038         0       1
         10    11       0       0.19207         0       1
         12    13       0       0.19988         0       1
         13    14       0       0.34802         0       1 ];
%Se determina entre que líneas se encuentra la impedancia
de=line(:,1);
para=line(:,2);
R=line(:,3);            %Resistencia de la líneas
X=line(:,4);            %Reactancia de la línea
B=1i*line(:,5);         %Admitancia
a=line(:,6);            %Tap
Z=R+i*X;                %Impedancia
y=1./Z;
n=max(max(de),max(para));
e=length(de);
Yp=zeros(e+n,e+n);
A=zeros(e+n,n);          %Se determina el tamaño de la matriz A

for  i=1:n
     for  j=1:n
         if(i==j)
            A(i,i)=1;  %Diagonal de la matriz A
         end
     end
end
%Se obtienen los elementos fuera de la diagonal en la matriz A
for  i=n+1:n+e
     for  j=1:n
         if(de(i‐n)~=0)
            A(i,de(i‐n))=1;
         end
         if(para(i‐n)~=0)
            A(i,para(i‐n))=‐1;
         end
     end
end
% Se crea la matriz de admitancias primitivas
for  i=1:e
    Yp(i+n,i+n)=y(i)/a(i);
    Yp(de(i),de(i))=Yp(de(i),de(i))+B(i)+(1‐a(i))*y(i)/(a(i)^2);
    Yp(para(i),para(i))=Yp(para(i),para(i))+B(i)+(a(i)‐1)*y(i)/a(i);
end

Y=A'*Yp*A; %Ybus
clear  i
clear  a
clear  n
clear  e

Datos del sistema
|  Tipo de |    V     |     P    |     Q     |
|    Bus   |    pu    |    pu    |    pu     |

B=        [0      1.06        0            0;
           1      1.045     18.3/100       0;
           1      1.01     ‐94.2/100       0;
           2        1      ‐47.8/100     3.9/100;
           2        1       ‐7.6/100    ‐1.6/100;
           1      1.07     ‐11.2/100        0;
           2        1          0            0;
           1      1.09         0            0;
           2        1      ‐29.5/100     ‐16.6/100;
           2        1      ‐9/100        ‐5.8/100;
           2        1      ‐3.5/100      ‐1.8/100;
           2        1      ‐6.1/100      ‐1.6/100;
           2        1      ‐13.5/100     ‐5.8/100;
           2        1      ‐14.9/100     ‐5/100];

n=size(B);
n=n(1,1);
d=0;
v=0;
w=0;
t=0.0001;  %Tolerancia

Conteo de variables

for  a=1:n
     if B(a,1)==2
        d=d+1;  %Número de incognitas en angulo
     end
     if B(a,1)==1
        d=d+1; %Número de incognitas en angulo
        w=w+1; %Número de buses de voltaje controlado
     end
end

total=d; %Número total de incognitas
z=total‐1; %Se le asigna un valor inicial a z solo para iniciar el ciclo
ni=0; %Número de iteraciones

Inicio de NR

while  z<total

    ni=ni+1;
    c=0;
    P=zeros(d,1); %Se crea la matriz de P

Cálculo de P

     for  a=1:n


         if B(a,1)==2 || B(a,1)==1
            c=c+1;
             for  b=1:n
                 if a==b
                    P(c,1)=P(c,1)+abs(B(a,2))*abs(B(b,2))*abs(Y(a,b))*cos(angle(Y(a,b)));
                 else
                    P(c,1)=P(c,1)+abs(B(a,2))*abs(B(b,2))*abs(Y(a,b))*cos(angle(Y(a,b))‐angle(B(a,2))+angle(B(b,2)));
                 end
             end
            P(c,1)=(B(a,3)‐P(c,1))/abs(B(a,2)); %Incremento de P
         end
     end

Sub­matriz H

    H=zeros(d,d); %Tamaño de H

    c=0;
    e=0;
     for  a=1:n
         if B(a,1)==2 || B(a,1)==1
            c=c+1;
             for  b=1:n
                 if B(b,1)==1 || B(b,1)==2
                    e=e+1;
                     if a==b
                        H(c,e)=‐abs(Y(a,a))*sin(angle(Y(a,a))); %Elementos de la diagonal
                     else
                        H(c,e)=‐abs(Y(a,b))*sin(angle(Y(a,b))); %Elementos fuera de la diagonal
                     end
                 end
             end
            e=0;
         end
     end

    c=0;
    e=0;

Solucion de voltajes

    Vn=inv(H)*P; %Cálculo de angulos

    b=0;

Actualización de los voltajes
     for  a=1:n
         if B(a,1)==1
            b=b+1;
            x=abs(B(a,2));
            y=angle(B(a,2))+Vn(b,1); %Aumento de angulos en buses de voltaje controlado
            B(a,2)=x*exp(1i*y);
         end
         if B(a,1)==2
            b=b+1;
            x=abs(B(a,2));
            y=angle(B(a,2))+Vn(b,1); %Aumento de angulos en buses de carga
            B(a,2)=x*exp(1i*y);
         end
     end

    z=0;

Cálculo del error

     for  a=1:total


         if abs(Vn(a,1))<t
            z=z+1;
         end
     end
    a=1;

end

Presentación de resultados

ni
        V=zeros(n,2);
%Se transforman los voltajes de rectangular a polar
         for  a=1:n
            V(a,1)=abs(B(a,2));
            V(a,2)=angle(B(a,2));
            V(a,2)=rad2deg(V(a,2));
         end
        V

ni =

     4

V =

    1.0600         0
    1.0450   ‐4.5638
    1.0100  ‐12.1988
    1.0000   ‐9.9311
    1.0000   ‐8.4746
    1.0700  ‐14.2962
    1.0000  ‐13.3324
    1.0900  ‐13.3324
    1.0000  ‐15.1209
    1.0000  ‐15.3945
    1.0000  ‐15.0258
    1.0000  ‐15.3381
    1.0000  ‐15.5106
    1.0000  ‐16.5905

Anda mungkin juga menyukai