GAMS - Экономическая диспетчеризация - QCP и 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, минимизируя затраты;

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)));

Бест, Лутц

Другие вопросы по тегам