Está en la página 1de 9

ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL

CONFIABILIDAD DE SISTEMAS DE POTENCIA

BANCO DE PREGUNTAS # 4

EVALUACIÓN DE CONFIABILIDAD EN SISTEMAS DE POTENCIA

WILMAN JOEL CUERO NÚÑEZ

1. Se presenta el SEP de la figura adjunta, cuyos componente poseen las características de


la tablas adjuntas. Considere que las cargas son puramente resistivas y cuyo perfil es
como se presenta en el archivo ‘loadprofile.mat’. Utilizando hipercubo latino no
secuencial, evalué la confiabilidad del sistema de potencia a nivel HL1 para un año de
estudio. Suponga un año tiene 8736 horas.

Haciendo un estudio de confiabilidad de sistema de potencia a nivel HL1, las líneas de


transmisión y sus datos ya no son tomados en cuenta, por lo que se reescribe un esquema que
involucre directamente los generadores con la carga total demandada.

𝐶𝑎𝑟𝑔𝑎 𝑡𝑜𝑡𝑎𝑙 = 85 𝑀𝑊 + 20 𝑀𝑊 + 40𝑀𝑊 + 20 𝑀𝑊 + 20 𝑀𝑊 = 205 𝑀𝑊


Código de matlab

% Adecuación de la Generación de la usando Monte Carlo No Secuencial


% clear all
% clc
% Datos de entrada
% Datos del generador

P11 = 5; % [MW]
P12 = 5; % [MW]
P21 = 10; % [MW]
P31 = 20; % [MW]
P32 = 20; % [MW]
P33 = 20; % [MW]
P34 = 20; % [MW]
P41 = 20; % [MW]
P51 = 40; % [MW]
P61= 40; % [MW]
P62 = 40; % [MW]

l11 = 2.0; % [f/y]


l12 = 2.0; % [f/y]
l21 = 4.0; % [f/y]
l31 = 2.4; % [f/y]
l32 = 2.4; % [f/y]
l33 = 2.4; % [f/y]
l34 = 2.4; % [f/y]
l41 = 5.0; % [f/y]
l51 = 3.0; % [f/y]
l61 = 6.0; % [f/y]
l62 = 6.0; % [f/y]

r11 = 198.0; % [h/r]


r12 = 198.0; % [h/r]
r21 = 196.0; % [h/r]
r31 = 157.6; % [h/r]
r32 = 157.6; % [h/r]
r33 = 157.6; % [h/r]
r34 = 157.6; % [h/r]
r41 = 195.0; % [h/r]
r51 = 147.0; % [h/r]
r61 = 194.0; % [h/r]
r62 = 194.0; % [h/r]

% Datos de carga
PL=205; % [MW]
% Crear perfil de carga
load('loadprofile.mat') % genera la variable loadprofile [%]
Pload = PL*loadprofile/100; % [MW]

% Obtención de tasa de reparación


u11 = (1/r11); % [r/h]
u12 = (1/r12); % [r/h]
u21 = (1/r21); % [r/h]
u31 = (1/r31); % [r/h]
u32 = (1/r32); % [r/h]
u33 = (1/r33); % [r/h]
u34 = (1/r34); % [r/h]
u41 = (1/r41); % [r/h]
u51 = (1/r51); % [r/h]
u61 = (1/r61); % [r/h]
u62 = (1/r62); % [r/h]

% Trasnformación de tasa de falla: [f/y]->[f/h]


l11 = l11*(1/8736); % [f/h]
l12 = l12*(1/8736); % [f/h]
l21 = l21*(1/8736); % [f/h]
l31 = l31*(1/8736); % [f/h]
l32 = l32*(1/8736); % [f/h]
l33 = l33*(1/8736); % [f/h]
l34 = l34*(1/8736); % [f/h]
l41 = l41*(1/8736); % [f/h]
l51 = l51*(1/8736); % [f/h]
l61 = l61*(1/8736); % [f/h]
l62 = l62*(1/8736); % [f/h]

