• No results found

clc, clear,clf

%PROGRAMA PARA EL ESTUDIO DE ESTABILIDAD TRANSITORIA POR EL MFET INCLUYENDO MODELOS DE CARGA ESTATICA NO LINEAL PARA UN SMBI

disp (' INSTITUTO POLITECNICO NACIONAL') disp ('ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA')

disp (' SECCION DE ESTUDIOS DE POSGRADO E INVESTIGACION') disp (' ')

disp (' TOPICOS SELECTOS EN I. E.') disp (' ')

disp ('"CALCULO DEL VECTOR IGL PARA EL SISTEMA DEL KUNDUR"') disp (' ')

disp ('TESISTA: EDGAR L. BELMONTE GONZALEZ') disp (' ')

disp ('DIRECTOR DE TESIS: DR. DANIEL OLGUIN SALINAS') disp (' ')

disp ('FEBRERO 2004') disp (' ')

pause %Tiempos

te=input('Tiempo de estudio (seg)=') tlib=input('Tiempo de liberación (seg)=') % disp('DATOS DE LA CORRIDA DE FLUJOS')

V1=0.90081; %Voltaje en el bus infinito

V2=1.00000; %Voltaje en el bus de generacion V3=0.925079; %Voltaje en el bus de carga Alfa1=00.0000; %Angulo del bus infinito Alfa2=14.0446; %Angulo del bus de generacion Alfa3=05.6533; %Angulo del bus de carga Xbi=0.0001i; %Reactancia transitoria del bus infinito Xpd=0.30i; %Reactancia transitoria en el eje d del generador Xtr=0.15i; %Reactancia del transformador

Xl1=0.50i; %Reactancia de la linea 1 Xl2=0.93i; %Reactancia de la linea 2 F=60; %Frecuencia nominal (Hz)

pmec=0.9; %Potencia mecánica de entrada

Pgen=0.9; %Potencia activa del generador Qgen=0.565500; %Potencia reactiva del generador Pbi=-0.252445; %Potencia activa del bus infinito Qbi=-0.054765; %Potencia reactiva del bus infinito Pcarga=0.647555; %Potencia activa de la carga Qcarga=0.314527; %Potencia reactiva de la carga

p2=0.70; q2=0.70; %Factores de la componente de corriente constante (valor maximo=1)

p3=0.30; q3=0.30; %Factores de la componente de potencia constante (valor maximo=1)

CI=3.5; %CI= Cte. de inercia H (rad*seg) m=CI/(180*F);

%--- %P R E F A L L A

%--- disp ('SE CALCULAN LAS VARIABLES DE PREFALLA...') %Calculo de los voltajes internos

Sgen=Pgen+1i*Qgen; anggen=atan(imag(Sgen)/real(Sgen))*180/pi; Igen=conj(Sgen)/conj(V2*(cos(Alfa2*pi/180)+1i*sin(Alfa2*pi/180))); angigen=atan(imag(Igen)/real(Igen))*180/pi; ei=V2*(cos(Alfa2*pi/180)+1i*sin(Alfa2*pi/180))+Igen*Xpd; eint=abs(ei); delta=atan(imag(ei)/real(ei))*180/pi; Sbi=Pbi+1i*Qbi; angbi=atan(imag(Sbi)/real(Sbi))*180/pi; Ibi=conj(Sbi)/conj(V1*(cos(Alfa1*pi/180)+1i*sin(Alfa1*pi/180))); angibi=atan(imag(Ibi)/real(Ibi))*180/pi; eibir=V1*(cos(Alfa1*pi/180)+1i*sin(Alfa1*pi/180))+Ibi*Xbi; eibi=abs(eibir); deltabi=atan(imag(eibir)/real(eibir))*180/pi;

%Vector de voltajes iniciales

vecv=[V1*(cos(Alfa1*pi/180)+1i*sin(Alfa1*pi/180)) V2*(cos(Alfa2*pi/180)+1i*sin(Alfa2*pi/180)) V3*(cos(Alfa3*pi/180)+1i*sin(Alfa3*pi/180))];

i2g1=eibir/Xbi; %Corriente interna del bus infinito

sigma1=atan(imag(i2g1)/real(i2g1))*180/pi; %Angulo de la corriente interna del bus infinito

i2g2=ei/Xpd; %Corriente interna del generador sincrono

sigma2=atan(imag(i2g2)/real(i2g2))*180/pi; %Angulo de la corriente interna del generador sincrono

Pc=Pcarga*p2; Qc=Qcarga*q2; %Pontencias real y reactiva de la carga con corriente constante

Pp=Pcarga*p3; Qp=Qcarga*q3; %Pontencias real y reactiva de la carga con potencia constante

