这是我写的求解3机9节点系统线性化机组组合问题的gams代码,在gams中运行之后总是出现Infeasible,大神可运行一下程序看看,问题在哪里?

Rong_3677 2020-06-12 09:58:58
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;
...全文
443 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
我执行了一下, integer infeasible 最好对约束改改

3,422

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 其他开发语言
社区管理员
  • 其他开发语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