You are on page 1of 6

TRABAJO DE PLANIFICACION DE SEP

1.-RESULTADOS DEL FLUJO DE POTENCIAS , A UTILIZAR EN LA PROGRAMACION

2.-PROGRAMACION
disp('
DEBER DE PLANIFICACION DE SEP'); %Salida de datos
disp(''); %Salida de datos
disp('TEMA: RESTRICCIONES DE UN SEP'); %Salida de datos
disp(''); %Salida de datos
c=input('Ingrese caso : '); %lee informacin por teclado}
c1=input('Ingrese aos de estudio : '); %lee informacin por teclado}
c2=input('Intervalo de aos de estudio : '); %lee informacin por
teclado}
define_constants;
mpc=loadcase(c);

%Define el caso

%Variables
anios = c1 %variable para aos
intervaloanios=c2;
nivelVoltaje=345;
zc=366;
valor =0.2; %Incremento potencia anual
%PC: Potencia activa en barra de carga, PD en
%QC: Potencia reactiva en barra de carga , QD
datos
%PG: Potencia activa en barra de generacion o
salida de datos
%QG: Potencia reactiva en barra de generacion
salida de datos
%C : carga

matriz de ingreso de datos


en matriz de ingreso de
Slack, PG en matriz de
o Slack, QG en matriz de

%G : generacion y Slack
%IN : dentro de los limites establecidos
%OUT : fuera de los limites establecidos
%S/N : sin valor
aniosImpresion=anios;
if(intervaloanios>1)
aniosImpresion=anios+1;
else
aniosImpresion=anios+1;
end
filas = length(mpc.bus(:,1)); %filas extraidas de una matriz
resultadosVoltaje={};
% matrices vacias que se van a llenar con cadena
de caracteres
factorPotecia={};
% matrices vacias
resultadosFactorPotencia={}; % matrices vacias
resultadosPotencia={};
% matrices vacias
voltajesEncabezado={};
% matrices vacias
anioEncabezado={};
%resultadoPD(:,1);
busStr={};
% matrices vacias
genStr={};
% matrices vacias
vjStr={};
% matrices vacias
x=zeros(filas,(anios+2)); %matriz de numeros
xstr={};% matriz madre que contiene todos los datos de todos los aos
analisisanio=zeros(filas,2)
analisisaniostr={}
%definir encabezado para tabla de resultados por ao
anioEncabezado{1} = 'N BARRA' %concatena filas de las matrices}
anioEncabezado{2} = 'TIPO' %concatena filas de las matrices
anioEncabezado{3} = 'PC(C)' %concatena filas de las matrices
anioEncabezado{4} = 'QC(C)' %concatena filas de las matrices
anioEncabezado{5} = 'V EN BARRAS' %concatena filas de las matrices
anioEncabezado{6} = 'ESTADO V' %concatena filas de las matrice
anioEncabezado{7} = 'fp en PQ(C)' %concatena filas de las matrices
anioEncabezado{8} = 'ESTADO fp(C)' %concatena filas de las matrice
anioEncabezado{9} = 'PG(G)' %concatena filas de las matrices
anioEncabezado{10} = 'QG(G)' %concatena filas de las matrices
anioEncabezado{11} = 'fp en PV(G)' %concatena filas de las matrices
anioEncabezado{12} = 'ESTADO fp en PV(G)' %concatena filas de las
matrices
anioEncabezado{13} = 'LINEAS' %concatena filas de las matrices}
anioEncabezado{14} = 'CARGABILIDAD' %concatena filas de las matrices
anioEncabezado{15} = 'ESTADO CARGABILIDAD' %concatena filas de las
matrices}
results=runpf(mpc); % Guarda en el WorKspace
j=1;

z=1;

clc
for i =1:(anios+1)

%numero de anios definido

%Matriz Principal (Barra)


for f=1:filas % determino filas segun el caso de estudio
yPC = results.bus(f, PD);
yQC = results.bus(f, QD);
yPCOriginal = x(f,1);
yQCOriginal =x(f,2);

%definir el incremento anual


if i>1
yPC= yPCOriginal * (1 + (valor*(i-1)) );
yQC= yQCOriginal * (1 + (valor*(i-1)));
end

xstr{f,j}=num2str(f);
%definir el tipo
tipo = results.bus(f,2);
tipostr='';
if(tipo==3)
tipostr='Slack';
else
if(tipo==2)
tipostr='PV';
else
tipostr='PQ';
end
end
xstr{f,j+1}=tipostr;

x(f,j)= yPC ;
xstr{f,j+2}=
num2str(yPC); % convierte de numero a caracter
x(f,j+1)= yQC;
xstr{f,j+3}=
num2str(yQC) ; % convierte de numero a caracter