Scc=Pc+1i*Qc; %Potencia aparente de la carga de corriente constante

Scp=Pp+1i*Qp; %Potencia aparente de la carga de potencia constante

I1c=conj(Scc)/conj(V3*(cos(Alfa3*pi/180)+1i*sin(Alfa3*pi/180))); %Componente de la carga de corriente constante (nodo 3) I1p=conj(Scp)/conj(V3*(cos(Alfa3*pi/180)+1i*sin(Alfa3*pi/180))); %Componente de la carga de potencia constante (nodo 3) if (I1c==0.00)

fic=0.0; Angc=0.0; else

fic=atan(imag(I1c)/real(I1c))*180/pi; %Angulo debido a la corriente constante de la carga

Angc=atan(imag(Scc)/real(Scc)); %Angulo de la carga (corriente constante)

end if (I1p==0.00) fip=0.0; Angp=0.0; else

fip=atan(imag(I1p)/real(I1p))*180/pi; %Angulo debido a la potencia constante de la carga

Angp=atan(imag(Scp)/real(Scp)); %Angulo de la carga (potencia constante)

end

%Corriente compuesta de la carga I1=I1c+I1p;

%Vector de corrientes iniciales veci=[i2g1

i2g2 -I1]; Yf=0.0;

vecvi=vecv; %Vector de voltajes iniciales vecii=veci; %Vector de corrientes iniciales

YBUSKUN %Subrutina para elaborar YAbus, YBbus, YCbus, FDC y el Jacobiano %Matrices de prefalla YAbusa=YAbus; YBbusa=YBbus; YCbusa=YCbus; FDCA=FDC; Jaca=Jac;

epsilon=0.001; %Tolerancia de convergencia indice=0;

%datos requeridos para las subrutinas VARIDELTA y NRM JM=Jaca; %Jacobiano para N-R modificado

YA=YAbusa; %Matriz YAbus de prefalla FDC=FDCA; %Factor de distribucion de corrientes de prefalla

cont=0;

angulo1=0; %Los angulos y el incremento angulo2=pi; %determinan los limites empleados

incre=pi/1800; %en la subrutina VARIDELTA

VARIDELTA %Subrutina para variar el angulo delta

% Variables a graficar de prefalla

pea=pe; %Potencia electrica de prefalla

peta=pet; %Potencia electrica transmitida de prefalla pela=pel; %Potencia electrica de la carga en prefalla v1a=v1; %Voltaje o corriente de prefalla en el bus 1 (modificar NRM para pedir corrientes)

v2a=v2; %Voltaje o corriente de prefalla en el bus 2 (modificar NRM para pedir corrientes)

v3a=v3; %Voltaje o corriente de prefalla en el bus 3 (modificar NRM para pedir corrientes)

peea=pee; %PEE de prefalla peia=pei; %PEI de prefalla figure(1) subplot (2,1,1) plot(dlt,pea,dlt,pm,dlt,peta,dlt,pela) title('CURVAS POTENCIA-ÁNGULO') xlabel('Ángulo (grados)') ylabel('POTENCIA (P.U.)') grid subplot (2,1,2) plot(dlt,v1a,dlt,v2a,dlt,v3a)

title('CURVAS DE VOLTAJE, ANGULO Y RELACION DE VOLTAJES') xlabel('Ángulo (grados)') ylabel('MAGNITUD') grid pause %--- %P O S F A L L A %--- %Se reinician valores

clear Yext indice v1 v2 v3 pe pet pel dlt

disp ('SE CALCULAN LAS VARIABLES DE POSFALLA...')

Xl1=Xl1;

Xl2=999999999999;

Yf=0.0; %Admitancia de falla YBUSKUN %Matrices de posfalla YAbusc=YAbus; YBbusc=YBbus; YCbusc=YCbus; FDCC=FDC; Jacc=Jac; Yeqc=Yeq; indice=0;

%Datos requeridos para las subrutinas VARIDELTA y NRM vecv=vecvi; %Vector de voltajes iniciales veci=vecii; %Vector de corrientes iniciales JM=Jacc; %Jacobiano para N-R modificado

YA=YAbusc; %Matriz YAbus de prefalla FDC=FDCC; %Factor de distribucion de corrientes de prefalla

cont=0;

angulo1=0; %Los angulos y el incremento angulo2=pi; %determinan los limites empleados

incre=pi/1800; %en la subrutina VARIDELTA

VARIDELTA %Subrutina para variar el angulo delta

% Variables a graficar de posfalla

pec=pe; %Potencia electrica de posfalla

