0

我有这个代码:

如果我使用 NLP,我会得到结果,但是按照我的要求使用 QCP,我无法得到结果

谁能帮我找出原因?

代码:

sets  g               generators             / P1*P5 /
  properties      generator properties   / a,b,c,max,min /
  cc(properties)  cost categories        / a,b,c /

table data(g,properties) generator cost characteristics and limits

             a        b         c       max      min
P1          0.19     58.3      1800       155       35
P2          0.13     39.3      3250       195       60
P3          0.08     11.5      4600       165       95
P4          0.07     42.6      5100       305      170
P5          0.14      8.9      3850       280      130

parameter exp(cc) exponent for cost function / a 2, b 1, c 0 /;

scalar  demand    total power demand in MW / 730 / ;

variables
   p(g)     power generation level in MW
   cost     total generation cost - the objective function ;

positive variables p;

p.up(g) = data(g,"max") ;
p.lo(g) = data(g,"min") ;


equations
   Q_Eq1      total cost calculation
   Q_Eq2      constraint - total generation must equal demand ;


 Q_Eq1 .. cost =e= sum((g,cc), data(g,cc)*power(p(g),exp(cc)));
Q_Eq2 .. sum(g,p(g)) =g= demand ;

model problem /all/ ;

使用 QCP 最小化成本解决问题;

4

1 回答 1

1

似乎函数“power”通常被视为非线性而不分析“exp”的值,因此它不允许用于 QCP。您可以像这样重新制定 Q_Eq1 以使其工作:

Q_Eq1 .. cost =e= sum((g,cc), data(g,cc)*(1        $(exp(cc)=0) +
                                          p(g)     $(exp(cc)=1) +
                                          sqr(p(g))$(exp(cc)=2)));

最好的,卢茨

于 2017-10-11T11:27:06.397 回答