참조
카테고리 : 피망 슬롯 PSOPT 라이브러리
메인파일 : UC.gms
$title 단위 헌신
$onText
자세한 내용은 다음 책의 5장(Gcode5.1)을 참조하세요.
소루디, 알리레자. 피망 슬롯의 전력 시스템 최적화 모델링. 스프링거, 2017.
--------------------------------------------------------------------------------
모델 유형: MIP
--------------------------------------------------------------------------------
작성자:
알리레자 소루디 박사
IEEE 수석 회원
이메일: alireza.soroudi@gmail.com
우리는 개발된 피망 슬롯 코드를 사용하여 파생된 출판물을 요청합니다.
인용함으로써 그 사실을 명시적으로 인정한다.
소루디, 알리레자. 피망 슬롯의 전력 시스템 최적화 모델링. 스프링거, 2017.
DOI: doi.org/10.1007/978-3-319-62350-4
$offText
세트
t '시간' / t1*t24 /
i '발전기 지수' / g1*g10 /
k '비용 세그먼트' / sg1*sg20 /
문자 / ch1*ch2 /;
별칭(t,h);
테이블 gendata(i,*) '발전기 비용 특성 및 한계'
a b c 비용D 비용t RU RD UT DT SD SU Pmin Pmax U0 Uini S0
g1 0.0148 12.1 82 42.6 42.6 40 40 3 2 90 110 80 200 1 0 1
g2 0.0289 12.6 49 50.6 50.6 64 64 4 2 130 140 120 320 2 0 0
g3 0.0135 13.2 100 57.1 57.1 30 30 3 2 70 80 50 150 3 0 3
g4 0.0127 13.9 105 47.1 47.9 104 104 5 3 240 250 250 520 1 1 0
g5 0.0261 13.5 72 56.6 56.9 56 56 4 2 110 130 80 280 1 1 0
g6 0.0212 15.4 29 141.5 141.5 30 30 3 2 60 80 50 150 0 0 0
g7 0.0382 14.0 32 113.5 113.5 24 24 3 2 50 60 30 120 0 1 0
g8 0.0393 13.5 40 42.6 42.6 22 22 3 2 45 55 30 110 0 0 0
g9 0.0396 15.0 25 50.6 50.6 16 16 0 0 35 45 20 80 0 0 0
g10 0.0510 14.3 15 57.1 57.1 12 12 0 0 30 40 20 60 0 0 0;
* ----------------------------------------
매개변수 데이터(k,i,*);
data(k,i,'DP') =(gendata(i,"Pmax") - gendata(i,"Pmin"))/card(k);
data(k,i,'Pini') =(ord(k) - 1)*data(k,i,'DP') + gendata(i,"Pmin");
data(k,i,'Pfin') = data(k,i,'Pini') + data(k,i,'DP');
data(k,i,'Cini') = gendata(i,"a")*power(data(k,i,'Pini'),2)
+ gendata(i,"b")*data(k,i,'피니') + gendata(i,"c");
data(k,i,'Cfin') = gendata(i,"a")*power(data(k,i,'Pfin'),2)
+ gendata(i,"b")*data(k,i,'Pfin') + gendata(i,"c");
data(k,i,'s') =(data(k,i,'Cfin') - data(k,i,'Cini'))/data(k,i,'DP');
gendata(i,'Mincost') = gendata(i,'a')*power(gendata(i,"Pmin"),2)
+ gendata(i,'b')*gendata(i,"Pmin") + gendata(i,'c');
* ----------------------------------------
테이블 데이터LP(t,*)
람다 부하
t1 14.72 883
t2 15.62 915
t3 14.72 1010
t4 14.73 1149
t5 14.83 1236
t6 15.72 1331
t7 20.21 1397
t8 23.40 1419
t9 23.86 1455
t10 21.27 1455
t11 19.83 1441
t12 17.38 1419
t13 17.96 1397
t14 17.75 1339
t15 18.51 1368
t16 17.65 1339
t17 23.45 1236
t18 18.38 1105
t19 18.54 1038
t20 18.52 959
t21 20.59 922
t22 20.52 885
t23 20.50 915
t24 15.62 834;
매개변수 단위(i,char);
단위(i,'ch1') = 24;
unit(i,'ch2') =(gendata(i,'UT') - gendata(i,'U0'))*gendata(i,'Uini');
매개변수 단위2(i,char);
단위2(i,'ch1') = 24;
unit2(i,'ch2') =(gendata(i,'DT') - gendata(i,'S0'))*(1 - gendata(i,'Uini'));
gendata(i,'Lj') = smin(char,unit(i,char));
gendata(i,'Fj') = smin(char,unit2(i,char));
가변 비용열;
양의 변수 pu(i,t), p(i,t), StC(i,t), SDC(i,t), Pk(i,t,k);
이진변수 u(i,t), y(i,t), z(i,t);
p.up(i,t) = gendata(i,"Pmax");
p.lo(i,t) = 0;
Pk.up(i,t,k) = data(k,i,'DP');
Pk.lo(i,t,k) = 0;
p.up(i,t) = gendata(i,"Pmax");
pu.up(i,h) = gendata(i,"Pmax");
방정식
가동 시간1, 가동 시간2, 가동 시간3, Dntime1, Dntime2, Dntime3, Ramp1, Ramp2, Ramp3, Ramp4,
startc, shtdnc, genconst1, Genconst2, Genconst3, Genconst4, 균형;
가동시간1(i)$(gendata(i,"Lj")>0)..
sum(t$(ord(t)<(gendata(i,"Lj")+1)), 1 - U(i,t)) =e= 0;
가동 시간2(i)$(gendata(i,"UT")>1)..
sum(t$(ord(t)>24-gendata(i,"UT")+1), U(i,t) - y(i,t)) =g= 0;
Uptime3(i,t)$(ord(t)>gendata(i,"Lj") 및 ord(t)<24-gendata(i,"UT")+2 및 not(gendata(i,"Lj")>24-gendata(i,"UT")))..
sum(h$((ord(h)>ord(t)-1) 및 (ord(h)<ord(t)+gendata(i,"UT"))), U(i,h)) =g= gendata(i,"UT")*y(i,t);
Dntime1(i)$(gendata(i,"Fj")>0)..
sum(t$(ord(t)<(gendata(i,"Fj")+1)), U(i,t)) =e= 0;
Dntime2(i)$(gendata(i,"DT")>1)..
sum(t$(ord(t)>24-gendata(i,"DT")+1), 1 - U(i,t) - z(i,t)) =g= 0;
Dntime3(i,t)$(ord(t)>gendata(i,"Fj") 및 ord(t)<24-gendata(i,"DT")+2 및 not(gendata(i,"Fj")>24-gendata(i,"DT")))..
sum(h$((ord(h)>ord(t)-1) 및 (ord(h)<ord(t)+gendata(i,"DT"))), 1-U(i,h)) =g= gendata(i,"DT")*z(i,t);
startc(i,t).. StC(i,t) =g= gendata(i,"costst")*y(i,t);
shtdnc(i,t).. SDC(i,t) =g= gendata(i,"비용D")*z(i,t);
genconst1(i,h)..
p(i,h) =e= u(i,h)*gendata(i,"Pmin") + sum(k, Pk(i,h,k));
Genconst2(i,h)$(ord(h)>0)..
U(i,h) =e= U(i,h-1)$(ord(h)>1) + gendata(i,"Uini")$(ord(h)=1) + y(i,h) - z(i,h);
Genconst3(i,t,k)..
Pk(i,t,k) =l= U(i,t)*data(k,i,'DP');
젠컨스트4..
costThermal =e= sum((i,t), StC(i,t) + SDC(i,t))
+ sum((t,i), u(i,t)*gendata(i,'최소 비용') + sum(k, data(k,i,'s')*pk(i,t,k)));
램프1(i,t).. p(i,t-1) - p(i,t) =l= U(i,t)*gendata(i,'RD') + z(i,t)*gendata(i,"SD");
램프2(i,t).. p(i,t) =l= pu(i,t);
Ramp3(i,t)$(ord(t)<24).. pu(i,t) =l= (u(i,t) - z(i,t+1))*gendata(i,"Pmax") + z(i,t+1)*gendata(i,"SD");
Ramp4(i,t)$(ord(t)>1).. pu(i,t) =l= p(i,t-1) + U(i,t-1)*gendata(i,'RU') + y(i,t)*gendata(i,"SU");
잔액(t).. sum(i, p(i,t)) =e= dataLP(t,'load');
모델 UCLP / 모두 /;
옵션 optCr = 0.0;
mip를 사용하여 costThermal을 최소화하는 UCLP를 해결합니다.