petc=pet; %Potencia electrica transmitida de posfalla pelc=pel; %Potencia electrica de la carga en posfalla v1c=v1; %Voltaje o corriente de posfalla en el bus 1 (modificar NRM para pedir corrientes)

v2c=v2; %Voltaje o corriente de posfalla en el bus 2 (modificar NRM para pedir corrientes)

v3c=v3; %Voltaje o corriente de posfalla en el bus 3 (modificar NRM para pedir corrientes)

peec=pee; %PEE de posfalla peic=pei; %PEI de posfalla figure(3) subplot (2,1,1) plot(dlt,pec,dlt,pm,dlt,petc,dlt,pelc) title('CURVAS POTENCIA-ÁNGULO') xlabel('Ángulo (grados)') ylabel('POTENCIA (P.U.)') grid subplot (2,1,2) plot(dlt,v1c,dlt,v2c,dlt,v3c)

title('CURVAS DE VOLTAJE, ANGULO Y RELACION DE VOLTAJES') xlabel('Ángulo (grados)') ylabel('MAGNITUD') grid pause %--- % F A L L A %--- %Se reinician valores

clear Yext indice v1 v2 v3 %pe pet pel

YBUSKUN %Matrices de falla YAbusb=YAbus; YBbusb=YBbus; YCbusb=YCbus; FDCB=FDC; Jacb=Jac; Yeqb=Yeq; % indice=0;

%datos requeridos para las subrutinas VARIDELTA y NRM

% vecv=vecvi; %Vector de voltajes iniciales % veci=vecii; %Vector de corrientes iniciales % JM=Jacb; %Jacobiano para N-R modificado

% YA=YAbusb; %Matriz YAbus de falla % FDC=FDCB; %Factor de distribucion de corrientes de falla

% cont=0;

% angulo1=0; %Los angulos y el incremento

% angulo2=pi; %determinan los limites empleados

% incre=pi/1800; %en la subrutina VARIDELTA

% VARIDELTA %Subrutina para variar el angulo delta

% % Variables a graficar de falla

% peb=pe; %Potencia electrica de falla

% petb=pet; %Potencia electrica transmitida de falla % pelb=pel; %Potencia electrica de la carga en falla % v1b=v1; %Voltaje o corriente de falla en el bus 1 (modificar NRM para pedir corrientes)

% v2b=v2; %Voltaje o corriente de falla en el bus 2 (modificar NRM para pedir corrientes)

% v3b=v3; %Voltaje o corriente de falla en el bus 3 (modificar NRM para pedir corrientes)

% peeb=pee; %PEE de falla % peib=pei; %PEI de falla % figure(2) % subplot (2,1,1) % plot(dlt,peb,dlt,pm,dlt,petb,dlt,pelb) % title('CURVAS POTENCIA-ÁNGULO') % xlabel('Ángulo (grados)') % ylabel('POTENCIA (P.U.)') % grid % subplot (2,1,2) % plot(dlt,v1b,dlt,v2b,dlt,v3b)

% title('CURVAS DE VOLTAJE, ANGULO Y RELACION DE VOLTAJES') % xlabel('Ángulo (grados)') % ylabel('MAGNITUD') % grid % pause tama=[length(pm) length(pea)]; tam=min(tama); figure(4) plot(dlt(1,1:tam),pea(1,1:tam),dlt(1,1:tam),pec(1,1:tam),dlt(1,1:tam),pm(1,1 :tam))

title('CURVAS POTENCIA-ÁNGULO DE PREFALLA, FALLA Y POSFALLA') xlabel('Ángulo (grados)') ylabel('POTENCIA (P.U.)') grid % pause %--- % ENERGIA CRITICA %--- indice=0;

JM=Jacc; %Jacobiano para N-R modificado

YA=YAbusc; %Matriz YAbus de falla FDC=FDCC; %Factor de distribucion de corrientes de falla

Yeq=Yeqc;

%Se obtiene la energia critica

NI=10; %NUMERO DE SEGMENTOS

angulo1=peec*pi/180; %Los angulos y el incremento

angulo2=peic*pi/180; %determinan los limites empleados

incre=(peic-peec)*pi/(180*NI); %en la subrutina VARDLTTRAP cont=0; VARDLTTRAP %Energia crítica ecrit=-pmec*(angulo2-angulo1)-eibi*eint*abs(Yeq)*(cos(angulo2)- cos(angulo1))+funcion %energia critica

%--- % ENERGIA EN LA TRAYECTORIA DE FALLA

%---

%Constantes consideradas

tol=0.0001; %Tolerancia de acuerdo al paso de integracion

c=pi/180;

ti=0.0; %Tiempo inicial h=tol; %Paso de integracion

curvas=4; %El numero de curvas no debe ser menor a 4