mpc.bus(f, PD)= yPC; % multiplicacin de la PD Y PQ con la variacin


mpc.bus(f, QD)= yQC;
% multiplicacin de la PD Y PQ con la
variacin
results=runpf(mpc); % Guarda en el WorKspace
%LIMITE DE VOLTAJE DE LAS BARRAS
vVol = results.bus(f, VM);
if(vVol >= 0.95 ) %sentencia condicional

if(vVol <= 1.05)


xstr{f,j+5} = 'IN'
%results.bus(f,VM)
else
xstr{f,j+5} = 'OUT'
%xstr{f,j+2} = 'AB'
end
else
xstr{f,j+5} = 'OUT'
%xstr{f,j+2} = results.bus(f,VM)
end
xstr{f,j+4}= vVol ;
%LIMITE DE FACTOR DE POTENCIA
fp = yPC / sqrt( ((yPC*yPC)+(yQC*yQC)))
if (isnan(fp))
xstr{f,j+7} = 'S/N'
else
if(fp >= 0.98 ) %sentencia condicional
if(fp <= 1)
xstr{f,j+7} = 'IN'
%results.bus(f,VM)
else
xstr{f,j+7} = 'OUT'
fp
end
else
xstr{f,j+7} = 'OUT'
fp
end
end
xstr{f,j+6}= fp ;
end
%MATRIZ GENERACION
filasGen = length(results.gen(:,1));
result.gen
xGenstr={};
for fgen=1:filasGen

%obtengo

el numero filas de

yPG = results.gen(fgen, PG);


yQG = results.gen(fgen, QG);
fpgen = yPG / sqrt( ((yPG*yPG)+(yQG*yQG)));
xstr{fgen,j+8} = yPG;
xstr{fgen,j+9} = yQG;

if (isnan(fpgen)) % valida si la division produce indeterminacion


xstr{fpgen,j+11} = 'S/N';

else
if(fpgen >= 0.98 ) %sentencia condicional
if(fpgen <= 1)
xstr{fgen,j+11} = 'IN';
else
xstr{fgen,j+11} = 'OUT';
end
else
xstr{fgen,j+11} = 'OUT';
end
end
xstr{fgen,j+10} =

num2str(fpgen); % convierte de numero a caracter

end

%Matriz Cargabilidad
filasBranch = length(results.branch(:,1));
result.branch
xBranchstr={};
for fbranch=1:filasBranch

%obtengo

el numero filas de

Pdesde = results.branch(fbranch, PF);


Phasta = results.branch(fbranch, PT);
lineaOrigen= results.branch(fbranch,1);
lineaDestino=results.branch(fbranch,2);
lineas = strcat(num2str(lineaOrigen), '-', num2str(lineaDestino));
%DETERMINA CUAL ES EL MAYOR ENTRE P ORIGEN Y P DESTINO
Pmayor=0;
if (Pdesde>Phasta)
Pmayor=Pdesde;
else
Pmayor=Phasta;
end
%CALCULO DEL 50% SIL
sil = 0.5 * ((nivelVoltaje^2)/zc);

%INSERTO NUEVOS DATOS EN LA MATRIZ DE RESULTADOS


xstr{fbranch,j+12} = lineas;
xstr{fbranch,j+13} = Pmayor;

if (isnan(sil)) % valida si la division produce indeterminacion


xstr{fbranch,j+14} = 'S/N';
else

if(sil > Pmayor ) %sentencia condicional


xstr{fbranch,j+14} = 'IN';
else
xstr{fbranch,j+14} = 'OUT';
end
end
%xstr{fgen,j+8} =

num2str(fpgen); % convierte de numero a caracter

end
%Cambia la fila para nuevos resultados
j=j+15;
end

clc
disp('
DEBER DE PLANIFICACION DE SEP'); %Salida de datos
disp('TEMA: RESTRICCIONES DE UN SEP'); %Salida de datos
disp('Interpretacin:'); %Salida de datos
disp('IN : dentro de los lmites establecidos'); %Salida de datos
disp('OUT : fuera de los lmites establecidos'); %Salida de datos
disp('S/N : sin valor'); %Salida de datos
%IMPRESION FINAL DE RESULTADOS POR AO
%Divide la matriz segun el numero de aos a la matriz xstr
j=1;
for i =1: intervaloanios : (aniosImpresion)
disp('');
disp( strcat('AO DE ANALISIS : ', num2str(i-1))
numero a caracter

% convierte de

%PONER LAS 3 MATRICES EN UNA SOLA


total1 = [anioEncabezado;xstr(1:filas,j:j+14)] %unir un encabezado a la
matriz
j=j+15;
end

BIBLIOGRAFIA:

ZIMMERMAN Y MURILLO, Matpower 4.1 User's Manual, December 14, 2011, pg26.

You might also like