Post on 20-Jan-2016
transcript
DESCAPACHO ECONOMICO
1. DESPACHO ECONOMICO DESPRECIANDO PERDIDAS Y SIN CONSIDERAR LIMITES DEL
GENERADOR
EJERCICIO 1
C1=210+6.3P1+0.007P1^2
C2=200+6.7P2+0.008P2^2
C3=190+6.9P3+0.008P3^2
PD=200
ALGORITMO
clear all format short alpha=[200;210;250];beta=[7.0;7.1;7.2];gama=[0.004;0.005;0.006]; lambda=input('ingrese lambda=');
PD=200; DP=3;%iniciamos con un error igual 3
iter=0; while abs(DP)>=0.0001 iter=iter+1; P=(lambda-beta)./(2*gama);
DP=PD-sum(P); J=sum(ones(length(gama),1)./(2*gama));%Jacobiano Dlambda=DP/J; lambda=lambda+Dlambda; disp(['iter lambda Dlambda DP P1 P2 P3']) disp([iter,lambda,Dlambda,DP, P(1), P(2), P(3)]) end
costo_total=sum(alpha+beta.*P+gama.*P.^2)
RESULTADOS
ingrese lambda=8
iter lambda Dlambda DP P1 P2 P3
1.0000 7.7351 -0.2649 -81.6667 125.0000 90.0000 66.6667
iter lambda Dlambda DP P1 P2 P3
2.0000 7.7351 0.0000 0.0000 91.8919 63.5135 44.5946
costo_total =
2.1411e+003
2. DESPACHO ECONOMICO DESPRECIANDO PERDIDAS Y CONSIDERANDO LIMITES DEL
GENERADOR
EJERCICIO 1
C1=200+7.0P1+0.004P1^2
C2=210+7.1P2+0.005P2^2
C3=250+7.2P3+0.006P3^2
Limites de los generadores
PD=500MW
SOLUCION
ALGORITMO
clear all PD=500; %1ra iteracion iter=1; lan=6; P1_1=(lan-7)/(2*0.004); P2_1=(lan-7.1)/(2*0.005); P3_1=(lan-7.2)/(2*0.006); DP_1=PD-(P1_1+P2_1+P3_1); Dlan_1=DP_1/(1/(2*0.004)+1/(2*0.005)+1/(2*0.006));
%2da iteracion iter=iter+1 lan=lan+Dlan_1 P1_2=(lan-7)/(2*0.004) P2_2=(lan-7.1)/(2*0.005) P3_2=(lan-7.2)/(2*0.006) DP_2=PD-(P1_2+P2_2+P3_2) Dlan_2=DP_2/(1/(2*0.004)+1/(2*0.005)+1/(2*0.006))
Resultados de la 2da iteración
iter =
2
lan =
8.7081
P1_2 =
213.5135
P2_2 =
160.8108
P3_2 =
125.6757
DP_2 =
-5.6843e-014
Dlan_2 =
-1.8436e-016
Cuando obtenemos los Resultados de la 2da iteración el DP
tiende a cero pero se observa que el segundo generador excede
su límite superior. Entonces esta generadora queda
estabilizada en su limite superior P2=150MW.
Entonces se sigue iterando con 3ra y 4ta iteración
clear all PD=500; %1ra iteracion iter=1; lan=6; P1_1=(lan-7)/(2*0.004); P2_1=(lan-7.1)/(2*0.005); P3_1=(lan-7.2)/(2*0.006); DP_1=PD-(P1_1+P2_1+P3_1); Dlan_1=DP_1/(1/(2*0.004)+1/(2*0.005)+1/(2*0.006));
%2da iteracion iter=iter+1; lan=lan+Dlan_1; P1_2=(lan-7)/(2*0.004); P2_2=(lan-7.1)/(2*0.005); P3_2=(lan-7.2)/(2*0.006); DP_2=PD-(P1_2+P2_2+P3_2); Dlan_2=DP_2/(1/(2*0.004)+1/(2*0.005)+1/(2*0.006));
%3ra iteracion iter=iter+1; P2=150; DP_3=PD-(P1_2+P2+P3_2); Dlan_3=DP_3/(1/(2*0.004)+1/(2*0.006));
%4ra iteracion iter=iter+1;
lan=lan+Dlan_3;
P1_4=(lan-7)/(2*0.004); P3_4=(lan-7.2)/(2*0.006); DP_4=PD-(P1_4+P2+P3_4);
resultados=([iter,DP_4,lan,P1_4,P2,P3_4]); disp(['iter DP lan P1 P2 P3 ']) disp([resultados]) PG=sum(P1_4+P2+P3_4)
CT=200+7.0*P1_4+0.004*P1_4^2+210+7.1*P2+0.005*P2^2+250+7.2*P3_4+0.006*P3_
4^2
Resultados finales
iter DP lan P1 P2 P3
4.0000 0 8.7600 220.0000 150.0000 130.0000
PG =
500
CT =
4.6085e+003
EJERCICIO 2
C1=200+7.0P1+0.004P1^2
C2=210+7.1P2+0.005P2^2
C3=250+7.2P3+0.006P3^2
Limites de los generadores
PD=500MW
SOLUCION OTRA FORMA
Esta vez utilizaremos la función fmincon
1er Paso: Creamos 2 archivos “function”
Archivo 1: funcionobjetivo2
function f=funcionobjetivo2(p) F1=200+7*p(1)+0.004*p(1)^2; F2=210+7.1*p(2)+0.005*p(2)^2; F3=250+7.2*p(3)+0.006*p(3)^2
f=F1+F2+F3
end
Archivo 2: restriccion2
function [c,ceq]=restriccion2(p)
c=[50-p(1);p(1)-250;100-p(2);p(2)-150;80-p(3);p(3)-150]; pd=500; ceq=[pd-p(1)-p(2)-p(3)]; end
2do Paso: Creamos 1 archivo “scrip”
clc; format short p0=[1 1 1];% punto inicila de interacion options=optimset('algorithm','active-set'); [p,fval]=fmincon(@funcionobjetivo2,p0,[],[],[],[],[],[],@restriccion2,opt
ions); disp('solucion:')
P1=p(1) P2=p(2) P3=p(3)
PT=P1+P2+P3 Ct=200+7*P1+0.004*P1^2+210+7.1*P2+0.005*P2^2+250+7.2*P3+0.006*P3^2
solucion:
P1 =
220.0000
P2 =
150
P3 =
130.0000
PT =
500.0000
Ct =
4.6085e+003
3. DESPACHO ECONOMICO CONSIDERANADO PERDIDAS
EJERCICIO 4
Las funciones combustible-costo de 3 plantas térmicas en $/h
están dadas por:
Las generadoras tienen los siguientes límites.
Las pérdidas de la potencia activa están dadas por la
siguiente expresión
Donde los coeficientes de perdidas están expresados en pu
sobre una base de 100MVA
Determinar el despacho óptimo de generación cuando la carga
total del sistema es 150MW
SOLUCION:
PRIMERA FORMA
Trasformamos la expresión de pérdidas a valores reales
ALGORITMO
%C1=200+7*P1+0.008*P1^2; %C2=180+6.3*P2+0.009*P2^2; %C1=140+6.8*P3+0.007*P3^2;
%PL=0.000218*P1^2+0.000228*P2^2+0.000179*P3^2;
%P1=10:85; %P2=10:80; %P3=10:70; PD=150; %1ra iteracion iter=1; lan=8; P1=(lan-7)/(2*0.008+2*lan*0.000218); P2=(lan-6.3)/(2*0.009+2*lan*0.000228); P3=(lan-6.8)/(2*0.007+2*lan*0.000179); PL=0.000218*P1^2+0.000228*P2^2+0.000179*P3^2;
DP=PD+PL-(P1+P2+P3); J=(0.008+0.000218*7)/(2*(0.008+lan*0.000218)^2)+(0.009+0.000228*6.3)/(2*(
0.009+lan*0.000228)^2)+(0.007+0.000179*6.8)/(2*(0.007+lan*0.000179)^2); Dlan=DP/J;
%2ra iteracion iter=iter+1; lan=lan+Dlan; P1=(lan-7)/(2*0.008+2*lan*0.000218); P2=(lan-6.3)/(2*0.009+2*lan*0.000228); P3=(lan-6.8)/(2*0.007+2*lan*0.000179); PL=0.000218*P1^2+0.000228*P2^2+0.000179*P3^2;
DP=PD+PL-(P1+P2+P3); J=(0.008+0.000218*7)/(2*(0.008+lan*0.000218)^2)+(0.009+0.000228*6.3)/(2*(
0.009+lan*0.000228)^2)+(0.007+0.000179*6.8)/(2*(0.007+lan*0.000179)^2); Dlan=DP/J;
%3ra iteracion iter=iter+1; lan=lan+Dlan; P1=(lan-7)/(2*0.008+2*lan*0.000218); P2=(lan-6.3)/(2*0.009+2*lan*0.000228); P3=(lan-6.8)/(2*0.007+2*lan*0.000179); PL=0.000218*P1^2+0.000228*P2^2+0.000179*P3^2;
DP=PD+PL-(P1+P2+P3); J=(0.008+0.000218*7)/(2*(0.008+lan*0.000218)^2)+(0.009+0.000228*6.3)/(2*(
0.009+lan*0.000228)^2)+(0.007+0.000179*6.8)/(2*(0.007+lan*0.000179)^2); Dlan=DP/J;
%4ra iteracion iter=iter+1; lan=lan+Dlan; P1=(lan-7)/(2*0.008+2*lan*0.000218); P2=(lan-6.3)/(2*0.009+2*lan*0.000228); P3=(lan-6.8)/(2*0.007+2*lan*0.000179); PL=0.000218*P1^2+0.000228*P2^2+0.000179*P3^2;
DP=PD+PL-(P1+P2+P3); J=(0.008+0.000218*7)/(2*(0.008+lan*0.000218)^2)+(0.009+0.000228*6.3)/(2*(
0.009+lan*0.000228)^2)+(0.007+0.000179*6.8)/(2*(0.007+lan*0.000179)^2); Dlan=DP/J;
resultados=([iter,DP,lan,P1,P2,P3]); disp(['iter DP lan P1 P2 P3 ']) disp([resultados])
CT=200+7*P1+0.008*P1^2+180+6.3*P2+0.009*P2^2+140+6.8*P3+0.007*P3^2
RESULTADOS
iter DP lan P1 P2 P3
4.0000 -0.0004 7.6789 35.0908 64.1319 52.4768
CT =
1.5927e+003
SEGUNDA FORMA
ALGORITMO
clear all;clc format short alpha=[200;180;140]; beta=[7;6.3;6.8]; gama=[0.008;0.009;0.007]; B=[0.000218;0.000228;0.000119]; PD=150; a=[10 85]; b=[10 80]; c=[10 70]; lambda=8; DP=20;
iter=0; while abs(DP)>=0.0001
iter=iter+1; P=(lambda-beta)./(2*(gama+lambda*B));
if (a(1)<=P(1)<=a(2)&&b(1)<=P(2)<=b(2)&&P(3)<=c(1)) P(3)=c(1); elseif (a(1)<=P(1)<=a(2)&&b(1)<=P(2)<=b(2)&&P(3)>=c(2)) P(3)=c(2); elseif (a(1)<=P(1)<=a(2)&&c(1)<=P(3)<=c(2)&&P(2)<=b(1)) P(2)=b(1); elseif (a(1)<=P(1)<=a(2)&&c(1)<=P(3)<=c(2)&&P(2)>=b(2)) P(2)=b(2); elseif (b(1)<=P(2)<=b(2)&&c(1)<=P(3)<=c(2)&&P(1)<=a(1)) P(1)=a(1); elseif (b(1)<=P(2)<=b(2)&&c(1)<=P(3)<=c(2)&&P(1)>=a(2)) P(1)=a(2);
end
PL=0.000218*P(1)^2+0.000228*P(2)^2+0.000179*P(3)^2; DP=PD+PL-sum(P); J1=gama+beta.*B; J2=2*(gama+lambda.*B).^2; J=sum(J1./J2); Dlambda=DP/J; lambda=lambda+Dlambda;
disp(['iter lambda DP P1 P2 P3']) disp([iter,lambda,DP,P(1),P(2),P(3)])
end
CT=200+7*P(1)+0.008*P(1)^2+180+6.3*P(2)+0.009*P(2)^2+140+6.8*P(3)+0.007*P
(3)^2
RESULTADOS
Iter lambda DP P1 P2 P3
1.0000 7.6997 -46.9857 51.3136 78.5292 70.0000
Iter lambda DP P1 P2 P3
2.0000 7.6604 -6.2109 36.1461 65.0680 56.8249
Iter lambda DP P1 P2 P3
3.0000 7.6596 -0.1265 34.1489 63.2963 54.3783
Iter lambda DP P1 P2 P3
4.0000 7.6596 -0.0026 34.1082 63.2602 54.3285
Iter lambda DP P1 P2 P3
5.0000 7.6596 -0.0001 34.1074 63.2595 54.3275
CT =
1.5927e+003