di=0.0; %Limite inferior del eje delta df=180; %Limite superior del eje delta cte=1.0; %Para obtener la curva mas cercana al pee % disp('Angulo de falla='),peea; dfalla=peea*c; %Numero de pasos n=(te-ti)/h;

%Calculo de la trayectoria de falla %Se reinician valores

pe=0; pet=0; pel=0;

%Condiciones iniciales

vecv=vecvi; %Vector de voltajes iniciales veci=vecii; %Vector de corrientes iniciales JM=Jacb; %Jacobiano para N-R modificado

YA=YAbusb; %Matriz YAbus de falla FDC=FDCB; %Factor de distribucion de corrientes de falla

Yeq=Yeqb;

DELTA(1)=peea*c; %Angulo de falla en radianes j=DELTA(1); veci(2)=eint*(cos(j)+1i*(sin(j)))/Xpd; cont=1; NRM DDELTA(1)=0.0;

% DELTA(1)=peea*c; %Angulo de falla en radianes PE(cont)=pe(1); Pa(1)=(pmec-PE(1)); C1=h^2/m; t(1)=0.0; VEL(1)=0.0;

angulo1=DELTA(1); %Los angulos y el incremento

angulo2=DELTA(1); %determinan los limites empleados

incre=(angulo2-angulo1)/(NI); %en la subrutina VARDLTTRAP cont=0; funcion=0.0; VARDLTTRAP ener=0.5*m*VEL(1)^2-pmec*(angulo2-angulo1)- eibi*eint*abs(Yeq)*(cos(angulo2)-cos(angulo1))+funcion; margen(1)=ecrit-ener; cont=1; %pause

%Calculo del tcr por el metodo de paso a paso for I=2:n cont=I; DDELTA(I)=DDELTA(I-1)+C1*Pa(I-1)*c; DELTA(I)=DELTA(I-1)+DDELTA(I); j=DELTA(I); veci(2)=eint*(cos(j)+1i*(sin(j)))/Xpd; if (p3>0.0 | q3>0.0)

pe(I)=0; %Eliminar este renglon si la falla no es en el nodo de A.T. del TR

else NRM end PE(I)=pe(I); Pa(I)=pmec-PE(I); t(I)=t(I-1)+h; VEL(I)=DDELTA(I)/h;

%Calculo del angulo de liberación if abs(t(I)-tlib)<=tol/2;

conta=cont;

disp('El angulo de liberación es='); DELTA(I)/c

%Se obtiene la energia en el instante de liberacion

vecv=vecvi; %Vector de voltajes iniciales veci=vecii; %Vector de corrientes iniciales

angulo1=DELTA(I); %Los angulos y el incremento

angulo2=dfalla; %determinan los limites empleados

incre=(angulo2-angulo1)/(NI); %en la subrutina VARDLTTRAP cont=0; funcion=0.0; elib=0.5*m*VEL(I)^2-pmec*(angulo2-angulo1)- eibi*eint*abs(Yeq)*(cos(angulo2)-cos(angulo1))+funcion margen(I)=ecrit-elib; if (abs(ecrit-elib)<=0.0001)

disp 'El sistema es criticamente estable' disp 'El tiempo critico de liberacion es',tlib elseif((ecrit-elib)>0.0001)

disp 'El sistema es estable para el tiempo de liberacion dado' else

disp 'El sistema es inestable para el tiempo dado' break

end cont=conta; else

%Calculo del margen de energia conta=cont;

%Se obtiene la energia en el angulo DELTA

% vecv=vecvi; %Vector de voltajes iniciales

% veci=vecii; %Vector de corrientes iniciales

% NI=10; %NUMERO DE SEGMENTOS

angulo1=DELTA(I); %Los angulos y el incremento

angulo2=dfalla; %determinan los limites empleados

incre=(angulo2-angulo1)/(NI); %en la subrutina VARDLTTRAP

cont=0; funcion=0.0; VARDLTTRAP

%Energia en el instante en el angulo DELTA ener=0.5*m*VEL(I)^2-pmec*(angulo2-angulo1)- eibi*eint*abs(Yeq)*(cos(angulo2)-cos(angulo1))+funcion; margen(I)=ecrit-ener; if (abs(ecrit-ener)<=0.0005) disp ' ' disp ' '

disp 'El tiempo critico de liberacion es',t(I) end cont=conta; end end figure (5) plot(DELTA/c,VEL) title('Plano de Fase') xlabel('Angulo (deg)') ylabel('Velocidad (rad/seg)') grid figure (6) plot(t,margen) title('Margen de energía') xlabel('Tiempo (s)')

ylabel('Margen de energía (p.u.)') grid

end