这是我写的求解3机9节点系统线性化机组组合问题的gams代码,在gams中运行之后总是出现Infeasible,大神可运行一下程序看看,问题在哪里?
Sets
t time/t1*t24/
k cost segment/k1*k20/
ia ac bus/i1*i9/
slack(ia)/i1/
gen unit/g1*g3/
char /ch1*ch2/;
Set GBconnect(ia,gen)
/i1. g1
i2. g2
i3. g3/;
Scalar Sbase/100/;
alias (ia,ja);
alias (t,h);
Table gendata(gen,*) generator cost characteristics and limits
a b c Pmin Pmax RU RD UT DT Uini U0 S0 costST costSD SD SU
g1 0.11 5 150 10 250 150 150 3 1 0 0 0 150 0 105 120
g2 0.085 1.2 600 10 300 150 150 2 1 0 0 0 200 0 120 140
g3 0.1225 1 335 10 270 140 140 3 1 1 0 0 300 0 110 130
Table busLP(ia,t) "MW"
t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23 t24
i1
i2
i3
i4
i5 9 8.1 7.2 4.5 8.1 9 9.9 10.8 10.35 10.8 11.25 11.7 12.15 11.7 10.8 9 9.45 10.8 11.7 11.7 12.6 13.05 10.8 9.9
i6
i7 10 9 8 5 9 10 11 12 11.5 12 12.5 13 13.5 13 12 10 10.5 12 13 13 14 14.5 12 11
i8
i9 12.5 11.25 10 6.25 11.25 12.5 13.75 15 14.375 15 15.625 16.25 16.875 16.25 15 12.5 13.125 15 16.25 16.25 17.5 18.125 15 13.75
Table B(ia,ja)
i2 i3 i4 i5 i6 i7 i8 i9
i2 16.0 0 0 0 0 0 -16.0000 0
i3 0 17.0648 0 0 -17.0648 0 0 0
i4 0 0 39.3089 -10.5107 0 0 0 -11.6041
i5 0 0 -10.5107 15.8409 -5.5882 0 0 0
i6 0 -17.0648 0 -5.5882 32.1539 -9.7843 0 0
i7 0 0 0 0 -9.7843 23.3032 -13.6980 0
i8 -16.00 0 0 0 0 -13.6980 35.4456 -5.9751
i9 0 0 -11.6041 0 0 0 -5.9751 17.3382
parameter unit(gen,char);
unit(gen,'ch1')=24;
unit(gen,'ch2')=(gendata(gen,'UT')-gendata(gen,'U0'))*gendata(gen,'Uini');
parameter unit2(gen,char);
unit2(gen,'ch1')=24;
unit2(gen,'ch2')=(gendata(gen,'DT')-gendata(gen,'S0'))*(1-gendata(gen,'Uini'));
gendata(gen,'Li')=smin(char,unit(gen,char));
gendata(gen,'Fi')=smin(char,unit2(gen,char));
parameter data(k,gen,*);
data(k,gen,'DP')=(gendata(gen,'Pmax')-gendata(gen,'Pmin'))/card(k);
data(k,gen,'Pini')=gendata(gen,'Pmin')+(ord(k)-1)*data(k,gen,'DP');
data(k,gen,'Pfin')=data(k,gen,'Pini')+data(k,gen,'DP');
data(k,gen,'Cini')=gendata(gen,'a')*power(data(k,gen,'Pini'),2)+gendata(gen,'b')*data(k,gen,'Pini')+gendata(gen,'c');
data(k,gen,'Cfin')=gendata(gen,'a')*power(data(k,gen,'Pfin'),2)+gendata(gen,'b')*data(k,gen,'Pfin')+gendata(gen,'c');
data(k,gen,'s')=(data(k,gen,'Cfin')-data(k,gen,'Cini'))/data(k,gen,'DP');
gendata(gen,'Mincost')=gendata(gen,'a')*power(gendata(gen,'Pmin'),2)+gendata(gen,'b')*gendata(gen,'Pmin')+gendata(gen,'c');
free variables
P(ia,t) real power of bus
delta(ia,t) phase angle of bus
OF fuel cost of unit;
positive variables
Pg(gen,t)
Pk(k,gen,t)
stC(gen,t) start up cost of unit
sdC(gen,t) shut down cost of unit;
binary variables
u(gen,t),y(gen,t),z(gen,t) ;
equations
const1
Equ1
Equ2 "机组有功出力线性方程"
Equ3 "节点有功方程"
Equ4 "节点有功平衡"
uptime1
uptime2
uptime3
dntime1
dntime2
dntime3
startC
shtdnC
ramp1
ramp2
Fuelcost;
const1(gen,h)$(ord(h)>0).. u(gen,h)=e=u(gen,h-1)$(ord(h)>1)+gendata(gen,'Uini')$(ord(h)=1)+y(gen,h)-z(gen,h);
Equ1(k,gen,t).. Pk(k,gen,t)=l=u(gen,t)*data(k,gen,'DP');
Equ2(gen,t).. Pg(gen,t)=e=u(gen,t)*gendata(gen,'Pmin')+sum(k,Pk(k,gen,t));
Equ3(ia,t)$(ord(ia)>1).. P(ia,t)=e=sum(ja,Sbase*B(ia,ja)*delta(ja,t));
Equ4(ia,t).. P(ia,t)=e=sum(gen$GBconnect(ia,gen),Pg(gen,t))-busLP(ia,t);
uptime1(gen)$(gendata(gen,'Li')>0)..
sum(t$(ord(t)<(gendata(gen,'Li')+1)),1-u(gen,t))=e=0;
uptime2(gen,t)$(ord(t)>gendata(gen,'Li') and (ord(t)<24-gendata(gen,'UT')+2) and not (gendata(gen,'Li')>24-gendata(gen,'UT')))..
sum(h$((ord(h)>ord(t)-1) and (ord(h)<ord(t)+gendata(gen,'UT'))),u(gen,h))=g=gendata(gen,'UT')*y(gen,t);
uptime3(gen)$(gendata(gen,'UT')>1)..
sum(t$(ord(t)>24-gendata(gen,'UT')+1),u(gen,t)-y(gen,t))=g=0;
dntime1(gen)$(gendata(gen,'Fi')>0)..
sum(t$(ord(t)<(gendata(gen,'Fi')+1)),u(gen,t))=e=0;
dntime2(gen,t)$(ord(t)>gendata(gen,'Fi') and ord(t)<24-gendata(gen,'DT')+2 and not (gendata(gen,'Fi')>24-gendata(gen,'DT')))..
sum(h$((ord(h)>ord(t)-1) and (ord(h)<ord(t)+gendata(gen,'DT'))),1-u(gen,h))=g=gendata(gen,'DT')*z(gen,t);
dntime3(gen)$(gendata(gen,'DT')>1)..
sum(t$(ord(t)>24-gendata(gen,'DT')+1),1-u(gen,t)-z(gen,t))=g=0;
startC(gen,t).. stC(gen,t)=g=gendata(gen,'costST')*y(gen,t);
shtdnC(gen,t).. sdC(gen,t)=g=gendata(gen,'costSD')*z(gen,t);
ramp1(gen,t)$(ord(t)>1)..
Pg(gen,t-1)-Pg(gen,t)=l=u(gen,t)*gendata(gen,'RD')+z(gen,t)*gendata(gen,'SD');
ramp2(gen,t)$(ord(t)>1)..
Pg(gen,t)-Pg(gen,t-1)=l=u(gen,t-1)*gendata(gen,'RU')+y(gen,t)*gendata(gen,'SU');
Fuelcost.. OF=e=sum((t,gen),u(gen,t)*gendata(gen,'Mincost')+sum(k,data(k,gen,'s')*Pk(k,gen,t)))+sum((gen,t),stC(gen,t)+sdC(gen,t));
Model EasyUC/all/;
Pg.up(gen,t)=gendata(gen,'Pmax');
Pg.lo(gen,t)=gendata(gen,'Pmin');
Pk.up(k,gen,t)=data(k,gen,'DP');
Pk.lo(k,gen,t)=0;
delta.fx(slack,t)=0
Solve EasyUC minimizing OF using MIP;
display y.l,z.l,Pg.l,u.l,P.l;