Documente Academic
Documente Profesional
Documente Cultură
Quito, Ecuador
luis.janeta@epn.edu.ec
reynaldo.angos@epn.edu.ec
Abstract—En el presente documento se mostrará el estudio de mismo o si las acciones a realizarse no son las correctas se
estabilidad transitoria aplicado en el SIN reducido a 53 barras y puede ocasionar un colapso parcial o incluso total del sistema.
20 generadores, por el método de Rugen Kutta, con el fin de Debido a que las consecuencia por perdida de estabilidad
determinar el comportamiento del sistema frente a una falla,
comportamiento de las variables de estado como voltaje, ángulos transitoria que se podría ocasionar es necesario conocer de
internos de los generadores, etc. Ya que Rugen Kutta me permite manera rápida y oportuna la respuestas de las máquinas ante
obtener un método de solución mucho más rápido evitando la distintas contingencias que se podrían presentar, con la ayuda
corrida de flujos de potencias innecesarios y solo se enfoca en la de análisis matemático que nos permite saber el
respuesta de las ecuaciones de oscilación de los generadores, que comportamiento del sistema dentro del lapso que dura la
me permite obtener un análisis en el tiempo. El estudio será
perturbación, modelos o análisis matemáticos que permitan la
realizado con la ayuda del software de Matlab, finalmente se
procederán analizar los resultados que se obtuvieron solución de ecuaciones diferencial como Rugen Kutta, Euler,
considerando el modelo matemático de dicho método. Método Paso a Paso, criterio de igualdad de áreas, etc.
D.Velocidad del generador comportamiento frente a fallas o algún evento que ocasione la
Inicialmente las maquinas tienen una velocidad inicial igual al salida temporal o permanente de un generador, porque así se
ser un sistema sincrónico, pero posterior a la falla cada puede prever lo que pueda pasar en el sistema y lo que la falla
generador sufre afectaciones dependiendo de la ubicación en o evento pueda ocasionar dentro del sistema, como variación
el SEP y de sus características constructivas, como la de ángulo, variación de voltaje que son las dos principales que
constante de inercia (H). si una de las dos varia, varia el flujo de potencia que por el
sistema existe cambiando las condiciones de su
funcionamiento, que en muchos de los casos el sistema no
puede soportar.
Considerando estos cambios que se puedan dar el análisis
de estabilidad puede darme una respuesta aproximada y así
poder solucionar el problema ya sea dimensionando o
coordinando protecciones, calibres de conductores,
dimensionamiento de líneas de transmisión, etc.
El método de Rugen Kutta permite obtener un método de
solución más rápido ya que es un método iterativo corto,
evitando así el cálculo de varios flujos de potencia.
BIBLIOGRAFIA
VII. CONCLUSIONES Y RECOMENDACIONES. [1] P. LEDESMA, Estabilidad Transitoria. Madrid, España, 2008.
[2] E. MORENO y V. HINOJOSA, “ANÁLISIS DE ESTABILIDAD
El tiempo de interés para el estudio de estabilidad, es de 3 a TRANSITORIA PARA EL SISTEMA ELÉCTRICO ECUATORIANO
5 segundos, existiendo la posibilidad de que la falla se UTILIZANDO REDES NEURONALES ARTIFICIALES”, Escuela
extienda hasta 10 segundos para sistemas muy grandes, sin Politecnica Nacional, Cenace, Quito, Ecuador
[3] A. Goméz, “HERRAMIENTA COMPUTACIONAL PARA EL
embargo, el análisis por el método de Rugen Kutta, es de
ÁNALISIS DE ESTABILIDAD TRANSITORIA EN SISTEMAS
máximo hasta 2 segundos, ya que las condiciones del sistema MULTIMÁQUINA”, Universidad de los Andes, Mérida, 2008.
cambian y el modelo matemático deja de ser el adecuado para [4] S. PADHI y B. MISHRA, “Solution of Swing equation for Transient
el fenómeno ocurrido. Stability Analysis in Dual-machine System”, vol. 05, pp. 34–39.
Rugen Kutta permite obtener las formas de onda
aproximadas a lo que ocurre en el transcurso del tiempo,
debido a que ofrece una solución a las ecuaciones
diferenciales, específicamente a las ecuaciones de oscilación.
Existe una gran ventaja en predecir los posibles
5
ANEXO 1
clear all
clc
close all
fprintf (' ------------------------------------------------- \n');
fprintf (' | ESCUELA POLITECNICA NACIONAL | \n');
fprintf (' | FACULTAD DE INGENIERIA ELECTRICA Y ELECTR?NICA | \n');
fprintf (' | DEPARTAMENTO DE ENERGIA ELECTRICA | \n');
fprintf (' | SISTEMAS ELECTRICOS DE POTENCIA | \n');
fprintf (' ------------------------------------------------- ');
fprintf('\n');
fprintf (' SNI REDUCIDO 53 BARRAS CON REGULADORES');
fprintf('\n\n');
fprintf('Realizado por: Reynaldo Angos G.\n');
fprintf(' Luis Janeta A. ');
fprintf('\n\n');
fprintf (' --------------------- \n');
fprintf(' | INICIO DEL PROGRAMA |\n');
fprintf (' --------------------- \n');
Sb=100;%100 MVA
error=1;
b=0;
ngen=20;
fallad=40;%40 %donde ocurre la falla
fallah=41;%41
datosbarra=xlsread('Data_Proyecto','DATOS BARRAS');
datosred=xlsread('Data_Proyecto','DATOS RED');
load('datosbarra')
load('datosred')
bd=datosred(:,1);
bh=datosred(:,2);
r=datosred(:,3);
x=datosred(:,4);
ys=datosred(:,5)/Sb*j;
circ=datosred(:,6);
circ=circ./circ;
z=r+j*x; %Elementos serie
z=z./circ;
yp=1./z;
for i=1:nred
YB_nr(bd(i),bh(i))=-yp(i); %Son como cooredenadas
YB_nr(bh(i),bd(i))=-yp(i); %Fuera de la diagonal
end
for i=1:nbarra
YB_nr(i,i)=sum(yp(find(bd==i)))+sum(yp(find(bh==i)))
+sum(y(find(bd==i)))/2+sum(y(find(bh==i)))/2;
end
dtV=1;
while max(abs(dtV))>10e-5 %JACOBIANO
for i=1:nbarra %Elementos fuera de la diagonal
for j=1:nbarra
J11(i,j)=V(i)*(real(YB_nr(i,j))*sin(t(i)-t(j))-imag(YB_nr(i,j))*cos(t(i)-
t(j)))*V(j); %dPi/dtj
J21(i,j)=-V(i)*(real(YB_nr(i,j))*cos(t(i)-t(j))+imag(YB_nr(i,j))*sin(t(i)-
t(j)))*V(j); %dQi/dtj
J12(i,j)=-J21(i,j);
%Vj*dPi/dVj
J22(i,j)=J11(i,j);
%Vj*dQi/dVj
end
end
aux=tipo;
J11(find(tipo==0),:)=[]; %Eliminando barras V0
J11(:,find(tipo==0))=[];
J12(find(tipo==0),:)=[];
J12(:,find(tipo==0))=[];
J21(find(tipo==0),:)=[];
J21(:,find(tipo==0))=[];
J22(find(tipo==0),:)=[];
7
J22(:,find(tipo==0))=[];
dt(find(tipo==0))=[];
tipo1(find(tipo==0))=[];
tipo2(find(tipo==0))=[];
dV(find(tipo==0))=[];
dP(find(tipo==0))=[];
dQ(find(tipo==0))=[];
aux(find(tipo==0))=[];
end
for i=1:nbarra
if tipo(i)==1
V(i)=tV(a);
a=a+1;
end
end
b=b+1;
end
clear j;
for i=1:nbarra %Cálculo de las potencias de
generacion
if tipo(i)==0
PG(i)=Pcal(i)+PC(i);
QG(i)=Qcal(i)+QC(i);
elseif tipo(i)==2
QG(i)=Qcal(i)+QC(i);
end
end
I=conj((PG+j.*QG)./(V.*exp(j.*t)));
Ev=V.*exp(j.*t)+j.*xd.*I;
E=abs(Ev');
d=angle(Ev')*180/pi;
t=t*180/pi;
%%
z_rk=z; %Elementos serie tomando en cuenta
xd
8
clear j
for i=1:ngen
z_rk(i)=z_rk(i)+j*xd(i);
end
yp_rk=1./z_rk;
for i=1:nred
YB_rk(bd(i),bh(i))=-yp_rk(i); %Son como cooredenadas
YB_rk(bh(i),bd(i))=-yp_rk(i); %Fuera de la diagonal
end
for i=1:nbarra
YB_rk(i,i)=sum(yp_rk(find(bd==i)))+sum(yp_rk(find(bh==i)))
+sum(y_rk(find(bd==i)))/2+sum(y_rk(find(bh==i)))/2+yl(i);
end
YB_rk_pos=YB_rk;
YB_rk_pos(fallad,fallad)=YB_rk_pos(fallad,fallad)+YB_rk_pos(fallad,fallah);
YB_rk_pos(fallah,fallah)=YB_rk_pos(fallah,fallah)+YB_rk_pos(fallad,fallah);
YB_rk_pos(fallad,fallah)=0;
YB_rk_pos(fallah,fallad)=0;
YB_rk_falla=YB_rk;
YB_rk_falla(fallad,:)=[];
YB_rk_falla(:,fallad)=[];
%Datos necesarios para Runge Kutta: PG=Pm=pe d Yred (pre falla pos) E
Resp1=[E' d'];
Resp2=[V t];
xlswrite('Respuesta Flujo.xlsx',barra,'Hoja1','B4');%barras
xlswrite('Respuesta Flujo.xlsx',Resp1,'Hoja1','C4');%E, d
xlswrite('Respuesta Flujo.xlsx',Resp2,'Hoja1','E4');%V, t
d=angle(Ev')*pi/180;
YBr_pre=YB_rk(1:ngen,1:ngen)-
YB_rk(1:ngen,ngen+1:nbarra)*YB_rk(ngen+1:nbarra,ngen+1:nbarra)^-
1*YB_rk(ngen+1:nbarra,1:ngen);
YBr_falla=YB_rk_falla(1:ngen,1:ngen)-YB_rk_falla(1:ngen,ngen+1:nbarra-
1)*YB_rk_falla(ngen+1:nbarra-1,ngen+1:nbarra-1)^-1*YB_rk_falla(ngen+1:nbarra-
1,1:ngen);
YBr_pos=YB_rk_pos(1:ngen,1:ngen)-
YB_rk_pos(1:ngen,ngen+1:nbarra)*YB_rk_pos(ngen+1:nbarra,ngen+1:nbarra)^-
1*YB_rk_pos(ngen+1:nbarra,1:ngen);
%%
Pe=zeros(1,ngen);
Qe=zeros(1,ngen);
for j=1:ngen
for k=1:ngen
pe(j,k)=E(j)*(real(YBr_pre(j,k))*cos(d(j)-d(k))+imag(YBr_pre(j,k))*sin(d(j)-
d(k)))*E(k);
qe(j,k)=E(j)*(real(YBr_pre(j,k))*sin(d(j)-d(k))-imag(YBr_pre(j,k))*cos(d(j)-
d(k)))*E(k);
Pe(j)=Pe(j)+pe(j);
Qe(j)=Qe(j)+qe(j);
end
end
Pm0=Pe;
9
%%
Km=0.1;
Tm=0.1;
Ka=0.1;
Ta=0.02;
ws=377;
w=ws*ones(1,ngen);
m=4;
H=H([1:ngen])';
xd=xd([1:ngen])';
paso=0.002;
tfalla=0.2;%0.2
tposf=0.3;
tiempo=0:paso:2;
ngen=20;
dwm=zeros(m,ngen);
ddm=zeros(m,ngen);
dwp=zeros(1,ngen);
ddp=zeros(1,ngen);
dDpm=zeros(1,ngen);
DP0=zeros(1,ngen);
dDEm=zeros(1,ngen);
DE0=zeros(1,ngen);
d=d(1:20);
w0=w;
d0=d;
W=w;
D=d;
PM=Pm0;
E2=E([1:ngen]);
E0=E2;
Vref=V([1:ngen],:)';
V0=Vref;
PE=Pe;
QE=Qe;
for i=1:length(tiempo)-1
if tiempo(i)>=tfalla %Escojer YB
YBr=YBr_falla; %Falla
else
YBr=YBr_pre; %Pre
end
if tiempo(i)>=tposf
YBr=YBr_pos; %Pos
end
for m=1:4
if m==1 || m==2
dwm(m,:)=(ws./(2.*H)).*(Pm0-Pe); %Pendientes
ddm(m,:)=w-ws;
% dDpm(m,:)=Km/Tm*ddm(m,:)-DP0;
% dDEm(m,:)=Ka/Ta*(Vref-V0)-DE0./Ta;
w=w0+dwm(m,:).*paso./2; %Predicciones
d=d0+ddm(m,:).*paso./2;
% DP=DP0+dDpm(m,:).*paso/2;
% Pm=Pm0+DP;
% DE=DE0+dDEm(m,:).*paso/2;
% E=E0+DE;
10
else
dwm(m,:)=(ws./(2.*H)).*(Pm0-Pe); %Pendientes
ddm(m,:)=w-ws;
% dDpm(m,:)=Km/Tm*ddm(m,:)-DP0;
% dDEm(m,:)=Ka/Ta*(Vref-V0)-DE0./Ta;
w=w0+dwm(m,:).*paso; %Predicciones
d=d0+ddm(m,:).*paso;
% DP=DP0+dDpm(m,:).*paso;
% Pm=Pm0+DP;
% DE=DE0+dDEm(m,:).*paso/2;
% E=E0+DE;
end
Pe=zeros(1,ngen);
Qe=zeros(1,ngen);
for j=1:ngen
for k=1:ngen
pe(j,k)=E(j)*(real(YBr(j,k))*cos(d(j)-d(k))+imag(YBr(j,k))*sin(d(j)-
d(k)))*E(k);
qe(j,k)=E(j)*(real(YBr(j,k))*sin(d(j)-d(k))-imag(YBr(j,k))*cos(d(j)-
d(k)))*E(k);
Pe(j)=Pe(j)+pe(j);
Qe(j)=Qe(j)+qe(j);
end
end
clear j
% V0=abs(E.*exp(j*d)-((Pe-j*Qe)./E.*exp(-j*d)).*(j*xd));
end
dwp=(dwm(1,:)+2.*dwm(2,:)+2.*dwm(3,:)+dwm(4,:))./6;
ddp=(ddm(1,:)+2.*ddm(2,:)+2.*ddm(3,:)+ddm(4,:))./6;
% dDpp=(dDpm(1,:)+2.*dDpm(2,:)+2.*dDpm(3,:)+dDpm(4,:))./6;
% dDEp=(dDEm(1,:)+2.*dDEm(2,:)+2.*dDEm(3,:)+dDEm(4,:))./6;
w0=w0+dwp.*paso;
d0=d0+ddp.*paso;
% DP0=DP0+dDpp.*paso;
% Pm0=Pm0+DP0;
% DE0=DE0+dDEp.*paso;
% E0=E0+DE0;
figure(1)
for i=1:ngen
plot(tiempo,W(:,i))
title('Velocidad vs Tiempo')
ylabel('Velocidad [rad/s]')
xlabel('Tiempo [s]')
hold on
end
grid minor
11
figure(2)
for i=1:ngen
plot(tiempo,D(:,i))
title('Ángulo vs Tiempo')
ylabel('Ángulo [rad]')
xlabel('Tiempo [s]')
hold on
end
grid minor
figure(3)
for i=1:ngen
plot(tiempo,PE(:,i))
axis([0 2 -40 40])
title('Potencia Activa vs Tiempo')
ylabel('Potencia Activa [p.u.]')
xlabel('Tiempo [s]')
hold on
end
grid minor
figure(4)
for i=1:ngen
plot(tiempo,QE(:,i))
axis([0 2 -40 20])
title('Potencia reactiva vs Tiempo')
ylabel('Potencia reactiva [p.u]')
xlabel('Tiempo [s]')
hold on
end
grid minor
% figure(5)
% for i=1:ngen
% plot(tiempo,PM(:,i))
% % axis([0 2 -50 50000])
% title('Potencia Mecanica vs Tiempo')
% ylabel('Potencia Activa [p.u.]')
% xlabel('Tiempo [s]')
% hold on
% end
% grid minor