% Obtención de la indisponibilidad (FOR=U)


U11 = l11/(u11+l11); % [-]
U12 = l12/(u12+l12); % [-]
U21 = l21/(u21+l21); % [-]
U31 = l31/(u31+l31); % [-]
U32 = l32/(u32+l32); % [-]
U33 = l33/(u33+l33); % [-]
U34 = l34/(u34+l34); % [-]
U41 = l41/(u41+l41); % [-]
U51 = l51/(u51+l51); % [-]
U61 = l61/(u61+l61); % [-]
U62 = l62/(u62+l62); % [-]

% Agrupación de información de generadores en una matriz


% P[MW] FOR[-]
Gen=[ P11 U11;
P12 U12;
P21 U21;
P31 U31;
P32 U32;
P33 U33;
P34 U34;
P41 U41;
P51 U51;
P61 U61;
P62 U62];

% Hipercubo latino No Secuencial


NE = 1000; % Número de experimentos
TS = 8736; % Tiempo de estudio [h]
FOR = repmat(Gen(:,2),1,TS); % Matriz FOR para el tiempo de estudio
for e=1:NE %

% Obtener dimensión de la matriz


[u,v] = size(Gen);% size for generation

% Generación de probabilidades: filas-> componente; columnas-


>horas
Operation_r(1,:)=lhsdesign(1,TS);
Operation_r(2,:)=lhsdesign(1,TS);
Operation_r(3,:)=lhsdesign(1,TS);
Operation_r(4,:)=lhsdesign(1,TS);
Operation_r(5,:)=lhsdesign(1,TS);
Operation_r(6,:)=lhsdesign(1,TS);
Operation_r(7,:)=lhsdesign(1,TS);
Operation_r(8,:)=lhsdesign(1,TS);
Operation_r(9,:)=lhsdesign(1,TS);
Operation_r(10,:)=lhsdesign(1,TS);
Operation_r(11,:)=lhsdesign(1,TS);

% Generación de estado operacional-> 1-> opera; 0-> fuera de


servicio
Operation_g = Operation_r>FOR; % Posibilities of generation

% Generación disponible
Operation_g.*Gen(:,1);
generation_P=sum(Operation_g.*Gen(:,1));

% Reserva de energía
Reserve_P=generation_P-Pload ;

% Consecuecnia de las fallas


R_P=find(Reserve_P<0);
[r_P,c_P]=size(R_P); % number rows out range maximum

% rows -> experiments


% column -> years

% LOLE: Loss of Load Expectation


LOLE(e) = c_P; % [hora/año]
% EENS: Expected Energy Not Supplied [MWh/año]
Reserve_P(R_P);
EENS(e) = abs(sum(Reserve_P(R_P))); % [MWh/año]

end
% Respuestas
LOLE_m = mean(LOLE) % [hora/año]
LOLP_m = (LOLE_m/TS)*100 % [%]
EENS_m = mean(EENS) % [Mwh/año]
XLOL_m = EENS_m/LOLE_m % [MW]
2. Los componentes del sistema de potencia mostrado en la figura adjunta, poseen las
características indicadas en la tabla adjunta. Suponga que el perfil normalizado anual (1
año=8736 horas) para todas las cargas es como se muestra en la figura adjunta (puede
cargarlo usando el comando load('loadprofile.mat')). Utilizando Montecarlo Secuencial
(n-1), evalué la confiabilidad del sistema de potencia a nivel HLII para un año de estudio.

De la tabla de componentes se observa que la demanda pico de carga es de 200 MW.

Con el perfil de carga, se verifica que la carga no supere la capacidad de generación o la


distribución, para las horas que la carga supera la capacidad de entrega, se podrá suplir a las
cargas de mayor prioridad, dejando cargas de baja prioridad sin alimentación.

Código de matlab.

% Generación de la adecuación usando Monte Carlo Secuencial


%clear all
% Datos de entrada
% Datos de los generadores
Power_G1 = 120; % [MW]
Power_G2 = 80; % [MW]
MTTF_G1 = 1752; % [h/f]
MTTF_G2 = 1740; % [h/f]
MTTR_G1 = 120; % [h/r]
MTTR_G2 = 100; % [h/r]
% Datos de las L/T
Power_L1 = 120; % [MW]
Power_L2 = 100; % [MW]
MTTF_L1 = 4380; % [h/f]
MTTF_L2 = 4300; % [h/f]
MTTR_L1 = 3; % [h/r]
MTTR_L2 = 3; % [h/r]

% Datos de carga
PL=200; % [MW]
% Crear perfil de carga
load('loadprofile.mat') % genera la variable loadprofile [%]
Pload = PL*loadprofile/100; % [MW]

% Datos de carga
Power_C1 = 50; % desconectar tercero
Power_C2 = 50; % desconectar primero
Power_C3 = 100; % desconectar segundo
% Pasos de cortes de carga
LC1 = Power_C2; % [MW]
LC2 = Power_C2 + Power_C3; % [MW]
LC3 = Power_C2 + Power_C3 + Power_C1; % [MW]
% Simulación Montecarlo Secuencial
NE = 5000; % Total de experimentos
TS = 8736; % Tiempo de estudio [h]
hdownSystem = []; % contador horas fuera de servicio del sistema
for e=1:NE
% Inicialización de contadores
t=0;
hdownSystem(e) = 0;
LC(e) = 0;
VRC(e) = 0;

while t<TS
% Generación de evento falla
TfG1 = -(MTTF_G1)*log(rand);
TfG2 = -(MTTF_G2)*log(rand);
TfL1 = -(MTTF_L1)*log(rand);
TfL2 = -(MTTF_L2)*log(rand);
% Agrupación de evento de falla
Falla = [TfG1 TfG2 TfL1 TfL2];
tf = min(Falla); % Tiempo en el que falla el primer
componente
CF_1ro = find(Falla==tf); % Componente que falla primero

% Tiempo transcurrido
t = t + tf;
if t>TS
break
end

% Generación de evento de restauración


Tr_G1 = -(MTTR_G1)*log(rand);
Tr_G2 = -(MTTR_G2)*log(rand);
Tr_L1 = -(MTTR_L1)*log(rand);
Tr_L2 = -(MTTR_L2)*log(rand);
% Agrupación de evento de restauración
Reparacion = [Tr_G1 Tr_G2 Tr_L1 Tr_L2];
TRC = Reparacion(CF_1ro); % Tiempo en el que se restaura en
componente fallido
% Consecuencia del evento de falla
hdownSystem(e) = hdownSystem(e) + TRC; % tiempo de duración de
LC
VRC(e) = VRC(e) + 1; % Veces que ocurre LC

if CF_1ro==1
if Pload(e) > 80
LC(e) = LC(e)+(Pload(e)-50)*TRC; % MWh
end

elseif CF_1ro==2
if Pload(e) > 120
LC(e) = LC(e)+(Pload(e)-50)*TRC; % MWh
end

elseif CF_1ro==3
if Pload(e) > 100
LC(e) = LC(e)+(Pload(e)-50)*TRC; % MWh
end

elseif CF_1ro==4
if Pload(e) > 120
LC(e) = LC(e)+(Pload(e)-50)*TRC; % MWh
end

end
% Tiempo transcurrido
t = t + TRC;
if t>TS
break
end
end
end
PLC = (mean(hdownSystem)/TS)*100 % [%]
ENLC = round(mean(VRC)) % [f/año]
EDLC = (PLC/100)*TS % [hora/año]
ADLC = EDLC/ENLC % [hora/disturbio]
ELC = mean(LC) % [MWh/año]

También podría gustarte